From 2168ac1141b93b7919e107b8144d5eff64c5ca4a Mon Sep 17 00:00:00 2001 From: TERMI80 <32610825+TERMI80@users.noreply.github.com> Date: Thu, 19 Oct 2017 08:43:29 +0100 Subject: [PATCH 1/4] Create TestDavide --- TestDavide | 1 + 1 file changed, 1 insertion(+) create mode 100644 TestDavide diff --git a/TestDavide b/TestDavide new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/TestDavide @@ -0,0 +1 @@ + From 8cbe77fef6dd133aa5348039762b03cc3073b02f Mon Sep 17 00:00:00 2001 From: TERMI80 <32610825+TERMI80@users.noreply.github.com> Date: Thu, 19 Oct 2017 12:24:35 +0200 Subject: [PATCH 2/4] Update and rename TestDavide to TlsTelegramAut --- TestDavide | 1 - TlsTelegramAut | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) delete mode 100644 TestDavide create mode 100644 TlsTelegramAut diff --git a/TestDavide b/TestDavide deleted file mode 100644 index 8b13789..0000000 --- a/TestDavide +++ /dev/null @@ -1 +0,0 @@ - diff --git a/TlsTelegramAut b/TlsTelegramAut new file mode 100644 index 0000000..5364af7 --- /dev/null +++ b/TlsTelegramAut @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TLSharp; +using TeleSharp.TL; +using TLSharp.Core; +namespace TLC +{ + class Program + { + + static string phoneCodeHash; + static void Main(string[] args) + { + + Run(); + + + + } + static async void Run() + { + var store = new FakeSessionStore(); + string Alert = "ciao"; + TLUser user = null; + var client = new TelegramClient(117394, "b429bd4470c9b2bc24c9d128dbfa2a4a",store); + bool isConnect = await client.ConnectAsync(); + if (client.IsUserAuthorized()) + { + //get available contacts + var result = await client.GetContactsAsync(); + + //find recipient in contacts + // var userr = result.users.lists.Where(x => x.GetType() == typeof(TLUser)).Cast().FirstOrDefault(x => x.phone == "98" + TextBox1.Text); + + //send message + await client.SendMessageAsync(new TLInputPeerUser() { user_id = user.id }, Alert); + } + else + { + phoneCodeHash = await client.SendCodeRequestAsync("393392803198"); + Task.WaitAll(); + + } + + } + } +} From 096501ed626389d07e954be2e990f46345429089 Mon Sep 17 00:00:00 2001 From: TERMI80 <32610825+TERMI80@users.noreply.github.com> Date: Thu, 19 Oct 2017 12:55:14 +0200 Subject: [PATCH 3/4] Delete TlsTelegramAut --- TlsTelegramAut | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) delete mode 100644 TlsTelegramAut diff --git a/TlsTelegramAut b/TlsTelegramAut deleted file mode 100644 index 5364af7..0000000 --- a/TlsTelegramAut +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using TLSharp; -using TeleSharp.TL; -using TLSharp.Core; -namespace TLC -{ - class Program - { - - static string phoneCodeHash; - static void Main(string[] args) - { - - Run(); - - - - } - static async void Run() - { - var store = new FakeSessionStore(); - string Alert = "ciao"; - TLUser user = null; - var client = new TelegramClient(117394, "b429bd4470c9b2bc24c9d128dbfa2a4a",store); - bool isConnect = await client.ConnectAsync(); - if (client.IsUserAuthorized()) - { - //get available contacts - var result = await client.GetContactsAsync(); - - //find recipient in contacts - // var userr = result.users.lists.Where(x => x.GetType() == typeof(TLUser)).Cast().FirstOrDefault(x => x.phone == "98" + TextBox1.Text); - - //send message - await client.SendMessageAsync(new TLInputPeerUser() { user_id = user.id }, Alert); - } - else - { - phoneCodeHash = await client.SendCodeRequestAsync("393392803198"); - Task.WaitAll(); - - } - - } - } -} From d1adb0ce5251aaee3511a1e8dba00628c05f24ab Mon Sep 17 00:00:00 2001 From: TERMI80 <32610825+TERMI80@users.noreply.github.com> Date: Thu, 19 Oct 2017 13:06:58 +0200 Subject: [PATCH 4/4] Add files via upload --- TLC-AUTH/TLC.sln | 25 + TLC-AUTH/TLC/App.config | 6 + TLC-AUTH/TLC/Program.cs | 52 + TLC-AUTH/TLC/Properties/AssemblyInfo.cs | 36 + TLC-AUTH/TLC/TLC.csproj | 68 + TLC-AUTH/TLC/bin/Debug/BigMath.dll | Bin 0 -> 65024 bytes TLC-AUTH/TLC/bin/Debug/Ionic.ZLib.dll | Bin 0 -> 81408 bytes TLC-AUTH/TLC/bin/Debug/Ionic.Zip.dll | Bin 0 -> 462848 bytes TLC-AUTH/TLC/bin/Debug/Ionic.Zip.xml | 18149 ++++++++++++++++ TLC-AUTH/TLC/bin/Debug/TLC.exe | Bin 0 -> 7168 bytes TLC-AUTH/TLC/bin/Debug/TLC.exe.config | 6 + TLC-AUTH/TLC/bin/Debug/TLC.pdb | Bin 0 -> 13824 bytes TLC-AUTH/TLC/bin/Debug/TLC.vshost.exe | Bin 0 -> 22696 bytes TLC-AUTH/TLC/bin/Debug/TLC.vshost.exe.config | 6 + .../TLC/bin/Debug/TLC.vshost.exe.manifest | 11 + TLC-AUTH/TLC/bin/Debug/TLSharp.Core.dll | Bin 0 -> 124416 bytes TLC-AUTH/TLC/bin/Debug/TeleSharp.TL.dll | Bin 0 -> 541696 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 13891 bytes .../Debug/TLC.csproj.CoreCompileInputs.cache | 1 + .../obj/Debug/TLC.csproj.FileListAbsolute.txt | 49 + .../TLC.csprojResolveAssemblyReference.cache | Bin 0 -> 81730 bytes TLC-AUTH/TLC/obj/Debug/TLC.exe | Bin 0 -> 7168 bytes TLC-AUTH/TLC/obj/Debug/TLC.pdb | Bin 0 -> 13824 bytes TLC-AUTH/TLC/packages.config | 7 + .../BigMath.0.5.0/BigMath.0.5.0.nupkg | Bin 0 -> 41066 bytes .../BigMath.XML | 2679 +++ .../BigMath.dll | Bin 0 -> 65024 bytes .../DotNetZip.1.9.3/DotNetZip.1.9.3.nupkg | Bin 0 -> 433588 bytes .../DotNetZip.1.9.3/lib/net20/Ionic.Zip.dll | Bin 0 -> 462848 bytes .../DotNetZip.1.9.3/lib/net20/Ionic.Zip.xml | 18149 ++++++++++++++++ ...arkerMetro.Unity.Ionic.Zlib.2.0.0.14.nupkg | Bin 0 -> 126125 bytes .../lib/Ionic.ZLib.dll | Bin 0 -> 81408 bytes .../lib/net35/Ionic.ZLib.dll | Bin 0 -> 81408 bytes .../lib/netcore45/Ionic.ZLib.dll | Bin 0 -> 70656 bytes .../lib/windowsphone8/Ionic.ZLib.dll | Bin 0 -> 81408 bytes .../TLSharp.0.1.0.285/TLSharp.0.1.0.285.nupkg | Bin 0 -> 289113 bytes .../TLSharp.0.1.0.285/lib/net45/BigMath.dll | Bin 0 -> 65024 bytes .../lib/net45/Ionic.ZLib.dll | Bin 0 -> 81408 bytes .../lib/net45/TLSharp.Core.dll | Bin 0 -> 124416 bytes .../lib/net45/TeleSharp.TL.dll | Bin 0 -> 541696 bytes 40 files changed, 39244 insertions(+) create mode 100644 TLC-AUTH/TLC.sln create mode 100644 TLC-AUTH/TLC/App.config create mode 100644 TLC-AUTH/TLC/Program.cs create mode 100644 TLC-AUTH/TLC/Properties/AssemblyInfo.cs create mode 100644 TLC-AUTH/TLC/TLC.csproj create mode 100644 TLC-AUTH/TLC/bin/Debug/BigMath.dll create mode 100644 TLC-AUTH/TLC/bin/Debug/Ionic.ZLib.dll create mode 100644 TLC-AUTH/TLC/bin/Debug/Ionic.Zip.dll create mode 100644 TLC-AUTH/TLC/bin/Debug/Ionic.Zip.xml create mode 100644 TLC-AUTH/TLC/bin/Debug/TLC.exe create mode 100644 TLC-AUTH/TLC/bin/Debug/TLC.exe.config create mode 100644 TLC-AUTH/TLC/bin/Debug/TLC.pdb create mode 100644 TLC-AUTH/TLC/bin/Debug/TLC.vshost.exe create mode 100644 TLC-AUTH/TLC/bin/Debug/TLC.vshost.exe.config create mode 100644 TLC-AUTH/TLC/bin/Debug/TLC.vshost.exe.manifest create mode 100644 TLC-AUTH/TLC/bin/Debug/TLSharp.Core.dll create mode 100644 TLC-AUTH/TLC/bin/Debug/TeleSharp.TL.dll create mode 100644 TLC-AUTH/TLC/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 TLC-AUTH/TLC/obj/Debug/TLC.csproj.CoreCompileInputs.cache create mode 100644 TLC-AUTH/TLC/obj/Debug/TLC.csproj.FileListAbsolute.txt create mode 100644 TLC-AUTH/TLC/obj/Debug/TLC.csprojResolveAssemblyReference.cache create mode 100644 TLC-AUTH/TLC/obj/Debug/TLC.exe create mode 100644 TLC-AUTH/TLC/obj/Debug/TLC.pdb create mode 100644 TLC-AUTH/TLC/packages.config create mode 100644 TLC-AUTH/packages/BigMath.0.5.0/BigMath.0.5.0.nupkg create mode 100644 TLC-AUTH/packages/BigMath.0.5.0/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1/BigMath.XML create mode 100644 TLC-AUTH/packages/BigMath.0.5.0/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1/BigMath.dll create mode 100644 TLC-AUTH/packages/DotNetZip.1.9.3/DotNetZip.1.9.3.nupkg create mode 100644 TLC-AUTH/packages/DotNetZip.1.9.3/lib/net20/Ionic.Zip.dll create mode 100644 TLC-AUTH/packages/DotNetZip.1.9.3/lib/net20/Ionic.Zip.xml create mode 100644 TLC-AUTH/packages/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14.nupkg create mode 100644 TLC-AUTH/packages/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14/lib/Ionic.ZLib.dll create mode 100644 TLC-AUTH/packages/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14/lib/net35/Ionic.ZLib.dll create mode 100644 TLC-AUTH/packages/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14/lib/netcore45/Ionic.ZLib.dll create mode 100644 TLC-AUTH/packages/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14/lib/windowsphone8/Ionic.ZLib.dll create mode 100644 TLC-AUTH/packages/TLSharp.0.1.0.285/TLSharp.0.1.0.285.nupkg create mode 100644 TLC-AUTH/packages/TLSharp.0.1.0.285/lib/net45/BigMath.dll create mode 100644 TLC-AUTH/packages/TLSharp.0.1.0.285/lib/net45/Ionic.ZLib.dll create mode 100644 TLC-AUTH/packages/TLSharp.0.1.0.285/lib/net45/TLSharp.Core.dll create mode 100644 TLC-AUTH/packages/TLSharp.0.1.0.285/lib/net45/TeleSharp.TL.dll diff --git a/TLC-AUTH/TLC.sln b/TLC-AUTH/TLC.sln new file mode 100644 index 0000000..45e8a96 --- /dev/null +++ b/TLC-AUTH/TLC.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.15 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TLC", "TLC\TLC.csproj", "{6B1B862F-71E5-4735-A8ED-48602E2F6D04}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6B1B862F-71E5-4735-A8ED-48602E2F6D04}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B1B862F-71E5-4735-A8ED-48602E2F6D04}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B1B862F-71E5-4735-A8ED-48602E2F6D04}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B1B862F-71E5-4735-A8ED-48602E2F6D04}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9E17998A-1852-450F-B85E-8F65853FFAAE} + EndGlobalSection +EndGlobal diff --git a/TLC-AUTH/TLC/App.config b/TLC-AUTH/TLC/App.config new file mode 100644 index 0000000..00bfd11 --- /dev/null +++ b/TLC-AUTH/TLC/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/TLC-AUTH/TLC/Program.cs b/TLC-AUTH/TLC/Program.cs new file mode 100644 index 0000000..6c623c4 --- /dev/null +++ b/TLC-AUTH/TLC/Program.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TLSharp; +using TeleSharp.TL; +using TLSharp.Core; +namespace TLC +{ + class Program + { + + static string phoneCodeHash; + static void Main(string[] args) + { + + Run(); + + + + } + static async void Run() + { + var store = new FakeSessionStore(); + string Alert = "ciao"; + TLUser user = null; + var client = new TelegramClient(117, "b42", store); + // if i call client with await it doesn't work + client.ConnectAsync(); + if (client.IsUserAuthorized()) + { + //get available contacts + var result = await client.GetContactsAsync(); + + //find recipient in contacts + // var userr = result.users.lists.Where(x => x.GetType() == typeof(TLUser)).Cast().FirstOrDefault(x => x.phone == "98" + TextBox1.Text); + + //send message + await client.SendMessageAsync(new TLInputPeerUser() { user_id = user.id }, Alert); + } + else + { + //excption here + phoneCodeHash = await client.SendCodeRequestAsync("39"); + Task.WaitAll(); + + } + + } + } +} diff --git a/TLC-AUTH/TLC/Properties/AssemblyInfo.cs b/TLC-AUTH/TLC/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0d7b626 --- /dev/null +++ b/TLC-AUTH/TLC/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Le informazioni generali relative a un assembly sono controllate dal seguente +// set di attributi. Modificare i valori di questi attributi per modificare le informazioni +// associate a un assembly. +[assembly: AssemblyTitle("TLC")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("TLC")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili +// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da +// COM, impostare su true l'attributo ComVisible per tale tipo. +[assembly: ComVisible(false)] + +// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi +[assembly: Guid("6b1b862f-71e5-4735-a8ed-48602e2f6d04")] + +// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori: +// +// Versione principale +// Versione secondaria +// Numero di build +// Revisione +// +// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build +// usando l'asterisco '*' come illustrato di seguito: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/TLC-AUTH/TLC/TLC.csproj b/TLC-AUTH/TLC/TLC.csproj new file mode 100644 index 0000000..d4935fa --- /dev/null +++ b/TLC-AUTH/TLC/TLC.csproj @@ -0,0 +1,68 @@ + + + + + Debug + AnyCPU + {6B1B862F-71E5-4735-A8ED-48602E2F6D04} + Exe + TLC + TLC + v4.6.1 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\TLSharp.0.1.0.285\lib\net45\BigMath.dll + + + ..\packages\DotNetZip.1.9.3\lib\net20\Ionic.Zip.dll + + + ..\packages\TLSharp.0.1.0.285\lib\net45\Ionic.ZLib.dll + + + + + + + + + + + ..\packages\TLSharp.0.1.0.285\lib\net45\TeleSharp.TL.dll + + + ..\packages\TLSharp.0.1.0.285\lib\net45\TLSharp.Core.dll + + + + + + + + + + + + \ No newline at end of file diff --git a/TLC-AUTH/TLC/bin/Debug/BigMath.dll b/TLC-AUTH/TLC/bin/Debug/BigMath.dll new file mode 100644 index 0000000000000000000000000000000000000000..38d658f55be9b117883e37cb36f2cc2a5930ce15 GIT binary patch literal 65024 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%0DYFn)L`?H5{M;3Rs>!Dlc@ip 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ⅈJt~ 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ⅇ!XrnRrrn$6Z;4WJ<@&0(nNLUvP9Y26 zPO{Q(&OCZLj0}S}GBRTyUCWT=_xCW4O8T)o)F{Kg$I#4+2;bCd@Gw(Ge5R^G2Q$5O zygt8s+sWj1v}~&JLw?Hm@JCOps=^WkrXNHirCas`V;nl^k=Cy4!O2qF$8Mf>udUMjOhFX3>L)NUf+*wVqD z#^h^XbQ+lBJSE76+%gVp;aKycmfi75qb?2>(ruhYv5dB?W(U|EMnMgu>PMYlwyr&o z|6FltzwY{v0nw4KEp&9R-wrTqlNoB1sc6lB<Ya4jlapI#@#%t;;ftMIjiF1JhtkLMs0gZ0Q=-!t zA9lX&JBJ-0OQRY<_pW0mlVY=>v(-B^2`y(T{fo>qr@vdP|9~b&j^` z4|3LXy?0gV>M_mC&kUk6vOo|I;NYhAimO{QD3Z8{UQJqcc0>!0$TYT(8VxYayU z$I2$2!e3&`+LS@#6bBG)lg`D@y zueEkMxZHN?meqUD+DXdwjj~LPT9?B+4%ZsGi%Od^^2R0-wjEYJI`8sPrZ&82tWhXo z=w~9^s5ky}%$+vuOx)pf#$B0xps&Cp^fmiC)>$ME+$mi3!lzsF&hD1z8!AMz9K87g z6iwzH==8GDrUWFp+}!#T8{Ow{!HZHS!E8a5k)si)ZD7V>j2O1q&8_L<^Q zp~P{YS%;j2LztB|o=dAw&O9T+&*o(m5hXejyP$EB`kLd5drOg?FAL$sJ!Py3J=@8M ze8x$iUw-biia}Ir1i?Me7IVUAd6r9p8#B-SC=T^P?-Olar46u+A8D~M@?o$ucGwcZ z9Sw8U*9SVn=1R8Ftd`i8WOPZlQehm>xqe!xm7)+01MZm z9>KhfyW>f@iA+hTb$*r+MrmTAgecQwbzbHsc{6oRWO4f7 z@)NhaAIr{P8SBd$>^qoAgCA$h>={Wg88=|tc^n=bIQXqN93dTg3+A-c??}H5kagu4 zZ`dBF#*xv;KYv79UWenWQsFVeqx2)yrze@tIeEvKbb#1_p;=#sx1GU1Hd<6ENtL-> zo4#XIa_=*p$FmhVkY^sG%4W_;r68yjP406!{0=dWQ|jcQ^sT0ujAQB%nTZ)J57XAT zp2<|H;>7HGj=pl&9kRgYGf>#Pq+G4vFUoH4ezMq=`>$2mbEa^_J3SdJt}EQRYLee) zgP#5|#4u{Q{$Mu}>u@q`dZ4k}F?6ywa@_9VQ-pncZO+#+Kn>ViHy+ZagutJjh)#x_ z(f=^DV0jiI)N2bHI{0#cmG!?ejM7c%f!Y zk0;#r2I=}XdWNjO|1iuQp(OUEM6Fr%Do(MaQkYm1z<19Yc4RVFsQ2H_8S)uiy4>mB zk{u}{zAm{teX6RRIjC*^kobP!I7bKez0ydx}wNs zJz#15ycXFmGQ`8^L%xuO$P+2PSx3@SS5bPrtPfL5R%VZhs+TyNly1kP^i7}o7=la| zRp0Q5YzV}wc)_anDl3t*EAJdxh`eXRWo51dtaO7(q=eh<-m%e|vlT4OZ)L$Zlul;r z92^r_y@xt!K53;pnZ+^PqgkkRG!L9oro8JkPLk#Am-LWYoo)*Mia4?LU4gL{rq3=T z&ypq@TH1*C$uh<>R((!ZC{I)-N$nlXxpq0WmKSMay$BlLVG$%8^I}I4c*j5NVUmZK zX9bE06T6R-<|}r2s_iK{>arc;HIjmmIqx4*-&tN&Bc3^b`QU4U@;Xm0XFH7XHOFfX zn!KSX&WKmjIjXI$#<7EQPO*2VSa z?E_WW>gpASGkMJiH#C*0@=0c#zF1H@9ltTPu>7XT6|8kJ_x!8annn$JtJfLaucAYB zlw+fpS61G}T1igy>E6-0SPk!Wr=G6;{&fLey($p;;%f$s$w`M~HPGns+uHkc!D|F)pNn};;2u!U+9u*7=*CL(jGp3in zm*?1qB9pWQl-O*O2bTz0_c2-DC&ekWxL3z&5f;~{Ce1QBEn1)-EoQJ2NPpp;9wytr zvcuCWT!m^xmjrqL6M2^?X39;vK zJ&#-Ia^eB57+&!Fa~gNYct(^xP4~h*$RZ zJ@2}3p~~;8N#k~YXB5qkX=700BM+a+%^CX**^(K~>`OfuVSD|sMbzrzogmGfg1Gjr z2agJ1xgzs5Kf7PIluU{by%I`2sI$3&Njd7tIF^K=d2D$14yvhF zC%!+DeDyNstNR^-b+o-g+~JvrpVW~qK+4W1NTrtFAQ6|-wBWml$>ovJJ!XDolho+B zwt>_W%LpsaZy!ZvN|ozT6r)cE)h)jX+_bc=Lc^B6rtCVq=9mjIzQU-*7+$qRV(Id6 zuyPr!YBvbZwyWk*#Rxon&a5EKVrP4pCndA>y&}D)3?7$EMBBZymw?)o6kiux>y_Ozq2n)7AH_9!sufuH1JY0Pm8~57~iHA`FNGVl5;uc(_RGLEz#Rb zUnW*5iqU0$0_NgrTmewqxb8ofKJ2Ex*HsL(;xN>=HE*Tnuqr7hTOn^HM~X^1KZ$wb z_Ql3B5GGRpx`U=glub=Lc~V5fIb{}fdw%LFRwzf3Jo(pAElo!*tZNTB=h z;7K{}yj|}jMWSz&u(HsSzH{-5az972WLZc!UeXXC!j3QJJWj25;IRthK7!etwJ&fHl z-G>c=c16xFx`%=>h1FU`0Os<8U^m#&3{;v>FPPXiG9US z2VDi;JHh!$LFNB*aSCwrCS=mA#@$4xy z&QF>3TM8^@zA78;$t2kcjUKXS0QP+_E@(+BM7{o{_~=n6g3j^oH|4`|L48wtvx58# z(~__Go;FyW$_rmJRT z&fWLxl9U~;iLX0ETbikGr(Sxief1nCog}U3SGnY2qdyvQ*2yVTpsX9&m7&j5bl|( zrkkY7Qfzz}rDuYr(2&}&ov8OF@aI%g-qBNz^L^fI)?_2}(6Xj;JPn2~m%y1C%^k2H zjvt_r%!AY6>p;Maz=^ zQ6zIk5GrA&3Pv$W> zweaoRr!R9%4N9VES&v@L5aXg)R^8-mo~?R3O& z8Cs82RaKGb>24fKKD^=ejdg|%9?Nr; z+{n!&*yf1A5%G%YkodbCV|#g0{9@>nkD}oTlDDR8dNVuH;pxWo1&E|1s!{b4ZLuna zF4U^#Urn#>SdmB&^_x=iYz?^^9mP;zugdYL?otLP+5Y5V!Z*~V884hj6UoVdFu^q6 zNaqFQw;zmU*Ov#EEFxr;?-|9$713F}$Dw7Uol^L{zZu5fn=BPrQoj~uyH&bL}QX4>_t8#e`%KY7b7V5bIdFjvk$WmxBJAdRcs zIm0q2w2Rn&4O7I0lW3*THMZR_H9e@O{zMp@?GKmUl@$sw<-c`FHlkm2;tV<)M=APa z2J6266@}<8cA^fcSDdXg&pJs*J9HiQc1UiGS=YKdrGyueH*R9qJ|=KRvo=#vq@V?1 z3_g6RrZY$1ZwiYXY}es5qO11oD>aMQ*Ilza%(ytX^1tGX7KW|9yu7WO8zpf-Hp#R) zCBuwvCA0X^Gm6}Pci)U+FS7k0kG=5bi<^sLlMcz>zSknT9WD`&g-A&s?XeqcBxK`+ zNqgp=8?wF2*uk0mMycn=fw(oFiJ61=lrvrL#qtY}G}2Vfxl5o{b3HxAz5mO|x^@*L?;>+Y|&A-2&`z?@fAr zmJ?o(A(Ia}>-{r{Zt+=tVT3N!RFjhK@%sA0@E19n&yi=iv|qGJV@+f`cAcb%rhcT{ zdA3f6;g?DOL}&J%n3gSLc|Oy*$$hLM*$CFRs-52XAW=-JIIKz-p%T2%xq5QW@`CnHt12i8$KCKK6^Ms zLoWw1J8H{Ez1N0C7F{J$#i~0)5{fe`vrx_(Qgj`N)Ci0?Vmqm7q#%ndzRbp8-LC0@ zoyh@>_kdbVH80#_!&&?Ic5{a1gMh-}*^)}X9u?ZC#jNlL-5rK6nQf%I_|>(v<^&DL znboxzN7`JC@9^*x78QRKH#C3b`uV5Lm!CFwlk@gXtNa%!Cp?M#hX$U36k&76WxzB4@fL3&q}Jq zjus|)dcj?Db8}O3uDQ#defNBfkUQn;v_3n{(u=Zp5_A!`$A=a^JbR=Q$pL=SXomfp z`tZkR7MXj@C;M7^py%KYV^R@pDTPHvr84Q$;uOjfM-3;dep4rVrhYN3$xoko#jGG) zk%~N@om7+aIOEi)2-A31x$x5&ChITN$t5^=qpO$PayLHc_&(r#E{x2_KYYD`o-}>z zuh2QYOK_IHJ`h$<)4yXR-gGmsB=fjagyo07gL^t+y(mJun`p#pb3`9ywW-$@T~&KI z{Y}J${P(hky=qN8@e^`OJzGpKxJY~s8u+Sr*@>@;IvN#FQ zuxLnrF7K08xNpk9Jq7=U3!JBc`VKV|TrE9af*k z!W9Q}-l>Qg7#uynqIikOEDV;4tCprI66`86Kyr!j$Uxl6f4@njCDC>< z@8aM^i{zCfG>O`W`t3ToMp4D8`Si0Crh9`K(@6{IQyC}ae!aO&CRUGDBFn3{*bgPv zHkY?D=J>Hc;eoQT1t&G>(Bx82EMimzvsaiAWj1~Kbaf=vyPx2870;h65{84SIW+N z2EE6}x9&}!Dmfa4t5S1})jUf{laT3_k4$~!3}exz_rG?{|B9JpXFCagqx@M5^x0lU ze`w8Nu+Y_`wp@-I|FmqAq=)cpJQ^VyQj%|4v1>F)g&~j#ZH;#c6JjXLND<^{J}7@z z6>}$fWodDmNex*-G*n9?U{ove28X8=M>G1Oii>4aIu|}s$-?HBN0e7C^GoiX{i{X?-T#+UVyspxB!-?H+-!w^~B;umFyBZ&M&h^pr_sW#!Y0( z1%lqszV{#PJvdX|Q*LcuNL%q0hcrg}G4AZh=R${?03McJ)tldb;M|-X*}hA2TX?5f zLAtc6apgm?ZO(j*ZQAA0yZN4l46aEyjnvu&-dCd72aI0?O3x_iT=&IUrC!f6^AQ}a z;L^j-+`1GZBsV$Z`D6lr{pCzyy`!$0@s5JwB_Hz1k@OJTxoehJpN1CTj;x`(=FUhL zt~ku(w7J{(vb#2+>d2P6WlYT z=HLtTP0;D$?k3%=swX+Xg%j>Mo57kWB^gDuLHfe=aOzkcoBPY#qqt`F%c2(L)M_gB zVpnb6J{6w6;;=bLZaq_E)X9n_Jpxz)nz9%?`MzXg$~`FH4_y#RLM8 z82cs0^G6qq;#VwT33+!G7~DADzj@e{iL#{5XX`I0pl2z4=86>4DRjxZZN!G9H&oLA#`CR_ zzWa5>oo_VeK8a%Nqi6g+uQo(qs+3Elwan^lHl5W&_1qxRf^Lu3x?A_1qUptV)2JtJ zi82${g66-zcIH)_u`Vx^UQ9SI+bMQoM_9v&DvOnYRT_+E?Hw7+6}stx|T$7 zRPOl~-}92nq>>XU)|nYzOPnf_eojy(Ex=G#SbG1bqoQfUW#RP{xiHu>B!~4%q0I%e zA)V{=g;B}|w!4o$`dwAnO-E+-XI>}G)EAe$f9C4#s_ZC$+I=;BE-7z+I!pYK&q`0a zMgw)6-a~D&_M?#8Yqx2|DKd`;yRFhVO9JnFov`m*Fs!&yy<%v7p*p@L`ZYpakk9XW zp((3a{yD-u>ywdY85Ip!u-5*BpYjdH;#V+1o3iEU6O*4NcVO4gi zZ+BXke$XL-Uo&#}<8apFWVi5W^y5U;+l^nVZ^0r59A)YAsr<;j??+^YU~An0$(gtxBv91{++@I8x=oapWPO>e zo&OW|gM~+~khrzaeR1lrq+qVB5jpN)Alb(fVYwPoAy~h%q!W;lmXcC^tr>1(u$+}S z7b+wyRP9q?KZVx(Asvw%E&3YM-GE1_bl6{Y%xG1RuO0NH)YAn6H$1Q}bTDKshXrr( zhiX&nF1gmT?%$h8%66Ea98%8a{3g97tz$9nsTK3HP(m=&vi8LliyL?|tO~Fsz4Cka zthV|#?OYm6cq3uZwMh_(=f6YfX}*ZKQ(@Vj@r8V7p0oN#^O2pAK3uYki1`xb(XdO8 z=$3&DQN9>oqe9Zsyc!D@SLjF9x5xXB`^8c7JgA>M$`8Z?G$ct>)*5vUe%4udJe_1H zERj>XIV!Ho#jYtFb+@3$kW^f1`u0`rM?KHuFxGQ+6eirOwljkKya5Vb?|TVEO}>0s zvJopK?2A~L?4PUI_Dqc5hL#l&t=hO+UFz#q`$0QmwAmCM+tyum5dTgm&~ac^wIm6H zPRJZNzfM=kU)hy{&t1)V&iversJhq=Ttrm!40(${Aye4ZiddRh zZAN03)R&l6VOUl%t6ibSvDz!$p}I88=plxZsL|tl`@yiNnu8k-h{3Fw|MZ9xyt(M@ z#m~lgC-6SIW@@>Q`9Z;8XTr*b%reuoBIXAl8+DR}Otl_xbqWPNEW4Mi{DA+8(%{p| zE0(>RH_$^}2kn80)zh0=>N@Ig=`vTyFSi`TjVjU~J<96d^XG2gcw+#cz!&4&bDc?f z(p?^o;qhQ3J<8MSlugMw)5kDiWN=kI`t=6SWnarwp4QQf$jd!$G|{!VQOZ=gf`+!@ zmm)bMoQy@#kL@1q)D}i+%8VYp%B9thz4nYzcK?=rpyxc3zrhvKA`& zzVBVh{GLs`9wt2Yvc_I#f{mEmOck@vG!f5rZ9L~5`V2`=cF1WUdU&o3x@5j)l=={E zFPkJ=-8j;M?vLU|L`aN-+VaShUEIX55XLYJY}e(oL#^22L(5WHe*|MSAt&S0{f$qb z4Tn-~BWB7QJ(gJY{d|pNc;eGAJabQC-#;ttHt~ijl}my0xu#YZ*%CSncHiFBIbxan ziO^E0`ypAtE$*a!9E$<+L@}aATo=d=?z-YB)_m78$7Qs>yk}o%>O)xfkl@atts4GD2?%KG5Pz!l#1So^4ax_+y^)+5L1=mm+F1P zmo4)v3t183m*K*Vx;GX~K9p_g(5k!?F);03*5?ZU8qFHF9U?U-BnJZ4-pqRuEw(1} z3KJwMcE(eSG{bdp!lK*6aSDiZWOl^gE%;;lcV!M$tx#iEGo`4I9eYugZ8;@rXwT4_ zH@^$)hb8&m`4){Su!U_I%qicVLxab;ZyugUxsl}WKSSlU_L*Tf^}3S?uDEs{yhqw3 zkyEKtze3mCO;Y21W=xm#AsSPj6#4`sRw0?)b=Jn1C4}vm4holC_E#X$d3h{4Ssl22 ztPhtO-#Jt;+3h7Q6 zbD>tw>B^{nE~@0ncsJ%8K)DfTSL7Cd%cw1GsBdR{!*)Q&m0xqseP#Z^y1eVnOGe)= zq65bZ?Q#r6)F|;9dDCJZVILm(+$er48ZOCga%@0I?sy*0Yf$HHW#-V*^`v$WiAKkr z^AzxwGf`rP)=m7LL^-|nCz~#$3lCy*@a1Ha*#SPZqt|XpmtA{f;{np)LXmA)Wo%5G z_C=!1f`zzOQu^b#!?i8(k&V&b4Cs`+9AWzUq$f_kF34(2FI8kozp0cjRWZrY=BMU^ zcH=Z0Nj0|joAleBsxzESvyYOoFK%(xAGplZa1sF}p-df|W4n*{&gE_&7+WM8fMTYz z3bx-L*kJIWD4v$Jrb))I(|bZ%Hd1JV`-E=9N)co5ynOZWvC%h*Z~K!W-$P09~ul>QD_Q99{E0>x#!k-QWV4tBoX{)L{XU!D*n0*MA!CqmsRy zY@1fUheSU`=m!%U6&XE&WEu;s2NPJC?+tPlskJv4M2ewxJx=a*g~QS9x=Yz< zrmr_+as&Bq*5QQhG$NU;u?8aM1K0Wu6TC<*)cozb*O!FuD32HB7n9p18~J7Xb~^#m zxVA%3Xz$UTtBcG?W9mIv-O!^Uj8k z*!jiDCq8xZ_D#*2s=vHXR8%f_sAXNgU!jxpIFGZ!{_aPuc0+(Tj1jOBJpTX!$k$!Dl>QE9s*7S)82XVFRENN zxrsqnC+7X_meZk4u`JFcwTs;6M~-$ii%jib)>Lt!b5molRgjp;bn@Fs<@4M#n(i}T zt-wF|M2ToWv@hgW_s57m&vu~LTMNKcdKkZ18_aG-JDqK>rM$xMB_`ggA(eMevxoFc zJ)yO(taPO)oL%$E%^`u_Pht^)f$dw8Esmk8_r*#we^jH|4-gC5K3OW~KXO7l!2WaD zMQ#KarwqfNAGFa}`%n=1@*XvmHgb0thVS?VW2}=9hys%1Wks%}75p3_xwBEMWsJQk z9||w==bBG56rA+zP$eR0`V)Qq3q{N>wnsUTviG})<2ZRn?b5z8tcCSuW7w+qjpECQ z4VI(LFqAb%zOZ?i2P>!b*~=G>whT_(CuMG5z2CwVj0s~1ZZ9bJT{&SX_gxj?ED`R$ zlFJ^)b;})JF3N4|{E)|--9TiSeM#37>7;Vs?->pihvhhT3{p3Arabuq*6{k5$f7oQ ztyDtkf*hp#O@sU4PXWrP4y_`4TcrU%qBd{TY z3m4qpnu8TEd2n%XkfJWUYw79H&2k{D3aojkKs$7ML6kBjL5<*H+3``C?hS|I-srN@ z`#yxG=BTevq1b+P?5Jw9;fvH^OC;IiE+aL*QnCSod933Tueh*Lw4~z`ybdQ2pc883 z_H2J|-q_cDiQ8?reJ?%mY_Hw9%;FQS7S6Y*HRjwL)EdnTE?e&I!=yN~-GZJEKC!zs zu?k<7ZsNQ~pNEyyXpvEzqa_rc578T{PVKYAa=WLny$=x?dXEEdK4@E(GBSc&ZSwnL ztS!GpZkjh1^VCR@mkR=|&FLY^(o%6&&2=b3M8CE|qy9)d@M?A?ITW1TyFu4iUSHke zhWhlmLu7T@D=C^&uE<&?G(;2Ht79W$scX1wo*Kpe;ep0SIovtEX8V{1yEWJMB(!W0 z8GLsmk%}U$%@pp4uZVgBt!wQ+WZs#wpL=47^)zJPTg$*8Tz=@o4ZZJ2tVQPb`O-7z zPB%L<;5T-|9E_(aeHV83CI>@Ur*IaknX5)_Qa(MI^n$*du5m!!wqs&tW}H zWP(G9t(c{(;^sN$<5tl;kq1}fLQP5(xv#2OvEU%+K2&z~3fbsb21Z+rqtCc;g`I}T z&$Y+>cp~=$cbeuQ_QE=;t-<`EKtDoTh_{JfK8fJn;}|PL;TU-IeTlud!U_g1Wx*1X z&C2kOYE!R-leOw&5)tVGVxl%@e(4@OI$hCfDGS$0D*We5X%3SSrc*2@V$>(N{8ERa z4yJW2MfHa@5u8MOHbo@aL7Ag%mzbcf*Ue7F;M`2!x$BQ}D=jJY?bDY98aqu(wJ%OO@Qf_`;te{h9eWfyDYhO%-BCaaAsRY=WB%k-IK?dh$D z>LbQerL(d%MoP{*QDWVb?d*7s*s{f%_;1h*7g&9wvBcJ4v?eVczubrD)P=a6T6h@!x_Q&(haFtT`S zHkcaX^|pJ~IFGGZhY#7&dM7Y0{j^t`@Y>g~&iW(U&O`b_(>!O&LQ@S>Z88j^?l?Ba zVV+9C^3eE||A6CXGf^{v#hF?Pt-RMAkJw{KB4(yV-8Q`GggCi8mXX_#O-ZS3r%4^vC+eT>kiXpc zEMbqj-WJRwqgN442Xly_hd!^p%3E@^ECc;g?Na!PTpBYnt_anf(5S!d$>;LrfOtN`+>8|2K9~Nv^ z+r=;4?}T%8`C;h=_e=eSyYsDywDN2evj+A8BGFdeE^ZHqr`>8dG$T8Y31b3@M7=hg zbQLdoHsF-_pfgJAsygu^8~oRZpm=%7s5#34g@hO707K!dZeR5e%blm*Qn6qj5z7wqXaD_y4MVqN>9FXv4ohm?3_aLlXg3lw6 zn2W`$dIev|nO0`g@n9r(c%wcQn0!8v?g)|K zx7!uDCyn^#3xnmUK-@Yfv0MY68v$CAvQj*6nJ=RwVXTHf)k@O8gNBgT`vSxAK~%2i zk<y#Wj0gGTTnUoic5n<1Sq|Ox3yioaqhhT50iX%r;A-`aQiKd zE_Q(_l$si&ytzCJVzf$G;$j%UeqZ@3EtSBkd2%Dz((G;O8((mcTB6v}*UsR9A8CTA z>MV6mP{##8CHWs-D39Qi)d>&OLTgcJC8$%!i1%u%(;vx|1GN~1T%v*@!7gbnTRv3n zFYLoE&PGXw5f{NGb#c6&lqC(2i^Pdwmw*pZQ;busKNWFdq}k~DF) zxwX5`N`=SBoNFiTzq)TKG~|MqubQ;$EJHin4U^uvq&4%eI|0TP0M)!%p((Rv!eEso z5SQUcWe2T12Z@+$IhQI>Q8j!$RIG%vLmDg5<6HT()+fN8Qr{9d5@*D`&sLXzucEEP z|7^Fze|m_5B9bJ@VH!}cRzslH@D}{z9j(FnN|>VH{Z;LH%`GTiiE8Nb?d=1Dm=-|8!gONuge}K7%N4}dC0P2+pE338@ zfYg|O0u4f^m~vYsL6>KQ3V5qW9*@)k0iJd2{jkPL2f6B2i>;fc=D<(0q#%B|n!`RA z?eT^q^_S73oLAl*{tF^`D1JSwfOMk_-Xe}jO61)|r=%q{oLyDFc|Dr~&D-vYLyoQv z;yA8$N|SEpK*0UW_kYNS0>ItjF_p+Z?TZU#;(GVzQ*lV4_i;1h^X)sh(Ru&jL#Nk+ zbCi{!pJl!=KlN1rZt?o|_ID2lOd5QuzWWiy?3Ngls81NSEI)30-`F!pS6fcYuLE2V*>H=m$K72Zv7iw*sO{Oz^sjH z=M|o4Ui`7uu>X!mxYN<)zO>d|j-mnRq7Z7-!6EXSsQ-z?*!$GX*asx7QH^cjdLO2A zhaB*Ow)^f)__f-K4+Rbx;Nfh)5diw@Q_Cg{L-eU~2|-|ZG)qe551av@-T^Yz{mIdT ze(Ow_4PUc3JYEw0o~8~uQW#X+go+x6-9rmde?TW&S`YYYBGK`q6EuJBTel#cI=k?G zJoVw@W5D)+(B8jgu|i+4zHjYELtX0dkxG*%9tvRP>NTne70_$#FYy8^VL=#q<%|iR1_ssAj3(Fx$}|p^`KU<~ik`ZZ`f`+7j5uu5tzVP`evGzn)@j zl<5IJ_8&=RrMh%=5ia5vnMS_soqD0&*^Q#wKYPBl{**PI;*zz9iR%wIECu<|*~H@h zh>IS_0lxj!?RL9mU`kM?b=>rh;t1>*aV{U3qApsxb}e^BSmEDRa?1`b$A#YX#UIpo zP1>f`wo}EVE}kn>V7VtG?-{e`8eAFOw_K~@8FPrQAn!xRxd_yn8YHUvQ(hGF+uB)I z(_p}AM53j~ADS;n;p)T7xlX~qrbe*xK%pARAN! zl!(jjJ3m;v+E}`uWs@IP+20ANl7x2}X*VfzA-sEA)Bd-!P7CK)Eqj7SWsBYo@;T$s zwuYVKn9NzQU2?Q_0DNoB-OP`N)_Ybx%b)3-59fZcS=zQf?_>OJe_)_G=p|Ae%>3zm z4P4)_i-os&S3}1b@2A8)X<>teWM?8C-2_C)&vGqAh`k?>dJTO01f24W-xcnY%^s z)Up?{n`45O2>Usl~dq6zU#>M)SIbgr54wz;y3acyNF2tU=H1=qO6i|5L zn{>a-&N}j8)$y#^?@_12u1TY=uCSb2&)h3$rWGI>weP#x!w*lhuF3(I^qyyI%=vBylv9V9unA z`LdTqr-D6fA(YK!k;9B256ww599^GP7ShGzrto}2C^P=!c?D2EHQ>mFLC?^%hReb; zE`nuQQf!)97zzT^B~{qmP(k;^pYh=eKI;GT0tn4AzkF#4{CH_V+Rl@{NavzROz*BM z9wpK>=I)v*(5pmDugr*A0BUOKPgu!W9eCa-vxz_I7I`>RJ6iHz@*l$bl2b9N9-kJ= zsrW_1TpHU5`K{OLEBQBH%nU_SGuK#Ei7LA{IJt6j=Y~lqJJp^KY-ZpUZ-LK6 z>+4P9t9kdaH zj&h9fUpQfRtk815eqaKb>NQ&Yo_kA( zP9+WiOq21Yjk(Ov0+R9i?_i-}CUF{k|5|fho)+#h)ow?%dvSjqfCYFwL4Ykd!b1?N z#e(pd_y>4gV%sc<*5$ZY1n(H=1T}?I2H>(;+?*W^+-V_$!UuPIZT?T|onNz>IOx zra+S32(tt~11sStT0;r$eAS=G`~HM9-UU%dK8Ah1P~X@MC5-poPvkCV$I)?vB;!?p zDC8HyP!_9`(Z92YWa=wt@=Ak59r?oYF3T;eYlcq*CQ|`ZPy&A#V@70#d;TAG!wjBo zJC@|cg)YfI2^1S`=tTIfkF=RVg4pi9~clD7!Z42Ri8S>c;oG7(Lh z+PMCbk}?%85F0a`ETH;TF+;VF=gYdmrQ7ai^nxNX&}+e9zvn|=!^BjRbR+1elc+Nr zl)XRr7E{WEw2W?8u#(-28on?5KQI5Fmj!KcgW2RCde@s#{S#3-M)U^Wc-IN0cI(6&MdGX= zwk@|3E6PQBoNcSO$53DJz#CHM<@jh!)an-9al^t%Lf6|amVlpUSgTcszThLts59Q` z^aHAU1oagKI6!=ZWfSLchgKK=-@E#tle(eMBaL^sKbwAWQ+F2bYToJK1CxJJlN4g|!128+@weUv)GV1v zH_3-c^1xlhjAAXTevdc!C4JzMSrWJnFW4)UcfHhN^b>-5w3 z{xk-X*f8K1JlS#{0Gy3~t-(X7!IGv-prjw2mxxu=USF6`q!}cO(?Jc({c70yc%UDY zamY9WZVlzRSnvfH#B$|L$%Ab2Mctr=RKpMr3WlZdbjiWx+Er&!qU;LjY;}Z;B2~7s z+2s;O-IeP>)I%A_xwlL79i7ch*k0V{6H}99xRu(2x(7kS-2L>A&q) z`GkVL^d4=>3b5PhBUZWi+8Hxz@C+Ri_XQ1;eGT`>wzpzs59>MPgCoC}dl*u_? zv47>}+a&>6jBT1?+z}@LRlo{pX2+oP`9P}!xzh(Y{dr%)4ZWI+_?+r%`h8qpjbsuO zMF`9DK7Y&0K73EVDWnAH7RvDEEyi*xuM0v68hqR+Fiqc2j0_47Z z>uMND67$aGQ6c#tZ(W&*Nvmju7gE9`X(yXE8qbL8l2=b2>H;Qowf`;Y`Ogx^&6$!o zK=Ro2_JXqi$f76-Z;=O@!XlrbNu<~4s4F%V<(rGU5RW~aM%bkrbu$e9?glSOaOZH= znDEj==vj?|AsDe0GHb_e@wM&6ip4l)* zxhDr!YYHwN*%<4u3!a4ne8*?7Qf#3EEqx0>Q84foh;V?gVIKP~tm@QUCSE#&m^ zu#`VB{)jzXV!W{V`U}q|QXFC=$_CJ$50v&R!S@bSC{>rO4(8N)Dwue+k2#sN-VUNc zP-MpVSo9;`vMz6gCv`f+qFO9ws$bzAM@WjauAwI{!13qa0nJSWgRxPuot(2ZU!{?u z^^bexwFa6s`*-@JJ}0EIN1G3~_KzC({7F%D&XXTG^kjieHHDN>Fgz-z#H9D-jBC!W z)^Z?_y7?bQ|xah+&ZJ zrc$&Bw1R!6#BDlY`{>{vrHR4t-cS`7B(jyOe*nZ>R!bTXS0iz`GXmy%Dw1E*&sE#P<-X=J5JPJS3zs*X-)g-10me zgPgqYeG^M4V!uEB?zy0k3gCi?0rH`zOlUrAT+W&@%Dvu<`_(7)JdtN zZ;7rqgKyTn8}#NC2Nh3CPZ-(lfx^eUxP2~tW${B|%IMoP?m;Sobg00dM9-=^BGHH^ zqoGIrd(D)SsiTJKKt=K}tpSQMH`P?!=``ps)j*k&#hXBNHZ1fVv9PF@?EB}oMA29* z!WT*T%2a+YJD2a57g5_;6pyC>odku#i{mN~v*dUNf^BSzLNZoR=7s2}PtPmiQ>+S& zhaDQYgw4(M86u<-{fEXo96}AE^ZB##^4K%c$6ey%!zRgd`XXQu5WfFDoHoX7r4wIk%Lu!1FQS64uZzw4UdXmh~ zEC1+T&rMvFpH8@H&=)}0UL#-MGxu62%kHGk^mnZz!t4|Uj+!oWDJwfa*LOX?Q|u}L z*!pk|2(T!Y6GufR31`FLLeQ5DX=~!JJp&9=8!6^LRs9(JqlZ)#`2MWZa~C;%-0~}6 z`BLSV_yti*Nh5)mEjdepy$Vs5)WkeNEVl4G4&12+o(f`~uovaX{7;P$PGug5z>~_2 z#{Ox#+i_2f*>YKoQC2oo$GqtD%Qp!vWNKbg4;In1w=twx>0zCl6!>EP~DxAkTe>8_(xcjc5=x$WHP^Dh`tE)f- zJCf;#8lQnkOc!nV;H?yN<0Ca7dRE8oic<(8m=%-TDX{YGS0JtmdRPXCqy#<8>|MT< zzMqGwS&01}T8ou$%0}j#dE-q8$iZQHV-iA$L)~^$4-H<;I<2(e&jzSWir1Z1j(%3S z-;m_OFou#RW(rF&mhagEw>0DFNtbNUuK-F5-`jNP?bKN*1T}j)O>qdLT*U zJzDS7{tOk%SMq7dz7)-4(!lG<IYZuh-M!_Mr}&M++b!FXbg#q-%)PpyGRAz5N3az@jD zzR6oF4)YB`dq478PBoXk^mq#NYch2I`y}zX^>$3cInhaYtT%Y$K!9kTs8bTMJTFKy*Dt7~l}raj zzYDWU44B`in_YKJ#NJGTo&kiJ{9>>F3ZD|*$5&Y3QtJ_gc@dcT*Hq2tpNYs{z9M{O z4szref|jA~RoUs|Xe+1&D5QplbYO1!cgqE%5=`RKmSCaS1&j0r=M$!moj05Rqp+Tw z24Xz)?E9y+l##Jq_SkJhGN9;@M zB$l$WcF>O9`+es7cb{@FRnSgx(0le^ zhpT@{CPH-$uvI)r039vYLu8ePX}6-_kb4vKlQ0zGRW}RxqzsU%pzk4RKGR zdfeP7CUTMFjYubKE7ie>mHG~JLDvh2ck64n!9 zIe4JBipMV7Z2H90eq7bAQD)&o(_AhQKcl%Uno^s?h;*s`HxVbS`kv0l>pihwa z%9L1Y1IJu~CIx)F@=ucM3vvAClFOSjizK;&8%g7)iD+qsj(>xclNMe)JdYUBE7xsr zw&ANa(0Rg*vtT{^bxboFvCSt1OjSL49=Y=pJ`6i6!HmvK*X{pPquG7ptn7IJ?p*|D zsA)DbtT&j=eihpgZ+o!+53KvP!*Zbh%Vk$40*UP})*7JO*8BlgMsW4#va;NQqdU3| z%d5pwO%#M4_Q^x{Q}n`rzov!6WY2~X#%{>RnwgcQkFpzsBK_GXhR94tLc-*o^M!gE zG+FeO)ef?V0cK-%@EwFGlj}km%)%b(&-vZ9*Qj6$>lad`rnT9DE5mr}4%O!+|}MbGO? zHQ46)6o_+e05cZ)rBBCfv!>O+Mb89XPo&gYGy;TP!EhwVqe}~Xh2|~n;sHP$EHJD} z>RN>yjnilVEJ6>V4?zxlDJ2Z^6cExO|Eg|ght~Xi7T~XAlglE(^mR%;Tukw~-ZrvY zM&sKFpGf>q1@vE<(#e}Z-H%O=(_voe_o)|wYF#U;EYF=4;QBW3WM5DXP-RO}&MH%T zz^PL>uOh_3CO*?4O(QE~{K=b#t7+w`N{d`)HOK!wsW$qvfckC7x&|Un3se1&^uWwORAN zL#QoI?@+Sa6G>Cb)yu$iFxz#*QKWOLXHcKoih*`WlG7iP7r=_Asq)&I%JIBGby-dv(GDs-5xemy52hg& zPkl7`uiS(j>3$JeQ6@ZM!Mowlcdte$15%R47WY#@@+f%Ks6RGVmAHMIKc|%VA$G;T zumbOlL&x=Bp)WAW>v*<6w4xSaRNvz#+<`EWkaKT@z7vdn)G{1jZY-Kl4Mt;P%BU-i zcjpery59(>l=BIDL7}ST)uWf)j@CC;qs

Y5+H1+!4}zC~{xvwq~G;v1D>L!bT9v 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 G0{;L^5w-FF literal 0 HcmV?d00001 diff --git a/TLC-AUTH/TLC/bin/Debug/Ionic.Zip.xml b/TLC-AUTH/TLC/bin/Debug/Ionic.Zip.xml new file mode 100644 index 0000000..a8110a1 --- /dev/null +++ b/TLC-AUTH/TLC/bin/Debug/Ionic.Zip.xml @@ -0,0 +1,18149 @@ + + + + Ionic.Zip + + + +

+ An enum that specifies the source of the ZipEntry. + + + + + Default value. Invalid on a bonafide ZipEntry. + + + + + The entry was instantiated by calling AddFile() or another method that + added an entry from the filesystem. + + + + + The entry was instantiated via or + . + + + + + The ZipEntry was instantiated by reading a zipfile. + + + + + The content for the ZipEntry will be or was provided by the WriteDelegate. + + + + + The content for the ZipEntry will be obtained from the stream dispensed by the OpenDelegate. + The entry was instantiated via . + + + + + The content for the ZipEntry will be or was obtained from a ZipOutputStream. + + + + + Provides a stream metaphor for generating zip files. + + + + + This class writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides an alternative programming model to the one enabled by the + class. Use this when creating zip files, as an + alternative to the class, when you would like to use a + Stream type to write the zip file. + + + + Both the ZipOutputStream class and the ZipFile class can be used + to create zip files. Both of them support many of the common zip features, + including Unicode, different compression levels, and ZIP64. They provide + very similar performance when creating zip files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipOutputStream class implements the interface. In order for + ZipOutputStream to produce a valid zip file, you use use it within + a using clause (Using in VB), or call the Dispose() method + explicitly. See the examples for how to employ a using clause. + + + + Also, a note regarding compression performance: On the desktop .NET + Framework, DotNetZip can use a multi-threaded compression implementation + that provides significant speed increases on large files, over 300k or so, + at the cost of increased memory use at runtime. (The output of the + compression is almost exactly the same size). But, the multi-threaded + approach incurs a performance hit on smaller files. There's no way for the + ZipOutputStream to know whether parallel compression will be beneficial, + because the ZipOutputStream does not know how much data you will write + through the stream. You may wish to set the property to zero, if you are compressing + large files through ZipOutputStream. This will cause parallel + compression to be used, always. + + + + + + Create a ZipOutputStream, wrapping an existing stream. + + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + + + The stream to wrap. It must be writable. This stream will be closed at + the time the ZipOutputStream is closed. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(raw)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using raw As FileStream = File.Open(outputFileName, FileMode.Create, FileAccess.ReadWrite) + Using output As ZipOutputStream = New ZipOutputStream(raw) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End Using + End If + End Sub + + + + + + Create a ZipOutputStream that writes to a filesystem file. + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + The name of the zip file to create. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var output= new ZipOutputStream(outputFileName)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, + FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using output As ZipOutputStream = New ZipOutputStream(outputFileName) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End If + End Sub + + + + + + Create a ZipOutputStream. + + + + See the documentation for the ZipOutputStream(Stream) + constructor for an example. + + + + The stream to wrap. It must be writable. + + + + true if the application would like the stream + to remain open after the ZipOutputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + Returns true if an entry by the given name has already been written + to the ZipOutputStream. + + + + The name of the entry to scan for. + + + + true if an entry by the given name has already been written. + + + + + Write the data from the buffer to the stream. + + + + As the application writes data into this stream, the data may be + compressed and encrypted before being written out to the underlying + stream, depending on the settings of the + and the properties. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Specify the name of the next entry that will be written to the zip file. + + + + + Call this method just before calling , to + specify the name of the entry that the next set of bytes written to + the ZipOutputStream belongs to. All subsequent calls to Write, + until the next call to PutNextEntry, + will be inserted into the named entry in the zip file. + + + + If the used in PutNextEntry() ends in + a slash, then the entry added is marked as a directory. Because directory + entries do not contain data, a call to Write(), before an + intervening additional call to PutNextEntry(), will throw an + exception. + + + + If you don't call Write() between two calls to + PutNextEntry(), the first entry is inserted into the zip file as a + file of zero size. This may be what you want. + + + + Because PutNextEntry() closes out the prior entry, if any, this + method may throw if there is a problem with the prior entry. + + + + This method returns the ZipEntry. You can modify public properties + on the ZipEntry, such as , , and so on, until the first call to + ZipOutputStream.Write(), or until the next call to + PutNextEntry(). If you modify the ZipEntry after + having called Write(), you may get a runtime exception, or you may + silently get an invalid zip archive. + + + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + using (FileStream fs raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(fs)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + output.PutNextEntry("entry1.txt"); + byte[] buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #1."); + output.Write(buffer,0,buffer.Length); + output.PutNextEntry("entry2.txt"); // this will be zero length + output.PutNextEntry("entry3.txt"); + buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #3."); + output.Write(buffer,0,buffer.Length); + } + } + } + + + + + The name of the entry to be added, including any path to be used + within the zip file. + + + + The ZipEntry created. + + + + + + Dispose the stream + + + + + This method writes the Zip Central directory, then closes the stream. The + application must call Dispose() (or Close) in order to produce a valid zip file. + + + + Typically the application will call Dispose() implicitly, via a using + statement in C#, or a Using statement in VB. + + + + + set this to true, always. + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + + + + Sets the password to be used on the ZipOutputStream instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + written to the ZipOutputStream. + + + + Using a password does not encrypt or protect the "directory" of the + archive - the list of entries contained in the archive. If you set the + Password property, the password actually applies to individual + entries that are added to the archive, subsequent to the setting of this + property. The list of filenames in the archive that is eventually created + will appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + If you set this property, and then add a set of entries to the archive via + calls to PutNextEntry, then each entry is encrypted with that + password. You may also want to change the password between adding + different entries. If you set the password, add an entry, then set the + password to null (Nothing in VB), and add another entry, the + first entry is encrypted and the second is not. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If + you set the password to a null value (Nothing in VB), + Encryption is reset to None. + + + + Special case: if you wrap a ZipOutputStream around a non-seekable stream, + and use encryption, and emit an entry of zero bytes, the Close() or + PutNextEntry() following the entry will throw an exception. + + + + + + + The Encryption to use for entries added to the ZipOutputStream. + + + + + The specified Encryption is applied to the entries subsequently + written to the ZipOutputStream instance. + + + + If you set this to something other than + EncryptionAlgorithm.None, you will also need to set the + to a non-null, non-empty value in + order to actually get encryption on the entry. + + + + + ZipOutputStream.Password + ZipEntry.Encryption + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + Setting this may affect performance. For larger files, setting this to a + larger size may improve performance, but I'm not sure. Sorry, I don't + currently have good recommendations on how to set it. You can test it if + you like. + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when compressing + data for the entries in the zip archive. Different compression strategies + work better on different sorts of data. The strategy parameter can affect + the compression ratio and the speed of compression but not the correctness + of the compresssion. For more information see . + + + + + The type of timestamp attached to the ZipEntry. + + + + Set this in order to specify the kind of timestamp that should be emitted + into the zip file for each entry. + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipOutputStream class, like , and , + setting this property on a ZipOutputStream + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipOutputStream instance. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method used on each entry added to the ZipOutputStream. + + + + + A comment attached to the zip archive. + + + + + + The application sets this property to specify a comment to be embedded + into the generated zip archive. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + The default value for the property is . is + safest, in the sense that you will not get an Exception if a + pre-ZIP64 limit is exceeded. + + + + You must set this property before calling Write(). + + + + + + + Indicates whether ZIP64 extensions were used when saving the zip archive. + + + + The value is defined only after the ZipOutputStream has been closed. + + + + + Whether the ZipOutputStream should use case-insensitive comparisons when + checking for uniqueness of zip entries. + + + + + Though the zip specification doesn't prohibit zipfiles with duplicate + entries, Sane zip files have no duplicates, and the DotNetZip library + cannot create zip files with duplicate entries. If an application attempts + to call with a name that duplicates one + already used within the archive, the library will throw an Exception. + + + This property allows the application to specify whether the + ZipOutputStream instance considers ordinal case when checking for + uniqueness of zip entries. + + + + + + Indicates whether to encode entry filenames and entry comments using + Unicode (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + the ZipOutputStream will encode all filenames and comments using + the IBM437 codepage. This can cause "loss of information" on some + filenames, but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipOutputStream, does not set the + encoding, then adds two files, each with names of four Chinese characters + each, this will result in a duplicate filename exception. In the case + where you add a single file with a name containing four Chinese + characters, the zipfile will save properly, but extracting that file + later, with any zip tool, will result in an error, because the question + mark is not legal for use within filenames on Windows. These are just a + few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + The text encoding to use when emitting entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the + ProvisionalAlternateEncoding property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of ProvisionalAlternateEncoding between each entry you + add, and between adding entries and the call to Close(). Don't do + this. It will likely result in a zipfile that is not readable. For best + interoperability, either leave ProvisionalAlternateEncoding + alone, or specify it only once, before adding any entries to the + ZipOutputStream instance. There is one exception to this + recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. If you use an incorrect codepage when reading a zipfile, you + will get entries with filenames that are incorrect, and the incorrect + filenames may even contain characters that are not legal for use within + filenames in Windows. Extracting entries with illegal characters in the + filenames will lead to exceptions. It's too bad, but this is just the way + things are with code pages in zip files. Caveat Emptor. + + + + One possible approach for specifying the code page for a given zip file is + to describe the code page in a human-readable form in the Zip comment. For + example, the comment may read "Entries in this archive are encoded in the + Big5 code page". For maximum interoperability, the zip comment in this + case should be encoded in the default, IBM437 code page. In this case, + the zip comment is encoded using a different page than the filenames. To + do this, Specify ProvisionalAlternateEncoding to your desired + region-specific code page, once before adding any entries, and then set + the property and reset + ProvisionalAlternateEncoding to IBM437 before calling Close(). + + + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, when + the CompressionMethod is Deflate, and if the entry is + larger than the given size. Zero means "always use parallel + deflate", while -1 means "never use parallel deflate". + + + + If the entry size cannot be known before compression, as with any entry + added via a ZipOutputStream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is slightly less effective. + + + + Parallel deflate tends to not be as effective as single-threaded deflate + because the original data stream is split into multiple independent + buffers, each of which is compressed in parallel. But because they are + treated independently, there is no opportunity to share compression + dictionaries, and additional framing bytes must be added to the output + stream. For that reason, a deflated stream may be slightly larger when + compressed using parallel deflate, as compared to a traditional + single-threaded deflate. For files of about 512k, the increase over the + normal deflate is as much as 5% of the total compressed size. For larger + files, the difference can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when using + Encryption. This is primarily because encryption tends to slow down + the entire pipeline. Also, multi-threaded compression gives less of an + advantage when using lower compression levels, for example . You may have to perform + some tests to determine the best approach for your situation. + + + + The default value for this property is -1, which means parallel + compression will not be performed unless you set it to zero. + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is + effective only if set before calling + ZipOutputStream.Write() for the first time. + + + + + + + + + Always returns false. + + + + + Always returns false. + + + + + Always returns true. + + + + + Always returns a NotSupportedException. + + + + + Setting this property always returns a NotSupportedException. Getting it + returns the value of the Position on the underlying stream. + + + + + Provides a stream metaphor for reading zip files. + + + + + This class provides an alternative programming model for reading zip files to + the one enabled by the class. Use this when reading zip + files, as an alternative to the class, when you would + like to use a Stream class to read the file. + + + + Some application designs require a readable stream for input. This stream can + be used to read a zip file, and extract entries. + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and + extract zip files. ZipInputStream can be used only to read and + extract zip files. If you want to use a stream to create zip files, check + out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + + Create a ZipInputStream, wrapping it around an existing stream. + + + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and extract + zip files. ZipInputStream can be used only to read and extract zip + files. If you want to use a stream to create zip files, check out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + The stream to read. It must be readable. This stream will be closed at + the time the ZipInputStream is closed. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(inputFileName, FileMode.Open, FileAccess.Read)) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using raw As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read) + Using input As ZipInputStream = New ZipInputStream(raw) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Using + End Sub + + + + + + Create a ZipInputStream, given the name of an existing zip file. + + + + + + This constructor opens a FileStream for the given zipfile, and + wraps a ZipInputStream around that. See the documentation for the + constructor for full details. + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + + + The name of the filesystem file to read. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var input= new ZipInputStream(inputFileName)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using input As ZipInputStream = New ZipInputStream(inputFileName) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Sub + + + + + + Create a ZipInputStream, explicitly specifying whether to + keep the underlying stream open. + + + + See the documentation for the ZipInputStream(Stream) + constructor for a discussion of the class, and an example of how to use the class. + + + + The stream to read from. It must be readable. + + + + true if the application would like the stream + to remain open after the ZipInputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + Read the data from the stream into the buffer. + + + + + The data for the zipentry will be decrypted and uncompressed, as + necessary, before being copied into the buffer. + + + + You must set the property before calling + Read() the first time for an encrypted entry. To determine if an + entry is encrypted and requires a password, check the ZipEntry.Encryption property. + + + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Read the next entry from the zip file. + + + + + Call this method just before calling , + to position the pointer in the zip file to the next entry that can be + read. Subsequent calls to Read(), will decrypt and decompress the + data in the zip file, until Read() returns 0. + + + + Each time you call GetNextEntry(), the pointer in the wrapped + stream is moved to the next entry in the zip file. If you call , and thus re-position the pointer within + the file, you will need to call GetNextEntry() again, to insure + that the file pointer is positioned at the beginning of a zip entry. + + + + This method returns the ZipEntry. Using a stream approach, you will + read the raw bytes for an entry in a zip file via calls to Read(). + Alternatively, you can extract an entry into a file, or a stream, by + calling , or one of its siblings. + + + + + + The ZipEntry read. Returns null (or Nothing in VB) if there are no more + entries in the zip file. + + + + + + Dispose the stream. + + + + + This method disposes the ZipInputStream. It may also close the + underlying stream, depending on which constructor was used. + + + + Typically the application will call Dispose() implicitly, via + a using statement in C#, or a Using statement in VB. + + + + Application code won't call this code directly. This method may + be invoked in two distinct scenarios. If disposing == true, the + method has been called directly or indirectly by a user's code, + for example via the public Dispose() method. In this case, both + managed and unmanaged resources can be referenced and disposed. + If disposing == false, the method has been called by the runtime + from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources + must be referenced or disposed. + + + + + true if the Dispose method was invoked by user code. + + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + + + + This method seeks in the underlying stream. + + + + + Call this method if you want to seek around within the zip file for random access. + + + + Applications can intermix calls to Seek() with calls to . After a call to Seek(), + GetNextEntry() will get the next ZipEntry that falls after + the current position in the input stream. You're on your own for finding + out just where to seek in the stream, to get to the various entries. + + + + + the offset point to seek to + the reference point from which to seek + The new position + + + + This method always throws a NotSupportedException. + + ignored + + + + The text encoding to use when reading entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to read zip archives that use something other than + UTF-8 or IBM437, set this property to specify the code page to use when + reading encoded filenames and comments for each ZipEntry in the zip + file. + + + + This property is "provisional". When the entry in the zip archive is not + explicitly marked as using UTF-8, then IBM437 is used to decode filenames + and comments. If a loss of data would result from using IBM436 - + specifically when encoding and decoding is not reflexive - the codepage + specified here is used. It is possible, therefore, to have a given entry + with a Comment encoded in IBM437 and a FileName encoded with + the specified "provisional" codepage. + + + + When a zip file uses an arbitrary, non-UTF8 code page for encoding, there + is no standard way for the reader application - whether DotNetZip, WinZip, + WinRar, or something else - to know which codepage has been used for the + entries. Readers of zip files are not able to inspect the zip file and + determine the codepage that was used for the entries contained within it. + It is left to the application or user to determine the necessary codepage + when reading zip files encoded this way. If you use an incorrect codepage + when reading a zipfile, you will get entries with filenames that are + incorrect, and the incorrect filenames may even contain characters that + are not legal for use within filenames in Windows. Extracting entries with + illegal characters in the filenames will lead to exceptions. It's too bad, + but this is just the way things are with code pages in zip files. Caveat + Emptor. + + + + + + + Size of the work buffer to use for the ZLIB codec during decompression. + + + + Setting this affects the performance and memory efficiency of compression + and decompression. For larger files, setting this to a larger size may + improve performance, but the exact numbers vary depending on available + memory, and a bunch of other variables. I don't have good firm + recommendations on how to set it. You'll have to test it yourself. Or + just leave it alone and accept the default. + + + + + Sets the password to be used on the ZipInputStream instance. + + + + + + When reading a zip archive, this password is used to read and decrypt the + entries that are encrypted within the zip file. When entries within a zip + file use different passwords, set the appropriate password for the entry + before the first call to Read() for each entry. + + + + When reading an entry that is not encrypted, the value of this property is + ignored. + + + + + + + This example uses the ZipInputStream to read and extract entries from a + zip file, using a potentially different password for each entry. + + + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(_inputFileName, FileMode.Open, FileAccess.Read )) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + input.Password = PasswordForEntry(e.FileName); + if (e.IsDirectory) continue; + string outputPath = Path.Combine(_extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + + + + Always returns true. + + + + + Returns the value of CanSeek for the underlying (wrapped) stream. + + + + + Always returns false. + + + + + Returns the length of the underlying stream. + + + + + Gets or sets the position of the underlying stream. + + + Setting the position is equivalent to calling Seek(value, SeekOrigin.Begin). + + + + + Sort-of like a factory method, ForUpdate is used only when + the application needs to update the zip entry metadata for + a segmented zip file, when the starting segment is earlier + than the ending segment, for a particular entry. + + + + The update is always contiguous, never rolls over. As a + result, this method doesn't need to return a ZSS; it can + simply return a FileStream. That's why it's "sort of" + like a Factory method. + + + Caller must Close/Dispose the stream object returned by + this method. + + + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Name of the filesystem file corresponding to the current segment. + + + + The name is not always the name currently being used in the + filesystem. When rwMode is RwMode.Write, the filesystem file has a + temporary name until the stream is closed or until the next segment is + started. + + + + + + This class exposes a set of COM-accessible wrappers for static + methods available on the ZipFile class. You don't need this + class unless you are using DotNetZip from a COM environment. + + + + + A wrapper for ZipFile.IsZipFile(string) + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.IsZipFile(string, bool) + + + We cannot use "overloaded" Method names in COM interop. + So, here, we use a unique name. + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.CheckZip(string) + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A COM-friendly wrapper for the static method . + + + The filename to of the zip file to check. + + The password to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A wrapper for ZipFile.FixZipDirectory(string) + + The filename to of the zip file to fix. + + + + A wrapper for ZipFile.LibraryVersion + + + the version number on the DotNetZip assembly, formatted as a string. + + + + + An enum providing the options when an error occurs during opening or reading + of a file or directory that is being saved to a zip file. + + + + + This enum describes the actions that the library can take when an error occurs + opening or reading a file, as it is being saved into a Zip archive. + + + + In some cases an error will occur when DotNetZip tries to open a file to be + added to the zip archive. In other cases, an error might occur after the + file has been successfully opened, while DotNetZip is reading the file. + + + + The first problem might occur when calling AddDirectory() on a directory + that contains a Clipper .dbf file; the file is locked by Clipper and + cannot be opened by another process. An example of the second problem is + the ERROR_LOCK_VIOLATION that results when a file is opened by another + process, but not locked, and a range lock has been taken on the file. + Microsoft Outlook takes range locks on .PST files. + + + + + + Throw an exception when an error occurs while zipping. This is the default + behavior. (For COM clients, this is a 0 (zero).) + + + + + When an error occurs during zipping, for example a file cannot be opened, + skip the file causing the error, and continue zipping. (For COM clients, + this is a 1.) + + + + + When an error occurs during zipping, for example a file cannot be opened, + retry the operation that caused the error. Be careful with this option. If + the error is not temporary, the library will retry forever. (For COM + clients, this is a 2.) + + + + + When an error occurs, invoke the zipError event. The event type used is + . A typical use of this option: + a GUI application may wish to pop up a dialog to allow the user to view the + error that occurred, and choose an appropriate action. After your + processing in the error event, if you want to skip the file, set on the + ZipProgressEventArgs.CurrentEntry to Skip. If you want the + exception to be thrown, set ZipErrorAction on the CurrentEntry + to Throw. If you want to cancel the zip, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + Skip in that a cancel will not save any further entries, if there are any. + (For COM clients, the value of this enum is a 3.) + + + + + An enum that provides the various encryption algorithms supported by this + library. + + + + + + PkzipWeak implies the use of Zip 2.0 encryption, which is known to be + weak and subvertible. + + + + A note on interoperability: Values of PkzipWeak and None are + specified in PKWARE's zip + specification, and are considered to be "standard". Zip archives + produced using these options will be interoperable with many other zip tools + and libraries, including Windows Explorer. + + + + Values of WinZipAes128 and WinZipAes256 are not part of the Zip + specification, but rather imply the use of a vendor-specific extension from + WinZip. If you want to produce interoperable Zip archives, do not use these + values. For example, if you produce a zip archive using WinZipAes256, you + will be able to open it in Windows Explorer on Windows XP and Vista, but you + will not be able to extract entries; trying this will lead to an "unspecified + error". For this reason, some people have said that a zip archive that uses + WinZip's AES encryption is not actually a zip archive at all. A zip archive + produced this way will be readable with the WinZip tool (Version 11 and + beyond). + + + + There are other third-party tools and libraries, both commercial and + otherwise, that support WinZip's AES encryption. These will be able to read + AES-encrypted zip archives produced by DotNetZip, and conversely applications + that use DotNetZip to read zip archives will be able to read AES-encrypted + archives produced by those tools or libraries. Consult the documentation for + those other tools and libraries to find out if WinZip's AES encryption is + supported. + + + + In case you care: According to the WinZip specification, the + actual AES key used is derived from the via an + algorithm that complies with RFC 2898, using an iteration + count of 1000. The algorithm is sometimes referred to as PBKDF2, which stands + for "Password Based Key Derivation Function #2". + + + + A word about password strength and length: The AES encryption technology is + very good, but any system is only as secure as the weakest link. If you want + to secure your data, be sure to use a password that is hard to guess. To make + it harder to guess (increase its "entropy"), you should make it longer. If + you use normal characters from an ASCII keyboard, a password of length 20 will + be strong enough that it will be impossible to guess. For more information on + that, I'd encourage you to read this + article. + + + + The WinZip AES algorithms are not supported with the version of DotNetZip that + runs on the .NET Compact Framework. This is because .NET CF lacks the + HMACSHA1 class that is required for producing the archive. + + + + + + No encryption at all. + + + + + Traditional or Classic pkzip encryption. + + + + + WinZip AES encryption (128 key bits). + + + + + WinZip AES encryption (256 key bits). + + + + + An encryption algorithm that is not supported by DotNetZip. + + + + + An enum for the options when extracting an entry would overwrite an existing file. + + + + + This enum describes the actions that the library can take when an + Extract() or ExtractWithPassword() method is called to extract an + entry to a filesystem, and the extraction would overwrite an existing filesystem + file. + + + + + + + Throw an exception when extraction would overwrite an existing file. (For + COM clients, this is a 0 (zero).) + + + + + When extraction would overwrite an existing file, overwrite the file silently. + The overwrite will happen even if the target file is marked as read-only. + (For COM clients, this is a 1.) + + + + + When extraction would overwrite an existing file, don't overwrite the file, silently. + (For COM clients, this is a 2.) + + + + + When extraction would overwrite an existing file, invoke the ExtractProgress + event, using an event type of . In + this way, the application can decide, just-in-time, whether to overwrite the + file. For example, a GUI application may wish to pop up a dialog to allow + the user to choose. You may want to examine the property before making + the decision. If, after your processing in the Extract progress event, you + want to NOT extract the file, set + on the ZipProgressEventArgs.CurrentEntry to DoNotOverwrite. + If you do want to extract the file, set ZipEntry.ExtractExistingFile + to OverwriteSilently. If you want to cancel the Extraction, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + DoNotOverwrite in that a cancel will not extract any further entries, if + there are any. (For COM clients, the value of this enum is a 3.) + + + + + Enumerates the options for a logical conjunction. This enum is intended for use + internally by the FileSelector class. + + + + + FileSelector encapsulates logic that selects files from a source - a zip file + or the filesystem - based on a set of criteria. This class is used internally + by the DotNetZip library, in particular for the AddSelectedFiles() methods. + This class can also be used independently of the zip capability in DotNetZip. + + + + + + The FileSelector class is used internally by the ZipFile class for selecting + files for inclusion into the ZipFile, when the method, or one of + its overloads, is called. It's also used for the methods. Typically, an + application that creates or manipulates Zip archives will not directly + interact with the FileSelector class. + + + + Some applications may wish to use the FileSelector class directly, to + select files from disk volumes based on a set of criteria, without creating or + querying Zip archives. The file selection criteria include: a pattern to + match the filename; the last modified, created, or last accessed time of the + file; the size of the file; and the attributes of the file. + + + + Consult the documentation for + for more information on specifying the selection criteria. + + + + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + By default the FileSelector will traverse NTFS Reparse Points. To + change this, use FileSelector(String, bool). + + + + The criteria for file selection. + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + The criteria for file selection. + + whether to traverse NTFS reparse points (junctions). + + + + + Returns a string representation of the FileSelector object. + + The string representation of the boolean logic statement of the file + selection criteria for this instance. + + + + Returns the names of the files in the specified directory + that fit the selection criteria specified in the FileSelector. + + + + This is equivalent to calling + with recurseDirectories = false. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Returns the names of the files in the specified directory that fit the + selection criteria specified in the FileSelector, optionally recursing + through subdirectories. + + + + This method applies the file selection criteria contained in the + FileSelector to the files contained in the given directory, and + returns the names of files that conform to the criteria. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + Whether to recurse through subdirectories when applying the file + selection criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + a collection of ZipEntry objects that conform to the criteria. + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + This overload allows the selection of ZipEntry instances from the ZipFile to be restricted + to entries contained within a particular directory in the ZipFile. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the criteria. + + + + The string specifying which files to include when retrieving. + + + + + Specify the criteria in statements of 3 elements: a noun, an operator, + and a value. Consider the string "name != *.doc" . The noun is + "name". The operator is "!=", implying "Not Equal". The value is + "*.doc". That criterion, in English, says "all files with a name that + does not end in the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; + "atime", "mtime", and "ctime" for last access time, last modfied time, + and created time of the file, respectively; "attributes" (or "attrs") + for the file attributes; "size" (or "length") for the file length + (uncompressed); and "type" for the type of object, either a file or a + directory. The "attributes", "type", and "name" nouns all support = + and != as operators. The "size", "atime", "mtime", and "ctime" nouns + support = and !=, and >, >=, <, <= as well. The times are + taken to be expressed in local time. + + + + Specify values for the file attributes as a string with one or more of + the characters H,R,S,A,I,L in any order, implying file attributes of + Hidden, ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint + (symbolic link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as + the format. If you omit the HH:mm:ss portion, it is assumed to be + 00:00:00 (midnight). + + + + The value for a size criterion is expressed in integer quantities of + bytes, kilobytes (use k or kb after the number), megabytes (m or mb), + or gigabytes (g or gb). + + + + The value for a name is a pattern to match against the filename, + potentially including wildcards. The pattern follows CMD.exe glob + rules: * implies one or more of any character, while ? implies one + character. If the name pattern contains any slashes, it is matched to + the entire filename, including the path; otherwise, it is matched + against only the filename without the path. This means a pattern of + "*\*.*" matches all files one directory level deep, while a pattern of + "*.*" matches all files in all directories. + + + + To specify a name pattern that includes spaces, use single quotes + around the pattern. A pattern of "'* *.*'" will match all files that + have spaces in the filename. The full criteria string for that would + be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D + (implying a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + ctime > 2009/01/01-03:00:00 + all files with a created time after 3am (local time), + on January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND, OR, and XOR. Using + a string like "name = *.txt AND size >= 100k" for the + selectionCriteria retrieves entries whose names end in .txt, and whose + uncompressed size is greater than or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to + group clauses in the boolean logic. Absent parenthesis, the + precedence of the criterion atoms is determined by order of + appearance. Unlike the C# language, the AND conjunction does not take + precendence over the logical OR. This is important only in strings + that contain 3 or more criterion atoms. In other words, "name = *.txt + and size > 1000 or attributes = H" implies "((name = *.txt AND size + > 1000) OR attributes = H)" while "attributes = H OR name = *.txt + and size > 1000" evaluates to "((attributes = H OR name = *.txt) + AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to + retrieve all entries that were last updated on 2009 February 14, + specify "mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this + to say: all files updated after 12:00am on February 14th, until + 12:00am on February 15th. You can use the same bracketing approach to + specify any time period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no + spaces, it is treated as a pattern to match for the filename. + Therefore a string like "*.xls" will be equivalent to specifying "name + = *.xls". This "shorthand" notation does not work with compound + criteria. + + + + There is no logic in this class that insures that the inclusion + criteria are internally consistent. For example, it's possible to + specify criteria that says the file must have a size of less than 100 + bytes, as well as a size that is greater than 1000 bytes. Obviously + no file will ever satisfy such criteria, but this class does not check + for or detect such inconsistencies. + + + + + + Thrown in the setter if the value has an invalid syntax. + + + + + Indicates whether searches will traverse NTFS reparse points, like Junctions. + + + + + Summary description for EnumUtil. + + + + + Returns the value of the DescriptionAttribute if the specified Enum + value has one. If not, returns the ToString() representation of the + Enum value. + + The Enum to get the description for + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. + Note: use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. A + parameter specified whether the operation is case-sensitive. Note: + use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + Whether the operation is case-sensitive or not. + + + + + This is a helper class supporting WinZip AES encryption. + This class is intended for use only by the DotNetZip library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the WinZipAesCrypto class. Instead, the WinZipAesCrypto class is + instantiated and used by the ZipEntry() class when WinZip AES + encryption or decryption on an entry is employed. + + + + + A stream that encrypts as it writes, or decrypts as it reads. The + Crypto is AES in CTR (counter) mode, which is compatible with the AES + encryption employed by WinZip 12.0. + + + + The AES/CTR encryption protocol used by WinZip works like this: + + - start with a counter, initialized to zero. + + - to encrypt, take the data by 16-byte blocks. For each block: + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the plaintext to + get the ciphertext. + - compute the mac on the encrypted bytes + - when finished with all blocks, store the computed MAC. + + - to decrypt, take the data by 16-byte blocks. For each block: + - compute the mac on the encrypted bytes, + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the ciphertext to + get the plaintext. + - when finished with all blocks, compare the computed MAC against + the stored MAC + + + + + + + The constructor. + + The underlying stream + To either encrypt or decrypt. + The pre-initialized WinZipAesCrypto object. + The maximum number of bytes to read from the stream. + + + + Close the stream. + + + + + Flush the content in the stream. + + + + + This method throws a NotImplementedException. + + + + + This method throws a NotImplementedException. + + + + + Returns the final HMAC-SHA1-80 for the data that was encrypted. + + + + + Returns true if the stream can be read. + + + + + Always returns false. + + + + + Returns true if the CryptoMode is Encrypt. + + + + + Getting this property throws a NotImplementedException. + + + + + Getting or Setting this property throws a NotImplementedException. + + + + + Issued when an ZipEntry.ExtractWithPassword() method is invoked + with an incorrect password. + + + + + Base class for all exceptions defined by and throw by the Zip library. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that a read was attempted on a stream, and bad or incomplete data was + received. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when an CRC check fails upon extracting an entry from a zip archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when errors occur saving a self-extracting archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that an operation was attempted on a ZipFile which was not possible + given the state of the instance. For example, if you call Save() on a ZipFile + which has no filename set, you can get this exception. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Collects general purpose utility methods. + + + + private null constructor + + + + Utility routine for transforming path names from filesystem format (on Windows that means backslashes) to + a format suitable for use within zipfiles. This means trimming the volume letter and colon (if any) And + swapping backslashes for forward slashes. + + source path. + transformed path + + + + Finds a signature in the zip stream. This is useful for finding + the end of a zip entry, for example, or the beginning of the next ZipEntry. + + + + + Scans through 64k at a time. + + + + If the method fails to find the requested signature, the stream Position + after completion of this method is unchanged. If the method succeeds in + finding the requested signature, the stream position after completion is + direct AFTER the signature found in the stream. + + + + The stream to search + The 4-byte signature to find + The number of bytes read + + + + Create a pseudo-random filename, suitable for use as a temporary + file, and open it. + + + + The System.IO.Path.GetRandomFileName() method is not available on + the Compact Framework, so this library provides its own substitute + on NETCF. + + + This method produces a filename of the form + DotNetZip-xxxxxxxx.tmp, where xxxxxxxx is replaced by randomly + chosen characters, and creates that file. + + + + + + Workitem 7889: handle ERROR_LOCK_VIOLATION during read + + + This could be gracefully handled with an extension attribute, but + This assembly is built for .NET 2.0, so I cannot use them. + + + + + A decorator stream. It wraps another stream, and performs bookkeeping + to keep track of the stream Position. + + + + In some cases, it is not possible to get the Position of a stream, let's + say, on a write-only output stream like ASP.NET's + Response.OutputStream, or on a different write-only stream + provided as the destination for the zip by the application. In this + case, programmers can use this counting stream to count the bytes read + or written. + + + Consider the scenario of an application that saves a self-extracting + archive (SFX), that uses a custom SFX stub. + + + Saving to a filesystem file, the application would open the + filesystem file (getting a FileStream), save the custom sfx stub + into it, and then call ZipFile.Save(), specifying the same + FileStream. ZipFile.Save() does the right thing for the zipentry + offsets, by inquiring the Position of the FileStream before writing + any data, and then adding that initial offset into any ZipEntry + offsets in the zip directory. Everything works fine. + + + Now suppose the application is an ASPNET application and it saves + directly to Response.OutputStream. It's not possible for DotNetZip to + inquire the Position, so the offsets for the SFX will be wrong. + + + The workaround is for the application to use this class to wrap + HttpResponse.OutputStream, then write the SFX stub and the ZipFile + into that wrapper stream. Because ZipFile.Save() can inquire the + Position, it will then do the right thing with the offsets. + + + + + + The constructor. + + The underlying stream + + + + Adjust the byte count on the stream. + + + + the number of bytes to subtract from the count. + + + + + Subtract delta from the count of bytes written to the stream. + This is necessary when seeking back, and writing additional data, + as happens in some cases when saving Zip files. + + + + + + The read method. + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Write data into the stream. + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Flushes the underlying stream. + + + + + Seek in the stream. + + the offset point to seek to + the reference point from which to seek + The new position + + + + Set the length of the underlying stream. Be careful with this! + + + the length to set on the underlying stream. + + + + Gets the wrapped stream. + + + + + The count of bytes written out to the stream. + + + + + the count of bytes that have been read from the stream. + + + + + Whether the stream can be read. + + + + + Whether it is possible to call Seek() on the stream. + + + + + Whether it is possible to call Write() on the stream. + + + + + The length of the underlying stream. + + + + + Returns the sum of number of bytes written, plus the initial + offset before writing. + + + + + The Position of the stream. + + + + + This class implements the "traditional" or "classic" PKZip encryption, + which today is considered to be weak. On the other hand it is + ubiquitous. This class is intended for use only by the DotNetZip + library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the ZipCrypto class. Instead, the ZipCrypto class is instantiated and + used by the ZipEntry() class when encryption or decryption on an entry + is employed. If for some reason you really wanted to use a weak + encryption algorithm in some other application, you might use this + library. But you would be much better off using one of the built-in + strong encryption libraries in the .NET Framework, like the AES + algorithm or SHA. + + + + + The default constructor for ZipCrypto. + + + + This class is intended for internal use by the library only. It's + probably not useful to you. Seriously. Stop reading this + documentation. It's a waste of your time. Go do something else. + Check the football scores. Go get an ice cream with a friend. + Seriously. + + + + + + Call this method on a cipher text to render the plaintext. You must + first initialize the cipher with a call to InitCipher. + + + + + var cipher = new ZipCrypto(); + cipher.InitCipher(Password); + // Decrypt the header. This has a side effect of "further initializing the + // encryption keys" in the traditional zip encryption. + byte[] DecryptedMessage = cipher.DecryptMessage(EncryptedMessage); + + + + The encrypted buffer. + + The number of bytes to encrypt. + Should be less than or equal to CipherText.Length. + + + The plaintext. + + + + This is the converse of DecryptMessage. It encrypts the plaintext + and produces a ciphertext. + + + The plain text buffer. + + + The number of bytes to encrypt. + Should be less than or equal to plainText.Length. + + + The ciphertext. + + + + This initializes the cipher with the given password. + See AppNote.txt for details. + + + + The passphrase for encrypting or decrypting with this cipher. + + + + + Step 1 - Initializing the encryption keys + ----------------------------------------- + Start with these keys: + Key(0) := 305419896 (0x12345678) + Key(1) := 591751049 (0x23456789) + Key(2) := 878082192 (0x34567890) + + Then, initialize the keys with a password: + + loop for i from 0 to length(password)-1 + update_keys(password(i)) + end loop + + Where update_keys() is defined as: + + update_keys(char): + Key(0) := crc32(key(0),char) + Key(1) := Key(1) + (Key(0) bitwiseAND 000000ffH) + Key(1) := Key(1) * 134775813 + 1 + Key(2) := crc32(key(2),key(1) rightshift 24) + end update_keys + + Where crc32(old_crc,char) is a routine that given a CRC value and a + character, returns an updated CRC value after applying the CRC-32 + algorithm described elsewhere in this document. + + + + + After the keys are initialized, then you can use the cipher to + encrypt the plaintext. + + + + Essentially we encrypt the password with the keys, then discard the + ciphertext for the password. This initializes the keys for later use. + + + + + + + From AppNote.txt: + unsigned char decrypt_byte() + local unsigned short temp + temp :=- Key(2) | 2 + decrypt_byte := (temp * (temp ^ 1)) bitshift-right 8 + end decrypt_byte + + + + + A Stream for reading and concurrently decrypting data from a zip file, + or for writing and concurrently encrypting data to a zip file. + + + + The constructor. + The underlying stream + To either encrypt or decrypt. + The pre-initialized ZipCrypto object. + + + + Delegate in which the application writes the ZipEntry content for the named entry. + + + The name of the entry that must be written. + The stream to which the entry data should be written. + + + When you add an entry and specify a WriteDelegate, via , the application + code provides the logic that writes the entry data directly into the zip file. + + + + + This example shows how to define a WriteDelegate that obtains a DataSet, and then + writes the XML for the DataSet into the zip archive. There's no need to + save the XML to a disk file first. + + + private void WriteEntry (String filename, Stream output) + { + DataSet ds1 = ObtainDataSet(); + ds1.WriteXml(output); + } + + private void Run() + { + using (var zip = new ZipFile()) + { + zip.AddEntry(zipEntryName, WriteEntry); + zip.Save(zipFileName); + } + } + + + + Private Sub WriteEntry (ByVal filename As String, ByVal output As Stream) + DataSet ds1 = ObtainDataSet() + ds1.WriteXml(stream) + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + + Delegate in which the application opens the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should open the stream for. + + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate in which the application closes the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should close the stream for. + + + The stream to be closed. + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate for the callback by which the application tells the + library the CompressionLevel to use for a file. + + + + + Using this callback, the application can, for example, specify that + previously-compressed files (.mp3, .png, .docx, etc) should use a + CompressionLevel of None, or can set the compression level based + on any other factor. + + + + + + + In an EventArgs type, indicates which sort of progress event is being + reported. + + + There are events for reading, events for saving, and events for + extracting. This enumeration allows a single EventArgs type to be sued to + describe one of multiple subevents. For example, a SaveProgress event is + invoked before, after, and during the saving of a single entry. The value + of an enum with this type, specifies which event is being triggered. The + same applies to Extraction, Reading and Adding events. + + + + + Indicates that a Add() operation has started. + + + + + Indicates that an individual entry in the archive has been added. + + + + + Indicates that a Add() operation has completed. + + + + + Indicates that a Read() operation has started. + + + + + Indicates that an individual entry in the archive is about to be read. + + + + + Indicates that an individual entry in the archive has just been read. + + + + + Indicates that a Read() operation has completed. + + + + + The given event reports the number of bytes read so far + during a Read() operation. + + + + + Indicates that a Save() operation has started. + + + + + Indicates that an individual entry in the archive is about to be written. + + + + + Indicates that an individual entry in the archive has just been saved. + + + + + Indicates that a Save() operation has completed. + + + + + Indicates that the zip archive has been created in a + temporary location during a Save() operation. + + + + + Indicates that the temporary file is about to be renamed to the final archive + name during a Save() operation. + + + + + Indicates that the temporary file is has just been renamed to the final archive + name during a Save() operation. + + + + + Indicates that the self-extracting archive has been compiled + during a Save() operation. + + + + + The given event is reporting the number of source bytes that have run through the compressor so far + during a Save() operation. + + + + + Indicates that an entry is about to be extracted. + + + + + Indicates that an entry has just been extracted. + + + + + Indicates that extraction of an entry would overwrite an existing + filesystem file. You must use + + ExtractExistingFileAction.InvokeExtractProgressEvent in the call + to ZipEntry.Extract() in order to receive this event. + + + + + The given event is reporting the number of bytes written so far for + the current entry during an Extract() operation. + + + + + Indicates that an ExtractAll operation is about to begin. + + + + + Indicates that an ExtractAll operation has completed. + + + + + Indicates that an error has occurred while saving a zip file. + This generally means the file cannot be opened, because it has been + removed, or because it is locked by another process. It can also + mean that the file cannot be Read, because of a range lock conflict. + + + + + Provides information about the progress of a save, read, or extract operation. + This is a base class; you will probably use one of the classes derived from this one. + + + + + The total number of entries to be saved or extracted. + + + + + The name of the last entry saved or extracted. + + + + + In an event handler, set this to cancel the save or extract + operation that is in progress. + + + + + The type of event being reported. + + + + + Returns the archive name associated to this event. + + + + + The number of bytes read or written so far for this entry. + + + + + Total number of bytes that will be read or written for this entry. + This number will be -1 if the value cannot be determined. + + + + + Provides information about the progress of a Read operation. + + + + + Provides information about the progress of a Add operation. + + + + + Provides information about the progress of a save operation. + + + + + Constructor for the SaveProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been saved. + The entry involved in the event. + + + + Number of entries saved so far. + + + + + Provides information about the progress of the extract operation. + + + + + Constructor for the ExtractProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been extracted. + The entry involved in the event. + The location to which entries are extracted. + + + + Number of entries extracted so far. This is set only if the + EventType is Extracting_BeforeExtractEntry or Extracting_AfterExtractEntry, and + the Extract() is occurring witin the scope of a call to ExtractAll(). + + + + + Returns the extraction target location, a filesystem path. + + + + + Provides information about the an error that occurred while zipping. + + + + + Returns the exception that occurred, if any. + + + + + Returns the name of the file that caused the exception, if any. + + + + + Represents a single entry in a ZipFile. Typically, applications get a ZipEntry + by enumerating the entries within a ZipFile, or by adding an entry to a ZipFile. + + + + + Reads one entry from the zip directory structure in the zip file. + + + + The zipfile for which a directory entry will be read. From this param, the + method gets the ReadStream and the expected text encoding + (ProvisionalAlternateEncoding) which is used if the entry is not marked + UTF-8. + + + + a list of previously seen entry names; used to prevent duplicates. + + + the entry read from the archive. + + + + Returns true if the passed-in value is a valid signature for a ZipDirEntry. + + the candidate 4-byte signature value. + true, if the signature is valid according to the PKWare spec. + + + + Default constructor. + + + Applications should never need to call this directly. It is exposed to + support COM Automation environments. + + + + + Sets the NTFS Creation, Access, and Modified times for the given entry. + + + + + When adding an entry from a file or directory, the Creation, Access, and + Modified times for the given entry are automatically set from the + filesystem values. When adding an entry from a stream or string, the + values are implicitly set to DateTime.Now. The application may wish to + set these values to some arbitrary value, before saving the archive, and + can do so using the various setters. If you want to set all of the times, + this method is more efficient. + + + + The values you set here will be retrievable with the , and properties. + + + + When this method is called, if both and are false, then the + EmitTimesInWindowsFormatWhenSaving flag is automatically set. + + + + DateTime values provided here without a DateTimeKind are assumed to be Local Time. + + + + the creation time of the entry. + the last access time of the entry. + the last modified time of the entry. + + + + + + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Extract the entry to the filesystem, starting at the current + working directory. + + + + This method has a bunch of overloads! One of them is sure to + be the right one for you... If you don't like these, check + out the ExtractWithPassword() methods. + + + + + + + + + This method extracts an entry from a zip file into the current + working directory. The path of the entry as extracted is the full + path as specified in the zip archive, relative to the current + working directory. After the file is extracted successfully, the + file attributes and timestamps are set. + + + + The action taken when extraction an entry would overwrite an + existing file is determined by the property. + + + + Within the call to Extract(), the content for the entry is + written into a filesystem file, and then the last modified time of the + file is set according to the property on + the entry. See the remarks the property for + some details about the last modified time. + + + + + + + Extract the entry to a file in the filesystem, using the specified + behavior when extraction would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the file is set after + extraction. + + + + + The action to take if extraction would overwrite an existing file. + + + + + Extracts the entry to the specified stream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + the stream to which the entry should be extracted. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory. + + + the pathname of the base directory + + + + + + This example extracts only the entries in a zip file that are .txt files, + into a directory called "textfiles". + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + { + zip[s1].Extract("textfiles"); + } + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + + Using this method, existing entries in the filesystem will not be + overwritten. If you would like to force the overwrite of existing + files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + String sZipPath = "Airborne.zip"; + String sFilePath = "Readme.txt"; + String sRootFolder = "Digado"; + using (ZipFile zip = ZipFile.Read(sZipPath)) + { + if (zip.EntryFileNames.Contains(sFilePath)) + { + // use the string indexer on the zip file + zip[sFileName].Extract(sRootFolder, + ExtractExistingFileAction.OverwriteSilently); + } + } + + + + Dim sZipPath as String = "Airborne.zip" + Dim sFilePath As String = "Readme.txt" + Dim sRootFolder As String = "Digado" + Using zip As ZipFile = ZipFile.Read(sZipPath) + If zip.EntryFileNames.Contains(sFilePath) + ' use the string indexer on the zip file + zip(sFilePath).Extract(sRootFolder, _ + ExtractExistingFileAction.OverwriteSilently) + End If + End Using + + + + the pathname of the base directory + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, using the current working directory + and the specified password. + + + + This method has a bunch of overloads! One of them is sure to be + the right one for you... + + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property for some + details about how the "last modified" time of the created file is + set. + + + + + In this example, entries that use encryption are extracted using a + particular password. + + using (var zip = ZipFile.Read(FilePath)) + { + foreach (ZipEntry e in zip) + { + if (e.UsesEncryption) + e.ExtractWithPassword("Secret!"); + else + e.Extract(); + } + } + + + Using zip As ZipFile = ZipFile.Read(FilePath) + Dim e As ZipEntry + For Each e In zip + If (e.UsesEncryption) + e.ExtractWithPassword("Secret!") + Else + e.Extract + End If + Next + End Using + + + The Password to use for decrypting the entry. + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified password. + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The pathname of the base directory. + The Password to use for decrypting the entry. + + + + Extract the entry to a file in the filesystem, relative to the + current directory, using the specified behavior when extraction + would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The Password to use for decrypting the entry. + + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + the pathname of the base directory + + The action to take if extraction would + overwrite an existing file. + + The Password to use for decrypting the entry. + + + + Extracts the entry to the specified stream, using the specified + Password. For example, the caller could extract to Console.Out, or + to a MemoryStream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + + the stream to which the entry should be extracted. + + + The password to use for decrypting the entry. + + + + + Opens a readable stream corresponding to the zip entry in the + archive. The stream decompresses and decrypts as necessary, as it + is read. + + + + + + DotNetZip offers a variety of ways to extract entries from a zip + file. This method allows an application to extract an entry by + reading a . + + + + The return value is of type . Use it as you would any + stream for reading. When an application calls on that stream, it will + receive data from the zip entry that is decrypted and decompressed + as necessary. + + + + CrcCalculatorStream adds one additional feature: it keeps a + CRC32 checksum on the bytes of the stream as it is read. The CRC + value is available in the property on the + CrcCalculatorStream. When the read is complete, your + application + should check this CRC against the + property on the ZipEntry to validate the content of the + ZipEntry. You don't have to validate the entry using the CRC, but + you should, to verify integrity. Check the example for how to do + this. + + + + If the entry is protected with a password, then you need to provide + a password prior to calling , either by + setting the property on the entry, or the + property on the ZipFile + itself. Or, you can use , the + overload of OpenReader that accepts a password parameter. + + + + If you want to extract entry data into a write-able stream that is + already opened, like a , do not + use this method. Instead, use . + + + + Your application may use only one stream created by OpenReader() at + a time, and you should not call other Extract methods before + completing your reads on a stream obtained from OpenReader(). This + is because there is really only one source stream for the compressed + content. A call to OpenReader() seeks in the source stream, to the + beginning of the compressed content. A subsequent call to + OpenReader() on a different entry will seek to a different position + in the source stream, as will a call to Extract() or one of its + overloads. This will corrupt the state for the decompressing stream + from the original call to OpenReader(). + + + + The OpenReader() method works only when the ZipEntry is + obtained from an instance of ZipFile. This method will throw + an exception if the ZipEntry is obtained from a . + + + + + This example shows how to open a zip archive, then read in a named + entry via a stream. After the read loop is complete, the code + compares the calculated during the read loop with the expected CRC + on the ZipEntry, to verify the extraction. + + using (ZipFile zip = new ZipFile(ZipFileToRead)) + { + ZipEntry e1= zip["Elevation.mp3"]; + using (Ionic.Zlib.CrcCalculatorStream s = e1.OpenReader()) + { + byte[] buffer = new byte[4096]; + int n, totalBytesRead= 0; + do { + n = s.Read(buffer,0, buffer.Length); + totalBytesRead+=n; + } while (n>0); + if (s.Crc32 != e1.Crc32) + throw new Exception(string.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)); + if (totalBytesRead != e1.UncompressedSize) + throw new Exception(string.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)); + } + } + + + Using zip As New ZipFile(ZipFileToRead) + Dim e1 As ZipEntry = zip.Item("Elevation.mp3") + Using s As Ionic.Zlib.CrcCalculatorStream = e1.OpenReader + Dim n As Integer + Dim buffer As Byte() = New Byte(4096) {} + Dim totalBytesRead As Integer = 0 + Do + n = s.Read(buffer, 0, buffer.Length) + totalBytesRead = (totalBytesRead + n) + Loop While (n > 0) + If (s.Crc32 <> e1.Crc32) Then + Throw New Exception(String.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)) + End If + If (totalBytesRead <> e1.UncompressedSize) Then + Throw New Exception(String.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)) + End If + End Using + End Using + + + + The Stream for reading. + + + + Opens a readable stream for an encrypted zip entry in the archive. + The stream decompresses and decrypts as necessary, as it is read. + + + + + See the documentation on the method for + full details. This overload allows the application to specify a + password for the ZipEntry to be read. + + + + The password to use for decrypting the entry. + The Stream for reading. + + + + Pass in either basedir or s, but not both. + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Extract to a stream + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Reads one ZipEntry from the given stream. The content for + the entry does not get decompressed or decrypted. This method + basically reads metadata, and seeks. + + the ZipContainer this entry belongs to. + + true of this is the first entry being read from the stream. + + the ZipEntry read from the stream. + + + + Finds a particular segment in the given extra field. + This is used when modifying a previously-generated + extra field, in particular when removing the AES crypto + segment in the extra field. + + + + + At current cursor position in the stream, read the extra + field, and set the properties on the ZipEntry instance + appropriately. This can be called when processing the + Extra field in the Central Directory, or in the local + header. + + + + + generate and return a byte array that encodes the filename + for the entry. + + + + side effects: generate and store into _CommentBytes the + byte array for any comment attached to the entry. Also + sets _actualEncoding to indicate the actual encoding + used. The same encoding is used for both filename and + comment. + + + + + + Stores the position of the entry source stream, or, if the position is + already stored, seeks to that position. + + + + + This method is called in prep for reading the source stream. If PKZIP + encryption is used, then we need to calc the CRC32 before doing the + encryption, because the CRC is used in the 12th byte of the PKZIP + encryption header. So, we need to be able to seek backward in the source + when saving the ZipEntry. This method is called from the place that + calculates the CRC, and also from the method that does the encryption of + the file data. + + + + The first time through, this method sets the _sourceStreamOriginalPosition + field. Subsequent calls to this method seek to that position. + + + + + + Copy metadata that may have been changed by the app. We do this when + resetting the zipFile instance. If the app calls Save() on a ZipFile, then + tries to party on that file some more, we may need to Reset() it , which + means re-reading the entries and then copying the metadata. I think. + + + + + Set the input stream and get its length, if possible. The length is + used for progress updates, AND, to allow an optimization in case of + a stream/file of zero length. In that case we skip the Encrypt and + compression Stream. (like DeflateStream or BZip2OutputStream) + + + + + Prepare the given stream for output - wrap it in a CountingStream, and + then in a CRC stream, and an encryptor and deflator as appropriate. + + + + Previously this was used in ZipEntry.Write(), but in an effort to + introduce some efficiencies in that method I've refactored to put the + code inline. This method still gets called by ZipOutputStream. + + + + + + True if the referenced entry is a directory. + + + + + Provides a human-readable string with information about the ZipEntry. + + + + + The time and date at which the file indicated by the ZipEntry was + last modified. + + + + + The DotNetZip library sets the LastModified value for an entry, equal to + the Last Modified time of the file in the filesystem. If an entry is + added from a stream, the library uses System.DateTime.Now for this + value, for the given entry. + + + + This property allows the application to retrieve and possibly set the + LastModified value on an entry, to an arbitrary value. values with a + setting of DateTimeKind.Unspecified are taken to be expressed as + DateTimeKind.Local. + + + + Be aware that because of the way PKWare's + Zip specification describes how times are stored in the zip file, + the full precision of the System.DateTime datatype is not stored + for the last modified time when saving zip files. For more information on + how times are formatted, see the PKZip specification. + + + + The actual last modified time of a file can be stored in multiple ways in + the zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + Zip tools and libraries will always at least handle (read or write) the + DOS time, and may also handle the other time formats. Keep in mind that + while the names refer to particular operating systems, there is nothing in + the time formats themselves that prevents their use on other operating + systems. + + + + When reading ZIP files, the DotNetZip library reads the Windows-formatted + time, if it is stored in the entry, and sets both LastModified and + ModifiedTime to that value. When writing ZIP files, the DotNetZip + library by default will write both time quantities. It can also emit the + Unix-formatted time if desired (See .) + + + + The last modified time of the file created upon a call to + ZipEntry.Extract() may be adjusted during extraction to compensate + for differences in how the .NET Base Class Library deals with daylight + saving time (DST) versus how the Windows filesystem deals with daylight + saving time. Raymond Chen provides + some good context. + + + + In a nutshell: Daylight savings time rules change regularly. In 2007, for + example, the inception week of DST changed. In 1977, DST was in place all + year round. In 1945, likewise. And so on. Win32 does not attempt to + guess which time zone rules were in effect at the time in question. It + will render a time as "standard time" and allow the app to change to DST + as necessary. .NET makes a different choice. + + + + Compare the output of FileInfo.LastWriteTime.ToString("f") with what you + see in the Windows Explorer property sheet for a file that was last + written to on the other side of the DST transition. For example, suppose + the file was last modified on October 17, 2003, during DST but DST is not + currently in effect. Explorer's file properties reports Thursday, October + 17, 2003, 8:45:38 AM, but .NETs FileInfo reports Thursday, October 17, + 2003, 9:45 AM. + + + + Win32 says, "Thursday, October 17, 2002 8:45:38 AM PST". Note: Pacific + STANDARD Time. Even though October 17 of that year occurred during Pacific + Daylight Time, Win32 displays the time as standard time because that's + what time it is NOW. + + + + .NET BCL assumes that the current DST rules were in place at the time in + question. So, .NET says, "Well, if the rules in effect now were also in + effect on October 17, 2003, then that would be daylight time" so it + displays "Thursday, October 17, 2003, 9:45 AM PDT" - daylight time. + + + + So .NET gives a value which is more intuitively correct, but is also + potentially incorrect, and which is not invertible. Win32 gives a value + which is intuitively incorrect, but is strictly correct. + + + + Because of this funkiness, this library adds one hour to the LastModified + time on the extracted file, if necessary. That is to say, if the time in + question had occurred in what the .NET Base Class Library assumed to be + DST. This assumption may be wrong given the constantly changing DST rules, + but it is the best we can do. + + + + + + + + Last Modified time for the file represented by the entry. + + + + + + This value corresponds to the "last modified" time in the NTFS file times + as described in the Zip + specification. When getting this property, the value may be + different from . When setting the property, + the property also gets set, but with a lower + precision. + + + + Let me explain. It's going to take a while, so get + comfortable. Originally, waaaaay back in 1989 when the ZIP specification + was originally described by the esteemed Mr. Phil Katz, the dominant + operating system of the time was MS-DOS. MSDOS stored file times with a + 2-second precision, because, c'mon, who is ever going to need better + resolution than THAT? And so ZIP files, regardless of the platform on + which the zip file was created, store file times in exactly the same format that DOS used + in 1989. + + + + Since then, the ZIP spec has evolved, but the internal format for file + timestamps remains the same. Despite the fact that the way times are + stored in a zip file is rooted in DOS heritage, any program on any + operating system can format a time in this way, and most zip tools and + libraries DO - they round file times to the nearest even second and store + it just like DOS did 25+ years ago. + + + + PKWare extended the ZIP specification to allow a zip file to store what + are called "NTFS Times" and "Unix(tm) times" for a file. These are the + last write, last access, and file creation + times of a particular file. These metadata are not actually specific + to NTFS or Unix. They are tracked for each file by NTFS and by various + Unix filesystems, but they are also tracked by other filesystems, too. + The key point is that the times are formatted in the zip file + in the same way that NTFS formats the time (ticks since win32 epoch), + or in the same way that Unix formats the time (seconds since Unix + epoch). As with the DOS time, any tool or library running on any + operating system is capable of formatting a time in one of these ways + and embedding it into the zip file. + + + + These extended times are higher precision quantities than the DOS time. + As described above, the (DOS) LastModified has a precision of 2 seconds. + The Unix time is stored with a precision of 1 second. The NTFS time is + stored with a precision of 0.0000001 seconds. The quantities are easily + convertible, except for the loss of precision you may incur. + + + + A zip archive can store the {C,A,M} times in NTFS format, in Unix format, + or not at all. Often a tool running on Unix or Mac will embed the times + in Unix format (1 second precision), while WinZip running on Windows might + embed the times in NTFS format (precision of of 0.0000001 seconds). When + reading a zip file with these "extended" times, in either format, + DotNetZip represents the values with the + ModifiedTime, AccessedTime and CreationTime + properties on the ZipEntry. + + + + While any zip application or library, regardless of the platform it + runs on, could use any of the time formats allowed by the ZIP + specification, not all zip tools or libraries do support all these + formats. Storing the higher-precision times for each entry is + optional for zip files, and many tools and libraries don't use the + higher precision quantities at all. The old DOS time, represented by + , is guaranteed to be present, though it + sometimes unset. + + + + Ok, getting back to the question about how the LastModified + property relates to this ModifiedTime + property... LastModified is always set, while + ModifiedTime is not. (The other times stored in the NTFS + times extension, CreationTime and AccessedTime also + may not be set on an entry that is read from an existing zip file.) + When reading a zip file, then LastModified takes the DOS time + that is stored with the file. If the DOS time has been stored as zero + in the zipfile, then this library will use DateTime.Now for the + LastModified value. If the ZIP file was created by an evolved + tool, then there will also be higher precision NTFS or Unix times in + the zip file. In that case, this library will read those times, and + set LastModified and ModifiedTime to the same value, the + one corresponding to the last write time of the file. If there are no + higher precision times stored for the entry, then ModifiedTime + remains unset (likewise AccessedTime and CreationTime), + and LastModified keeps its DOS time. + + + + When creating zip files with this library, by default the extended time + properties (ModifiedTime, AccessedTime, and + CreationTime) are set on the ZipEntry instance, and these data are + stored in the zip archive for each entry, in NTFS format. If you add an + entry from an actual filesystem file, then the entry gets the actual file + times for that file, to NTFS-level precision. If you add an entry from a + stream, or a string, then the times get the value DateTime.Now. In + this case LastModified and ModifiedTime will be identical, + to 2 seconds of precision. You can explicitly set the + CreationTime, AccessedTime, and ModifiedTime of an + entry using the property setters. If you want to set all of those + quantities, it's more efficient to use the method. Those + changes are not made permanent in the zip file until you call or one of its cousins. + + + + When creating a zip file, you can override the default behavior of + this library for formatting times in the zip file, disabling the + embedding of file times in NTFS format or enabling the storage of file + times in Unix format, or both. You may want to do this, for example, + when creating a zip file on Windows, that will be consumed on a Mac, + by an application that is not hip to the "NTFS times" format. To do + this, use the and + properties. A valid zip + file may store the file times in both formats. But, there are no + guarantees that a program running on Mac or Linux will gracefully + handle the NTFS-formatted times when Unix times are present, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. DotNetZip will always do something + reasonable; other libraries or tools may not. When in doubt, test. + + + + I'll bet you didn't think one person could type so much about time, eh? + And reading it was so enjoyable, too! Well, in appreciation, maybe you + should donate? + + + + + + + + + + + Last Access time for the file represented by the entry. + + + This value may or may not be meaningful. If the ZipEntry was read from an existing + Zip archive, this information may not be available. For an explanation of why, see + . + + + + + + + + The file creation time for the file represented by the entry. + + + + This value may or may not be meaningful. If the ZipEntry was read + from an existing zip archive, and the creation time was not set on the entry + when the zip file was created, then this property may be meaningless. For an + explanation of why, see . + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Windows format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Windows. The default value of + this property is true. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all zip tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInWindowsFormatWhenSaving + property, to specify the behavior for all entries in a zip, rather than + the property on each individual entry. + + + + + + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Unix(tm) format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since Jan 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInUnixFormatWhenSaving + property, to specify the behavior for all entries, rather than the + property on each individual entry. + + + + + + + + + + + + + The type of timestamp attached to the ZipEntry. + + + + This property is valid only for a ZipEntry that was read from a zip archive. + It indicates the type of timestamp attached to the entry. + + + + + + + + The file attributes for the entry. + + + + + + The attributes in NTFS include + ReadOnly, Archive, Hidden, System, and Indexed. When adding a + ZipEntry to a ZipFile, these attributes are set implicitly when + adding an entry from the filesystem. When adding an entry from a stream + or string, the Attributes are not set implicitly. Regardless of the way + an entry was added to a ZipFile, you can set the attributes + explicitly if you like. + + + + When reading a ZipEntry from a ZipFile, the attributes are + set according to the data stored in the ZipFile. If you extract the + entry from the archive to a filesystem file, DotNetZip will set the + attributes on the resulting file accordingly. + + + + The attributes can be set explicitly by the application. For example the + application may wish to set the FileAttributes.ReadOnly bit for all + entries added to an archive, so that on unpack, this attribute will be set + on the extracted file. Any changes you make to this property are made + permanent only when you call a Save() method on the ZipFile + instance that contains the ZipEntry. + + + + For example, an application may wish to zip up a directory and set the + ReadOnly bit on every file in the archive, so that upon later extraction, + the resulting files will be marked as ReadOnly. Not every extraction tool + respects these attributes, but if you unpack with DotNetZip, as for + example in a self-extracting archive, then the attributes will be set as + they are stored in the ZipFile. + + + + These attributes may not be interesting or useful if the resulting archive + is extracted on a non-Windows platform. How these attributes get used + upon extraction depends on the platform and tool used. + + + + This property is only partially supported in the Silverlight version + of the library: applications can read attributes on entries within + ZipFiles. But extracting entries within Silverlight will not set the + attributes on the extracted files. + + + + + + + The name of the filesystem file, referred to by the ZipEntry. + + + + + This property specifies the thing-to-be-zipped on disk, and is set only + when the ZipEntry is being created from a filesystem file. If the + ZipFile is instantiated by reading an existing .zip archive, then + the LocalFileName will be null (Nothing in VB). + + + + When it is set, the value of this property may be different than , which is the path used in the archive itself. If you + call Zip.AddFile("foop.txt", AlternativeDirectory), then the path + used for the ZipEntry within the zip archive will be different + than this path. + + + + If the entry is being added from a stream, then this is null (Nothing in VB). + + + + + + + + The name of the file contained in the ZipEntry. + + + + + + This is the name of the entry in the ZipFile itself. When creating + a zip archive, if the ZipEntry has been created from a filesystem + file, via a call to or , or a related overload, the value + of this property is derived from the name of that file. The + FileName property does not include drive letters, and may include a + different directory path, depending on the value of the + directoryPathInArchive parameter used when adding the entry into + the ZipFile. + + + + In some cases there is no related filesystem file - for example when a + ZipEntry is created using or one of the similar overloads. In this case, the value of + this property is derived from the fileName and the directory path passed + to that method. + + + + When reading a zip file, this property takes the value of the entry name + as stored in the zip file. If you extract such an entry, the extracted + file will take the name given by this property. + + + + Applications can set this property when creating new zip archives or when + reading existing archives. When setting this property, the actual value + that is set will replace backslashes with forward slashes, in accordance + with the Zip + specification, for compatibility with Unix(tm) and ... get + this.... Amiga! + + + + If an application reads a ZipFile via or a related overload, and then explicitly + sets the FileName on an entry contained within the ZipFile, and + then calls , the application will effectively + rename the entry within the zip archive. + + + + If an application sets the value of FileName, then calls + Extract() on the entry, the entry is extracted to a file using the + newly set value as the filename. The FileName value is made + permanent in the zip archive only after a call to one of the + ZipFile.Save() methods on the ZipFile that contains the + ZipEntry. + + + + If an application attempts to set the FileName to a value that + would result in a duplicate entry in the ZipFile, an exception is + thrown. + + + + When a ZipEntry is contained within a ZipFile, applications + cannot rename the entry within the context of a foreach (For + Each in VB) loop, because of the way the ZipFile stores + entries. If you need to enumerate through all the entries and rename one + or more of them, use ZipFile.EntriesSorted as the + collection. See also, ZipFile.GetEnumerator(). + + + + + + + The stream that provides content for the ZipEntry. + + + + + + The application can use this property to set the input stream for an + entry on a just-in-time basis. Imagine a scenario where the application + creates a ZipFile comprised of content obtained from hundreds of + files, via calls to AddFile(). The DotNetZip library opens streams + on these files on a just-in-time basis, only when writing the entry out to + an external store within the scope of a ZipFile.Save() call. Only + one input stream is opened at a time, as each entry is being written out. + + + + Now imagine a different application that creates a ZipFile + with content obtained from hundreds of streams, added through . Normally the + application would supply an open stream to that call. But when large + numbers of streams are being added, this can mean many open streams at one + time, unnecessarily. + + + + To avoid this, call and specify delegates that open and close the stream at + the time of Save. + + + + + Setting the value of this property when the entry was not added from a + stream (for example, when the ZipEntry was added with or , or when the entry was added by + reading an existing zip archive) will throw an exception. + + + + + + + + A flag indicating whether the InputStream was provided Just-in-time. + + + + + + When creating a zip archive, an application can obtain content for one or + more of the ZipEntry instances from streams, using the method. At the time + of calling that method, the application can supply null as the value of + the stream parameter. By doing so, the application indicates to the + library that it will provide a stream for the entry on a just-in-time + basis, at the time one of the ZipFile.Save() methods is called and + the data for the various entries are being compressed and written out. + + + + In this case, the application can set the + property, typically within the SaveProgress event (event type: ) for that entry. + + + + The application will later want to call Close() and Dispose() on that + stream. In the SaveProgress event, when the event type is , the application can + do so. This flag indicates that the stream has been provided by the + application on a just-in-time basis and that it is the application's + responsibility to call Close/Dispose on that stream. + + + + + + + + An enum indicating the source of the ZipEntry. + + + + + The version of the zip engine needed to read the ZipEntry. + + + + + This is a readonly property, indicating the version of the Zip + specification that the extracting tool or library must support to + extract the given entry. Generally higher versions indicate newer + features. Older zip engines obviously won't know about new features, and + won't be able to extract entries that depend on those newer features. + + + + + value + Features + + + + 20 + a basic Zip Entry, potentially using PKZIP encryption. + + + + + 45 + The ZIP64 extension is used on the entry. + + + + + 46 + File is compressed using BZIP2 compression* + + + + 50 + File is encrypted using PkWare's DES, 3DES, (broken) RC2 or RC4 + + + + 51 + File is encrypted using PKWare's AES encryption or corrected RC2 encryption. + + + + 52 + File is encrypted using corrected RC2-64 encryption** + + + + 61 + File is encrypted using non-OAEP key wrapping*** + + + + 63 + File is compressed using LZMA, PPMd+, Blowfish, or Twofish + + + + + + There are other values possible, not listed here. DotNetZip supports + regular PKZip encryption, and ZIP64 extensions. DotNetZip cannot extract + entries that require a zip engine higher than 45. + + + + This value is set upon reading an existing zip file, or after saving a zip + archive. + + + + + + The comment attached to the ZipEntry. + + + + + Each entry in a zip file can optionally have a comment associated to + it. The comment might be displayed by a zip tool during extraction, for + example. + + + + By default, the Comment is encoded in IBM437 code page. You can + specify an alternative with and + . + + + + + + + + Indicates whether the entry requires ZIP64 extensions. + + + + + + This property is null (Nothing in VB) until a Save() method on the + containing instance has been called. The property is + non-null (HasValue is true) only after a Save() method has + been called. + + + + After the containing ZipFile has been saved, the Value of this + property is true if any of the following three conditions holds: the + uncompressed size of the entry is larger than 0xFFFFFFFF; the compressed + size of the entry is larger than 0xFFFFFFFF; the relative offset of the + entry within the zip archive is larger than 0xFFFFFFFF. These quantities + are not known until a Save() is attempted on the zip archive and + the compression is applied. + + + + If none of the three conditions holds, then the Value is false. + + + + A Value of false does not indicate that the entry, as saved in the + zip archive, does not use ZIP64. It merely indicates that ZIP64 is + not required. An entry may use ZIP64 even when not required if + the property on the containing + ZipFile instance is set to , or if + the property on the containing + ZipFile instance is set to + and the output stream was not seekable. + + + + + + + + Indicates whether the entry actually used ZIP64 extensions, as it was most + recently written to the output file or stream. + + + + + + This Nullable property is null (Nothing in VB) until a Save() + method on the containing instance has been + called. HasValue is true only after a Save() method has been + called. + + + + The value of this property for a particular ZipEntry may change + over successive calls to Save() methods on the containing ZipFile, + even if the file that corresponds to the ZipEntry does not. This + may happen if other entries contained in the ZipFile expand, + causing the offset for this particular entry to exceed 0xFFFFFFFF. + + + + + + + The bitfield for the entry as defined in the zip spec. You probably + never need to look at this. + + + + + You probably do not need to concern yourself with the contents of this + property, but in case you do: + + + + + bit + meaning + + + + 0 + set if encryption is used. + + + + 1-2 + + set to determine whether normal, max, fast deflation. DotNetZip library + always leaves these bits unset when writing (indicating "normal" + deflation"), but can read an entry with any value here. + + + + + 3 + + Indicates that the Crc32, Compressed and Uncompressed sizes are zero in the + local header. This bit gets set on an entry during writing a zip file, when + it is saved to a non-seekable output stream. + + + + + + 4 + reserved for "enhanced deflating". This library doesn't do enhanced deflating. + + + + 5 + set to indicate the zip is compressed patched data. This library doesn't do that. + + + + 6 + + set if PKWare's strong encryption is used (must also set bit 1 if bit 6 is + set). This bit is not set if WinZip's AES encryption is set. + + + + 7 + not used + + + + 8 + not used + + + + 9 + not used + + + + 10 + not used + + + + 11 + + Language encoding flag (EFS). If this bit is set, the filename and comment + fields for this file must be encoded using UTF-8. This library currently + does not support UTF-8. + + + + + 12 + Reserved by PKWARE for enhanced compression. + + + + 13 + + Used when encrypting the Central Directory to indicate selected data + values in the Local Header are masked to hide their actual values. See + the section in the Zip + specification describing the Strong Encryption Specification for + details. + + + + + 14 + Reserved by PKWARE. + + + + 15 + Reserved by PKWARE. + + + + + + + + + The compression method employed for this ZipEntry. + + + + + + The + Zip specification allows a variety of compression methods. This + library supports just two: 0x08 = Deflate. 0x00 = Store (no compression), + for reading or writing. + + + + When reading an entry from an existing zipfile, the value you retrieve + here indicates the compression method used on the entry by the original + creator of the zip. When writing a zipfile, you can specify either 0x08 + (Deflate) or 0x00 (None). If you try setting something else, you will get + an exception. + + + + You may wish to set CompressionMethod to CompressionMethod.None (0) + when zipping already-compressed data like a jpg, png, or mp3 file. + This can save time and cpu cycles. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionMethod to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionLevel property. If you set the CompressionMethod to a + value other than None, and CompressionLevel is previously + set to None, then CompressionLevel will be set to + Default. + + + + + + + In this example, the first entry added to the zip archive uses the default + behavior - compression is used where it makes sense. The second entry, + the MP3 file, is added to the archive without being compressed. + + using (ZipFile zip = new ZipFile(ZipFileToCreate)) + { + ZipEntry e1= zip.AddFile(@"notes\Readme.txt"); + ZipEntry e2= zip.AddFile(@"music\StopThisTrain.mp3"); + e2.CompressionMethod = CompressionMethod.None; + zip.Save(); + } + + + + Using zip As New ZipFile(ZipFileToCreate) + zip.AddFile("notes\Readme.txt") + Dim e2 as ZipEntry = zip.AddFile("music\StopThisTrain.mp3") + e2.CompressionMethod = CompressionMethod.None + zip.Save + End Using + + + + + + Sets the compression level to be used for the entry when saving the zip + archive. This applies only for CompressionMethod = DEFLATE. + + + + + When using the DEFLATE compression method, Varying the compression + level used on entries can affect the size-vs-speed tradeoff when + compression and decompressing data streams or files. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionLevel to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionMethod property. If you set the CompressionLevel + to a value other than None, CompressionMethod will be set + to Deflate, if it was previously None. + + + + Setting this property has no effect if the CompressionMethod is something + other than Deflate or None. + + + + + + + + The compressed size of the file, in bytes, within the zip archive. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the compressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The size of the file, in bytes, before compression, or after extraction. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the uncompressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The ratio of compressed size to uncompressed size of the ZipEntry. + + + + + This is a ratio of the compressed size to the uncompressed size of the + entry, expressed as a double in the range of 0 to 100+. A value of 100 + indicates no compression at all. It could be higher than 100 when the + compression algorithm actually inflates the data, as may occur for small + files, or uncompressible data that is encrypted. + + + + You could format it for presentation to a user via a format string of + "{3,5:F0}%" to see it as a percentage. + + + + If the size of the original uncompressed file is 0, implying a + denominator of 0, the return value will be zero. + + + + This property is valid after reading in an existing zip file, or after + saving the ZipFile that contains the ZipEntry. You cannot know the + effect of a compression transform until you try it. + + + + + + + The 32-bit CRC (Cyclic Redundancy Check) on the contents of the ZipEntry. + + + + + You probably don't need to concern yourself with this. It is used + internally by DotNetZip to verify files or streams upon extraction. + + The value is a 32-bit + CRC using 0xEDB88320 for the polynomial. This is the same CRC-32 used in + PNG, MPEG-2, and other protocols and formats. It is a read-only property; when + creating a Zip archive, the CRC for each entry is set only after a call to + Save() on the containing ZipFile. When reading an existing zip file, the value + of this property reflects the stored CRC for the entry. + + + + + + True if the entry is a directory (not a file). + This is a readonly property on the entry. + + + + + A derived property that is true if the entry uses encryption. + + + + + This is a readonly property on the entry. When reading a zip file, + the value for the ZipEntry is determined by the data read + from the zip file. After saving a ZipFile, the value of this + property for each ZipEntry indicates whether encryption was + actually used (which will have been true if the was set and the property + was something other than . + + + + + + Set this to specify which encryption algorithm to use for the entry when + saving it to a zip archive. + + + + + + Set this property in order to encrypt the entry when the ZipFile is + saved. When setting this property, you must also set a on the entry. If you set a value other than on this property and do not set a + Password then the entry will not be encrypted. The ZipEntry + data is encrypted as the ZipFile is saved, when you call or one of its cousins on the containing + ZipFile instance. You do not need to specify the Encryption + when extracting entries from an archive. + + + + The Zip specification from PKWare defines a set of encryption algorithms, + and the data formats for the zip archive that support them, and PKWare + supports those algorithms in the tools it produces. Other vendors of tools + and libraries, such as WinZip or Xceed, typically support a + subset of the algorithms specified by PKWare. These tools can + sometimes support additional different encryption algorithms and data + formats, not specified by PKWare. The AES Encryption specified and + supported by WinZip is the most popular example. This library supports a + subset of the complete set of algorithms specified by PKWare and other + vendors. + + + + There is no common, ubiquitous multi-vendor standard for strong encryption + within zip files. There is broad support for so-called "traditional" Zip + encryption, sometimes called Zip 2.0 encryption, as specified + by PKWare, but this encryption is considered weak and + breakable. This library currently supports the Zip 2.0 "weak" encryption, + and also a stronger WinZip-compatible AES encryption, using either 128-bit + or 256-bit key strength. If you want DotNetZip to support an algorithm + that is not currently supported, call the author of this library and maybe + we can talk business. + + + + The class also has a property. In most cases you will use + that property when setting encryption. This property takes + precedence over any Encryption set on the ZipFile itself. + Typically, you would use the per-entry Encryption when most entries in the + zip archive use one encryption algorithm, and a few entries use a + different one. If all entries in the zip file use the same Encryption, + then it is simpler to just set this property on the ZipFile itself, when + creating a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you can + modify the Encryption on an encrypted entry: you can remove encryption + from an entry that was encrypted; you can encrypt an entry that was not + encrypted previously; or, you can change the encryption algorithm. The + changes in encryption are not made permanent until you call Save() on the + ZipFile. To effect changes in encryption, the entry content is + streamed through several transformations, depending on the modification + the application has requested. For example if the entry is not encrypted + and the application sets Encryption to PkzipWeak, then at + the time of Save(), the original entry is read and decompressed, + then re-compressed and encrypted. Conversely, if the original entry is + encrypted with PkzipWeak encryption, and the application sets the + Encryption property to WinZipAes128, then at the time of + Save(), the original entry is decrypted via PKZIP encryption and + decompressed, then re-compressed and re-encrypted with AES. This all + happens automatically within the library, but it can be time-consuming for + large entries. + + + + Additionally, when updating archives, it is not possible to change the + password when changing the encryption algorithm. To change both the + algorithm and the password, you need to Save() the zipfile twice. First + set the Encryption to None, then call Save(). Then set the + Encryption to the new value (not "None"), then call Save() + once again. + + + + The WinZip AES encryption algorithms are not supported on the .NET Compact + Framework. + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other file + uses encryption. + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt") + ZipEntry e1= zip.AddFile("2008-Regional-Sales-Report.pdf"); + e1.Encryption= EncryptionAlgorithm.WinZipAes256; + e1.Password= "Top.Secret.No.Peeking!"; + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + // Specify the password that is used during extraction, for + // all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.AddFile("ReadMe.txt") + Dim e1 as ZipEntry + e1= zip.AddFile("2008-Regional-Sales-Report.pdf") + e1.Encryption= EncryptionAlgorithm.WinZipAes256 + e1.Password= "Top.Secret.No.Peeking!" + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + ' Specify the password that is used during extraction, for + ' all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + + Thrown in the setter if EncryptionAlgorithm.Unsupported is specified. + + + ZipEntry.Password + ZipFile.Encryption + + + + The Password to be used when encrypting a ZipEntry upon + ZipFile.Save(), or when decrypting an entry upon Extract(). + + + + + This is a write-only property on the entry. Set this to request that the + entry be encrypted when writing the zip archive, or set it to specify the + password to be used when extracting an existing entry that is encrypted. + + + + The password set here is implicitly used to encrypt the entry during the + operation, or to decrypt during the or operation. If you set + the Password on a ZipEntry after calling Save(), there is no + effect. + + + + Consider setting the property when using a + password. Answering concerns that the standard password protection + supported by all zip tools is weak, WinZip has extended the ZIP + specification with a way to use AES Encryption to protect entries in the + Zip file. Unlike the "PKZIP 2.0" encryption specified in the PKZIP + specification, AES + Encryption uses a standard, strong, tested, encryption + algorithm. DotNetZip can create zip archives that use WinZip-compatible + AES encryption, if you set the property. But, + archives created that use AES encryption may not be readable by all other + tools and libraries. For example, Windows Explorer cannot read a + "compressed folder" (a zip file) that uses AES encryption, though it can + read a zip file that uses "PKZIP encryption." + + + + The class also has a + property. This property takes precedence over any password set on the + ZipFile itself. Typically, you would use the per-entry Password when most + entries in the zip archive use one password, and a few entries use a + different password. If all entries in the zip file use the same password, + then it is simpler to just set this property on the ZipFile itself, + whether creating a zip archive or extracting a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you + cannot modify the password on any encrypted entry, except by extracting + the entry with the original password (if any), removing the original entry + via , and then adding a new + entry with a new Password. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Password property on that ZipEntry and then + calling Save() on the ZipFile does not update the password + on that entry in the archive. Neither is an exception thrown. Instead, + what happens during the Save() is the existing entry is copied + through to the new zip archive, in its original encrypted form. Upon + re-reading that archive, the entry can be decrypted with its original + password. + + + + If you read a ZipFile, and there is an un-encrypted entry, you can set the + Password on the entry and then call Save() on the ZipFile, and get + encryption on that entry. + + + + + + + This example creates a zip file with two entries, and then extracts the + entries from the zip file. When creating the zip file, the two files are + added to the zip file using password protection. Each entry uses a + different password. During extraction, each file is extracted with the + appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry; + entry= zip.AddFile("Declaration.txt"); + entry.Password= "123456!"; + entry = zip.AddFile("Report.xls"); + entry.Password= "1Secret!"; + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + ZipEntry entry; + entry = zip["Declaration.txt"]; + entry.Password = "123456!"; + entry.Extract("extractDir"); + entry = zip["Report.xls"]; + entry.Password = "1Secret!"; + entry.Extract("extractDir"); + } + + + + + Using zip As New ZipFile + Dim entry as ZipEntry + entry= zip.AddFile("Declaration.txt") + entry.Password= "123456!" + entry = zip.AddFile("Report.xls") + entry.Password= "1Secret!" + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + Dim entry as ZipEntry + entry = zip("Declaration.txt") + entry.Password = "123456!" + entry.Extract("extractDir") + entry = zip("Report.xls") + entry.Password = "1Secret!" + entry.Extract("extractDir") + End Using + + + + + + + ZipFile.Password + + + + The action the library should take when extracting a file that already exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting + an entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file to be + extracted does not already exist. + + + + + + + This example shows how to set the ExtractExistingFile property in + an ExtractProgress event, in response to user input. The + ExtractProgress event is invoked if and only if the + ExtractExistingFile property was previously set to + ExtractExistingFileAction.InvokeExtractProgressEvent. + + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + Console.WriteLine("extract {0} ", e.CurrentEntry.FileName); + + else if (e.EventType == ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite) + { + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user if he wants overwrite the file + do + { + Console.Write("Overwrite {0} in {1} ? (y/n/C) ", entry.FileName, e.ExtractLocation); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && response[0]!='Y' && + response[0]!='N' && response[0]!='C'); + + if (response[0]=='C') + e.Cancel = true; + else if (response[0]=='Y') + entry.ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently; + else + entry.ExtractExistingFile= ExtractExistingFileAction.DoNotOverwrite; + } + } + + + + + + The action to take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur within a call to ZipFile.Save, as the various files contained + in a ZipFile are being saved into the zip archive. During the + Save, DotNetZip will perform a File.Open on the file + associated to the ZipEntry, and then will read the entire contents of + the file as it is zipped. Either the open or the Read may fail, because + of lock conflicts or other reasons. Using this property, you can + specify the action to take when such errors occur. + + + + Typically you will NOT set this property on individual ZipEntry + instances. Instead, you will set the ZipFile.ZipErrorAction property on + the ZipFile instance, before adding any entries to the + ZipFile. If you do this, errors encountered on behalf of any of + the entries in the ZipFile will be handled the same way. + + + + But, if you use a handler, you will want + to set this property on the ZipEntry within the handler, to + communicate back to DotNetZip what you would like to do with the + particular error. + + + + + + + + + Indicates whether the entry was included in the most recent save. + + + An entry can be excluded or skipped from a save if there is an error + opening or reading the entry. + + + + + + A callback that allows the application to specify the compression to use + for a given entry that is about to be added to the zip archive. + + + + + See + + + + + + Set to indicate whether to use UTF-8 encoding for filenames and comments. + + + + + + If this flag is set, the comment and filename for the entry will be + encoded with UTF-8, as described in the Zip + specification, if necessary. "Necessary" means, the filename or + entry comment (if any) cannot be reflexively encoded and decoded using the + default code page, IBM437. + + + + Setting this flag to true is equivalent to setting to System.Text.Encoding.UTF8. + + + + This flag has no effect or relation to the text encoding used within the + file itself. + + + + + + + The text encoding to use for the FileName and Comment on this ZipEntry, + when the default encoding is insufficient. + + + + + + Don't use this property. See . + + + + + + + Specifies the alternate text encoding used by this ZipEntry + + + + The default text encoding used in Zip files for encoding filenames and + comments is IBM437, which is something like a superset of ASCII. In + cases where this is insufficient, applications can specify an + alternate encoding. + + + When creating a zip file, the usage of the alternate encoding is + governed by the property. + Typically you would set both properties to tell DotNetZip to employ an + encoding that is not IBM437 in the zipfile you are creating. + + + Keep in mind that because the ZIP specification states that the only + valid encodings to use are IBM437 and UTF-8, if you use something + other than that, then zip tools and libraries may not be able to + successfully read the zip archive you generate. + + + The zip specification states that applications should presume that + IBM437 is in use, except when a special bit is set, which indicates + UTF-8. There is no way to specify an arbitrary code page, within the + zip file itself. When you create a zip file encoded with gb2312 or + ibm861 or anything other than IBM437 or UTF-8, then the application + that reads the zip file needs to "know" which code page to use. In + some cases, the code page used when reading is chosen implicitly. For + example, WinRar uses the ambient code page for the host desktop + operating system. The pitfall here is that if you create a zip in + Copenhagen and send it to Tokyo, the reader of the zipfile may not be + able to decode successfully. + + + + This example shows how to create a zipfile encoded with a + language-specific encoding: + + using (var zip = new ZipFile()) + { + zip.AlternateEnoding = System.Text.Encoding.GetEncoding("ibm861"); + zip.AlternateEnodingUsage = ZipOption.Always; + zip.AddFileS(arrayOfFiles); + zip.Save("Myarchive-Encoded-in-IBM861.zip"); + } + + + + + + + Describes if and when this instance should apply + AlternateEncoding to encode the FileName and Comment, when + saving. + + + + + + Indicates whether an entry is marked as a text file. Be careful when + using on this property. Unless you have a good reason, you should + probably ignore this property. + + + + + The ZIP format includes a provision for specifying whether an entry in + the zip archive is a text or binary file. This property exposes that + metadata item. Be careful when using this property: It's not clear + that this property as a firm meaning, across tools and libraries. + + + + To be clear, when reading a zip file, the property value may or may + not be set, and its value may or may not be valid. Not all entries + that you may think of as "text" entries will be so marked, and entries + marked as "text" are not guaranteed in any way to be text entries. + Whether the value is set and set correctly depends entirely on the + application that produced the zip file. + + + + There are many zip tools available, and when creating zip files, some + of them "respect" the IsText metadata field, and some of them do not. + Unfortunately, even when an application tries to do "the right thing", + it's not always clear what "the right thing" is. + + + + There's no firm definition of just what it means to be "a text file", + and the zip specification does not help in this regard. Twenty years + ago, text was ASCII, each byte was less than 127. IsText meant, all + bytes in the file were less than 127. These days, it is not the case + that all text files have all bytes less than 127. Any unicode file + may have bytes that are above 0x7f. The zip specification has nothing + to say on this topic. Therefore, it's not clear what IsText really + means. + + + + This property merely tells a reading application what is stored in the + metadata for an entry, without guaranteeing its validity or its + meaning. + + + + When DotNetZip is used to create a zipfile, it attempts to set this + field "correctly." For example, if a file ends in ".txt", this field + will be set. Your application may override that default setting. When + writing a zip file, you must set the property before calling + Save() on the ZipFile. + + + + When reading a zip file, a more general way to decide just what kind + of file is contained in a particular entry is to use the file type + database stored in the operating system. The operating system stores + a table that says, a file with .jpg extension is a JPG image file, a + file with a .xml extension is an XML document, a file with a .txt is a + pure ASCII text document, and so on. To get this information on + Windows, you + need to read and parse the registry. + + + + + using (var zip = new ZipFile()) + { + var e = zip.UpdateFile("Descriptions.mme", ""); + e.IsText = true; + zip.Save(zipPath); + } + + + + Using zip As New ZipFile + Dim e2 as ZipEntry = zip.AddFile("Descriptions.mme", "") + e.IsText= True + zip.Save(zipPath) + End Using + + + + + + An enum that specifies the type of timestamp available on the ZipEntry. + + + + + + The last modified time of a file can be stored in multiple ways in + a zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + This bit field describes which of the formats were found in a ZipEntry that was read. + + + + + + + Default value. + + + + + A DOS timestamp with 2-second precision. + + + + + A Windows timestamp with 100-ns precision. + + + + + A Unix timestamp with 1-second precision. + + + + + A Unix timestamp with 1-second precision, stored in InfoZip v1 format. This + format is outdated and is supported for reading archives only. + + + + + The method of compression to use for a particular ZipEntry. + + + + PKWare's + ZIP Specification describes a number of distinct + cmopression methods that can be used within a zip + file. DotNetZip supports a subset of them. + + + + + No compression at all. For COM environments, the value is 0 (zero). + + + + + DEFLATE compression, as described in IETF RFC + 1951. This is the "normal" compression used in zip + files. For COM environments, the value is 8. + + + + + BZip2 compression, a compression algorithm developed by Julian Seward. + For COM environments, the value is 12. + + + + + The ZipFile type represents a zip archive file. + + + + + This is the main type in the DotNetZip class library. This class reads and + writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides a general purpose zip file capability. Use it to read, + create, or update zip files. When you want to create zip files using a + Stream type to write the zip file, you may want to consider the class. + + + + Both the ZipOutputStream class and the ZipFile class can + be used to create zip files. Both of them support many of the common zip + features, including Unicode, different compression methods and levels, + and ZIP64. They provide very similar performance when creating zip + files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipFile class implements the interface. In order for ZipFile to + produce a valid zip file, you use use it within a using clause (Using + in VB), or call the Dispose() method explicitly. See the examples + for how to employ a using clause. + + + + + + + Adds an item, either a file or a directory, to a zip file archive. + + + + + This method is handy if you are adding things to zip archive and don't + want to bother distinguishing between directories or files. Any files are + added as single entries. A directory added through this method is added + recursively: all files and subdirectories contained within the directory + are added to the ZipFile. + + + + The name of the item may be a relative path or a fully-qualified + path. Remember, the items contained in ZipFile instance get written + to the disk only when you call or a similar + save method. + + + + The directory name used for the file within the archive is the same + as the directory name (potentially a relative path) specified in the + . + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + This method has two overloads. + + the name of the file or directory to add. + + The ZipEntry added. + + + + Adds an item, either a file or a directory, to a zip file archive, + explicitly specifying the directory path to be used in the archive. + + + + + If adding a directory, the add is recursive on all files and + subdirectories contained within it. + + + The name of the item may be a relative path or a fully-qualified path. + The item added by this call to the ZipFile is not read from the + disk nor written to the zip file archive until the application calls + Save() on the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive, which would override the + "natural" path of the filesystem file. + + + + Encryption will be used on the file data if the Password has + been set on the ZipFile object, prior to calling this method. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + Thrown if the file or directory passed in does not exist. + + + the name of the file or directory to add. + + + + The name of the directory path to use within the zip archive. This path + need not refer to an extant directory in the current filesystem. If the + files within the zip are later extracted, this is the path used for the + extracted file. Passing null (Nothing in VB) will use the + path on the fileOrDirectoryName. Passing the empty string ("") will + insert the item at the root path within the archive. + + + + + + + + This example shows how to zip up a set of files into a flat hierarchy, + regardless of where in the filesystem the files originated. The resulting + zip archive will contain a toplevel directory named "flat", which itself + will contain files Readme.txt, MyProposal.docx, and Image1.jpg. A + subdirectory under "flat" called SupportFiles will contain all the files + in the "c:\SupportFiles" directory on disk. + + + String[] itemnames= { + "c:\\fixedContent\\Readme.txt", + "MyProposal.docx", + "c:\\SupportFiles", // a directory + "images\\Image1.jpg" + }; + + try + { + using (ZipFile zip = new ZipFile()) + { + for (int i = 1; i < itemnames.Length; i++) + { + // will add Files or Dirs, recurses and flattens subdirectories + zip.AddItem(itemnames[i],"flat"); + } + zip.Save(ZipToCreate); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Dim itemnames As String() = _ + New String() { "c:\fixedContent\Readme.txt", _ + "MyProposal.docx", _ + "SupportFiles", _ + "images\Image1.jpg" } + Try + Using zip As New ZipFile + Dim i As Integer + For i = 1 To itemnames.Length - 1 + ' will add Files or Dirs, recursing and flattening subdirectories. + zip.AddItem(itemnames(i), "flat") + Next i + zip.Save(ZipToCreate) + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString()) + End Try + + + The ZipEntry added. + + + + Adds a File to a Zip file archive. + + + + + This call collects metadata for the named file in the filesystem, + including the file attributes and the timestamp, and inserts that metadata + into the resulting ZipEntry. Only when the application calls Save() on + the ZipFile, does DotNetZip read the file from the filesystem and + then write the content to the zip file archive. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called photos\personal. The pdf file + will be included into a folder within the zip called Desktop. + + + try + { + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("c:\\photos\\personal\\7440-N49th.png"); + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf"); + zip.AddFile("ReadMe.txt"); + + zip.Save("Package.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: " + ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + zip.AddFile("c:\photos\personal\7440-N49th.png") + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf") + zip.AddFile("ReadMe.txt") + zip.Save("Package.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString) + End Try + + + + This method has two overloads. + + + + + + + The name of the file to add. It should refer to a file in the filesystem. + The name of the file may be a relative path or a fully-qualified path. + + The ZipEntry corresponding to the File added. + + + + Adds a File to a Zip file archive, potentially overriding the path to be + used within the zip archive. + + + + + The file added by this call to the ZipFile is not written to the + zip file archive until the application calls Save() on the ZipFile. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called images. The pdf file will be + included into a folder within the zip called files\docs, and will be + encrypted with the given password. + + + try + { + using (ZipFile zip = new ZipFile()) + { + // the following entry will be inserted at the root in the archive. + zip.AddFile("c:\\datafiles\\ReadMe.txt", ""); + // this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\\photos\\personal\\7440-N49th.png", "images"); + // the following will result in a password-protected file called + // files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!"; + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf", "files\\docs"); + zip.Save("Archive.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + ' the following entry will be inserted at the root in the archive. + zip.AddFile("c:\datafiles\ReadMe.txt", "") + ' this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\photos\personal\7440-N49th.png", "images") + ' the following will result in a password-protected file called + ' files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!" + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf", "files\documents") + zip.Save("Archive.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1) + End Try + + + + + + + + + The name of the file to add. The name of the file may be a relative path + or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the fileName. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on the fileName, if any. Passing the empty string + ("") will insert the item at the root path within the archive. + + + The ZipEntry corresponding to the file added. + + + + This method removes a collection of entries from the ZipFile. + + + + A collection of ZipEntry instances from this zip file to be removed. For + example, you can pass in an array of ZipEntry instances; or you can call + SelectEntries(), and then add or remove entries from that + ICollection<ZipEntry> (ICollection(Of ZipEntry) in VB), and pass + that ICollection to this method. + + + + + + + + This method removes a collection of entries from the ZipFile, by name. + + + + A collection of strings that refer to names of entries to be removed + from the ZipFile. For example, you can pass in an array or a + List of Strings that provide the names of entries to be removed. + + + + + + + + This method adds a set of files to the ZipFile. + + + + + Use this method to add a set of files to the zip archive, in one call. + For example, a list of files received from + System.IO.Directory.GetFiles() can be added to a zip archive in one + call. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to add. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + This example shows how to create a zip file, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile + ' Store all files found in the top level directory, into the zip archive. + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save(ZipFileToCreate) + End Using + + + + + + + + Adds or updates a set of files in the ZipFile. + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to update. Each string should refer to a file in + the filesystem. The name of the file may be a relative path or a fully-qualified path. + + + + + + Adds a set of files to the ZipFile, using the + specified directory path in the archive. + + + + + Any directory structure that may be present in the + filenames contained in the list is "flattened" in the + archive. Each file in the list is added to the archive in + the specified top-level directory. + + + + For ZipFile properties including , , , , , , and , their respective values at the + time of this call will be applied to each ZipEntry added. + + + + + The names of the files to add. Each string should refer to + a file in the filesystem. The name of the file may be a + relative path or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + Th is path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds a set of files to the ZipFile, using the specified directory + path in the archive, and preserving the full directory structure in the + filenames. + + + + + If preserveDirHierarchy is true, any directory structure present in the + filenames contained in the list is preserved in the archive. On the other + hand, if preserveDirHierarchy is false, any directory structure that may + be present in the filenames contained in the list is "flattened" in the + archive; Each file in the list is added to the archive in the specified + top-level directory. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + The names of the files to add. Each string should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + whether the entries in the zip archive will reflect the directory + hierarchy that is present in the various filenames. For example, if + includes two paths, \Animalia\Chordata\Mammalia\Info.txt and + \Plantae\Magnoliophyta\Dicotyledon\Info.txt, then calling this method with + = false will result in an + exception because of a duplicate entry name, while calling this method + with = true will result in the + full direcory paths being included in the entries added to the ZipFile. + + + + + + Adds or updates a set of files to the ZipFile, using the specified + directory path in the archive. + + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The names of the files to add or update. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. The UpdateFile method might more accurately be + called "AddOrUpdateFile". + + + + Upon success, there is no way for the application to learn whether the file + was added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + This example shows how to Update an existing entry in a zipfile. The first + call to UpdateFile adds the file to the newly-created zip archive. The + second call to UpdateFile updates the content for that file in the zip + archive. + + + using (ZipFile zip1 = new ZipFile()) + { + // UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\\Readme.txt"); + zip1.UpdateFile("CustomerList.csv"); + zip1.Comment = "This zip archive has been created."; + zip1.Save("Content.zip"); + } + + using (ZipFile zip2 = ZipFile.Read("Content.zip")) + { + zip2.UpdateFile("Updates\\Readme.txt"); + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed."; + zip2.Save(); + } + + + + Using zip1 As New ZipFile + ' UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\Readme.txt") + zip1.UpdateFile("CustomerList.csv") + zip1.Comment = "This zip archive has been created." + zip1.Save("Content.zip") + End Using + + Using zip2 As ZipFile = ZipFile.Read("Content.zip") + zip2.UpdateFile("Updates\Readme.txt") + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed." + zip2.Save + End Using + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. The entry to be added or + updated is found by using the specified directory path, combined with the + basename of the specified filename. + + + + Upon success, there is no way for the application to learn if the file was + added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the + fileName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + fileName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Add or update a directory in a zip archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated in + the zip archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a directory in the zip archive at the specified root + directory in the archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated + in the zip archive. + + + + Specifies a directory path to use to override any path in the + directoryName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + directoryName, if any. Passing the empty string ("") will insert + the item at the root path within the archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a file or directory in the zip archive. + + + + + This is useful when the application is not sure or does not care if the + item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry() if an entry by the same name + already exists, followed calling by AddItem(). + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + the path to the file or directory to be added or updated. + + + + + Add or update a file or directory. + + + + + This method is useful when the application is not sure or does not care if + the item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry(), if an entry by that name + exists, and then calling AddItem(). + + + + This version of the method allows the caller to explicitly specify the + directory path to be used for the item being added to the archive. The + entry or entries that are added or updated will use the specified + DirectoryPathInArchive. Extracting the entry from the archive will + result in a file stored in that directory path. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The path for the File or Directory to be added or updated. + + + Specifies a directory path to use to override any path in the + itemName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + itemName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string. + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. The content for the entry is encoded using the default text + encoding for the machine, or on Silverlight, using UTF-8. + + + + The content of the file, should it be extracted from the zip. + + + + The name, including any path, to use for the entry within the archive. + + + The ZipEntry added. + + + + This example shows how to add an entry to the zipfile, using a string as + content for that entry. + + + string Content = "This string will be the content of the Readme.txt file in the zip archive."; + using (ZipFile zip1 = new ZipFile()) + { + zip1.AddFile("MyDocuments\\Resume.doc", "files"); + zip1.AddEntry("Readme.txt", Content); + zip1.Comment = "This zip file was created at " + System.DateTime.Now.ToString("G"); + zip1.Save("Content.zip"); + } + + + + Public Sub Run() + Dim Content As String = "This string will be the content of the Readme.txt file in the zip archive." + Using zip1 As ZipFile = New ZipFile + zip1.AddEntry("Readme.txt", Content) + zip1.AddFile("MyDocuments\Resume.doc", "files") + zip1.Comment = ("This zip file was created at " & DateTime.Now.ToString("G")) + zip1.Save("Content.zip") + End Using + End Sub + + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string, and using the specified text encoding. + + + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. + + + + The content for the entry, a string value, is encoded using the given + text encoding. A BOM (byte-order-mark) is emitted into the file, if the + Encoding parameter is set for that. + + + + Most Encoding classes support a constructor that accepts a boolean, + indicating whether to emit a BOM or not. For example see . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the fileName, as specified + in . + + + The ZipEntry added. + + + + + Create an entry in the ZipFile using the given Stream + as input. The entry will have the given filename. + + + + + + The application should provide an open, readable stream; in this case it + will be read during the call to or one of + its overloads. + + + + The passed stream will be read from its current position. If + necessary, callers should set the position in the stream before + calling AddEntry(). This might be appropriate when using this method + with a MemoryStream, for example. + + + + In cases where a large number of streams will be added to the + ZipFile, the application may wish to avoid maintaining all of the + streams open simultaneously. To handle this situation, the application + should use the + overload. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example adds a single entry to a ZipFile via a Stream. + + + + String zipToCreate = "Content.zip"; + String fileNameInArchive = "Content-From-Stream.bin"; + using (System.IO.Stream streamToRead = MyStreamOpener()) + { + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry= zip.AddEntry(fileNameInArchive, streamToRead); + zip.AddFile("Readme.txt"); + zip.Save(zipToCreate); // the stream is read implicitly here + } + } + + + + Dim zipToCreate As String = "Content.zip" + Dim fileNameInArchive As String = "Content-From-Stream.bin" + Using streamToRead as System.IO.Stream = MyStreamOpener() + Using zip As ZipFile = New ZipFile() + Dim entry as ZipEntry = zip.AddEntry(fileNameInArchive, streamToRead) + zip.AddFile("Readme.txt") + zip.Save(zipToCreate) '' the stream is read implicitly, here + End Using + End Using + + + + + + + The name, including any path, which is shown in the zip file for the added + entry. + + + The input stream from which to grab content for the file + + The ZipEntry added. + + + + Add a ZipEntry for which content is written directly by the application. + + + + + When the application needs to write the zip entry data, use this + method to add the ZipEntry. For example, in the case that the + application wishes to write the XML representation of a DataSet into + a ZipEntry, the application can use this method to do so. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + About progress events: When using the WriteDelegate, DotNetZip does + not issue any SaveProgress events with EventType = + Saving_EntryBytesRead. (This is because it is the + application's code that runs in WriteDelegate - there's no way for + DotNetZip to know when to issue a EntryBytesRead event.) + Applications that want to update a progress bar or similar status + indicator should do so from within the WriteDelegate + itself. DotNetZip will issue the other SaveProgress events, + including + Saving_Started, + + Saving_BeforeWriteEntry, and + Saving_AfterWriteEntry. + + + + Note: When you use PKZip encryption, it's normally necessary to + compute the CRC of the content to be encrypted, before compressing or + encrypting it. Therefore, when using PKZip encryption with a + WriteDelegate, the WriteDelegate CAN BE called twice: once to compute + the CRC, and the second time to potentially compress and + encrypt. Surprising, but true. This is because PKWARE specified that + the encryption initialization data depends on the CRC. + If this happens, for each call of the delegate, your + application must stream the same entry data in its entirety. If your + application writes different data during the second call, it will + result in a corrupt zip file. + + + + The double-read behavior happens with all types of entries, not only + those that use WriteDelegate. It happens if you add an entry from a + filesystem file, or using a string, or a stream, or an opener/closer + pair. But in those cases, DotNetZip takes care of reading twice; in + the case of the WriteDelegate, the application code gets invoked + twice. Be aware. + + + + As you can imagine, this can cause performance problems for large + streams, and it can lead to correctness problems when you use a + WriteDelegate. This is a pretty big pitfall. There are two + ways to avoid it. First, and most preferred: don't use PKZIP + encryption. If you use the WinZip AES encryption, this problem + doesn't occur, because the encryption protocol doesn't require the CRC + up front. Second: if you do choose to use PKZIP encryption, write out + to a non-seekable stream (like standard output, or the + Response.OutputStream in an ASP.NET application). In this case, + DotNetZip will use an alternative encryption protocol that does not + rely on the CRC of the content. This also implies setting bit 3 in + the zip entry, which still presents problems for some zip tools. + + + + In the future I may modify DotNetZip to *always* use bit 3 when PKZIP + encryption is in use. This seems like a win overall, but there will + be some work involved. If you feel strongly about it, visit the + DotNetZip forums and vote up the Workitem + tracking this issue. + + + + + the name of the entry to add + the delegate which will write the entry content + the ZipEntry added + + + + This example shows an application filling a DataSet, then saving the + contents of that DataSet as XML, into a ZipEntry in a ZipFile, using an + anonymous delegate in C#. The DataSet XML is never saved to a disk file. + + + var c1= new System.Data.SqlClient.SqlConnection(connstring1); + var da = new System.Data.SqlClient.SqlDataAdapter() + { + SelectCommand= new System.Data.SqlClient.SqlCommand(strSelect, c1) + }; + + DataSet ds1 = new DataSet(); + da.Fill(ds1, "Invoices"); + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,stream) => ds1.WriteXml(stream) ); + zip.Save(zipFileName); + } + + + + + + This example uses an anonymous method in C# as the WriteDelegate to provide + the data for the ZipEntry. The example is a bit contrived - the + AddFile() method is a simpler way to insert the contents of a file + into an entry in a zip file. On the other hand, if there is some sort of + processing or transformation of the file contents required before writing, + the application could use the WriteDelegate to do it, in this way. + + + using (var input = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite )) + { + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,output) => + { + byte[] buffer = new byte[BufferSize]; + int n; + while ((n = input.Read(buffer, 0, buffer.Length)) != 0) + { + // could transform the data here... + output.Write(buffer, 0, n); + // could update a progress bar here + } + }); + + zip.Save(zipFileName); + } + } + + + + + + This example uses a named delegate in VB to write data for the given + ZipEntry (VB9 does not have anonymous delegates). The example here is a bit + contrived - a simpler way to add the contents of a file to a ZipEntry is to + simply use the appropriate AddFile() method. The key scenario for + which the WriteDelegate makes sense is saving a DataSet, in XML + format, to the zip file. The DataSet can write XML to a stream, and the + WriteDelegate is the perfect place to write into the zip file. There may be + other data structures that can write to a stream, but cannot be read as a + stream. The WriteDelegate would be appropriate for those cases as + well. + + + Private Sub WriteEntry (ByVal name As String, ByVal output As Stream) + Using input As FileStream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer = -1 + Dim buffer As Byte() = New Byte(BufferSize){} + Do While n <> 0 + n = input.Read(buffer, 0, buffer.Length) + output.Write(buffer, 0, n) + Loop + End Using + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + Add an entry, for which the application will provide a stream, + just-in-time. + + + + + In cases where the application wishes to open the stream that holds + the content for the ZipEntry, on a just-in-time basis, the application + can use this method and provide delegates to open and close the + stream. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example uses anonymous methods in C# to open and close the + source stream for the content for a zip entry. In a real + application, the logic for the OpenDelegate would probably be more + involved. + + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, + (name) => File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite ), + (name, stream) => stream.Close() + ); + + zip.Save(zipFileName); + } + + + + + + + This example uses delegates in VB.NET to open and close the + the source stream for the content for a zip entry. VB 9.0 lacks + support for "Sub" lambda expressions, and so the CloseDelegate must + be an actual, named Sub. + + + + Function MyStreamOpener(ByVal entryName As String) As Stream + '' This simply opens a file. You probably want to do somethinig + '' more involved here: open a stream to read from a database, + '' open a stream on an HTTP connection, and so on. + Return File.OpenRead(entryName) + End Function + + Sub MyStreamCloser(entryName As String, stream As Stream) + stream.Close() + End Sub + + Public Sub Run() + Dim dirToZip As String = "fodder" + Dim zipFileToCreate As String = "Archive.zip" + Dim opener As OpenDelegate = AddressOf MyStreamOpener + Dim closer As CloseDelegate = AddressOf MyStreamCloser + Dim numFilestoAdd As Int32 = 4 + Using zip As ZipFile = New ZipFile + Dim i As Integer + For i = 0 To numFilesToAdd - 1 + zip.AddEntry(String.Format("content-{0:000}.txt"), opener, closer) + Next i + zip.Save(zipFileToCreate) + End Using + End Sub + + + + + the name of the entry to add + + the delegate that will be invoked to open the stream + + + the delegate that will be invoked to close the stream + + the ZipEntry added + + + + + Updates the given entry in the ZipFile, using the given + string as content for the ZipEntry. + + + + + + Calling this method is equivalent to removing the ZipEntry for + the given file name and directory path, if it exists, and then calling + . See the documentation for + that method for further explanation. The string content is encoded + using the default encoding for the machine, or on Silverlight, using + UTF-8. This encoding is distinct from the encoding used for the + filename itself. See . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given string as + content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the filename. See . + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegate + as the source for content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + the delegate which will write the entry content. + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegates + to open and close the stream that provides the content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + the delegate that will be invoked to open the stream + + + the delegate that will be invoked to close the stream + + + The ZipEntry added or updated. + + + + + Updates the given entry in the ZipFile, using the given stream as + input, and the given filename and given directory Path. + + + + + Calling the method is equivalent to calling RemoveEntry() if an + entry by the same name already exists, and then calling AddEntry() + with the given fileName and stream. + + + + The stream must be open and readable during the call to + ZipFile.Save. You can dispense the stream on a just-in-time basis + using the property. Check the + documentation of that property for more information. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name, including any path, to use within the archive for the entry. + + + The input stream from which to read file data. + The ZipEntry added. + + + + Add an entry into the zip archive using the given filename and + directory path within the archive, and the given content for the + file. No file is created in the filesystem. + + + The data to use for the entry. + + + The name, including any path, to use within the archive for the entry. + + + The ZipEntry added. + + + + Updates the given entry in the ZipFile, using the given byte + array as content for the entry. + + + + Calling this method is equivalent to removing the ZipEntry + for the given filename and directory path, if it exists, and then + calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + The content to use for the ZipEntry. + + The ZipEntry added. + + + + + Adds the contents of a filesystem directory to a Zip file archive. + + + + + + The name of the directory may be a relative path or a fully-qualified + path. Any files within the named directory are added to the archive. Any + subdirectories within the named directory are also added to the archive, + recursively. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + If you want the entries to appear in a containing directory in the zip + archive itself, then you should call the AddDirectory() overload that + allows you to explicitly specify a directory path for use in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + + + + This method has 2 overloads. + + The name of the directory to add. + The ZipEntry added. + + + + Adds the contents of a filesystem directory to a Zip file archive, + overriding the path to be used for entries in the archive. + + + + + The name of the directory may be a relative path or a fully-qualified + path. The add operation is recursive, so that any files or subdirectories + within the name directory are also added to the archive. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + In this code, calling the ZipUp() method with a value of "c:\reports" for + the directory parameter will result in a zip file structure in which all + entries are contained in a toplevel "reports" directory. + + + + public void ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) + { + zip.AddDirectory(directory, System.IO.Path.GetFileName(directory)); + zip.Save(targetZip); + } + } + + + + + + + + The name of the directory to add. + + + Specifies a directory path to use to override any path in the + DirectoryName. This path may, or may not, correspond to a real directory + in the current filesystem. If the zip is later extracted, this is the + path used for the extracted file or directory. Passing null + (Nothing in VB) or the empty string ("") will insert the items at + the root path within the archive. + + + The ZipEntry added. + + + + Creates a directory in the zip archive. + + + + + + Use this when you want to create a directory in the archive but there is + no corresponding filesystem representation for that directory. + + + + You will probably not need to do this in your code. One of the only times + you will want to do this is if you want an empty directory in the zip + archive. The reason: if you add a file to a zip archive that is stored + within a multi-level directory, all of the directory tree is implicitly + created in the zip archive. + + + + + + The name of the directory to create in the archive. + + The ZipEntry added. + + + + Checks a zip file to see if its directory is consistent. + + + + + + In cases of data error, the directory within a zip file can get out + of synch with the entries in the zip file. This method checks the + given zip file and returns true if this has occurred. + + + This method may take a long time to run for large zip files. + + + This method is not supported in the Reduced or Compact Framework + versions of DotNetZip. + + + + Developers using COM can use the ComHelper.CheckZip(String) + method. + + + + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + + + + Checks a zip file to see if its directory is consistent, + and optionally fixes the directory if necessary. + + + + + + In cases of data error, the directory within a zip file can get out of + synch with the entries in the zip file. This method checks the given + zip file, and returns true if this has occurred. It also optionally + fixes the zipfile, saving the fixed copy in Name_Fixed.zip. + + + + This method may take a long time to run for large zip files. It + will take even longer if the file actually needs to be fixed, and if + fixIfNecessary is true. + + + + This method is not supported in the Reduced or Compact + Framework versions of DotNetZip. + + + + + The filename to of the zip file to check. + + If true, the method will fix the zip file if + necessary. + + + a TextWriter in which messages generated while checking will be written. + + + true if the named zip is OK; false if the file needs to be fixed. + + + + + + + Rewrite the directory within a zipfile. + + + + + + In cases of data error, the directory in a zip file can get out of + synch with the entries in the zip file. This method attempts to fix + the zip file if this has occurred. + + + This can take a long time for large zip files. + + This won't work if the zip file uses a non-standard + code page - neither IBM437 nor UTF-8. + + + This method is not supported in the Reduced or Compact Framework + versions of DotNetZip. + + + + Developers using COM can use the ComHelper.FixZipDirectory(String) + method. + + + + + The filename to of the zip file to fix. + + + + + + + Verify the password on a zip file. + + + + + Keep in mind that passwords in zipfiles are applied to + zip entries, not to the entire zip file. So testing a + zipfile for a particular password doesn't work in the + general case. On the other hand, it's often the case + that a single password will be used on all entries in a + zip file. This method works for that case. + + + There is no way to check a password without doing the + decryption. So this code decrypts and extracts the given + zipfile into + + + + The filename to of the zip file to fix. + + The password to check. + + a bool indicating whether the password matches. + + + + Returns true if an entry by the given name exists in the ZipFile. + + + the name of the entry to find + true if an entry with the given name exists; otherwise false. + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Creates a new ZipFile instance, using the specified filename. + + + + + Applications can use this constructor to create a new ZipFile for writing, + or to slurp in an existing zip archive for read and update purposes. + + + + To create a new zip archive, an application can call this constructor, + passing the name of a file that does not exist. The name may be a fully + qualified path. Then the application can add directories or files to the + ZipFile via AddDirectory(), AddFile(), AddItem() + and then write the zip archive to the disk by calling Save(). The + zip file is not actually opened and written to the disk until the + application calls ZipFile.Save(). At that point the new zip file + with the given name is created. + + + + If you won't know the name of the Zipfile until the time you call + ZipFile.Save(), or if you plan to save to a stream (which has no + name), then you should use the no-argument constructor. + + + + The application can also call this constructor to read an existing zip + archive. passing the name of a valid zip file that does exist. But, it's + better form to use the static method, + passing the name of the zip file, because using ZipFile.Read() in + your code communicates very clearly what you are doing. In either case, + the file is then read into the ZipFile instance. The app can then + enumerate the entries or can modify the zip file, for example adding + entries, removing entries, changing comments, and so on. + + + + One advantage to this parameterized constructor: it allows applications to + use the same code to add items to a zip archive, regardless of whether the + zip file exists. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + By the way, since DotNetZip is so easy to use, don't you think you should + donate $5 or $10? + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + This example shows how to create a zipfile, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile() + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save(ZipFileToCreate) + End Using + + + + The filename to use for the new zip archive. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified Encoding. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + This is equivalent to setting the property on the ZipFile + instance after construction. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + The Encoding is used as the default alternate + encoding for entries with filenames or comments that cannot be encoded + with the IBM437 code page. + + + + Create a zip file, without specifying a target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + After instantiating with this constructor and adding entries to the + archive, the application should call or + to save to a file or a + stream, respectively. The application can also set the + property and then call the no-argument method. (This + is the preferred approach for applications that use the library through + COM interop.) If you call the no-argument method + without having set the Name of the ZipFile, either through + the parameterized constructor or through the explicit property , the + Save() will throw, because there is no place to save the file. + + + Instances of the ZipFile class are not multi-thread safe. You may + have multiple threads that each use a distinct ZipFile instance, or + you can synchronize multi-thread access to a single instance. + + + + + This example creates a Zip archive called Backup.zip, containing all the files + in the directory DirectoryToZip. Files within subdirectories are not zipped up. + + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save("Backup.zip"); + } + + + + Using zip As New ZipFile + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save("Backup.zip") + End Using + + + + + + Create a zip file, specifying a text Encoding, but without specifying a + target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified status message writer. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + This version of the constructor allows the caller to pass in a TextWriter, + to which verbose messages will be written during extraction or creation of + the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or headless + application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of ZipFile operations. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + + using (ZipFile zip = new ZipFile("Backup.zip", Console.Out)) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + // Status messages will be written to Console.Out + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(); + } + + + + Using zip As New ZipFile("Backup.zip", Console.Out) + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + ' Status messages will be written to Console.Out + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save() + End Using + + + + The filename to use for the new zip archive. + A TextWriter to use for writing + verbose status messages. + + + + Creates a new ZipFile instance, using the specified name for the + filename, the specified status message writer, and the specified Encoding. + + + + + This constructor works like the ZipFile + constructor that accepts a single string argument. See that + reference for detail on what this constructor does. + + + + This version of the constructor allows the caller to pass in a + TextWriter, and an Encoding. The TextWriter will collect + verbose messages that are generated by the library during extraction or + creation of the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or + headless application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of + ZipFile operations. + + + + The Encoding is used as the default alternate encoding for entries + with filenames or comments that cannot be encoded with the IBM437 code + page. This is a equivalent to setting the property on the ZipFile + instance after construction. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile + instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if fileName refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + A TextWriter to use for writing verbose + status messages. + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Initialize a ZipFile instance by reading in a zip file. + + + + + + This method is primarily useful from COM Automation environments, when + reading or extracting zip files. In COM, it is not possible to invoke + parameterized constructors for a class. A COM Automation application can + update a zip file by using the default (no argument) + constructor, then calling Initialize() to read the contents + of an on-disk zip archive into the ZipFile instance. + + + + .NET applications are encouraged to use the ZipFile.Read() methods + for better clarity. + + + + the name of the existing zip file to read in. + + + + Removes the given ZipEntry from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + Thrown if the specified ZipEntry does not exist in the ZipFile. + + + + In this example, all entries in the zip archive dating from before + December 31st, 2007, are removed from the archive. This is actually much + easier if you use the RemoveSelectedEntries method. But I needed an + example for RemoveEntry, so here it is. + + String ZipFileToRead = "ArchiveToModify.zip"; + System.DateTime Threshold = new System.DateTime(2007,12,31); + using (ZipFile zip = ZipFile.Read(ZipFileToRead)) + { + var EntriesToRemove = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + { + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e); + } + } + + // actually remove the doomed entries. + foreach (ZipEntry zombie in EntriesToRemove) + zip.RemoveEntry(zombie); + + zip.Comment= String.Format("This zip archive was updated at {0}.", + System.DateTime.Now.ToString("G")); + + // save with a different name + zip.Save("Archive-Updated.zip"); + } + + + + Dim ZipFileToRead As String = "ArchiveToModify.zip" + Dim Threshold As New DateTime(2007, 12, 31) + Using zip As ZipFile = ZipFile.Read(ZipFileToRead) + Dim EntriesToRemove As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e) + End If + Next + + ' actually remove the doomed entries. + Dim zombie As ZipEntry + For Each zombie In EntriesToRemove + zip.RemoveEntry(zombie) + Next + zip.Comment = String.Format("This zip archive was updated at {0}.", DateTime.Now.ToString("G")) + 'save as a different name + zip.Save("Archive-Updated.zip") + End Using + + + + + The ZipEntry to remove from the zip. + + + + + + + + Removes the ZipEntry with the given filename from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + + Thrown if the ZipFile is not updatable. + + + + Thrown if a ZipEntry with the specified filename does not exist in + the ZipFile. + + + + + This example shows one way to remove an entry with a given filename from + an existing zip archive. + + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = ZipFile.Read(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + { + zip.RemoveEntry(candidate); + zip.Comment= String.Format("The file '{0}' has been removed from this archive.", + Candidate); + zip.Save(); + } + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile = ZipFile.Read(zipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + zip.RemoveEntry(candidate) + zip.Comment = String.Format("The file '{0}' has been removed from this archive.", Candidate) + zip.Save + End If + End Using + + + + + The name of the file, including any directory path, to remove from the zip. + The filename match is not case-sensitive by default; you can use the + CaseSensitiveRetrieval property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + + + Closes the read and write streams associated + to the ZipFile, if necessary. + + + + The Dispose() method is generally employed implicitly, via a using(..) {..} + statement. (Using...End Using in VB) If you do not employ a using + statement, insure that your application calls Dispose() explicitly. For + example, in a Powershell application, or an application that uses the COM + interop interface, you must call Dispose() explicitly. + + + + This example extracts an entry selected by name, from the Zip file to the + Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + foreach (ZipEntry e in zip) + { + if (WantThisEntry(e.FileName)) + zip.Extract(e.FileName, Console.OpenStandardOutput()); + } + } // Dispose() is called implicitly here. + + + + Using zip As ZipFile = ZipFile.Read(zipfile) + Dim e As ZipEntry + For Each e In zip + If WantThisEntry(e.FileName) Then + zip.Extract(e.FileName, Console.OpenStandardOutput()) + End If + Next + End Using ' Dispose is implicity called here + + + + + + Disposes any managed resources, if the flag is set, then marks the + instance disposed. This method is typically not called explicitly from + application code. + + + + Applications should call the no-arg Dispose method. + + + + indicates whether the method should dispose streams or not. + + + + + Default size of the buffer used for IO. + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem. The path can be relative or fully-qualified. + + + + + This method will extract all entries in the ZipFile to the + specified path. + + + + If an extraction of a file from the zip archive would overwrite an + existing file in the filesystem, the action taken is dictated by the + ExtractExistingFile property, which overrides any setting you may have + made on individual ZipEntry instances. By default, if you have not + set that property on the ZipFile instance, the entry will not + be extracted, the existing file will not be overwritten and an + exception will be thrown. To change this, set the property, or use the + overload that allows you to + specify an ExtractExistingFileAction parameter. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use one of the ZipEntry.Extract methods. + + + + This method will send verbose output messages to the , if it is set on the ZipFile + instance. + + + + You may wish to take advantage of the ExtractProgress event. + + + + About timestamps: When extracting a file entry from a zip archive, the + extracted file gets the last modified time of the entry as stored in + the archive. The archive may also store extended file timestamp + information, including last accessed and created times. If these are + present in the ZipEntry, then the extracted file will also get + these times. + + + + A Directory entry is somewhat different. It will get the times as + described for a file entry, but, if there are file entries in the zip + archive that, when extracted, appear in the just-created directory, + then when those file entries are extracted, the last modified and last + accessed times of the directory will change, as a side effect. The + result is that after an extraction of a directory and a number of + files within the directory, the last modified and last accessed + timestamps on the directory will reflect the time that the last file + was extracted into the directory, rather than the time stored in the + zip archive for the directory. + + + + To compensate, when extracting an archive with ExtractAll, + DotNetZip will extract all the file and directory entries as described + above, but it will then make a second pass on the directories, and + reset the times on the directories to reflect what is stored in the + zip archive. + + + + This compensation is performed only within the context of an + ExtractAll. If you call ZipEntry.Extract on a directory + entry, the timestamps on directory in the filesystem will reflect the + times stored in the zip. If you then call ZipEntry.Extract on + a file entry, which is extracted into the directory, the timestamps on + the directory will be updated to the current time. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. The extraction will overwrite any + existing files silently. + + + String TargetDirectory= "unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently; + zip.ExtractAll(TargetDirectory); + } + + + + Dim TargetDirectory As String = "unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently + zip.ExtractAll(TargetDirectory) + End Using + + + + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem, using the specified behavior when extraction would overwrite an + existing file. + + + + + + This method will extract all entries in the ZipFile to the specified + path. For an extraction that would overwrite an existing file, the behavior + is dictated by , which overrides any + setting you may have made on individual ZipEntry instances. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use or one of the similar methods. + + + + Calling this method is equivalent to setting the property and then calling . + + + + This method will send verbose output messages to the + , if it is set on the ZipFile instance. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. It does not overwrite any existing files. + + String TargetDirectory= "c:\\unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite); + } + + + + Dim TargetDirectory As String = "c:\unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite) + End Using + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + The action to take if extraction would overwrite an existing file. + + + + + + Reads a zip file archive and returns the instance. + + + + + The stream is read using the default System.Text.Encoding, which is the + IBM437 codepage. + + + + + Thrown if the ZipFile cannot be read. The implementation of this method + relies on System.IO.File.OpenRead, which can throw a variety of exceptions, + including specific exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so on. + + + + The name of the zip archive to open. This can be a fully-qualified or relative + pathname. + + + . + + The instance read from the zip archive. + + + + + Reads a zip file archive from the named filesystem file using the + specified options. + + + + + This version of the Read() method allows the caller to pass + in a TextWriter an Encoding, via an instance of the + ReadOptions class. The ZipFile is read in using the + specified encoding for entries where UTF-8 encoding is not + explicitly specified. + + + + + + + This example shows how to read a zip file using the Big-5 Chinese + code page (950), and extract each entry in the zip file, while + sending status messages out to the Console. + + + + For this code to work as intended, the zipfile must have been + created using the big5 code page (CP950). This is typical, for + example, when using WinRar on a machine with CP950 set as the + default code page. In that case, the names of entries within the + Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did + not use the correct code page in ZipFile.Read(), then names of + entries within the zip archive would not be correctly retrieved. + + + + string zipToExtract = "MyArchive.zip"; + string extractDirectory = "extract"; + var options = new ReadOptions + { + StatusMessageWriter = System.Console.Out, + Encoding = System.Text.Encoding.GetEncoding(950) + }; + using (ZipFile zip = ZipFile.Read(zipToExtract, options)) + { + foreach (ZipEntry e in zip) + { + e.Extract(extractDirectory); + } + } + + + + + Dim zipToExtract as String = "MyArchive.zip" + Dim extractDirectory as String = "extract" + Dim options as New ReadOptions + options.Encoding = System.Text.Encoding.GetEncoding(950) + options.StatusMessageWriter = System.Console.Out + Using zip As ZipFile = ZipFile.Read(zipToExtract, options) + Dim e As ZipEntry + For Each e In zip + e.Extract(extractDirectory) + Next + End Using + + + + + + + + This example shows how to read a zip file using the default + code page, to remove entries that have a modified date before a given threshold, + sending status messages out to a StringWriter. + + + + var options = new ReadOptions + { + StatusMessageWriter = new System.IO.StringWriter() + }; + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip", options)) + { + var Threshold = new DateTime(2007,7,4); + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + // pass 1: mark the entries for removal + var MarkedEntries = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + MarkedEntries.Add(e); + } + // pass 2: actually remove the entry. + foreach (ZipEntry zombie in MarkedEntries) + zip.RemoveEntry(zombie); + zip.Comment = "This archive has been updated."; + zip.Save(); + } + // can now use contents of sw, eg store in an audit log + + + + Dim options as New ReadOptions + options.StatusMessageWriter = New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip", options) + Dim Threshold As New DateTime(2007, 7, 4) + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + ' pass 1: mark the entries for removal + Dim MarkedEntries As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + MarkedEntries.Add(e) + End If + Next + ' pass 2: actually remove the entry. + Dim zombie As ZipEntry + For Each zombie In MarkedEntries + zip.RemoveEntry(zombie) + Next + zip.Comment = "This archive has been updated." + zip.Save + End Using + ' can now use contents of sw, eg store in an audit log + + + + + Thrown if the zipfile cannot be read. The implementation of + this method relies on System.IO.File.OpenRead, which + can throw a variety of exceptions, including specific + exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so + on. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + The set of options to use when reading the zip file. + + + The ZipFile instance read from the zip archive. + + + + + + + Reads a zip file archive using the specified text encoding, the specified + TextWriter for status messages, and the specified ReadProgress event handler, + and returns the instance. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + An event handler for Read operations. + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + The instance read from the zip archive. + + + + + Reads a zip archive from a stream. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Using this overload, the stream is read using the default + System.Text.Encoding, which is the IBM437 + codepage. If you want to specify the encoding to use when + reading the zipfile content, see + ZipFile.Read(Stream, ReadOptions). This + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + + + + This example shows how to Read zip content from a stream, and + extract one entry into a different stream. In this example, + the filename "NameOfEntryInArchive.doc", refers only to the + name of the entry within the zip archive. A file by that + name is not created in the filesystem. The I/O is done + strictly with the given streams. + + + + using (ZipFile zip = ZipFile.Read(InputStream)) + { + zip.Extract("NameOfEntryInArchive.doc", OutputStream); + } + + + + Using zip as ZipFile = ZipFile.Read(InputStream) + zip.Extract("NameOfEntryInArchive.doc", OutputStream) + End Using + + + + the stream containing the zip data. + + The ZipFile instance read from the stream + + + + + Reads a zip file archive from the given stream using the + specified options. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + the stream containing the zip data. + + + The set of options to use when reading the zip file. + + + + Thrown if the zip archive cannot be read. + + + The ZipFile instance read from the stream. + + + + + + + Reads a zip archive from a stream, using the specified text Encoding, the + specified TextWriter for status messages, + and the specified ReadProgress event handler. + + + + + Reading of zip content begins at the current position in the stream. This + means if you have a stream that concatenates regular data and zip data, if + you position the open, readable stream at the start of the zip data, you + will be able to read the zip archive using this constructor, or any of the + ZipFile constructors that accept a as + input. Some examples of where this might be useful: the zip content is + concatenated at the end of a regular EXE file, as some self-extracting + archives do. (Note: SFX files produced by DotNetZip do not work this + way). Another example might be a stream being read from a database, where + the zip content is embedded within an aggregate stream of data. + + + + the stream containing the zip data. + + + The System.IO.TextWriter to which verbose status messages are written + during operations on the ZipFile. For example, in a console + application, System.Console.Out works, and will get a message for each entry + added to the ZipFile. If the TextWriter is null, no verbose messages + are written. + + + + The text encoding to use when reading entries that do not have the UTF-8 + encoding bit set. Be careful specifying the encoding. If the value you use + here is not the same as the Encoding used when the zip archive was created + (possibly by a different archiver) you will get unexpected results and + possibly exceptions. See the + property for more information. + + + + An event handler for Read operations. + + + an instance of ZipFile + + + + Checks the given file to see if it appears to be a valid zip file. + + + + + Calling this method is equivalent to calling with the testExtract parameter set to false. + + + + The file to check. + true if the file appears to be a zip file. + + + + Checks a file to see if it is a valid zip file. + + + + + This method opens the specified zip file, reads in the zip archive, + verifying the ZIP metadata as it reads. + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a + corrupt file, the the method returns false. This method also returns + false for a file that does not exist. + + + + If is true, as part of its check, this + method reads in the content for each entry, expands it, and checks CRCs. + This provides an additional check beyond verifying the zip header and + directory data. + + + + If is true, and if any of the zip entries + are protected with a password, this method will return false. If you want + to verify a ZipFile that has entries which are protected with a + password, you will need to do that manually. + + + + + The zip file to check. + true if the caller wants to extract each entry. + true if the file contains a valid zip file. + + + + Checks a stream to see if it contains a valid zip archive. + + + + + This method reads the zip archive contained in the specified stream, verifying + the ZIP metadata as it reads. If testExtract is true, this method also extracts + each entry in the archive, dumping all the bits into . + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a corrupt + file, the the method returns false. This method also returns false for a + file that does not exist. + + + + If testExtract is true, this method reads in the content for each + entry, expands it, and checks CRCs. This provides an additional check + beyond verifying the zip header data. + + + + If testExtract is true, and if any of the zip entries are protected + with a password, this method will return false. If you want to verify a + ZipFile that has entries which are protected with a password, you will need + to do that manually. + + + + + + The stream to check. + true if the caller wants to extract each entry. + true if the stream contains a valid zip archive. + + + + Delete file with retry on UnauthorizedAccessException. + + + + + When calling File.Delete() on a file that has been "recently" + created, the call sometimes fails with + UnauthorizedAccessException. This method simply retries the Delete 3 + times with a sleep between tries. + + + + the name of the file to be deleted + + + + Saves the Zip archive to a file, specified by the Name property of the + ZipFile. + + + + + The ZipFile instance is written to storage, typically a zip file + in a filesystem, only when the caller calls Save. In the typical + case, the Save operation writes the zip content to a temporary file, and + then renames the temporary file to the desired name. If necessary, this + method will delete a pre-existing file before the rename. + + + + The property is specified either explicitly, + or implicitly using one of the parameterized ZipFile constructors. For + COM Automation clients, the Name property must be set explicitly, + because COM Automation clients cannot call parameterized constructors. + + + + When using a filesystem file for the Zip output, it is possible to call + Save multiple times on the ZipFile instance. With each + call the zip content is re-written to the same output file. + + + + Data for entries that have been added to the ZipFile instance is + written to the output when the Save method is called. This means + that the input streams for those entries must be available at the time + the application calls Save. If, for example, the application + adds entries with AddEntry using a dynamically-allocated + MemoryStream, the memory stream must not have been disposed + before the call to Save. See the property for more discussion of the + availability requirements of the input stream for an entry, and an + approach for providing just-in-time stream lifecycle management. + + + + + + + + Thrown if you haven't specified a location or stream for saving the zip, + either in the constructor or by setting the Name property, or if you try + to save a regular zip archive to a filename with a .exe extension. + + + + Thrown if is non-zero, and the number + of segments that would be generated for the spanned zip file during the + save operation exceeds 99. If this happens, you need to increase the + segment size. + + + + + + Save the file to a new zipfile, with the given name. + + + + + This method allows the application to explicitly specify the name of the zip + file when saving. Use this when creating a new zip file, or when + updating a zip archive. + + + + An application can also save a zip archive in several places by calling this + method multiple times in succession, with different filenames. + + + + The ZipFile instance is written to storage, typically a zip file in a + filesystem, only when the caller calls Save. The Save operation writes + the zip content to a temporary file, and then renames the temporary file + to the desired name. If necessary, this method will delete a pre-existing file + before the rename. + + + + + + Thrown if you specify a directory for the filename. + + + + The name of the zip archive to save to. Existing files will + be overwritten with great prejudice. + + + + This example shows how to create and Save a zip file. + + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(@"c:\reports\January"); + zip.Save("January.zip"); + } + + + + Using zip As New ZipFile() + zip.AddDirectory("c:\reports\January") + zip.Save("January.zip") + End Using + + + + + + This example shows how to update a zip file. + + using (ZipFile zip = ZipFile.Read("ExistingArchive.zip")) + { + zip.AddFile("NewData.csv"); + zip.Save("UpdatedArchive.zip"); + } + + + + Using zip As ZipFile = ZipFile.Read("ExistingArchive.zip") + zip.AddFile("NewData.csv") + zip.Save("UpdatedArchive.zip") + End Using + + + + + + + Save the zip archive to the specified stream. + + + + + The ZipFile instance is written to storage - typically a zip file + in a filesystem, but using this overload, the storage can be anything + accessible via a writable stream - only when the caller calls Save. + + + + Use this method to save the zip content to a stream directly. A common + scenario is an ASP.NET application that dynamically generates a zip file + and allows the browser to download it. The application can call + Save(Response.OutputStream) to write a zipfile directly to the + output stream, without creating a zip file on the disk on the ASP.NET + server. + + + + Be careful when saving a file to a non-seekable stream, including + Response.OutputStream. When DotNetZip writes to a non-seekable + stream, the zip archive is formatted in such a way that may not be + compatible with all zip tools on all platforms. It's a perfectly legal + and compliant zip file, but some people have reported problems opening + files produced this way using the Mac OS archive utility. + + + + + + + This example saves the zipfile content into a MemoryStream, and + then gets the array of bytes from that MemoryStream. + + + using (var zip = new Ionic.Zip.ZipFile()) + { + zip.CompressionLevel= Ionic.Zlib.CompressionLevel.BestCompression; + zip.Password = "VerySecret."; + zip.Encryption = EncryptionAlgorithm.WinZipAes128; + zip.AddFile(sourceFileName); + MemoryStream output = new MemoryStream(); + zip.Save(output); + + byte[] zipbytes = output.ToArray(); + } + + + + + + This example shows a pitfall you should avoid. DO NOT read + from a stream, then try to save to the same stream. DO + NOT DO THIS: + + + + using (var fs = new FileSteeam(filename, FileMode.Open)) + { + using (var zip = Ionic.Zip.ZipFile.Read(inputStream)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(inputStream); // NO NO NO!! + } + } + + + + Better like this: + + + + using (var zip = Ionic.Zip.ZipFile.Read(filename)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(); // YES! + } + + + + + + The System.IO.Stream to write to. It must be + writable. If you created the ZipFile instanct by calling + ZipFile.Read(), this stream must not be the same stream + you passed to ZipFile.Read(). + + + + + Adds to the ZipFile a set of files from the current working directory on + disk, that conform to the specified criteria. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. + + + + Specify the criteria in statements of 3 elements: a noun, an operator, and + a value. Consider the string "name != *.doc" . The noun is "name". The + operator is "!=", implying "Not Equal". The value is "*.doc". That + criterion, in English, says "all files with a name that does not end in + the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; "atime", + "mtime", and "ctime" for last access time, last modfied time, and created + time of the file, respectively; "attributes" (or "attrs") for the file + attributes; "size" (or "length") for the file length (uncompressed), and + "type" for the type of object, either a file or a directory. The + "attributes", "name" and "type" nouns both support = and != as operators. + The "size", "atime", "mtime", and "ctime" nouns support = and !=, and + >, >=, <, <= as well. The times are taken to be expressed in + local time. + + + + Specify values for the file attributes as a string with one or more of the + characters H,R,S,A,I,L in any order, implying file attributes of Hidden, + ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint (symbolic + link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as the + format. If you omit the HH:mm:ss portion, it is assumed to be 00:00:00 + (midnight). + + + + The value for a size criterion is expressed in integer quantities of bytes, + kilobytes (use k or kb after the number), megabytes (m or mb), or gigabytes + (g or gb). + + + + The value for a name is a pattern to match against the filename, potentially + including wildcards. The pattern follows CMD.exe glob rules: * implies one + or more of any character, while ? implies one character. If the name + pattern contains any slashes, it is matched to the entire filename, + including the path; otherwise, it is matched against only the filename + without the path. This means a pattern of "*\*.*" matches all files one + directory level deep, while a pattern of "*.*" matches all files in all + directories. + + + + To specify a name pattern that includes spaces, use single quotes around the + pattern. A pattern of "'* *.*'" will match all files that have spaces in + the filename. The full criteria string for that would be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D (implying + a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND or OR. Using a string + like "name = *.txt AND size >= 100k" for the selectionCriteria retrieves + entries whose names end in .txt, and whose uncompressed size is greater than + or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to group + clauses in the boolean logic. Without parenthesis, the precedence of the + criterion atoms is determined by order of appearance. Unlike the C# + language, the AND conjunction does not take precendence over the logical OR. + This is important only in strings that contain 3 or more criterion atoms. + In other words, "name = *.txt and size > 1000 or attributes = H" implies + "((name = *.txt AND size > 1000) OR attributes = H)" while "attributes = + H OR name = *.txt and size > 1000" evaluates to "((attributes = H OR name + = *.txt) AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to retrieve all + entries that were last updated on 2009 February 14, specify a time range + like so:"mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this to + say: all files updated after 12:00am on February 14th, until 12:00am on + February 15th. You can use the same bracketing approach to specify any time + period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no spaces, it is + treated as a pattern to match for the filename. Therefore a string like "*.xls" + will be equivalent to specifying "name = *.xls". + + + + There is no logic in this method that insures that the file inclusion + criteria are internally consistent. For example, it's possible to specify + criteria that says the file must have a size of less than 100 bytes, as well + as a size that is greater than 1000 bytes. Obviously no file will ever + satisfy such criteria, but this method does not detect such logical + inconsistencies. The caller is responsible for insuring the criteria are + sensible. + + + + Using this method, the file selection does not recurse into + subdirectories, and the full path of the selected files is included in the + entries added into the zip archive. If you don't like these behaviors, + see the other overloads of this method. + + + + + This example zips up all *.csv files in the current working directory. + + using (ZipFile zip = new ZipFile()) + { + // To just match on filename wildcards, + // use the shorthand form of the selectionCriteria string. + zip.AddSelectedFiles("*.csv"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + zip.AddSelectedFiles("*.csv") + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + + Adds to the ZipFile a set of files from the disk that conform to the + specified criteria, optionally recursing into subdirectories. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the current working directory. + + + + Using this method, the full path of the selected files is included in the + entries added into the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files in the current working directory, or any + subdirectory, that are larger than 1mb. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a set of files from a specified directory in the + filesystem, that conform to the specified criteria. + + + + + This method selects files that conform to the specified criteria, from the + the specified directory on disk, and adds them to the ZipFile. The search + does not recurse into subdirectores. + + + + Using this method, the full filesystem path of the files on disk is + reproduced on the entries added to the zip file. If you don't want this + behavior, use one of the other overloads of this method. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files larger than 1mb in the directory + given by "d:\rawdata". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\\rawdata"); + zip.Save(PathToZipArchive); + } + + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\rawdata) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + The name of the directory on the disk from which to select files. + + + + + Adds to the ZipFile a set of files from the specified directory on disk, + that conform to the specified criteria. + + + + + + This method selects files from the the specified disk directory matching + the specified selection criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories. + + + + The full directory structure in the filesystem is reproduced on the + entries added to the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + This example zips up all *.csv files in the "files" directory, or any + subdirectory, that have been saved since 2009 February 14th. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true) + zip.Save(PathToZipArchive) + End Using + + + + + This example zips up all files in the current working + directory, and all its child directories, except those in + the excludethis subdirectory. + + Using Zip As ZipFile = New ZipFile(zipfile) + Zip.AddSelectedFfiles("name != 'excludethis\*.*'", datapath, True) + Zip.Save() + End Using + + + + The criteria for file selection + + + The filesystem path from which to select files. + + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, and using a specified root + path for entries added to the zip archive. + + + + + This method selects files from the specified disk directory matching the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. The search does not recurse + into subdirectories. For details on the syntax for the selectionCriteria + parameter, see . + + + + + + + This example zips up all *.psd files in the "photos" directory that have + been saved since 2009 February 14th, and puts them all in a zip file, + using the directory name of "content" in the zip archive itself. When the + zip archive is unzipped, the folder containing the .psd files will be + named "content". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content") + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, optionally recursing through + subdirectories, and using a specified root path for entries added to the + zip archive. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. If recurseDirectories + is true, files are also selected from subdirectories, and the directory + structure in the filesystem is reproduced in the zip archive, rooted at + the directory specified by directoryOnDisk. For details on the + syntax for the selectionCriteria parameter, see . + + + + + This example zips up all files that are NOT *.pst files, in the current + working directory and any subdirectories. + + + using (ZipFile zip = new ZipFile()) + { + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true) + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + If true, the method also scans subdirectories for files matching the + criteria. + + + + + Updates the ZipFile with a selection of files from the disk that conform + to the specified criteria. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and Updates the ZipFile with those + files, using the specified directory path in the archive. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the directory specified by + directoryOnDisk. For details on the syntax for the + selectionCriteria parameter, see . + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a + real directory in the current filesystem. If the files within the zip + are later extracted, this is the path used for the extracted file. + Passing null (nothing in VB) will use the path on the file name, if + any; in other words it would use directoryOnDisk, plus any + subdirectory. Passing the empty string ("") will insert the item at + the root path within the archive. + + + + If true, the method also scans subdirectories for files matching the criteria. + + + + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example selects all the PhotoShop files from within an archive, and extracts them + to the current working directory. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var PhotoShopFiles = zip1.SelectEntries("*.psd"); + foreach (ZipEntry psd in PhotoShopFiles) + { + psd.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim PhotoShopFiles as ICollection(Of ZipEntry) + PhotoShopFiles = zip1.SelectEntries("*.psd") + Dim psd As ZipEntry + For Each psd In PhotoShopFiles + psd.Extract + Next + End Using + + + the string that specifies which entries to select + a collection of ZipEntry objects that conform to the inclusion spec + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var UpdatedPhotoShopFiles = zip1.SelectEntries("*.psd", "UpdatedFiles"); + foreach (ZipEntry e in UpdatedPhotoShopFiles) + { + // prompt for extract here + if (WantExtract(e.FileName)) + e.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim UpdatedPhotoShopFiles As ICollection(Of ZipEntry) = zip1.SelectEntries("*.psd", "UpdatedFiles") + Dim e As ZipEntry + For Each e In UpdatedPhotoShopFiles + ' prompt for extract here + If Me.WantExtract(e.FileName) Then + e.Extract + End If + Next + End Using + + + the string that specifies which entries to select + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the inclusion spec + + + + Remove entries from the zipfile by specified criteria. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example removes all entries in a zip file that were modified prior to January 1st, 2008. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01"); + // don't forget to save the archive! + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01") + ' do not forget to save the archive! + zip1.Save + End Using + + + the string that specifies which entries to select + the number of entries removed + + + + Remove entries from the zipfile by specified criteria, and within the specified + path in the archive. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents"); + // a call to ZipFile.Save will make the modifications permanent + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents") + ' a call to ZipFile.Save will make the modifications permanent + zip1.Save + End Using + + + + the string that specifies which entries to select + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + the number of entries removed + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the selectionCriteria string, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15"); + } + + + the selection criteria for entries to extract. + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + overwriting any existing files. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15", + ExtractExistingFileAction.OverwriteSilently); + } + + + + the selection criteria for entries to extract. + + + The action to take if extraction would overwrite an existing file. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are selected from the specified directory within the archive, and then + extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + and writes them to the "unpack" directory. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15","unpack"); + } + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. If any of the files to be + extracted already exist, an exception will be thrown. + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + the directory on the disk into which to extract. It will be created + if it does not exist. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all files with an XML extension or with a size larger than 100,000 bytes, + and puts them in the unpack directory. For any files that already exist in + that destination directory, they will not be overwritten. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml or size > 100000", + null, + "unpack", + ExtractExistingFileAction.DontOverwrite); + } + + + + the selection criteria for entries to extract. + + + The directory on the disk into which to extract. It will be created if it does not exist. + + + + The directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + The action to take if extraction would overwrite an existing file. + + + + + + Saves the ZipFile instance to a self-extracting zip archive. + + + + + + The generated exe image will execute on any machine that has the .NET + Framework 2.0 installed on it. The generated exe image is also a + valid ZIP file, readable with DotNetZip or another Zip library or tool + such as WinZip. + + + + There are two "flavors" of self-extracting archive. The + WinFormsApplication version will pop up a GUI and allow the + user to select a target directory into which to extract. There's also + a checkbox allowing the user to specify to overwrite existing files, + and another checkbox to allow the user to request that Explorer be + opened to see the extracted files after extraction. The other flavor + is ConsoleApplication. A self-extractor generated with that + flavor setting will run from the command line. It accepts command-line + options to set the overwrite behavior, and to specify the target + extraction directory. + + + + There are a few temporary files created during the saving to a + self-extracting zip. These files are created in the directory pointed + to by , which defaults to . These temporary files are + removed upon successful completion of this method. + + + + When a user runs the WinForms SFX, the user's personal directory (Environment.SpecialFolder.Personal) + will be used as the default extract location. If you want to set the + default extract location, you should use the other overload of + SaveSelfExtractor()/ The user who runs the SFX will have the + opportunity to change the extract directory before extracting. When + the user runs the Command-Line SFX, the user must explicitly specify + the directory to which to extract. The .NET Framework 2.0 is required + on the computer when the self-extracting archive is run. + + + + NB: This method is not available in the version of DotNetZip build for + the .NET Compact Framework, nor in the "Reduced" DotNetZip library. + + + + + + + string DirectoryPath = "c:\\Documents\\Project7"; + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)); + zip.Comment = "This will be embedded into a self-extracting console-based exe"; + zip.SaveSelfExtractor("archive.exe", SelfExtractorFlavor.ConsoleApplication); + } + + + Dim DirectoryPath As String = "c:\Documents\Project7" + Using zip As New ZipFile() + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)) + zip.Comment = "This will be embedded into a self-extracting console-based exe" + zip.SaveSelfExtractor("archive.exe", SelfExtractorFlavor.ConsoleApplication) + End Using + + + + + a pathname, possibly fully qualified, to be created. Typically it + will end in an .exe extension. + + Indicates whether a Winforms or Console self-extractor is + desired. + + + + Saves the ZipFile instance to a self-extracting zip archive, using + the specified save options. + + + + + This method saves a self extracting archive, using the specified save + options. These options include the flavor of the SFX, the default extract + directory, the icon file, and so on. See the documentation + for for more + details. + + + + The user who runs the SFX will have the opportunity to change the extract + directory before extracting. If at the time of extraction, the specified + directory does not exist, the SFX will create the directory before + extracting the files. + + + + + + This example saves a WinForms-based self-extracting archive EXE that + will use c:\ExtractHere as the default extract location. The C# code + shows syntax for .NET 3.0, which uses an object initializer for + the SelfExtractorOptions object. + + string DirectoryPath = "c:\\Documents\\Project7"; + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)); + zip.Comment = "This will be embedded into a self-extracting WinForms-based exe"; + var options = new SelfExtractorOptions + { + Flavor = SelfExtractorFlavor.WinFormsApplication, + DefaultExtractDirectory = "%USERPROFILE%\\ExtractHere", + PostExtractCommandLine = ExeToRunAfterExtract, + SfxExeWindowTitle = "My Custom Window Title", + RemoveUnpackedFilesAfterExecute = true + }; + zip.SaveSelfExtractor("archive.exe", options); + } + + + Dim DirectoryPath As String = "c:\Documents\Project7" + Using zip As New ZipFile() + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)) + zip.Comment = "This will be embedded into a self-extracting console-based exe" + Dim options As New SelfExtractorOptions() + options.Flavor = SelfExtractorFlavor.WinFormsApplication + options.DefaultExtractDirectory = "%USERPROFILE%\\ExtractHere" + options.PostExtractCommandLine = ExeToRunAfterExtract + options.SfxExeWindowTitle = "My Custom Window Title" + options.RemoveUnpackedFilesAfterExecute = True + zip.SaveSelfExtractor("archive.exe", options) + End Using + + + + The name of the EXE to generate. + provides the options for creating the + Self-extracting archive. + + + + Generic IEnumerator support, for use of a ZipFile in an enumeration. + + + + You probably do not want to call GetEnumerator explicitly. Instead + it is implicitly called when you use a loop in C#, or a + For Each loop in VB.NET. + + + + This example reads a zipfile of a given name, then enumerates the + entries in that zip file, and displays the information about each + entry on the Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + bool header = true; + foreach (ZipEntry e in zip) + { + if (header) + { + System.Console.WriteLine("Zipfile: {0}", zip.Name); + System.Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded); + System.Console.WriteLine("BitField: 0x{0:X2}", e.BitField); + System.Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod); + System.Console.WriteLine("\n{1,-22} {2,-6} {3,4} {4,-8} {0}", + "Filename", "Modified", "Size", "Ratio", "Packed"); + System.Console.WriteLine(new System.String('-', 72)); + header = false; + } + + System.Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", + e.FileName, + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + e.UncompressedSize, + e.CompressionRatio, + e.CompressedSize); + + e.Extract(); + } + } + + + + Dim ZipFileToExtract As String = "c:\foo.zip" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + Dim header As Boolean = True + Dim e As ZipEntry + For Each e In zip + If header Then + Console.WriteLine("Zipfile: {0}", zip.Name) + Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded) + Console.WriteLine("BitField: 0x{0:X2}", e.BitField) + Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod) + Console.WriteLine(ChrW(10) & "{1,-22} {2,-6} {3,4} {4,-8} {0}", _ + "Filename", "Modified", "Size", "Ratio", "Packed" ) + Console.WriteLine(New String("-"c, 72)) + header = False + End If + Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", _ + e.FileName, _ + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), _ + e.UncompressedSize, _ + e.CompressionRatio, _ + e.CompressedSize ) + e.Extract + Next + End Using + + + + A generic enumerator suitable for use within a foreach loop. + + + + An IEnumerator, for use of a ZipFile in a foreach construct. + + + + This method is included for COM support. An application generally does not call + this method directly. It is called implicitly by COM clients when enumerating + the entries in the ZipFile instance. In VBScript, this is done with a For Each + statement. In Javascript, this is done with new Enumerator(zipfile). + + + + The IEnumerator over the entries in the ZipFile. + + + + + Provides a human-readable string with information about the ZipFile. + + + + + The information string contains 10 lines or so, about each ZipEntry, + describing whether encryption is in use, the compressed and uncompressed + length of the entry, the offset of the entry, and so on. As a result the + information string can be very long for zip files that contain many + entries. + + + This information is mostly useful for diagnostic purposes. + + + + + + Indicates whether to perform a full scan of the zip file when reading it. + + + + + + You almost never want to use this property. + + + + When reading a zip file, if this flag is true (True in + VB), the entire zip archive will be scanned and searched for entries. + For large archives, this can take a very, long time. The much more + efficient default behavior is to read the zip directory, which is + stored at the end of the zip file. But, in some cases the directory is + corrupted and you need to perform a full scan of the zip file to + determine the contents of the zip file. This property lets you do + that, when necessary. + + + + This flag is effective only when calling . Normally you would read a ZipFile with the + static ZipFile.Read + method. But you can't set the FullScan property on the + ZipFile instance when you use a static factory method like + ZipFile.Read. + + + + + + + This example shows how to read a zip file using the full scan approach, + and then save it, thereby producing a corrected zip file. + + + using (var zip = new ZipFile()) + { + zip.FullScan = true; + zip.Initialize(zipFileName); + zip.Save(newName); + } + + + + Using zip As New ZipFile + zip.FullScan = True + zip.Initialize(zipFileName) + zip.Save(newName) + End Using + + + + + + + Whether to sort the ZipEntries before saving the file. + + + + The default is false. If you have a large number of zip entries, the sort + alone can consume significant time. + + + + + using (var zip = new ZipFile()) + { + zip.AddFiles(filesToAdd); + zip.SortEntriesBeforeSaving = true; + zip.Save(name); + } + + + + Using zip As New ZipFile + zip.AddFiles(filesToAdd) + zip.SortEntriesBeforeSaving = True + zip.Save(name) + End Using + + + + + + + Indicates whether NTFS Reparse Points, like junctions, should be + traversed during calls to AddDirectory(). + + + + By default, calls to AddDirectory() will traverse NTFS reparse + points, like mounted volumes, and directory junctions. An example + of a junction is the "My Music" directory in Windows Vista. In some + cases you may not want DotNetZip to traverse those directories. In + that case, set this property to false. + + + + + using (var zip = new ZipFile()) + { + zip.AddDirectoryWillTraverseReparsePoints = false; + zip.AddDirectory(dirToZip,"fodder"); + zip.Save(zipFileToCreate); + } + + + + + + Size of the IO buffer used while saving. + + + + + + First, let me say that you really don't need to bother with this. It is + here to allow for optimizations that you probably won't make! It will work + fine if you don't set or get this property at all. Ok? + + + + Now that we have that out of the way, the fine print: This + property affects the size of the buffer that is used for I/O for each + entry contained in the zip file. When a file is read in to be compressed, + it uses a buffer given by the size here. When you update a zip file, the + data for unmodified entries is copied from the first zip file to the + other, through a buffer given by the size here. + + + + Changing the buffer size affects a few things: first, for larger buffer + sizes, the memory used by the ZipFile, obviously, will be larger + during I/O operations. This may make operations faster for very much + larger files. Last, for any given entry, when you use a larger buffer + there will be fewer progress events during I/O operations, because there's + one progress event generated for each time the buffer is filled and then + emptied. + + + + The default buffer size is 8k. Increasing the buffer size may speed + things up as you compress larger files. But there are no hard-and-fast + rules here, eh? You won't know til you test it. And there will be a + limit where ever larger buffers actually slow things down. So as I said + in the beginning, it's probably best if you don't set or get this property + at all. + + + + + + This example shows how you might set a large buffer size for efficiency when + dealing with zip entries that are larger than 1gb. + + using (ZipFile zip = new ZipFile()) + { + zip.SaveProgress += this.zip1_SaveProgress; + zip.AddDirectory(directoryToZip, ""); + zip.UseZip64WhenSaving = Zip64Option.Always; + zip.BufferSize = 65536*8; // 65536 * 8 = 512k + zip.Save(ZipFileToCreate); + } + + + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + + When doing ZLIB or Deflate compression, the library fills a buffer, + then passes it to the compressor for compression. Then the library + reads out the compressed bytes. This happens repeatedly until there + is no more uncompressed data to compress. This property sets the + size of the buffer that will be used for chunk-wise compression. In + order for the setting to take effect, your application needs to set + this property before calling one of the ZipFile.Save() + overloads. + + + Setting this affects the performance and memory efficiency of + compression and decompression. For larger files, setting this to a + larger size may improve compression performance, but the exact + numbers vary depending on available memory, the size of the streams + you are compressing, and a bunch of other variables. I don't have + good firm recommendations on how to set it. You'll have to test it + yourself. Or just leave it alone and accept the default. + + + + + + Indicates whether extracted files should keep their paths as + stored in the zip archive. + + + + + This property affects Extraction. It is not used when creating zip + archives. + + + + With this property set to false, the default, extracting entries + from a zip file will create files in the filesystem that have the full + path associated to the entry within the zip file. With this property set + to true, extracting entries from the zip file results in files + with no path: the folders are "flattened." + + + + An example: suppose the zip file contains entries /directory1/file1.txt and + /directory2/file2.txt. With FlattenFoldersOnExtract set to false, + the files created will be \directory1\file1.txt and \directory2\file2.txt. + With the property set to true, the files created are file1.txt and file2.txt. + + + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when + compressing entries using the DEFLATE method. Different compression + strategies work better on different sorts of data. The strategy + parameter can affect the compression ratio and the speed of + compression but not the correctness of the compresssion. For more + information see Ionic.Zlib.CompressionStrategy. + + + + + The name of the ZipFile, on disk. + + + + + + When the ZipFile instance was created by reading an archive using + one of the ZipFile.Read methods, this property represents the name + of the zip file that was read. When the ZipFile instance was + created by using the no-argument constructor, this value is null + (Nothing in VB). + + + + If you use the no-argument constructor, and you then explicitly set this + property, when you call , this name will + specify the name of the zip file created. Doing so is equivalent to + calling . When instantiating a + ZipFile by reading from a stream or byte array, the Name + property remains null. When saving to a stream, the Name + property is implicitly set to null. + + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified compression level. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method for the zipfile. + + + + By default, the compression method is CompressionMethod.Deflate. + + + + + + + A comment attached to the zip archive. + + + + + + This property is read/write. It allows the application to specify a + comment for the ZipFile, or read the comment for the + ZipFile. After setting this property, changes are only made + permanent when you call a Save() method. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zip file that is + not readable by any tool or application. For best interoperability, leave + alone, or specify it only + once, before adding any entries to the ZipFile instance. + + + + + + + Specifies whether the Creation, Access, and Modified times for entries + added to the zip file will be emitted in “Windows format” + when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Windows. By default this flag is + true, meaning the Windows-format times are stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to + DateTime.Now. Applications can also explicitly set those times by + calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455, although you probably don't need to know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries + may be able to read only one or the other. DotNetZip can read or write + times in either or both formats. + + + + The times stored are taken from , , and . + + + + The value set here applies to all entries subsequently added to the + ZipFile. + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the archive, a time that is always stored in "DOS format". And, + notwithstanding the names PKWare uses for these time formats, any of them + can be read and written by any computer, on any operating system. But, + there are no guarantees that a program running on Mac or Linux will + gracefully handle a zip file with "Windows" formatted times, or that an + application that does not use DotNetZip but runs on Windows will be able to + handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + This example shows how to save a zip file that contains file timestamps + in a format normally used by Unix. + + using (var zip = new ZipFile()) + { + // produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = false; + zip.EmitTimesInUnixFormatWhenSaving = true; + zip.AddDirectory(directoryToZip, "files"); + zip.Save(outputFile); + } + + + + Using zip As New ZipFile + '' produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = False + zip.EmitTimesInUnixFormatWhenSaving = True + zip.AddDirectory(directoryToZip, "files") + zip.Save(outputFile) + End Using + + + + + + + + + Specifies whether the Creation, Access, and Modified times + for entries added to the zip file will be emitted in "Unix(tm) + format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to DateTime.Now. + Applications can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications + typically use: seconds since January 1, 1970 UTC. Each format can be + stored in an "extra field" in the zip entry when saving the zip + archive. The former uses an extra field with a Header Id of 0x000A, while + the latter uses a header ID of 0x5455, although you probably don't need to + know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries may be + able to read only one or the other. DotNetZip can read or write times in + either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the zip archive, a time that is always stored in "DOS + format". And, notwithstanding the names PKWare uses for these time + formats, any of them can be read and written by any computer, on any + operating system. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle a zip file with "Windows" formatted + times, or that an application that does not use DotNetZip but runs on + Windows will be able to handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + + + + + Indicates whether verbose output is sent to the during AddXxx() and + ReadXxx() operations. + + + + This is a synthetic property. It returns true if the is non-null. + + + + + Indicates whether to perform case-sensitive matching on the filename when + retrieving entries in the zipfile via the string-based indexer. + + + + The default value is false, which means don't do case-sensitive + matching. In other words, retrieving zip["ReadMe.Txt"] is the same as + zip["readme.txt"]. It really makes sense to set this to true only + if you are not running on Windows, which has case-insensitive + filenames. But since this library is not built for non-Windows platforms, + in most cases you should just leave this property alone. + + + + + Indicates whether to encode entry filenames and entry comments using Unicode + (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + your ZipFile will encode all filenames and comments using the + IBM437 codepage. This can cause "loss of information" on some filenames, + but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipFile, then adds two files, each with + names of four Chinese characters each, this will result in a duplicate + filename exception. In the case where you add a single file with a name + containing four Chinese characters, calling Extract() on the entry that + has question marks in the filename will result in an exception, because + the question mark is not legal for use within filenames on Windows. These + are just a few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + + When creating a zip file, the default value for the property is . is + safest, in the sense that you will not get an Exception if a pre-ZIP64 + limit is exceeded. + + + + You may set the property at any time before calling Save(). + + + + When reading a zip file via the Zipfile.Read() method, DotNetZip + will properly read ZIP64-endowed zip archives, regardless of the value of + this property. DotNetZip will always read ZIP64 archives. This property + governs only whether DotNetZip will write them. Therefore, when updating + archives, be careful about setting this property after reading an archive + that may use ZIP64 extensions. + + + + An interesting question is, if you have set this property to + AsNecessary, and then successfully saved, does the resulting + archive use ZIP64 extensions or not? To learn this, check the property, after calling Save(). + + + + Have you thought about + donating? + + + + + + + + Indicates whether the archive requires ZIP64 extensions. + + + + + + This property is null (or Nothing in VB) if the archive has + not been saved, and there are fewer than 65334 ZipEntry items + contained in the archive. + + + + The Value is true if any of the following four conditions holds: + the uncompressed size of any entry is larger than 0xFFFFFFFF; the + compressed size of any entry is larger than 0xFFFFFFFF; the relative + offset of any entry within the zip archive is larger than 0xFFFFFFFF; or + there are more than 65534 entries in the archive. (0xFFFFFFFF = + 4,294,967,295). The result may not be known until a Save() is attempted + on the zip archive. The Value of this + property may be set only AFTER one of the Save() methods has been called. + + + + If none of the four conditions holds, and the archive has been saved, then + the Value is false. + + + + A Value of false does not indicate that the zip archive, as saved, + does not use ZIP64. It merely indicates that ZIP64 is not required. An + archive may use ZIP64 even when not required if the property is set to , or if the property is set to and the output stream was not + seekable. Use the property to determine if + the most recent Save() method resulted in an archive that utilized + the ZIP64 extensions. + + + + + + + + + Indicates whether the most recent Save() operation used ZIP64 extensions. + + + + + The use of ZIP64 extensions within an archive is not always necessary, and + for interoperability concerns, it may be desired to NOT use ZIP64 if + possible. The property can be + set to use ZIP64 extensions only when necessary. In those cases, + Sometimes applications want to know whether a Save() actually used ZIP64 + extensions. Applications can query this read-only property to learn + whether ZIP64 has been used in a just-saved ZipFile. + + + + The value is null (or Nothing in VB) if the archive has not + been saved. + + + + Non-null values (HasValue is true) indicate whether ZIP64 + extensions were used during the most recent Save() operation. The + ZIP64 extensions may have been used as required by any particular entry + because of its uncompressed or compressed size, or because the archive is + larger than 4294967295 bytes, or because there are more than 65534 entries + in the archive, or because the UseZip64WhenSaving property was set + to , or because the + UseZip64WhenSaving property was set to and the output stream was not seekable. + The value of this property does not indicate the reason the ZIP64 + extensions were used. + + + + + + + + + Indicates whether the most recent Read() operation read a zip file that uses + ZIP64 extensions. + + + + This property will return null (Nothing in VB) if you've added an entry after reading + the zip file. + + + + + The text encoding to use when writing new entries to the ZipFile, + for those entries that cannot be encoded with the default (IBM437) + encoding; or, the text encoding that was used when reading the entries + from the ZipFile. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zipfile that is + not readable. For best interoperability, either leave alone, or specify it only once, + before adding any entries to the ZipFile instance. There is one + exception to this recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. In other words, if you explicitly specify the codepage when you + create the zipfile, you must explicitly specify the same codepage when + reading the zipfile. + + + + The way you specify the code page to use when reading a zip file varies + depending on the tool or library you use to read the zip. In DotNetZip, + you use a ZipFile.Read() method that accepts an encoding parameter. It + isn't possible with Windows Explorer, as far as I know, to specify an + explicit codepage to use when reading a zip. If you use an incorrect + codepage when reading a zipfile, you will get entries with filenames that + are incorrect, and the incorrect filenames may even contain characters + that are not legal for use within filenames in Windows. Extracting entries + with illegal characters in the filenames will lead to exceptions. It's too + bad, but this is just the way things are with code pages in zip + files. Caveat Emptor. + + + + Example: Suppose you create a zipfile that contains entries with + filenames that have Danish characters. If you use equal to "iso-8859-1" (cp 28591), + the filenames will be correctly encoded in the zip. But, to read that + zipfile correctly, you have to specify the same codepage at the time you + read it. If try to read that zip file with Windows Explorer or another + application that is not flexible with respect to the codepage used to + decode filenames in zipfiles, you will get a filename like "Inf°.txt". + + + + When using DotNetZip to read a zip archive, and the zip archive uses an + arbitrary code page, you must specify the encoding to use before or when + the Zipfile is READ. This means you must use a ZipFile.Read() + method that allows you to specify a System.Text.Encoding parameter. Setting + the ProvisionalAlternateEncoding property after your application has read in + the zip archive will not affect the entry names of entries that have already + been read in. + + + + And now, the exception to the rule described above. One strategy for + specifying the code page for a given zip file is to describe the code page + in a human-readable form in the Zip comment. For example, the comment may + read "Entries in this archive are encoded in the Big5 code page". For + maximum interoperability, the zip comment in this case should be encoded + in the default, IBM437 code page. In this case, the zip comment is + encoded using a different page than the filenames. To do this, Specify + ProvisionalAlternateEncoding to your desired region-specific code + page, once before adding any entries, and then reset + ProvisionalAlternateEncoding to IBM437 before setting the property and calling Save(). + + + + + This example shows how to read a zip file using the Big-5 Chinese code page + (950), and extract each entry in the zip file. For this code to work as + desired, the Zipfile must have been created using the big5 code page + (CP950). This is typical, for example, when using WinRar on a machine with + CP950 set as the default code page. In that case, the names of entries + within the Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did not use + the correct code page in ZipFile.Read(), then names of entries within the + zip archive would not be correctly retrieved. + + using (var zip = ZipFile.Read(zipFileName, System.Text.Encoding.GetEncoding("big5"))) + { + // retrieve and extract an entry using a name encoded with CP950 + zip[MyDesiredEntry].Extract("unpack"); + } + + + + Using zip As ZipFile = ZipFile.Read(ZipToExtract, System.Text.Encoding.GetEncoding("big5")) + ' retrieve and extract an entry using a name encoded with CP950 + zip(MyDesiredEntry).Extract("unpack") + End Using + + + + DefaultEncoding + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + Gets or sets the TextWriter to which status messages are delivered + for the instance. + + + + If the TextWriter is set to a non-null value, then verbose output is sent + to the TextWriter during Add, Read, Save and + Extract operations. Typically, console applications might use + Console.Out and graphical or headless applications might use a + System.IO.StringWriter. The output of this is suitable for viewing + by humans. + + + + + In this example, a console application instantiates a ZipFile, then + sets the StatusMessageTextWriter to Console.Out. At that + point, all verbose status messages for that ZipFile are sent to the + console. + + + + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= System.Console.Out; + // messages are sent to the console during extraction + zip.ExtractAll(); + } + + + + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= System.Console.Out + 'Status Messages will be sent to the console during extraction + zip.ExtractAll() + End Using + + + + In this example, a Windows Forms application instantiates a + ZipFile, then sets the StatusMessageTextWriter to a + StringWriter. At that point, all verbose status messages for that + ZipFile are sent to the StringWriter. + + + + var sw = new System.IO.StringWriter(); + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= sw; + zip.ExtractAll(); + } + Console.WriteLine("{0}", sw.ToString()); + + + + Dim sw as New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= sw + zip.ExtractAll() + End Using + 'Status Messages are now available in sw + + + + + + + Gets or sets the name for the folder to store the temporary file + this library writes when saving a zip archive. + + + + + This library will create a temporary file when saving a Zip archive to a + file. This file is written when calling one of the Save() methods + that does not save to a stream, or one of the SaveSelfExtractor() + methods. + + + + By default, the library will create the temporary file in the directory + specified for the file itself, via the property or via + the method. + + + + Setting this property allows applications to override this default + behavior, so that the library will create the temporary file in the + specified folder. For example, to have the library create the temporary + file in the current working directory, regardless where the ZipFile + is saved, specfy ".". To revert to the default behavior, set this + property to null (Nothing in VB). + + + + When setting the property to a non-null value, the folder specified must + exist; if it does not an exception is thrown. The application should have + write and delete permissions on the folder. The permissions are not + explicitly checked ahead of time; if the application does not have the + appropriate rights, an exception will be thrown at the time Save() + is called. + + + + There is no temporary file created when reading a zip archive. When + saving to a Stream, there is no temporary file created. For example, if + the application is an ASP.NET application and calls Save() + specifying the Response.OutputStream as the output stream, there is + no temporary file created. + + + + + Thrown when setting the property if the directory does not exist. + + + + + + Sets the password to be used on the ZipFile instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + added to the ZipFile, using one of the AddFile, + AddDirectory, AddEntry, or AddItem methods, etc. + When reading a zip archive, this property applies to any entry + subsequently extracted from the ZipFile using one of the Extract + methods on the ZipFile class. + + + + When writing a zip archive, keep this in mind: though the password is set + on the ZipFile object, according to the Zip spec, the "directory" of the + archive - in other words the list of entries or files contained in the archive - is + not encrypted with the password, or protected in any way. If you set the + Password property, the password actually applies to individual entries + that are added to the archive, subsequent to the setting of this property. + The list of filenames in the archive that is eventually created will + appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + One simple way around this limitation is to simply double-wrap sensitive + filenames: Store the files in a zip file, and then store that zip file + within a second, "outer" zip file. If you apply a password to the outer + zip file, then readers will be able to see that the outer zip file + contains an inner zip file. But readers will not be able to read the + directory or file list of the inner zip file. + + + + If you set the password on the ZipFile, and then add a set of files + to the archive, then each entry is encrypted with that password. You may + also want to change the password between adding different entries. If you + set the password, add an entry, then set the password to null + (Nothing in VB), and add another entry, the first entry is + encrypted and the second is not. If you call AddFile(), then set + the Password property, then call ZipFile.Save, the file + added will not be password-protected, and no warning will be generated. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If you set + the password to a null value (Nothing in VB), Encryption is + reset to None. + + + + All of the preceding applies to writing zip archives, in other words when + you use one of the Save methods. To use this property when reading or an + existing ZipFile, do the following: set the Password property on the + ZipFile, then call one of the Extract() overloads on the . In this case, the entry is extracted using the + Password that is specified on the ZipFile instance. If you + have not set the Password property, then the password is + null, and the entry is extracted with no password. + + + + If you set the Password property on the ZipFile, then call + Extract() an entry that has not been encrypted with a password, the + password is not used for that entry, and the ZipEntry is extracted + as normal. In other words, the password is used only if necessary. + + + + The class also has a Password property. It takes precedence + over this property on the ZipFile. Typically, you would use the + per-entry Password when most entries in the zip archive use one password, + and a few entries use a different password. If all entries in the zip + file use the same password, then it is simpler to just set this property + on the ZipFile itself, whether creating a zip archive or extracting + a zip archive. + + + + + + + This example creates a zip file, using password protection for the + entries, and then extracts the entries from the zip file. When creating + the zip file, the Readme.txt file is not protected with a password, but + the other two are password-protected as they are saved. During extraction, + each file is extracted with the appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Password= "!Secret1"; + zip.AddFile("MapToTheSite-7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "!Secret1"; + zip.ExtractAll("extractDir"); + } + + + + + Using zip As New ZipFile + zip.AddFile("ReadMe.txt") + zip.Password = "123456!" + zip.AddFile("MapToTheSite-7440-N49th.png") + zip.Password= "!Secret1"; + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "!Secret1" + zip.ExtractAll("extractDir") + End Using + + + + + + ZipFile.Encryption + ZipEntry.Password + + + + The action the library should take when extracting a file that already + exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting an + entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file + to be extracted does not already exist. + + + + + + + The action the library should take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. + + + + The first problem might occur after having called AddDirectory() on a + directory that contains a Clipper .dbf file; the file is locked by + Clipper and cannot be opened for read by another process. An example of + the second problem might occur when trying to zip a .pst file that is in + use by Microsoft Outlook. Outlook locks a range on the file, which allows + other processes to open the file, but not read it in its entirety. + + + + This property tells DotNetZip what you would like to do in the case of + these errors. The primary options are: ZipErrorAction.Throw to + throw an exception (this is the default behavior if you don't set this + property); ZipErrorAction.Skip to Skip the file for which there + was an error and continue saving; ZipErrorAction.Retry to Retry + the entry that caused the problem; or + ZipErrorAction.InvokeErrorEvent to invoke an event handler. + + + + This property is implicitly set to ZipErrorAction.InvokeErrorEvent + if you add a handler to the event. If you set + this property to something other than + ZipErrorAction.InvokeErrorEvent, then the ZipError + event is implicitly cleared. What it means is you can set one or the + other (or neither), depending on what you want, but you never need to set + both. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified ZipErrorAction to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified error handling action. + + + + If you want to handle any errors that occur with any entry in the zip + file in the same way, then set this property once, before adding any + entries to the zip archive. + + + + If you set this property to ZipErrorAction.Skip and you'd like to + learn which files may have been skipped after a Save(), you can + set the on the ZipFile before + calling Save(). A message will be emitted into that writer for + each skipped file, if any. + + + + + + This example shows how to tell DotNetZip to skip any files for which an + error is generated during the Save(). + + Public Sub SaveZipFile() + Dim SourceFolder As String = "fodder" + Dim DestFile As String = "eHandler.zip" + Dim sw as New StringWriter + Using zipArchive As ZipFile = New ZipFile + ' Tell DotNetZip to skip any files for which it encounters an error + zipArchive.ZipErrorAction = ZipErrorAction.Skip + zipArchive.StatusMessageTextWriter = sw + zipArchive.AddDirectory(SourceFolder) + zipArchive.Save(DestFile) + End Using + ' examine sw here to see any messages + End Sub + + + + + + + + + + The Encryption to use for entries added to the ZipFile. + + + + + Set this when creating a zip archive, or when updating a zip archive. The + specified Encryption is applied to the entries subsequently added to the + ZipFile instance. Applications do not need to set the + Encryption property when reading or extracting a zip archive. + + + + If you set this to something other than EncryptionAlgorithm.None, you + will also need to set the . + + + + As with some other properties on the ZipFile class, like and , setting this + property on a ZipFile instance will cause the specified + EncryptionAlgorithm to be used on all items + that are subsequently added to the ZipFile instance. In other + words, if you set this property after you have added items to the + ZipFile, but before you have called Save(), those items will + not be encrypted or protected with a password in the resulting zip + archive. To get a zip archive with encrypted entries, set this property, + along with the property, before calling + AddFile, AddItem, or AddDirectory (etc.) on the + ZipFile instance. + + + + If you read a ZipFile, you can modify the Encryption on an + encrypted entry, only by setting the Encryption property on the + ZipEntry itself. Setting the Encryption property on the + ZipFile, once it has been created via a call to + ZipFile.Read(), does not affect entries that were previously read. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then calling Save() on the ZipFile does not update the + Encryption used for the entries in the archive. Neither is an + exception thrown. Instead, what happens during the Save() is that + all previously existing entries are copied through to the new zip archive, + with whatever encryption and password that was used when originally + creating the zip archive. Upon re-reading that archive, to extract + entries, applications should use the original password or passwords, if + any. + + + + Suppose an application reads a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then adding new entries (via AddFile(), AddEntry(), etc) + and then calling Save() on the ZipFile does not update the + Encryption on any of the entries that had previously been in the + ZipFile. The Encryption property applies only to the + newly-added entries. + + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other files + use encryption. + + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Encryption= EncryptionAlgorithm.WinZipAes256; + zip.Password= "Top.Secret.No.Peeking!"; + zip.AddFile("7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.Encryption= EncryptionAlgorithm.WinZipAes256 + zip.Password= "Top.Secret.No.Peeking!" + zip.AddFile("ReadMe.txt") + zip.AddFile("7440-N49th.png") + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + ZipFile.Password + ZipEntry.Encryption + + + + A callback that allows the application to specify the compression level + to use for entries subsequently added to the zip archive. + + + + + + With this callback, the DotNetZip library allows the application to + determine whether compression will be used, at the time of the + Save. This may be useful if the application wants to favor + speed over size, and wants to defer the decision until the time of + Save. + + + + Typically applications set the property on + the ZipFile or on each ZipEntry to determine the level of + compression used. This is done at the time the entry is added to the + ZipFile. Setting the property to + Ionic.Zlib.CompressionLevel.None means no compression will be used. + + + + This callback allows the application to defer the decision on the + CompressionLevel to use, until the time of the call to + ZipFile.Save(). The callback is invoked once per ZipEntry, + at the time the data for the entry is being written out as part of a + Save() operation. The application can use whatever criteria it + likes in determining the level to return. For example, an application may + wish that no .mp3 files should be compressed, because they are already + compressed and the extra compression is not worth the CPU time incurred, + and so can return None for all .mp3 entries. + + + + The library determines whether compression will be attempted for an entry + this way: If the entry is a zero length file, or a directory, no + compression is used. Otherwise, if this callback is set, it is invoked + and the CompressionLevel is set to the return value. If this + callback has not been set, then the previously set value for + CompressionLevel is used. + + + + + + + The maximum size of an output segment, when saving a split Zip file. + + + + Set this to a non-zero value before calling or to specify that the ZipFile should be saved as a + split archive, also sometimes called a spanned archive. Some also + call them multi-file archives. + + + + A split zip archive is saved in a set of discrete filesystem files, + rather than in a single file. This is handy when transmitting the + archive in email or some other mechanism that has a limit to the size of + each file. The first file in a split archive will be named + basename.z01, the second will be named basename.z02, and + so on. The final file is named basename.zip. According to the zip + specification from PKWare, the minimum value is 65536, for a 64k segment + size. The maximum number of segments allows in a split archive is 99. + + + + The value of this property determines the maximum size of a split + segment when writing a split archive. For example, suppose you have a + ZipFile that would save to a single file of 200k. If you set the + MaxOutputSegmentSize to 65536 before calling Save(), you + will get four distinct output files. On the other hand if you set this + property to 256k, then you will get a single-file archive for that + ZipFile. + + + + The size of each split output file will be as large as possible, up to + the maximum size set here. The zip specification requires that some data + fields in a zip archive may not span a split boundary, and an output + segment may be smaller than the maximum if necessary to avoid that + problem. Also, obviously the final segment of the archive may be smaller + than the maximum segment size. Segments will never be larger than the + value set with this property. + + + + You can save a split Zip file only when saving to a regular filesystem + file. It's not possible to save a split zip file as a self-extracting + archive, nor is it possible to save a split zip file to a stream. When + saving to a SFX or to a Stream, this property is ignored. + + + + About interoperability: Split or spanned zip files produced by DotNetZip + can be read by WinZip or PKZip, and vice-versa. Segmented zip files may + not be readable by other tools, if those other tools don't support zip + spanning or splitting. When in doubt, test. I don't believe Windows + Explorer can extract a split archive. + + + + This property has no effect when reading a split archive. You can read + a split archive in the normal way with DotNetZip. + + + + When saving a zip file, if you want a regular zip file rather than a + split zip file, don't set this property, or set it to Zero. + + + + If you read a split archive, with and + then subsequently call ZipFile.Save(), unless you set this + property before calling Save(), you will get a normal, + single-file archive. + + + + + + + + Returns the number of segments used in the most recent Save() operation. + + + + This is normally zero, unless you have set the property. If you have set , and then you save a file, after the call to + Save() completes, you can read this value to learn the number of segments that + were created. + + + If you call Save("Archive.zip"), and it creates 5 segments, then you + will have filesystem files named Archive.z01, Archive.z02, Archive.z03, + Archive.z04, and Archive.zip, and the value of this property will be 5. + + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, + if the entry is larger than the given size. Zero means "always + use parallel deflate", while -1 means "never use parallel + deflate". The default value for this property is 512k. Aside + from the special values of 0 and 1, the minimum value is 65536. + + + + If the entry size cannot be known before compression, as with a + read-forward stream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is not as effective. + + + + Parallel deflate tends to yield slightly less compression when + compared to as single-threaded deflate; this is because the original + data stream is split into multiple independent buffers, each of which + is compressed in parallel. But because they are treated + independently, there is no opportunity to share compression + dictionaries. For that reason, a deflated stream may be slightly + larger when compressed using parallel deflate, as compared to a + traditional single-threaded deflate. Sometimes the increase over the + normal deflate is as much as 5% of the total compressed size. For + larger files it can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when + using Encryption. This is primarily because encryption tends to slow + down the entire pipeline. Also, multi-threaded compression gives less + of an advantage when using lower compression levels, for example . You may have to + perform some tests to determine the best approach for your situation. + + + + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time + before calling ZipFile.Save(). + + + + + + + + + Returns the version number on the DotNetZip assembly. + + + + + This property is exposed as a convenience. Callers could also get the + version value by retrieving GetName().Version on the + System.Reflection.Assembly object pointing to the DotNetZip + assembly. But sometimes it is not clear which assembly is being loaded. + This property makes it clear. + + + This static property is primarily useful for diagnostic purposes. + + + + + + This is an integer indexer into the Zip archive. + + + + + This property is read-only. + + + + Internally, the ZipEntry instances that belong to the + ZipFile are stored in a Dictionary. When you use this + indexer the first time, it creates a read-only + List<ZipEntry> from the Dictionary.Values Collection. + If at any time you modify the set of entries in the ZipFile, + either by adding an entry, removing an entry, or renaming an + entry, a new List will be created, and the numeric indexes for the + remaining entries may be different. + + + + This means you cannot rename any ZipEntry from + inside an enumeration of the zip file. + + + + The index value. + + + + + + The ZipEntry within the Zip archive at the specified index. If the + entry does not exist in the archive, this indexer throws. + + + + + + This is a name-based indexer into the Zip archive. + + + + + This property is read-only. + + + + The property on the ZipFile + determines whether retrieval via this indexer is done via case-sensitive + comparisons. By default, retrieval is not case sensitive. This makes + sense on Windows, in which filesystems are not case sensitive. + + + + Regardless of case-sensitivity, it is not always the case that + this[value].FileName == value. In other words, the FileName + property of the ZipEntry retrieved with this indexer, may or may + not be equal to the index value. + + + + This is because DotNetZip performs a normalization of filenames passed to + this indexer, before attempting to retrieve the item. That normalization + includes: removal of a volume letter and colon, swapping backward slashes + for forward slashes. So, zip["dir1\\entry1.txt"].FileName == + "dir1/entry.txt". + + + + Directory entries in the zip file may be retrieved via this indexer only + with names that have a trailing slash. DotNetZip automatically appends a + trailing slash to the names of any directory entries added to a zip. + + + + + + This example extracts only the entries in a zip file that are .txt files. + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + zip[s1].Extract("textfiles"); + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + Thrown if the caller attempts to assign a non-null value to the indexer. + + + + The name of the file, including any directory path, to retrieve from the + zip. The filename match is not case-sensitive by default; you can use the + property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + The ZipEntry within the Zip archive, given by the specified + filename. If the named entry does not exist in the archive, this indexer + returns null (Nothing in VB). + + + + + + The list of filenames for the entries contained within the zip archive. + + + + According to the ZIP specification, the names of the entries use forward + slashes in pathnames. If you are scanning through the list, you may have + to swap forward slashes for backslashes. + + + + + + This example shows one way to test if a filename is already contained + within a zip archive. + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = new ZipFile(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", + candidate, + zipFileName); + else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", + candidate, + zipFileName); + Console.WriteLine(); + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile.Read(ZipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", _ + candidate, _ + zipFileName) + Else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", _ + candidate, _ + zipFileName) + End If + Console.WriteLine + End Using + + + + + The list of strings for the filenames contained within the Zip archive. + + + + + + Returns the readonly collection of entries in the Zip archive. + + + + + + If there are no entries in the current ZipFile, the value returned is a + non-null zero-element collection. If there are entries in the zip file, + the elements are returned in no particular order. + + + This is the implied enumerator on the ZipFile class. If you use a + ZipFile instance in a context that expects an enumerator, you will + get this collection. + + + + + + + Returns a readonly collection of entries in the Zip archive, sorted by FileName. + + + + If there are no entries in the current ZipFile, the value returned + is a non-null zero-element collection. If there are entries in the zip + file, the elements are returned sorted by the name of the entry. + + + + + This example fills a Windows Forms ListView with the entries in a zip file. + + + using (ZipFile zip = ZipFile.Read(zipFile)) + { + foreach (ZipEntry entry in zip.EntriesSorted) + { + ListViewItem item = new ListViewItem(n.ToString()); + n++; + string[] subitems = new string[] { + entry.FileName.Replace("/","\\"), + entry.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + entry.UncompressedSize.ToString(), + String.Format("{0,5:F0}%", entry.CompressionRatio), + entry.CompressedSize.ToString(), + (entry.UsesEncryption) ? "Y" : "N", + String.Format("{0:X8}", entry.Crc)}; + + foreach (String s in subitems) + { + ListViewItem.ListViewSubItem subitem = new ListViewItem.ListViewSubItem(); + subitem.Text = s; + item.SubItems.Add(subitem); + } + + this.listView1.Items.Add(item); + } + } + + + + + + + + Returns the number of entries in the Zip archive. + + + + + An event handler invoked when a Save() starts, before and after each + entry has been written to the archive, when a Save() completes, and + during other Save events. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + SaveProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Saving_Started + Fired when ZipFile.Save() begins. + + + + + ZipProgressEventType.Saving_BeforeSaveEntry + + Fired within ZipFile.Save(), just before writing data for each + particular entry. + + + + + ZipProgressEventType.Saving_AfterSaveEntry + + Fired within ZipFile.Save(), just after having finished writing data + for each particular entry. + + + + + ZipProgressEventType.Saving_Completed + Fired when ZipFile.Save() has completed. + + + + + ZipProgressEventType.Saving_AfterSaveTempArchive + + Fired after the temporary file has been created. This happens only + when saving to a disk file. This event will not be invoked when + saving to a stream. + + + + + ZipProgressEventType.Saving_BeforeRenameTempArchive + + Fired just before renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterRenameTempArchive + + Fired just after renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterCompileSelfExtractor + + Fired after a self-extracting archive has finished compiling. This + EventType is used only within SaveSelfExtractor(). + + + + + ZipProgressEventType.Saving_BytesRead + + Set during the save of a particular entry, to update progress of the + Save(). When this EventType is set, the BytesTransferred is the + number of bytes that have been read from the source stream. The + TotalBytesToTransfer is the number of bytes in the uncompressed + file. + + + + + + + + + This example uses an anonymous method to handle the + SaveProgress event, by updating a progress bar. + + + progressBar1.Value = 0; + progressBar1.Max = listbox1.Items.Count; + using (ZipFile zip = new ZipFile()) + { + // listbox1 contains a list of filenames + zip.AddFiles(listbox1.Items); + + // do the progress bar: + zip.SaveProgress += (sender, e) => { + if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) { + progressBar1.PerformStep(); + } + }; + + zip.Save(fs); + } + + + + + This example uses a named method as the + SaveProgress event handler, to update the user, in a + console-based application. + + + static bool justHadByteUpdate= false; + public static void SaveProgress(object sender, SaveProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Saving_Started) + Console.WriteLine("Saving: {0}", e.ArchiveName); + + else if (e.EventType == ZipProgressEventType.Saving_Completed) + { + justHadByteUpdate= false; + Console.WriteLine(); + Console.WriteLine("Done: {0}", e.ArchiveName); + } + + else if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine(" Writing: {0} ({1}/{2})", + e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal); + justHadByteUpdate= false; + } + + else if (e.EventType == ZipProgressEventType.Saving_EntryBytesRead) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate= true; + } + } + + public static ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) { + zip.SaveProgress += SaveProgress; + zip.AddDirectory(directory); + zip.Save(targetZip); + } + } + + + + + Public Sub ZipUp(ByVal targetZip As String, ByVal directory As String) + Using zip As ZipFile = New ZipFile + AddHandler zip.SaveProgress, AddressOf MySaveProgress + zip.AddDirectory(directory) + zip.Save(targetZip) + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MySaveProgress(ByVal sender As Object, ByVal e As SaveProgressEventArgs) + If (e.EventType Is ZipProgressEventType.Saving_Started) Then + Console.WriteLine("Saving: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_Completed) Then + justHadByteUpdate = False + Console.WriteLine + Console.WriteLine("Done: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_BeforeWriteEntry) Then + If justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine(" Writing: {0} ({1}/{2})", e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal) + justHadByteUpdate = False + + ElseIf (e.EventType Is ZipProgressEventType.Saving_EntryBytesRead) Then + If justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, _ + e.TotalBytesToTransfer, _ + (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + justHadByteUpdate = True + End If + End Sub + + + + + + This is a more complete example of using the SaveProgress + events in a Windows Forms application, with a + Thread object. + + + delegate void SaveEntryProgress(SaveProgressEventArgs e); + delegate void ButtonClick(object sender, EventArgs e); + + public class WorkerOptions + { + public string ZipName; + public string Folder; + public string Encoding; + public string Comment; + public int ZipFlavor; + public Zip64Option Zip64; + } + + private int _progress2MaxFactor; + private bool _saveCanceled; + private long _totalBytesBeforeCompress; + private long _totalBytesAfterCompress; + private Thread _workerThread; + + + private void btnZipup_Click(object sender, EventArgs e) + { + KickoffZipup(); + } + + private void btnCancel_Click(object sender, EventArgs e) + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new ButtonClick(this.btnCancel_Click), new object[] { sender, e }); + } + else + { + _saveCanceled = true; + lblStatus.Text = "Canceled..."; + ResetState(); + } + } + + private void KickoffZipup() + { + _folderName = tbDirName.Text; + + if (_folderName == null || _folderName == "") return; + if (this.tbZipName.Text == null || this.tbZipName.Text == "") return; + + // check for existence of the zip file: + if (System.IO.File.Exists(this.tbZipName.Text)) + { + var dlgResult = MessageBox.Show(String.Format("The file you have specified ({0}) already exists." + + " Do you want to overwrite this file?", this.tbZipName.Text), + "Confirmation is Required", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (dlgResult != DialogResult.Yes) return; + System.IO.File.Delete(this.tbZipName.Text); + } + + _saveCanceled = false; + _nFilesCompleted = 0; + _totalBytesAfterCompress = 0; + _totalBytesBeforeCompress = 0; + this.btnOk.Enabled = false; + this.btnOk.Text = "Zipping..."; + this.btnCancel.Enabled = true; + lblStatus.Text = "Zipping..."; + + var options = new WorkerOptions + { + ZipName = this.tbZipName.Text, + Folder = _folderName, + Encoding = "ibm437" + }; + + if (this.comboBox1.SelectedIndex != 0) + { + options.Encoding = this.comboBox1.SelectedItem.ToString(); + } + + if (this.radioFlavorSfxCmd.Checked) + options.ZipFlavor = 2; + else if (this.radioFlavorSfxGui.Checked) + options.ZipFlavor = 1; + else options.ZipFlavor = 0; + + if (this.radioZip64AsNecessary.Checked) + options.Zip64 = Zip64Option.AsNecessary; + else if (this.radioZip64Always.Checked) + options.Zip64 = Zip64Option.Always; + else options.Zip64 = Zip64Option.Never; + + options.Comment = String.Format("Encoding:{0} || Flavor:{1} || ZIP64:{2}\r\nCreated at {3} || {4}\r\n", + options.Encoding, + FlavorToString(options.ZipFlavor), + options.Zip64.ToString(), + System.DateTime.Now.ToString("yyyy-MMM-dd HH:mm:ss"), + this.Text); + + if (this.tbComment.Text != TB_COMMENT_NOTE) + options.Comment += this.tbComment.Text; + + _workerThread = new Thread(this.DoSave); + _workerThread.Name = "Zip Saver thread"; + _workerThread.Start(options); + this.Cursor = Cursors.WaitCursor; + } + + + private void DoSave(Object p) + { + WorkerOptions options = p as WorkerOptions; + try + { + using (var zip1 = new ZipFile()) + { + zip1.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(options.Encoding); + zip1.Comment = options.Comment; + zip1.AddDirectory(options.Folder); + _entriesToZip = zip1.EntryFileNames.Count; + SetProgressBars(); + zip1.SaveProgress += this.zip1_SaveProgress; + + zip1.UseZip64WhenSaving = options.Zip64; + + if (options.ZipFlavor == 1) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.WinFormsApplication); + else if (options.ZipFlavor == 2) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.ConsoleApplication); + else + zip1.Save(options.ZipName); + } + } + catch (System.Exception exc1) + { + MessageBox.Show(String.Format("Exception while zipping: {0}", exc1.Message)); + btnCancel_Click(null, null); + } + } + + + + void zip1_SaveProgress(object sender, SaveProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Saving_AfterWriteEntry: + StepArchiveProgress(e); + break; + case ZipProgressEventType.Saving_EntryBytesRead: + StepEntryProgress(e); + break; + case ZipProgressEventType.Saving_Completed: + SaveCompleted(); + break; + case ZipProgressEventType.Saving_AfterSaveTempArchive: + // this event only occurs when saving an SFX file + TempArchiveSaved(); + break; + } + if (_saveCanceled) + e.Cancel = true; + } + + + + private void StepArchiveProgress(SaveProgressEventArgs e) + { + if (this.progressBar1.InvokeRequired) + { + this.progressBar1.Invoke(new SaveEntryProgress(this.StepArchiveProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + _nFilesCompleted++; + this.progressBar1.PerformStep(); + _totalBytesAfterCompress += e.CurrentEntry.CompressedSize; + _totalBytesBeforeCompress += e.CurrentEntry.UncompressedSize; + + // reset the progress bar for the entry: + this.progressBar2.Value = this.progressBar2.Maximum = 1; + + this.Update(); + } + } + } + + + private void StepEntryProgress(SaveProgressEventArgs e) + { + if (this.progressBar2.InvokeRequired) + { + this.progressBar2.Invoke(new SaveEntryProgress(this.StepEntryProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + if (this.progressBar2.Maximum == 1) + { + // reset + Int64 max = e.TotalBytesToTransfer; + _progress2MaxFactor = 0; + while (max > System.Int32.MaxValue) + { + max /= 2; + _progress2MaxFactor++; + } + this.progressBar2.Maximum = (int)max; + lblStatus.Text = String.Format("{0} of {1} files...({2})", + _nFilesCompleted + 1, _entriesToZip, e.CurrentEntry.FileName); + } + + int xferred = e.BytesTransferred >> _progress2MaxFactor; + + this.progressBar2.Value = (xferred >= this.progressBar2.Maximum) + ? this.progressBar2.Maximum + : xferred; + + this.Update(); + } + } + } + + private void SaveCompleted() + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new MethodInvoker(this.SaveCompleted)); + } + else + { + lblStatus.Text = String.Format("Done, Compressed {0} files, {1:N0}% of original.", + _nFilesCompleted, (100.00 * _totalBytesAfterCompress) / _totalBytesBeforeCompress); + ResetState(); + } + } + + private void ResetState() + { + this.btnCancel.Enabled = false; + this.btnOk.Enabled = true; + this.btnOk.Text = "Zip it!"; + this.progressBar1.Value = 0; + this.progressBar2.Value = 0; + this.Cursor = Cursors.Default; + if (!_workerThread.IsAlive) + _workerThread.Join(); + } + + + + + + + + + + + An event handler invoked before, during, and after the reading of a zip archive. + + + + + Depending on the particular event being signaled, different properties on the + parameter are set. The following table + summarizes the available EventTypes and the conditions under which this + event handler is invoked with a ReadProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Reading_Started + Fired just as ZipFile.Read() begins. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_Completed + Fired when ZipFile.Read() has completed. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_ArchiveBytesRead + Fired while reading, updates the number of bytes read for the entire archive. + Meaningful properties: ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Reading_BeforeReadEntry + Indicates an entry is about to be read from the archive. + Meaningful properties: ArchiveName, EntriesTotal. + + + + + ZipProgressEventType.Reading_AfterReadEntry + Indicates an entry has just been read from the archive. + Meaningful properties: ArchiveName, EntriesTotal, CurrentEntry. + + + + + + + + + + + + + An event handler invoked before, during, and after extraction of + entries in the zip archive. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + ExtractProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Extracting_BeforeExtractAll + + Set when ExtractAll() begins. The ArchiveName, Overwrite, and + ExtractLocation properties are meaningful. + + + + ZipProgressEventType.Extracting_AfterExtractAll + + Set when ExtractAll() has completed. The ArchiveName, Overwrite, + and ExtractLocation properties are meaningful. + + + + + ZipProgressEventType.Extracting_BeforeExtractEntry + + Set when an Extract() on an entry in the ZipFile has begun. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_AfterExtractEntry + + Set when an Extract() on an entry in the ZipFile has completed. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_EntryBytesWritten + + Set within a call to Extract() on an entry in the ZipFile, as data + is extracted for the entry. Properties that are meaningful: + ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite + + Set within a call to Extract() on an entry in the ZipFile, when the + extraction would overwrite an existing file. This event type is used + only when ExtractExistingFileAction on the ZipFile or + ZipEntry is set to InvokeExtractProgressEvent. + + + + + + + + + + private static bool justHadByteUpdate = false; + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if(e.EventType == ZipProgressEventType.Extracting_EntryBytesWritten) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate = true; + } + else if(e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName); + justHadByteUpdate= false; + } + } + + public static ExtractZip(string zipToExtract, string directory) + { + string TargetDirectory= "extract"; + using (var zip = ZipFile.Read(zipToExtract)) { + zip.ExtractProgress += ExtractProgress; + foreach (var e in zip1) + { + e.Extract(TargetDirectory, true); + } + } + } + + + + Public Shared Sub Main(ByVal args As String()) + Dim ZipToUnpack As String = "C1P3SML.zip" + Dim TargetDir As String = "ExtractTest_Extract" + Console.WriteLine("Extracting file {0} to {1}", ZipToUnpack, TargetDir) + Using zip1 As ZipFile = ZipFile.Read(ZipToUnpack) + AddHandler zip1.ExtractProgress, AddressOf MyExtractProgress + Dim e As ZipEntry + For Each e In zip1 + e.Extract(TargetDir, True) + Next + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MyExtractProgress(ByVal sender As Object, ByVal e As ExtractProgressEventArgs) + If (e.EventType = ZipProgressEventType.Extracting_EntryBytesWritten) Then + If ExtractTest.justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + ExtractTest.justHadByteUpdate = True + ElseIf (e.EventType = ZipProgressEventType.Extracting_BeforeExtractEntry) Then + If ExtractTest.justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName) + ExtractTest.justHadByteUpdate = False + End If + End Sub + + + + + + + + + + An event handler invoked before, during, and after Adding entries to a zip archive. + + + + Adding a large number of entries to a zip file can take a long + time. For example, when calling on a + directory that contains 50,000 files, it could take 3 minutes or so. + This event handler allws an application to track the progress of the Add + operation, and to optionally cancel a lengthy Add operation. + + + + + + int _numEntriesToAdd= 0; + int _numEntriesAdded= 0; + void AddProgressHandler(object sender, AddProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Adding_Started: + Console.WriteLine("Adding files to the zip..."); + break; + case ZipProgressEventType.Adding_AfterAddEntry: + _numEntriesAdded++; + Console.WriteLine(String.Format("Adding file {0}/{1} :: {2}", + _numEntriesAdded, _numEntriesToAdd, e.CurrentEntry.FileName)); + break; + case ZipProgressEventType.Adding_Completed: + Console.WriteLine("Added all files"); + break; + } + } + + void CreateTheZip() + { + using (ZipFile zip = new ZipFile()) + { + zip.AddProgress += AddProgressHandler; + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)); + zip.Save(ZipFileToCreate); + } + } + + + + + + Private Sub AddProgressHandler(ByVal sender As Object, ByVal e As AddProgressEventArgs) + Select Case e.EventType + Case ZipProgressEventType.Adding_Started + Console.WriteLine("Adding files to the zip...") + Exit Select + Case ZipProgressEventType.Adding_AfterAddEntry + Console.WriteLine(String.Format("Adding file {0}", e.CurrentEntry.FileName)) + Exit Select + Case ZipProgressEventType.Adding_Completed + Console.WriteLine("Added all files") + Exit Select + End Select + End Sub + + Sub CreateTheZip() + Using zip as ZipFile = New ZipFile + AddHandler zip.AddProgress, AddressOf AddProgressHandler + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)) + zip.Save(ZipFileToCreate); + End Using + End Sub + + + + + + + + + + + + An event that is raised when an error occurs during open or read of files + while saving a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. If you add a handler to this event, + you can handle such errors in your own code. If you don't add a + handler, the library will throw an exception if it encounters an I/O + error during a call to Save(). + + + + Setting a handler implicitly sets to + ZipErrorAction.InvokeErrorEvent. + + + + The handler you add applies to all items that are + subsequently added to the ZipFile instance. If you set this + property after you have added items to the ZipFile, but before you + have called Save(), errors that occur while saving those items + will not cause the error handler to be invoked. + + + + If you want to handle any errors that occur with any entry in the zip + file using the same error handler, then add your error handler once, + before adding any entries to the zip archive. + + + + In the error handler method, you need to set the property on the + ZipErrorEventArgs.CurrentEntry. This communicates back to + DotNetZip what you would like to do with this particular error. Within + an error handler, if you set the ZipEntry.ZipErrorAction property + on the ZipEntry to ZipErrorAction.InvokeErrorEvent or if + you don't set it at all, the library will throw the exception. (It is the + same as if you had set the ZipEntry.ZipErrorAction property on the + ZipEntry to ZipErrorAction.Throw.) If you set the + ZipErrorEventArgs.Cancel to true, the entire Save() will be + canceled. + + + + In the case that you use ZipErrorAction.Skip, implying that + you want to skip the entry for which there's been an error, DotNetZip + tries to seek backwards in the output stream, and truncate all bytes + written on behalf of that particular entry. This works only if the + output stream is seekable. It will not work, for example, when using + ASPNET's Response.OutputStream. + + + + + + + This example shows how to use an event handler to handle + errors during save of the zip file. + + + public static void MyZipError(object sender, ZipErrorEventArgs e) + { + Console.WriteLine("Error saving {0}...", e.FileName); + Console.WriteLine(" Exception: {0}", e.exception); + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user whether he wants to skip this error or not + do + { + Console.Write("Retry, Skip, Throw, or Cancel ? (R/S/T/C) "); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && + response[0]!='S' && response[0]!='s' && + response[0]!='R' && response[0]!='r' && + response[0]!='T' && response[0]!='t' && + response[0]!='C' && response[0]!='c'); + + e.Cancel = (response[0]=='C' || response[0]=='c'); + + if (response[0]=='S' || response[0]=='s') + entry.ZipErrorAction = ZipErrorAction.Skip; + else if (response[0]=='R' || response[0]=='r') + entry.ZipErrorAction = ZipErrorAction.Retry; + else if (response[0]=='T' || response[0]=='t') + entry.ZipErrorAction = ZipErrorAction.Throw; + } + + public void SaveTheFile() + { + string directoryToZip = "fodder"; + string directoryInArchive = "files"; + string zipFileToCreate = "Archive.zip"; + using (var zip = new ZipFile()) + { + // set the event handler before adding any entries + zip.ZipError += MyZipError; + zip.AddDirectory(directoryToZip, directoryInArchive); + zip.Save(zipFileToCreate); + } + } + + + + Private Sub MyZipError(ByVal sender As Object, ByVal e As Ionic.Zip.ZipErrorEventArgs) + ' At this point, the application could prompt the user for an action to take. + ' But in this case, this application will simply automatically skip the file, in case of error. + Console.WriteLine("Zip Error, entry {0}", e.CurrentEntry.FileName) + Console.WriteLine(" Exception: {0}", e.exception) + ' set the desired ZipErrorAction on the CurrentEntry to communicate that to DotNetZip + e.CurrentEntry.ZipErrorAction = Zip.ZipErrorAction.Skip + End Sub + + Public Sub SaveTheFile() + Dim directoryToZip As String = "fodder" + Dim directoryInArchive As String = "files" + Dim zipFileToCreate as String = "Archive.zip" + Using zipArchive As ZipFile = New ZipFile + ' set the event handler before adding any entries + AddHandler zipArchive.ZipError, AddressOf MyZipError + zipArchive.AddDirectory(directoryToZip, directoryInArchive) + zipArchive.Save(zipFileToCreate) + End Using + End Sub + + + + + + + + + Options for using ZIP64 extensions when saving zip archives. + + + + + + Designed many years ago, the original zip + specification from PKWARE allowed for 32-bit quantities for the + compressed and uncompressed sizes of zip entries, as well as a 32-bit quantity + for specifying the length of the zip archive itself, and a maximum of 65535 + entries. These limits are now regularly exceeded in many backup and archival + scenarios. Recently, PKWare added extensions to the original zip spec, called + "ZIP64 extensions", to raise those limitations. This property governs whether + DotNetZip will use those extensions when writing zip archives. The use of + these extensions is optional and explicit in DotNetZip because, despite the + status of ZIP64 as a bona fide standard, many other zip tools and libraries do + not support ZIP64, and therefore a zip file with ZIP64 extensions may be + unreadable by some of those other tools. + + + + Set this property to to always use ZIP64 + extensions when saving, regardless of whether your zip archive needs it. + Suppose you add 5 files, each under 100k, to a ZipFile. If you specify Always + for this flag, you will get a ZIP64 archive, though the archive does not need + to use ZIP64 because none of the original zip limits had been exceeded. + + + + Set this property to to tell the DotNetZip + library to never use ZIP64 extensions. This is useful for maximum + compatibility and interoperability, at the expense of the capability of + handling large files or large archives. NB: Windows Explorer in Windows XP + and Windows Vista cannot currently extract files from a zip64 archive, so if + you want to guarantee that a zip archive produced by this library will work in + Windows Explorer, use Never. If you set this property to , and your application creates a zip that would + exceed one of the Zip limits, the library will throw an exception while saving + the zip file. + + + + Set this property to to tell the + DotNetZip library to use the ZIP64 extensions when required by the + entry. After the file is compressed, the original and compressed sizes are + checked, and if they exceed the limits described above, then zip64 can be + used. That is the general idea, but there is an additional wrinkle when saving + to a non-seekable device, like the ASP.NET Response.OutputStream, or + Console.Out. When using non-seekable streams for output, the entry + header - which indicates whether zip64 is in use - is emitted before it is + known if zip64 is necessary. It is only after all entries have been saved + that it can be known if ZIP64 will be required. On seekable output streams, + after saving all entries, the library can seek backward and re-emit the zip + file header to be consistent with the actual ZIP64 requirement. But using a + non-seekable output stream, the library cannot seek backward, so the header + can never be changed. In other words, the archive's use of ZIP64 extensions is + not alterable after the header is emitted. Therefore, when saving to + non-seekable streams, using is the same + as using : it will always produce a zip + archive that uses ZIP64 extensions. + + + + + + + The default behavior, which is "Never". + (For COM clients, this is a 0 (zero).) + + + + + Do not use ZIP64 extensions when writing zip archives. + (For COM clients, this is a 0 (zero).) + + + + + Use ZIP64 extensions when writing zip archives, as necessary. + For example, when a single entry exceeds 0xFFFFFFFF in size, or when the archive as a whole + exceeds 0xFFFFFFFF in size, or when there are more than 65535 entries in an archive. + (For COM clients, this is a 1.) + + + + + Always use ZIP64 extensions when writing zip archives, even when unnecessary. + (For COM clients, this is a 2.) + + + + + An enum representing the values on a three-way toggle switch + for various options in the library. This might be used to + specify whether to employ a particular text encoding, or to use + ZIP64 extensions, or some other option. + + + + + The default behavior. This is the same as "Never". + (For COM clients, this is a 0 (zero).) + + + + + Never use the associated option. + (For COM clients, this is a 0 (zero).) + + + + + Use the associated behavior "as necessary." + (For COM clients, this is a 1.) + + + + + Use the associated behavior Always, whether necessary or not. + (For COM clients, this is a 2.) + + + + + A class for collecting the various options that can be used when + Reading zip files for extraction or update. + + + + + When reading a zip file, there are several options an + application can set, to modify how the file is read, or what + the library does while reading. This class collects those + options into one container. + + + + Pass an instance of the ReadOptions class into the + ZipFile.Read() method. + + + . + . + + + + + An event handler for Read operations. When opening large zip + archives, you may want to display a progress bar or other + indicator of status progress while reading. This parameter + allows you to specify a ReadProgress Event Handler directly. + When you call Read(), the progress event is invoked as + necessary. + + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + + + + + + An enum that provides the different self-extractor flavors + + + + + A self-extracting zip archive that runs from the console or + command line. + + + + + A self-extracting zip archive that presents a graphical user + interface when it is executed. + + + + + The options for generating a self-extracting archive. + + + + + The type of SFX to create. + + + + + The command to run after extraction. + + + + + This is optional. Leave it empty (null in C# or Nothing in + VB) to run no command after extraction. + + + + If it is non-empty, the SFX will execute the command specified in this + string on the user's machine, and using the extract directory as the + working directory for the process, after unpacking the archive. The + program to execute can include a path, if you like. If you want to execute + a program that accepts arguments, specify the program name, followed by a + space, and then the arguments for the program, each separated by a space, + just as you would on a normal command line. Example: program.exe arg1 + arg2. The string prior to the first space will be taken as the + program name, and the string following the first space specifies the + arguments to the program. + + + + If you want to execute a program that has a space in the name or path of + the file, surround the program name in double-quotes. The first character + of the command line should be a double-quote character, and there must be + a matching double-quote following the end of the program file name. Any + optional arguments to the program follow that, separated by + spaces. Example: "c:\project files\program name.exe" arg1 arg2. + + + + If the flavor of the SFX is SelfExtractorFlavor.ConsoleApplication, + then the SFX starts a new process, using this string as the post-extract + command line. The SFX waits for the process to exit. The exit code of + the post-extract command line is returned as the exit code of the + command-line self-extractor exe. A non-zero exit code is typically used to + indicated a failure by the program. In the case of an SFX, a non-zero exit + code may indicate a failure during extraction, OR, it may indicate a + failure of the run-after-extract program if specified, OR, it may indicate + the run-after-extract program could not be fuond. There is no way to + distinguish these conditions from the calling shell, aside from parsing + the output of the SFX. If you have Quiet set to true, you may not + see error messages, if a problem occurs. + + + + If the flavor of the SFX is + SelfExtractorFlavor.WinFormsApplication, then the SFX starts a new + process, using this string as the post-extract command line, and using the + extract directory as the working directory for the process. The SFX does + not wait for the command to complete, and does not check the exit code of + the program. If the run-after-extract program cannot be fuond, a message + box is displayed indicating that fact. + + + + You can specify environment variables within this string, with a format like + %NAME%. The value of these variables will be expanded at the time + the SFX is run. Example: %WINDIR%\system32\xcopy.exe may expand at + runtime to c:\Windows\System32\xcopy.exe. + + + + By combining this with the RemoveUnpackedFilesAfterExecute + flag, you can create an SFX that extracts itself, runs a file that + was extracted, then deletes all the files that were extracted. If + you want it to run "invisibly" then set Flavor to + SelfExtractorFlavor.ConsoleApplication, and set Quiet + to true. The user running such an EXE will see a console window + appear, then disappear quickly. You may also want to specify the + default extract location, with DefaultExtractDirectory. + + + + If you set Flavor to + SelfExtractorFlavor.WinFormsApplication, and set Quiet to + true, then a GUI with progressbars is displayed, but it is + "non-interactive" - it accepts no input from the user. Instead the SFX + just automatically unpacks and exits. + + + + + + + The default extract directory the user will see when + running the self-extracting archive. + + + + + Passing null (or Nothing in VB) here will cause the Self Extractor to use + the the user's personal directory () for the default extract + location. + + + + This is only a default location. The actual extract location will be + settable on the command line when the SFX is executed. + + + + You can specify environment variables within this string, + with %NAME%. The value of these variables will be + expanded at the time the SFX is run. Example: + %USERPROFILE%\Documents\unpack may expand at runtime to + c:\users\melvin\Documents\unpack. + + + + + + The name of an .ico file in the filesystem to use for the application icon + for the generated SFX. + + + + + Normally, DotNetZip will embed an "zipped folder" icon into the generated + SFX. If you prefer to use a different icon, you can specify it here. It + should be a .ico file. This file is passed as the /win32icon + option to the csc.exe compiler when constructing the SFX file. + + + + + + + Whether the ConsoleApplication SFX will be quiet during extraction. + + + + + This option affects the way the generated SFX runs. By default it is + false. When you set it to true,... + + + + + Flavor + Behavior + + + + ConsoleApplication + no messages will be emitted during successful + operation. Double-clicking the SFX in Windows + Explorer or as an attachment in an email will cause a console + window to appear briefly, before it disappears. If you run the + ConsoleApplication SFX from the cmd.exe prompt, it runs as a + normal console app; by default, because it is quiet, it displays + no messages to the console. If you pass the -v+ command line + argument to the Console SFX when you run it, you will get verbose + messages to the console. + + + + + WinFormsApplication + the SFX extracts automatically when the application + is launched, with no additional user input. + + + + + + + When you set it to false,... + + + + + Flavor + Behavior + + + + ConsoleApplication + the extractor will emit a + message to the console for each entry extracted. + + When double-clicking to launch the SFX, the console window will + remain, and the SFX will emit a message for each file as it + extracts. The messages fly by quickly, they won't be easily + readable, unless the extracted files are fairly large. + + + + + + WinFormsApplication + the SFX presents a forms UI and allows the user to select + options before extracting. + + + + + + + + + + Specify what the self-extractor will do when extracting an entry + would overwrite an existing file. + + + + The default behavvior is to Throw. + + + + + + Whether to remove the files that have been unpacked, after executing the + PostExtractCommandLine. + + + + + If true, and if there is a + PostExtractCommandLine, and if the command runs successfully, + then the files that the SFX unpacked will be removed, afterwards. If + the command does not complete successfully (non-zero return code), + that is interpreted as a failure, and the extracted files will not be + removed. + + + + Setting this flag, and setting Flavor to + SelfExtractorFlavor.ConsoleApplication, and setting Quiet to + true, results in an SFX that extracts itself, runs a file that was + extracted, then deletes all the files that were extracted, with no + intervention by the user. You may also want to specify the default + extract location, with DefaultExtractDirectory. + + + + + + + The file version number to embed into the generated EXE. It will show up, for + example, during a mouseover in Windows Explorer. + + + + + + The product version to embed into the generated EXE. It will show up, for + example, during a mouseover in Windows Explorer. + + + + You can use any arbitrary string, but a human-readable version number is + recommended. For example "v1.2 alpha" or "v4.2 RC2". If you specify nothing, + then there is no product version embedded into the EXE. + + + + + + The copyright notice, if any, to embed into the generated EXE. + + + + It will show up, for example, while viewing properties of the file in + Windows Explorer. You can use any arbitrary string, but typically you + want something like "Copyright © Dino Chiesa 2011". + + + + + + The description to embed into the generated EXE. + + + + Use any arbitrary string. This text will be displayed during a + mouseover in Windows Explorer. If you specify nothing, then the string + "DotNetZip SFX Archive" is embedded into the EXE as the description. + + + + + + The product name to embed into the generated EXE. + + + + Use any arbitrary string. This text will be displayed + while viewing properties of the EXE file in + Windows Explorer. + + + + + + The title to display in the Window of a GUI SFX, while it extracts. + + + + + By default the title show in the GUI window of a self-extractor + is "DotNetZip Self-extractor (http://DotNetZip.codeplex.com/)". + You can change that by setting this property before saving the SFX. + + + + This property has an effect only when producing a Self-extractor + of flavor SelfExtractorFlavor.WinFormsApplication. + + + + + + + Additional options for the csc.exe compiler, when producing the SFX + EXE. + + + + + + Reset the BitWriter. + + + + This is useful when the BitWriter writes into a MemoryStream, and + is used by a BZip2Compressor, which itself is re-used for multiple + distinct data blocks. + + + + + + Write some number of bits from the given value, into the output. + + + + The nbits value should be a max of 25, for safety. For performance + reasons, this method does not check! + + + + + + Write a full 8-bit byte into the output. + + + + + Write four 8-bit bytes into the output. + + + + + Write all available byte-aligned bytes. + + + + This method writes no new output, but flushes any accumulated + bits. At completion, the accumulator may contain up to 7 + bits. + + + This is necessary when re-assembling output from N independent + compressors, one for each of N blocks. The output of any + particular compressor will in general have some fragment of a byte + remaining. This fragment needs to be accumulated into the + parent BZip2OutputStream. + + + + + + Writes all available bytes, and emits padding for the final byte as + necessary. This must be the last method invoked on an instance of + BitWriter. + + + + + Delivers the remaining bits, left-aligned, in a byte. + + + + This is valid only if NumRemainingBits is less than 8; + in other words it is valid only after a call to Flush(). + + + + + Knuth's increments seem to work better than Incerpi-Sedgewick here. + Possibly because the number of elems to sort is usually small, typically + <= 20. + + + + BZip2Compressor writes its compressed data out via a BitWriter. This + is necessary because BZip2 does byte shredding. + + + + + Accept new bytes into the compressor data buffer + + + + This method does the first-level (cheap) run-length encoding, and + stores the encoded data into the rle block. + + + + + + Process one input byte into the block. + + + + + To "process" the byte means to do the run-length encoding. + There are 3 possible return values: + + 0 - the byte was not written, in other words, not + encoded into the block. This happens when the + byte b would require the start of a new run, and + the block has no more room for new runs. + + 1 - the byte was written, and the block is not full. + + 2 - the byte was written, and the block is full. + + + + 0 if the byte was not written, non-zero if written. + + + + Append one run to the output block. + + + + + This compressor does run-length-encoding before BWT and etc. This + method simply appends a run to the output block. The append always + succeeds. The return value indicates whether the block is full: + false (not full) implies that at least one additional run could be + processed. + + + true if the block is now full; otherwise false. + + + + Compress the data that has been placed (Run-length-encoded) into the + block. The compressed data goes into the CompressedBytes array. + + + + Side effects: 1. fills the CompressedBytes array. 2. sets the + AvailableBytesOut property. + + + + + This is the most hammered method of this class. + +

+ This is the version using unrolled loops. +

+
+ + Method "mainQSort3", file "blocksort.c", BZip2 1.0.2 + + + + The number of uncompressed bytes being held in the buffer. + + + + I am thinking this may be useful in a Stream that uses this + compressor class. In the Close() method on the stream it could + check this value to see if anything has been written at all. You + may think the stream could easily track the number of bytes it + wrote, which would eliminate the need for this. But, there is the + case where the stream writes a complete block, and it is full, and + then writes no more. In that case the stream may want to check. + + + + + Array instance identical to sfmap, both are used only + temporarily and independently, so we do not need to allocate + additional memory. + + + + A read-only decorator stream that performs BZip2 decompression on Read. + + + + + Create a BZip2InputStream, wrapping it around the given input Stream. + + + + The input stream will be closed when the BZip2InputStream is closed. + + + The stream from which to read compressed data + + + + Create a BZip2InputStream with the given stream, and + specifying whether to leave the wrapped stream open when + the BZip2InputStream is closed. + + The stream from which to read compressed data + + Whether to leave the input stream open, when the BZip2InputStream closes. + + + + + This example reads a bzip2-compressed file, decompresses it, + and writes the decompressed data into a newly created file. + + + var fname = "logfile.log.bz2"; + using (var fs = File.OpenRead(fname)) + { + using (var decompressor = new Ionic.BZip2.BZip2InputStream(fs)) + { + var outFname = fname + ".decompressed"; + using (var output = File.Create(outFname)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = decompressor.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer, 0, n); + } + } + } + } + + + + + + Read data from the stream. + + + + + To decompress a BZip2 data stream, create a BZip2InputStream, + providing a stream that reads compressed data. Then call Read() on + that BZip2InputStream, and the data read will be decompressed + as you read. + + + + A BZip2InputStream can be used only for Read(), not for Write(). + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Read a single byte from the stream. + + the byte read from the stream, or -1 if EOF + + + + Flush the stream. + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + + + + Dispose the stream. + + + indicates whether the Dispose method was invoked by user code. + + + + + Close the stream. + + + + + Read n bits from input, right justifying the result. + + + + For example, if you read 1 bit, the result is either 0 + or 1. + + + + The number of bits to read, always between 1 and 32. + + + + Called by createHuffmanDecodingTables() exclusively. + + + Called by recvDecodingTables() exclusively. + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes read in. + + + + + Compressor State + + + + Freq table collected to save a pass over the data during + decompression. + + + Initializes the tt array. + + This method is called when the required length of the array is known. + I don't initialize it at construction time to avoid unneccessary + memory allocation when compressing small files. + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. + + + + + Constructs a new BZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.BZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new BZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new BZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new BZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + Write data to the stream. + + + + + Use the BZip2OutputStream to compress data while writing: + create a BZip2OutputStream with a writable output stream. + Then call Write() on that BZip2OutputStream, providing + uncompressed data as input. The data sent to the output stream will + be the compressed form of the input data. + + + + A BZip2OutputStream can be used only for Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + The blocksize parameter specified at construction time. + + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value should always be true, unless and until the + object is disposed and closed. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. This stream compresses by + block using multiple threads. + + + This class performs BZIP2 compression through writing. For + more information on the BZIP2 algorithm, see + . + + + + This class is similar to , + except that this implementation uses an approach that employs multiple + worker threads to perform the compression. On a multi-cpu or multi-core + computer, the performance of this class can be significantly higher than + the single-threaded BZip2OutputStream, particularly for larger streams. + How large? Anything over 10mb is a good candidate for parallel + compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla BZip2OutputStream. Also, for small files, the + ParallelBZip2OutputStream can be much slower than the vanilla + BZip2OutputStream, because of the overhead associated to using the + thread pool. + + + + + + + Constructs a new ParallelBZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.ParallelBZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new ParallelBZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + Write data to the stream. + + + + + Use the ParallelBZip2OutputStream to compress data while + writing: create a ParallelBZip2OutputStream with a writable + output stream. Then call Write() on that + ParallelBZip2OutputStream, providing uncompressed data as + input. The data sent to the output stream will be the compressed + form of the input data. + + + + A ParallelBZip2OutputStream can be used only for + Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + The maximum number of concurrent compression worker threads to use. + + + + + This property sets an upper limit on the number of concurrent worker + threads to employ for compression. The implementation of this stream + employs multiple threads from the .NET thread pool, via + ThreadPool.QueueUserWorkItem(), to compress the incoming data by + block. As each block of data is compressed, this stream re-orders the + compressed blocks and writes them to the output stream. + + + + A higher number of workers enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + By default, DotNetZip allocates 4 workers per CPU core, subject to the + upper limit specified in this property. For example, suppose the + application sets this property to 16. Then, on a machine with 2 + cores, DotNetZip will use 8 workers; that number does not exceed the + upper limit specified by this property, so the actual number of + workers used will be 4 * 2 = 8. On a machine with 4 cores, DotNetZip + will use 16 workers; again, the limit does not apply. On a machine + with 8 cores, DotNetZip will use 16 workers, because of the limit. + + + + For each compression "worker thread" that occurs in parallel, there is + up to 2mb of memory allocated, for buffering and processing. The + actual number depends on the property. + + + + CPU utilization will also go up with additional workers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + The blocksize parameter specified at construction time. + + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + The total number of bytes written out by the stream. + + + This value is meaningful only after a call to Close(). + + + + + Returns the "random" number at a specific index. + + the index + the random number + + + + A class for compressing and decompressing streams using the Deflate algorithm. + + + + + + The DeflateStream is a Decorator on a . It adds DEFLATE compression or decompression to any + stream. + + + + Using this stream, applications can compress or decompress data via stream + Read and Write operations. Either compresssion or decompression + can occur through either reading or writing. The compression format used is + DEFLATE, which is documented in IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.". + + + + This class is similar to , except that + ZlibStream adds the RFC + 1950 - ZLIB framing bytes to a compressed stream when compressing, or + expects the RFC1950 framing bytes when decompressing. The DeflateStream + does not. + + + + + + + + + + Create a DeflateStream using the specified CompressionMode. + + + + When mode is CompressionMode.Compress, the DeflateStream will use + the default compression level. The "captive" stream will be closed when + the DeflateStream is closed. + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + + + + Create a DeflateStream using the specified CompressionMode and the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. The "captive" stream will be closed when the DeflateStream is + closed. + + + + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the DeflateStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a DeflateStream using the specified + CompressionMode, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compression. Specify true for + the parameter to leave the stream open. + + + + The DeflateStream will use the default compression level. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + + + + Indicates whether the DeflateStream will compress or decompress. + + + true if the application would like the stream to + remain open after inflation/deflation. + + + + Create a DeflateStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify whether + the stream should be left open after Deflation or Inflation. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter + to leave the stream open. + + + + + + + This example shows how to use a DeflateStream to compress data from + a file, and store the compressed data into another file. + + + using (var output = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + // can write additional data to the output stream here + } + + + + Using output As FileStream = File.Create(fileToCompress & ".deflated") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + Application code won't call this code directly. This method may be + invoked in two distinct scenarios. If disposing == true, the method + has been called directly or indirectly by a user's code, for example + via the public Dispose() method. In this case, both managed and + unmanaged resources can be referenced and disposed. If disposing == + false, the method has been called by the runtime from inside the + object finalizer and this method should not reference other objects; + in that case only unmanaged resources must be referenced or + disposed. + + + + true if the Dispose method was invoked by user code. + + + + + Flush the stream. + + + + + Read data from the stream. + + + + + If you wish to use the DeflateStream to compress data while + reading, you can create a DeflateStream with + CompressionMode.Compress, providing an uncompressed data stream. + Then call Read() on that DeflateStream, and the data read will be + compressed as you read. If you wish to use the DeflateStream to + decompress data while reading, you can create a DeflateStream with + CompressionMode.Decompress, providing a readable compressed data + stream. Then call Read() on that DeflateStream, and the data read + will be decompressed as you read. + + + + A DeflateStream can be used for Read() or Write(), but not both. + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Write data to the stream. + + + + + If you wish to use the DeflateStream to compress data while + writing, you can create a DeflateStream with + CompressionMode.Compress, and a writable output stream. Then call + Write() on that DeflateStream, providing uncompressed data + as input. The data sent to the output stream will be the compressed form + of the data written. If you wish to use the DeflateStream to + decompress data while writing, you can create a DeflateStream with + CompressionMode.Decompress, and a writable output stream. Then + call Write() on that stream, providing previously compressed + data. The data sent to the output stream will be the decompressed form of + the data written. + + + + A DeflateStream can be used for Read() or Write(), + but not both. + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using DEFLATE (RFC 1951). + + + + Uncompress it with . + + + DeflateStream.UncompressString(byte[]) + DeflateStream.CompressBuffer(byte[]) + GZipStream.CompressString(string) + ZlibStream.CompressString(string) + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using DEFLATE. + + + + Uncompress it with . + + + DeflateStream.CompressString(string) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.CompressBuffer(byte[]) + ZlibStream.CompressBuffer(byte[]) + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a DEFLATE'd byte array into a single string. + + + DeflateStream.CompressString(String) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.UncompressString(byte[]) + ZlibStream.UncompressString(byte[]) + + + A buffer containing DEFLATE-compressed data. + + + The uncompressed string + + + + Uncompress a DEFLATE'd byte array into a byte array. + + + DeflateStream.CompressBuffer(byte[]) + DeflateStream.UncompressString(byte[]) + GZipStream.UncompressBuffer(byte[]) + ZlibStream.UncompressBuffer(byte[]) + + + A buffer containing data that has been compressed with DEFLATE. + + + The data in uncompressed form + + + + This property sets the flush behavior on the stream. + + See the ZLIB documentation for the meaning of the flush behavior. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + + The ZLIB strategy to be used during compression. + + + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + A class for compressing and decompressing GZIP streams. + + + + + The GZipStream is a Decorator on a + . It adds GZIP compression or decompression to any + stream. + + + + Like the System.IO.Compression.GZipStream in the .NET Base Class Library, the + Ionic.Zlib.GZipStream can compress while writing, or decompress while + reading, but not vice versa. The compression method used is GZIP, which is + documented in IETF RFC + 1952, "GZIP file format specification version 4.3". + + + A GZipStream can be used to decompress data (through Read()) or + to compress data (through Write()), but not both. + + + + If you wish to use the GZipStream to compress data, you must wrap it + around a write-able stream. As you call Write() on the GZipStream, the + data will be compressed into the GZIP format. If you want to decompress data, + you must wrap the GZipStream around a readable stream that contains an + IETF RFC 1952-compliant stream. The data will be decompressed as you call + Read() on the GZipStream. + + + + Though the GZIP format allows data from multiple files to be concatenated + together, this stream handles only a single segment of GZIP format, typically + representing a single file. + + + + This class is similar to and . + ZlibStream handles RFC1950-compliant streams. + handles RFC1951-compliant streams. This class handles RFC1952-compliant streams. + + + + + + + + + + The last modified time for the GZIP stream. + + + + GZIP allows the storage of a last modified time with each GZIP entry. + When compressing data, you can set this before the first call to + Write(). When decompressing, you can retrieve this value any time + after the first call to Read(). + + + + + Create a GZipStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the GZipStream will use the + default compression level. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with + CompressionMode.Decompress works only through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + + This example shows how to use a GZipStream to uncompress a file. + + private void GunZipFile(string filename) + { + if (!filename.EndsWith(".gz)) + throw new ArgumentException("filename"); + var DecompressedFile = filename.Substring(0,filename.Length-3); + byte[] working = new byte[WORKING_BUFFER_SIZE]; + int n= 1; + using (System.IO.Stream input = System.IO.File.OpenRead(filename)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(DecompressedFile)) + { + while (n !=0) + { + n= decompressor.Read(working, 0, working.Length); + if (n > 0) + { + output.Write(working, 0, n); + } + } + } + } + } + } + + + + Private Sub GunZipFile(ByVal filename as String) + If Not (filename.EndsWith(".gz)) Then + Throw New ArgumentException("filename") + End If + Dim DecompressedFile as String = filename.Substring(0,filename.Length-3) + Dim working(WORKING_BUFFER_SIZE) as Byte + Dim n As Integer = 1 + Using input As Stream = File.OpenRead(filename) + Using decompressor As Stream = new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, True) + Using output As Stream = File.Create(UncompressedFile) + Do + n= decompressor.Read(working, 0, working.Length) + If n > 0 Then + output.Write(working, 0, n) + End IF + Loop While (n > 0) + End Using + End Using + End Using + End Sub + + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + + + + Create a GZipStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + The CompressionMode (Compress or Decompress) also establishes the + "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A + GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + + This example shows how to use a GZipStream to compress a file into a .gz file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".gz")) + { + using (Stream compressor = new GZipStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".gz") + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the GZipStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a GZipStream using the specified CompressionMode, and + explicitly specify whether the stream should be left open after Deflation + or Inflation. + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to leave + the stream open. + + + + The (Compress or Decompress) also + establishes the "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A GZipStream + with CompressionMode.Decompress works only through Read(). + + + + The GZipStream will use the default compression level. If you want + to specify the compression level, see . + + + + See the other overloads of this constructor for example code. + + + + + + The stream which will be read or written. This is called the "captive" + stream in other places in this documentation. + + + Indicates whether the GZipStream will compress or decompress. + + + + true if the application would like the base stream to remain open after + inflation/deflation. + + + + + Create a GZipStream using the specified CompressionMode and the + specified CompressionLevel, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to + leave the stream open. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Flush the stream. + + + + + Read and decompress data from the source stream. + + + + With a GZipStream, decompression is done through reading. + + + + + byte[] working = new byte[WORKING_BUFFER_SIZE]; + using (System.IO.Stream input = System.IO.File.OpenRead(_CompressedFile)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(_DecompressedFile)) + { + int n; + while ((n= decompressor.Read(working, 0, working.Length)) !=0) + { + output.Write(working, 0, n); + } + } + } + } + + + The buffer into which the decompressed data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + irrelevant; it will always throw! + irrelevant; it will always throw! + irrelevant! + + + + Calling this method always throws a . + + irrelevant; this method will always throw! + + + + Write data to the stream. + + + + + If you wish to use the GZipStream to compress data while writing, + you can create a GZipStream with CompressionMode.Compress, and a + writable output stream. Then call Write() on that GZipStream, + providing uncompressed data as input. The data sent to the output stream + will be the compressed form of the data written. + + + + A GZipStream can be used for Read() or Write(), but not + both. Writing implies compression. Reading implies decompression. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using GZip. + + + + Uncompress it with . + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using GZip. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a GZip'ed byte array into a single string. + + + + + + + A buffer containing GZIP-compressed data. + + + The uncompressed string + + + + Uncompress a GZip'ed byte array into a byte array. + + + + + + + A buffer containing data that has been compressed with GZip. + + + The data in uncompressed form + + + + The comment on the GZIP stream. + + + + + The GZIP format allows for each file to optionally have an associated + comment stored with the file. The comment is encoded with the ISO-8859-1 + code page. To include a comment in a GZIP stream you create, set this + property before calling Write() for the first time on the + GZipStream. + + + + When using GZipStream to decompress, you can retrieve this property + after the first call to Read(). If no comment has been set in the + GZIP bytestream, the Comment property will return null + (Nothing in VB). + + + + + + The FileName for the GZIP stream. + + + + + + The GZIP format optionally allows each file to have an associated + filename. When compressing data (through Write()), set this + FileName before calling Write() the first time on the GZipStream. + The actual filename is encoded into the GZIP bytestream with the + ISO-8859-1 code page, according to RFC 1952. It is the application's + responsibility to insure that the FileName can be encoded and decoded + correctly with this code page. + + + + When decompressing (through Read()), you can retrieve this value + any time after the first Read(). In the case where there was no filename + encoded into the GZIP bytestream, the property will return null (Nothing + in VB). + + + + + + The CRC on the GZIP stream. + + + This is used for internal error checking. You probably don't need to look at this property. + + + + + This property sets the flush behavior on the stream. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + A class for compressing streams using the + Deflate algorithm with multiple threads. + + + + + This class performs DEFLATE compression through writing. For + more information on the Deflate algorithm, see IETF RFC 1951, + "DEFLATE Compressed Data Format Specification version 1.3." + + + + This class is similar to , except + that this class is for compression only, and this implementation uses an + approach that employs multiple worker threads to perform the DEFLATE. On + a multi-cpu or multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, particularly + for larger streams. How large? Anything over 10mb is a good candidate + for parallel compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla DeflateStream, and also is less efficient as a compressor. For + large files the size of the compressed data stream can be less than 1% + larger than the size of a compressed data stream from the vanialla + DeflateStream. For smaller files the difference can be larger. The + difference will also be larger if you set the BufferSize to be lower than + the default value. Your mileage may vary. Finally, for small files, the + ParallelDeflateOutputStream can be much slower than the vanilla + DeflateStream, because of the overhead associated to using the thread + pool. + + + + + + + + Create a ParallelDeflateOutputStream. + + + + + This stream compresses data written into it via the DEFLATE + algorithm (see RFC 1951), and writes out the compressed byte stream. + + + + The instance will use the default compression level, the default + buffer sizes and the default number of threads and buffers per + thread. + + + + This class is similar to , + except that this implementation uses an approach that employs + multiple worker threads to perform the DEFLATE. On a multi-cpu or + multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, + particularly for larger streams. How large? Anything over 10mb is + a good candidate for parallel compression. + + + + + + + This example shows how to use a ParallelDeflateOutputStream to compress + data. It reads a file, compresses it, and writes the compressed data to + a second, output file. + + + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + String outputFile = fileToCompress + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new ParallelDeflateOutputStream(raw)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New ParallelDeflateOutputStream(raw) + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to which compressed data will be written. + + + + Create a ParallelDeflateOutputStream using the specified CompressionLevel. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream using the specified + CompressionLevel and CompressionStrategy, and specifying whether to + leave the captive stream open when the ParallelDeflateOutputStream is + closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Write data to the stream. + + + + + + To use the ParallelDeflateOutputStream to compress data, create a + ParallelDeflateOutputStream with CompressionMode.Compress, passing a + writable output stream. Then call Write() on that + ParallelDeflateOutputStream, providing uncompressed data as input. The + data sent to the output stream will be the compressed form of the data + written. + + + + To decompress data, use the class. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Flush the stream. + + + + + Close the stream. + + + You must call Close on the stream to guarantee that all of the data written in has + been compressed, and the compressed data has been written out. + + + + Dispose the object + + + Because ParallelDeflateOutputStream is IDisposable, the + application must call this method when finished using the instance. + + + This method is generally called implicitly upon exit from + a using scope in C# (Using in VB). + + + + + The Dispose method + + indicates whether the Dispose method was invoked by user code. + + + + + Resets the stream for use with another stream. + + + Because the ParallelDeflateOutputStream is expensive to create, it + has been designed so that it can be recycled and re-used. You have + to call Close() on the stream first, then you can call Reset() on + it, to use it again on another stream. + + + + The new output stream for this era. + + + + + ParallelDeflateOutputStream deflater = null; + foreach (var inputFile in listOfFiles) + { + string outputFile = inputFile + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(inputFile)) + { + using (var outStream = System.IO.File.Create(outputFile)) + { + if (deflater == null) + deflater = new ParallelDeflateOutputStream(outStream, + CompressionLevel.Best, + CompressionStrategy.Default, + true); + deflater.Reset(outStream); + + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + deflater.Write(buffer, 0, n); + } + } + } + } + + + + + + This method always throws a NotSupportedException. + + + The buffer into which data would be read, IF THIS METHOD + ACTUALLY DID ANYTHING. + + + The offset within that data array at which to insert the + data that is read, IF THIS METHOD ACTUALLY DID + ANYTHING. + + + The number of bytes to write, IF THIS METHOD ACTUALLY DID + ANYTHING. + + nothing. + + + + This method always throws a NotSupportedException. + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + nothing. It always throws. + + + + This method always throws a NotSupportedException. + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + The ZLIB strategy to be used during compression. + + + + + + The maximum number of buffer pairs to use. + + + + + This property sets an upper limit on the number of memory buffer + pairs to create. The implementation of this stream allocates + multiple buffers to facilitate parallel compression. As each buffer + fills up, this stream uses + ThreadPool.QueueUserWorkItem() + to compress those buffers in a background threadpool thread. After a + buffer is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + The size of the buffers used by the compressor threads. + + + + + The default buffer size is 128k. The application can set this value + at any time, but it is effective only before the first Write(). + + + + Larger buffer sizes implies larger memory consumption but allows + more efficient compression. Using smaller buffer sizes consumes less + memory but may result in less effective compression. For example, + using the default buffer size of 128k, the compression delivered is + within 1% of the compression delivered by the single-threaded . On the other hand, using a + BufferSize of 8k can result in a compressed data stream that is 5% + larger than that delivered by the single-threaded + DeflateStream. Excessively small buffer sizes can also cause + the speed of the ParallelDeflateOutputStream to drop, because of + larger thread scheduling overhead dealing with many many small + buffers. + + + + The total amount of storage space allocated for buffering will be + (N*S*2), where N is the number of buffer pairs, and S is the size of + each buffer (this property). There are 2 buffers used by the + compressor, one for input and one for output. By default, DotNetZip + allocates 4 buffer pairs per CPU core, so if your machine has 4 + cores, then the number of buffer pairs used will be 16. If you + accept the default value of this property, 128k, then the + ParallelDeflateOutputStream will use 16 * 2 * 128kb of buffer memory + in total, or 4mb, in blocks of 128kb. If you set this property to + 64kb, then the number will be 16 * 2 * 64kb of buffer memory, or + 2mb. + + + + + + + The CRC32 for the data that was written out, prior to compression. + + + This value is meaningful only after a call to Close(). + + + + + The total number of uncompressed bytes processed by the ParallelDeflateOutputStream. + + + This value is meaningful only after a call to Close(). + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream supports Read operations. + + + Always returns false. + + + + + Indicates whether the stream supports Write operations. + + + Returns true if the provided stream is writable. + + + + + Reading this property always throws a NotSupportedException. + + + + + Returns the current position of the output stream. + + + + Because the output gets written by a background thread, + the value may change asynchronously. Setting this + property always throws a NotSupportedException. + + + + + + Map from a distance to a distance code. + + + No side effects. _dist_code[256] and _dist_code[257] are never used. + + + + + Describes how to flush the current deflate operation. + + + The different FlushType values are useful when using a Deflate in a streaming application. + + + + No flush at all. + + + Closes the current block, but doesn't flush it to + the output. Used internally only in hypothetical + scenarios. This was supposed to be removed by Zlib, but it is + still in use in some edge cases. + + + + + Use this during compression to specify that all pending output should be + flushed to the output buffer and the output should be aligned on a byte + boundary. You might use this in a streaming communication scenario, so that + the decompressor can get all input data available so far. When using this + with a ZlibCodec, AvailableBytesIn will be zero after the call if + enough output space has been provided before the call. Flushing will + degrade compression and so it should be used only when necessary. + + + + + Use this during compression to specify that all output should be flushed, as + with FlushType.Sync, but also, the compression state should be reset + so that decompression can restart from this point if previous compressed + data has been damaged or if random access is desired. Using + FlushType.Full too often can significantly degrade the compression. + + + + Signals the end of the compression/decompression stream. + + + + The compression level to be used when using a DeflateStream or ZlibStream with CompressionMode.Compress. + + + + + None means that the data will be simply stored, with no change at all. + If you are producing ZIPs for use on Mac OSX, be aware that archives produced with CompressionLevel.None + cannot be opened with the default zip reader. Use a different CompressionLevel. + + + + + Same as None. + + + + + The fastest but least effective compression. + + + + + A synonym for BestSpeed. + + + + + A little slower, but better, than level 1. + + + + + A little slower, but better, than level 2. + + + + + A little slower, but better, than level 3. + + + + + A little slower than level 4, but with better compression. + + + + + The default compression level, with a good balance of speed and compression efficiency. + + + + + A synonym for Default. + + + + + Pretty good compression! + + + + + Better compression than Level7! + + + + + The "best" compression, where best means greatest reduction in size of the input data stream. + This is also the slowest compression. + + + + + A synonym for BestCompression. + + + + + Describes options for how the compression algorithm is executed. Different strategies + work better on different sorts of data. The strategy parameter can affect the compression + ratio and the speed of compression but not the correctness of the compresssion. + + + + + The default strategy is probably the best for normal data. + + + + + The Filtered strategy is intended to be used most effectively with data produced by a + filter or predictor. By this definition, filtered data consists mostly of small + values with a somewhat random distribution. In this case, the compression algorithm + is tuned to compress them better. The effect of Filtered is to force more Huffman + coding and less string matching; it is a half-step between Default and HuffmanOnly. + + + + + Using HuffmanOnly will force the compressor to do Huffman encoding only, with no + string matching. + + + + + An enum to specify the direction of transcoding - whether to compress or decompress. + + + + + Used to specify that the stream should compress the data. + + + + + Used to specify that the stream should decompress the data. + + + + + A general purpose exception class for exceptions in the Zlib library. + + + + + The ZlibException class captures exception information generated + by the Zlib library. + + + + + This ctor collects a message attached to the exception. + + the message for the exception. + + + + Performs an unsigned bitwise right shift with the specified number + + Number to operate on + Ammount of bits to shift + The resulting number from the shift operation + + + + Reads a number of characters from the current source TextReader and writes + the data to the target array at the specified index. + + + The source TextReader to read from + Contains the array of characteres read from the source TextReader. + The starting index of the target array. + The maximum number of characters to read from the source TextReader. + + + 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. + + + + + Computes an Adler-32 checksum. + + + The Adler checksum is similar to a CRC checksum, but faster to compute, though less + reliable. It is used in producing RFC1950 compressed streams. The Adler checksum + is a required part of the "ZLIB" standard. Applications will almost never need to + use this class directly. + + + + + + + Calculates the Adler32 checksum. + + + + This is used within ZLIB. You probably don't need to use this directly. + + + + To compute an Adler32 checksum on a byte array: + + var adler = Adler.Adler32(0, null, 0, 0); + adler = Adler.Adler32(adler, buffer, index, length); + + + + + + Encoder and Decoder for ZLIB and DEFLATE (IETF RFC1950 and RFC1951). + + + + This class compresses and decompresses data according to the Deflate algorithm + and optionally, the ZLIB format, as documented in RFC 1950 - ZLIB and RFC 1951 - DEFLATE. + + + + + The buffer from which data is taken. + + + + + An index into the InputBuffer array, indicating where to start reading. + + + + + The number of bytes available in the InputBuffer, starting at NextIn. + + + Generally you should set this to InputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes read so far, through all calls to Inflate()/Deflate(). + + + + + Buffer to store output data. + + + + + An index into the OutputBuffer array, indicating where to start writing. + + + + + The number of bytes available in the OutputBuffer, starting at NextOut. + + + Generally you should set this to OutputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes written to the output so far, through all calls to Inflate()/Deflate(). + + + + + used for diagnostics, when something goes wrong! + + + + + The compression level to use in this codec. Useful only in compression mode. + + + + + The number of Window Bits to use. + + + This gauges the size of the sliding window, and hence the + compression effectiveness as well as memory consumption. It's best to just leave this + setting alone if you don't know what it is. The maximum value is 15 bits, which implies + a 32k window. + + + + + The compression strategy to use. + + + This is only effective in compression. The theory offered by ZLIB is that different + strategies could potentially produce significant differences in compression behavior + for different data sets. Unfortunately I don't have any good recommendations for how + to set it differently. When I tested changing the strategy I got minimally different + compression performance. It's best to leave this property alone if you don't have a + good feel for it. Or, you may want to produce a test harness that runs through the + different strategy options and evaluates them on different file types. If you do that, + let me know your results. + + + + + Create a ZlibCodec. + + + If you use this default constructor, you will later have to explicitly call + InitializeInflate() or InitializeDeflate() before using the ZlibCodec to compress + or decompress. + + + + + Create a ZlibCodec that either compresses or decompresses. + + + Indicates whether the codec should compress (deflate) or decompress (inflate). + + + + + Initialize the inflation state. + + + It is not necessary to call this before using the ZlibCodec to inflate data; + It is implicitly called when you call the constructor. + + Z_OK if everything goes well. + + + + Initialize the inflation state with an explicit flag to + govern the handling of RFC1950 header bytes. + + + + By default, the ZLIB header defined in RFC 1950 is expected. If + you want to read a zlib stream you should specify true for + expectRfc1950Header. If you have a deflate stream, you will want to specify + false. It is only necessary to invoke this initializer explicitly if you + want to specify false. + + + whether to expect an RFC1950 header byte + pair when reading the stream of data to be inflated. + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for inflation, with the specified number of window bits. + + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if all goes well. + + + + Initialize the inflation state with an explicit flag to govern the handling of + RFC1950 header bytes. + + + + If you want to read a zlib stream you should specify true for + expectRfc1950Header. In this case, the library will expect to find a ZLIB + header, as defined in RFC + 1950, in the compressed stream. If you will be reading a DEFLATE or + GZIP stream, which does not have such a header, you will want to specify + false. + + + whether to expect an RFC1950 header byte pair when reading + the stream of data to be inflated. + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if everything goes well. + + + + Inflate the data in the InputBuffer, placing the result in the OutputBuffer. + + + You must have set InputBuffer and OutputBuffer, NextIn and NextOut, and AvailableBytesIn and + AvailableBytesOut before calling this method. + + + + private void InflateBuffer() + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec decompressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Inflate: {0} bytes.", CompressedBytes.Length); + MemoryStream ms = new MemoryStream(DecompressedBytes); + + int rc = decompressor.InitializeInflate(); + + decompressor.InputBuffer = CompressedBytes; + decompressor.NextIn = 0; + decompressor.AvailableBytesIn = CompressedBytes.Length; + + decompressor.OutputBuffer = buffer; + + // pass 1: inflate + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("inflating: " + decompressor.Message); + + ms.Write(decompressor.OutputBuffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("inflating: " + decompressor.Message); + + if (buffer.Length - decompressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + decompressor.EndInflate(); + } + + + + The flush to use when inflating. + Z_OK if everything goes well. + + + + Ends an inflation session. + + + Call this after successively calling Inflate(). This will cause all buffers to be flushed. + After calling this you cannot call Inflate() without a intervening call to one of the + InitializeInflate() overloads. + + Z_OK if everything goes well. + + + + I don't know what this does! + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for deflation operation. + + + The codec will use the MAX window bits and the default level of compression. + + + + int bufferSize = 40000; + byte[] CompressedBytes = new byte[bufferSize]; + byte[] DecompressedBytes = new byte[bufferSize]; + + ZlibCodec compressor = new ZlibCodec(); + + compressor.InitializeDeflate(CompressionLevel.Default); + + compressor.InputBuffer = System.Text.ASCIIEncoding.ASCII.GetBytes(TextToCompress); + compressor.NextIn = 0; + compressor.AvailableBytesIn = compressor.InputBuffer.Length; + + compressor.OutputBuffer = CompressedBytes; + compressor.NextOut = 0; + compressor.AvailableBytesOut = CompressedBytes.Length; + + while (compressor.TotalBytesIn != TextToCompress.Length && compressor.TotalBytesOut < bufferSize) + { + compressor.Deflate(FlushType.None); + } + + while (true) + { + int rc= compressor.Deflate(FlushType.Finish); + if (rc == ZlibConstants.Z_STREAM_END) break; + } + + compressor.EndDeflate(); + + + + Z_OK if all goes well. You generally don't need to check the return code. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel. + + + The codec will use the maximum window bits (15) and the specified + CompressionLevel. It will emit a ZLIB stream as it compresses. + + The compression level for the codec. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the explicit flag governing whether to emit an RFC1950 header byte pair. + + + The codec will use the maximum window bits (15) and the specified CompressionLevel. + If you want to generate a zlib stream, you should specify true for + wantRfc1950Header. In this case, the library will emit a ZLIB + header, as defined in RFC + 1950, in the compressed stream. + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the specified number of window bits. + + + The codec will use the specified number of window bits and the specified CompressionLevel. + + The compression level for the codec. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified + CompressionLevel, the specified number of window bits, and the explicit flag + governing whether to emit an RFC1950 header byte pair. + + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Deflate one batch of data. + + + You must have set InputBuffer and OutputBuffer before calling this method. + + + + private void DeflateBuffer(CompressionLevel level) + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec compressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Deflate: {0} bytes.", UncompressedBytes.Length); + MemoryStream ms = new MemoryStream(); + + int rc = compressor.InitializeDeflate(level); + + compressor.InputBuffer = UncompressedBytes; + compressor.NextIn = 0; + compressor.AvailableBytesIn = UncompressedBytes.Length; + + compressor.OutputBuffer = buffer; + + // pass 1: deflate + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("deflating: " + compressor.Message); + + ms.Write(compressor.OutputBuffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("deflating: " + compressor.Message); + + if (buffer.Length - compressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + compressor.EndDeflate(); + + ms.Seek(0, SeekOrigin.Begin); + CompressedBytes = new byte[compressor.TotalBytesOut]; + ms.Read(CompressedBytes, 0, CompressedBytes.Length); + } + + + whether to flush all data as you deflate. Generally you will want to + use Z_NO_FLUSH here, in a series of calls to Deflate(), and then call EndDeflate() to + flush everything. + + Z_OK if all goes well. + + + + End a deflation session. + + + Call this after making a series of one or more calls to Deflate(). All buffers are flushed. + + Z_OK if all goes well. + + + + Reset a codec for another deflation session. + + + Call this to reset the deflation state. For example if a thread is deflating + non-consecutive blocks, you can call Reset() after the Deflate(Sync) of the first + block and before the next Deflate(None) of the second block. + + Z_OK if all goes well. + + + + Set the CompressionStrategy and CompressionLevel for a deflation session. + + the level of compression to use. + the strategy to use for compression. + Z_OK if all goes well. + + + + Set the dictionary to be used for either Inflation or Deflation. + + The dictionary bytes to use. + Z_OK if all goes well. + + + + The Adler32 checksum on the data transferred through the codec so far. You probably don't need to look at this. + + + + + A bunch of constants used in the Zlib interface. + + + + + The maximum number of window bits for the Deflate algorithm. + + + + + The default number of window bits for the Deflate algorithm. + + + + + indicates everything is A-OK + + + + + Indicates that the last operation reached the end of the stream. + + + + + The operation ended in need of a dictionary. + + + + + There was an error with the stream - not enough data, not open and readable, etc. + + + + + There was an error with the data - not enough data, bad data, etc. + + + + + There was an error with the working buffer. + + + + + The size of the working buffer used in the ZlibCodec class. Defaults to 8192 bytes. + + + + + The minimum size of the working buffer used in the ZlibCodec class. Currently it is 128 bytes. + + + + + Represents a Zlib stream for compression or decompression. + + + + + The ZlibStream is a Decorator on a . It adds ZLIB compression or decompression to any + stream. + + + Using this stream, applications can compress or decompress data via + stream Read() and Write() operations. Either compresssion or + decompression can occur through either reading or writing. The compression + format used is ZLIB, which is documented in IETF RFC 1950, "ZLIB Compressed + Data Format Specification version 3.3". This implementation of ZLIB always uses + DEFLATE as the compression method. (see IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.") + + + The ZLIB format allows for varying compression methods, window sizes, and dictionaries. + This implementation always uses the DEFLATE compression method, a preset dictionary, + and 15 window bits by default. + + + + This class is similar to , except that it adds the + RFC1950 header and trailer bytes to a compressed stream when compressing, or expects + the RFC1950 header and trailer bytes when decompressing. It is also similar to the + . + + + + + + + + Create a ZlibStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the ZlibStream + will use the default compression level. The "captive" stream will be + closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress a file, and writes the + compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream which will be read or written. + Indicates whether the ZlibStream will compress or decompress. + + + + Create a ZlibStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + The "captive" stream will be closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress data from a file, and writes the + compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream to be read or written while deflating or inflating. + Indicates whether the ZlibStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a ZlibStream using the specified CompressionMode, and + explicitly specify whether the captive stream should be left open after + Deflation or Inflation. + + + + + + When mode is CompressionMode.Compress, the ZlibStream will use + the default compression level. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter to leave the stream + open. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + Indicates whether the ZlibStream will compress or decompress. + true if the application would like the stream to remain + open after inflation/deflation. + + + + Create a ZlibStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify + whether the stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive + stream remain open after the deflation or inflation occurs. By + default, after Close() is called on the stream, the captive + stream is also closed. In some cases this is not desired, for example + if the stream is a that will be + re-read after compression. Specify true for the parameter to leave the stream open. + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. + + + + + + + This example shows how to use a ZlibStream to compress the data from a file, + and store the result into another file. The filestream remains open to allow + additional data to be written to it. + + + using (var output = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + // can write additional data to the output stream here + } + + + Using output As FileStream = File.Create(fileToCompress & ".zlib") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + + The stream which will be read or written. + + Indicates whether the ZlibStream will compress or decompress. + + + true if the application would like the stream to remain open after + inflation/deflation. + + + + A tuning knob to trade speed for effectiveness. This parameter is + effective only when mode is CompressionMode.Compress. + + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Flush the stream. + + + + + Read data from the stream. + + + + + + If you wish to use the ZlibStream to compress data while reading, + you can create a ZlibStream with CompressionMode.Compress, + providing an uncompressed data stream. Then call Read() on that + ZlibStream, and the data read will be compressed. If you wish to + use the ZlibStream to decompress data while reading, you can create + a ZlibStream with CompressionMode.Decompress, providing a + readable compressed data stream. Then call Read() on that + ZlibStream, and the data will be decompressed as it is read. + + + + A ZlibStream can be used for Read() or Write(), but + not both. + + + + + + The buffer into which the read data should be placed. + + + the offset within that data array to put the first byte read. + + the number of bytes to read. + + the number of bytes read + + + + Calling this method always throws a . + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + nothing. This method always throws. + + + + Calling this method always throws a . + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + Write data to the stream. + + + + + + If you wish to use the ZlibStream to compress data while writing, + you can create a ZlibStream with CompressionMode.Compress, + and a writable output stream. Then call Write() on that + ZlibStream, providing uncompressed data as input. The data sent to + the output stream will be the compressed form of the data written. If you + wish to use the ZlibStream to decompress data while writing, you + can create a ZlibStream with CompressionMode.Decompress, and a + writable output stream. Then call Write() on that stream, + providing previously compressed data. The data sent to the output stream + will be the decompressed form of the data written. + + + + A ZlibStream can be used for Read() or Write(), but not both. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using ZLIB. + + + + Uncompress it with . + + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using ZLIB. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a ZLIB-compressed byte array into a single string. + + + + + + + A buffer containing ZLIB-compressed data. + + + The uncompressed string + + + + Uncompress a ZLIB-compressed byte array into a byte array. + + + + + + + A buffer containing ZLIB-compressed data. + + + The data in uncompressed form + + + + This property sets the flush behavior on the stream. + Sorry, though, not sure exactly how to describe all the various settings. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Computes a CRC-32. The CRC-32 algorithm is parameterized - you + can set the polynomial and enable or disable bit + reversal. This can be used for GZIP, BZip2, or ZIP. + + + This type is used internally by DotNetZip; it is generally not used + directly by applications wishing to create, read, or manipulate zip + archive files. + + + + + Returns the CRC32 for the specified stream. + + The stream over which to calculate the CRC32 + the CRC32 calculation + + + + Returns the CRC32 for the specified stream, and writes the input into the + output stream. + + The stream over which to calculate the CRC32 + The stream into which to deflate the input + the CRC32 calculation + + + + Get the CRC32 for the given (word,byte) combo. This is a + computation defined by PKzip for PKZIP 2.0 (weak) encryption. + + The word to start with. + The byte to combine it with. + The CRC-ized result. + + + + Update the value for the running CRC32 using the given block of bytes. + This is useful when using the CRC32() class in a Stream. + + block of bytes to slurp + starting point in the block + how many bytes within the block to slurp + + + + Process one byte in the CRC. + + the byte to include into the CRC . + + + + Process a run of N identical bytes into the CRC. + + + + This method serves as an optimization for updating the CRC when a + run of identical bytes is found. Rather than passing in a buffer of + length n, containing all identical bytes b, this method accepts the + byte value and the length of the (virtual) buffer - the length of + the run. + + + the byte to include into the CRC. + the number of times that byte should be repeated. + + + + Combines the given CRC32 value with the current running total. + + + This is useful when using a divide-and-conquer approach to + calculating a CRC. Multiple threads can each calculate a + CRC32 on a segment of the data, and then combine the + individual CRC32 values at the end. + + the crc value to be combined with this one + the length of data the CRC value was calculated on + + + + Create an instance of the CRC32 class using the default settings: no + bit reversal, and a polynomial of 0xEDB88320. + + + + + Create an instance of the CRC32 class, specifying whether to reverse + data bits or not. + + + specify true if the instance should reverse data bits. + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here. In the CRC-32 used by GZIP and PKZIP, the bits are not + reversed; Therefore if you want a CRC32 with compatibility with + those, you should pass false. + + + + + + Create an instance of the CRC32 class, specifying the polynomial and + whether to reverse data bits or not. + + + The polynomial to use for the CRC, expressed in the reversed (LSB) + format: the highest ordered bit in the polynomial value is the + coefficient of the 0th power; the second-highest order bit is the + coefficient of the 1 power, and so on. Expressed this way, the + polynomial for the CRC-32C used in IEEE 802.3, is 0xEDB88320. + + + specify true if the instance should reverse data bits. + + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here for the reverseBits parameter. In the CRC-32 used by + GZIP and PKZIP, the bits are not reversed; Therefore if you want a + CRC32 with compatibility with those, you should pass false for the + reverseBits parameter. + + + + + + Reset the CRC-32 class - clear the CRC "remainder register." + + + + Use this when employing a single instance of this class to compute + multiple, distinct CRCs on multiple, distinct data blocks. + + + + + + Indicates the total number of bytes applied to the CRC. + + + + + Indicates the current CRC for all blocks slurped in. + + + + + A Stream that calculates a CRC32 (a checksum) on all bytes read, + or on all bytes written. + + + + + This class can be used to verify the CRC of a ZipEntry when + reading from a stream, or to calculate a CRC when writing to a + stream. The stream should be used to either read, or write, but + not both. If you intermix reads and writes, the results are not + defined. + + + + This class is intended primarily for use internally by the + DotNetZip library. + + + + + + The default constructor. + + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). The stream uses the default CRC32 + algorithm, which implies a polynomial of 0xEDB88320. + + + The underlying stream + + + + The constructor allows the caller to specify how to handle the + underlying stream at close. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). + + + The underlying stream + The length of the stream to slurp + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(). + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(), and the CRC32 instance to use. + + + + The stream uses the specified CRC32 instance, which allows the + application to specify how the CRC gets calculated. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + the CRC32 instance to use to calculate the CRC32 + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Flush the stream. + + + + + Seeking is not supported on this stream. This method always throws + + + N/A + N/A + N/A + + + + This method always throws + + + N/A + + + + Closes the stream. + + + + + Gets the total number of bytes run through the CRC32 calculator. + + + + This is either the total number of bytes read, or the total number of + bytes written, depending on the direction of this stream. + + + + + Provides the current CRC for all blocks slurped in. + + + + The running total of the CRC is kept as data is written or read + through the stream. read this property after all reads or writes to + get an accurate CRC for the entire stream. + + + + + + Indicates whether the underlying stream will be left open when the + CrcCalculatorStream is Closed. + + + + Set this at any point before calling . + + + + + + Indicates whether the stream supports reading. + + + + + Indicates whether the stream supports seeking. + + + + Always returns false. + + + + + + Indicates whether the stream supports writing. + + + + + Returns the length of the underlying stream. + + + + + The getter for this property returns the total bytes read. + If you use the setter, it will throw + . + + + + diff --git a/TLC-AUTH/TLC/bin/Debug/TLC.exe b/TLC-AUTH/TLC/bin/Debug/TLC.exe new file mode 100644 index 0000000000000000000000000000000000000000..321034ce5cd6890fcecc4c1fa7bb48ba9103008c GIT binary patch literal 7168 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 wlI_>Ujs?NAi-{}7>d{#2>Z;Z#!0ssI2 literal 0 HcmV?d00001 diff --git a/TLC-AUTH/TLC/bin/Debug/TLC.exe.config b/TLC-AUTH/TLC/bin/Debug/TLC.exe.config new file mode 100644 index 0000000..00bfd11 --- /dev/null +++ b/TLC-AUTH/TLC/bin/Debug/TLC.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/TLC-AUTH/TLC/bin/Debug/TLC.pdb b/TLC-AUTH/TLC/bin/Debug/TLC.pdb new file mode 100644 index 0000000000000000000000000000000000000000..c615e5ed1e6b8f1b0d05f4a5d116552925cc2bf6 GIT binary patch literal 13824 zcmeHNU2IfE6h3!ZN=x0+1uXxvRxm(eyR8)w`6+A*G_-WvQx4S}r(ufw?d$#9( zXU@z$bLY&QnYnY@5Dh2d$#^8?@t6C{$~+Ctn>>$reLmOJxi!rKa;QI<2k}*=L9-38 zuj9Z2y&0P(vIka)^iSmWPxQ7IUaHVA21JTY227Jo#tF=1CgEz+c=o_x{aVANL1GB=;bV|L&{b1k55vPfP9 zP-Qj5pV1%J52lcQL7dKu>wmfM@s4lm&MYo)eE!iVyP=i_sewHaCqmzeo9=-O$YZ(+ zGVCcjVAe4hzKjwlaFa7n9P=U1*BspsmUbT(DShc&>7m0k5E-KWkR+u`ViLxa=#r9l ziA$T*K@)+b#%f+2>gLRJ3e5I>32a1tl;glYQ~m?!kUaSv`Kurse$d4755I#fhn{rx zT7P%rEkLv@9Rc14#MH`JGyNivcG!Lo(rjoc@TjRT zLS2Zf^jaXx9S1H&`Vzh(N_HeM8j%;MZ*C7I z_6^)0&^vXd@doNGn`Rk2NJ58>FBD5jR$DI!39904|Vts~+QL7)#CaE?zpZ7h}OYH5l` zV=1l`i&Z|?LWg8u07_(Oj^4M@M|zlROt!ox#)cuctR`mJifmaQD%ZqVFs-tN&MeD? zaBL`dD>ODwVApDU;6L<$hx^Y#>}Q@mkhJy&41#==<61bu*28fh|HFO%--`Y&$IDqq zT`Urp@>poEo|N)rB3#~%_b@%t+8Gab7>Y==Q%{zUd_c^1Ne&?#dnn=>!dH?~Fn!Gf z1NFWM#Bq!w{;NTTlJOPVP_pPEb1*gmZyuL8yY^aV*K4q}tZQp&sg&B94ONvD6*ZO( z8yVvV3M$mOFV5=Ta>{?P+&(I@>++$G>3xElN+bUbIc7tEmL*kCX-hzr5=UjdkBz%DSy n73(VoGw^4EXMk}oVbd6SVAdGbYgcP~!1jRc0owy(>w&)kVc7UW literal 0 HcmV?d00001 diff --git a/TLC-AUTH/TLC/bin/Debug/TLC.vshost.exe b/TLC-AUTH/TLC/bin/Debug/TLC.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..681ab771eb267aad9397bb2eaf7889c5ac0e15e6 GIT binary patch literal 22696 zcmeIa2Ut`|(AxIhl$dd|wAbt58fkrxaRAukh1@6sD2U*S;Ed1!(gD8_j{^ibjfhHu41})WL2yGuQqUe8 z1f2zqC`jTz$hyE5B%r|WKRgC#3oQtex6**Ikni`h7TO@i#!d1Pi~?aZ3xJut4cTHe z^0Ku6w3fFq)5#nIx-iw2WR{qYlH`_HfJ9IMDIx$9Aa4Z*5ir>a^&J^xyzyi_j3>b) z0t4w#3W@@70T{pWA_#g8-efSZ#sMN>1V1bmDWNAb$T!B*10Wm-BWz*pKHbv=ykQW} zmjZF8C;lFpaF4XAXGTM8kN zDoN>rkn(dRCD)^ozVuOdK+6{~Nc-uaUwP;VdOJvuht7eN9?Us(2n0zmNdYMcw(ZmDulvr$4r;R{BTHmnhqYL2jVj&v0SJh{TjsNAUp;IsR1Yr83CvWSxO)QKsAUV zfsPXBDS=ZZaFzrzB``t)=SyIc1f~I~2xUmZSpaH71pw+n#gdd-Nw`7+4?t7F!Z{9I z!0F5wsKw&E^32K1^U}o@uo8JPc0rdko2EwB7kTE0=pf#ilAV~tp zOQ16}7NmGV_5cPzYyjs#c>uB{FcPW&;aF%tfGLs|mOv*!compqJd_QMm%>9Eq1jRn zV1Cw1VN-#81k^(wgcrOeaHNnK2XI23p;AcL`G=f|j|~^ZibzCgf{%a`7sZ_jMaQxQ z!l(!q?HjWt;Ad2He2=E@DJYaJ_p@7Yejm1wFMMOo2BDk^mfFwQ} z3ge1GelFq32ieT1h-5AY^5n-0BDs)jJeMz;!Hf`jF!`J)F66>x#f61&g}ws*^jNOY z83=Gk5m-#DI1v}}<;IDG%qV|utRPMZy7Xr9!{V4>BT5WbXR@M3q&W+s0oD;er8&mN za-&&MNnYF}w}_F2hcc!`h(;z)V+z4=+<>CtCJ2O)KTsMf@4}5@CIv)<@&A~GbP&iD z#zqK!lj+Il353y15y)gl{h?F%_ifHVs_ z;*Urjs({dkDT)(v0oi}oTyzYRKO)0FjxUOc24e^5q6ikkTqAOa*cH!B~1Xg*lUU@dV)g9)yH#ghC45&Z9!L`so(^vjPwq>EO$9rV6q3im!~gs?aiN>&O0H6!&7_dUYB%J^r4~UZKzpV_ z&<4k?y#A$B=ac6~$I7~&zu^RV zD`p?xRbUa!vf0VC(f@qYUKA{_efnn6+-j9mx%OsyE7hI3I=JX#*<_#DSF?dyL&>7P z+l?TApa`r2i82Ndywy;U;!nH^>7pR5;d#V43xqKOp=9wvkSPkn4QHLG!VQXB+@QP# zaUx8hKoAK9;ZIcjC^)hWJkBvH3MW~Xu{a@^U12hKC_Y37{=W zfsvRz3XvBM+M{c@fAkK@yfk&WGXatzZ;W4-@CWlF7Fo+~BC`Kp4R5p>o zrLgFLMie5GMdyHynN$jsNTP5-A51ob$pOvsh#WeBz-7S{^ zB9+Qv(qTGc1?<$=m9m`J3MiA*w=Mh4_yQg~z%kxnF&2y_;SLSir}OqfpN(YX{7 zhsYz4C_Dxm;LIbjSVVvvASU?1bTWeilX)x}o695t`Z9> zGb)D!6PX+eg$Kq)hj}2zp>TO@4wuPgP)J}*957TOg-T#icqA$tpa!b4I2;C#PN!2y zAe%;JgV{p}#iN07GRb5zg-v49z-So+0uKgr$7J$I915AkBoJAExEwBFDfIy?eBqoVKCNWto0+Gt$z$6NX1}H$M zQCU<5i4M9Ta>0-YWY7^2=FkB0M8J?Rheakc$qY7`PGxfmBr*vw2oXV-!=kc4CW%C0 zz&tLG4yeE;lh`aKok(QB95x^!3Fh*696FUkBykvIFugF$BU9*19+^sKz%U8S8<)tY z5;$P`I5ZxM$tF{2ObSc|d`e_+kqDheV1P-b0D_PiOeUCE4iWGzn?@&dsT>G0Km^7# zwDt@kGX@wyu8C}}M56;$CP;`y(NK^s-q&^7uo+_WU6t8`JqZQWRMs5Ma*2qI0Tzib zFj#;EipV5Nr*e$zg+}Mk%txU#w_+-sTFl`D!F%H z?aAl5iPvxT+!>{;-GrG_^*B21RL2HE#irBNTR-i;Ie@cci(PD9H5%77kAG}G?*3=# z9gH1^6Qn<|7_pN%+vnWN_|z<}ZQZ|e!_(IecaC11xhD)?mu>psYNNojy(}$hP5Y?r zLgM2q@;b!^k9O&t|3IoN(mL{ac2NEPIvK+iZpT^M6PLxx8m!+LIta-wqL^}0H zp%@Mevi-gZ2JJ)cNEnBN{`d@SmIre}fSzzos=2P+vm_j&*@8SQJ z7fP}h2AlKLpD~uGO$g|uKcpk&5Z}Q}2MF2+RPWHU4?_mQK(L1j0niol2O&@3Y4HVd zPXOHpy)MuZZ1=ap-4U_}a-Kc77jm9G>3c(1@Rlr=?{VbiB1sE`n2->(69M-7T+k*T z;(^^B@|Yl|2s91kGC^uA$Y(+#P)-11gHH`s8!;0AP9jh$0;Grirlq%lDN$h5Lw{t5 zh0p*ZLP{Xr8MGG-{;#cqIWUFeUYo zd>?=X8{mS}7J!k601qNP2%#7W9616fN&iD5cL6=bO6o>{vLna&SNM$ksf|F;h7h#! zgGL014Dg4+j|j#>03n(rj^H|27ooUFQjZVD5jA2of7Nd)XaxnR!37jYY9V8cfs!P% z5C*6x0_|6TvHyK~;6Z6e&{7n5BXc>}N~|P?PzD)UJb)a~GvWY4=5EUOlE};>SPan; zi6Jxk*K;`+G6Ze-fi?u7)i^+V(TLIiZZ4|;Hh}=QSWp`24=3TgI8Ym*IFd^Q6ed8x zk_690364Lv|LY9>_58>I{2W1V$mpX1*G2&fBN+TV%Rkyc<{9Da|Nr?PM*-ZR&p2pE z;Qo&z!2j$4OU^jZXb2Wh%#oI}O7}?bQ$oq0i^LPtL6R7aLJ<^TIcX_tWei$Z3WB|* z<*lVrSd^HCMq!I4!V}<8BT`ggISdLa!j_;@A=qd{J*?)q_wV54D=VFHZ38S?>5-3F zM=s4O5^ITJG4>=Z#_TG>piyYF1_?|@Os`I(vC$X5&625!ft7|4LrDP?5+oR5remcw z(9;758nBu)h{$Tl&tS%e1J{U1z$d7}%1EM&hKxU#6D{C#2nMhok|MA1`;9)q2sT9W zF&a9CoGZk+1i0c{1ANE1QHXR~5{*W)r90B71XI{}a722)9np6O z7c54N9Z6x76oe6@Q~*Puw}x7-jv-i{wX%L^ z+sj{dzkSR{joxD+F#**bBo)zQ8O^AB7MKPr`NUIv+!}>cL10RD@BAqzuI)PAXAR8j@*eAMK)O4BHEK?~ zX-eW3d*PC?DYLRmsoj)g=CLExHHLPY1iKB>(>hDITZ&>XYNf5 zcWYEx&7OaBoU`*R)t<=*Q*J($*0_%b9E~a!qvQZZq+oqOQhjBtHdZtG%DaZ8RecxZ zk2IuI+UGITMAqgK9@00)>cHBmn#SahxBcB>;-!k zxfi*nJBN!zG2`s)*up4$^srN(Er_;@iHtx}?ZCbU@%F~r4NoJ&mlC!FT!{xo;F;30 zU{y*<$)HeJZ+J57F%*Z<=@Y(pkdTn@yAHU*zi3$mYasZVVijTep(Zi1BiRKkNWd;A zXzn%!Q}d_w$d%kbev=w|OmSekY~+{X4PS$8%#Au* zjHT~kZMqMj?_v(Q$Lh$xT3B!?MEcQ+zLnWc>S|-&`R9}hi>}VRebS~qa&f|ScEC$< zgPl9aBLB>i@oyq6m>=a=h+X~HzgS}C8MOcMgu=zuMN_kz4j;VGV!ij!y3z96cg$P# z@vGJ%H<#sQ($~LCj-j7^zISr(-733I=W`h)7ERM{A3r!}XXv4_L!WM-*C?w*pPp#R8O5P@^>Q++9_DW!kK`8lOs0JtfBf`QMHX2;?y2IQ8e32Y3 z4)OE@;W$E&QDNXwBNNG#K|uyQdf%gP+LC_+w_gO=cZrPo6N&sE1=IR30_veQ%mIs= zZY?FugJo|0Z0(8oPwrRGbatI7s5P4!cjV4R6=_YiZBe7Q91HQ8mhr^LuQl^hF|#Z| zqfl>0my)P&M_|%(i@t!XwaM&9?>FS_@4W5)G0Og(>5BTp@=e$sYZff?h}UDf?Hqk7 znYHTp3Chm?nSv&^LbfNIHYVla;ssOoxJQR1>Q(RS%hmAjKG5RBcpCe_!*_z_&O9Z? z#Z^<=f?CG+tO~EHK%jIp-VwR)(6b)In$Tl(A5*>F$LT{?hPWI32phH@yDjM%J&LV;x0hanrYftpY-<^1 z(XpCDw{CSljae1@1`6Xy{5<^yI8)=R(sP4H<9eCyS=St zp44gTYSS_GDcb$+-}=M99CHn7pQN5dD(MzCJ#ZK;^IEG(e&Z}D$BO2>EooaYbG}S| ztc#bb^mDgc{W+=C0QXU<-!f81^Rp1UUtvcfr&BF>imPX)rLJv%^FFzN5b}mc+NTb@ zjHNuE(cSh+`=rhp>H6_km`mIDxnyi81;(M&VIc3e4az%tCdmxk&;SqN7h=I75(76C^y1r#BLmsC^xM82)3{_!gm-AlOH0?UjS|rIRjl4!HZx6cOT9% zP82Q>g5yVtRR&HjNCYC0z#t)388~E+M2SfB-;}fe$+W5y&I%e0a~kyvLvc8#g7|=_ ziDPaGE?#)^GV)uVw(6sY<3vkz_uCZ_I|m+|aPl?2A%yNyX2@rpuflou_JmjZcx9Fy zN%ES%(Ou@wSJQ`^<5pbR8SAq6R@&WnN8VDmoeOfkSH0W*kwti(?v65HY~Y(w8=icn zY!DXRj1MtLa9y&DuH76vN9tghe`Z--gx#Id3g6a?EZgJlrrp=~M`eG$=q-KAo>^s*q|K(U3D6mh@Tttsq|tG28+uJ#?3vd{;& z;w>$6R+|MpPu@BCt=kpa1p1ae2|;C}wq#yVTN^mxc%@tj=Gu@1n+qh^Y*+=63>qlZ z09FddfY%7=^;=1TSjGA(SS;8$q{Hgca^LqQS}3fPq+wwG4yU0Ji|uO*!S|Zk%AB_R z(DCI2!S)GY7$1nHndleGb$J5=xCP zF7V4wH43h@xAQ(&QXaVJam=BHJs*?ydJ6j{zI0rCzD;pd#D%g=INQ$(ey0L2**>0p z^>9o_xl#$HEbvjoO0OAjbDTE4dDs2=ak?RSLPKC-Pk`|Z`fuBPKdvr5 z|6HRi%lGVVDMg3Ah<{aqK{l{-u)DN6hPz*nuu3Q!jmbQ93j5{zkN` zi(N?XovQ0%BLB;_9E~ThB04HcY>u9_R#oP%DY*N-b&9GAY~O|s$SLoIEA&zlo- zb%M@Ov_tM^>wB)TJ-VChqW4-=OBV{hPnlzMIsc5@>t)KTr$j4j_}VY9^w=b9c^7s5 zcxO!MjP)}XZpbVe%gt~J>9eit?I(@t9q{R!De@$$mc0XIx}Qc`joNxJsB4bFOW=@Z+_bwrf2gdrDKKu z%MRbt;^W2v=QBUMUXg2_Tismagf02BJt{lwmc>1{fSUB?rxtE_^UCxo)BP2nU~Ky5 zty>54m%p0@Z~naKW?ubsqr62QuWG!L-5(I`zsGgmRu5>hJ5SBrl2@MhzpJh`ZBw|DH!UKtHM_rFH!|E;Y%ptWk=%9BAD7wY{N zdv+(>y__`F2UUv~&7TvksIlwv(Ui3f`0MH=tD{*BGtd`&aT-M8-<)zMMdbIZhXx*Q(YyFds%y~Cbk3ZY+R@!bE=0%p3$=I0w z4_}@n7T}foWZGj6>-cV76DcpuX((oF3bSpRs{E1_G)X&u6>d_yj4tuhMZ)BGg1xm+ z;q1#8`+;Th8V^s%GuQOoY8ds(ch%x1iuK&m##e_IDmbNF4-gu?hR+{Lv7TMdMh#2+sw+tBxLr>!0zo23O1h~CpeO3E|OMz z9dFdQQGDEd+P>O(_8GKjqQy)-FwspUsn>N>b^akdUmz(Io^@Y`peZhXnWi0 zS!)}f7(LxvbDq5?ahlY1N4#IC;UD41>?+n$(~DU|twC z#o@e)QT5nk5B4PQA4k6NF(s~mr+Lev9<$2-ObBnkp#?GQ;i`5{s?7LJue|4>PG5Yo z_OcOXiHhTu+h?CN&J>MhjHNW)I(zK2Vuc>s$#zX*?YhXbvyQlg_Iz3WHP=$-vd>Yf ze&3wf+|c8u&U@ZXqraYcTJ!e4kZbFMB4ikoclR%RoZ#j3$@oQ_;)Ta<_oqL(x1#CR z{*>y>c@KiuDvi;YUmqDge&q+^X`U~i;cjr{-XdKuoX?)@)J#=3ldV0vo_FWp)L)-v zsQm_a_F;i>XJ;6W@~D(JSM$V<>kCd4i_K`T7;W-n4x|ZUv=&HGlW^Ude@)B({={Jf z&jrIeKd{CS6ow-*D8O;UJS9a?k(>_DfGtBKk;$alf8e+^8#9X(l@kf%V#ng0m%8~4 zpA9aL5gML&7Csc?l=uc0mB+iNvb+Nd%7qd4u=~~=%Ix;c%hS+kJ+$*8I+pRBO7vxO} z_4rcoxJazD9+=Lmz;yoj!_^DXGmWFQ%}dQ5No;8P$XQhYC@uO&+^H6@8L*LnpTzKo zpX66pFLFJVAaRk9!HrG=0bH{rPzU|JgyHCaiNE*6gPT{{_b*oC4%D+N-U$!9F?kiT zO|Q;n)+@oL{+PSmh{9d#2y+J>Saa0gcSXH`jKn9`T@;TleO$oit~_$>MnA6f(dfku znG@!HJFA}g^cthv$9H0SuD4pP+R}~Y`76fTUSFv5PU_KaFYH9;xY5ttPOaX2H>1^L z`O#i?^Tz1Rdx-~5a*GADmxt$X-(0z7ZRU!sMddWp+i4~hD|*>(FAw3)q3l}MDBix^ z^@!Tf3HSNpWS51jkS(;B>|WmU?RH)A*VgBB)ZsMOUE`kXTHR+XnIvENX=JfkB!RI{nle#9}If_ObyEnT0d>lIG&kw(Tdp0GA ziItpx0q!35%p&X@f&g2XW((6LJ`?5;0f5hBIvfB-_Wdvn_)LbJ%YWVh@R3MP*8ZXk z5ili&TvKRp8EnLPG+5mja7Yeq5%S9q?xW~tF0C1tLu)5rO6j~3@Z|Nb(>ergQp%LE z-?HNZ-F-xn1JR6@uwMOw&Q5# z?gp>JuZ7QcE2&)8KhXUA`Hj%&9WIeRSB^X=yLaeD@~Uf(JV4?S8*V*;L2q|h*WlH(tJ|}#KD5~V>_*O{j}7l52hbe{?p`|l zwcg>_{3^H2tNBkpNCkJkhRm0obxV16Vq9Cd-l4u?n%mR#U3pb;$?>nZc#W4nZ&)5w znW@DvdUmAkL_$GvpUIosbOUdNPp=2EqW7$vJZgmnyVZ{!)UmUF`l?foOK2DeR1AA- zL(Qjf_mC3dD!BmVNry6>iZmErCmfg9!5`zkx_s53cuD{bCwkKOT`?Oq&> zqR!O4vHnZv!*{iFiJBD}8t*N$-=Cvv-=cIx(qXYoGH{8rhTJL2>#j;v0p=HGfzwv} zBf0>%ya#oGr&!g8eDLkQnMPZk##lwZnC-W-L7J|M^*p%vq@uxnTI6Z>vr%Fom0u@P!hKnu~lrZ zIb?r){6I$OMo?0jr)7uI(ISn6qZ{nI`yX4+RyFhqv?xgyK2jgI-*awjSC@0vlG`bD zDd}TwPpn-X{5)gIQr)-3cC((W8*f`hn%T5};y2>8dW?N-UG;kUqN|%zZQlC^W*JdT zPcrzN#Q_I5sq7wYy!1lvK}>pPUr0~0f8**6%MTwj5}AhRSnRuKZb3KAXH2GESx~#a zO3!#l1+SB7IIqnD*mf)0O@pr)c}?^`wRgrO6HHG_@*KMx#*bryRi?Tn)PIE94p*YZ zA$N~y)gKvieY#f%qgdsIvFBl(2A2h{PmZ4yCO;B(m^^HBD`@IIp*Q31lFUvYPk6_! zH4i)IY_0xszlPU-JTEP!>t>f%ho|KZ4U6qN7KWuhTggfcsk2*pYsRLa#smwCH(k*u zE!Ntsb)Zc--nPsokij9`-+V0e$!a{-X=&$5oBrDx<$}{Qu;e`opor$Rkdn?Km`Ho$~=rDc`o2 zJI)YVj5EmaY(!faVu2=trxf`Vd8K>){bK>Je8IW}o_lb>HLUDHU{VN?C{cEEhm;#o zcK)y*>^l?(%FgNU9T5CQ`yx1PD}p=@o0bQsZGh9Vh8=Tw3@{VnNkiSCQQD-x>JCxf z905BP++K-@W(t$oF|qh?Q8er@+yELT8xV2&Bklr+NbWjEfjhBma9=e9++G!d+p@?V zI1SDheCBQ6X2YjlI6WDR<%3B*k^dxgmI)i62i2 zTcVeIJ38sP{Q2>X?iHo)BJQ#q$5P7jg1JlAEnMa1H@#JH{er8yUV85)IIZ$;uK61I zc%ls6a^o}mF=f~H>L+Yqw7=k-bFoiMHh!nEaQiyZlFZ%>o_%gov2&J2ETJ^NrysP>CJLT#Ei@bav zWqXCUvKcoGPZD+7dzx%7&)KralOcav{>16sRZr_~-_=?%)paJFINw}%ac!^p#|Jj! za1r@+vogZ@f*t!sCmp1ux1+2qCW&B z*(1krSHHV)>iaDp8zc97<+ZccUE)i~`L`9TYExX~}u^g5#7K@|Z@p?PMs-QJaSvl_LyDN*8u9zLG>$T7+8+A{4 z{OGmxf6UXR5Evo;dV`kax;jRr^U0VoK98}m=CH@g);ab~yE-m;*BDH(QA*Nvi4Yg3 z`pojoh~;IhKX11GO8i%>|GD+T1$A@ZY}u6Z;O^^^QlAr8@wf6e&9h72F~@zOU95)# z+UyT&ti{|uX7s>Ki(2Q)Cw4pTgOjt)abM_m4#Z6Ac<@y3GQ^_HbMbP?(or!vR+oRi zQoih(+{Z2H8jnvrHSFKIMl*Fl<1*G_lG>~JTkp)OSGK&_B>z-b?btD?irfPS+xw~M z)Wii|7G?1%6SK_1F9bR+JZNzFK=o~-yJyw!A7a{EUlTO8!tdFbxshI1Ms2OE!(PhA zRD~wNHxxaL=V)y!7HjyxVhzvXtr!LaJQx}bkVYAvBgBKDVFr@MqEVPXdN9N&dufFs z)=&jb3^B?Ec!n&1o-+Yl^1bP$v*a--aQo$F_XifIsG&h^=%X0zGNG?`M7FL>LXI{FYqXF~_1#wpmI;`;EL|Z4=jrKRMv=)h#n}L&NKDd)NYses%O9THn1U%?p^vC}@208rwCJPNF z5DDPZPUKo15t$zlB_mOI!9TKfFoR77w+{M0whljEd`7klFkrqvn&Tty30LSV9ZpbN zIS$wPMI-P1=fx2lB1O|wZpJos}^=qc@w%~=`?4>TRshR*?On@*_AhA;TdM)Qdgzsm+#%vE;X8j5@&|G zy`AZvPF!jrVuodfq)n^6lI^|z_^Iu|Eldr*#cAD7>8XbvGQYSTH`g}_Qy1zQt*rLq zWcaaagTE#i+V{+et30yO$;V-8i^?YHiD8T1^NwM1T^4mWdwu0UEj(Xa{x;c4p3rm0 zS2}Co3R%kYM7^391(zmt*ts0s(R+_`WE<)@PA)s~(wD=>&bb87)!u}XnljdB=s5Hl zpj7)`nxi+^QINi4;D2S@iV3x`*=j&Cwel0xzt6UJ}F#Z?WI7ZqBXC zg*vDHPjB1}n~R9w1-6B$wnUP|6#c(&Bir%L;b*4SwHMh!Non&j z_M1zKjRf_twqJZtIC@2@z2e*F8PTKR`V&pObMqd)@90T9a;AKX>Elm_yCSE}khPvF zc2Vy?5U~1UZ>ajp_=^q>jvMaBVnp3ujN#ds~n+ zIm;iarmKv4ZL30x#IbWbA}1U6``mwX-Y_@B4~vi`hz?Z2on6 zwcWRUPuGwRu|f*(&Tx3~=5hgV-RgmPti|`6CM#r_wKF$Id{Z|cUeblhIkr<~5d-o{1jS*9w< zc*czQlKDHOSE^)aA7t)OyHMDw>|U7K)O=}2bN9j}J#FLX%RLMh<&TwR-l_335FB~a z20iQ`$ZX3V*T;2FeEzZAV^`k;;UZ?FAfY1d!VbAg#-YyB7h1)8gqQSt8=dO%) z^m&y2$*QnajR#*lBqDk}WT(6@SZO!rj8XNhy;b*ICgl0ezg2v-Y5L=c2Q!YhJb;gV zz4*+hU#T&8%8Shgqv>{sugsLfcPkb7QSNlhnd{xCUqmsGJ$Q$D_gcu>2ci|8>OkS# z0Ve||Mw|@Huw+iPJeMQ=Nuqsb{HlHaU6KCN2Q5Uz1N7sA77+dK)c*fbQB|FPy-<;b zc~ki9&5g}iz1x zhGySu=}&rfG+kpy!}rwpy~@4{A^Xre`<*ThJU7Tl)4A)tzj?yvR>hZ3ZzqW5=8X#4 zX^2an#1mOQvfEI{{h&OnbuWsUgmNJ$ENX_r4~`&W1Vf4V0l@$rLCT$~cMHsMx2B~Oz1Mv5hdozSVeXc@YvrEYCUg}>4L zu8zyrGtv#~s?xH(V4Nsd$?h0j5p=w%sJa2Yc9iXY?wPNtyP21#t#oc=7hG?HyF#`4 zl1&XSn7+_^QQloujBYEPwphMEr*G1Bv;GSotZE+y*}ox6pGmo|agfNrkVdp@YFyi| zyR;{5=E02EK5mL9CfBXWYV94hWO8I>2*GPi+jS%JnDNKPq#gWN6KiAKyNT3aJz+<} zHZARjyK`j=&(!Q2718<)rSLi_derzg%33FiJojRqFU`0(cHPy4!}-1m4cG77&|m!8 z-?lT<%G!N>?a5a<>7Q=6HSJW4ZRS4?C>CRqfb*4!Y*f=87ylP;5K2tt!5DrV@?*51 z(xq%(L2w`2{E$=m$+FbYb)PHG7Nwnl(;By>9fs2m{3E9KFCSd|@ykBnX#tWi`zSOw zs;x7@6}F{N$j$_7*mBThAN#Y(jth|d7dD&^6a2p|AL! zw=FB!*L~~e<()m1ZnKTP!aFqZ4O@)`pjg@mZRwh%0Rio}WZ`~bUv3b1Cz!uT1wVRw?l0Wv^xYX1<+BuL@ zrGs(tE$`e4Uq5M7dQJKI6jDr9?lY@PsYf3!_qaJ}wO6P!VS9FXsYM+7!paB7l03FP zKa}HX;eGsRSIw%+0fkr?d#$zl+{G0%xg%C@iy)&VsYh?$%j;E4Q|wk<)_&{4H}t^y zz=EeAJTeVF(~er&VRk;z4r>{;vBmCF6eGC(>VYZccKK<`tFv6!Jv_Wx-)Ozkm1@}L zJh(3N9xT2$lEs((?`{PL9bCV$Y(_e`#3&-HJM8fQm$j6B@@c@odaOuqYngMJx9Auw zI&dsMAIm?7e;w9VlfK0>^sA9gHa8MZYah`7T9J@;6;8VXr(J~8YO$KXTfX29DV&zN zZPEXW!~z%49&B;dOOKS2T_}xybtLBlwS!y-l682o+O^!l;@a3?)eo0f zy_w+IygF_Ct9!1QRj(6eG1mFf_r*&V!UV6&ztC+DDXr;(aY wj{B?PH3nCjG}491+ySfEVd + + + + + \ No newline at end of file diff --git a/TLC-AUTH/TLC/bin/Debug/TLC.vshost.exe.manifest b/TLC-AUTH/TLC/bin/Debug/TLC.vshost.exe.manifest new file mode 100644 index 0000000..f96b1d6 --- /dev/null +++ b/TLC-AUTH/TLC/bin/Debug/TLC.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/TLC-AUTH/TLC/bin/Debug/TLSharp.Core.dll b/TLC-AUTH/TLC/bin/Debug/TLSharp.Core.dll new file mode 100644 index 0000000000000000000000000000000000000000..51ada839674f81c08e37ca82493adc1bc4c9c51d GIT binary patch literal 124416 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 Sc23dSZ8WO?_w)Z91^xqc-k#6^ literal 0 HcmV?d00001 diff --git a/TLC-AUTH/TLC/bin/Debug/TeleSharp.TL.dll b/TLC-AUTH/TLC/bin/Debug/TeleSharp.TL.dll new file mode 100644 index 0000000000000000000000000000000000000000..bf74f8649c304ad9a34e9d1b194ebd3c441ad707 GIT binary patch literal 541696 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 literal 0 HcmV?d00001 diff --git a/TLC-AUTH/TLC/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/TLC-AUTH/TLC/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000000000000000000000000000000000000..a362749468274924bd6f67fba6eed3bf3ae6ab4c GIT binary patch literal 13891 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 Ghx{*I5~KkD literal 0 HcmV?d00001 diff --git a/TLC-AUTH/TLC/obj/Debug/TLC.exe b/TLC-AUTH/TLC/obj/Debug/TLC.exe new file mode 100644 index 0000000000000000000000000000000000000000..321034ce5cd6890fcecc4c1fa7bb48ba9103008c GIT binary patch literal 7168 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 wlI_>Ujs?NAi-{}7>d{#2>Z;Z#!0ssI2 literal 0 HcmV?d00001 diff --git a/TLC-AUTH/TLC/obj/Debug/TLC.pdb b/TLC-AUTH/TLC/obj/Debug/TLC.pdb new file mode 100644 index 0000000000000000000000000000000000000000..c615e5ed1e6b8f1b0d05f4a5d116552925cc2bf6 GIT binary patch literal 13824 zcmeHNU2IfE6h3!ZN=x0+1uXxvRxm(eyR8)w`6+A*G_-WvQx4S}r(ufw?d$#9( zXU@z$bLY&QnYnY@5Dh2d$#^8?@t6C{$~+Ctn>>$reLmOJxi!rKa;QI<2k}*=L9-38 zuj9Z2y&0P(vIka)^iSmWPxQ7IUaHVA21JTY227Jo#tF=1CgEz+c=o_x{aVANL1GB=;bV|L&{b1k55vPfP9 zP-Qj5pV1%J52lcQL7dKu>wmfM@s4lm&MYo)eE!iVyP=i_sewHaCqmzeo9=-O$YZ(+ zGVCcjVAe4hzKjwlaFa7n9P=U1*BspsmUbT(DShc&>7m0k5E-KWkR+u`ViLxa=#r9l ziA$T*K@)+b#%f+2>gLRJ3e5I>32a1tl;glYQ~m?!kUaSv`Kurse$d4755I#fhn{rx zT7P%rEkLv@9Rc14#MH`JGyNivcG!Lo(rjoc@TjRT zLS2Zf^jaXx9S1H&`Vzh(N_HeM8j%;MZ*C7I z_6^)0&^vXd@doNGn`Rk2NJ58>FBD5jR$DI!39904|Vts~+QL7)#CaE?zpZ7h}OYH5l` zV=1l`i&Z|?LWg8u07_(Oj^4M@M|zlROt!ox#)cuctR`mJifmaQD%ZqVFs-tN&MeD? zaBL`dD>ODwVApDU;6L<$hx^Y#>}Q@mkhJy&41#==<61bu*28fh|HFO%--`Y&$IDqq zT`Urp@>poEo|N)rB3#~%_b@%t+8Gab7>Y==Q%{zUd_c^1Ne&?#dnn=>!dH?~Fn!Gf z1NFWM#Bq!w{;NTTlJOPVP_pPEb1*gmZyuL8yY^aV*K4q}tZQp&sg&B94ONvD6*ZO( z8yVvV3M$mOFV5=Ta>{?P+&(I@>++$G>3xElN+bUbIc7tEmL*kCX-hzr5=UjdkBz%DSy n73(VoGw^4EXMk}oVbd6SVAdGbYgcP~!1jRc0owy(>w&)kVc7UW literal 0 HcmV?d00001 diff --git a/TLC-AUTH/TLC/packages.config b/TLC-AUTH/TLC/packages.config new file mode 100644 index 0000000..cbe9c56 --- /dev/null +++ b/TLC-AUTH/TLC/packages.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/TLC-AUTH/packages/BigMath.0.5.0/BigMath.0.5.0.nupkg b/TLC-AUTH/packages/BigMath.0.5.0/BigMath.0.5.0.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..5677779bbd8767ffc92f7ece64a70c426dc814cb GIT binary patch literal 41066 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 literal 0 HcmV?d00001 diff --git a/TLC-AUTH/packages/BigMath.0.5.0/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1/BigMath.XML b/TLC-AUTH/packages/BigMath.0.5.0/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1/BigMath.XML new file mode 100644 index 0000000..3c797fd --- /dev/null +++ b/TLC-AUTH/packages/BigMath.0.5.0/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1/BigMath.XML @@ -0,0 +1,2679 @@ + + + + BigMath + + + +

+ Big integer. + + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + if set to true [value]. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether + the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A value that indicates the relative order of the objects being compared. The return value has these meanings: Value + Meaning Less than zero This instance is less than . Zero This instance is equal to + . Greater than zero This instance is greater than . + + + is not the same type as this instance. + + + + + Compares this instance to a specified big integer and returns an indication of their relative values. + + An integer to compare. + A signed number indicating the relative values of this instance and value. + + + + Returns a that represents this instance. + + + The format. Only x, X, g, G, d, D, b, B are supported. + + Format provider. + + A that represents this instance. + + + + + Performs an implicit conversion from to . + + if set to true [value]. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Implements the operator >. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator <. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator >=. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator <=. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator !=. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator ==. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator +. + + The value. + + The result of the operator. + + + + + Implements the operator -. + + The value. + + The result of the operator. + + + + + Implements the operator +. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator -. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator %. + + The dividend. + The divisor. + + The result of the operator. + + + + + Implements the operator /. + + The dividend. + The divisor. + + The result of the operator. + + + + + Implements the operator *. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator >>. + + The value. + The shift. + The result of the operator. + + + + Implements the operator <<. + + The value. + The shift. + The result of the operator. + + + + Implements the operator |. + + The left. + The right. + The result of the operator. + + + + Implements the operator &. + + The left. + The right. + The result of the operator. + + + + Implements the operator ~. + + The value. + The result of the operator. + + + + Implements the operator ++. + + The value. + The result of the operator. + + + + Implements the operator --. + + The value. + The result of the operator. + + + return a = a + b - b preserved. + + + unsigned comparison on two arrays - note the arrays may + start with leading zeros. + + + return z = x / y - done in place (z value preserved, x contains the + remainder) + + + return whether or not a BigInteger is probably prime with a + probability of 1 - (1/2)**certainty. +

From Knuth Vol 2, pg 395.

+
+ + Calculate the numbers u1, u2, and u3 such that: + + u1 * a + u2 * b = u3 + + where u3 is the greatest common divider of a and b. + a and b using the extended Euclid algorithm (refer p. 323 + of The Art of Computer Programming vol 2, 2nd ed). + This also seems to have the side effect of calculating + some form of multiplicative inverse. + + @param a First number to calculate gcd for + @param b Second number to calculate gcd for + @param u1Out the return object for the u1 value + @param u2Out the return object for the u2 value + @return The greatest common divisor of a and b + + + return w with w = x * x - w is assumed to have enough space. + + + return x with x = y * z - x is assumed to have enough space. + + + Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size) + + + Montgomery multiplication: a = x * y * R^(-1) mod m +
+ Based algorithm 14.36 of Handbook of Applied Cryptography. +
+
  • m, x, y should have length n
  • +
  • a should have length (n + 1)
  • +
  • b = 2^32, R = b^n
  • +
    + The result is put in x +
    + NOTE: the indices of x, y, m, a different in HAC and in Java +
    + + return x = x % y - done in place (y value preserved) + + + do a left shift - this returns a new array. + + + do a right shift - this does it in place. + + + do a right shift by one - this does it in place. + + + returns x = x - y - we assume x is >= y + + + + Compares two BigInteger values and returns an integer that indicates whether the first value is less than, equal + to, or + greater than the second value. + + The first value to compare. + The second value to compare. + A signed integer that indicates the relative values of left and right, as shown in the following table. + + + + Compares two 256-bit signed integer values and returns an integer that indicates whether the first value is less + than, equal to, or greater than the second value. + + The first value to compare. + The second value to compare. + + A signed number indicating the relative values of this instance and value. + + + + + Represents a 128-bit signed integer. + + + + + Gets a value that represents the number 0 (zero). + + + + + Represents the largest possible value of an Int128. + + + + + Represents the smallest possible value of an Int128. + + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + if set to true [value]. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The sign. + The ints. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a value indicating whether this instance is equal to a specified object. + + An object to compare with this instance. + + true if obj has the same value as this instance; otherwise, false. + + + + + Returns a value indicating whether this instance is equal to a specified Int64 value. + + The obj. + + true if obj has the same value as this instance; otherwise, false. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. Only x, X, g, G, d, D are supported. + An object that supplies culture-specific formatting information about this instance. + + A that represents this instance. + + + + + Converts the numeric value to an equivalent object. The return value indicates whether the conversion succeeded. + + The target conversion type. + An object that supplies culture-specific information about the conversion. + As little endian. + + When this method returns, contains the value that is equivalent to the numeric value, if the + conversion succeeded, or is null if the conversion failed. This parameter is passed uninitialized. + + true if this value was converted successfully; otherwise, false. + + + + Converts the string representation of a number to its Int128 equivalent. + + A string that contains a number to convert. + + A value that is equivalent to the number specified in the value parameter. + + + + + Converts the string representation of a number in a specified style format to its Int128 equivalent. + + A string that contains a number to convert. + A bitwise combination of the enumeration values that specify the permitted format of value. + + A value that is equivalent to the number specified in the value parameter. + + + + + Converts the string representation of a number in a culture-specific format to its Int128 equivalent. + + A string that contains a number to convert. + An object that provides culture-specific formatting information about value. + + A value that is equivalent to the number specified in the value parameter. + + + + + Converts the string representation of a number in a specified style and culture-specific format to its Int128 + equivalent. + + A string that contains a number to convert. + A bitwise combination of the enumeration values that specify the permitted format of value. + An object that provides culture-specific formatting information about value. + A value that is equivalent to the number specified in the value parameter. + + + + Tries to convert the string representation of a number to its Int128 equivalent, and returns a value that indicates + whether the conversion succeeded.. + + The string representation of a number. + + When this method returns, contains the Int128 equivalent to the number that is contained in value, + or Int128.Zero if the conversion failed. This parameter is passed uninitialized. + + + true if the value parameter was converted successfully; otherwise, false. + + + + + Tries to convert the string representation of a number in a specified style and culture-specific format to its + Int128 equivalent, and returns a value that indicates whether the conversion succeeded.. + + + The string representation of a number. The string is interpreted using the style specified by + style. + + + A bitwise combination of enumeration values that indicates the style elements that can be present + in value. A typical value to specify is NumberStyles.Integer. + + An object that supplies culture-specific formatting information about value. + + When this method returns, contains the Int128 equivalent to the number that is contained in value, + or Int128.Zero if the conversion failed. This parameter is passed uninitialized. + + true if the value parameter was converted successfully; otherwise, false. + + + + Converts the value of this instance to an of the specified + that has an equivalent value, using the specified culture-specific formatting + information. + + The to which the value of this instance is converted. + + An interface implementation that supplies + culture-specific formatting information. + + As little endian. + + An instance of type whose value is equivalent to + the value of this instance. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether + the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A value that indicates the relative order of the objects being compared. The return value has these meanings: Value + Meaning Less than zero This instance is less than . Zero This instance is equal to + . Greater than zero This instance is greater than . + + + is not the same type as this instance. + + + + + Compares two Int128 values and returns an integer that indicates whether the first value is less than, equal to, or + greater than the second value. + + The first value to compare. + The second value to compare. + A signed integer that indicates the relative values of left and right, as shown in the following table. + + + + Compares two 128-bit signed integer values and returns an integer that indicates whether the first value is less + than, equal to, or greater than the second value. + + The first value to compare. + The second value to compare. + + A signed number indicating the relative values of this instance and value. + + + + + Compares this instance to a specified 128-bit signed integer and returns an indication of their relative values. + + An integer to compare. + A signed number indicating the relative values of this instance and value. + + + + Negates a specified Int128 value. + + The value to negate. + The result of the value parameter multiplied by negative one (-1). + + + + Gets the absolute value this object. + + The absolute value. + + + + Gets the absolute value of an Int128 object. + + A number. + + The absolute value. + + + + + Adds two Int128 values and returns the result. + + The first value to add. + The second value to add. + The sum of left and right. + + + + Subtracts one Int128 value from another and returns the result. + + The value to subtract from (the minuend). + The value to subtract (the subtrahend). + The result of subtracting right from left. + + + + Divides one Int128 value by another and returns the result. + + The value to be divided. + The value to divide by. + The quotient of the division. + + + + Divides one Int128 value by another, returns the result, and returns the remainder in an output parameter. + + The value to be divided. + The value to divide by. + + When this method returns, contains an Int128 value that represents the remainder from the + division. This parameter is passed uninitialized. + + + The quotient of the division. + + + + + Performs integer division on two Int128 values and returns the remainder. + + The value to be divided. + The value to divide by. + The remainder after dividing dividend by divisor. + + + + Converts an Int128 value to an unsigned long array. + + + The value of the current Int128 object converted to an array of unsigned integers. + + + + + Converts an Int128 value to an unsigned integer array. + + The value of the current Int128 object converted to an array of unsigned integers. + + + + Returns the product of two Int128 values. + + The first number to multiply. + The second number to multiply. + The product of the left and right parameters. + + + + Performs an implicit conversion from to . + + if set to true [value]. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Implements the operator >. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator <. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator >=. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator <=. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator !=. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator ==. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator +. + + The value. + + The result of the operator. + + + + + Implements the operator -. + + The value. + + The result of the operator. + + + + + Implements the operator +. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator -. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator %. + + The dividend. + The divisor. + + The result of the operator. + + + + + Implements the operator /. + + The dividend. + The divisor. + + The result of the operator. + + + + + Implements the operator *. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator >>. + + The value. + The shift. + The result of the operator. + + + + Implements the operator <<. + + The value. + The shift. + The result of the operator. + + + + Implements the operator |. + + The left. + The right. + The result of the operator. + + + + Implements the operator &. + + The left. + The right. + The result of the operator. + + + + Implements the operator ~. + + The value. + The result of the operator. + + + + Implements the operator ++. + + The value. + The result of the operator. + + + + Implements the operator --. + + The value. + The result of the operator. + + + + Higher 64 bits. + + + + + Lower 64 bits. + + + + + Gets a number that indicates the sign (negative, positive, or zero) of the current Int128 object. + + A number that indicates the sign of the Int128 object + + + + Represents a 256-bit signed integer. + + + + + Gets a value that represents the number 0 (zero). + + + + + Represents the largest possible value of an Int256. + + + + + Represents the smallest possible value of an Int256. + + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + if set to true [value]. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The value. + + + + Initializes a new instance of the struct. + + The sign. + The ints. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a value indicating whether this instance is equal to a specified object. + + An object to compare with this instance. + + true if obj has the same value as this instance; otherwise, false. + + + + + Returns a value indicating whether this instance is equal to a specified Int64 value. + + The obj. + + true if obj has the same value as this instance; otherwise, false. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. Only x, X, g, G, d, D are supported. + An object that supplies culture-specific formatting information about this instance. + + A that represents this instance. + + + + + Converts the numeric value to an equivalent object. The return value indicates whether the conversion succeeded. + + The target conversion type. + An object that supplies culture-specific information about the conversion. + As little endian. + + When this method returns, contains the value that is equivalent to the numeric value, if the + conversion succeeded, or is null if the conversion failed. This parameter is passed uninitialized. + + true if this value was converted successfully; otherwise, false. + + + + Converts the string representation of a number to its Int256 equivalent. + + A string that contains a number to convert. + + A value that is equivalent to the number specified in the value parameter. + + + + + Converts the string representation of a number in a specified style format to its Int256 equivalent. + + A string that contains a number to convert. + A bitwise combination of the enumeration values that specify the permitted format of value. + + A value that is equivalent to the number specified in the value parameter. + + + + + Converts the string representation of a number in a culture-specific format to its Int256 equivalent. + + A string that contains a number to convert. + An object that provides culture-specific formatting information about value. + + A value that is equivalent to the number specified in the value parameter. + + + + + Converts the string representation of a number in a specified style and culture-specific format to its Int256 + equivalent. + + A string that contains a number to convert. + A bitwise combination of the enumeration values that specify the permitted format of value. + An object that provides culture-specific formatting information about value. + A value that is equivalent to the number specified in the value parameter. + + + + Tries to convert the string representation of a number to its Int256 equivalent, and returns a value that indicates + whether the conversion succeeded.. + + The string representation of a number. + + When this method returns, contains the Int256 equivalent to the number that is contained in value, + or Int256.Zero if the conversion failed. This parameter is passed uninitialized. + + + true if the value parameter was converted successfully; otherwise, false. + + + + + Tries to convert the string representation of a number in a specified style and culture-specific format to its + Int256 equivalent, and returns a value that indicates whether the conversion succeeded.. + + + The string representation of a number. The string is interpreted using the style specified by + style. + + + A bitwise combination of enumeration values that indicates the style elements that can be present + in value. A typical value to specify is NumberStyles.Integer. + + An object that supplies culture-specific formatting information about value. + + When this method returns, contains the Int256 equivalent to the number that is contained in value, + or Int256.Zero if the conversion failed. This parameter is passed uninitialized. + + true if the value parameter was converted successfully; otherwise, false. + + + + Converts the value of this instance to an of the specified + that has an equivalent value, using the specified culture-specific formatting + information. + + The to which the value of this instance is converted. + + An interface implementation that supplies + culture-specific formatting information. + + As little endian. + + An instance of type whose value is equivalent to + the value of this instance. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether + the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A value that indicates the relative order of the objects being compared. The return value has these meanings: Value + Meaning Less than zero This instance is less than . Zero This instance is equal to + . Greater than zero This instance is greater than . + + + is not the same type as this instance. + + + + + Compares two Int256 values and returns an integer that indicates whether the first value is less than, equal to, or + greater than the second value. + + The first value to compare. + The second value to compare. + A signed integer that indicates the relative values of left and right, as shown in the following table. + + + + Compares two 256-bit signed integer values and returns an integer that indicates whether the first value is less + than, equal to, or greater than the second value. + + The first value to compare. + The second value to compare. + + A signed number indicating the relative values of this instance and value. + + + + + Compares this instance to a specified 256-bit signed integer and returns an indication of their relative values. + + An integer to compare. + A signed number indicating the relative values of this instance and value. + + + + Negates a specified Int256 value. + + The value to negate. + The result of the value parameter multiplied by negative one (-1). + + + + Gets the absolute value this object. + + The absolute value. + + + + Gets the absolute value of an Int256 object. + + A number. + + The absolute value. + + + + + Adds two Int256 values and returns the result. + + The first value to add. + The second value to add. + The sum of left and right. + + + + Subtracts one Int256 value from another and returns the result. + + The value to subtract from (the minuend). + The value to subtract (the subtrahend). + The result of subtracting right from left. + + + + Divides one Int256 value by another and returns the result. + + The value to be divided. + The value to divide by. + The quotient of the division. + + + + Performs integer division on two Int256 values and returns the remainder. + + The value to be divided. + The value to divide by. + The remainder after dividing dividend by divisor. + + + + Divides one Int256 value by another, returns the result, and returns the remainder in an output parameter. + + The value to be divided. + The value to divide by. + + When this method returns, contains an Int256 value that represents the remainder from the + division. This parameter is passed uninitialized. + + + The quotient of the division. + + + + + Converts an Int256 value to an unsigned long array. + + + The value of the current Int256 object converted to an array of unsigned integers. + + + + + Converts an Int256 value to an unsigned integer array. + + The value of the current Int256 object converted to an array of unsigned integers. + + + + Returns the product of two Int256 values. + + The first number to multiply. + The second number to multiply. + The product of the left and right parameters. + + + + Performs an implicit conversion from to . + + if set to true [value]. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Performs an explicit conversion from to . + + The value. + + The result of the conversion. + + + + + Implements the operator >. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator <. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator >=. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator <=. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator !=. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator ==. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator +. + + The value. + + The result of the operator. + + + + + Implements the operator -. + + The value. + + The result of the operator. + + + + + Implements the operator +. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator -. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator %. + + The dividend. + The divisor. + + The result of the operator. + + + + + Implements the operator /. + + The dividend. + The divisor. + + The result of the operator. + + + + + Implements the operator *. + + The x. + The y. + + The result of the operator. + + + + + Implements the operator >>. + + The value. + The shift. + The result of the operator. + + + + Implements the operator <<. + + The value. + The shift. + The result of the operator. + + + + Implements the operator |. + + The left. + The right. + The result of the operator. + + + + Implements the operator &. + + The left. + The right. + The result of the operator. + + + + Implements the operator ~. + + The value. + The result of the operator. + + + + Implements the operator ++. + + The value. + The result of the operator. + + + + Implements the operator --. + + The value. + The result of the operator. + + + + Higher 64 bits of the higher 128 bits. + + + + + Lower 64 bits of the higher 128 bits. + + + + + Higher 64 bits of the lower 128 bits. + + + + + Lower 64 bits of the lower 128 bits. + + + + + Gets a number that indicates the sign (negative, positive, or zero) of the current Int256 object. + + A number that indicates the sign of the Int256 object + + + + Utils for the class. + + + + + Converts an array of one type to an array of another type. + + + An array of the target type containing the converted elements from the source array. + + The one-dimensional, zero-based to convert to a target type. + A that converts each element from one type to another type. + The type of the elements of the source array. + The type of the elements of the target array. + + is null.-or- is + null. + + + + + Get length of serial non zero items. + + Array of bytes. + True - skip all zero items from high. False - skip all zero items from low. + Length of serial non zero items. + + + + Trim zero items. + + Array of bytes. + True - trim from high, False - trim from low. + Trimmed array of bytes. + + + + Converts array of bytes to hexadecimal string. + + Bytes. + Capitalize chars. + Minimum string length. 0 if there is no minimum length. + Space every byte. + Trim zeros in the result string. + Hexadecimal string representation of the bytes array. + + + + Converts array of bytes to hexadecimal string. + + Bytes. + Capitalize chars. + Minimum string length. 0 if there is no minimum length. + Space every byte. + Trim zeros in the result string. + Hexadecimal string representation of the bytes array. + + + + Converts string of hex numbers to array of bytes. + + String value. + Array of bytes. + + + + Crc32 calculator. + + + + + Reset CRC. + + + + + Math utils. + + + + + Bitwise shift array of . + + Bits to shift. Lower bits have lower index in array. + Shift amount in bits. Negative for left shift, positive for right shift. + Shifted values. + + + + Bitwise right shift. + + Bits to shift. Lower bits have lower index in array. + Shift amount in bits. + Shifted values. + + + + Bitwise right shift. + + Using an array of ulong's, but when called from Int128 and Int256, value is really a signed number, so we need to preserve the sign bits + + Bits to shift. Lower bits have lower index in array. + Shift amount in bits. + Shifted values. + + + + Bitwise right shift. + + Bits to shift. Lower bits have lower index in array. + Shift amount in bits. + Shifted values. + + + + Bit converter methods which support explicit endian. + + + + + Indicates the byte order ("endianness") in which data is stored in this computer architecture. + + + + + Converts to array of bytes. + + Value. + Convert to little endian. + Array of bytes. + + + + Converts to array of bytes. + + Value. + Buffer at least 2 bytes. + The starting position within . + Convert to little endian. + Array of bytes. + + + + Converts array of bytes to . + + An array of bytes. + The starting position within . + Convert from little endian. + value. + + + + Converts to array of bytes. + + Value. + Convert to little endian. + Array of bytes. + + + + Converts to array of bytes. + + Value. + Buffer at least 2 bytes. + The starting position within . + Convert to little endian. + Array of bytes. + + + + Converts array of bytes to . + + An array of bytes. + The starting position within . + Convert from little endian. + value. + + + + Converts to array of bytes. + + Value. + Convert to little endian. + Array of bytes. + + + + Converts to array of bytes. + + Value. + Buffer at least 4 bytes. + The starting position within . + Convert to little endian. + Array of bytes. + + + + Converts array of bytes to . + + An array of bytes. + The starting position within . + Convert from little endian. + value. + + + + Converts to array of bytes. + + Value. + Convert to little endian. + Array of bytes. + + + + Converts to array of bytes. + + Value. + Buffer at least 4 bytes. + The starting position within . + Convert to little endian. + Array of bytes. + + + + Converts array of bytes to . + + An array of bytes. + The starting position within . + Convert from little endian. + value. + + + + Converts to array of bytes. + + Value. + Convert to little endian. + Array of bytes. + + + + Converts to array of bytes. + + Value. + Buffer at least 8 bytes. + The starting position within . + Convert to little endian. + + + + Converts array of bytes to . + + An array of bytes. + The starting position within . + Convert from little endian. + value. + + + + Converts to array of bytes. + + Value. + Convert to little endian. + Array of bytes. + + + + Converts to array of bytes. + + Value. + Buffer at least 8 bytes. + The starting position within . + Convert to little endian. + + + + Converts array of bytes to . + + An array of bytes. + The starting position within . + Convert from little endian. + value. + + + + Converts an value to an array of bytes. + + Value. + An array of bytes. + The starting position within . + Convert from little endian. + + + + Converts an value to a byte array. + + Value. + Convert from little endian. + Trim zero bytes from left or right, depending on endian. + Array of bytes. + + + + Converts array of bytes to . + + An array of bytes. + The starting position within . + Convert from little endian. + value. + + + + Converts an value to an array of bytes. + + Value. + An array of bytes. + The starting position within . + Convert from little endian. + + + + Converts an value to a byte array. + + Value. + Convert from little endian. + Trim zero bytes from left or right, depending on endian. + Array of bytes. + + + + Converts array of bytes to . + + An array of bytes. + The starting position within . + Convert from little endian. + value. + + + diff --git a/TLC-AUTH/packages/BigMath.0.5.0/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1/BigMath.dll b/TLC-AUTH/packages/BigMath.0.5.0/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1/BigMath.dll new file mode 100644 index 0000000000000000000000000000000000000000..38d658f55be9b117883e37cb36f2cc2a5930ce15 GIT binary patch literal 65024 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%0AZ||% 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 |8-j#*`XsD3D z+7@Q}i!Bm6T=%N7Q@d?Hb3;EA)WRtiekAkT&9zd>Z{6-#zl1SwQe7roTmTNm%y zy<`nRF?2X07v2s9cfwK4l;OEKj22rbd;7dW1RTd-r!E3gN{9~VQ&>qQ4O2(sj$}yv z7So4t<_Q}s44*SR5Su?D6#`VM{>6472cfB`Fy_r>C5%Q0^v642C!2Nhy*;lzCUOQ% z$Wq@ic!Q~*7=rgc5t@yI_311VUf|s(p%4I5LB`Q9XE4qmi zMNEE;#FjF8kQ;ZR`Rs~q>ptHJ=5=RQgJW^>_z2&TgsF@7s->U zuno0Ld1J<=?b4ETKc_9(jak!`QmFRo@%u1Cp_!^Q{cYDus2y2YYb&BeGlIf+CDhK&&L_Ef-Gw1DClm`&|$rA z;?TMb84QsIQPfczJ}(0urqeWSs1pQ`bE>{9_#CEgcN*5@=0*@b%KrHiQ&sf|COSeS z^Rfc_p^zM#Z0S&A=!#-ENnW*63W|NVbb=eUnpprAJBOAf;z-?G3~>uV&HCQ3^;Yqe zK$0&{WuI%kK!ro&2N;kx7&g902Fwi$O6NgD++&}kY6^4Dr#G3WsBb!7#Zt* zugFF48@d`q(c$Dru&7P)Eon^hy+;xwX24~2!gIOhLuP7~7(lX^1)53LmR$b+d;Xrw zk%BJ^=NqG$!8gPl?pn%z4*W_gbzif7e)s0ms zQbkz_-8#@Z4dT01dqCro4DPz~Al}A#<42(Ki?r9BnOI!&=vZYRPHPIg)F6>gHqZ&a zq~k38(e3qs88z6kzYyyP3;XxvlMxL!tsYgJY{t^3GICOLq>_v??p)R{Oz0Qk1h7zBhxw?wEk_DJG}!3V?2To!Hc&*kaS(>&3M~7 zyk94cT5KpjuMa!%pXko2Sb{&1&E#VJj7~#cLxG2xaLiqr$E3IZypFJROwu)~Tsqj_ z4^^!$R|hqTkMo(Ik5bNrOwEI2GDU{oNm2NBAxNd`_tTI0N!Pj!e^&5*6IsBXn>Bfg zIvaGBVaQYR)EH5QU;DlVVMQjY}QBq1p4tLDp z{5&fJQs2=bTd05Zxco*zxa^y2e;f5n@a5w1QbWkx%OY&fvZzw9^ zMlDRC)v%??^=c>H!-tj;jX(PP_xvMb5eJnt#49SuzfOcdq6=>rZX%a)Z~VzMJD6Su zYnK?iXV~Xb{iC|cZG7lxKWj4GvO0Q{e+&ZqV^+oKc`-@EGZRPSqrzbin`nQyFZZif z`vH#sCc~WF#|)W&PLNiGwBP2QcWM;KXNYY3P||f-;fr{0Jl1Yv*C$NfqwngoI5zA$5Amc3SAS-W)^vs(1#{Ac zRoi@%FEb$kb8o1qV}7M(k9^>-aOUA78cmO(?h48>qtB5@{IeDWPYjtBFfC_$fp$40 z{uYe6aB{dhbI<497jeK= zV|ZfZdENddGQIZ!eXl}}nT?$tTXtkc94k6q7iNwI0lE3y*O9l9%SspRt{?m(GHcTi zrgc0bJYOf08xCAzp{RqS;4_*tw-h|5`RBz9RmvkUVhS2Nmp25`sP)h6znKHyS}FXc zp(=l!+Fc<1zk6R93%^{3N%8Qyt{+FpJD4(}cq$?Xwmca6&dKE86KSLXZT+y>RrCqx zMB}C0G%Q$sS2}7E73qPygSkdL#;DsNYkot&H*g=FGv{W|@LgK-o&=xQF4zcSBla}W zfRH7R`VDo&pG4#=nLE1{#Dfm8qGwz%_eE^-y?lf0{@9Lq6%7efgE!sqe;OBAKl>%Y z8)~uD4o*p=tqt8__JbH=);70jrhSDg7c(e?XeU)(mP7EhRVFTKX52!@m6CRt@l$Q8 zcwaUzeA6Wh|C`oH95(l}~Cf3M-Lx>6ds=l9;FwCpT~iAa{Tfezgz9Ttr9BouJ77<%O^U znr7YbWQ1e~h-Zd>DFnS%RaM2D9eK04u`yWB=q=+&xb&^eRU^%=8^Y8ri(fI-`+N3p zw1)bO8ntwEkd3R(TY=`{05e6 zC~+JJ#tbTR!m}A=YC(Zfo1Z1p-{nS4v=X(`bTAXx*V%f4u2zqFef8nw;^J5`W(gj@ z$)c3`*V5PcIegrrWUY3|3XzvBMMy?-QuRB|X!Tno2!MOXBL|gruq0GD`QCJ&tM;9L zi;^@i(Oiq#v*#7oKC;3uQ{9>y|L4W+C4cUrO5$4XE2mkGebY13nvTv&i$eFDp_NCv zwv(8S*O~$DyEg=3N*EFcUR&8@ZQ;6rMdpcJ<>migKqev#tmCs@kqcq-2c9vC_U@-lx z@(`9|@I0!Yu&_Ve_rA2PMoKN#-DqzTfPzZW*xM>q->p!%YHH;{(Az>O>;G-OuF(9E z3Ok`zUjZFgD1eWPtFKasrXA49?JL(?atJLdlYVF3w7nO<4b#+`UlDAf3R&;*31g6Z zoU#x?7FOz&hLqR{`I3w}tgNo)SI~V}H0gx2pdcnI^&PKo`u?B@+NkmsuSEbl)MPTc z4((+Uk!n>`8?af?cpgH<>y(}yLdS#Hekb}%oE&|_4+4oVqRlzN7_ImA5eYCQkm^oj zu6r0+?(Iva*I3!uDDLjHGo&7RL$ZXmoEp}(Qa@KsNk*GO^G}Oy2T%4?E;}BEyf%$m zAil})_%8&%HR1a?tnKpBqj0C*M(hKy*OwcBUz$B_!q^Ps(r-CSSJjd&!=j5j&rqe> za^$*|Ee@_NXy*fz;LbSB>ctwH#jV>z_Be)yNNdaK;Y2Z4$((m%?n?v+$v~ye;+eb-KfF_F@%q~8a)x1hYU-<2P zh+0EipF!=8x{

    G+#OpjHc}ri5>H&FcFl7=@;UZQHoJtHARn_F?{t($?p}Mz6&= z>J$iDzcZu#YaNl><7<6OHF>BBqg9UPI+1rqUZ&NB7QP>7GW*mqtJyKHWT~YtmCARj z(EMR)tlvE5Ub)bjKGVFS@fn_lmRg#lfQ?NjNu7Hm^N6FWvFxGhKrq*E|JGa#& z|E+4Cip2r?8-aJR`hNuC>bRkLzVEX!sI2hc&YnMnj%d|dR&57ZX_amVtg+R^CCI(nQQ)awc_V@FCKpsz`y;} zsk;^(l=-{Erg^!E7AGDkLC#yaTz!QHkmH*2*-kF0GRk2SV*yW+-BisG+*3QMckQ+~ z?bW?JG^nwV)Kyk`DRiqlvs%+~gE+@E$Ai~m%w9%OdF2uiNdFs!M?huk7|+sk5|tfi zce{?1pP63N>faF&5W$fkuB?3pC-Ct%!Irj-`ln(%eOoEdto6>LE(QRSmkju)Q$D=A z_a2N%Ri;ihrsN39UBJIzqBhNE$aU_` z>0HwfK`56D_50B&reu-eGKA`7=b4b#4Nv5yD{HnG2lDdP<25|>wpuxB%B=)wh-`r^b*_~P1iK?Rxf$!bSj7dh} zjM@*{o>%-lmmjGn72XA=IvvuVSEZ!{E*+pXr*m6Y_6fKx$t&FqlB(~%&lylKaX#?Q z=X3*HR81~^QQ%jhTz=21)yRg*_I+Xo!DJ0lhXj$GD$egVXkT;Eg!qM1!su`(rI|X=TI3W8^%u zk#8o~CO5}UKmMH9{O*gLPhWROac^7G{4bKHRy#@xE%a}NJ8Lz29`jG_3X8JeGWk+7 zaEk4#Kwib-QpZK;G}0vMm6Pa-iov5=T;$!>x4ZT3ew8hH)@Q#+qg^i|e7tq-w zWbU@^p6KE4+!Kw*sORJDF`{2oZ=w=L-5qz{*Ht*gbrR`xel)rv_UeTN!M0b;{(aI~ z!+m$=8ovacoZ_NQC?L7))xl6hQDuV^9W0lDV~zayP~n&&2UK{*(1kX#!qcY0nQ`rl z_hX?Ux$+)-Sc;uqxAWH!bRK+6Y~Ryo4Ufv5hypv+J|2;ESR8cqzZ%B<0JFJS(y>IeDRE z?iIgIMYmm*ADeaZw1DzH&A`tz&2kx|;}%AA#dZ<>d5iNG?;jL5sE-|^32LfA$<*>^ z+Z33I+$D+$==uGjDcmXhFe#|5+iqeW)(qP0GIx6WG6t8a4c}qt(`!ZYx4&1roi6cW z`DsScOrKv5xHfn*n%^oq8lMfw>GQU?=PK>zL(I575#~y0nWsGb zHAbF&m|_{U)Q*#?4kP4@$!=WCD=tfa+4I`?T|4uGCS|~Q7pb>5^V+7rQ)>f34-|L%28NDU>jD!5I(*iiX8`^bGMb2m6V_8%Mgd3ItEr z0~XEVrWsg5En#`cc)vr9{vMC3iyyzZ+>L5{Qut2t)??~Pbpy!70#Y`&F40l_zb-?<~2CM?QN&b20v5V_C};Q#qbSha7!))OUFLrN!3g3)rJ?h?kk*ffK4d~w+pUDXfg z4S7Y~5iuSqV1#%ZUY zrKeEQ7Z9>5{$7;S4fg#{>feN^RvsgMEOW@r)7-%!I%_$=7d>{8BeQ~$y+^fh%kr=J z9X%0)Tw;A@4o7oDkb(JA@70}UqaRR%BTL(ZWUXmgB_E2d+5J2DDv$8Y%U&pc_8|gw zA?T)3t}ntY*T!l2P4ND=t;iIUPW@m?zwsC+cPspa?Y)d1=Ts4eo%>0_r51*r`o5H4 zE-gL3H|dQ}v6VtcpNj=?C7<70l%7SfILG4C&xAj_5$6dNV3j*iN1@rp|S>R#0= z`pY-&x2pxq`2lj@R==}Z9A#tYL9kxDcbW`?2Kg^-WkVoXmnA|HLB|u^@h%{i2{OFN z1dxgK03kdP58<%{8UsYr88kY`fXMKGI!RMWg+wH%6O0X7J~a>E|!Cb$vZ3fH%lsl4;ZfC`F6{3IM4D8j(zOIe_wl zNN5d|u8ua#xW&3{0LD<6T13JDlq&?$wXj&a7lVSKFqtqsdezgr^d~KlHC7m}|pK z3``Rh_L4+nc;F$p3A^?uwXi0&f20+qqfI1e5f~sIqA_$#Kq`amjx{7xX@G$%nTgki zC%8V!k|csm0)tG4VD@zM0N9*6KqCQ=D+n0UAafA1CDQ>oXl@_@0({7jE6oc6m}D0! zOz&D7zynMg#fyc9QFsU-&^+j53djTq6cA6P_+bDXY(p(TDWckn3IA?x3F!jX`7rSRL)P!uoG+>-@Do3-EQ+ zWh4T@x`g2Rv@@VlA=ooVoF5%zI$&7U^FOJuHGRJq%l|o<;ZU=DLPIQ{;0!hdNq8>` z1Q_|k-M<$$1Eerfz#q=DY#l)1>2x?h;Na4zSZ^xvr;zZks7Mi&z)$&nq#)krf~;i)`laKw-oN#KyHPVzRJceD4MXLWUiI5cmsF z8SY$SZT|BSXSX=zk8WI?$QqJKeWz@2dAW2qpdq<}q4qml_2c)7yBk@#6j<@tpf zf715vZqKD-Z6nEG%Z_b)U}IqnyRt#@iM7~j z(`$2RJjM`0fY=TSw~;vH5m;8UeZ`PuU?&f!LFBDj%8Uc{yqG#W!(dpe>>#&$UnCtdboP;u=UruPp`jc z;BlW`|HNzeE==7JM^B3{zkce<%lGYzZk)Q}>Z$mqeN%h)O`ZApi>I!SuDZH4G!z_X zP+xSGWj$`dv3~INyDm;j`>JKH&ky7+E9+a9r_g=V@K3?N1FmI_h~HMa2_XIQcPrun z=bvNk_yZ>8|2@|P3Bunf@IILy;C(e2vGi|`Zw&(Wz;V8{c4^#^!c!nW6`w`;oK(1V zQ!m!l(48bhmOZU_A-)m-p^bHCMFY60za5~y6<>W_goLEk0?mSJcv-qL zQrX0N5&4Qg(q>y3YxYSQ>jj?~um%KbSH|(^h{dc8Aq1X1$>Kb_)X7QNV@SGC!cPaWF2JkkxE-KCC5Jp_fZ1&UwwdF$$DpoZ8R%-D$+k{UXlkPzx3StTcTkoa zUypnX6(rklI~|C*Yq$B^%o@6CcAMliePp1gHmQKx*X_e%awcZF_}`qypCACuZtWNp zC>~%$4^)7700;EDYUP*$a8JQLXA6q>7yG^N^GoJP?WxC&vp195O` zb_h}Q6jV~sd3Kvoyyn~A^>^eCn4oB<`w zVUq=od|Y;VWgoVig)QK;o$!8?-XVobr@gS9?T)$|z=rm(5jnZ%+74Y!#NHnCexla^ zhshp7F1_eoDFF1F7rnCwkd7VQ+XIA9w_f!A6aekuMITQAz(_CpBmhoaN97{)PgGQk zj6T;(C>^%48)A?Dqt`Bpm`Eb-VuY#6@jwj$A*&Tqb2jwz*$y3B0#k=zFl?UC9^7klj23-ut|I3&ol@PdUKvf;UBoB!yp)UP8Csxbh#*x7 zqeW=5=mcb~L%mTUAQ4BfrsoOR9@SB^+#waUpd|m7 zYZD9Thr#|WNedy6z`R;3ekWVL!4$3d{awGw^bR3Eu$`N>fszim;=+%*+8tDa{tW$~ zO4JkMsiqiLyVq_r+!$0hx&bXvv)fGD@RTM^N$S1Y{r$~okq`!>l+T|pbYH#aL)Q(a(?a`$8DUy;T9nvgL$E0QbS#P>dN0L6j zA8YgmEt)B)EWFy%1aC|wfEX-eP&A(+-Y_V-m^1{-n<-N^CprsJh><5A0MOMG zAfA`l?UMnJ@pmgc{g$Zoh>zNK8$B4<8H~OQRnghRu-&E;f#{&KnSfFUgQ|2CO{)rsyw9n{;-%1F=1=nGwF^d5MlpG%lkvD-8FEk!6NnDzmo zOuQWRf_}nS!iH&pRwkXg=zIruCb9#011k3<%=YaDSUQYs$M6Cg{;_UP!(ZI>gEvLY!O97bjPyzgjw_4^ zykwx*Zu(BCa|&sZytai(bE;ohxEgNWFL$;h(s!ck5cJ*7=?vMON7D(sC)2A<|}DFlfmhnA=yJPGUz-;akS~iyHSS_y$J@E7hjHmM0=&^Mkztt9vruP&=y~f z1h!zYLohc8!Og%a&)#-UGVu$%aWj+U*mWj~knSiR0Co_-c?3NeWKU)Ig?5`R3@Fc$1LmEK^-S<$FMvQc%}Hg2;J?K?eKaeyxXhTZMMs8;D#MR0)xA~aa-`;b}n+< z?S&9NW2>j5C2z`)5 zlv|vCP=?|!gUV!-8bJ%2XvGczynU|+k|AAoNDX`;r7h79F{6pZ@N#8)an z6|^23+yKCtz$u+PY)Eisl?0Js`({?yzM09xN$M~mvk9A!5l~QmHiW1LrHSr5itT+6 z^aNdAR(iZV4eT(y4ELgrjf)Mrl%h;eiY~UxAv;O^Je8|ds=afdU)#ZxLQT?)2Tr*j zc$P}sL%HdFNiH+xTLYc)P0*QNiOy${PH8Jgt2{HJ*^TCg!qIT!SW}wtTlg9perrJZ zt&KaEuTR*%^uNKZrt-2O6Zqx1yziX!bxb1J{-vRM-43hZcc<4-+Gru0Yq2n$tIXJk zCKjz+d3Go_zU4ktnn}kO(Aib4`{*sY1q%AW2qooZ*5tda-1!LJVuXEW)YJxp8(Ax6 z1+1H0OTePfOEr_NvMd`&2#^ixUa;(7FbO2OUt-wYwUafO6QP#|&=ZaBTIV4b2%mVEBT$ zoV8(tE~`#D;rD6C9pjY4AJ7B9QxxEadkkPV-B$P}IHIkfNI8WHYV(QxCc3M0E{cOv zJ`WDGbDM6`l`(3a&5D3W1S{KLrRI6Hryl5QMADja5@VY5UK4&7s3r+2P`rk{~_Xs5nn=e zSxDYL3&Xlqz&|!$1OG4sw=hgtXj-ej6RMM?9pWlpP`@Av+ClyFu3w_IBtbW*PbYq4 zndtf@Sw6mtnxP7+_InUuN6b4V5Zrk!2}Qw_)5uGEA4%ZK0MQI zKy>_06dpc)Dd$+8E#)CQ#xE8G&Nv`|Tq)w;arjq1(Frd?-oe#&xD#$rZ#m%;;2B!& z7{EFwycmF@yV^C7bcJm%{8OzU%X=wMCT&65m$b!3L{H%#^pSO`*+Pd@%X-8N3DoN8NVQ^tBFQ1H(QcY%UN#g6|2S)BNLY@bU3>R|A4vHanP z$BuuB2)j*Scp0MOUmzUkJ@lBTFn9`lF+|w}FJJogYeILG5{luoez9wp6X@M zZV)lna-6#7gnQseKP5?CbU6Yr(OB|CE90Xx!6HCO){!xute}*D6~v3$dsHPxPw3pF zFJIn~b!;R;R`D*&ns9^d{0hTAnQb8DvrtH7cVp0te}x)_nDMY^LMH_J@DgZQppM_4 zwmKzXe+hVs({G8%FN>KnF{`>UU0sNkajKz$J#{On?T{EJx(1ZxOM_dnl4Jtt z&!Xmp*NW_W;oneWQP)66Y9Dnf;d=oLyhhG;CQ|-#;>S{Qbt(xA*^aQXFAVNz*p!;; z*rW|(vCL+=P$JpV$NM;h(TV50MiZo;`W^}#q?qw$XJWe zTF{GyYX0_|WvwY@3Yk*nc9>cNMX!K`l|KT@?k;%c_+9F`yO1fHc)#G6;=dEHUykon z58^8(K3m9^;s*tsEyv$e58}s7e6Ely#Xl8rt{gjA7L-H$gozIdK`9;*a8QoN)Pwjn zCO%)tm*O=7&X?m8)Pwl7CVsFmSc+!^JXnrTR}bRXnfRf?P$@oNz(eKuYV{y~(!>uJ zhD-4?1U#I?4lfqm;@t*k&>7pcNa#=Vv4|n1c8mwsy=_aA1*0aENzu~i zzXfR$4c)p1ZT$o+oR!({MVi8YgnW%yw$7)X4y0o)3D4SQFlf# zw}T>NXG5{HZ9Ra8inlB}mb?Am&`nIZ)MF)1q-FsfaM#n(*J5 z7$W#@0vVEjUxI(@SMXDCxeOc(i z?Q{)1+_Dt0^&v0?^#=vPkm19TFq@>)1-GL4??HayRpm&< zfgzRIJ7v;58lv_=F}wKGX#;&an!gJ@JAu9|4Q(aRKTktT3G~BhsI@5n6|$8Oqj^xQ ztggrmx|m&fGh1MFVfAM*Tkf@#X(YlroUkJv7DG3_JbP#OugLgj0y~^v7gnRqIO{E} z&a-0B^a(ru+<7GID9smhTKOWBw3y%Vzo8C#1mrmAZ9ru{H5Xyb3POxG!4wVt`CY}_ z)-xgCNwzPpl&!L2wxLwEuXMB3k62o-(0@ViN(%kPO1W1kw3qupD))D~xi>zNvb#v? zk59_~uaz(yzWg4BA?3R8vzS|W1LdJuC>C-Z=v}u^JVL`mUn9ZN_QnC9M^PaSR<(7%UeCMP>{iVvb%qHa!I?ih~P(!P;Wb zM!L7a3s1fSed-p5me%SUXsx4n>Lb(&LqBUZe56_x{FsVgcIBGu7v4|mFyLzoMeiYn zBZc7(rxAsbdUfGlOaPO?B=}1vScL>oxNc$9k}A}XEw~e+q3YwpG~~KdJYprNO7H3Y znLRzlCS$?)%-Qv=g-rBZu3f11dC5Q;h~2g=HBzbiQu_)qciqmr?d+}%X+Faw&1kXe~vTu6z6R9 zZ*j&R>pYeIeeo|)rW&|n*2WyhrGm1q0)=JPL1_4zsfSm4rsim1r$G$jSAvrbAN$+4 zqOy8Q;!^+x90&=Y-D(B<~k9Fj(qq3mNcy z(9VV*mjb+O^!td0Ei9EUWMGy(;5IIE!WRHMlq>qBVzz!(!7pU*EMiOSACRlLs^H4p zaY|M@n(J+Z1zi?8SMYfNxgiOT{($IV@)cn@7kr?9&!RWI=u9sn?uCd0o2`Mh__4;V z*WY6~mkFQY|A6J34}UUOqK_~F(^YaF?vi)dxm#-m6+4@k_cMP*(My_jUD-3ZnT9C2**|BPRq7x{c|qtn$b3dlrLS!^cLSppQvNh#N**f_GS?RW( zZ%=(2_CW^)LB3lk4l54mI6Mu6+IG)KYzEEi$OC5qMm@wY`VySVrPyx1eGdxkK*HPw zWDEwgUYmjFWe7-Jx##;%k@I^M#RcJXUByyT=Z?LysXh%TBLSt8Ks^IJplZTHa)4-{}Obn&D6JoIN8zjdb&Xepms)4hKcDM+L z-A0d*b4RQpTC`0bOheg^8yzl5W0^0l!ACoPm1b(auh3o&+E zi18MFO*%NwXI|jtTF*}4tdf@kw8Jk7Wo*HPmxJe6Oj2s1S0L1Z2)g|ch%O)%jb??g zZOU3MuPyT~hcZ7%0WGc-!<_;xSc|I$+Ir{*F1BFkl+;PuDGAwa(23S-aj~v>d?{bY z;SQ$v4``HsfKh&VHjfQiMnG{s=;6fm)7dt8teEY`**eD^c0_zfIA=%g!SZAbwsIq9iqB{*E6utBAZ}`n+qY3d<;L_lzkPQOy|{f%AMEHX)_AN zy}m0X3W~l0I_}szxhwEQ_*zrm)UB3fwJP4!N9c~k|BWp1z#zy(rw5rP<5!V!0a%01 zYgxbo3Jp33r7Zpm7B1&uHIHF00v*O*;ZR`wf*fDCds78(q)e@*UV684ER5y4rsVY-qsq*$@=~ zaZUhS#1Wx*p$B>-)Gr}FdIOMkSOqYj9E9+*tW+iX;L#gd7swS$2aW0Ti$ah&_?vO( z0@P@eMJo3H6;tOmNu{L&zzOaUUn|MDYmbpX?Z4wRI}AQ zgDzLvj6-Iq4u%*SP2Oh5E4mJb9l}a5?WL-{;5S7j$;gl-5jtV}qecZNBCoXRFXimr zg^&sUY0;(4+wAaLsoYX;jZ4>5A^o*g#^?#0lWlGD76iA<RFu)B3~Q?H{?S&LHHK@M1O{#z?*!^c;jzCLcH6qgTcp*_rOfh z!neV{==p*_R{xgIPJS9`w(y z)c&qoxlrdMI9DZ&^&_0dAI56iEx?3b$4c~Wc({`911gg%Iq@)J-GWsJ9Nk~V#PBi= z^(OD3a_r@wTqz71wvCy`l}J+AQnkx^0%AK3HY@i^)gjw4r~lVp}ho^eJxJYqRh@Nn+*3_zCW@#M_u%oFYEU~&jP zjgrxh+d9dfJVI>Qu6}!^=;idxU#IkJvE%g#*~%YR&W49lrwLK|n0%KoEi^}i;cJz_ zx;iQ$r+{w%Ab!d3qmsa01FuJONlUVCA(q=v}8; zx$^#l*)m!7u(i87!cYaFhjBb$l7Vq&3Vv(%{RedpH&iORrDDd;m2!qsnMUs9%E=kI zf_ET0eqd%sODptg^T{j)OduXuS@}yKVOX)|fyfJWf)z;wdTWDiXoV=XkO9U;)ZWg9K34tvGEAW00DQg+xcw-NBb6#lb7V${l-HnH7m3LX*m2Qg!?>aJ{9N~$eC zVF-iz)b~+|O$f;WMsnu z=4}c5ZPvs;Sl=U@bN3s;(uT_P-$JHFa1bQ?5Im3t_&yBZnk!U%_8|NbgoX2S)!Y>- zVSDZi5b<}2s9dUjoL{_QsIu^nNJJbz$POkw1oCMO*L*7tJ?qYu0F3oquYnk$gtm2fFccgqt&XpeMI$2_Z+Hz|@ zgS|?CGuNS`v8DNqUUJ5rg~A*$?w%cuTK(1>y@%dkS~>0;f7C zLwX0D$93BL%?p~rel%Hw#t(g50+`PF9RIfhG4y2qfFlC%y1vUN~ z7BU4+?RPOv-aHcLv2_!FnoytvRH_+Zd2Wq^mAUXyp#AduxqEU7+2dyq$_kyk{!PDKV%K(`HCo?bYcGI9}sFJtseN@ z@?EsCgY}eWB0c}?HhF^O7?A=EyuyjT0>OBl#^J^ilaya!lD^{p*`+a4nHOZUyUGb1 z3zj`>6_c<0ifZMm`xP;+3F{SJFgmq1>2{#wxwiNbI++d>IhWd`pI!=gM%s{2Lf)xF zI74NP_zsHBR~h1bwRNlrpt>c;sM~n1Rx#& z9w6XCsAPJYIDkG-?g$KVf`z#gbi^*`#Df%HO#tEn;A;s$JfLqD)z%5?9DU#~_w5RB zG2RyJiG{rsSe&%H6mB=ZlEkku@vg=@(NiQDaRf=4agzqf39lybbzR(&$&IdN-c0l~ zEvXO3+62dPl9`V5oJ@Ml3pXHl;2nk@NmDXu3_YY%;FSb^HwOBqTgAAGgIHvXoe5ce zdpHx4RD0O%e4UJ3P7H97p5x&@iuB+J*)xS8%xB?(k4LPlU5+sB6O(A%CngSD zB&OchI3gDSy&w9BFK?2r%5h+U~?l3zw(`J6qN%#)pg%sGSn0HCcyBTwCKP}&r7(N`ZG-ksX3*ubIEzQe|P@lc6n|9S=9ohvbe#QB)Ml4HCrgFLitme3pj zO*bZ7%Zd*5WkhwpBMHWrBSnK?HswLH6bOrh-4-0iWCg)*{if^jRsKT5${B22QvS^n6pCt8#0cVt$k)zdCvnHuzDn z{N`v$mJ(-3Tp4U4JCqs}?2Gt_kaYfA3fj;<0a3V#L+6O3tz5wD%HX72_O9PL)_oo4 zcY_vZkCjVogwCO(wZyfZ?;JhJcaNUrdq+#sp&~jW8?Wt9zaKHl$_;gt_Ty;rTgSSu zLzM}%zKlxc-7s~d&!dY1K#s25qjQDK>=0704^43^ez*M2jF7$%7`@If5mj$6?8{oZ z0W#xLmdgQfOks*5aF1Z=rdG+pD*~)OMs}6gXeSb)F({5?kOCHL^vm;ae|eC z*m0#cLKx~Yvz9UC4aIC{9V4=xNr^9asMLXv5>eWGemDQvzE%Zb3Lm_zBH1&x4|f(} zcvESE9P)-4qajp*d_Xu|IEyOJ6mhAbO>(fJKPPn69}RNvK~*ZP!1%^zLS~ORS{hLJ zW%zLz$7I49YtX3x4GJNEPiyMwMg`NxcgdejHrHvxs~V5XIh14IBO~WJcB! zcA&gRbF5r7APe-396XGz`?x{ZhDTH~rd^V64UhzQuWlzJe#Bx`Vz~&!XAmRc;}&0= zad@e~ZvTXd+CRpx6TXHdAd;bOB#s#|aW|3~5D74or6b8B^a%Mwxj#j;b4vrIhO;0C z+Xz~P=L+a=0Gjb{!R=3XWWeo9W=l<%C$lqs$(+L^bI2=UfYfc3-nH)twX5`=y|PAW zSN^qs4r-gL>^56gF8-M&W`8G77?h`dmcW@$;PfQiMtY8n%tu{Vdn%^B^w`y=*aWF` zzhFGlQPb3DA34?wz(JpFu1yA0$-_d$yI|Ou2T{cE!Wo4#DqYZM_$fBM;_>vsb@L|3Tx22c8dhOGTn%0Yv2_4bn2m+AuBM zUzysmR|%KsN#UM0>9CS2>Dm36j~xg5`?j^u$P>hku$ck8fi>z(wnnf*2wHHWH#uSC zT&vwp(lvAFXzX@%H2+_LGiXxN4|^KOs8g4K&C<&7-JYPmy@CKK& z7VpnWU=oyp56tDDa3z8bK!{MoEO?K=D1}Ez1(h}VK{XG4WUR*}w1k|T;9a%gSOc+Y z#y7Xacz$?V*JFp&+t=+%0hs@~U6;=7B7Rz2bUDxBA}|LZEFN+F2v906!;7A#e;D3#s@k*KegLm7nn$bVrVU(j5g`$T3NRk`AOX zBNx22Fm~2Gqgz00b-ZJELJDRiJeIYBQT0IzuNB&764-L z9=Ft1XBEgn!`CAySzoWXV{ullCWt}@0UYK4`YiHwsLU6~2IGfNwlCBFpqUk`)n6D<^w& zh2%c)7LOh*KpA-ZtCM2v4QZ<0Ig06Ab>cv-y5@kHMP6HUbJewgtm{ECnhBGd%xw2m zMRgJ(94b?-Cr0h8ENh{zw5jndIexJ_x0(T|M{=$rX}dvdY`t~T`DnXc_V|n^6x8er ze7AxZwJ}|X+ysA)d};DLWToXIEjrkjP%E7Oy0mg>1!u8qc6kP4TP^+^Sfd^8sd#rB zMdJZV2+kLUjSTb9I4R@7d4)2Br@`c*L)`LVL#Zk?lJMWiTe}k{#6CnMM^3iSc2+|1 zBceD=oS=URZr}_06|+kcLm`Irl_>;z(7ke8KlO)A)}sO^ELX;Km{O#I_iLuem|j0( zQ&b>?JW$RNXG3!kYhc71p+kA$cgdCKA2ySt3256e+eNK~@L?bc2iWgq zm`mdD`luV?WR{0^v+0O&H4fuv`x=mife+6awu!BgwZ$sH5}Hisl1>*sfHbDl@eNA$ z#PHYn>1?8e;AK@7@hbrGzPIp0Y}xT?NvRzf&=^OOZU}7?-A8?J95U6eaIt&kw&&r8 zIRs0v9Nmw|>Drf4S!Bn%iy%pyO2DUqG~1miD8|`T2;1%d+Aa2(wy0pvoAdgj4R7wC zzMwa#EvB+Ha7wsabaXQ?G_VobgWLfKYV@zn$8qls823&``*1VxP2}$sn>~ZjUw65k zN#x?+2@<(bkgCmLmyI*Mw%a(4#)kh14#O-Z<4V|B9mOUdn{5~(O5<>;01%#Pd>pcJ zNdB}PzX7<*dKd>&@>2Hhf*<~n$er-N;5@hpAv4b#t|{ZPQ8s)CVBB***AvG>sZyBa>Uvh_@s1%C#*ndu3K?Pxt8 z|JK3JKejt&&%8^7Q*-~DmL6T+(*Kh-4qZ0zm^SdJGI>;*bP?|#(VGJ=>_r8!bWHSZ59~1vvE& zg92Af#IfCS_#5Q)8pEEpJdDd905I$}9<6E-Cuw&h!&s|fhPD}mush%F*nadL@Ul4s z*=AHp5bC~@p3a4b2i%{tC(;x2wz*GCVLu z1r1xvrv0P&qfQ{H~JbNln>tR;kb1cXu$d5@Na<;Zw8lYX3kzd>=&`DJxcL%Tn+R z-PS8{=xp9;mf~L`zY&W`utE2IP!XP!`yz-uo4mx{ao@NY{t1c@%W^Q&#HF`7_RxoH zT<2YJpu{=RdA`%K@O_MyIJ*1z91dd4Z*p^c>kfQ8VVW&rnG_};W)n6v*e`${=QRr1 zXgy%LLUw*`2-{7#;Q}37$Y8_%d)+!VGr7|Irnf^=^11V%UvDn1@o)0Lb)MpF3>R_{ zW={d$G@^YjSBvGYvu#~y?Rkf)L>otf)CdKLWlr0`RLm1p>v z@_$0i$_tN1g@ZbTkr5RxtI#u!w**xL)ru)Ed>wL#BMuJt^Qo)f4*cf;zuo5CtFhZ{ z;2BLBAr_F6v(NC~Kn?sqrXO=k`hP_K|A8Nmkm^kCtR(dpQmG*z-PB)V>Z%>S6oiK8 z`W}wyV{(SwLH!oQfDMYOCJy~sM2^91S$ zEbdt6vL1PVY6Ly$qznBihwgg6)Y|V)4ZyFjip`_OG5&$U*4Dqpk3W?|Wa}n>YPg$- zL)-QEcM}u6S`w{)8n8|JQ#Rbzwf@u;Tz$6hGQ?knfAtvUT#MK%d_9$YMSV|fPgyqv z^}TUc+{@z;ap&TSxI5#TxaY=?7WedcR@`mzjpA-L=}(AXD&h6<-QteN?-sWZ-wW67 zZILJEH0}gF=P5s`!<$a@<$b{|0HSRze{$|DA1->dJg#;jT>fhr7uJeZf1F<}wjSkI zuV`(r?})!D#hn}fr?{ubzZ7>{9IR*cHpi3Vo)Fi>T_2w)?s$BvxCxohL~F@Zo@B}$ zkke5V|Lk(>(U`_PvWU^ z^tDR-@?#_s%X33cc}*(mQy)ZmGIx|dA{MoFry2I*^0DZ}zd$#^;+4#^MYVA|Co%gm zCS&=@>#*l7?{QZxK_Wv!1CRNAAIY5vV$RpLS)fdh`z97%uMkb~C6tr5alK0?8t8If zhj=h9x)xCBxCp9y_O)v3TVS^a=8g>3m$u6gU!KY08uhyogA*lnd>uot?_@o_Kog|L z&geRh`Rt*P2EH8ZC3eCLZg#?m*aNV{?R4FXsvD(1xstQf4&Mi|@kYO_ne^6N8k^jU zbnGs|BZIf?UZmzk9jQ4MmN6VBuriLv>@&zPx98!P9x~h|<5>D0@BliXfYqGMREe`4 zI?ArYu9lc(4?H5z2JT&SnXXO@`dOSn7(8H{DJox_J{VdV%r`cOBG+92(J(B2?h;OG zs5@UYG~#m{ppo{7Z~f4-xDHKQz?Sc9=mBh5E0J)Bg$Nwrn7||XVHP+W=V`j$5e{EZ zb!_sJqa4%mDUe~kAdo_;>p#+yup;K|FV(8%@{K0a1CShLvCzho8>O0;o5jOvu8n6` zcrL>|(DfvY>HG@Pc%=AWGyVt(HWY_suc0s`+x>@6xuj@Az=}{4Cuc4&@8!{p-iZrH z3ip%DfeSqX#K|va=GZbG)-B^<*)qlqifiV-RhqKDWrTVZ}b+9c3pxVh3EpX2a|ip(d`ANMQICGLXAs1$Ppin=+&@ zwzq-xA2isCy+zAhCs^K$xK8!Eq<3Wvv|?3fSA-e{{LXsJk|P*sV=`BE{&>+4i)A8J z)t@AzMIkqVDGTN=+u!<|haWb=np{GJ;$n6=L(HM1;03$jTs#N;bmn#DfgJ&&#mavP4##encdT?>#3@w=%}rB?(3hO4}!xto-B+vW%bj@jg<`hpLgIVyC zVlgwB0}>J*~m4@?6a8noI(#Et*h%-!g~|FyWkmk4LsZHkGFl?cg==HH1AOT zbQ4-Fp&1h@NN9rzjYz0$LaQW{Lns`kmj?l7C-|wGS=_NY4OeqCGD8_ z-+@3whrwcy1cJbuIvopQDEF=ne6L~Uavk?T8D~}81LG}x+;mWQQP0S(AXaTRmf};V z6RTI|n5I^?FG*U?czvLPZ;4{X8s8G-{0p-M@HnZ?2DL+TVulJ;JjJ2kz#(593xdYA zZ}9bJxU)C8aZP+9O0?U*KuC@2-V&MJ{yCs_`yt-$<3LM|%fRGphYmu5WUfO;-*bNp z@S}{vf|uc`WO zZwL|3tpSmD9iQFNvvuwS+G6EsE<8!JEvF*nNCembtwAo*mY>wa(@Wdy6hj-1PLXr% zU*p%5kB=84FfrSq11!H}Xs$yiO`5J5V}sbbgzb_A7YDOWhv>4dt}A zjAfPVEo{keCXBRwd@dtrqBi=%GECPs0aK+@5?K zx!K($J`EO3<ERj4ZMrn4$J7) zytQ-3Uf5Pzje;k|bZdYxOAzAi6kj?UKoOQt!ZF|wbI)$m=xbn>O!p3aowjss(KlGJ zI-c$w1wVzgZJT^_B_EAEe->{QZuarx&lR%&?e;@}U=q4uU{EiwTNk z*9V3_JGP$A>c?nciuJ1d57tLCZ6eBvYwpb9o9zSTL>PN<=)22=Qea(b6ABaxaK9K3 z+$WUDu)KMT<`k+;Cpfadepyl$2XaZ9mQMkq{3Y_KV8EBir-6562%qinuvsTBkijKW zMGA2IfNl{>iTOfMfM&oMi#MS^!JW-xVmxL`vop88wgz`L?|68NcRi9pEsJf8kLX&k z)(Z>Y0WevBIgKi^b)0ErhRQpz;BPrNBYX2Sij{B5Z~G8H6FB}^9f8tZi#Lfxujflx zm#6UJj&)rkQ`hdRnoU7{hU5Ki5v3Y1J*>#4jL`H(!hbCR@# zZ-5LZfjjnUtx|y5;_wngA1mZ_4dyf8{v7m+*=piv`*e}`DIg&jg*tl(oNUZ!ygXGm zzGZ`ky6@GEVTbK1q_1wA!3VBovn^kLPAbd9mQ%1HWRh&c)|>Hezy@0-`fp?%%#Pt2 zz*Q$;AF_(zeh<$F8AO{>h{m@}C5T!xV?9KH+2hOCZOkH#js8x|VRlK~N*Ds6Og@2b z%^odZ+By$4zYYIj_*z^45I=eYxdF9`4KP=#isef^&2M1u1!*0Q(gxfapxZx4q+1%>zwhLk@qeqBO(ADM(>8Z15Qg^=%{@z`|HXe!eEKc^o@ zhI^D4Bv9d9CNyooCJ9m%7!rUUo+f2{8_Evg{*(TzOwtk+`b(@Qx5<5;7~G|gIsE4=%`OGVKZP$%c5+vsdA_RHlai!C8p8lIoi z<7Rxlbdw;2#=yBjO~@5qjc1&$;eG&gaZSW2Z_Z+Sg%bl1#Qk5KpiRPh%9gi!^y1S@ zO9^V6og%EU%>*`rN*tY;p9%XBlxOg5^*55O!}vjbuYmBQEN~qpkseK@yF$?=%zQ6>3>@TpV9A;JoNN?h zLTEha8_&3LCk`e@Zq-Ctn>JBq@L5c@25ix~OS@4`XthN+FXYUQyUS*3=T=)df-fbS zF&1NHH!NeQPAvPZc)e|ejd(04pkbCp&P0aU`^P}OtaO!2PGj0ZI>5~Sh*2By{VGht9=!5m@ zmmJ<-#iz+c*h?KBq~mBJUd+JiJ%&iEr=;hseXuSj(vKtF$0Aex_{6m8O<=Q?xk1fX zz0%ME6VIGp!V01%d&>#x^o+I-)-A3d3b2~^X>gy3pG2f*w0*E;n3v3G(~0{qtG(M; zho_N7G|?1UuFoS)Zuw7{#U{CB2Fhs868eBFUuUuXV8G2RVF|oDOGw}{16_(+r=`nq zD|k6>17Cu>H*M9j`lqd>qs>xHrtU1Y8)lvLB~naoFm(~rteDN=AYw`9EtmlnvN(zj zyW>shLE@u4$~5R0b(unaNvb4-lv&w2b9#poA6>|mqj}6~3b`!5qv6qL!$HNT!;7tX z^aAQ7JS+wn)s+P8LLd(oq%=+wb1cp_t{;0;KK?9C3)xR|NV-h2Z~!ukk0DA~IAhr< zBC)X@u(oJjM%$syuD1Pi2##X<#j#~#rgaPK-9XN6V$|iuGc{5C=v;PvUyfbMp7Yk1 zBcr)-amtIjehyFJTJ%Fz{{ePe1ofI^lxV{6Xt%nEqYK#mIG*)q!#tl9t!)7vM~U(B zxV&o|$cuVltrtCr6QH{NE#qMms{I5Ik2OKjA$oI@=hAHJk3k>*lqej8{df&a{k=o~7z#dPgq5>qTxyui3$h!EF>d0ID~?9XS}P3-OLjVstg$k(=MLP>l4P zzRBhOquhY`DB50cz@T1hum=VMk#9reeEZlu#!2!jFYl+?xQ#!B)Pv5#v8d+|j%9#T zxe%{r;t_Ow#3&nXpf^+Za=0=HLo8EX_<@`%R>n@upd0jL6bC~nr1f*{-ihU+Uq413 zsWqpI@oaGP6QIb3lR&NKrkfSMV$07X8HvE2xQFK^n*V4!=9SxUJyI{8n20h4e;5&N z13G}NX7i$*EPdF!=~0-&H;gnsV9sX4TJlZPhQ|OI?#HcV!)L7Au;sv9!5xf(_3poy z=e^}DFFGQ>30xSPH@&kmgV_nY77pi92zMIk6ASCXe?s!<2mcPgM(SqH({ltAWj&m~ zYTBrfQ=xA7jU*o8{w|14^}m&H*RgL+kyaKD-i+#oF{DmPm-EJTo~yn4Q=& zh?AGvwXqiqso3dUBsUvznpAl+VHN6@cNTbKS@&AQ|7&dtpl_?#I7nVJb^;N zGu%6~7?)7D#CDZlUYg(WGH^kcpAdMV1jx;`Vu-VWw_Ofk3CAE+`(O_*UvDilh9J9~ zF33lcAn`g|_yPn1vvR0>MOieqT|RzyS6eBj#tvu9-<2FjaI`H-cA+>awIdyex0p?p%^r z4b8+9S}_us)xKRJc76&?lx*Cn0j{Z5Y5=_2E_K4)W8+C(K+dLiAhx{$ST)H+wQ1Ua zP3a)k`0L{eH_Lw_A_rkr@!(Z%a?96oW!dN2UYdDjgQ2@*sGlfJukj}7`_>0jYrXyP zTc0Z3kK!^>9qrLqUA?4a?XN;4ZSDk%ta+L^wws#XE5;()Sl}y1_n4oqu~zMHL1GOM3-ob4fwM z($c{tlyvFnZBXA=gqD+zj_=fV7cGPh$RqJxI5mD+NsXn_6~Y=%7Eq3#%|rW!qVx}IZ3$44B8Fo%7M`G3_J~& zU{D2*WYlfu%v`rVJ6_FxA!`cTZ-*Bj;^}R-Ho2oVX{K4L@QR?Gr+o~FDB-iEo>{V% zb$)XN2D=i3SNOwgJH|(ZM;k_=pET-2zmq+!wNUt2} zTq~5bq)VodE$xoWqq^ld_gn-+d9!Z{!(ucL0ONynI8PX zHes8N?b`?y%TnRPQX_=}Z>RA^7%Xh**#&OIrDvm+)ZQE(U)s`0W;nnpN2yPPbXHnJ zsbpPTJO?4?N0EkxULm8?ft|QV*qRu|E7cdtj9@1&eGj`AxiTl%Sa04K(A8ud!P!19GldI;Zr#s>x)12 zRXxb*NYT7WqhY-gp-Fo-V#*6o0SVC=@ER!WRovTLV?xZGiioa6Y7>SryK+KCM3?sx z5(l4h-Ukpa9^$eni6}1|!u>-iHsQ9Giq|-M!N^AX1VCCNmjFy>xwwYYCOb@G!;^Js zo@|Cd2x5)g9N@m=JNa$bEN?!(3cjIS&8dAeF@1)i9%vMm#?uBZEqnu% zAm1lE&Pm)ZkXB*PT)&nPFQD|PFSUL zgp<_BxY@52VKKW>XvkZmZ}INfiIp$&(n_mS}EnJ9a@PJX6!c%M-|2od8UZ86Mq z+b`$%Q|b%>QXYH|OC1(2*@hp649VwT)Z4_zD%4lTc{Yiy?07ZOE?Y~9aWlCmDxXo&sUbh3f^SY^LLI=X z7oy9C`1&?X=EIMG^7=;1-#2$@rU(==;qm0PUcX0G>v_B(i7&itod5$Ct?af>D0BH zr#=(-uAm+gYew!Sa_(a$^mxY0gP3aH;+z~8=2u~Q#J&TET_jmc+JU)>g zBU3ywUgALo>q@Ct_kO;)0x8RBkSpp0oF`EHU`3#V(&k7n#&Iofe$#upqP$}OlvPLYRDeF0+JBS+AELrCHx~CcQQ?>**Q8pf zIR|}&Zv%8On3;MyxiyYnnd8rZ*p2>NP#S_Jgl+b(@~UQmX0k zOcLH4pWpOu{kHr$sLux0r@aN~j{IFnwC4Z#yO0j<>z;u!_!mRQ%y*WsTf zOs2wq&x_A%PZ*vw4^Y1X4bi!<2%@!Se`7 zz|@!x-X#L>9pOb}ppCGD@&zucg9L?MrLdcE#6|SD!@wTgjM`aI$-WV;V28 zh1;NBYo9UCTR`!;;VFce7c2xYOF;a`K;`Hil6L{&e#tFqF-AN59uXgFDFDHzppgRH zk^c-_=u&wT3u8B5!iv8`EDjRtdN=j(>1tfGEmpBpW7^-j0MM_7T z(ap^ne67cmmwn_lfe`a-ygr2Mcx3oAzV7LbsyC;c_{bu@6NtNZ=r~x55TsBj3^5{Urzsr)c;EQISWCWJL&&>^}m?@kE{QW=>Men+n1o5L_9!)^sgrT{R)2) z;jqHEyZ2=J?}8ss``t}YcqvlCr2G;b2aozD?RgQxwX+fNM2UAZ+QMh_AmQVdCAol* zbP{b?zPrPIfk{5Tadr&)BbIW?cveIe8lESsUS^&a!&~7qh!31_51f$!2nSUszA~GL zwJ%}~JJsQL$*t>v6IOG)4f-U$m`Vj26Q6in7^dvui|i^~X`(J6l_L3~#n~N7+8uz8 zGT4SI?H_&`Wd~lW={)mbK-g^r2xGSqRuooPqTLpNzuN*{MK{ttX$Vgn0w<_Jombn% zPwVV{Jk@#?<)R--_0C!sjD(5l@b7X9UWl;@r%ONryY2}1~;2OVUj<=312|0`0^{y8V}aD z;fV3zo&1`Oyqt-NMtBWcu^HgTu;pR{5+C<1_%2@W8_twxrG=*pgIG%#EMTVqm_Llx zF$0eei7kzWPo)%atqM=P@SS#?eHhJ`2N&K3cz~n5SHi`k67PUxhhM`l4or_=8LjAT z?LaaxXL=Dx9P$Pzm6ClhWh8{f+WV>&3a{T0O{p;~h7UB_xsK{9OQot}K^uayE{TE1`o)0UqOjgUYFRJ4$qia5peMRLXkxkyP^8AIT1rlN8Sfc zHb=A3-@t7QX61~S6MYLIW5xa3V$ieV()Llg_aXHG5Nl(lZR2T)O_sCHIA8sYdGeg) zRN;hhKXA=b15Do|~6ZiEqW9%^XjK1x63{tDFu!cKA*-dkt?%KOLdo z7Y_J^i|YVc@$&~ArUi9OfCbXqfk8nf1);Q z*PXYT-F^x(;V^!i#zZ4P>yA+zvxuS1(G!iK`Z22=5sko${sNLwbXV)`xkgTr4ja#*B6gKZ^&_Nu-?q-G}w#&45W;= z22q?4p35&bJYCuAlC>tQbG%P32HA#}RmtsAr1VT#+vZevpe3ada0Nixr#33Wk!C-5 z&7kmFJOD_$kon@7xaE2#0Gu)+3B>~d&U(0bkI?DR<6sS6R~VXw__OG<>4gQHjC4Ae zAeAjvKEK)#zJ`*cmOj7Ep1?`om6lfXJV6N zqaCIvqO0gWb@?Yp1djOMXFLlM4*-uNV81hk7PdAHJ23VqPK06p3#@bRM>2`Vis}VO zR-Uch>0qaH+!>p1jcS(pjrsVQ%&-Q^h#77mKHyE{;pHTqeJHdXDjdUYee*dqu~dI!R?C?+|cwv zFck@UFylk4>zH*K*ZMMKbwOnHYD8`O7Y5ZJ^Bf-EV!k>S_WLp69T7(4It0U76Z`ii zC^MN++(v)+E&i&x=GHHO!SNz+1xrX`)n)3(!7LzTP>tMd&vwJx4Suu^x$F2In~MFv z!XUvc06`hFfs6)8^KJbr9*e1Q9a96=31><%GT5l)<~Jqp+g@(%`at3@SoeIqH|{?h z47ic}D0iqZ@%bGpScG=d(NA{mp%-8Ax`r;alvyNIMRv=LfOe?+@rhh%QM-EAeCJsN z$U`e!rTZ&XZLt`{zeG!GU-9&-ALbkMyR6_UY(YW@IqtvkcTbZWvi0mr$c9T(_~?_C zQmDF*H|;91(#W*}?77I_?~rf!;0*bu_r)+C{I1J$`gqbUo$HW}_5VXo+^(D~Zw2am zw!!~rImz_#1Pd;SBrm6Mxtx%1FhaF|rFy~P^P-0bDq~zT*^0b3v2TXAKn|KdUmXna zxxX=ivF5|q(=W!3szZG`dYv6!fe3y><9l%HNJ4c7OuJatEA2M)yNgfoq)d>7wV+AY zJtP)i&I;d!Oir|pYMphw2(-zXsD7ZyR7OlOZn{deHbg6XA8Oju*G4e+7u&r(kn&2ZC$P zc^?>WB}PoPFmU^_FM&11a`XYVYPdnD;@L3UdJcHOKfC>SHt`Kk;~Klo@u4wcw;xM) zwYm{jak!!Ez)yu%X#gU{xeR8bO%qD_l*c z5c1)5lzPn+z7%}Z@7^%GEREVXONyJxi4a1JB}GZRi+0ve$bGf5Mg~Q&z>L~eKe)FC> zzgr$Ys}g<~HFU7LjIkYSRam_{0f_tv7BTlQ${nm_pfUNY=kFf96vt-8fi*kno0M(G zU4Q{`SahNzHZH|;oS|jmnMcYh_2>RZUpzq>#F+~ z=qKP8XiB$_qwPZ|+6S$*ynUADllD1EKGL>7RUYqi3vJgWv|+azx{S0PHZ80+<$RLX zm3`1Yyh*#OjV%|q?C{g%0_IBT+$wKpFQw}g2TxxKX^@R>vxk^~dH7nIM5N*KeMmoK zw`oYipq#-)aM3wUeCMl27NdlmBCy|NP-1}MHmlvOOxO&M@LGW*dOS}iCbu@4?-;S9F;7Q!>Oe>#te=S z)7~Bm>GOwA`+wPc4=_oqD*ykTx2oO>9j4!|?y3$mT|F>86kQ#wQJMi}1{8BzF?0{& z3^Rx@D1|+)?ow9M7}o$Y(1t}AF~?QcoO6zVSz$y}%z52)4eItZ;?E3tk ze?R@!&FS28&pr3tbMHkWbWmJo9j{^VXJEGWHwy~&w|wbudhyWyJ~*BA_n$~7nzGnZ z-dIdi7UHUnt?u95asRrpxGHTtZuhpPb>mh#1*_stM(}DKFsz{+IF4MV;B&FnS7L&e zxg&7!kuUI})rZ38;B*F`J4h#<_konR)GTidrDClhBi$Xh&<78nLB(@Uguz{h<3KD} zJ(V0tr^~N{p|~-gQyh=f>y4cvmXU*w(&N3EfyO>&viv+OO%Hguz&j3ViRmYKo)crgsIYJa?w5u^ zap7ub>05Y%v-B^#(^&=0Wy$Xr@%Ba+0%4v*d*5(2%H{8%PtC z!#)(sJTC=Ayj@nz)Go)SS2q`ij%W1^fYF3a_ho8t!QTYQIQuiTx61i!Rw6hDGWHgE z9BMVm)LugjCoG5fno7$($kF+mUJEi1Nu_La+NbD5`8ukZMBwk2m$BK7H}`0Kn~cz< zWw*Bw#c?EPyd41c(!$Me(cVdCcdAvQ=;Ca?QjIlo+9{uoSjq#d9 zfLaxcF>rD^cQ+35H!WCig4yAg^-rnX@(=mtQK1LjHx=;KpZd4JrPW*tLv>2qq@L*P z!`?R3W9Cb_J>@A72c0++04Mo~Af!TTEVoHVnAmt`an9Cl7$6)?7CS0^iaIgK9y=;Z zrD4qNneECs%ROM6FP(a8_Jn-^5!xpp3~(-1^0iXer8^nF+^ZO!Mvrt_8SUk1s?d-` z)5$gMJt8iZIw0`7g~W&nJh@<2u}baeAGxtrx+Du6Xzxk11K7^f%s! z|5H}_FKT{UQ2JVYx|p|IN?i^L>7nS(*j}qVH*1`$He}+CuA}HB61#zGA>xgIw^@?r=QVn7NKY&=zaXk+ zOFv$7{SyDD;$O(^odNXim4~Kl&nAW+T}2Mt~o70#{rct#^urMi(R12-6)& zyPXlgm_tgeIiaU^9Qkr{F4FX1q;33Kt-tzePoe+(y0C~776Jsq;9W2~RQuheb;fHjbp+o+b z#ztF3G^CY|mVYX=6&-p6KtjkD_8FW&XiX#+P4E}uBoX#QRN)PPT0H3;=f;zT_5)=1?`ov&KcVUv=~9{i@bYThu=yqz=&SXMgHA z)o#|?_=tE%W z%ME{$SQ-1>K3Dz}HRhZblW-`BnDjg&T)_v@_Xl0=@tFOIDFaGZ7G z$1OK;{$pJc1O7}U)tca@7r`_llYiBrao!WhX(7Kh|5qt)!4-GCiZeby*MFR?3NznJ zWG!L++c8n%2`GpA6CT3VQr4TiUr{W7gfQ+&QyXiDsF*~~QkJuhzt0vdLga})(1&RM zST|Zfug8+lb?59l-krL_itfpczYJ8!LO3IRZkKQ@b<=wpJgyXXuwA$Nj32IGe zd8z}rs=+G69M(3!tcl7^0p)e@$Y}kQ+RGo6XR#qwh=}0;8FwP#c1Jj+p5Qv?gkw~& z$)m?9>jY-&s2(-gdzc%wmin!;Xxh#gdsHOYJ~I+*-&66NU^{|gTV*tCGZ>2Lvlnz+ zt5~|39+|QZ1NZJIF%2@G12S!dwjteSVcVngOhO~K#ezUv4m%T4{umML)PxRKx^R0Z z^_SK^iih_}s#dAPKmjbtO`>K4=mh{Y%G|~3bg{UZInGbK;fdtn<{P&l$drGr0vw(e zZA1A0`|H2K^G1!GQ_co@UCZw*%a zW7*^Bvqe2VgYZ`H#CD#-k4{ja1}S_+MnDPdxfnQq+)5dtE9?>aNJy|TpO++-_qvdVVfdOxW=H0d_-)NC4??61prBL?* z@{DOS4X+$noowHg$Szg+KLp;MhAJRopkOAbh_g(v!_=4 zQ&F0`5(fclp$y&x>>`@0=v)^h+@7EjU!V7Q&1r|5XqRX^dw|}h;6QS`Cps6@p6K!y zj@gRJ_L|C3PI(aMaljrO?g|SxcRMZ$(@&zMU4C+XHL){w)^JM51AF2PE{Vj?3%&a zks4c@wJjyYz-xd3_ja+8bYx*&XNn`}2szvV74F87-RVJdXpbAz3Qi?`Q#@C{X7yYh z9bbvY&%b+Tw6C$Dt9AYaI5DsBQ#%Jx@Wzu2ZF)kmIioh_`=h)*VwVZKgI3oerKQJm+h4vDf)+qH*z5^xT5B-xdf@QTei z$#UW_k))?4{sGjD^NA=+e@t0g1Ybez08?8;WxlnV%D6G>dmY|Lv{$RVw;VR_fy3pU ztbJ=G^8*KE?r2ztw`pdDhOOl7+V(%KxXZiK8)?a#u^qu=Ro;iKc*+U=9PK@*;&I-a zj$5hsDTmK{-Qj@3=&s$e0+t&O0!xIOogN~+9N9K;=W_aU@5$=$AXz&KQ^!c!F+niV z(gj84FQTRCh?c@Ph)MesMD$e*)jx-bBF*kp(MC++MU*w=i|^h=*@$`IEA1G;r8_l$ zaG+;1sN0@FeeffqAErm_csE9_20SNcWBEfa8=smE3RB;2RWN8}vMJA`3ca38Y@*!aqK-=Mye+tEY^Wi{^&w}BbPHC z9d5M47xky&nXGLf?Fs;DECzV4Co-DKs>Mwcq<65x*{BRBpn zq{Sn*71q@0_aK{-fF3_?$0@pb7glk zN&Zw?C5mr(C2J?fH6LH!jPtK4b(V#k5yu45s*!6Xz13ss>6oXhhxSI68dA*M*rPJ; zeQ91@{SxWbkBa5GZ&PKwdz0(FwV80O6Zm&=*k^6nRqmiRlypCG3A>^`-Q@c8)AZ@4 z)qU#Xt-=_Va5OM%FEeU$3->S5SZe}IU~b_=f=thT;bpO{{Bruobn9I}+ufolb|x}^ zO!qMh6})W!#>JSAV{A&+?$QL_MA)|Q2|}FT!iKxUc8Z75fQ?CoS-c%x?a{8aloeXEDv&plkTdkcG|-N%icmn zKid{wO>!5Hpk9J{T@dgR&E5P_w|7`>9iqhSAZACLiS>29kGn}S#Y^Fl*5t>+u|nAQ z(r~PHI+^7A!+usWZ=k5XFwux?+&p)Wu)oHZPfpJW+Xs5X@qbJz|A}yd3QR;5=&#KwmwA3pNYd9~`(9)Rx%^-_81~uu>2Pr2w`yoR z-q4J-3%H74yTW zzz>C`LRgB#s`=q?SaL9leB?h|+d#5#c>HS=G(6d7COYWU5zH!PC#L@7 z|5<*dn-L(hX!U_hRNia#<#@3{y0pMyV~hxZ!%Tl2XBzhek{*Fo_+ z5s(~Be$$v*Tj@{vzYzCjn42=I{deMj6aFXTZwtC8{`t58g!jsW{GWo~G=6Vw@yE-% z0XM9p_f1T##hCu6q38WKZvMSB1h)Er8qWvf-;X~aviPc};(nMPg`bXHf4ZlSMYe}V z0DNi7!H-?^XImM~8JNcI&!t3{wxkemlClZE1T(M-{K}J(REVSiiTS zFyts43QiuR!O-A(J?X3}MrD%6^yD^$hQ=C&_;nc#F6m49eHIJZ^+=Q;irq_t$3NZnU+hMQwsCY@JWFyk*KP>0A3zKh+SSzwZJu`>&wS+TCaU+miuFX>{#g>x^si=AC~Azr}LcdQ-STP|2j!lX4tTaGJ@2~$?@Fxg`@isK+!UifL8 zWf)kVVG`}0C9R&Cy6j-W^W@gaF0^02s+ zT&i!P80KtGWU>=ohYO}qe&EVdpF2kLZ9Ocz+D`ZujZKZ;wYc|O)rfm_YittaYH0lA zRu-ygRE$3Wmce#X7W@asR#Yj1FqbTsR9vTAsW7MO0Lnx1Y3B;$y{x}3J1=bKN<8tb1QJ|z^w&af-G-nNSu*$(4hI_Yq}q*ClI-i|v=8b9nLXXeulz`oLb*m`Z_ z24iAe2;8pEhXZiHVVOCODz%5*eeOB6?!LJr`}<)#aic;HMw|kst zp!&lK_iII&k^+e6?%@?5T{~TYFP}?*-N2BNeQ-ZC_7e&0M+X zLfP8Q$8qVp`vOmQF?nlDZhMa}Bwy{_yoI>w?H`)0f4E%nJWQtYZRSZo>RAW%tw;*UeFI8uC!Ekw1)ZZMe+P*7Cf$wJ`vu*h8xB*td{A9jfaX*cmT9Gjn7en5D zT^X%h_!T*8cLPxk*O85QSJP)MH}=kzM_XmgCFEuIxWF3vmbxQWxuTFLBR#aMEf|{5 z1w)h9`Dv;d%qLXGT{~S(g2bHFWptB2lqlZ~BCfNqN$(WO)E~ah{4H1>T~UFt$IwA; z*M659*YXsie6_cwH4q~Zx%WLN%P()^w=i9afY@vajTBIV!?Z|Sk&AskT>ibSwr2I@$O)ITDSx%1AC2$YOh`XTI_8=H9!9+!}AT`1f%c ztG-*wHD|C_R<)n%pj=c$q47q=?rppYV_2+yj)}FdEb5=&CxE0B=SOmd$sY*=RJzQM z$rRIQ7Cb&4dzfXDUsrw{{I@w)`}(Xu=zID4byc>?tC59VGKC^|LT?p!`TNQbrpnO0 zX&b)D^kgzqocK0DJcca~fu@(Y4-yVYBXzX^Ofh5BuPZz;b37>I0!G>_C_Q`| zSxm1-m+ExN$*qP!Fzy#e`*_DP4wjnDDj4y$X3+u56Ht-{$He!?lzZ zjce;zV*J>Jufq|#8-<*&?cye$b25~_%<7*d%HB6%pdh3c+`#39)(Z!4aGBN@F% zqL%3`8ucffNbNgxDHmKp(OI`8Xs0-&Jl`l^<+Lo1Rb;OAp^Dbel?CUK4f@TyFY-R4 z)jP{m3QE%-1#StG1G;{7r6$ZKS09=p8w`>z8?2iPle}4i%gSu+dwULmnrWZyeN<3? zu1y6V4lP>$Y>J_8IMb_VipmeC-~75zzcgLD`-yp+V^gc+^j1d{&4I9XBk(KV zznP<7z904)kc`UXrHyw{tlMUheyO7U7<6w}9_*0Z{y%><<950v+t5atZL<8{j1k>nq zcY-`4kJB%H6YkOZvu?OV9(q`PpCe+$tFt7#%_VCJfZq>q1Dbs;YlWW)RfBEt5m9YMbcfGB!pBvfdN4Pm{@)x>14aHe*b8k1cizNl>c4zX`%GL4xXp0*lZ`E&x8MDm6 zyL6BblH9^IJljk@K<*cMW>Jz{rArl}7VFXIwUy%tSWAF|0*jzz*g3Q-?3#P-V+?Nk zEzVscBkW>nM%?^bc7QU|A1~%ZcDRyZ*b-IF;{0-yAS7}ahQlQGroT)d#l=u`cV!Dj zvoebP5b;Na=T{X@8zx-&6JhuMFi$1A$(NmmFjIZ6C30=${^HhLUtJ&SOw{gnd(AP-t;~ zSfF`@uwd<(ehyi0`zNHvh5Wi%@X1Su>z4ED3;ChS1>t&H%hI((Zlz@jd>7vbM(wcQ ziF@OGznu9E3NOwrJ0~?gDm*IOz^fTSxFI~MuY3lBC^X%zw-Z0iPOm|iG%Q8g?c5&@ zQKO-7$kphXh5XT#feib~$?#|@us+Use|R+Ujt-A@@oplV3Pz=}&5YBU9Mx)sTdjj| z<8mI|nQ&8#2A$ck^YZaBV=(Mo4mXVj;U-vOUfA4^M+>IKNV$Km5l^T!tQqYST6${Y=k4M$JVW`TpLRJ+bA6xxM zxDNZes5V=A*`)E#r zrU}?Wl~_MPmEbgb6|bcl$n|+*Ab%w^?aFO;i}GoyQ@aZ<&M5}J+rB6IMjkDdguhZA zeHMq`ZO@3}tkinubRzUy1b$~G!~B5i8U|GalZXVc_QnIleXy|#!%&z>5k)azmh89YnbbZoho;taWz%~o%z z$~P0GY)(Kbv+3B1PDG#jo6O~>?Uvx8BDX8RPO z>6qR)`@28fQM*q5Cczp8o%>_HBQ=GH*YOu8y;6zOV_fo@n&Qw~n3>9B-SP~)(?n@2 zoU{|Gj>T!XnhH0Oj1Cxm+ejmG!tKOdSEADACziReSnHiNesX!g@0LEn{zR(!U0u{x z?Mx)6GJbMO`jNbClt@-_RU;R9iC^2vzZChA|J%v_@WWsJ5&{VNy{8Bw<;kqHXP z{pmt#f2Pox++XCVazBX?KrQEC5cy5>7RNG@Kg81WiytComFh2k7z-!C63~1pd(S~v zPq-PZ85N_2!V^bhgXJ)*ft?N0O&hW2io4BO-cB0V>pb1ZWx24R?U)^yot3*QU7JOW zFe5iF)@yuN-uW(mff4#oVaM`*e&px~yY}-A&)UM|gW)0x)XlroZ+CgMACwoIneu`n zcJn&|$!urtRbHKPz-B40uz;wqU4bqy{Z6?m(8#z7?MmkI2=n_Z|AIWeV{$z(41@i^ zFibOhr^4)h@#z5go%9k~8^Jueb<9IHWK>e-mG1#?c=XJpzA+Dk0B`3!8MZ5;3?j-a z-%I(}dYNs)UKf>wb7VzzdlZMr1m=5JD$-*W$wU>AKf~9m2nV;Sk_zi>seGJN4&=TvXffO-#!ERddNu>kh4o1j6e{%S8w z{yfaGAV6phXgkO!UK0GQVC;V(-!=Oi^+g(d4ZD^j8nh3tJyY11?=G+<)hB8PN$&=v z83-BkAV%18HTcs#a|;o}?yJN6IA}+_wX>}5c=xX`y@1;gwzy-w0xUZh2U)6I6Lu1- zGYrht!k_T-A|A5S|4S z7C%6kB;g=>vM~8mt~Vb6nYb)Mb+Yqc)tSh_-SJ-a=*aOVs;N^`7Hub6QPsq{N^Y={ z9;hVyD{J~VTok6#b8g<*`{!8IqiA};*0%IsiXndcZgd1)8>3<0 z$@-0I5tq<+bG~dYkzF23@xxZ^(60TFtmM`rt$hH=k(s1SW)c(%%y9+gxYBLRaXcoa zE!_R80Rjrzn#P{b(B@^1uytYb&pfqXzxfOY&X#GWe3q-XU=b|`$poy_^jl|ZOngCc zIgdsGnUM;Kr~uqn%(u(G1Cq4MrlVl$u2Ah@vOsoBQOnAQdflA8WF zZ@iR?$To%~+ZfuNFQWZe+&z~s;+AxyDUL{0S+X z>R%9k2KDPOkcruRhfM6#I3*Jk`O#KcK}zXC@hWK>^f7qCp#LhdK?7HTC&A!Vd8E4< zyGXEXu9`*n%uD3ED#LK1AamGt722{iKF~zOq(>u1n6eOeb;;IMnEZ;R%+C&xGR!Xy zLFrf-Y7#7iu(^Cs!l>W2JlMPLQpvbjQsvPQ{RAy!LM&W~u&1}sLZBfHu@EbgarG8k zgENN&_q7IR4+-vX4bB}BJkT19CTK+VmM1KA7?Vq~p zM5I};ee174lvN6cCNp6PdDD8NA?uZJePQyJOt`M4v9a_=6aG37+n5R@V^<*r%jY*B z0)l9V8?HP|k_}W~19GpP>2HenW8g#+*4D3s+vqP=*3*ciu1fPc$#k;RQ{Ks(6COo$ zL}!WWfmjZ@SOTZEo}=Yer_Hq>k%x>MUQlxoW8wykwnTd+mCj^txH_6if6c3-cXvY~ zyALrnyp|LsP?t4&%qm~=3!eOjX=dUuHS=A)_jYwq{|p&2SZ+WrKG%^=R^LgvyvIwq zuWgoFzg~q$a&-+jo$0<`X;>N?=?pJ>Fam)Q({9vJHt8j&S)4%}(%H#Gn1(0`_5ort zcmqSD1_bQ_vTgB+BCQWspX+wAB=x}vdn~Yq>eyE>NSEw9UXb<9DhK>qAQo>@0s8IbW8LOk1yI{c7sO7OWCq|PnJ^cmi zNS1Uo1oR1$)yohixNht7>k@KW62JTikjO7TlHXBg1?|al8qu?NK>it1Qm51Kysn*h z1U7Mh)n3p0?fJv-^>>Tg*8OOnc)0Q#IIN#sjwm&6GcmOdy) z&yr*crQDJv3Zixx|nuUMqAh%>Ot>F^NM1?~?*EF=Z*6RM+irX5i-8R>_zByMtG02h6cIP8rd9{z& zW`9_FZ7zm3>zvL&!YK)G__a9a_R$=Ww2kKnF192_eqXTt(ub;sH_PQ4Z`07`o&$x! zyNqUerJ;e)>Y0|O_@hHSHB8XT;PKeU2=-7aN>hFqhkB#?g+t!FgzEf6!KU?QU`~iWspFtYvaN-&2%mf zzAmoz-}hQBJX}o49RK(parZt>8IxR#(`>@DsF>)|!DO3XTOdp;#~-AV^RABDsN)-r zUi^_f>S=Ik$xD#8m8a8>aE;M^%D{rZG0Yiy~*+t zkfadvUCiR1xrR(0Ean$Yb2Q>@uU|uXE#Cm&QG6m{ci{u2yvp5rM;G${5I3jA%EKZ6 zxH7@12AP{y1wB_@c}{7{Pp?(AhUK)@&nmaaqjC&l<$r^ ze$$9^6UVq~_au{e7Ww21_7N^@ZMMComEg#Z75~zyh4PbtlwaCjj4bE&Ig2Y^=#mRc z)74Z^I$^rF@LbXc*FQ%iuKaky9Ip96X==Xled_3!8_KTyEPm-t?UkuR|Gil+L%>{+ znAo`RYw~jAAz}C&J?<*3Myte-SO}rE{T%bn%A@=gGUg5o8C*3Wg9o@}aM^?mbUmC& zg^M#I>C(c?aHe$H%wV=OJA+1c=|M9vCc~GLA&;k&FDA(-?VA})mrj`}WJ>chyi&Yr zMz`3VKEv!(nxCk!nJ2_us6AL0f?2mzsHD4KO{amhc#0t5m!C?Ojb8{BD1}^tgQs#D zKakr76)&s#b%AQ{K1I|x^UME&)vt@bI6WsvUEKI&I@5s#C9??9`e^*h^0QLvvQLy3 z-e$Fvmt6wqo4;A@61ZHmhV@?)r?|^Evs5~JXG0#0RWmHvS?1;Dwtr}r@0#{YMRpM3 zc)8WTZhn@&SrK_f6;Zy2Rz!WPGaND@B=9SOEV}q5zb-mDj_$j#|A3x{w_s`=tad;mg`|24RtRpp~`1ne*NfGk!@&KWZ8K* zo69fdX(tQ5E$lS@6ix0*cPevbFq26->b>9C($1jzL*~O=(3zUPagil-5q z!vaKts8LLWM92k@#)R4VIiv-gCihu~vsRFBYL_-<;OgM{spxf`DzdH8p9tH0Dbg$# z=Zd>QZO!xs5aF%Xhw5-Sq`re@4jknu1xR*cZYT1LHPW~$7P{^2$3AvHk>d4JhYkKGMvGe<3 zFVdzSj_bU)BwdWc7ujSAn+#5qSGbJ$%2^XYFp> zs-a!iuV}#in>4`rm2$>%I@-K_ZhBRW^3$!nkn)(AMZFz=+HUB^^BCzYTv1SOBSLd5 zPW}jdwKWud#VY{98<2uW!^_VkJ87SZ+DQ9M#3rBZMOf?lvAI$N_XU8k4dI)EiLA)* z1P)m{9TXT&Z1f<8XXD8BaVAh|S=27gwl^}Sdh=bVO+-O6S@w-Xwp$qZQJirRU_6Vv zv~wYBsE5UQ_Z}(lV)b+E)R6^Jr(G(9talf8>?CWQ zVDDa@dIcl1hhf{jjJ8Qy@X3d>Z$rcz)WsVkCEAxSxNeWM!*;aDw-}^zPA-V_xZbNC zW51A%h7iisrM(IyqPHT`-YUAca9$H5qiC6GTZ<>;iIJZ#y5d{~n)1b#QX@fJTwpUI z>XfCfsddT)DI#L+KK@OJ2s!C1O#KYMLb|B%^2?dt5N<&W?=)QKU)^75jSAYp8a$RRdzV>rF66T3E%K&Ol( zKsAg+1eFJA$+fy!AcUF~FnrQGVL?+2pVaE%lTx$X=!4@!%94svoSm&qc6sVG?DR#| z4y@XavZSvH*&h()Nne$vy)mBx1L~nE0FR~lnRfx5r43Rh7!>DfS3ud?3%SZ@+K6GW zT&Q-%Ru?IztjMTx7a2QaTQbw1PuIIBkR7pNu2OIgHseK75qmD%j%r}^cKQ}#Y>HyE zV1DG&)OK~5i@BV>fhzq&6i$`8V{2UR>8XXMG5p*TBo4GyiHota;O@veh4+@sUqy9} zUMW0Iewc<@UB1i-AOjcNOf}z{zf z>>bnZmV?#)&!>sT=eM+b>ViM7(SfVNk=lOPs;xU*)dnL`(;+oB&br%StLt-eS7eYw zMl;*h{Su9wxGdqslPJgGL<_t-k1$kDU>7Fm_#ccl&Xi$8oPS5 zw0YXK5V@(t^;RTb-C%#c0eci*4UTw>#0_?1UuRwZD8TX;iGNMpt7Tc_-svHH6*JT- zyVhc))veV}bQsL2j}zdEv>zgT)s%RMr)Hu;A%$G`EUNV(`~3NnfZ`UD9Uyz>>B<`-ZQ5Plsnb{26mg+G1c!L&s8v ze~=&}Z3FQ5ojc1{D8Eo-ev|`kku?rUx)AX($nTsCs=vX7v~;D!-pNH(v6@NRnZW7k zh2Jp$IDwvp*qmu$E3+r>nxFp=gfEXKy&lj#M!D7X8{fNnF~JM(Sc&68_imw*4Q^|e zl>Jy4eqFBQUL8ejptPOzQ;m%>3XM%N$}dv0sJGrO*oX-TnZH!j*q}3!BVI!!zpiw# zxJfczi&StW)aD2emj%tl8rB>jFh|B21aq?&*Ni zMxUPJijK;zokGYazb;7D9wMl?#F7O$7fU`Nay#ng$jvm$_Bjr~9YVV#P>~n1#Y_gUvt2eccC?AcZ^lbuLSdIui}S8$!C^wb7gdeatj}0utlz-vkRXIEB-Bzr3m$kofe;I!>qI4hSR@d*5iIPHHlkcn8$;SO;q#E~< zQE1#-Myad(7PY?o4z*Tu!WFd1_~^a=h%mabRk56Pn^~VA-&3$I-i04MJ(=6idED}w z$-s8tHH{qO*A;~|m&)Axdctb|L`=V~OwzS~#%>c#Q2nxB*n5%kJdF^xF1aRI#;h|= zaK>f~b@W|jy2s1EEh2pBnifKBfhMni6m58q`sKEK{Unk=O^c0_l~v@y)$zCG8w%39 z0SXz@LQxR26{9R|NY39z#Z9;`59oyei9)L&IL>Xv_Z0q7mb?34ip>9Dox z#v>Za#L<7%v9>L$(h=$ZEeFwmbx=hAmBAg*e-+iF|K^D4zd2(1Z;qJ$nc6W#@XdejPC=MT9vAjtEgk#r-yVh?`A}uoWAJJrrILWe*JjW z4T<`{t80o4ISc6A`h~!Hvyki6Id6vsG({E`*pqHl)Sd(?jHipa*~>tk$ghDPX-4WA z4=}(sENpCXI9<4d&=LuZyc<=1P-uEBg(r9$M{|UB{jw92{%wKqYwscnIR1RG3Tj*U zFL5w$0ADVO5KkAiaNRnu8YFEPqAxR#rg6Z2dg0{b(FUX*_n?pro8>a?y)Rf=@BORr zyx0)NC&m-JQRmk+tZPe@xT%*rgtB(jJJVZ9nL>D5FEK=7(&bBta>9%0=-A8P!8sBa zp(aSQABbFKG{zXs9aBTxFYjcX=-@KiJXULEOz$F;3g^oB! zKeO!K*eI3scAs%R(ZLMB%YFqyx;@&6;y7|4jGqFM2Hn(0D9GJ_!I4M}jmV9$mELr! zM{fLx1=2V&7RU(uh`FFCMgI3xPU*RZncUh-R=$H;LqN;+8X`IT%hok1I&$4R z!xN1aznA^VlkSOpIWY!pGx}T?dET~Oeq88bz0cbZ>*yJ78eI42_#UcPc%5%?x&Yc! zWuo^!0Nx}Xe_tZU|)c zjiXr)KUt`FU;<`Jb2K{!E?GQNWc_qRG{BFfOUa89(0DG#@p-v--HDp=Wq+WT-xb@R z?)ARNwM`tsg-`S*QY2}zO%c&*Wt)szo5n`O5kc~7P^~!CLx*RgC|@u<9dkr5@E zVt*_j^u)V2VN&M)2H)3I4&Ph(3Vdi3c)Lk+196^<{nf;|8FL0V8=~Iz*tt4aI<_7M zL%f#}zMJn|GI7HkdMNLCZ^T3@=ne9r&f;A{{A2KcApWXXjZgBnpYiFg8VIoWdi)+s zoX24*|EFM{hY4@$?ZBSldpY4>#k`UDZ^L{ICWO~}26naUB0ja3mA?0G%!d;H9oV_? z&U+v31a=gPJl4nF2l!rqeGlI^2wT8JkmEfV|Fiin;oE@Ujih}kA9qN5U*iKo?12|V zZe9uZO9*=ee(%SQ{J`!d)jZ4iFqq8Y#~u0}bB6a2?E5hpZgjop!Ss2r#YCX)q0Qv= zVD2L9So~gwxeNDI*k3`|tFb?nPi1fx$NLW9>cem1hwQ;iV+s!ad~e`Wxi{ngW&H1s z>61q7WsdRSNWD#bcg0=i`#gR+75GN%gM3Ug9+R8*Ilg7S|0FM#lim~gK7;*k#NC6b z`l24`JsxI!z$cx|jri@v{8!R_3P1Q+?>U&S#QZeh2k_s* zcNU*;_gca(Bz}nfY1oD9NAo?B@Mq&MJrKcYH|BBpKZoxu;w3S!!mpb!#<8_c~&MNAG=dN2{*Ik+|ERX@oYzl|x}dmo?h?;1X}{poyf$9_KX zZzkQbeBZ~-dd~Yib{0{FM?b+&_l~LGf6Vt}zPIDncvQRQNI!!8M!xS5c02CpVou#QtT>XJS5%FqQQg;-U2AeHZt?V?PbMaJ3!#e(b-%{~SKi7sVCb z5H9|TZxi9a#YC^iyOK{V%Cq?1h~InpSoe7QF)!!a#dizezYwl88fU^i_1O)Wr{KR0 z`+0ooE9BtbBL1(!{%gv7CvNp;4ZjcLW`W`@@riD#p0oG~Z&mI`_@uk}Dbjq1Z$053 z!Cl0hAPgSV@;#O?(W-~@&EoedrQ^FAf6=0cVLlR5{q-0=m{QYMej?_VaEneo1^X27 z?#(CsIZOVSKgS;>DsMC2SIL{Tp^eRJu|J168lR$X8slHW?`GwVc>uT4PxA@?eEDO4 zE9S|BKN!D;<@jm;;Bka&tZDrJ3_sE36Zu4s3z)=C_&(03{FeyZ%6ByG6yfcdpT`{GyPi*dBX~a#e~q2%_`bz=1@1>-K9f)M<%fJ9 zBA$nP6ZV~aqI;^t5TEMtMcjRSAL2te?Y)UO{n($1`3+3r)gJsWz*N5Se?0c%F>k

    )=C`L|S2-^r-ZOBwW2X4(_$f?yaW?+KulM5*+w1)n{}*C^6ZQ}B2?sQuv-p1o zca`sI{M7#{=Kx_!|1sRR5$92S8ut&zpX2A&SFgrgB+doH9=}eueBF2A#pRNigi*Ck}XSr-*-+j&(P%HD;m!4(8sr9DlMow!QwEX`W-|dZt zQq-Y~Nw|5Y*kt)B@R7)sAQ{Q>f5W;qo~|h6pNpL?G@d0#p#d;uFjpXhT7;F+p_N<% zdXVJmU>EpIXE4qwU9xuHcqxNf-N02>D;nofTi-kum$5d^H@5+?t_DRBevYqYTxI_En!kMK%HpcBi?KMKuZfwim9ky=Cj3 z>JM2K5TrV!6=Z@P135wM3R3AA1(}ZEqTpWrq04L$zKPx{UgNHpxfWNp@nU}E&LN(f{)ZJf?zPy7m@ob(DN*Ehl3v|PbysdKNHy_6`Ku~QKj zuWJUi9KI_?$L(C$BK#cfI7~PfFLB;v3hA!8bMf*c#siKPW8aZt(C|!KcD#M1(UtB@ zb|$mV08j}WR1CwCTh_Rv&A>Zle6o#8hdXXG)b~(M`Ff2zhlGAzW1z*mZeyT!G4#i9 zuQ;DWN7GgEY!U~T8)U~bC~@S1{>kqm=MW0^Q-$q=bAxjOb9081+N=?M5U*hMNZ4N9 z{9u{cFYp=Mku5baKVW{0n)Ou6;L%c4zXe(gQ`K(~LE|ccRui*i+zg#)lGDmec#=W< zDck{DzIBJ#^1c{b`lNoLT9v;-5z$$?@gG(GIWu+_5G8*|FhVFpjh0l1iTdaJtR+!U~ufrU(Cvc4;RG?{ zT(XRn(ow~8ox*|1pOvOJqBYrNiA~4y>BUEzYrf6r-QS1^LURqiBy|XAAc>O%i|4u|?2<%D7%^(i z)~ZC(hPG+Q`WU~h^p2+1H~WUinUI@TOFRyB) z>}pq-=ERJlQPk=~Yqz>l4tAos9}(>+-z2)^nA6l4w`#ZM)vVSbB(@1WM_pH?YStim zPLt3?mE&B5bxAgPj=|fnKM4r)rX+HOVDxuP*BZ@*$wV*jc$GGjI8vhxP#rx8oXb_Sl-4aF($7H3^WEIG$hJjB42$>umg zi(lxQBQXk|i&q|UxVi=01Z^?KxI0!c)745;x%9kSnxvytWfr)UqsrDG#UPku989c|+ z&8?p^!m5=-EHy?8H3A$> zNqN5l9yTuO4U4bNo_C$gS^RO>eD&FQPlPfwU8~rR**4)_?@X2x1s$`u33npYQLu|N z7j^E<7Am}V{%#Dg_*K-H(|UF@c)nrw7!?(1-XYaUG(en}Er@Laol}o!L2cJJM0^;S zYFKj1!BLa=CWK zaIqnkt$mPzE6!3*RASuN(yuM)tM{Yh9Ha#HNTs-;1w8>~)Srq&{9smqd3Asls8fx4ouyH8P3}L0+QUCt0fUjA*k#?(JX7hHDwQ}|31bCc&$z{nIU#zcjI69iN%T5>%j?6Gt8A>u?3$e z7w%wOJ?xIg)!@|eF1R?cp=B)1;Ak0T!(JCc{Ek&s@$0ID8<&sJxQqswd{4fwdAJ@AgzC9YeMaHe#hSALA;Nh!);(QZ@YpPX5HgoddNf(Y-b99i+^&?lJ zJk6wl1+f_OBp zaDAIU!I?38mBVUx2Z?5{(djZ*iH&zy3FOO`*^#)y)x%gawmr;N9~bZM$n$HdDie(Q z6(&KwE>$WyS4|c$45;!P>}_XTjmp1931M+HIq7t(VlH05567t;-C|wJb#MFh(1OUA zoclOGZAC_Pc@_Ru#NfNRc+L?FUe~Z`8}Th%jnbh!!X>`BZQ8b4@gd_dyY0*szkN|D z`?lR{#goG??QsB1!Zsa!O>^s}*4$BiojQu5;7jyv@B>jnNVpFU)F#XkQ$Fhs0%y2Q z!oYAyo-@#oBZROLJwnJ)M-0(bO;I;J##a%{;diCwT=ZVLWCwuZzqk zw?sJ|p|`|{a0|eWh&37MS`((G_4wvUZnLh~4nZ4X{}gv~!uiQ6{nA&;lp?WNCRhM) zZvIE&yie6)VDXWJ7s@}8$32=Jyl-bd+Pg`5_ouV;M<$M+)NfDYgD{z?Qns2(mDY0V z?wE(7d-pWh%8R&rpvog^i)RvTdSKxn2{5}mkT8Vc(#4C|(*}EpQsTXc=sq$!nPMy( zVre0xG8odrZ@)9Sey;Ik*@!69B3>d7w~0kWF`l>-YGer9H}i~!Sk@>*cF1;WvrWAk zdAaR1?*xq=NT*-zOcz$Q9A*RnS z{}fmk;&qSo5K=}HRzO?W!-m=i07}qc`=4%Ifj2})LST%4bjB-W_+?Zag7Ng?Zd{0L zc40L3D#Vf&dQi5#jGk$HMA;P@|D>Su=Sbt1KdYX1dvtT^Wd8iR(poMP?7^5rIZwd6 zo8xRb5~bTl(I2+P_cRPjJq?3ikArGULKeuSKbo9CWx#^QH1KuglnbQ1;0eik_>SQl z_0jLVnVRkW4}Kauh-F^iJ=E)atG%Ry|44E`kKK4Bfj%*DpM-5_au>A z>jE@fd$fQm*4}OFqlD|abn8xN(z?;@VFcdER9kX5u7^Srmlz|172vfke5g4nB4l@^ zsUH#r(yVk#U^qGnq#(dTdAC;JX7v_VjwHc+TLLmK#6=0$HV6VY`vp!i6NUX5Y;Syx z=Bi~7(!|}2h{G-NGSRetgyoYupIPHitdcV4x;<0Z;Q8q*n`7Z*0QsrrSg5}jAdOX` z{(=9M9bF&j54{ku&H1dER%&=IYn`GH+Lhr?tptShqe0}*!=ceiKyr~Ur+ zbY|VIodjxv9?PT`&%)fA(ItRy*${~v6w5b5xR90D1}^0+uY-t|ZGnx!t1HaJj!{bMz+u$A)j5(PT7HHh zxkNA(IPqL7uC&JC*nuTj)%A~U>H3x2m`gRMju#Rqyw;%G#J&@y;O5swr4qH@K#w}I zeG|!S{|sF!QfXb99ZP2WW>`sDj#le*v)0+-%zUEA9p>e)k(`$f3s7u{=@R`jCEdRR z;wHGmgCyI`Jc5AD5o7eGri?M$aao0Av1FMGgIpc&7(ZfRa|r)t zO^Tu)0Y72^bQq6e7yStMp=;kY&xO1%xRUuQ{BSr>Y}f>7*r8|nB3hC#{oGGOOE}9Z zHe_h&k^Gi&mu_LA;o_);Z_>vv4T=lDH?wbHM^f(oh4A4r2NsSob8z7lGuJIV+|2b0 z7n?b>@ULc;vQfe%5uMWTlE!ptbV(C%>2XV%G>1{t@Ro!ILrWqRg{5=&EiOHp-@YY@ zRSQe!na>{cIiKHB*V1D!`j;NduRDe+uF+V>h^3iZk^rEoO|*2OVrmXu(tgqCny?CKv_R~jx2$IgL)fl^ngt1pT>IE0Jf*u4(-@DgR&PwcyXs5I<+ z)tcD1>8X8&Va>R4NGVHv^L0Ti-{YVqHEUEX@47@y$7N*7yLX;-!t7nl8Sf2yVy;T}=DUP^3Z zgIEW+mYR?FP#UoM-bA%Mx;Ihf>fS_|@x6%(zJq%cuQ)OQUQcPwdm;Z+ysb1}2ZxW) z6SZv$kIo)Q2MxFVMa_E|WpOXy!EJ2`EzYb87LPbuXdVK6))7kve`-@Lg-3O`;{+R& zfHM#YZ;V=gmhoq&JsEwa?A||sy=*X-UkN$}_Sk*<0Xqm^V?1zdD0-_n@CJsZ#-pb#n44yp)o-Pysk*WDl2#pR(k9h%2${;WKh zecujN>G|Qe7{)EUj1dtHyhOvoi1RkZ(VF#20fE26M^`i#*>*|fT;Mdtg|+j6X79ux z{BP55;ROK!XA;m@N#;B^;>mD*muiAiu`V{XWR}8Zr3)nGSKb+CphfvRRLzJmm1uuV zn3{G7li3$y!URRSwuK_SSs5_SWi~0&p@6aQ6^dlB9YtDAkB*S?uc1dOE77pRpeI)H zDhjjWV-!a8@nV{Dgh+?b9PVtjzX$|Ia}W=#Zat6u(ttg4aHbZZSj8FeWF?vt1ep8H zgc5g!5J|SEav1o~t0UAbrb#(&`=+q*V*#5i;HTxvfscZc}qB!QNBdm{9~(&rv|P-|>9t8mc|$Nfec` zd+}YWt2t`icbKcJ>ER-Y{?;%#;xKNhwRGv=vh#{_yd=+kwH7&@jyyU_xy)SFu5&j@ zkUc!0I}*8UInRBST*4OFho4P5SDZsvbGLq!Jy&j)y3V>mZkKzQ9+I<}mPZTxC%uWP zm!Ash9PjeWM^pK|Xtn1W@{R(Zj(hQ)iuO~2^O^2U`Da+pB8C)jlQ_ zY?h$wHsgwlLB2XWwm~l>a7q?!ONj@}wmL~>Y(rpi*r|@pTBaRS{GI4ubHRfJpR0S>iNTOhD;ZW@XN5lKz~Wyy6{b= zh;k^W@EG`sA9=h65PyEr9R~Q25F)aFSoXcAQ2)k9%=$1{zaXnS6To}watz-L!|RfN zQtp%?bK_HHZ+u!tvhg_?g~oejlusa|O~~Q`J8Ss`qZywkBp1ghG(PU)e?kU2>urtC zVoNtZBX?byY1wSWH&^NG)hd&Wi5N}CCFkv2%NY~PUvca20+U$%nO*C1?RKaLm`4@J zI#R{B)88se*Q}`lVQRjDRbE)RM={{h1jXbb($mE3T*k*z%g$6SBTT&)J+L{0+0MDa z4rGCRM|Cn6{1ZRu?4=4_Ybp=t+F@&8#x>XKg<8I9<|;X2+%WQtX6@%WCGH5Zys{0o zNLTr(-rN$t1<3MXFg4UQ5td3~t1J|yBa+5tBtzcWmKoxWvi_|XvN@1mzeD%!?`V9K zOoHOsx}Q@ID|j@-UR$^n^Cf(e}rzKhn;a*z2!` zOL6|rhl?K--gqC~TNr6?V{(^u9Jz|{O^?(k*YhBq>&2I|_sM(mciPYhHcMSgw>xND z&mgeXpdRDyX1ns?jt6}hZ2la>;Gpp)&F4RtZ2XT4zSAHAA#xp()BTcc++hZosAjd$ z55F#Q9;TeMKO4+(V1~DZs$oE)phdrCW{5!U?S2}vlde_VE$NTSx z3YI!;zz9>}t#`2V^?tPj(pFkOl?w)Un{E2w(en@g3!}%xN~+16tHvC?@c`kKAp9_r-;LlZynz&}U$mj2F9&$Bbe2=O*Qdezx zG!HSXY+>&*)71VZ(YN3MzpkDt<#x|i-&29lSIbwY=Mr<5zOc-7`If4b=X#{NIGw_J zyo{l-l+M$y8{<5jcAiPzq^5Vyj1u?QU^JDfsdT@f zaR^$RbUn;R)Trg$>@)wadN(jG!;c^;=oXgKi{HcymUqncbN-H3rjHof$D0GZm|Npx5?YztESgo*)v1~|?hXxo<@Q7#o+#x72r6zaHT+CYwlNTL~v5qhL z*Z&0yrbRjmPC+;C^i(vmwoi%|hhw+HU?_lV>ol*b#jl(@*zp)k78u zBtV`tjXh*SUbh_lA+qogUFaN@7w}28At^u`pCkf^GdyWZA89P4=zisz2NNlJ(Xl^IM?L@ep2s-^KhFnMXZzsa8 zQW)ir!c~;Nm{@)N7$*~>|_)l=(HB6dy-t3JaCnHG}YW#>F?5dFU z5q4Fp@k99+U1!%7DOYKPfdnvqvr!p~wna#I}+%vJ*j6UvW6NxPUjM;|NAJiNXQTm9ob@_k( zeDyyrc>Hfji4#u#s7Dd=077hJs7;N0mN%@}H`F6y5quKd4hy5Ck&Gt3kw$ZDev2j+ z$05u<@wZ3_{(ry*qs*AAV9Q&h0FE~a4X81=?)6`i*RG%L4wFNY`l9cv{a@go`YSNY zA+p0n^yB|(HYT37S)++Q6=~YvEKinYf6Lr%`&;J5_|{(P17XWM^V4|_Gp&U)0ypjLzS%FaAUR^nEOXciC&N!?VVHRHPAS8r)jw+j zwJ>R~{;9YuCH=(>T5Anz+mY*}MLZj^(jqvABQ(b<^-E~FRq8J-GF$z^q3xisRqbF~ zwOtPzX2OoG+P0NtKHrJaIbWE5V4qp0@3|VVv8z*H?%a2E>~>&}U2$mG-Zzg3^?l^t z42mt8KBvo(;hj{93G3dv^L9ekdWT^Q0QnIX`_& zvkXIq*cI0boB)-+S=rPKh%K3HR3}tz$cf)hE$?EO+=Zw8tbnm*g2NUNizvT7dj?Cj zIIf!FP&90hia{8wa%6NC0Mr=KvtpBu30(hiGfoRC=2}r__JgqDotcFumlTa*){X!q z)xSGzukxI11+4AgjZa#oaM`&!T?#qv{kv?~uonCT0PaK$$QFg2s0rDkurm`a3Pl|x z(Tf*_#0YFrNSchT3OO!i)!y|dt3A@Od9Ur;9s%#0Fgn~Y?y&K|Ql#;J*w*4GKyR*j z{tqhx(8H`P@~c@iyK*Oekgd}H!}=7YEBXge$qsOuWiu;pSt6;+!&W&tqGXY5PD*Vb0|~->7{y6Y>Vc>CG$)ZKdBMV^m8zvZqN}CV9^v_+ACt zZ-6qqm~S2P)GPQt!FMdP+ROQlCgMx@?nem^;F~?09|u62)yMtJXqv3m%n|c}+jW{l z&P!TC#aLS?N~oDSPNKoj(Rnt`WDAq~cyY4vTXJKzUb|yx;yAz55p{twT)3D<@ys69 zl|!_qRO1geevj{LugO0YVPN+Vcku|8)3XQV@|k8XigbjWJ|j-OXob&yKz3{8|Df3} z-Jz}4c{OWw{O~6GkE;04u7D%9XQK4Gy6v}9>s4(%R<#OBP_0CtBvZ0 z9h$ScruUWlcI_DkcW%F6$N$IPo4{37b^pVMJ98Oi@-m5lf?k>Aa#avfP;x>`R8T~T zK@brY7R%aHz2W?-=f8ve^*Jkag&1jD_zl7cr1R+Y;T7Q zM32v_lK9v?_}Cl$FUC$E^|9EkEvM-Tk$duyzm1OPe=F(qjUbC$D~xM}sF|v8cPZ4y zf6v^A$>J99T(O}qy!c|HV^xGcS7r^DCNC0=h^+>17+oxWc%Fzuw5k#;Q`>6rCWO^- zp|PVju=D|C72inW`gvOxFHSCO%qwFKt+o8S<=`(%0DYFn)L`?H5{M;3Rs>!Dlc@ip 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ⅈJt~ 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ⅇ!XrnRrrn$6Z;4WJ<@&0(nNLUvP9Y26 zPO{Q(&OCZLj0}S}GBRTyUCWT=_xCW4O8T)o)F{Kg$I#4+2;bCd@Gw(Ge5R^G2Q$5O zygt8s+sWj1v}~&JLw?Hm@JCOps=^WkrXNHirCas`V;nl^k=Cy4!O2qF$8Mf>udUMjOhFX3>L)NUf+*wVqD z#^h^XbQ+lBJSE76+%gVp;aKycmfi75qb?2>(ruhYv5dB?W(U|EMnMgu>PMYlwyr&o z|6FltzwY{v0nw4KEp&9R-wrTqlNoB1sc6lB<Ya4jlapI#@#%t;;ftMIjiF1JhtkLMs0gZ0Q=-!t zA9lX&JBJ-0OQRY<_pW0mlVY=>v(-B^2`y(T{fo>qr@vdP|9~b&j^` z4|3LXy?0gV>M_mC&kUk6vOo|I;NYhAimO{QD3Z8{UQJqcc0>!0$TYT(8VxYayU z$I2$2!e3&`+LS@#6bBG)lg`D@y zueEkMxZHN?meqUD+DXdwjj~LPT9?B+4%ZsGi%Od^^2R0-wjEYJI`8sPrZ&82tWhXo z=w~9^s5ky}%$+vuOx)pf#$B0xps&Cp^fmiC)>$ME+$mi3!lzsF&hD1z8!AMz9K87g z6iwzH==8GDrUWFp+}!#T8{Ow{!HZHS!E8a5k)si)ZD7V>j2O1q&8_L<^Q zp~P{YS%;j2LztB|o=dAw&O9T+&*o(m5hXejyP$EB`kLd5drOg?FAL$sJ!Py3J=@8M ze8x$iUw-biia}Ir1i?Me7IVUAd6r9p8#B-SC=T^P?-Olar46u+A8D~M@?o$ucGwcZ z9Sw8U*9SVn=1R8Ftd`i8WOPZlQehm>xqe!xm7)+01MZm z9>KhfyW>f@iA+hTb$*r+MrmTAgecQwbzbHsc{6oRWO4f7 z@)NhaAIr{P8SBd$>^qoAgCA$h>={Wg88=|tc^n=bIQXqN93dTg3+A-c??}H5kagu4 zZ`dBF#*xv;KYv79UWenWQsFVeqx2)yrze@tIeEvKbb#1_p;=#sx1GU1Hd<6ENtL-> zo4#XIa_=*p$FmhVkY^sG%4W_;r68yjP406!{0=dWQ|jcQ^sT0ujAQB%nTZ)J57XAT zp2<|H;>7HGj=pl&9kRgYGf>#Pq+G4vFUoH4ezMq=`>$2mbEa^_J3SdJt}EQRYLee) zgP#5|#4u{Q{$Mu}>u@q`dZ4k}F?6ywa@_9VQ-pncZO+#+Kn>ViHy+ZagutJjh)#x_ z(f=^DV0jiI)N2bHI{0#cmG!?ejM7c%f!Y zk0;#r2I=}XdWNjO|1iuQp(OUEM6Fr%Do(MaQkYm1z<19Yc4RVFsQ2H_8S)uiy4>mB zk{u}{zAm{teX6RRIjC*^kobP!I7bKez0ydx}wNs zJz#15ycXFmGQ`8^L%xuO$P+2PSx3@SS5bPrtPfL5R%VZhs+TyNly1kP^i7}o7=la| zRp0Q5YzV}wc)_anDl3t*EAJdxh`eXRWo51dtaO7(q=eh<-m%e|vlT4OZ)L$Zlul;r z92^r_y@xt!K53;pnZ+^PqgkkRG!L9oro8JkPLk#Am-LWYoo)*Mia4?LU4gL{rq3=T z&ypq@TH1*C$uh<>R((!ZC{I)-N$nlXxpq0WmKSMay$BlLVG$%8^I}I4c*j5NVUmZK zX9bE06T6R-<|}r2s_iK{>arc;HIjmmIqx4*-&tN&Bc3^b`QU4U@;Xm0XFH7XHOFfX zn!KSX&WKmjIjXI$#<7EQPO*2VSa z?E_WW>gpASGkMJiH#C*0@=0c#zF1H@9ltTPu>7XT6|8kJ_x!8annn$JtJfLaucAYB zlw+fpS61G}T1igy>E6-0SPk!Wr=G6;{&fLey($p;;%f$s$w`M~HPGns+uHkc!D|F)pNn};;2u!U+9u*7=*CL(jGp3in zm*?1qB9pWQl-O*O2bTz0_c2-DC&ekWxL3z&5f;~{Ce1QBEn1)-EoQJ2NPpp;9wytr zvcuCWT!m^xmjrqL6M2^?X39;vK zJ&#-Ia^eB57+&!Fa~gNYct(^xP4~h*$RZ zJ@2}3p~~;8N#k~YXB5qkX=700BM+a+%^CX**^(K~>`OfuVSD|sMbzrzogmGfg1Gjr z2agJ1xgzs5Kf7PIluU{by%I`2sI$3&Njd7tIF^K=d2D$14yvhF zC%!+DeDyNstNR^-b+o-g+~JvrpVW~qK+4W1NTrtFAQ6|-wBWml$>ovJJ!XDolho+B zwt>_W%LpsaZy!ZvN|ozT6r)cE)h)jX+_bc=Lc^B6rtCVq=9mjIzQU-*7+$qRV(Id6 zuyPr!YBvbZwyWk*#Rxon&a5EKVrP4pCndA>y&}D)3?7$EMBBZymw?)o6kiux>y_Ozq2n)7AH_9!sufuH1JY0Pm8~57~iHA`FNGVl5;uc(_RGLEz#Rb zUnW*5iqU0$0_NgrTmewqxb8ofKJ2Ex*HsL(;xN>=HE*Tnuqr7hTOn^HM~X^1KZ$wb z_Ql3B5GGRpx`U=glub=Lc~V5fIb{}fdw%LFRwzf3Jo(pAElo!*tZNTB=h z;7K{}yj|}jMWSz&u(HsSzH{-5az972WLZc!UeXXC!j3QJJWj25;IRthK7!etwJ&fHl z-G>c=c16xFx`%=>h1FU`0Os<8U^m#&3{;v>FPPXiG9US z2VDi;JHh!$LFNB*aSCwrCS=mA#@$4xy z&QF>3TM8^@zA78;$t2kcjUKXS0QP+_E@(+BM7{o{_~=n6g3j^oH|4`|L48wtvx58# z(~__Go;FyW$_rmJRT z&fWLxl9U~;iLX0ETbikGr(Sxief1nCog}U3SGnY2qdyvQ*2yVTpsX9&m7&j5bl|( zrkkY7Qfzz}rDuYr(2&}&ov8OF@aI%g-qBNz^L^fI)?_2}(6Xj;JPn2~m%y1C%^k2H zjvt_r%!AY6>p;Maz=^ zQ6zIk5GrA&3Pv$W> zweaoRr!R9%4N9VES&v@L5aXg)R^8-mo~?R3O& z8Cs82RaKGb>24fKKD^=ejdg|%9?Nr; z+{n!&*yf1A5%G%YkodbCV|#g0{9@>nkD}oTlDDR8dNVuH;pxWo1&E|1s!{b4ZLuna zF4U^#Urn#>SdmB&^_x=iYz?^^9mP;zugdYL?otLP+5Y5V!Z*~V884hj6UoVdFu^q6 zNaqFQw;zmU*Ov#EEFxr;?-|9$713F}$Dw7Uol^L{zZu5fn=BPrQoj~uyH&bL}QX4>_t8#e`%KY7b7V5bIdFjvk$WmxBJAdRcs zIm0q2w2Rn&4O7I0lW3*THMZR_H9e@O{zMp@?GKmUl@$sw<-c`FHlkm2;tV<)M=APa z2J6266@}<8cA^fcSDdXg&pJs*J9HiQc1UiGS=YKdrGyueH*R9qJ|=KRvo=#vq@V?1 z3_g6RrZY$1ZwiYXY}es5qO11oD>aMQ*Ilza%(ytX^1tGX7KW|9yu7WO8zpf-Hp#R) zCBuwvCA0X^Gm6}Pci)U+FS7k0kG=5bi<^sLlMcz>zSknT9WD`&g-A&s?XeqcBxK`+ zNqgp=8?wF2*uk0mMycn=fw(oFiJ61=lrvrL#qtY}G}2Vfxl5o{b3HxAz5mO|x^@*L?;>+Y|&A-2&`z?@fAr zmJ?o(A(Ia}>-{r{Zt+=tVT3N!RFjhK@%sA0@E19n&yi=iv|qGJV@+f`cAcb%rhcT{ zdA3f6;g?DOL}&J%n3gSLc|Oy*$$hLM*$CFRs-52XAW=-JIIKz-p%T2%xq5QW@`CnHt12i8$KCKK6^Ms zLoWw1J8H{Ez1N0C7F{J$#i~0)5{fe`vrx_(Qgj`N)Ci0?Vmqm7q#%ndzRbp8-LC0@ zoyh@>_kdbVH80#_!&&?Ic5{a1gMh-}*^)}X9u?ZC#jNlL-5rK6nQf%I_|>(v<^&DL znboxzN7`JC@9^*x78QRKH#C3b`uV5Lm!CFwlk@gXtNa%!Cp?M#hX$U36k&76WxzB4@fL3&q}Jq zjus|)dcj?Db8}O3uDQ#defNBfkUQn;v_3n{(u=Zp5_A!`$A=a^JbR=Q$pL=SXomfp z`tZkR7MXj@C;M7^py%KYV^R@pDTPHvr84Q$;uOjfM-3;dep4rVrhYN3$xoko#jGG) zk%~N@om7+aIOEi)2-A31x$x5&ChITN$t5^=qpO$PayLHc_&(r#E{x2_KYYD`o-}>z zuh2QYOK_IHJ`h$<)4yXR-gGmsB=fjagyo07gL^t+y(mJun`p#pb3`9ywW-$@T~&KI z{Y}J${P(hky=qN8@e^`OJzGpKxJY~s8u+Sr*@>@;IvN#FQ zuxLnrF7K08xNpk9Jq7=U3!JBc`VKV|TrE9af*k z!W9Q}-l>Qg7#uynqIikOEDV;4tCprI66`86Kyr!j$Uxl6f4@njCDC>< z@8aM^i{zCfG>O`W`t3ToMp4D8`Si0Crh9`K(@6{IQyC}ae!aO&CRUGDBFn3{*bgPv zHkY?D=J>Hc;eoQT1t&G>(Bx82EMimzvsaiAWj1~Kbaf=vyPx2870;h65{84SIW+N z2EE6}x9&}!Dmfa4t5S1})jUf{laT3_k4$~!3}exz_rG?{|B9JpXFCagqx@M5^x0lU ze`w8Nu+Y_`wp@-I|FmqAq=)cpJQ^VyQj%|4v1>F)g&~j#ZH;#c6JjXLND<^{J}7@z z6>}$fWodDmNex*-G*n9?U{ove28X8=M>G1Oii>4aIu|}s$-?HBN0e7C^GoiX{i{X?-T#+UVyspxB!-?H+-!w^~B;umFyBZ&M&h^pr_sW#!Y0( z1%lqszV{#PJvdX|Q*LcuNL%q0hcrg}G4AZh=R${?03McJ)tldb;M|-X*}hA2TX?5f zLAtc6apgm?ZO(j*ZQAA0yZN4l46aEyjnvu&-dCd72aI0?O3x_iT=&IUrC!f6^AQ}a z;L^j-+`1GZBsV$Z`D6lr{pCzyy`!$0@s5JwB_Hz1k@OJTxoehJpN1CTj;x`(=FUhL zt~ku(w7J{(vb#2+>d2P6WlYT z=HLtTP0;D$?k3%=swX+Xg%j>Mo57kWB^gDuLHfe=aOzkcoBPY#qqt`F%c2(L)M_gB zVpnb6J{6w6;;=bLZaq_E)X9n_Jpxz)nz9%?`MzXg$~`FH4_y#RLM8 z82cs0^G6qq;#VwT33+!G7~DADzj@e{iL#{5XX`I0pl2z4=86>4DRjxZZN!G9H&oLA#`CR_ zzWa5>oo_VeK8a%Nqi6g+uQo(qs+3Elwan^lHl5W&_1qxRf^Lu3x?A_1qUptV)2JtJ zi82${g66-zcIH)_u`Vx^UQ9SI+bMQoM_9v&DvOnYRT_+E?Hw7+6}stx|T$7 zRPOl~-}92nq>>XU)|nYzOPnf_eojy(Ex=G#SbG1bqoQfUW#RP{xiHu>B!~4%q0I%e zA)V{=g;B}|w!4o$`dwAnO-E+-XI>}G)EAe$f9C4#s_ZC$+I=;BE-7z+I!pYK&q`0a zMgw)6-a~D&_M?#8Yqx2|DKd`;yRFhVO9JnFov`m*Fs!&yy<%v7p*p@L`ZYpakk9XW zp((3a{yD-u>ywdY85Ip!u-5*BpYjdH;#V+1o3iEU6O*4NcVO4gi zZ+BXke$XL-Uo&#}<8apFWVi5W^y5U;+l^nVZ^0r59A)YAsr<;j??+^YU~An0$(gtxBv91{++@I8x=oapWPO>e zo&OW|gM~+~khrzaeR1lrq+qVB5jpN)Alb(fVYwPoAy~h%q!W;lmXcC^tr>1(u$+}S z7b+wyRP9q?KZVx(Asvw%E&3YM-GE1_bl6{Y%xG1RuO0NH)YAn6H$1Q}bTDKshXrr( zhiX&nF1gmT?%$h8%66Ea98%8a{3g97tz$9nsTK3HP(m=&vi8LliyL?|tO~Fsz4Cka zthV|#?OYm6cq3uZwMh_(=f6YfX}*ZKQ(@Vj@r8V7p0oN#^O2pAK3uYki1`xb(XdO8 z=$3&DQN9>oqe9Zsyc!D@SLjF9x5xXB`^8c7JgA>M$`8Z?G$ct>)*5vUe%4udJe_1H zERj>XIV!Ho#jYtFb+@3$kW^f1`u0`rM?KHuFxGQ+6eirOwljkKya5Vb?|TVEO}>0s zvJopK?2A~L?4PUI_Dqc5hL#l&t=hO+UFz#q`$0QmwAmCM+tyum5dTgm&~ac^wIm6H zPRJZNzfM=kU)hy{&t1)V&iversJhq=Ttrm!40(${Aye4ZiddRh zZAN03)R&l6VOUl%t6ibSvDz!$p}I88=plxZsL|tl`@yiNnu8k-h{3Fw|MZ9xyt(M@ z#m~lgC-6SIW@@>Q`9Z;8XTr*b%reuoBIXAl8+DR}Otl_xbqWPNEW4Mi{DA+8(%{p| zE0(>RH_$^}2kn80)zh0=>N@Ig=`vTyFSi`TjVjU~J<96d^XG2gcw+#cz!&4&bDc?f z(p?^o;qhQ3J<8MSlugMw)5kDiWN=kI`t=6SWnarwp4QQf$jd!$G|{!VQOZ=gf`+!@ zmm)bMoQy@#kL@1q)D}i+%8VYp%B9thz4nYzcK?=rpyxc3zrhvKA`& zzVBVh{GLs`9wt2Yvc_I#f{mEmOck@vG!f5rZ9L~5`V2`=cF1WUdU&o3x@5j)l=={E zFPkJ=-8j;M?vLU|L`aN-+VaShUEIX55XLYJY}e(oL#^22L(5WHe*|MSAt&S0{f$qb z4Tn-~BWB7QJ(gJY{d|pNc;eGAJabQC-#;ttHt~ijl}my0xu#YZ*%CSncHiFBIbxan ziO^E0`ypAtE$*a!9E$<+L@}aATo=d=?z-YB)_m78$7Qs>yk}o%>O)xfkl@atts4GD2?%KG5Pz!l#1So^4ax_+y^)+5L1=mm+F1P zmo4)v3t183m*K*Vx;GX~K9p_g(5k!?F);03*5?ZU8qFHF9U?U-BnJZ4-pqRuEw(1} z3KJwMcE(eSG{bdp!lK*6aSDiZWOl^gE%;;lcV!M$tx#iEGo`4I9eYugZ8;@rXwT4_ zH@^$)hb8&m`4){Su!U_I%qicVLxab;ZyugUxsl}WKSSlU_L*Tf^}3S?uDEs{yhqw3 zkyEKtze3mCO;Y21W=xm#AsSPj6#4`sRw0?)b=Jn1C4}vm4holC_E#X$d3h{4Ssl22 ztPhtO-#Jt;+3h7Q6 zbD>tw>B^{nE~@0ncsJ%8K)DfTSL7Cd%cw1GsBdR{!*)Q&m0xqseP#Z^y1eVnOGe)= zq65bZ?Q#r6)F|;9dDCJZVILm(+$er48ZOCga%@0I?sy*0Yf$HHW#-V*^`v$WiAKkr z^AzxwGf`rP)=m7LL^-|nCz~#$3lCy*@a1Ha*#SPZqt|XpmtA{f;{np)LXmA)Wo%5G z_C=!1f`zzOQu^b#!?i8(k&V&b4Cs`+9AWzUq$f_kF34(2FI8kozp0cjRWZrY=BMU^ zcH=Z0Nj0|joAleBsxzESvyYOoFK%(xAGplZa1sF}p-df|W4n*{&gE_&7+WM8fMTYz z3bx-L*kJIWD4v$Jrb))I(|bZ%Hd1JV`-E=9N)co5ynOZWvC%h*Z~K!W-$P09~ul>QD_Q99{E0>x#!k-QWV4tBoX{)L{XU!D*n0*MA!CqmsRy zY@1fUheSU`=m!%U6&XE&WEu;s2NPJC?+tPlskJv4M2ewxJx=a*g~QS9x=Yz< zrmr_+as&Bq*5QQhG$NU;u?8aM1K0Wu6TC<*)cozb*O!FuD32HB7n9p18~J7Xb~^#m zxVA%3Xz$UTtBcG?W9mIv-O!^Uj8k z*!jiDCq8xZ_D#*2s=vHXR8%f_sAXNgU!jxpIFGZ!{_aPuc0+(Tj1jOBJpTX!$k$!Dl>QE9s*7S)82XVFRENN zxrsqnC+7X_meZk4u`JFcwTs;6M~-$ii%jib)>Lt!b5molRgjp;bn@Fs<@4M#n(i}T zt-wF|M2ToWv@hgW_s57m&vu~LTMNKcdKkZ18_aG-JDqK>rM$xMB_`ggA(eMevxoFc zJ)yO(taPO)oL%$E%^`u_Pht^)f$dw8Esmk8_r*#we^jH|4-gC5K3OW~KXO7l!2WaD zMQ#KarwqfNAGFa}`%n=1@*XvmHgb0thVS?VW2}=9hys%1Wks%}75p3_xwBEMWsJQk z9||w==bBG56rA+zP$eR0`V)Qq3q{N>wnsUTviG})<2ZRn?b5z8tcCSuW7w+qjpECQ z4VI(LFqAb%zOZ?i2P>!b*~=G>whT_(CuMG5z2CwVj0s~1ZZ9bJT{&SX_gxj?ED`R$ zlFJ^)b;})JF3N4|{E)|--9TiSeM#37>7;Vs?->pihvhhT3{p3Arabuq*6{k5$f7oQ ztyDtkf*hp#O@sU4PXWrP4y_`4TcrU%qBd{TY z3m4qpnu8TEd2n%XkfJWUYw79H&2k{D3aojkKs$7ML6kBjL5<*H+3``C?hS|I-srN@ z`#yxG=BTevq1b+P?5Jw9;fvH^OC;IiE+aL*QnCSod933Tueh*Lw4~z`ybdQ2pc883 z_H2J|-q_cDiQ8?reJ?%mY_Hw9%;FQS7S6Y*HRjwL)EdnTE?e&I!=yN~-GZJEKC!zs zu?k<7ZsNQ~pNEyyXpvEzqa_rc578T{PVKYAa=WLny$=x?dXEEdK4@E(GBSc&ZSwnL ztS!GpZkjh1^VCR@mkR=|&FLY^(o%6&&2=b3M8CE|qy9)d@M?A?ITW1TyFu4iUSHke zhWhlmLu7T@D=C^&uE<&?G(;2Ht79W$scX1wo*Kpe;ep0SIovtEX8V{1yEWJMB(!W0 z8GLsmk%}U$%@pp4uZVgBt!wQ+WZs#wpL=47^)zJPTg$*8Tz=@o4ZZJ2tVQPb`O-7z zPB%L<;5T-|9E_(aeHV83CI>@Ur*IaknX5)_Qa(MI^n$*du5m!!wqs&tW}H zWP(G9t(c{(;^sN$<5tl;kq1}fLQP5(xv#2OvEU%+K2&z~3fbsb21Z+rqtCc;g`I}T z&$Y+>cp~=$cbeuQ_QE=;t-<`EKtDoTh_{JfK8fJn;}|PL;TU-IeTlud!U_g1Wx*1X z&C2kOYE!R-leOw&5)tVGVxl%@e(4@OI$hCfDGS$0D*We5X%3SSrc*2@V$>(N{8ERa z4yJW2MfHa@5u8MOHbo@aL7Ag%mzbcf*Ue7F;M`2!x$BQ}D=jJY?bDY98aqu(wJ%OO@Qf_`;te{h9eWfyDYhO%-BCaaAsRY=WB%k-IK?dh$D z>LbQerL(d%MoP{*QDWVb?d*7s*s{f%_;1h*7g&9wvBcJ4v?eVczubrD)P=a6T6h@!x_Q&(haFtT`S zHkcaX^|pJ~IFGGZhY#7&dM7Y0{j^t`@Y>g~&iW(U&O`b_(>!O&LQ@S>Z88j^?l?Ba zVV+9C^3eE||A6CXGf^{v#hF?Pt-RMAkJw{KB4(yV-8Q`GggCi8mXX_#O-ZS3r%4^vC+eT>kiXpc zEMbqj-WJRwqgN442Xly_hd!^p%3E@^ECc;g?Na!PTpBYnt_anf(5S!d$>;LrfOtN`+>8|2K9~Nv^ z+r=;4?}T%8`C;h=_e=eSyYsDywDN2evj+A8BGFdeE^ZHqr`>8dG$T8Y31b3@M7=hg zbQLdoHsF-_pfgJAsygu^8~oRZpm=%7s5#34g@hO707K!dZeR5e%blm*Qn6qj5z7wqXaD_y4MVqN>9FXv4ohm?3_aLlXg3lw6 zn2W`$dIev|nO0`g@n9r(c%wcQn0!8v?g)|K zx7!uDCyn^#3xnmUK-@Yfv0MY68v$CAvQj*6nJ=RwVXTHf)k@O8gNBgT`vSxAK~%2i zk<y#Wj0gGTTnUoic5n<1Sq|Ox3yioaqhhT50iX%r;A-`aQiKd zE_Q(_l$si&ytzCJVzf$G;$j%UeqZ@3EtSBkd2%Dz((G;O8((mcTB6v}*UsR9A8CTA z>MV6mP{##8CHWs-D39Qi)d>&OLTgcJC8$%!i1%u%(;vx|1GN~1T%v*@!7gbnTRv3n zFYLoE&PGXw5f{NGb#c6&lqC(2i^Pdwmw*pZQ;busKNWFdq}k~DF) zxwX5`N`=SBoNFiTzq)TKG~|MqubQ;$EJHin4U^uvq&4%eI|0TP0M)!%p((Rv!eEso z5SQUcWe2T12Z@+$IhQI>Q8j!$RIG%vLmDg5<6HT()+fN8Qr{9d5@*D`&sLXzucEEP z|7^Fze|m_5B9bJ@VH!}cRzslH@D}{z9j(FnN|>VH{Z;LH%`GTiiE8Nb?d=1Dm=-|8!gONuge}K7%N4}dC0P2+pE338@ zfYg|O0u4f^m~vYsL6>KQ3V5qW9*@)k0iJd2{jkPL2f6B2i>;fc=D<(0q#%B|n!`RA z?eT^q^_S73oLAl*{tF^`D1JSwfOMk_-Xe}jO61)|r=%q{oLyDFc|Dr~&D-vYLyoQv z;yA8$N|SEpK*0UW_kYNS0>ItjF_p+Z?TZU#;(GVzQ*lV4_i;1h^X)sh(Ru&jL#Nk+ zbCi{!pJl!=KlN1rZt?o|_ID2lOd5QuzWWiy?3Ngls81NSEI)30-`F!pS6fcYuLE2V*>H=m$K72Zv7iw*sO{Oz^sjH z=M|o4Ui`7uu>X!mxYN<)zO>d|j-mnRq7Z7-!6EXSsQ-z?*!$GX*asx7QH^cjdLO2A zhaB*Ow)^f)__f-K4+Rbx;Nfh)5diw@Q_Cg{L-eU~2|-|ZG)qe551av@-T^Yz{mIdT ze(Ow_4PUc3JYEw0o~8~uQW#X+go+x6-9rmde?TW&S`YYYBGK`q6EuJBTel#cI=k?G zJoVw@W5D)+(B8jgu|i+4zHjYELtX0dkxG*%9tvRP>NTne70_$#FYy8^VL=#q<%|iR1_ssAj3(Fx$}|p^`KU<~ik`ZZ`f`+7j5uu5tzVP`evGzn)@j zl<5IJ_8&=RrMh%=5ia5vnMS_soqD0&*^Q#wKYPBl{**PI;*zz9iR%wIECu<|*~H@h zh>IS_0lxj!?RL9mU`kM?b=>rh;t1>*aV{U3qApsxb}e^BSmEDRa?1`b$A#YX#UIpo zP1>f`wo}EVE}kn>V7VtG?-{e`8eAFOw_K~@8FPrQAn!xRxd_yn8YHUvQ(hGF+uB)I z(_p}AM53j~ADS;n;p)T7xlX~qrbe*xK%pARAN! zl!(jjJ3m;v+E}`uWs@IP+20ANl7x2}X*VfzA-sEA)Bd-!P7CK)Eqj7SWsBYo@;T$s zwuYVKn9NzQU2?Q_0DNoB-OP`N)_Ybx%b)3-59fZcS=zQf?_>OJe_)_G=p|Ae%>3zm z4P4)_i-os&S3}1b@2A8)X<>teWM?8C-2_C)&vGqAh`k?>dJTO01f24W-xcnY%^s z)Up?{n`45O2>Usl~dq6zU#>M)SIbgr54wz;y3acyNF2tU=H1=qO6i|5L zn{>a-&N}j8)$y#^?@_12u1TY=uCSb2&)h3$rWGI>weP#x!w*lhuF3(I^qyyI%=vBylv9V9unA z`LdTqr-D6fA(YK!k;9B256ww599^GP7ShGzrto}2C^P=!c?D2EHQ>mFLC?^%hReb; zE`nuQQf!)97zzT^B~{qmP(k;^pYh=eKI;GT0tn4AzkF#4{CH_V+Rl@{NavzROz*BM z9wpK>=I)v*(5pmDugr*A0BUOKPgu!W9eCa-vxz_I7I`>RJ6iHz@*l$bl2b9N9-kJ= zsrW_1TpHU5`K{OLEBQBH%nU_SGuK#Ei7LA{IJt6j=Y~lqJJp^KY-ZpUZ-LK6 z>+4P9t9kdaH zj&h9fUpQfRtk815eqaKb>NQ&Yo_kA( zP9+WiOq21Yjk(Ov0+R9i?_i-}CUF{k|5|fho)+#h)ow?%dvSjqfCYFwL4Ykd!b1?N z#e(pd_y>4gV%sc<*5$ZY1n(H=1T}?I2H>(;+?*W^+-V_$!UuPIZT?T|onNz>IOx zra+S32(tt~11sStT0;r$eAS=G`~HM9-UU%dK8Ah1P~X@MC5-poPvkCV$I)?vB;!?p zDC8HyP!_9`(Z92YWa=wt@=Ak59r?oYF3T;eYlcq*CQ|`ZPy&A#V@70#d;TAG!wjBo zJC@|cg)YfI2^1S`=tTIfkF=RVg4pi9~clD7!Z42Ri8S>c;oG7(Lh z+PMCbk}?%85F0a`ETH;TF+;VF=gYdmrQ7ai^nxNX&}+e9zvn|=!^BjRbR+1elc+Nr zl)XRr7E{WEw2W?8u#(-28on?5KQI5Fmj!KcgW2RCde@s#{S#3-M)U^Wc-IN0cI(6&MdGX= zwk@|3E6PQBoNcSO$53DJz#CHM<@jh!)an-9al^t%Lf6|amVlpUSgTcszThLts59Q` z^aHAU1oagKI6!=ZWfSLchgKK=-@E#tle(eMBaL^sKbwAWQ+F2bYToJK1CxJJlN4g|!128+@weUv)GV1v zH_3-c^1xlhjAAXTevdc!C4JzMSrWJnFW4)UcfHhN^b>-5w3 z{xk-X*f8K1JlS#{0Gy3~t-(X7!IGv-prjw2mxxu=USF6`q!}cO(?Jc({c70yc%UDY zamY9WZVlzRSnvfH#B$|L$%Ab2Mctr=RKpMr3WlZdbjiWx+Er&!qU;LjY;}Z;B2~7s z+2s;O-IeP>)I%A_xwlL79i7ch*k0V{6H}99xRu(2x(7kS-2L>A&q) z`GkVL^d4=>3b5PhBUZWi+8Hxz@C+Ri_XQ1;eGT`>wzpzs59>MPgCoC}dl*u_? zv47>}+a&>6jBT1?+z}@LRlo{pX2+oP`9P}!xzh(Y{dr%)4ZWI+_?+r%`h8qpjbsuO zMF`9DK7Y&0K73EVDWnAH7RvDEEyi*xuM0v68hqR+Fiqc2j0_47Z z>uMND67$aGQ6c#tZ(W&*Nvmju7gE9`X(yXE8qbL8l2=b2>H;Qowf`;Y`Ogx^&6$!o zK=Ro2_JXqi$f76-Z;=O@!XlrbNu<~4s4F%V<(rGU5RW~aM%bkrbu$e9?glSOaOZH= znDEj==vj?|AsDe0GHb_e@wM&6ip4l)* zxhDr!YYHwN*%<4u3!a4ne8*?7Qf#3EEqx0>Q84foh;V?gVIKP~tm@QUCSE#&m^ zu#`VB{)jzXV!W{V`U}q|QXFC=$_CJ$50v&R!S@bSC{>rO4(8N)Dwue+k2#sN-VUNc zP-MpVSo9;`vMz6gCv`f+qFO9ws$bzAM@WjauAwI{!13qa0nJSWgRxPuot(2ZU!{?u z^^bexwFa6s`*-@JJ}0EIN1G3~_KzC({7F%D&XXTG^kjieHHDN>Fgz-z#H9D-jBC!W z)^Z?_y7?bQ|xah+&ZJ zrc$&Bw1R!6#BDlY`{>{vrHR4t-cS`7B(jyOe*nZ>R!bTXS0iz`GXmy%Dw1E*&sE#P<-X=J5JPJS3zs*X-)g-10me zgPgqYeG^M4V!uEB?zy0k3gCi?0rH`zOlUrAT+W&@%Dvu<`_(7)JdtN zZ;7rqgKyTn8}#NC2Nh3CPZ-(lfx^eUxP2~tW${B|%IMoP?m;Sobg00dM9-=^BGHH^ zqoGIrd(D)SsiTJKKt=K}tpSQMH`P?!=``ps)j*k&#hXBNHZ1fVv9PF@?EB}oMA29* z!WT*T%2a+YJD2a57g5_;6pyC>odku#i{mN~v*dUNf^BSzLNZoR=7s2}PtPmiQ>+S& zhaDQYgw4(M86u<-{fEXo96}AE^ZB##^4K%c$6ey%!zRgd`XXQu5WfFDoHoX7r4wIk%Lu!1FQS64uZzw4UdXmh~ zEC1+T&rMvFpH8@H&=)}0UL#-MGxu62%kHGk^mnZz!t4|Uj+!oWDJwfa*LOX?Q|u}L z*!pk|2(T!Y6GufR31`FLLeQ5DX=~!JJp&9=8!6^LRs9(JqlZ)#`2MWZa~C;%-0~}6 z`BLSV_yti*Nh5)mEjdepy$Vs5)WkeNEVl4G4&12+o(f`~uovaX{7;P$PGug5z>~_2 z#{Ox#+i_2f*>YKoQC2oo$GqtD%Qp!vWNKbg4;In1w=twx>0zCl6!>EP~DxAkTe>8_(xcjc5=x$WHP^Dh`tE)f- zJCf;#8lQnkOc!nV;H?yN<0Ca7dRE8oic<(8m=%-TDX{YGS0JtmdRPXCqy#<8>|MT< zzMqGwS&01}T8ou$%0}j#dE-q8$iZQHV-iA$L)~^$4-H<;I<2(e&jzSWir1Z1j(%3S z-;m_OFou#RW(rF&mhagEw>0DFNtbNUuK-F5-`jNP?bKN*1T}j)O>qdLT*U zJzDS7{tOk%SMq7dz7)-4(!lG<IYZuh-M!_Mr}&M++b!FXbg#q-%)PpyGRAz5N3az@jD zzR6oF4)YB`dq478PBoXk^mq#NYch2I`y}zX^>$3cInhaYtT%Y$K!9kTs8bTMJTFKy*Dt7~l}raj zzYDWU44B`in_YKJ#NJGTo&kiJ{9>>F3ZD|*$5&Y3QtJ_gc@dcT*Hq2tpNYs{z9M{O z4szref|jA~RoUs|Xe+1&D5QplbYO1!cgqE%5=`RKmSCaS1&j0r=M$!moj05Rqp+Tw z24Xz)?E9y+l##Jq_SkJhGN9;@M zB$l$WcF>O9`+es7cb{@FRnSgx(0le^ zhpT@{CPH-$uvI)r039vYLu8ePX}6-_kb4vKlQ0zGRW}RxqzsU%pzk4RKGR zdfeP7CUTMFjYubKE7ie>mHG~JLDvh2ck64n!9 zIe4JBipMV7Z2H90eq7bAQD)&o(_AhQKcl%Uno^s?h;*s`HxVbS`kv0l>pihwa z%9L1Y1IJu~CIx)F@=ucM3vvAClFOSjizK;&8%g7)iD+qsj(>xclNMe)JdYUBE7xsr zw&ANa(0Rg*vtT{^bxboFvCSt1OjSL49=Y=pJ`6i6!HmvK*X{pPquG7ptn7IJ?p*|D zsA)DbtT&j=eihpgZ+o!+53KvP!*Zbh%Vk$40*UP})*7JO*8BlgMsW4#va;NQqdU3| z%d5pwO%#M4_Q^x{Q}n`rzov!6WY2~X#%{>RnwgcQkFpzsBK_GXhR94tLc-*o^M!gE zG+FeO)ef?V0cK-%@EwFGlj}km%)%b(&-vZ9*Qj6$>lad`rnT9DE5mr}4%O!+|}MbGO? zHQ46)6o_+e05cZ)rBBCfv!>O+Mb89XPo&gYGy;TP!EhwVqe}~Xh2|~n;sHP$EHJD} z>RN>yjnilVEJ6>V4?zxlDJ2Z^6cExO|Eg|ght~Xi7T~XAlglE(^mR%;Tukw~-ZrvY zM&sKFpGf>q1@vE<(#e}Z-H%O=(_voe_o)|wYF#U;EYF=4;QBW3WM5DXP-RO}&MH%T zz^PL>uOh_3CO*?4O(QE~{K=b#t7+w`N{d`)HOK!wsW$qvfckC7x&|Un3se1&^uWwORAN zL#QoI?@+Sa6G>Cb)yu$iFxz#*QKWOLXHcKoih*`WlG7iP7r=_Asq)&I%JIBGby-dv(GDs-5xemy52hg& zPkl7`uiS(j>3$JeQ6@ZM!Mowlcdte$15%R47WY#@@+f%Ks6RGVmAHMIKc|%VA$G;T zumbOlL&x=Bp)WAW>v*<6w4xSaRNvz#+<`EWkaKT@z7vdn)G{1jZY-Kl4Mt;P%BU-i zcjpery59(>l=BIDL7}ST)uWf)j@CC;qs

    Y5+H1+!4}zC~{xvwq~G;v1D>L!bT9v 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 G0{;L^5w-FF literal 0 HcmV?d00001 diff --git a/TLC-AUTH/packages/DotNetZip.1.9.3/lib/net20/Ionic.Zip.xml b/TLC-AUTH/packages/DotNetZip.1.9.3/lib/net20/Ionic.Zip.xml new file mode 100644 index 0000000..a8110a1 --- /dev/null +++ b/TLC-AUTH/packages/DotNetZip.1.9.3/lib/net20/Ionic.Zip.xml @@ -0,0 +1,18149 @@ + + + + Ionic.Zip + + + +

    + An enum that specifies the source of the ZipEntry. + + + + + Default value. Invalid on a bonafide ZipEntry. + + + + + The entry was instantiated by calling AddFile() or another method that + added an entry from the filesystem. + + + + + The entry was instantiated via or + . + + + + + The ZipEntry was instantiated by reading a zipfile. + + + + + The content for the ZipEntry will be or was provided by the WriteDelegate. + + + + + The content for the ZipEntry will be obtained from the stream dispensed by the OpenDelegate. + The entry was instantiated via . + + + + + The content for the ZipEntry will be or was obtained from a ZipOutputStream. + + + + + Provides a stream metaphor for generating zip files. + + + + + This class writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides an alternative programming model to the one enabled by the + class. Use this when creating zip files, as an + alternative to the class, when you would like to use a + Stream type to write the zip file. + + + + Both the ZipOutputStream class and the ZipFile class can be used + to create zip files. Both of them support many of the common zip features, + including Unicode, different compression levels, and ZIP64. They provide + very similar performance when creating zip files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipOutputStream class implements the interface. In order for + ZipOutputStream to produce a valid zip file, you use use it within + a using clause (Using in VB), or call the Dispose() method + explicitly. See the examples for how to employ a using clause. + + + + Also, a note regarding compression performance: On the desktop .NET + Framework, DotNetZip can use a multi-threaded compression implementation + that provides significant speed increases on large files, over 300k or so, + at the cost of increased memory use at runtime. (The output of the + compression is almost exactly the same size). But, the multi-threaded + approach incurs a performance hit on smaller files. There's no way for the + ZipOutputStream to know whether parallel compression will be beneficial, + because the ZipOutputStream does not know how much data you will write + through the stream. You may wish to set the property to zero, if you are compressing + large files through ZipOutputStream. This will cause parallel + compression to be used, always. + + + + + + Create a ZipOutputStream, wrapping an existing stream. + + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + + + The stream to wrap. It must be writable. This stream will be closed at + the time the ZipOutputStream is closed. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(raw)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using raw As FileStream = File.Open(outputFileName, FileMode.Create, FileAccess.ReadWrite) + Using output As ZipOutputStream = New ZipOutputStream(raw) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End Using + End If + End Sub + + + + + + Create a ZipOutputStream that writes to a filesystem file. + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + The name of the zip file to create. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var output= new ZipOutputStream(outputFileName)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, + FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using output As ZipOutputStream = New ZipOutputStream(outputFileName) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End If + End Sub + + + + + + Create a ZipOutputStream. + + + + See the documentation for the ZipOutputStream(Stream) + constructor for an example. + + + + The stream to wrap. It must be writable. + + + + true if the application would like the stream + to remain open after the ZipOutputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + Returns true if an entry by the given name has already been written + to the ZipOutputStream. + + + + The name of the entry to scan for. + + + + true if an entry by the given name has already been written. + + + + + Write the data from the buffer to the stream. + + + + As the application writes data into this stream, the data may be + compressed and encrypted before being written out to the underlying + stream, depending on the settings of the + and the properties. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Specify the name of the next entry that will be written to the zip file. + + + + + Call this method just before calling , to + specify the name of the entry that the next set of bytes written to + the ZipOutputStream belongs to. All subsequent calls to Write, + until the next call to PutNextEntry, + will be inserted into the named entry in the zip file. + + + + If the used in PutNextEntry() ends in + a slash, then the entry added is marked as a directory. Because directory + entries do not contain data, a call to Write(), before an + intervening additional call to PutNextEntry(), will throw an + exception. + + + + If you don't call Write() between two calls to + PutNextEntry(), the first entry is inserted into the zip file as a + file of zero size. This may be what you want. + + + + Because PutNextEntry() closes out the prior entry, if any, this + method may throw if there is a problem with the prior entry. + + + + This method returns the ZipEntry. You can modify public properties + on the ZipEntry, such as , , and so on, until the first call to + ZipOutputStream.Write(), or until the next call to + PutNextEntry(). If you modify the ZipEntry after + having called Write(), you may get a runtime exception, or you may + silently get an invalid zip archive. + + + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + using (FileStream fs raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(fs)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + output.PutNextEntry("entry1.txt"); + byte[] buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #1."); + output.Write(buffer,0,buffer.Length); + output.PutNextEntry("entry2.txt"); // this will be zero length + output.PutNextEntry("entry3.txt"); + buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #3."); + output.Write(buffer,0,buffer.Length); + } + } + } + + + + + The name of the entry to be added, including any path to be used + within the zip file. + + + + The ZipEntry created. + + + + + + Dispose the stream + + + + + This method writes the Zip Central directory, then closes the stream. The + application must call Dispose() (or Close) in order to produce a valid zip file. + + + + Typically the application will call Dispose() implicitly, via a using + statement in C#, or a Using statement in VB. + + + + + set this to true, always. + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + + + + Sets the password to be used on the ZipOutputStream instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + written to the ZipOutputStream. + + + + Using a password does not encrypt or protect the "directory" of the + archive - the list of entries contained in the archive. If you set the + Password property, the password actually applies to individual + entries that are added to the archive, subsequent to the setting of this + property. The list of filenames in the archive that is eventually created + will appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + If you set this property, and then add a set of entries to the archive via + calls to PutNextEntry, then each entry is encrypted with that + password. You may also want to change the password between adding + different entries. If you set the password, add an entry, then set the + password to null (Nothing in VB), and add another entry, the + first entry is encrypted and the second is not. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If + you set the password to a null value (Nothing in VB), + Encryption is reset to None. + + + + Special case: if you wrap a ZipOutputStream around a non-seekable stream, + and use encryption, and emit an entry of zero bytes, the Close() or + PutNextEntry() following the entry will throw an exception. + + + + + + + The Encryption to use for entries added to the ZipOutputStream. + + + + + The specified Encryption is applied to the entries subsequently + written to the ZipOutputStream instance. + + + + If you set this to something other than + EncryptionAlgorithm.None, you will also need to set the + to a non-null, non-empty value in + order to actually get encryption on the entry. + + + + + ZipOutputStream.Password + ZipEntry.Encryption + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + Setting this may affect performance. For larger files, setting this to a + larger size may improve performance, but I'm not sure. Sorry, I don't + currently have good recommendations on how to set it. You can test it if + you like. + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when compressing + data for the entries in the zip archive. Different compression strategies + work better on different sorts of data. The strategy parameter can affect + the compression ratio and the speed of compression but not the correctness + of the compresssion. For more information see . + + + + + The type of timestamp attached to the ZipEntry. + + + + Set this in order to specify the kind of timestamp that should be emitted + into the zip file for each entry. + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipOutputStream class, like , and , + setting this property on a ZipOutputStream + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipOutputStream instance. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method used on each entry added to the ZipOutputStream. + + + + + A comment attached to the zip archive. + + + + + + The application sets this property to specify a comment to be embedded + into the generated zip archive. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + The default value for the property is . is + safest, in the sense that you will not get an Exception if a + pre-ZIP64 limit is exceeded. + + + + You must set this property before calling Write(). + + + + + + + Indicates whether ZIP64 extensions were used when saving the zip archive. + + + + The value is defined only after the ZipOutputStream has been closed. + + + + + Whether the ZipOutputStream should use case-insensitive comparisons when + checking for uniqueness of zip entries. + + + + + Though the zip specification doesn't prohibit zipfiles with duplicate + entries, Sane zip files have no duplicates, and the DotNetZip library + cannot create zip files with duplicate entries. If an application attempts + to call with a name that duplicates one + already used within the archive, the library will throw an Exception. + + + This property allows the application to specify whether the + ZipOutputStream instance considers ordinal case when checking for + uniqueness of zip entries. + + + + + + Indicates whether to encode entry filenames and entry comments using + Unicode (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + the ZipOutputStream will encode all filenames and comments using + the IBM437 codepage. This can cause "loss of information" on some + filenames, but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipOutputStream, does not set the + encoding, then adds two files, each with names of four Chinese characters + each, this will result in a duplicate filename exception. In the case + where you add a single file with a name containing four Chinese + characters, the zipfile will save properly, but extracting that file + later, with any zip tool, will result in an error, because the question + mark is not legal for use within filenames on Windows. These are just a + few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + The text encoding to use when emitting entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the + ProvisionalAlternateEncoding property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of ProvisionalAlternateEncoding between each entry you + add, and between adding entries and the call to Close(). Don't do + this. It will likely result in a zipfile that is not readable. For best + interoperability, either leave ProvisionalAlternateEncoding + alone, or specify it only once, before adding any entries to the + ZipOutputStream instance. There is one exception to this + recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. If you use an incorrect codepage when reading a zipfile, you + will get entries with filenames that are incorrect, and the incorrect + filenames may even contain characters that are not legal for use within + filenames in Windows. Extracting entries with illegal characters in the + filenames will lead to exceptions. It's too bad, but this is just the way + things are with code pages in zip files. Caveat Emptor. + + + + One possible approach for specifying the code page for a given zip file is + to describe the code page in a human-readable form in the Zip comment. For + example, the comment may read "Entries in this archive are encoded in the + Big5 code page". For maximum interoperability, the zip comment in this + case should be encoded in the default, IBM437 code page. In this case, + the zip comment is encoded using a different page than the filenames. To + do this, Specify ProvisionalAlternateEncoding to your desired + region-specific code page, once before adding any entries, and then set + the property and reset + ProvisionalAlternateEncoding to IBM437 before calling Close(). + + + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, when + the CompressionMethod is Deflate, and if the entry is + larger than the given size. Zero means "always use parallel + deflate", while -1 means "never use parallel deflate". + + + + If the entry size cannot be known before compression, as with any entry + added via a ZipOutputStream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is slightly less effective. + + + + Parallel deflate tends to not be as effective as single-threaded deflate + because the original data stream is split into multiple independent + buffers, each of which is compressed in parallel. But because they are + treated independently, there is no opportunity to share compression + dictionaries, and additional framing bytes must be added to the output + stream. For that reason, a deflated stream may be slightly larger when + compressed using parallel deflate, as compared to a traditional + single-threaded deflate. For files of about 512k, the increase over the + normal deflate is as much as 5% of the total compressed size. For larger + files, the difference can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when using + Encryption. This is primarily because encryption tends to slow down + the entire pipeline. Also, multi-threaded compression gives less of an + advantage when using lower compression levels, for example . You may have to perform + some tests to determine the best approach for your situation. + + + + The default value for this property is -1, which means parallel + compression will not be performed unless you set it to zero. + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is + effective only if set before calling + ZipOutputStream.Write() for the first time. + + + + + + + + + Always returns false. + + + + + Always returns false. + + + + + Always returns true. + + + + + Always returns a NotSupportedException. + + + + + Setting this property always returns a NotSupportedException. Getting it + returns the value of the Position on the underlying stream. + + + + + Provides a stream metaphor for reading zip files. + + + + + This class provides an alternative programming model for reading zip files to + the one enabled by the class. Use this when reading zip + files, as an alternative to the class, when you would + like to use a Stream class to read the file. + + + + Some application designs require a readable stream for input. This stream can + be used to read a zip file, and extract entries. + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and + extract zip files. ZipInputStream can be used only to read and + extract zip files. If you want to use a stream to create zip files, check + out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + + Create a ZipInputStream, wrapping it around an existing stream. + + + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and extract + zip files. ZipInputStream can be used only to read and extract zip + files. If you want to use a stream to create zip files, check out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + The stream to read. It must be readable. This stream will be closed at + the time the ZipInputStream is closed. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(inputFileName, FileMode.Open, FileAccess.Read)) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using raw As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read) + Using input As ZipInputStream = New ZipInputStream(raw) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Using + End Sub + + + + + + Create a ZipInputStream, given the name of an existing zip file. + + + + + + This constructor opens a FileStream for the given zipfile, and + wraps a ZipInputStream around that. See the documentation for the + constructor for full details. + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + + + The name of the filesystem file to read. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var input= new ZipInputStream(inputFileName)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using input As ZipInputStream = New ZipInputStream(inputFileName) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Sub + + + + + + Create a ZipInputStream, explicitly specifying whether to + keep the underlying stream open. + + + + See the documentation for the ZipInputStream(Stream) + constructor for a discussion of the class, and an example of how to use the class. + + + + The stream to read from. It must be readable. + + + + true if the application would like the stream + to remain open after the ZipInputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + Read the data from the stream into the buffer. + + + + + The data for the zipentry will be decrypted and uncompressed, as + necessary, before being copied into the buffer. + + + + You must set the property before calling + Read() the first time for an encrypted entry. To determine if an + entry is encrypted and requires a password, check the ZipEntry.Encryption property. + + + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Read the next entry from the zip file. + + + + + Call this method just before calling , + to position the pointer in the zip file to the next entry that can be + read. Subsequent calls to Read(), will decrypt and decompress the + data in the zip file, until Read() returns 0. + + + + Each time you call GetNextEntry(), the pointer in the wrapped + stream is moved to the next entry in the zip file. If you call , and thus re-position the pointer within + the file, you will need to call GetNextEntry() again, to insure + that the file pointer is positioned at the beginning of a zip entry. + + + + This method returns the ZipEntry. Using a stream approach, you will + read the raw bytes for an entry in a zip file via calls to Read(). + Alternatively, you can extract an entry into a file, or a stream, by + calling , or one of its siblings. + + + + + + The ZipEntry read. Returns null (or Nothing in VB) if there are no more + entries in the zip file. + + + + + + Dispose the stream. + + + + + This method disposes the ZipInputStream. It may also close the + underlying stream, depending on which constructor was used. + + + + Typically the application will call Dispose() implicitly, via + a using statement in C#, or a Using statement in VB. + + + + Application code won't call this code directly. This method may + be invoked in two distinct scenarios. If disposing == true, the + method has been called directly or indirectly by a user's code, + for example via the public Dispose() method. In this case, both + managed and unmanaged resources can be referenced and disposed. + If disposing == false, the method has been called by the runtime + from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources + must be referenced or disposed. + + + + + true if the Dispose method was invoked by user code. + + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + + + + This method seeks in the underlying stream. + + + + + Call this method if you want to seek around within the zip file for random access. + + + + Applications can intermix calls to Seek() with calls to . After a call to Seek(), + GetNextEntry() will get the next ZipEntry that falls after + the current position in the input stream. You're on your own for finding + out just where to seek in the stream, to get to the various entries. + + + + + the offset point to seek to + the reference point from which to seek + The new position + + + + This method always throws a NotSupportedException. + + ignored + + + + The text encoding to use when reading entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to read zip archives that use something other than + UTF-8 or IBM437, set this property to specify the code page to use when + reading encoded filenames and comments for each ZipEntry in the zip + file. + + + + This property is "provisional". When the entry in the zip archive is not + explicitly marked as using UTF-8, then IBM437 is used to decode filenames + and comments. If a loss of data would result from using IBM436 - + specifically when encoding and decoding is not reflexive - the codepage + specified here is used. It is possible, therefore, to have a given entry + with a Comment encoded in IBM437 and a FileName encoded with + the specified "provisional" codepage. + + + + When a zip file uses an arbitrary, non-UTF8 code page for encoding, there + is no standard way for the reader application - whether DotNetZip, WinZip, + WinRar, or something else - to know which codepage has been used for the + entries. Readers of zip files are not able to inspect the zip file and + determine the codepage that was used for the entries contained within it. + It is left to the application or user to determine the necessary codepage + when reading zip files encoded this way. If you use an incorrect codepage + when reading a zipfile, you will get entries with filenames that are + incorrect, and the incorrect filenames may even contain characters that + are not legal for use within filenames in Windows. Extracting entries with + illegal characters in the filenames will lead to exceptions. It's too bad, + but this is just the way things are with code pages in zip files. Caveat + Emptor. + + + + + + + Size of the work buffer to use for the ZLIB codec during decompression. + + + + Setting this affects the performance and memory efficiency of compression + and decompression. For larger files, setting this to a larger size may + improve performance, but the exact numbers vary depending on available + memory, and a bunch of other variables. I don't have good firm + recommendations on how to set it. You'll have to test it yourself. Or + just leave it alone and accept the default. + + + + + Sets the password to be used on the ZipInputStream instance. + + + + + + When reading a zip archive, this password is used to read and decrypt the + entries that are encrypted within the zip file. When entries within a zip + file use different passwords, set the appropriate password for the entry + before the first call to Read() for each entry. + + + + When reading an entry that is not encrypted, the value of this property is + ignored. + + + + + + + This example uses the ZipInputStream to read and extract entries from a + zip file, using a potentially different password for each entry. + + + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(_inputFileName, FileMode.Open, FileAccess.Read )) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + input.Password = PasswordForEntry(e.FileName); + if (e.IsDirectory) continue; + string outputPath = Path.Combine(_extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + + + + Always returns true. + + + + + Returns the value of CanSeek for the underlying (wrapped) stream. + + + + + Always returns false. + + + + + Returns the length of the underlying stream. + + + + + Gets or sets the position of the underlying stream. + + + Setting the position is equivalent to calling Seek(value, SeekOrigin.Begin). + + + + + Sort-of like a factory method, ForUpdate is used only when + the application needs to update the zip entry metadata for + a segmented zip file, when the starting segment is earlier + than the ending segment, for a particular entry. + + + + The update is always contiguous, never rolls over. As a + result, this method doesn't need to return a ZSS; it can + simply return a FileStream. That's why it's "sort of" + like a Factory method. + + + Caller must Close/Dispose the stream object returned by + this method. + + + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Name of the filesystem file corresponding to the current segment. + + + + The name is not always the name currently being used in the + filesystem. When rwMode is RwMode.Write, the filesystem file has a + temporary name until the stream is closed or until the next segment is + started. + + + + + + This class exposes a set of COM-accessible wrappers for static + methods available on the ZipFile class. You don't need this + class unless you are using DotNetZip from a COM environment. + + + + + A wrapper for ZipFile.IsZipFile(string) + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.IsZipFile(string, bool) + + + We cannot use "overloaded" Method names in COM interop. + So, here, we use a unique name. + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.CheckZip(string) + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A COM-friendly wrapper for the static method . + + + The filename to of the zip file to check. + + The password to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A wrapper for ZipFile.FixZipDirectory(string) + + The filename to of the zip file to fix. + + + + A wrapper for ZipFile.LibraryVersion + + + the version number on the DotNetZip assembly, formatted as a string. + + + + + An enum providing the options when an error occurs during opening or reading + of a file or directory that is being saved to a zip file. + + + + + This enum describes the actions that the library can take when an error occurs + opening or reading a file, as it is being saved into a Zip archive. + + + + In some cases an error will occur when DotNetZip tries to open a file to be + added to the zip archive. In other cases, an error might occur after the + file has been successfully opened, while DotNetZip is reading the file. + + + + The first problem might occur when calling AddDirectory() on a directory + that contains a Clipper .dbf file; the file is locked by Clipper and + cannot be opened by another process. An example of the second problem is + the ERROR_LOCK_VIOLATION that results when a file is opened by another + process, but not locked, and a range lock has been taken on the file. + Microsoft Outlook takes range locks on .PST files. + + + + + + Throw an exception when an error occurs while zipping. This is the default + behavior. (For COM clients, this is a 0 (zero).) + + + + + When an error occurs during zipping, for example a file cannot be opened, + skip the file causing the error, and continue zipping. (For COM clients, + this is a 1.) + + + + + When an error occurs during zipping, for example a file cannot be opened, + retry the operation that caused the error. Be careful with this option. If + the error is not temporary, the library will retry forever. (For COM + clients, this is a 2.) + + + + + When an error occurs, invoke the zipError event. The event type used is + . A typical use of this option: + a GUI application may wish to pop up a dialog to allow the user to view the + error that occurred, and choose an appropriate action. After your + processing in the error event, if you want to skip the file, set on the + ZipProgressEventArgs.CurrentEntry to Skip. If you want the + exception to be thrown, set ZipErrorAction on the CurrentEntry + to Throw. If you want to cancel the zip, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + Skip in that a cancel will not save any further entries, if there are any. + (For COM clients, the value of this enum is a 3.) + + + + + An enum that provides the various encryption algorithms supported by this + library. + + + + + + PkzipWeak implies the use of Zip 2.0 encryption, which is known to be + weak and subvertible. + + + + A note on interoperability: Values of PkzipWeak and None are + specified in PKWARE's zip + specification, and are considered to be "standard". Zip archives + produced using these options will be interoperable with many other zip tools + and libraries, including Windows Explorer. + + + + Values of WinZipAes128 and WinZipAes256 are not part of the Zip + specification, but rather imply the use of a vendor-specific extension from + WinZip. If you want to produce interoperable Zip archives, do not use these + values. For example, if you produce a zip archive using WinZipAes256, you + will be able to open it in Windows Explorer on Windows XP and Vista, but you + will not be able to extract entries; trying this will lead to an "unspecified + error". For this reason, some people have said that a zip archive that uses + WinZip's AES encryption is not actually a zip archive at all. A zip archive + produced this way will be readable with the WinZip tool (Version 11 and + beyond). + + + + There are other third-party tools and libraries, both commercial and + otherwise, that support WinZip's AES encryption. These will be able to read + AES-encrypted zip archives produced by DotNetZip, and conversely applications + that use DotNetZip to read zip archives will be able to read AES-encrypted + archives produced by those tools or libraries. Consult the documentation for + those other tools and libraries to find out if WinZip's AES encryption is + supported. + + + + In case you care: According to the WinZip specification, the + actual AES key used is derived from the via an + algorithm that complies with RFC 2898, using an iteration + count of 1000. The algorithm is sometimes referred to as PBKDF2, which stands + for "Password Based Key Derivation Function #2". + + + + A word about password strength and length: The AES encryption technology is + very good, but any system is only as secure as the weakest link. If you want + to secure your data, be sure to use a password that is hard to guess. To make + it harder to guess (increase its "entropy"), you should make it longer. If + you use normal characters from an ASCII keyboard, a password of length 20 will + be strong enough that it will be impossible to guess. For more information on + that, I'd encourage you to read this + article. + + + + The WinZip AES algorithms are not supported with the version of DotNetZip that + runs on the .NET Compact Framework. This is because .NET CF lacks the + HMACSHA1 class that is required for producing the archive. + + + + + + No encryption at all. + + + + + Traditional or Classic pkzip encryption. + + + + + WinZip AES encryption (128 key bits). + + + + + WinZip AES encryption (256 key bits). + + + + + An encryption algorithm that is not supported by DotNetZip. + + + + + An enum for the options when extracting an entry would overwrite an existing file. + + + + + This enum describes the actions that the library can take when an + Extract() or ExtractWithPassword() method is called to extract an + entry to a filesystem, and the extraction would overwrite an existing filesystem + file. + + + + + + + Throw an exception when extraction would overwrite an existing file. (For + COM clients, this is a 0 (zero).) + + + + + When extraction would overwrite an existing file, overwrite the file silently. + The overwrite will happen even if the target file is marked as read-only. + (For COM clients, this is a 1.) + + + + + When extraction would overwrite an existing file, don't overwrite the file, silently. + (For COM clients, this is a 2.) + + + + + When extraction would overwrite an existing file, invoke the ExtractProgress + event, using an event type of . In + this way, the application can decide, just-in-time, whether to overwrite the + file. For example, a GUI application may wish to pop up a dialog to allow + the user to choose. You may want to examine the property before making + the decision. If, after your processing in the Extract progress event, you + want to NOT extract the file, set + on the ZipProgressEventArgs.CurrentEntry to DoNotOverwrite. + If you do want to extract the file, set ZipEntry.ExtractExistingFile + to OverwriteSilently. If you want to cancel the Extraction, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + DoNotOverwrite in that a cancel will not extract any further entries, if + there are any. (For COM clients, the value of this enum is a 3.) + + + + + Enumerates the options for a logical conjunction. This enum is intended for use + internally by the FileSelector class. + + + + + FileSelector encapsulates logic that selects files from a source - a zip file + or the filesystem - based on a set of criteria. This class is used internally + by the DotNetZip library, in particular for the AddSelectedFiles() methods. + This class can also be used independently of the zip capability in DotNetZip. + + + + + + The FileSelector class is used internally by the ZipFile class for selecting + files for inclusion into the ZipFile, when the method, or one of + its overloads, is called. It's also used for the methods. Typically, an + application that creates or manipulates Zip archives will not directly + interact with the FileSelector class. + + + + Some applications may wish to use the FileSelector class directly, to + select files from disk volumes based on a set of criteria, without creating or + querying Zip archives. The file selection criteria include: a pattern to + match the filename; the last modified, created, or last accessed time of the + file; the size of the file; and the attributes of the file. + + + + Consult the documentation for + for more information on specifying the selection criteria. + + + + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + By default the FileSelector will traverse NTFS Reparse Points. To + change this, use FileSelector(String, bool). + + + + The criteria for file selection. + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + The criteria for file selection. + + whether to traverse NTFS reparse points (junctions). + + + + + Returns a string representation of the FileSelector object. + + The string representation of the boolean logic statement of the file + selection criteria for this instance. + + + + Returns the names of the files in the specified directory + that fit the selection criteria specified in the FileSelector. + + + + This is equivalent to calling + with recurseDirectories = false. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Returns the names of the files in the specified directory that fit the + selection criteria specified in the FileSelector, optionally recursing + through subdirectories. + + + + This method applies the file selection criteria contained in the + FileSelector to the files contained in the given directory, and + returns the names of files that conform to the criteria. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + Whether to recurse through subdirectories when applying the file + selection criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + a collection of ZipEntry objects that conform to the criteria. + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + This overload allows the selection of ZipEntry instances from the ZipFile to be restricted + to entries contained within a particular directory in the ZipFile. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the criteria. + + + + The string specifying which files to include when retrieving. + + + + + Specify the criteria in statements of 3 elements: a noun, an operator, + and a value. Consider the string "name != *.doc" . The noun is + "name". The operator is "!=", implying "Not Equal". The value is + "*.doc". That criterion, in English, says "all files with a name that + does not end in the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; + "atime", "mtime", and "ctime" for last access time, last modfied time, + and created time of the file, respectively; "attributes" (or "attrs") + for the file attributes; "size" (or "length") for the file length + (uncompressed); and "type" for the type of object, either a file or a + directory. The "attributes", "type", and "name" nouns all support = + and != as operators. The "size", "atime", "mtime", and "ctime" nouns + support = and !=, and >, >=, <, <= as well. The times are + taken to be expressed in local time. + + + + Specify values for the file attributes as a string with one or more of + the characters H,R,S,A,I,L in any order, implying file attributes of + Hidden, ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint + (symbolic link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as + the format. If you omit the HH:mm:ss portion, it is assumed to be + 00:00:00 (midnight). + + + + The value for a size criterion is expressed in integer quantities of + bytes, kilobytes (use k or kb after the number), megabytes (m or mb), + or gigabytes (g or gb). + + + + The value for a name is a pattern to match against the filename, + potentially including wildcards. The pattern follows CMD.exe glob + rules: * implies one or more of any character, while ? implies one + character. If the name pattern contains any slashes, it is matched to + the entire filename, including the path; otherwise, it is matched + against only the filename without the path. This means a pattern of + "*\*.*" matches all files one directory level deep, while a pattern of + "*.*" matches all files in all directories. + + + + To specify a name pattern that includes spaces, use single quotes + around the pattern. A pattern of "'* *.*'" will match all files that + have spaces in the filename. The full criteria string for that would + be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D + (implying a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + ctime > 2009/01/01-03:00:00 + all files with a created time after 3am (local time), + on January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND, OR, and XOR. Using + a string like "name = *.txt AND size >= 100k" for the + selectionCriteria retrieves entries whose names end in .txt, and whose + uncompressed size is greater than or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to + group clauses in the boolean logic. Absent parenthesis, the + precedence of the criterion atoms is determined by order of + appearance. Unlike the C# language, the AND conjunction does not take + precendence over the logical OR. This is important only in strings + that contain 3 or more criterion atoms. In other words, "name = *.txt + and size > 1000 or attributes = H" implies "((name = *.txt AND size + > 1000) OR attributes = H)" while "attributes = H OR name = *.txt + and size > 1000" evaluates to "((attributes = H OR name = *.txt) + AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to + retrieve all entries that were last updated on 2009 February 14, + specify "mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this + to say: all files updated after 12:00am on February 14th, until + 12:00am on February 15th. You can use the same bracketing approach to + specify any time period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no + spaces, it is treated as a pattern to match for the filename. + Therefore a string like "*.xls" will be equivalent to specifying "name + = *.xls". This "shorthand" notation does not work with compound + criteria. + + + + There is no logic in this class that insures that the inclusion + criteria are internally consistent. For example, it's possible to + specify criteria that says the file must have a size of less than 100 + bytes, as well as a size that is greater than 1000 bytes. Obviously + no file will ever satisfy such criteria, but this class does not check + for or detect such inconsistencies. + + + + + + Thrown in the setter if the value has an invalid syntax. + + + + + Indicates whether searches will traverse NTFS reparse points, like Junctions. + + + + + Summary description for EnumUtil. + + + + + Returns the value of the DescriptionAttribute if the specified Enum + value has one. If not, returns the ToString() representation of the + Enum value. + + The Enum to get the description for + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. + Note: use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. A + parameter specified whether the operation is case-sensitive. Note: + use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + Whether the operation is case-sensitive or not. + + + + + This is a helper class supporting WinZip AES encryption. + This class is intended for use only by the DotNetZip library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the WinZipAesCrypto class. Instead, the WinZipAesCrypto class is + instantiated and used by the ZipEntry() class when WinZip AES + encryption or decryption on an entry is employed. + + + + + A stream that encrypts as it writes, or decrypts as it reads. The + Crypto is AES in CTR (counter) mode, which is compatible with the AES + encryption employed by WinZip 12.0. + + + + The AES/CTR encryption protocol used by WinZip works like this: + + - start with a counter, initialized to zero. + + - to encrypt, take the data by 16-byte blocks. For each block: + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the plaintext to + get the ciphertext. + - compute the mac on the encrypted bytes + - when finished with all blocks, store the computed MAC. + + - to decrypt, take the data by 16-byte blocks. For each block: + - compute the mac on the encrypted bytes, + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the ciphertext to + get the plaintext. + - when finished with all blocks, compare the computed MAC against + the stored MAC + + + + + + + The constructor. + + The underlying stream + To either encrypt or decrypt. + The pre-initialized WinZipAesCrypto object. + The maximum number of bytes to read from the stream. + + + + Close the stream. + + + + + Flush the content in the stream. + + + + + This method throws a NotImplementedException. + + + + + This method throws a NotImplementedException. + + + + + Returns the final HMAC-SHA1-80 for the data that was encrypted. + + + + + Returns true if the stream can be read. + + + + + Always returns false. + + + + + Returns true if the CryptoMode is Encrypt. + + + + + Getting this property throws a NotImplementedException. + + + + + Getting or Setting this property throws a NotImplementedException. + + + + + Issued when an ZipEntry.ExtractWithPassword() method is invoked + with an incorrect password. + + + + + Base class for all exceptions defined by and throw by the Zip library. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that a read was attempted on a stream, and bad or incomplete data was + received. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when an CRC check fails upon extracting an entry from a zip archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when errors occur saving a self-extracting archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that an operation was attempted on a ZipFile which was not possible + given the state of the instance. For example, if you call Save() on a ZipFile + which has no filename set, you can get this exception. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Collects general purpose utility methods. + + + + private null constructor + + + + Utility routine for transforming path names from filesystem format (on Windows that means backslashes) to + a format suitable for use within zipfiles. This means trimming the volume letter and colon (if any) And + swapping backslashes for forward slashes. + + source path. + transformed path + + + + Finds a signature in the zip stream. This is useful for finding + the end of a zip entry, for example, or the beginning of the next ZipEntry. + + + + + Scans through 64k at a time. + + + + If the method fails to find the requested signature, the stream Position + after completion of this method is unchanged. If the method succeeds in + finding the requested signature, the stream position after completion is + direct AFTER the signature found in the stream. + + + + The stream to search + The 4-byte signature to find + The number of bytes read + + + + Create a pseudo-random filename, suitable for use as a temporary + file, and open it. + + + + The System.IO.Path.GetRandomFileName() method is not available on + the Compact Framework, so this library provides its own substitute + on NETCF. + + + This method produces a filename of the form + DotNetZip-xxxxxxxx.tmp, where xxxxxxxx is replaced by randomly + chosen characters, and creates that file. + + + + + + Workitem 7889: handle ERROR_LOCK_VIOLATION during read + + + This could be gracefully handled with an extension attribute, but + This assembly is built for .NET 2.0, so I cannot use them. + + + + + A decorator stream. It wraps another stream, and performs bookkeeping + to keep track of the stream Position. + + + + In some cases, it is not possible to get the Position of a stream, let's + say, on a write-only output stream like ASP.NET's + Response.OutputStream, or on a different write-only stream + provided as the destination for the zip by the application. In this + case, programmers can use this counting stream to count the bytes read + or written. + + + Consider the scenario of an application that saves a self-extracting + archive (SFX), that uses a custom SFX stub. + + + Saving to a filesystem file, the application would open the + filesystem file (getting a FileStream), save the custom sfx stub + into it, and then call ZipFile.Save(), specifying the same + FileStream. ZipFile.Save() does the right thing for the zipentry + offsets, by inquiring the Position of the FileStream before writing + any data, and then adding that initial offset into any ZipEntry + offsets in the zip directory. Everything works fine. + + + Now suppose the application is an ASPNET application and it saves + directly to Response.OutputStream. It's not possible for DotNetZip to + inquire the Position, so the offsets for the SFX will be wrong. + + + The workaround is for the application to use this class to wrap + HttpResponse.OutputStream, then write the SFX stub and the ZipFile + into that wrapper stream. Because ZipFile.Save() can inquire the + Position, it will then do the right thing with the offsets. + + + + + + The constructor. + + The underlying stream + + + + Adjust the byte count on the stream. + + + + the number of bytes to subtract from the count. + + + + + Subtract delta from the count of bytes written to the stream. + This is necessary when seeking back, and writing additional data, + as happens in some cases when saving Zip files. + + + + + + The read method. + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Write data into the stream. + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Flushes the underlying stream. + + + + + Seek in the stream. + + the offset point to seek to + the reference point from which to seek + The new position + + + + Set the length of the underlying stream. Be careful with this! + + + the length to set on the underlying stream. + + + + Gets the wrapped stream. + + + + + The count of bytes written out to the stream. + + + + + the count of bytes that have been read from the stream. + + + + + Whether the stream can be read. + + + + + Whether it is possible to call Seek() on the stream. + + + + + Whether it is possible to call Write() on the stream. + + + + + The length of the underlying stream. + + + + + Returns the sum of number of bytes written, plus the initial + offset before writing. + + + + + The Position of the stream. + + + + + This class implements the "traditional" or "classic" PKZip encryption, + which today is considered to be weak. On the other hand it is + ubiquitous. This class is intended for use only by the DotNetZip + library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the ZipCrypto class. Instead, the ZipCrypto class is instantiated and + used by the ZipEntry() class when encryption or decryption on an entry + is employed. If for some reason you really wanted to use a weak + encryption algorithm in some other application, you might use this + library. But you would be much better off using one of the built-in + strong encryption libraries in the .NET Framework, like the AES + algorithm or SHA. + + + + + The default constructor for ZipCrypto. + + + + This class is intended for internal use by the library only. It's + probably not useful to you. Seriously. Stop reading this + documentation. It's a waste of your time. Go do something else. + Check the football scores. Go get an ice cream with a friend. + Seriously. + + + + + + Call this method on a cipher text to render the plaintext. You must + first initialize the cipher with a call to InitCipher. + + + + + var cipher = new ZipCrypto(); + cipher.InitCipher(Password); + // Decrypt the header. This has a side effect of "further initializing the + // encryption keys" in the traditional zip encryption. + byte[] DecryptedMessage = cipher.DecryptMessage(EncryptedMessage); + + + + The encrypted buffer. + + The number of bytes to encrypt. + Should be less than or equal to CipherText.Length. + + + The plaintext. + + + + This is the converse of DecryptMessage. It encrypts the plaintext + and produces a ciphertext. + + + The plain text buffer. + + + The number of bytes to encrypt. + Should be less than or equal to plainText.Length. + + + The ciphertext. + + + + This initializes the cipher with the given password. + See AppNote.txt for details. + + + + The passphrase for encrypting or decrypting with this cipher. + + + + + Step 1 - Initializing the encryption keys + ----------------------------------------- + Start with these keys: + Key(0) := 305419896 (0x12345678) + Key(1) := 591751049 (0x23456789) + Key(2) := 878082192 (0x34567890) + + Then, initialize the keys with a password: + + loop for i from 0 to length(password)-1 + update_keys(password(i)) + end loop + + Where update_keys() is defined as: + + update_keys(char): + Key(0) := crc32(key(0),char) + Key(1) := Key(1) + (Key(0) bitwiseAND 000000ffH) + Key(1) := Key(1) * 134775813 + 1 + Key(2) := crc32(key(2),key(1) rightshift 24) + end update_keys + + Where crc32(old_crc,char) is a routine that given a CRC value and a + character, returns an updated CRC value after applying the CRC-32 + algorithm described elsewhere in this document. + + + + + After the keys are initialized, then you can use the cipher to + encrypt the plaintext. + + + + Essentially we encrypt the password with the keys, then discard the + ciphertext for the password. This initializes the keys for later use. + + + + + + + From AppNote.txt: + unsigned char decrypt_byte() + local unsigned short temp + temp :=- Key(2) | 2 + decrypt_byte := (temp * (temp ^ 1)) bitshift-right 8 + end decrypt_byte + + + + + A Stream for reading and concurrently decrypting data from a zip file, + or for writing and concurrently encrypting data to a zip file. + + + + The constructor. + The underlying stream + To either encrypt or decrypt. + The pre-initialized ZipCrypto object. + + + + Delegate in which the application writes the ZipEntry content for the named entry. + + + The name of the entry that must be written. + The stream to which the entry data should be written. + + + When you add an entry and specify a WriteDelegate, via , the application + code provides the logic that writes the entry data directly into the zip file. + + + + + This example shows how to define a WriteDelegate that obtains a DataSet, and then + writes the XML for the DataSet into the zip archive. There's no need to + save the XML to a disk file first. + + + private void WriteEntry (String filename, Stream output) + { + DataSet ds1 = ObtainDataSet(); + ds1.WriteXml(output); + } + + private void Run() + { + using (var zip = new ZipFile()) + { + zip.AddEntry(zipEntryName, WriteEntry); + zip.Save(zipFileName); + } + } + + + + Private Sub WriteEntry (ByVal filename As String, ByVal output As Stream) + DataSet ds1 = ObtainDataSet() + ds1.WriteXml(stream) + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + + Delegate in which the application opens the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should open the stream for. + + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate in which the application closes the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should close the stream for. + + + The stream to be closed. + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate for the callback by which the application tells the + library the CompressionLevel to use for a file. + + + + + Using this callback, the application can, for example, specify that + previously-compressed files (.mp3, .png, .docx, etc) should use a + CompressionLevel of None, or can set the compression level based + on any other factor. + + + + + + + In an EventArgs type, indicates which sort of progress event is being + reported. + + + There are events for reading, events for saving, and events for + extracting. This enumeration allows a single EventArgs type to be sued to + describe one of multiple subevents. For example, a SaveProgress event is + invoked before, after, and during the saving of a single entry. The value + of an enum with this type, specifies which event is being triggered. The + same applies to Extraction, Reading and Adding events. + + + + + Indicates that a Add() operation has started. + + + + + Indicates that an individual entry in the archive has been added. + + + + + Indicates that a Add() operation has completed. + + + + + Indicates that a Read() operation has started. + + + + + Indicates that an individual entry in the archive is about to be read. + + + + + Indicates that an individual entry in the archive has just been read. + + + + + Indicates that a Read() operation has completed. + + + + + The given event reports the number of bytes read so far + during a Read() operation. + + + + + Indicates that a Save() operation has started. + + + + + Indicates that an individual entry in the archive is about to be written. + + + + + Indicates that an individual entry in the archive has just been saved. + + + + + Indicates that a Save() operation has completed. + + + + + Indicates that the zip archive has been created in a + temporary location during a Save() operation. + + + + + Indicates that the temporary file is about to be renamed to the final archive + name during a Save() operation. + + + + + Indicates that the temporary file is has just been renamed to the final archive + name during a Save() operation. + + + + + Indicates that the self-extracting archive has been compiled + during a Save() operation. + + + + + The given event is reporting the number of source bytes that have run through the compressor so far + during a Save() operation. + + + + + Indicates that an entry is about to be extracted. + + + + + Indicates that an entry has just been extracted. + + + + + Indicates that extraction of an entry would overwrite an existing + filesystem file. You must use + + ExtractExistingFileAction.InvokeExtractProgressEvent in the call + to ZipEntry.Extract() in order to receive this event. + + + + + The given event is reporting the number of bytes written so far for + the current entry during an Extract() operation. + + + + + Indicates that an ExtractAll operation is about to begin. + + + + + Indicates that an ExtractAll operation has completed. + + + + + Indicates that an error has occurred while saving a zip file. + This generally means the file cannot be opened, because it has been + removed, or because it is locked by another process. It can also + mean that the file cannot be Read, because of a range lock conflict. + + + + + Provides information about the progress of a save, read, or extract operation. + This is a base class; you will probably use one of the classes derived from this one. + + + + + The total number of entries to be saved or extracted. + + + + + The name of the last entry saved or extracted. + + + + + In an event handler, set this to cancel the save or extract + operation that is in progress. + + + + + The type of event being reported. + + + + + Returns the archive name associated to this event. + + + + + The number of bytes read or written so far for this entry. + + + + + Total number of bytes that will be read or written for this entry. + This number will be -1 if the value cannot be determined. + + + + + Provides information about the progress of a Read operation. + + + + + Provides information about the progress of a Add operation. + + + + + Provides information about the progress of a save operation. + + + + + Constructor for the SaveProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been saved. + The entry involved in the event. + + + + Number of entries saved so far. + + + + + Provides information about the progress of the extract operation. + + + + + Constructor for the ExtractProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been extracted. + The entry involved in the event. + The location to which entries are extracted. + + + + Number of entries extracted so far. This is set only if the + EventType is Extracting_BeforeExtractEntry or Extracting_AfterExtractEntry, and + the Extract() is occurring witin the scope of a call to ExtractAll(). + + + + + Returns the extraction target location, a filesystem path. + + + + + Provides information about the an error that occurred while zipping. + + + + + Returns the exception that occurred, if any. + + + + + Returns the name of the file that caused the exception, if any. + + + + + Represents a single entry in a ZipFile. Typically, applications get a ZipEntry + by enumerating the entries within a ZipFile, or by adding an entry to a ZipFile. + + + + + Reads one entry from the zip directory structure in the zip file. + + + + The zipfile for which a directory entry will be read. From this param, the + method gets the ReadStream and the expected text encoding + (ProvisionalAlternateEncoding) which is used if the entry is not marked + UTF-8. + + + + a list of previously seen entry names; used to prevent duplicates. + + + the entry read from the archive. + + + + Returns true if the passed-in value is a valid signature for a ZipDirEntry. + + the candidate 4-byte signature value. + true, if the signature is valid according to the PKWare spec. + + + + Default constructor. + + + Applications should never need to call this directly. It is exposed to + support COM Automation environments. + + + + + Sets the NTFS Creation, Access, and Modified times for the given entry. + + + + + When adding an entry from a file or directory, the Creation, Access, and + Modified times for the given entry are automatically set from the + filesystem values. When adding an entry from a stream or string, the + values are implicitly set to DateTime.Now. The application may wish to + set these values to some arbitrary value, before saving the archive, and + can do so using the various setters. If you want to set all of the times, + this method is more efficient. + + + + The values you set here will be retrievable with the , and properties. + + + + When this method is called, if both and are false, then the + EmitTimesInWindowsFormatWhenSaving flag is automatically set. + + + + DateTime values provided here without a DateTimeKind are assumed to be Local Time. + + + + the creation time of the entry. + the last access time of the entry. + the last modified time of the entry. + + + + + + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Extract the entry to the filesystem, starting at the current + working directory. + + + + This method has a bunch of overloads! One of them is sure to + be the right one for you... If you don't like these, check + out the ExtractWithPassword() methods. + + + + + + + + + This method extracts an entry from a zip file into the current + working directory. The path of the entry as extracted is the full + path as specified in the zip archive, relative to the current + working directory. After the file is extracted successfully, the + file attributes and timestamps are set. + + + + The action taken when extraction an entry would overwrite an + existing file is determined by the property. + + + + Within the call to Extract(), the content for the entry is + written into a filesystem file, and then the last modified time of the + file is set according to the property on + the entry. See the remarks the property for + some details about the last modified time. + + + + + + + Extract the entry to a file in the filesystem, using the specified + behavior when extraction would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the file is set after + extraction. + + + + + The action to take if extraction would overwrite an existing file. + + + + + Extracts the entry to the specified stream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + the stream to which the entry should be extracted. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory. + + + the pathname of the base directory + + + + + + This example extracts only the entries in a zip file that are .txt files, + into a directory called "textfiles". + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + { + zip[s1].Extract("textfiles"); + } + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + + Using this method, existing entries in the filesystem will not be + overwritten. If you would like to force the overwrite of existing + files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + String sZipPath = "Airborne.zip"; + String sFilePath = "Readme.txt"; + String sRootFolder = "Digado"; + using (ZipFile zip = ZipFile.Read(sZipPath)) + { + if (zip.EntryFileNames.Contains(sFilePath)) + { + // use the string indexer on the zip file + zip[sFileName].Extract(sRootFolder, + ExtractExistingFileAction.OverwriteSilently); + } + } + + + + Dim sZipPath as String = "Airborne.zip" + Dim sFilePath As String = "Readme.txt" + Dim sRootFolder As String = "Digado" + Using zip As ZipFile = ZipFile.Read(sZipPath) + If zip.EntryFileNames.Contains(sFilePath) + ' use the string indexer on the zip file + zip(sFilePath).Extract(sRootFolder, _ + ExtractExistingFileAction.OverwriteSilently) + End If + End Using + + + + the pathname of the base directory + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, using the current working directory + and the specified password. + + + + This method has a bunch of overloads! One of them is sure to be + the right one for you... + + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property for some + details about how the "last modified" time of the created file is + set. + + + + + In this example, entries that use encryption are extracted using a + particular password. + + using (var zip = ZipFile.Read(FilePath)) + { + foreach (ZipEntry e in zip) + { + if (e.UsesEncryption) + e.ExtractWithPassword("Secret!"); + else + e.Extract(); + } + } + + + Using zip As ZipFile = ZipFile.Read(FilePath) + Dim e As ZipEntry + For Each e In zip + If (e.UsesEncryption) + e.ExtractWithPassword("Secret!") + Else + e.Extract + End If + Next + End Using + + + The Password to use for decrypting the entry. + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified password. + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The pathname of the base directory. + The Password to use for decrypting the entry. + + + + Extract the entry to a file in the filesystem, relative to the + current directory, using the specified behavior when extraction + would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The Password to use for decrypting the entry. + + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + the pathname of the base directory + + The action to take if extraction would + overwrite an existing file. + + The Password to use for decrypting the entry. + + + + Extracts the entry to the specified stream, using the specified + Password. For example, the caller could extract to Console.Out, or + to a MemoryStream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + + the stream to which the entry should be extracted. + + + The password to use for decrypting the entry. + + + + + Opens a readable stream corresponding to the zip entry in the + archive. The stream decompresses and decrypts as necessary, as it + is read. + + + + + + DotNetZip offers a variety of ways to extract entries from a zip + file. This method allows an application to extract an entry by + reading a . + + + + The return value is of type . Use it as you would any + stream for reading. When an application calls on that stream, it will + receive data from the zip entry that is decrypted and decompressed + as necessary. + + + + CrcCalculatorStream adds one additional feature: it keeps a + CRC32 checksum on the bytes of the stream as it is read. The CRC + value is available in the property on the + CrcCalculatorStream. When the read is complete, your + application + should check this CRC against the + property on the ZipEntry to validate the content of the + ZipEntry. You don't have to validate the entry using the CRC, but + you should, to verify integrity. Check the example for how to do + this. + + + + If the entry is protected with a password, then you need to provide + a password prior to calling , either by + setting the property on the entry, or the + property on the ZipFile + itself. Or, you can use , the + overload of OpenReader that accepts a password parameter. + + + + If you want to extract entry data into a write-able stream that is + already opened, like a , do not + use this method. Instead, use . + + + + Your application may use only one stream created by OpenReader() at + a time, and you should not call other Extract methods before + completing your reads on a stream obtained from OpenReader(). This + is because there is really only one source stream for the compressed + content. A call to OpenReader() seeks in the source stream, to the + beginning of the compressed content. A subsequent call to + OpenReader() on a different entry will seek to a different position + in the source stream, as will a call to Extract() or one of its + overloads. This will corrupt the state for the decompressing stream + from the original call to OpenReader(). + + + + The OpenReader() method works only when the ZipEntry is + obtained from an instance of ZipFile. This method will throw + an exception if the ZipEntry is obtained from a . + + + + + This example shows how to open a zip archive, then read in a named + entry via a stream. After the read loop is complete, the code + compares the calculated during the read loop with the expected CRC + on the ZipEntry, to verify the extraction. + + using (ZipFile zip = new ZipFile(ZipFileToRead)) + { + ZipEntry e1= zip["Elevation.mp3"]; + using (Ionic.Zlib.CrcCalculatorStream s = e1.OpenReader()) + { + byte[] buffer = new byte[4096]; + int n, totalBytesRead= 0; + do { + n = s.Read(buffer,0, buffer.Length); + totalBytesRead+=n; + } while (n>0); + if (s.Crc32 != e1.Crc32) + throw new Exception(string.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)); + if (totalBytesRead != e1.UncompressedSize) + throw new Exception(string.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)); + } + } + + + Using zip As New ZipFile(ZipFileToRead) + Dim e1 As ZipEntry = zip.Item("Elevation.mp3") + Using s As Ionic.Zlib.CrcCalculatorStream = e1.OpenReader + Dim n As Integer + Dim buffer As Byte() = New Byte(4096) {} + Dim totalBytesRead As Integer = 0 + Do + n = s.Read(buffer, 0, buffer.Length) + totalBytesRead = (totalBytesRead + n) + Loop While (n > 0) + If (s.Crc32 <> e1.Crc32) Then + Throw New Exception(String.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)) + End If + If (totalBytesRead <> e1.UncompressedSize) Then + Throw New Exception(String.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)) + End If + End Using + End Using + + + + The Stream for reading. + + + + Opens a readable stream for an encrypted zip entry in the archive. + The stream decompresses and decrypts as necessary, as it is read. + + + + + See the documentation on the method for + full details. This overload allows the application to specify a + password for the ZipEntry to be read. + + + + The password to use for decrypting the entry. + The Stream for reading. + + + + Pass in either basedir or s, but not both. + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Extract to a stream + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Reads one ZipEntry from the given stream. The content for + the entry does not get decompressed or decrypted. This method + basically reads metadata, and seeks. + + the ZipContainer this entry belongs to. + + true of this is the first entry being read from the stream. + + the ZipEntry read from the stream. + + + + Finds a particular segment in the given extra field. + This is used when modifying a previously-generated + extra field, in particular when removing the AES crypto + segment in the extra field. + + + + + At current cursor position in the stream, read the extra + field, and set the properties on the ZipEntry instance + appropriately. This can be called when processing the + Extra field in the Central Directory, or in the local + header. + + + + + generate and return a byte array that encodes the filename + for the entry. + + + + side effects: generate and store into _CommentBytes the + byte array for any comment attached to the entry. Also + sets _actualEncoding to indicate the actual encoding + used. The same encoding is used for both filename and + comment. + + + + + + Stores the position of the entry source stream, or, if the position is + already stored, seeks to that position. + + + + + This method is called in prep for reading the source stream. If PKZIP + encryption is used, then we need to calc the CRC32 before doing the + encryption, because the CRC is used in the 12th byte of the PKZIP + encryption header. So, we need to be able to seek backward in the source + when saving the ZipEntry. This method is called from the place that + calculates the CRC, and also from the method that does the encryption of + the file data. + + + + The first time through, this method sets the _sourceStreamOriginalPosition + field. Subsequent calls to this method seek to that position. + + + + + + Copy metadata that may have been changed by the app. We do this when + resetting the zipFile instance. If the app calls Save() on a ZipFile, then + tries to party on that file some more, we may need to Reset() it , which + means re-reading the entries and then copying the metadata. I think. + + + + + Set the input stream and get its length, if possible. The length is + used for progress updates, AND, to allow an optimization in case of + a stream/file of zero length. In that case we skip the Encrypt and + compression Stream. (like DeflateStream or BZip2OutputStream) + + + + + Prepare the given stream for output - wrap it in a CountingStream, and + then in a CRC stream, and an encryptor and deflator as appropriate. + + + + Previously this was used in ZipEntry.Write(), but in an effort to + introduce some efficiencies in that method I've refactored to put the + code inline. This method still gets called by ZipOutputStream. + + + + + + True if the referenced entry is a directory. + + + + + Provides a human-readable string with information about the ZipEntry. + + + + + The time and date at which the file indicated by the ZipEntry was + last modified. + + + + + The DotNetZip library sets the LastModified value for an entry, equal to + the Last Modified time of the file in the filesystem. If an entry is + added from a stream, the library uses System.DateTime.Now for this + value, for the given entry. + + + + This property allows the application to retrieve and possibly set the + LastModified value on an entry, to an arbitrary value. values with a + setting of DateTimeKind.Unspecified are taken to be expressed as + DateTimeKind.Local. + + + + Be aware that because of the way PKWare's + Zip specification describes how times are stored in the zip file, + the full precision of the System.DateTime datatype is not stored + for the last modified time when saving zip files. For more information on + how times are formatted, see the PKZip specification. + + + + The actual last modified time of a file can be stored in multiple ways in + the zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + Zip tools and libraries will always at least handle (read or write) the + DOS time, and may also handle the other time formats. Keep in mind that + while the names refer to particular operating systems, there is nothing in + the time formats themselves that prevents their use on other operating + systems. + + + + When reading ZIP files, the DotNetZip library reads the Windows-formatted + time, if it is stored in the entry, and sets both LastModified and + ModifiedTime to that value. When writing ZIP files, the DotNetZip + library by default will write both time quantities. It can also emit the + Unix-formatted time if desired (See .) + + + + The last modified time of the file created upon a call to + ZipEntry.Extract() may be adjusted during extraction to compensate + for differences in how the .NET Base Class Library deals with daylight + saving time (DST) versus how the Windows filesystem deals with daylight + saving time. Raymond Chen provides + some good context. + + + + In a nutshell: Daylight savings time rules change regularly. In 2007, for + example, the inception week of DST changed. In 1977, DST was in place all + year round. In 1945, likewise. And so on. Win32 does not attempt to + guess which time zone rules were in effect at the time in question. It + will render a time as "standard time" and allow the app to change to DST + as necessary. .NET makes a different choice. + + + + Compare the output of FileInfo.LastWriteTime.ToString("f") with what you + see in the Windows Explorer property sheet for a file that was last + written to on the other side of the DST transition. For example, suppose + the file was last modified on October 17, 2003, during DST but DST is not + currently in effect. Explorer's file properties reports Thursday, October + 17, 2003, 8:45:38 AM, but .NETs FileInfo reports Thursday, October 17, + 2003, 9:45 AM. + + + + Win32 says, "Thursday, October 17, 2002 8:45:38 AM PST". Note: Pacific + STANDARD Time. Even though October 17 of that year occurred during Pacific + Daylight Time, Win32 displays the time as standard time because that's + what time it is NOW. + + + + .NET BCL assumes that the current DST rules were in place at the time in + question. So, .NET says, "Well, if the rules in effect now were also in + effect on October 17, 2003, then that would be daylight time" so it + displays "Thursday, October 17, 2003, 9:45 AM PDT" - daylight time. + + + + So .NET gives a value which is more intuitively correct, but is also + potentially incorrect, and which is not invertible. Win32 gives a value + which is intuitively incorrect, but is strictly correct. + + + + Because of this funkiness, this library adds one hour to the LastModified + time on the extracted file, if necessary. That is to say, if the time in + question had occurred in what the .NET Base Class Library assumed to be + DST. This assumption may be wrong given the constantly changing DST rules, + but it is the best we can do. + + + + + + + + Last Modified time for the file represented by the entry. + + + + + + This value corresponds to the "last modified" time in the NTFS file times + as described in the Zip + specification. When getting this property, the value may be + different from . When setting the property, + the property also gets set, but with a lower + precision. + + + + Let me explain. It's going to take a while, so get + comfortable. Originally, waaaaay back in 1989 when the ZIP specification + was originally described by the esteemed Mr. Phil Katz, the dominant + operating system of the time was MS-DOS. MSDOS stored file times with a + 2-second precision, because, c'mon, who is ever going to need better + resolution than THAT? And so ZIP files, regardless of the platform on + which the zip file was created, store file times in exactly the same format that DOS used + in 1989. + + + + Since then, the ZIP spec has evolved, but the internal format for file + timestamps remains the same. Despite the fact that the way times are + stored in a zip file is rooted in DOS heritage, any program on any + operating system can format a time in this way, and most zip tools and + libraries DO - they round file times to the nearest even second and store + it just like DOS did 25+ years ago. + + + + PKWare extended the ZIP specification to allow a zip file to store what + are called "NTFS Times" and "Unix(tm) times" for a file. These are the + last write, last access, and file creation + times of a particular file. These metadata are not actually specific + to NTFS or Unix. They are tracked for each file by NTFS and by various + Unix filesystems, but they are also tracked by other filesystems, too. + The key point is that the times are formatted in the zip file + in the same way that NTFS formats the time (ticks since win32 epoch), + or in the same way that Unix formats the time (seconds since Unix + epoch). As with the DOS time, any tool or library running on any + operating system is capable of formatting a time in one of these ways + and embedding it into the zip file. + + + + These extended times are higher precision quantities than the DOS time. + As described above, the (DOS) LastModified has a precision of 2 seconds. + The Unix time is stored with a precision of 1 second. The NTFS time is + stored with a precision of 0.0000001 seconds. The quantities are easily + convertible, except for the loss of precision you may incur. + + + + A zip archive can store the {C,A,M} times in NTFS format, in Unix format, + or not at all. Often a tool running on Unix or Mac will embed the times + in Unix format (1 second precision), while WinZip running on Windows might + embed the times in NTFS format (precision of of 0.0000001 seconds). When + reading a zip file with these "extended" times, in either format, + DotNetZip represents the values with the + ModifiedTime, AccessedTime and CreationTime + properties on the ZipEntry. + + + + While any zip application or library, regardless of the platform it + runs on, could use any of the time formats allowed by the ZIP + specification, not all zip tools or libraries do support all these + formats. Storing the higher-precision times for each entry is + optional for zip files, and many tools and libraries don't use the + higher precision quantities at all. The old DOS time, represented by + , is guaranteed to be present, though it + sometimes unset. + + + + Ok, getting back to the question about how the LastModified + property relates to this ModifiedTime + property... LastModified is always set, while + ModifiedTime is not. (The other times stored in the NTFS + times extension, CreationTime and AccessedTime also + may not be set on an entry that is read from an existing zip file.) + When reading a zip file, then LastModified takes the DOS time + that is stored with the file. If the DOS time has been stored as zero + in the zipfile, then this library will use DateTime.Now for the + LastModified value. If the ZIP file was created by an evolved + tool, then there will also be higher precision NTFS or Unix times in + the zip file. In that case, this library will read those times, and + set LastModified and ModifiedTime to the same value, the + one corresponding to the last write time of the file. If there are no + higher precision times stored for the entry, then ModifiedTime + remains unset (likewise AccessedTime and CreationTime), + and LastModified keeps its DOS time. + + + + When creating zip files with this library, by default the extended time + properties (ModifiedTime, AccessedTime, and + CreationTime) are set on the ZipEntry instance, and these data are + stored in the zip archive for each entry, in NTFS format. If you add an + entry from an actual filesystem file, then the entry gets the actual file + times for that file, to NTFS-level precision. If you add an entry from a + stream, or a string, then the times get the value DateTime.Now. In + this case LastModified and ModifiedTime will be identical, + to 2 seconds of precision. You can explicitly set the + CreationTime, AccessedTime, and ModifiedTime of an + entry using the property setters. If you want to set all of those + quantities, it's more efficient to use the method. Those + changes are not made permanent in the zip file until you call or one of its cousins. + + + + When creating a zip file, you can override the default behavior of + this library for formatting times in the zip file, disabling the + embedding of file times in NTFS format or enabling the storage of file + times in Unix format, or both. You may want to do this, for example, + when creating a zip file on Windows, that will be consumed on a Mac, + by an application that is not hip to the "NTFS times" format. To do + this, use the and + properties. A valid zip + file may store the file times in both formats. But, there are no + guarantees that a program running on Mac or Linux will gracefully + handle the NTFS-formatted times when Unix times are present, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. DotNetZip will always do something + reasonable; other libraries or tools may not. When in doubt, test. + + + + I'll bet you didn't think one person could type so much about time, eh? + And reading it was so enjoyable, too! Well, in appreciation, maybe you + should donate? + + + + + + + + + + + Last Access time for the file represented by the entry. + + + This value may or may not be meaningful. If the ZipEntry was read from an existing + Zip archive, this information may not be available. For an explanation of why, see + . + + + + + + + + The file creation time for the file represented by the entry. + + + + This value may or may not be meaningful. If the ZipEntry was read + from an existing zip archive, and the creation time was not set on the entry + when the zip file was created, then this property may be meaningless. For an + explanation of why, see . + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Windows format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Windows. The default value of + this property is true. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all zip tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInWindowsFormatWhenSaving + property, to specify the behavior for all entries in a zip, rather than + the property on each individual entry. + + + + + + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Unix(tm) format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since Jan 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInUnixFormatWhenSaving + property, to specify the behavior for all entries, rather than the + property on each individual entry. + + + + + + + + + + + + + The type of timestamp attached to the ZipEntry. + + + + This property is valid only for a ZipEntry that was read from a zip archive. + It indicates the type of timestamp attached to the entry. + + + + + + + + The file attributes for the entry. + + + + + + The attributes in NTFS include + ReadOnly, Archive, Hidden, System, and Indexed. When adding a + ZipEntry to a ZipFile, these attributes are set implicitly when + adding an entry from the filesystem. When adding an entry from a stream + or string, the Attributes are not set implicitly. Regardless of the way + an entry was added to a ZipFile, you can set the attributes + explicitly if you like. + + + + When reading a ZipEntry from a ZipFile, the attributes are + set according to the data stored in the ZipFile. If you extract the + entry from the archive to a filesystem file, DotNetZip will set the + attributes on the resulting file accordingly. + + + + The attributes can be set explicitly by the application. For example the + application may wish to set the FileAttributes.ReadOnly bit for all + entries added to an archive, so that on unpack, this attribute will be set + on the extracted file. Any changes you make to this property are made + permanent only when you call a Save() method on the ZipFile + instance that contains the ZipEntry. + + + + For example, an application may wish to zip up a directory and set the + ReadOnly bit on every file in the archive, so that upon later extraction, + the resulting files will be marked as ReadOnly. Not every extraction tool + respects these attributes, but if you unpack with DotNetZip, as for + example in a self-extracting archive, then the attributes will be set as + they are stored in the ZipFile. + + + + These attributes may not be interesting or useful if the resulting archive + is extracted on a non-Windows platform. How these attributes get used + upon extraction depends on the platform and tool used. + + + + This property is only partially supported in the Silverlight version + of the library: applications can read attributes on entries within + ZipFiles. But extracting entries within Silverlight will not set the + attributes on the extracted files. + + + + + + + The name of the filesystem file, referred to by the ZipEntry. + + + + + This property specifies the thing-to-be-zipped on disk, and is set only + when the ZipEntry is being created from a filesystem file. If the + ZipFile is instantiated by reading an existing .zip archive, then + the LocalFileName will be null (Nothing in VB). + + + + When it is set, the value of this property may be different than , which is the path used in the archive itself. If you + call Zip.AddFile("foop.txt", AlternativeDirectory), then the path + used for the ZipEntry within the zip archive will be different + than this path. + + + + If the entry is being added from a stream, then this is null (Nothing in VB). + + + + + + + + The name of the file contained in the ZipEntry. + + + + + + This is the name of the entry in the ZipFile itself. When creating + a zip archive, if the ZipEntry has been created from a filesystem + file, via a call to or , or a related overload, the value + of this property is derived from the name of that file. The + FileName property does not include drive letters, and may include a + different directory path, depending on the value of the + directoryPathInArchive parameter used when adding the entry into + the ZipFile. + + + + In some cases there is no related filesystem file - for example when a + ZipEntry is created using or one of the similar overloads. In this case, the value of + this property is derived from the fileName and the directory path passed + to that method. + + + + When reading a zip file, this property takes the value of the entry name + as stored in the zip file. If you extract such an entry, the extracted + file will take the name given by this property. + + + + Applications can set this property when creating new zip archives or when + reading existing archives. When setting this property, the actual value + that is set will replace backslashes with forward slashes, in accordance + with the Zip + specification, for compatibility with Unix(tm) and ... get + this.... Amiga! + + + + If an application reads a ZipFile via or a related overload, and then explicitly + sets the FileName on an entry contained within the ZipFile, and + then calls , the application will effectively + rename the entry within the zip archive. + + + + If an application sets the value of FileName, then calls + Extract() on the entry, the entry is extracted to a file using the + newly set value as the filename. The FileName value is made + permanent in the zip archive only after a call to one of the + ZipFile.Save() methods on the ZipFile that contains the + ZipEntry. + + + + If an application attempts to set the FileName to a value that + would result in a duplicate entry in the ZipFile, an exception is + thrown. + + + + When a ZipEntry is contained within a ZipFile, applications + cannot rename the entry within the context of a foreach (For + Each in VB) loop, because of the way the ZipFile stores + entries. If you need to enumerate through all the entries and rename one + or more of them, use ZipFile.EntriesSorted as the + collection. See also, ZipFile.GetEnumerator(). + + + + + + + The stream that provides content for the ZipEntry. + + + + + + The application can use this property to set the input stream for an + entry on a just-in-time basis. Imagine a scenario where the application + creates a ZipFile comprised of content obtained from hundreds of + files, via calls to AddFile(). The DotNetZip library opens streams + on these files on a just-in-time basis, only when writing the entry out to + an external store within the scope of a ZipFile.Save() call. Only + one input stream is opened at a time, as each entry is being written out. + + + + Now imagine a different application that creates a ZipFile + with content obtained from hundreds of streams, added through . Normally the + application would supply an open stream to that call. But when large + numbers of streams are being added, this can mean many open streams at one + time, unnecessarily. + + + + To avoid this, call and specify delegates that open and close the stream at + the time of Save. + + + + + Setting the value of this property when the entry was not added from a + stream (for example, when the ZipEntry was added with or , or when the entry was added by + reading an existing zip archive) will throw an exception. + + + + + + + + A flag indicating whether the InputStream was provided Just-in-time. + + + + + + When creating a zip archive, an application can obtain content for one or + more of the ZipEntry instances from streams, using the method. At the time + of calling that method, the application can supply null as the value of + the stream parameter. By doing so, the application indicates to the + library that it will provide a stream for the entry on a just-in-time + basis, at the time one of the ZipFile.Save() methods is called and + the data for the various entries are being compressed and written out. + + + + In this case, the application can set the + property, typically within the SaveProgress event (event type: ) for that entry. + + + + The application will later want to call Close() and Dispose() on that + stream. In the SaveProgress event, when the event type is , the application can + do so. This flag indicates that the stream has been provided by the + application on a just-in-time basis and that it is the application's + responsibility to call Close/Dispose on that stream. + + + + + + + + An enum indicating the source of the ZipEntry. + + + + + The version of the zip engine needed to read the ZipEntry. + + + + + This is a readonly property, indicating the version of the Zip + specification that the extracting tool or library must support to + extract the given entry. Generally higher versions indicate newer + features. Older zip engines obviously won't know about new features, and + won't be able to extract entries that depend on those newer features. + + + + + value + Features + + + + 20 + a basic Zip Entry, potentially using PKZIP encryption. + + + + + 45 + The ZIP64 extension is used on the entry. + + + + + 46 + File is compressed using BZIP2 compression* + + + + 50 + File is encrypted using PkWare's DES, 3DES, (broken) RC2 or RC4 + + + + 51 + File is encrypted using PKWare's AES encryption or corrected RC2 encryption. + + + + 52 + File is encrypted using corrected RC2-64 encryption** + + + + 61 + File is encrypted using non-OAEP key wrapping*** + + + + 63 + File is compressed using LZMA, PPMd+, Blowfish, or Twofish + + + + + + There are other values possible, not listed here. DotNetZip supports + regular PKZip encryption, and ZIP64 extensions. DotNetZip cannot extract + entries that require a zip engine higher than 45. + + + + This value is set upon reading an existing zip file, or after saving a zip + archive. + + + + + + The comment attached to the ZipEntry. + + + + + Each entry in a zip file can optionally have a comment associated to + it. The comment might be displayed by a zip tool during extraction, for + example. + + + + By default, the Comment is encoded in IBM437 code page. You can + specify an alternative with and + . + + + + + + + + Indicates whether the entry requires ZIP64 extensions. + + + + + + This property is null (Nothing in VB) until a Save() method on the + containing instance has been called. The property is + non-null (HasValue is true) only after a Save() method has + been called. + + + + After the containing ZipFile has been saved, the Value of this + property is true if any of the following three conditions holds: the + uncompressed size of the entry is larger than 0xFFFFFFFF; the compressed + size of the entry is larger than 0xFFFFFFFF; the relative offset of the + entry within the zip archive is larger than 0xFFFFFFFF. These quantities + are not known until a Save() is attempted on the zip archive and + the compression is applied. + + + + If none of the three conditions holds, then the Value is false. + + + + A Value of false does not indicate that the entry, as saved in the + zip archive, does not use ZIP64. It merely indicates that ZIP64 is + not required. An entry may use ZIP64 even when not required if + the property on the containing + ZipFile instance is set to , or if + the property on the containing + ZipFile instance is set to + and the output stream was not seekable. + + + + + + + + Indicates whether the entry actually used ZIP64 extensions, as it was most + recently written to the output file or stream. + + + + + + This Nullable property is null (Nothing in VB) until a Save() + method on the containing instance has been + called. HasValue is true only after a Save() method has been + called. + + + + The value of this property for a particular ZipEntry may change + over successive calls to Save() methods on the containing ZipFile, + even if the file that corresponds to the ZipEntry does not. This + may happen if other entries contained in the ZipFile expand, + causing the offset for this particular entry to exceed 0xFFFFFFFF. + + + + + + + The bitfield for the entry as defined in the zip spec. You probably + never need to look at this. + + + + + You probably do not need to concern yourself with the contents of this + property, but in case you do: + + + + + bit + meaning + + + + 0 + set if encryption is used. + + + + 1-2 + + set to determine whether normal, max, fast deflation. DotNetZip library + always leaves these bits unset when writing (indicating "normal" + deflation"), but can read an entry with any value here. + + + + + 3 + + Indicates that the Crc32, Compressed and Uncompressed sizes are zero in the + local header. This bit gets set on an entry during writing a zip file, when + it is saved to a non-seekable output stream. + + + + + + 4 + reserved for "enhanced deflating". This library doesn't do enhanced deflating. + + + + 5 + set to indicate the zip is compressed patched data. This library doesn't do that. + + + + 6 + + set if PKWare's strong encryption is used (must also set bit 1 if bit 6 is + set). This bit is not set if WinZip's AES encryption is set. + + + + 7 + not used + + + + 8 + not used + + + + 9 + not used + + + + 10 + not used + + + + 11 + + Language encoding flag (EFS). If this bit is set, the filename and comment + fields for this file must be encoded using UTF-8. This library currently + does not support UTF-8. + + + + + 12 + Reserved by PKWARE for enhanced compression. + + + + 13 + + Used when encrypting the Central Directory to indicate selected data + values in the Local Header are masked to hide their actual values. See + the section in the Zip + specification describing the Strong Encryption Specification for + details. + + + + + 14 + Reserved by PKWARE. + + + + 15 + Reserved by PKWARE. + + + + + + + + + The compression method employed for this ZipEntry. + + + + + + The + Zip specification allows a variety of compression methods. This + library supports just two: 0x08 = Deflate. 0x00 = Store (no compression), + for reading or writing. + + + + When reading an entry from an existing zipfile, the value you retrieve + here indicates the compression method used on the entry by the original + creator of the zip. When writing a zipfile, you can specify either 0x08 + (Deflate) or 0x00 (None). If you try setting something else, you will get + an exception. + + + + You may wish to set CompressionMethod to CompressionMethod.None (0) + when zipping already-compressed data like a jpg, png, or mp3 file. + This can save time and cpu cycles. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionMethod to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionLevel property. If you set the CompressionMethod to a + value other than None, and CompressionLevel is previously + set to None, then CompressionLevel will be set to + Default. + + + + + + + In this example, the first entry added to the zip archive uses the default + behavior - compression is used where it makes sense. The second entry, + the MP3 file, is added to the archive without being compressed. + + using (ZipFile zip = new ZipFile(ZipFileToCreate)) + { + ZipEntry e1= zip.AddFile(@"notes\Readme.txt"); + ZipEntry e2= zip.AddFile(@"music\StopThisTrain.mp3"); + e2.CompressionMethod = CompressionMethod.None; + zip.Save(); + } + + + + Using zip As New ZipFile(ZipFileToCreate) + zip.AddFile("notes\Readme.txt") + Dim e2 as ZipEntry = zip.AddFile("music\StopThisTrain.mp3") + e2.CompressionMethod = CompressionMethod.None + zip.Save + End Using + + + + + + Sets the compression level to be used for the entry when saving the zip + archive. This applies only for CompressionMethod = DEFLATE. + + + + + When using the DEFLATE compression method, Varying the compression + level used on entries can affect the size-vs-speed tradeoff when + compression and decompressing data streams or files. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionLevel to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionMethod property. If you set the CompressionLevel + to a value other than None, CompressionMethod will be set + to Deflate, if it was previously None. + + + + Setting this property has no effect if the CompressionMethod is something + other than Deflate or None. + + + + + + + + The compressed size of the file, in bytes, within the zip archive. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the compressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The size of the file, in bytes, before compression, or after extraction. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the uncompressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The ratio of compressed size to uncompressed size of the ZipEntry. + + + + + This is a ratio of the compressed size to the uncompressed size of the + entry, expressed as a double in the range of 0 to 100+. A value of 100 + indicates no compression at all. It could be higher than 100 when the + compression algorithm actually inflates the data, as may occur for small + files, or uncompressible data that is encrypted. + + + + You could format it for presentation to a user via a format string of + "{3,5:F0}%" to see it as a percentage. + + + + If the size of the original uncompressed file is 0, implying a + denominator of 0, the return value will be zero. + + + + This property is valid after reading in an existing zip file, or after + saving the ZipFile that contains the ZipEntry. You cannot know the + effect of a compression transform until you try it. + + + + + + + The 32-bit CRC (Cyclic Redundancy Check) on the contents of the ZipEntry. + + + + + You probably don't need to concern yourself with this. It is used + internally by DotNetZip to verify files or streams upon extraction. + + The value is a 32-bit + CRC using 0xEDB88320 for the polynomial. This is the same CRC-32 used in + PNG, MPEG-2, and other protocols and formats. It is a read-only property; when + creating a Zip archive, the CRC for each entry is set only after a call to + Save() on the containing ZipFile. When reading an existing zip file, the value + of this property reflects the stored CRC for the entry. + + + + + + True if the entry is a directory (not a file). + This is a readonly property on the entry. + + + + + A derived property that is true if the entry uses encryption. + + + + + This is a readonly property on the entry. When reading a zip file, + the value for the ZipEntry is determined by the data read + from the zip file. After saving a ZipFile, the value of this + property for each ZipEntry indicates whether encryption was + actually used (which will have been true if the was set and the property + was something other than . + + + + + + Set this to specify which encryption algorithm to use for the entry when + saving it to a zip archive. + + + + + + Set this property in order to encrypt the entry when the ZipFile is + saved. When setting this property, you must also set a on the entry. If you set a value other than on this property and do not set a + Password then the entry will not be encrypted. The ZipEntry + data is encrypted as the ZipFile is saved, when you call or one of its cousins on the containing + ZipFile instance. You do not need to specify the Encryption + when extracting entries from an archive. + + + + The Zip specification from PKWare defines a set of encryption algorithms, + and the data formats for the zip archive that support them, and PKWare + supports those algorithms in the tools it produces. Other vendors of tools + and libraries, such as WinZip or Xceed, typically support a + subset of the algorithms specified by PKWare. These tools can + sometimes support additional different encryption algorithms and data + formats, not specified by PKWare. The AES Encryption specified and + supported by WinZip is the most popular example. This library supports a + subset of the complete set of algorithms specified by PKWare and other + vendors. + + + + There is no common, ubiquitous multi-vendor standard for strong encryption + within zip files. There is broad support for so-called "traditional" Zip + encryption, sometimes called Zip 2.0 encryption, as specified + by PKWare, but this encryption is considered weak and + breakable. This library currently supports the Zip 2.0 "weak" encryption, + and also a stronger WinZip-compatible AES encryption, using either 128-bit + or 256-bit key strength. If you want DotNetZip to support an algorithm + that is not currently supported, call the author of this library and maybe + we can talk business. + + + + The class also has a property. In most cases you will use + that property when setting encryption. This property takes + precedence over any Encryption set on the ZipFile itself. + Typically, you would use the per-entry Encryption when most entries in the + zip archive use one encryption algorithm, and a few entries use a + different one. If all entries in the zip file use the same Encryption, + then it is simpler to just set this property on the ZipFile itself, when + creating a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you can + modify the Encryption on an encrypted entry: you can remove encryption + from an entry that was encrypted; you can encrypt an entry that was not + encrypted previously; or, you can change the encryption algorithm. The + changes in encryption are not made permanent until you call Save() on the + ZipFile. To effect changes in encryption, the entry content is + streamed through several transformations, depending on the modification + the application has requested. For example if the entry is not encrypted + and the application sets Encryption to PkzipWeak, then at + the time of Save(), the original entry is read and decompressed, + then re-compressed and encrypted. Conversely, if the original entry is + encrypted with PkzipWeak encryption, and the application sets the + Encryption property to WinZipAes128, then at the time of + Save(), the original entry is decrypted via PKZIP encryption and + decompressed, then re-compressed and re-encrypted with AES. This all + happens automatically within the library, but it can be time-consuming for + large entries. + + + + Additionally, when updating archives, it is not possible to change the + password when changing the encryption algorithm. To change both the + algorithm and the password, you need to Save() the zipfile twice. First + set the Encryption to None, then call Save(). Then set the + Encryption to the new value (not "None"), then call Save() + once again. + + + + The WinZip AES encryption algorithms are not supported on the .NET Compact + Framework. + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other file + uses encryption. + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt") + ZipEntry e1= zip.AddFile("2008-Regional-Sales-Report.pdf"); + e1.Encryption= EncryptionAlgorithm.WinZipAes256; + e1.Password= "Top.Secret.No.Peeking!"; + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + // Specify the password that is used during extraction, for + // all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.AddFile("ReadMe.txt") + Dim e1 as ZipEntry + e1= zip.AddFile("2008-Regional-Sales-Report.pdf") + e1.Encryption= EncryptionAlgorithm.WinZipAes256 + e1.Password= "Top.Secret.No.Peeking!" + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + ' Specify the password that is used during extraction, for + ' all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + + Thrown in the setter if EncryptionAlgorithm.Unsupported is specified. + + + ZipEntry.Password + ZipFile.Encryption + + + + The Password to be used when encrypting a ZipEntry upon + ZipFile.Save(), or when decrypting an entry upon Extract(). + + + + + This is a write-only property on the entry. Set this to request that the + entry be encrypted when writing the zip archive, or set it to specify the + password to be used when extracting an existing entry that is encrypted. + + + + The password set here is implicitly used to encrypt the entry during the + operation, or to decrypt during the or operation. If you set + the Password on a ZipEntry after calling Save(), there is no + effect. + + + + Consider setting the property when using a + password. Answering concerns that the standard password protection + supported by all zip tools is weak, WinZip has extended the ZIP + specification with a way to use AES Encryption to protect entries in the + Zip file. Unlike the "PKZIP 2.0" encryption specified in the PKZIP + specification, AES + Encryption uses a standard, strong, tested, encryption + algorithm. DotNetZip can create zip archives that use WinZip-compatible + AES encryption, if you set the property. But, + archives created that use AES encryption may not be readable by all other + tools and libraries. For example, Windows Explorer cannot read a + "compressed folder" (a zip file) that uses AES encryption, though it can + read a zip file that uses "PKZIP encryption." + + + + The class also has a + property. This property takes precedence over any password set on the + ZipFile itself. Typically, you would use the per-entry Password when most + entries in the zip archive use one password, and a few entries use a + different password. If all entries in the zip file use the same password, + then it is simpler to just set this property on the ZipFile itself, + whether creating a zip archive or extracting a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you + cannot modify the password on any encrypted entry, except by extracting + the entry with the original password (if any), removing the original entry + via , and then adding a new + entry with a new Password. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Password property on that ZipEntry and then + calling Save() on the ZipFile does not update the password + on that entry in the archive. Neither is an exception thrown. Instead, + what happens during the Save() is the existing entry is copied + through to the new zip archive, in its original encrypted form. Upon + re-reading that archive, the entry can be decrypted with its original + password. + + + + If you read a ZipFile, and there is an un-encrypted entry, you can set the + Password on the entry and then call Save() on the ZipFile, and get + encryption on that entry. + + + + + + + This example creates a zip file with two entries, and then extracts the + entries from the zip file. When creating the zip file, the two files are + added to the zip file using password protection. Each entry uses a + different password. During extraction, each file is extracted with the + appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry; + entry= zip.AddFile("Declaration.txt"); + entry.Password= "123456!"; + entry = zip.AddFile("Report.xls"); + entry.Password= "1Secret!"; + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + ZipEntry entry; + entry = zip["Declaration.txt"]; + entry.Password = "123456!"; + entry.Extract("extractDir"); + entry = zip["Report.xls"]; + entry.Password = "1Secret!"; + entry.Extract("extractDir"); + } + + + + + Using zip As New ZipFile + Dim entry as ZipEntry + entry= zip.AddFile("Declaration.txt") + entry.Password= "123456!" + entry = zip.AddFile("Report.xls") + entry.Password= "1Secret!" + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + Dim entry as ZipEntry + entry = zip("Declaration.txt") + entry.Password = "123456!" + entry.Extract("extractDir") + entry = zip("Report.xls") + entry.Password = "1Secret!" + entry.Extract("extractDir") + End Using + + + + + + + ZipFile.Password + + + + The action the library should take when extracting a file that already exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting + an entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file to be + extracted does not already exist. + + + + + + + This example shows how to set the ExtractExistingFile property in + an ExtractProgress event, in response to user input. The + ExtractProgress event is invoked if and only if the + ExtractExistingFile property was previously set to + ExtractExistingFileAction.InvokeExtractProgressEvent. + + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + Console.WriteLine("extract {0} ", e.CurrentEntry.FileName); + + else if (e.EventType == ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite) + { + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user if he wants overwrite the file + do + { + Console.Write("Overwrite {0} in {1} ? (y/n/C) ", entry.FileName, e.ExtractLocation); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && response[0]!='Y' && + response[0]!='N' && response[0]!='C'); + + if (response[0]=='C') + e.Cancel = true; + else if (response[0]=='Y') + entry.ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently; + else + entry.ExtractExistingFile= ExtractExistingFileAction.DoNotOverwrite; + } + } + + + + + + The action to take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur within a call to ZipFile.Save, as the various files contained + in a ZipFile are being saved into the zip archive. During the + Save, DotNetZip will perform a File.Open on the file + associated to the ZipEntry, and then will read the entire contents of + the file as it is zipped. Either the open or the Read may fail, because + of lock conflicts or other reasons. Using this property, you can + specify the action to take when such errors occur. + + + + Typically you will NOT set this property on individual ZipEntry + instances. Instead, you will set the ZipFile.ZipErrorAction property on + the ZipFile instance, before adding any entries to the + ZipFile. If you do this, errors encountered on behalf of any of + the entries in the ZipFile will be handled the same way. + + + + But, if you use a handler, you will want + to set this property on the ZipEntry within the handler, to + communicate back to DotNetZip what you would like to do with the + particular error. + + + + + + + + + Indicates whether the entry was included in the most recent save. + + + An entry can be excluded or skipped from a save if there is an error + opening or reading the entry. + + + + + + A callback that allows the application to specify the compression to use + for a given entry that is about to be added to the zip archive. + + + + + See + + + + + + Set to indicate whether to use UTF-8 encoding for filenames and comments. + + + + + + If this flag is set, the comment and filename for the entry will be + encoded with UTF-8, as described in the Zip + specification, if necessary. "Necessary" means, the filename or + entry comment (if any) cannot be reflexively encoded and decoded using the + default code page, IBM437. + + + + Setting this flag to true is equivalent to setting to System.Text.Encoding.UTF8. + + + + This flag has no effect or relation to the text encoding used within the + file itself. + + + + + + + The text encoding to use for the FileName and Comment on this ZipEntry, + when the default encoding is insufficient. + + + + + + Don't use this property. See . + + + + + + + Specifies the alternate text encoding used by this ZipEntry + + + + The default text encoding used in Zip files for encoding filenames and + comments is IBM437, which is something like a superset of ASCII. In + cases where this is insufficient, applications can specify an + alternate encoding. + + + When creating a zip file, the usage of the alternate encoding is + governed by the property. + Typically you would set both properties to tell DotNetZip to employ an + encoding that is not IBM437 in the zipfile you are creating. + + + Keep in mind that because the ZIP specification states that the only + valid encodings to use are IBM437 and UTF-8, if you use something + other than that, then zip tools and libraries may not be able to + successfully read the zip archive you generate. + + + The zip specification states that applications should presume that + IBM437 is in use, except when a special bit is set, which indicates + UTF-8. There is no way to specify an arbitrary code page, within the + zip file itself. When you create a zip file encoded with gb2312 or + ibm861 or anything other than IBM437 or UTF-8, then the application + that reads the zip file needs to "know" which code page to use. In + some cases, the code page used when reading is chosen implicitly. For + example, WinRar uses the ambient code page for the host desktop + operating system. The pitfall here is that if you create a zip in + Copenhagen and send it to Tokyo, the reader of the zipfile may not be + able to decode successfully. + + + + This example shows how to create a zipfile encoded with a + language-specific encoding: + + using (var zip = new ZipFile()) + { + zip.AlternateEnoding = System.Text.Encoding.GetEncoding("ibm861"); + zip.AlternateEnodingUsage = ZipOption.Always; + zip.AddFileS(arrayOfFiles); + zip.Save("Myarchive-Encoded-in-IBM861.zip"); + } + + + + + + + Describes if and when this instance should apply + AlternateEncoding to encode the FileName and Comment, when + saving. + + + + + + Indicates whether an entry is marked as a text file. Be careful when + using on this property. Unless you have a good reason, you should + probably ignore this property. + + + + + The ZIP format includes a provision for specifying whether an entry in + the zip archive is a text or binary file. This property exposes that + metadata item. Be careful when using this property: It's not clear + that this property as a firm meaning, across tools and libraries. + + + + To be clear, when reading a zip file, the property value may or may + not be set, and its value may or may not be valid. Not all entries + that you may think of as "text" entries will be so marked, and entries + marked as "text" are not guaranteed in any way to be text entries. + Whether the value is set and set correctly depends entirely on the + application that produced the zip file. + + + + There are many zip tools available, and when creating zip files, some + of them "respect" the IsText metadata field, and some of them do not. + Unfortunately, even when an application tries to do "the right thing", + it's not always clear what "the right thing" is. + + + + There's no firm definition of just what it means to be "a text file", + and the zip specification does not help in this regard. Twenty years + ago, text was ASCII, each byte was less than 127. IsText meant, all + bytes in the file were less than 127. These days, it is not the case + that all text files have all bytes less than 127. Any unicode file + may have bytes that are above 0x7f. The zip specification has nothing + to say on this topic. Therefore, it's not clear what IsText really + means. + + + + This property merely tells a reading application what is stored in the + metadata for an entry, without guaranteeing its validity or its + meaning. + + + + When DotNetZip is used to create a zipfile, it attempts to set this + field "correctly." For example, if a file ends in ".txt", this field + will be set. Your application may override that default setting. When + writing a zip file, you must set the property before calling + Save() on the ZipFile. + + + + When reading a zip file, a more general way to decide just what kind + of file is contained in a particular entry is to use the file type + database stored in the operating system. The operating system stores + a table that says, a file with .jpg extension is a JPG image file, a + file with a .xml extension is an XML document, a file with a .txt is a + pure ASCII text document, and so on. To get this information on + Windows, you + need to read and parse the registry. + + + + + using (var zip = new ZipFile()) + { + var e = zip.UpdateFile("Descriptions.mme", ""); + e.IsText = true; + zip.Save(zipPath); + } + + + + Using zip As New ZipFile + Dim e2 as ZipEntry = zip.AddFile("Descriptions.mme", "") + e.IsText= True + zip.Save(zipPath) + End Using + + + + + + An enum that specifies the type of timestamp available on the ZipEntry. + + + + + + The last modified time of a file can be stored in multiple ways in + a zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + This bit field describes which of the formats were found in a ZipEntry that was read. + + + + + + + Default value. + + + + + A DOS timestamp with 2-second precision. + + + + + A Windows timestamp with 100-ns precision. + + + + + A Unix timestamp with 1-second precision. + + + + + A Unix timestamp with 1-second precision, stored in InfoZip v1 format. This + format is outdated and is supported for reading archives only. + + + + + The method of compression to use for a particular ZipEntry. + + + + PKWare's + ZIP Specification describes a number of distinct + cmopression methods that can be used within a zip + file. DotNetZip supports a subset of them. + + + + + No compression at all. For COM environments, the value is 0 (zero). + + + + + DEFLATE compression, as described in IETF RFC + 1951. This is the "normal" compression used in zip + files. For COM environments, the value is 8. + + + + + BZip2 compression, a compression algorithm developed by Julian Seward. + For COM environments, the value is 12. + + + + + The ZipFile type represents a zip archive file. + + + + + This is the main type in the DotNetZip class library. This class reads and + writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides a general purpose zip file capability. Use it to read, + create, or update zip files. When you want to create zip files using a + Stream type to write the zip file, you may want to consider the class. + + + + Both the ZipOutputStream class and the ZipFile class can + be used to create zip files. Both of them support many of the common zip + features, including Unicode, different compression methods and levels, + and ZIP64. They provide very similar performance when creating zip + files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipFile class implements the interface. In order for ZipFile to + produce a valid zip file, you use use it within a using clause (Using + in VB), or call the Dispose() method explicitly. See the examples + for how to employ a using clause. + + + + + + + Adds an item, either a file or a directory, to a zip file archive. + + + + + This method is handy if you are adding things to zip archive and don't + want to bother distinguishing between directories or files. Any files are + added as single entries. A directory added through this method is added + recursively: all files and subdirectories contained within the directory + are added to the ZipFile. + + + + The name of the item may be a relative path or a fully-qualified + path. Remember, the items contained in ZipFile instance get written + to the disk only when you call or a similar + save method. + + + + The directory name used for the file within the archive is the same + as the directory name (potentially a relative path) specified in the + . + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + This method has two overloads. + + the name of the file or directory to add. + + The ZipEntry added. + + + + Adds an item, either a file or a directory, to a zip file archive, + explicitly specifying the directory path to be used in the archive. + + + + + If adding a directory, the add is recursive on all files and + subdirectories contained within it. + + + The name of the item may be a relative path or a fully-qualified path. + The item added by this call to the ZipFile is not read from the + disk nor written to the zip file archive until the application calls + Save() on the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive, which would override the + "natural" path of the filesystem file. + + + + Encryption will be used on the file data if the Password has + been set on the ZipFile object, prior to calling this method. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + Thrown if the file or directory passed in does not exist. + + + the name of the file or directory to add. + + + + The name of the directory path to use within the zip archive. This path + need not refer to an extant directory in the current filesystem. If the + files within the zip are later extracted, this is the path used for the + extracted file. Passing null (Nothing in VB) will use the + path on the fileOrDirectoryName. Passing the empty string ("") will + insert the item at the root path within the archive. + + + + + + + + This example shows how to zip up a set of files into a flat hierarchy, + regardless of where in the filesystem the files originated. The resulting + zip archive will contain a toplevel directory named "flat", which itself + will contain files Readme.txt, MyProposal.docx, and Image1.jpg. A + subdirectory under "flat" called SupportFiles will contain all the files + in the "c:\SupportFiles" directory on disk. + + + String[] itemnames= { + "c:\\fixedContent\\Readme.txt", + "MyProposal.docx", + "c:\\SupportFiles", // a directory + "images\\Image1.jpg" + }; + + try + { + using (ZipFile zip = new ZipFile()) + { + for (int i = 1; i < itemnames.Length; i++) + { + // will add Files or Dirs, recurses and flattens subdirectories + zip.AddItem(itemnames[i],"flat"); + } + zip.Save(ZipToCreate); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Dim itemnames As String() = _ + New String() { "c:\fixedContent\Readme.txt", _ + "MyProposal.docx", _ + "SupportFiles", _ + "images\Image1.jpg" } + Try + Using zip As New ZipFile + Dim i As Integer + For i = 1 To itemnames.Length - 1 + ' will add Files or Dirs, recursing and flattening subdirectories. + zip.AddItem(itemnames(i), "flat") + Next i + zip.Save(ZipToCreate) + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString()) + End Try + + + The ZipEntry added. + + + + Adds a File to a Zip file archive. + + + + + This call collects metadata for the named file in the filesystem, + including the file attributes and the timestamp, and inserts that metadata + into the resulting ZipEntry. Only when the application calls Save() on + the ZipFile, does DotNetZip read the file from the filesystem and + then write the content to the zip file archive. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called photos\personal. The pdf file + will be included into a folder within the zip called Desktop. + + + try + { + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("c:\\photos\\personal\\7440-N49th.png"); + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf"); + zip.AddFile("ReadMe.txt"); + + zip.Save("Package.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: " + ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + zip.AddFile("c:\photos\personal\7440-N49th.png") + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf") + zip.AddFile("ReadMe.txt") + zip.Save("Package.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString) + End Try + + + + This method has two overloads. + + + + + + + The name of the file to add. It should refer to a file in the filesystem. + The name of the file may be a relative path or a fully-qualified path. + + The ZipEntry corresponding to the File added. + + + + Adds a File to a Zip file archive, potentially overriding the path to be + used within the zip archive. + + + + + The file added by this call to the ZipFile is not written to the + zip file archive until the application calls Save() on the ZipFile. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called images. The pdf file will be + included into a folder within the zip called files\docs, and will be + encrypted with the given password. + + + try + { + using (ZipFile zip = new ZipFile()) + { + // the following entry will be inserted at the root in the archive. + zip.AddFile("c:\\datafiles\\ReadMe.txt", ""); + // this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\\photos\\personal\\7440-N49th.png", "images"); + // the following will result in a password-protected file called + // files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!"; + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf", "files\\docs"); + zip.Save("Archive.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + ' the following entry will be inserted at the root in the archive. + zip.AddFile("c:\datafiles\ReadMe.txt", "") + ' this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\photos\personal\7440-N49th.png", "images") + ' the following will result in a password-protected file called + ' files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!" + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf", "files\documents") + zip.Save("Archive.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1) + End Try + + + + + + + + + The name of the file to add. The name of the file may be a relative path + or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the fileName. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on the fileName, if any. Passing the empty string + ("") will insert the item at the root path within the archive. + + + The ZipEntry corresponding to the file added. + + + + This method removes a collection of entries from the ZipFile. + + + + A collection of ZipEntry instances from this zip file to be removed. For + example, you can pass in an array of ZipEntry instances; or you can call + SelectEntries(), and then add or remove entries from that + ICollection<ZipEntry> (ICollection(Of ZipEntry) in VB), and pass + that ICollection to this method. + + + + + + + + This method removes a collection of entries from the ZipFile, by name. + + + + A collection of strings that refer to names of entries to be removed + from the ZipFile. For example, you can pass in an array or a + List of Strings that provide the names of entries to be removed. + + + + + + + + This method adds a set of files to the ZipFile. + + + + + Use this method to add a set of files to the zip archive, in one call. + For example, a list of files received from + System.IO.Directory.GetFiles() can be added to a zip archive in one + call. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to add. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + This example shows how to create a zip file, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile + ' Store all files found in the top level directory, into the zip archive. + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save(ZipFileToCreate) + End Using + + + + + + + + Adds or updates a set of files in the ZipFile. + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to update. Each string should refer to a file in + the filesystem. The name of the file may be a relative path or a fully-qualified path. + + + + + + Adds a set of files to the ZipFile, using the + specified directory path in the archive. + + + + + Any directory structure that may be present in the + filenames contained in the list is "flattened" in the + archive. Each file in the list is added to the archive in + the specified top-level directory. + + + + For ZipFile properties including , , , , , , and , their respective values at the + time of this call will be applied to each ZipEntry added. + + + + + The names of the files to add. Each string should refer to + a file in the filesystem. The name of the file may be a + relative path or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + Th is path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds a set of files to the ZipFile, using the specified directory + path in the archive, and preserving the full directory structure in the + filenames. + + + + + If preserveDirHierarchy is true, any directory structure present in the + filenames contained in the list is preserved in the archive. On the other + hand, if preserveDirHierarchy is false, any directory structure that may + be present in the filenames contained in the list is "flattened" in the + archive; Each file in the list is added to the archive in the specified + top-level directory. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + The names of the files to add. Each string should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + whether the entries in the zip archive will reflect the directory + hierarchy that is present in the various filenames. For example, if + includes two paths, \Animalia\Chordata\Mammalia\Info.txt and + \Plantae\Magnoliophyta\Dicotyledon\Info.txt, then calling this method with + = false will result in an + exception because of a duplicate entry name, while calling this method + with = true will result in the + full direcory paths being included in the entries added to the ZipFile. + + + + + + Adds or updates a set of files to the ZipFile, using the specified + directory path in the archive. + + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The names of the files to add or update. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. The UpdateFile method might more accurately be + called "AddOrUpdateFile". + + + + Upon success, there is no way for the application to learn whether the file + was added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + This example shows how to Update an existing entry in a zipfile. The first + call to UpdateFile adds the file to the newly-created zip archive. The + second call to UpdateFile updates the content for that file in the zip + archive. + + + using (ZipFile zip1 = new ZipFile()) + { + // UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\\Readme.txt"); + zip1.UpdateFile("CustomerList.csv"); + zip1.Comment = "This zip archive has been created."; + zip1.Save("Content.zip"); + } + + using (ZipFile zip2 = ZipFile.Read("Content.zip")) + { + zip2.UpdateFile("Updates\\Readme.txt"); + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed."; + zip2.Save(); + } + + + + Using zip1 As New ZipFile + ' UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\Readme.txt") + zip1.UpdateFile("CustomerList.csv") + zip1.Comment = "This zip archive has been created." + zip1.Save("Content.zip") + End Using + + Using zip2 As ZipFile = ZipFile.Read("Content.zip") + zip2.UpdateFile("Updates\Readme.txt") + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed." + zip2.Save + End Using + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. The entry to be added or + updated is found by using the specified directory path, combined with the + basename of the specified filename. + + + + Upon success, there is no way for the application to learn if the file was + added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the + fileName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + fileName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Add or update a directory in a zip archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated in + the zip archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a directory in the zip archive at the specified root + directory in the archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated + in the zip archive. + + + + Specifies a directory path to use to override any path in the + directoryName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + directoryName, if any. Passing the empty string ("") will insert + the item at the root path within the archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a file or directory in the zip archive. + + + + + This is useful when the application is not sure or does not care if the + item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry() if an entry by the same name + already exists, followed calling by AddItem(). + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + the path to the file or directory to be added or updated. + + + + + Add or update a file or directory. + + + + + This method is useful when the application is not sure or does not care if + the item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry(), if an entry by that name + exists, and then calling AddItem(). + + + + This version of the method allows the caller to explicitly specify the + directory path to be used for the item being added to the archive. The + entry or entries that are added or updated will use the specified + DirectoryPathInArchive. Extracting the entry from the archive will + result in a file stored in that directory path. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The path for the File or Directory to be added or updated. + + + Specifies a directory path to use to override any path in the + itemName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + itemName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string. + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. The content for the entry is encoded using the default text + encoding for the machine, or on Silverlight, using UTF-8. + + + + The content of the file, should it be extracted from the zip. + + + + The name, including any path, to use for the entry within the archive. + + + The ZipEntry added. + + + + This example shows how to add an entry to the zipfile, using a string as + content for that entry. + + + string Content = "This string will be the content of the Readme.txt file in the zip archive."; + using (ZipFile zip1 = new ZipFile()) + { + zip1.AddFile("MyDocuments\\Resume.doc", "files"); + zip1.AddEntry("Readme.txt", Content); + zip1.Comment = "This zip file was created at " + System.DateTime.Now.ToString("G"); + zip1.Save("Content.zip"); + } + + + + Public Sub Run() + Dim Content As String = "This string will be the content of the Readme.txt file in the zip archive." + Using zip1 As ZipFile = New ZipFile + zip1.AddEntry("Readme.txt", Content) + zip1.AddFile("MyDocuments\Resume.doc", "files") + zip1.Comment = ("This zip file was created at " & DateTime.Now.ToString("G")) + zip1.Save("Content.zip") + End Using + End Sub + + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string, and using the specified text encoding. + + + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. + + + + The content for the entry, a string value, is encoded using the given + text encoding. A BOM (byte-order-mark) is emitted into the file, if the + Encoding parameter is set for that. + + + + Most Encoding classes support a constructor that accepts a boolean, + indicating whether to emit a BOM or not. For example see . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the fileName, as specified + in . + + + The ZipEntry added. + + + + + Create an entry in the ZipFile using the given Stream + as input. The entry will have the given filename. + + + + + + The application should provide an open, readable stream; in this case it + will be read during the call to or one of + its overloads. + + + + The passed stream will be read from its current position. If + necessary, callers should set the position in the stream before + calling AddEntry(). This might be appropriate when using this method + with a MemoryStream, for example. + + + + In cases where a large number of streams will be added to the + ZipFile, the application may wish to avoid maintaining all of the + streams open simultaneously. To handle this situation, the application + should use the + overload. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example adds a single entry to a ZipFile via a Stream. + + + + String zipToCreate = "Content.zip"; + String fileNameInArchive = "Content-From-Stream.bin"; + using (System.IO.Stream streamToRead = MyStreamOpener()) + { + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry= zip.AddEntry(fileNameInArchive, streamToRead); + zip.AddFile("Readme.txt"); + zip.Save(zipToCreate); // the stream is read implicitly here + } + } + + + + Dim zipToCreate As String = "Content.zip" + Dim fileNameInArchive As String = "Content-From-Stream.bin" + Using streamToRead as System.IO.Stream = MyStreamOpener() + Using zip As ZipFile = New ZipFile() + Dim entry as ZipEntry = zip.AddEntry(fileNameInArchive, streamToRead) + zip.AddFile("Readme.txt") + zip.Save(zipToCreate) '' the stream is read implicitly, here + End Using + End Using + + + + + + + The name, including any path, which is shown in the zip file for the added + entry. + + + The input stream from which to grab content for the file + + The ZipEntry added. + + + + Add a ZipEntry for which content is written directly by the application. + + + + + When the application needs to write the zip entry data, use this + method to add the ZipEntry. For example, in the case that the + application wishes to write the XML representation of a DataSet into + a ZipEntry, the application can use this method to do so. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + About progress events: When using the WriteDelegate, DotNetZip does + not issue any SaveProgress events with EventType = + Saving_EntryBytesRead. (This is because it is the + application's code that runs in WriteDelegate - there's no way for + DotNetZip to know when to issue a EntryBytesRead event.) + Applications that want to update a progress bar or similar status + indicator should do so from within the WriteDelegate + itself. DotNetZip will issue the other SaveProgress events, + including + Saving_Started, + + Saving_BeforeWriteEntry, and + Saving_AfterWriteEntry. + + + + Note: When you use PKZip encryption, it's normally necessary to + compute the CRC of the content to be encrypted, before compressing or + encrypting it. Therefore, when using PKZip encryption with a + WriteDelegate, the WriteDelegate CAN BE called twice: once to compute + the CRC, and the second time to potentially compress and + encrypt. Surprising, but true. This is because PKWARE specified that + the encryption initialization data depends on the CRC. + If this happens, for each call of the delegate, your + application must stream the same entry data in its entirety. If your + application writes different data during the second call, it will + result in a corrupt zip file. + + + + The double-read behavior happens with all types of entries, not only + those that use WriteDelegate. It happens if you add an entry from a + filesystem file, or using a string, or a stream, or an opener/closer + pair. But in those cases, DotNetZip takes care of reading twice; in + the case of the WriteDelegate, the application code gets invoked + twice. Be aware. + + + + As you can imagine, this can cause performance problems for large + streams, and it can lead to correctness problems when you use a + WriteDelegate. This is a pretty big pitfall. There are two + ways to avoid it. First, and most preferred: don't use PKZIP + encryption. If you use the WinZip AES encryption, this problem + doesn't occur, because the encryption protocol doesn't require the CRC + up front. Second: if you do choose to use PKZIP encryption, write out + to a non-seekable stream (like standard output, or the + Response.OutputStream in an ASP.NET application). In this case, + DotNetZip will use an alternative encryption protocol that does not + rely on the CRC of the content. This also implies setting bit 3 in + the zip entry, which still presents problems for some zip tools. + + + + In the future I may modify DotNetZip to *always* use bit 3 when PKZIP + encryption is in use. This seems like a win overall, but there will + be some work involved. If you feel strongly about it, visit the + DotNetZip forums and vote up the Workitem + tracking this issue. + + + + + the name of the entry to add + the delegate which will write the entry content + the ZipEntry added + + + + This example shows an application filling a DataSet, then saving the + contents of that DataSet as XML, into a ZipEntry in a ZipFile, using an + anonymous delegate in C#. The DataSet XML is never saved to a disk file. + + + var c1= new System.Data.SqlClient.SqlConnection(connstring1); + var da = new System.Data.SqlClient.SqlDataAdapter() + { + SelectCommand= new System.Data.SqlClient.SqlCommand(strSelect, c1) + }; + + DataSet ds1 = new DataSet(); + da.Fill(ds1, "Invoices"); + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,stream) => ds1.WriteXml(stream) ); + zip.Save(zipFileName); + } + + + + + + This example uses an anonymous method in C# as the WriteDelegate to provide + the data for the ZipEntry. The example is a bit contrived - the + AddFile() method is a simpler way to insert the contents of a file + into an entry in a zip file. On the other hand, if there is some sort of + processing or transformation of the file contents required before writing, + the application could use the WriteDelegate to do it, in this way. + + + using (var input = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite )) + { + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,output) => + { + byte[] buffer = new byte[BufferSize]; + int n; + while ((n = input.Read(buffer, 0, buffer.Length)) != 0) + { + // could transform the data here... + output.Write(buffer, 0, n); + // could update a progress bar here + } + }); + + zip.Save(zipFileName); + } + } + + + + + + This example uses a named delegate in VB to write data for the given + ZipEntry (VB9 does not have anonymous delegates). The example here is a bit + contrived - a simpler way to add the contents of a file to a ZipEntry is to + simply use the appropriate AddFile() method. The key scenario for + which the WriteDelegate makes sense is saving a DataSet, in XML + format, to the zip file. The DataSet can write XML to a stream, and the + WriteDelegate is the perfect place to write into the zip file. There may be + other data structures that can write to a stream, but cannot be read as a + stream. The WriteDelegate would be appropriate for those cases as + well. + + + Private Sub WriteEntry (ByVal name As String, ByVal output As Stream) + Using input As FileStream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer = -1 + Dim buffer As Byte() = New Byte(BufferSize){} + Do While n <> 0 + n = input.Read(buffer, 0, buffer.Length) + output.Write(buffer, 0, n) + Loop + End Using + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + Add an entry, for which the application will provide a stream, + just-in-time. + + + + + In cases where the application wishes to open the stream that holds + the content for the ZipEntry, on a just-in-time basis, the application + can use this method and provide delegates to open and close the + stream. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example uses anonymous methods in C# to open and close the + source stream for the content for a zip entry. In a real + application, the logic for the OpenDelegate would probably be more + involved. + + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, + (name) => File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite ), + (name, stream) => stream.Close() + ); + + zip.Save(zipFileName); + } + + + + + + + This example uses delegates in VB.NET to open and close the + the source stream for the content for a zip entry. VB 9.0 lacks + support for "Sub" lambda expressions, and so the CloseDelegate must + be an actual, named Sub. + + + + Function MyStreamOpener(ByVal entryName As String) As Stream + '' This simply opens a file. You probably want to do somethinig + '' more involved here: open a stream to read from a database, + '' open a stream on an HTTP connection, and so on. + Return File.OpenRead(entryName) + End Function + + Sub MyStreamCloser(entryName As String, stream As Stream) + stream.Close() + End Sub + + Public Sub Run() + Dim dirToZip As String = "fodder" + Dim zipFileToCreate As String = "Archive.zip" + Dim opener As OpenDelegate = AddressOf MyStreamOpener + Dim closer As CloseDelegate = AddressOf MyStreamCloser + Dim numFilestoAdd As Int32 = 4 + Using zip As ZipFile = New ZipFile + Dim i As Integer + For i = 0 To numFilesToAdd - 1 + zip.AddEntry(String.Format("content-{0:000}.txt"), opener, closer) + Next i + zip.Save(zipFileToCreate) + End Using + End Sub + + + + + the name of the entry to add + + the delegate that will be invoked to open the stream + + + the delegate that will be invoked to close the stream + + the ZipEntry added + + + + + Updates the given entry in the ZipFile, using the given + string as content for the ZipEntry. + + + + + + Calling this method is equivalent to removing the ZipEntry for + the given file name and directory path, if it exists, and then calling + . See the documentation for + that method for further explanation. The string content is encoded + using the default encoding for the machine, or on Silverlight, using + UTF-8. This encoding is distinct from the encoding used for the + filename itself. See . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given string as + content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the filename. See . + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegate + as the source for content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + the delegate which will write the entry content. + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegates + to open and close the stream that provides the content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + the delegate that will be invoked to open the stream + + + the delegate that will be invoked to close the stream + + + The ZipEntry added or updated. + + + + + Updates the given entry in the ZipFile, using the given stream as + input, and the given filename and given directory Path. + + + + + Calling the method is equivalent to calling RemoveEntry() if an + entry by the same name already exists, and then calling AddEntry() + with the given fileName and stream. + + + + The stream must be open and readable during the call to + ZipFile.Save. You can dispense the stream on a just-in-time basis + using the property. Check the + documentation of that property for more information. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name, including any path, to use within the archive for the entry. + + + The input stream from which to read file data. + The ZipEntry added. + + + + Add an entry into the zip archive using the given filename and + directory path within the archive, and the given content for the + file. No file is created in the filesystem. + + + The data to use for the entry. + + + The name, including any path, to use within the archive for the entry. + + + The ZipEntry added. + + + + Updates the given entry in the ZipFile, using the given byte + array as content for the entry. + + + + Calling this method is equivalent to removing the ZipEntry + for the given filename and directory path, if it exists, and then + calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + The content to use for the ZipEntry. + + The ZipEntry added. + + + + + Adds the contents of a filesystem directory to a Zip file archive. + + + + + + The name of the directory may be a relative path or a fully-qualified + path. Any files within the named directory are added to the archive. Any + subdirectories within the named directory are also added to the archive, + recursively. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + If you want the entries to appear in a containing directory in the zip + archive itself, then you should call the AddDirectory() overload that + allows you to explicitly specify a directory path for use in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + + + + This method has 2 overloads. + + The name of the directory to add. + The ZipEntry added. + + + + Adds the contents of a filesystem directory to a Zip file archive, + overriding the path to be used for entries in the archive. + + + + + The name of the directory may be a relative path or a fully-qualified + path. The add operation is recursive, so that any files or subdirectories + within the name directory are also added to the archive. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + In this code, calling the ZipUp() method with a value of "c:\reports" for + the directory parameter will result in a zip file structure in which all + entries are contained in a toplevel "reports" directory. + + + + public void ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) + { + zip.AddDirectory(directory, System.IO.Path.GetFileName(directory)); + zip.Save(targetZip); + } + } + + + + + + + + The name of the directory to add. + + + Specifies a directory path to use to override any path in the + DirectoryName. This path may, or may not, correspond to a real directory + in the current filesystem. If the zip is later extracted, this is the + path used for the extracted file or directory. Passing null + (Nothing in VB) or the empty string ("") will insert the items at + the root path within the archive. + + + The ZipEntry added. + + + + Creates a directory in the zip archive. + + + + + + Use this when you want to create a directory in the archive but there is + no corresponding filesystem representation for that directory. + + + + You will probably not need to do this in your code. One of the only times + you will want to do this is if you want an empty directory in the zip + archive. The reason: if you add a file to a zip archive that is stored + within a multi-level directory, all of the directory tree is implicitly + created in the zip archive. + + + + + + The name of the directory to create in the archive. + + The ZipEntry added. + + + + Checks a zip file to see if its directory is consistent. + + + + + + In cases of data error, the directory within a zip file can get out + of synch with the entries in the zip file. This method checks the + given zip file and returns true if this has occurred. + + + This method may take a long time to run for large zip files. + + + This method is not supported in the Reduced or Compact Framework + versions of DotNetZip. + + + + Developers using COM can use the ComHelper.CheckZip(String) + method. + + + + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + + + + Checks a zip file to see if its directory is consistent, + and optionally fixes the directory if necessary. + + + + + + In cases of data error, the directory within a zip file can get out of + synch with the entries in the zip file. This method checks the given + zip file, and returns true if this has occurred. It also optionally + fixes the zipfile, saving the fixed copy in Name_Fixed.zip. + + + + This method may take a long time to run for large zip files. It + will take even longer if the file actually needs to be fixed, and if + fixIfNecessary is true. + + + + This method is not supported in the Reduced or Compact + Framework versions of DotNetZip. + + + + + The filename to of the zip file to check. + + If true, the method will fix the zip file if + necessary. + + + a TextWriter in which messages generated while checking will be written. + + + true if the named zip is OK; false if the file needs to be fixed. + + + + + + + Rewrite the directory within a zipfile. + + + + + + In cases of data error, the directory in a zip file can get out of + synch with the entries in the zip file. This method attempts to fix + the zip file if this has occurred. + + + This can take a long time for large zip files. + + This won't work if the zip file uses a non-standard + code page - neither IBM437 nor UTF-8. + + + This method is not supported in the Reduced or Compact Framework + versions of DotNetZip. + + + + Developers using COM can use the ComHelper.FixZipDirectory(String) + method. + + + + + The filename to of the zip file to fix. + + + + + + + Verify the password on a zip file. + + + + + Keep in mind that passwords in zipfiles are applied to + zip entries, not to the entire zip file. So testing a + zipfile for a particular password doesn't work in the + general case. On the other hand, it's often the case + that a single password will be used on all entries in a + zip file. This method works for that case. + + + There is no way to check a password without doing the + decryption. So this code decrypts and extracts the given + zipfile into + + + + The filename to of the zip file to fix. + + The password to check. + + a bool indicating whether the password matches. + + + + Returns true if an entry by the given name exists in the ZipFile. + + + the name of the entry to find + true if an entry with the given name exists; otherwise false. + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Creates a new ZipFile instance, using the specified filename. + + + + + Applications can use this constructor to create a new ZipFile for writing, + or to slurp in an existing zip archive for read and update purposes. + + + + To create a new zip archive, an application can call this constructor, + passing the name of a file that does not exist. The name may be a fully + qualified path. Then the application can add directories or files to the + ZipFile via AddDirectory(), AddFile(), AddItem() + and then write the zip archive to the disk by calling Save(). The + zip file is not actually opened and written to the disk until the + application calls ZipFile.Save(). At that point the new zip file + with the given name is created. + + + + If you won't know the name of the Zipfile until the time you call + ZipFile.Save(), or if you plan to save to a stream (which has no + name), then you should use the no-argument constructor. + + + + The application can also call this constructor to read an existing zip + archive. passing the name of a valid zip file that does exist. But, it's + better form to use the static method, + passing the name of the zip file, because using ZipFile.Read() in + your code communicates very clearly what you are doing. In either case, + the file is then read into the ZipFile instance. The app can then + enumerate the entries or can modify the zip file, for example adding + entries, removing entries, changing comments, and so on. + + + + One advantage to this parameterized constructor: it allows applications to + use the same code to add items to a zip archive, regardless of whether the + zip file exists. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + By the way, since DotNetZip is so easy to use, don't you think you should + donate $5 or $10? + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + This example shows how to create a zipfile, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile() + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save(ZipFileToCreate) + End Using + + + + The filename to use for the new zip archive. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified Encoding. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + This is equivalent to setting the property on the ZipFile + instance after construction. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + The Encoding is used as the default alternate + encoding for entries with filenames or comments that cannot be encoded + with the IBM437 code page. + + + + Create a zip file, without specifying a target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + After instantiating with this constructor and adding entries to the + archive, the application should call or + to save to a file or a + stream, respectively. The application can also set the + property and then call the no-argument method. (This + is the preferred approach for applications that use the library through + COM interop.) If you call the no-argument method + without having set the Name of the ZipFile, either through + the parameterized constructor or through the explicit property , the + Save() will throw, because there is no place to save the file. + + + Instances of the ZipFile class are not multi-thread safe. You may + have multiple threads that each use a distinct ZipFile instance, or + you can synchronize multi-thread access to a single instance. + + + + + This example creates a Zip archive called Backup.zip, containing all the files + in the directory DirectoryToZip. Files within subdirectories are not zipped up. + + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save("Backup.zip"); + } + + + + Using zip As New ZipFile + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save("Backup.zip") + End Using + + + + + + Create a zip file, specifying a text Encoding, but without specifying a + target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified status message writer. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + This version of the constructor allows the caller to pass in a TextWriter, + to which verbose messages will be written during extraction or creation of + the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or headless + application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of ZipFile operations. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + + using (ZipFile zip = new ZipFile("Backup.zip", Console.Out)) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + // Status messages will be written to Console.Out + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(); + } + + + + Using zip As New ZipFile("Backup.zip", Console.Out) + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + ' Status messages will be written to Console.Out + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save() + End Using + + + + The filename to use for the new zip archive. + A TextWriter to use for writing + verbose status messages. + + + + Creates a new ZipFile instance, using the specified name for the + filename, the specified status message writer, and the specified Encoding. + + + + + This constructor works like the ZipFile + constructor that accepts a single string argument. See that + reference for detail on what this constructor does. + + + + This version of the constructor allows the caller to pass in a + TextWriter, and an Encoding. The TextWriter will collect + verbose messages that are generated by the library during extraction or + creation of the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or + headless application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of + ZipFile operations. + + + + The Encoding is used as the default alternate encoding for entries + with filenames or comments that cannot be encoded with the IBM437 code + page. This is a equivalent to setting the property on the ZipFile + instance after construction. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile + instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if fileName refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + A TextWriter to use for writing verbose + status messages. + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Initialize a ZipFile instance by reading in a zip file. + + + + + + This method is primarily useful from COM Automation environments, when + reading or extracting zip files. In COM, it is not possible to invoke + parameterized constructors for a class. A COM Automation application can + update a zip file by using the default (no argument) + constructor, then calling Initialize() to read the contents + of an on-disk zip archive into the ZipFile instance. + + + + .NET applications are encouraged to use the ZipFile.Read() methods + for better clarity. + + + + the name of the existing zip file to read in. + + + + Removes the given ZipEntry from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + Thrown if the specified ZipEntry does not exist in the ZipFile. + + + + In this example, all entries in the zip archive dating from before + December 31st, 2007, are removed from the archive. This is actually much + easier if you use the RemoveSelectedEntries method. But I needed an + example for RemoveEntry, so here it is. + + String ZipFileToRead = "ArchiveToModify.zip"; + System.DateTime Threshold = new System.DateTime(2007,12,31); + using (ZipFile zip = ZipFile.Read(ZipFileToRead)) + { + var EntriesToRemove = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + { + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e); + } + } + + // actually remove the doomed entries. + foreach (ZipEntry zombie in EntriesToRemove) + zip.RemoveEntry(zombie); + + zip.Comment= String.Format("This zip archive was updated at {0}.", + System.DateTime.Now.ToString("G")); + + // save with a different name + zip.Save("Archive-Updated.zip"); + } + + + + Dim ZipFileToRead As String = "ArchiveToModify.zip" + Dim Threshold As New DateTime(2007, 12, 31) + Using zip As ZipFile = ZipFile.Read(ZipFileToRead) + Dim EntriesToRemove As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e) + End If + Next + + ' actually remove the doomed entries. + Dim zombie As ZipEntry + For Each zombie In EntriesToRemove + zip.RemoveEntry(zombie) + Next + zip.Comment = String.Format("This zip archive was updated at {0}.", DateTime.Now.ToString("G")) + 'save as a different name + zip.Save("Archive-Updated.zip") + End Using + + + + + The ZipEntry to remove from the zip. + + + + + + + + Removes the ZipEntry with the given filename from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + + Thrown if the ZipFile is not updatable. + + + + Thrown if a ZipEntry with the specified filename does not exist in + the ZipFile. + + + + + This example shows one way to remove an entry with a given filename from + an existing zip archive. + + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = ZipFile.Read(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + { + zip.RemoveEntry(candidate); + zip.Comment= String.Format("The file '{0}' has been removed from this archive.", + Candidate); + zip.Save(); + } + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile = ZipFile.Read(zipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + zip.RemoveEntry(candidate) + zip.Comment = String.Format("The file '{0}' has been removed from this archive.", Candidate) + zip.Save + End If + End Using + + + + + The name of the file, including any directory path, to remove from the zip. + The filename match is not case-sensitive by default; you can use the + CaseSensitiveRetrieval property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + + + Closes the read and write streams associated + to the ZipFile, if necessary. + + + + The Dispose() method is generally employed implicitly, via a using(..) {..} + statement. (Using...End Using in VB) If you do not employ a using + statement, insure that your application calls Dispose() explicitly. For + example, in a Powershell application, or an application that uses the COM + interop interface, you must call Dispose() explicitly. + + + + This example extracts an entry selected by name, from the Zip file to the + Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + foreach (ZipEntry e in zip) + { + if (WantThisEntry(e.FileName)) + zip.Extract(e.FileName, Console.OpenStandardOutput()); + } + } // Dispose() is called implicitly here. + + + + Using zip As ZipFile = ZipFile.Read(zipfile) + Dim e As ZipEntry + For Each e In zip + If WantThisEntry(e.FileName) Then + zip.Extract(e.FileName, Console.OpenStandardOutput()) + End If + Next + End Using ' Dispose is implicity called here + + + + + + Disposes any managed resources, if the flag is set, then marks the + instance disposed. This method is typically not called explicitly from + application code. + + + + Applications should call the no-arg Dispose method. + + + + indicates whether the method should dispose streams or not. + + + + + Default size of the buffer used for IO. + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem. The path can be relative or fully-qualified. + + + + + This method will extract all entries in the ZipFile to the + specified path. + + + + If an extraction of a file from the zip archive would overwrite an + existing file in the filesystem, the action taken is dictated by the + ExtractExistingFile property, which overrides any setting you may have + made on individual ZipEntry instances. By default, if you have not + set that property on the ZipFile instance, the entry will not + be extracted, the existing file will not be overwritten and an + exception will be thrown. To change this, set the property, or use the + overload that allows you to + specify an ExtractExistingFileAction parameter. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use one of the ZipEntry.Extract methods. + + + + This method will send verbose output messages to the , if it is set on the ZipFile + instance. + + + + You may wish to take advantage of the ExtractProgress event. + + + + About timestamps: When extracting a file entry from a zip archive, the + extracted file gets the last modified time of the entry as stored in + the archive. The archive may also store extended file timestamp + information, including last accessed and created times. If these are + present in the ZipEntry, then the extracted file will also get + these times. + + + + A Directory entry is somewhat different. It will get the times as + described for a file entry, but, if there are file entries in the zip + archive that, when extracted, appear in the just-created directory, + then when those file entries are extracted, the last modified and last + accessed times of the directory will change, as a side effect. The + result is that after an extraction of a directory and a number of + files within the directory, the last modified and last accessed + timestamps on the directory will reflect the time that the last file + was extracted into the directory, rather than the time stored in the + zip archive for the directory. + + + + To compensate, when extracting an archive with ExtractAll, + DotNetZip will extract all the file and directory entries as described + above, but it will then make a second pass on the directories, and + reset the times on the directories to reflect what is stored in the + zip archive. + + + + This compensation is performed only within the context of an + ExtractAll. If you call ZipEntry.Extract on a directory + entry, the timestamps on directory in the filesystem will reflect the + times stored in the zip. If you then call ZipEntry.Extract on + a file entry, which is extracted into the directory, the timestamps on + the directory will be updated to the current time. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. The extraction will overwrite any + existing files silently. + + + String TargetDirectory= "unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently; + zip.ExtractAll(TargetDirectory); + } + + + + Dim TargetDirectory As String = "unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently + zip.ExtractAll(TargetDirectory) + End Using + + + + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem, using the specified behavior when extraction would overwrite an + existing file. + + + + + + This method will extract all entries in the ZipFile to the specified + path. For an extraction that would overwrite an existing file, the behavior + is dictated by , which overrides any + setting you may have made on individual ZipEntry instances. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use or one of the similar methods. + + + + Calling this method is equivalent to setting the property and then calling . + + + + This method will send verbose output messages to the + , if it is set on the ZipFile instance. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. It does not overwrite any existing files. + + String TargetDirectory= "c:\\unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite); + } + + + + Dim TargetDirectory As String = "c:\unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite) + End Using + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + The action to take if extraction would overwrite an existing file. + + + + + + Reads a zip file archive and returns the instance. + + + + + The stream is read using the default System.Text.Encoding, which is the + IBM437 codepage. + + + + + Thrown if the ZipFile cannot be read. The implementation of this method + relies on System.IO.File.OpenRead, which can throw a variety of exceptions, + including specific exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so on. + + + + The name of the zip archive to open. This can be a fully-qualified or relative + pathname. + + + . + + The instance read from the zip archive. + + + + + Reads a zip file archive from the named filesystem file using the + specified options. + + + + + This version of the Read() method allows the caller to pass + in a TextWriter an Encoding, via an instance of the + ReadOptions class. The ZipFile is read in using the + specified encoding for entries where UTF-8 encoding is not + explicitly specified. + + + + + + + This example shows how to read a zip file using the Big-5 Chinese + code page (950), and extract each entry in the zip file, while + sending status messages out to the Console. + + + + For this code to work as intended, the zipfile must have been + created using the big5 code page (CP950). This is typical, for + example, when using WinRar on a machine with CP950 set as the + default code page. In that case, the names of entries within the + Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did + not use the correct code page in ZipFile.Read(), then names of + entries within the zip archive would not be correctly retrieved. + + + + string zipToExtract = "MyArchive.zip"; + string extractDirectory = "extract"; + var options = new ReadOptions + { + StatusMessageWriter = System.Console.Out, + Encoding = System.Text.Encoding.GetEncoding(950) + }; + using (ZipFile zip = ZipFile.Read(zipToExtract, options)) + { + foreach (ZipEntry e in zip) + { + e.Extract(extractDirectory); + } + } + + + + + Dim zipToExtract as String = "MyArchive.zip" + Dim extractDirectory as String = "extract" + Dim options as New ReadOptions + options.Encoding = System.Text.Encoding.GetEncoding(950) + options.StatusMessageWriter = System.Console.Out + Using zip As ZipFile = ZipFile.Read(zipToExtract, options) + Dim e As ZipEntry + For Each e In zip + e.Extract(extractDirectory) + Next + End Using + + + + + + + + This example shows how to read a zip file using the default + code page, to remove entries that have a modified date before a given threshold, + sending status messages out to a StringWriter. + + + + var options = new ReadOptions + { + StatusMessageWriter = new System.IO.StringWriter() + }; + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip", options)) + { + var Threshold = new DateTime(2007,7,4); + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + // pass 1: mark the entries for removal + var MarkedEntries = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + MarkedEntries.Add(e); + } + // pass 2: actually remove the entry. + foreach (ZipEntry zombie in MarkedEntries) + zip.RemoveEntry(zombie); + zip.Comment = "This archive has been updated."; + zip.Save(); + } + // can now use contents of sw, eg store in an audit log + + + + Dim options as New ReadOptions + options.StatusMessageWriter = New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip", options) + Dim Threshold As New DateTime(2007, 7, 4) + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + ' pass 1: mark the entries for removal + Dim MarkedEntries As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + MarkedEntries.Add(e) + End If + Next + ' pass 2: actually remove the entry. + Dim zombie As ZipEntry + For Each zombie In MarkedEntries + zip.RemoveEntry(zombie) + Next + zip.Comment = "This archive has been updated." + zip.Save + End Using + ' can now use contents of sw, eg store in an audit log + + + + + Thrown if the zipfile cannot be read. The implementation of + this method relies on System.IO.File.OpenRead, which + can throw a variety of exceptions, including specific + exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so + on. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + The set of options to use when reading the zip file. + + + The ZipFile instance read from the zip archive. + + + + + + + Reads a zip file archive using the specified text encoding, the specified + TextWriter for status messages, and the specified ReadProgress event handler, + and returns the instance. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + An event handler for Read operations. + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + The instance read from the zip archive. + + + + + Reads a zip archive from a stream. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Using this overload, the stream is read using the default + System.Text.Encoding, which is the IBM437 + codepage. If you want to specify the encoding to use when + reading the zipfile content, see + ZipFile.Read(Stream, ReadOptions). This + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + + + + This example shows how to Read zip content from a stream, and + extract one entry into a different stream. In this example, + the filename "NameOfEntryInArchive.doc", refers only to the + name of the entry within the zip archive. A file by that + name is not created in the filesystem. The I/O is done + strictly with the given streams. + + + + using (ZipFile zip = ZipFile.Read(InputStream)) + { + zip.Extract("NameOfEntryInArchive.doc", OutputStream); + } + + + + Using zip as ZipFile = ZipFile.Read(InputStream) + zip.Extract("NameOfEntryInArchive.doc", OutputStream) + End Using + + + + the stream containing the zip data. + + The ZipFile instance read from the stream + + + + + Reads a zip file archive from the given stream using the + specified options. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + the stream containing the zip data. + + + The set of options to use when reading the zip file. + + + + Thrown if the zip archive cannot be read. + + + The ZipFile instance read from the stream. + + + + + + + Reads a zip archive from a stream, using the specified text Encoding, the + specified TextWriter for status messages, + and the specified ReadProgress event handler. + + + + + Reading of zip content begins at the current position in the stream. This + means if you have a stream that concatenates regular data and zip data, if + you position the open, readable stream at the start of the zip data, you + will be able to read the zip archive using this constructor, or any of the + ZipFile constructors that accept a as + input. Some examples of where this might be useful: the zip content is + concatenated at the end of a regular EXE file, as some self-extracting + archives do. (Note: SFX files produced by DotNetZip do not work this + way). Another example might be a stream being read from a database, where + the zip content is embedded within an aggregate stream of data. + + + + the stream containing the zip data. + + + The System.IO.TextWriter to which verbose status messages are written + during operations on the ZipFile. For example, in a console + application, System.Console.Out works, and will get a message for each entry + added to the ZipFile. If the TextWriter is null, no verbose messages + are written. + + + + The text encoding to use when reading entries that do not have the UTF-8 + encoding bit set. Be careful specifying the encoding. If the value you use + here is not the same as the Encoding used when the zip archive was created + (possibly by a different archiver) you will get unexpected results and + possibly exceptions. See the + property for more information. + + + + An event handler for Read operations. + + + an instance of ZipFile + + + + Checks the given file to see if it appears to be a valid zip file. + + + + + Calling this method is equivalent to calling with the testExtract parameter set to false. + + + + The file to check. + true if the file appears to be a zip file. + + + + Checks a file to see if it is a valid zip file. + + + + + This method opens the specified zip file, reads in the zip archive, + verifying the ZIP metadata as it reads. + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a + corrupt file, the the method returns false. This method also returns + false for a file that does not exist. + + + + If is true, as part of its check, this + method reads in the content for each entry, expands it, and checks CRCs. + This provides an additional check beyond verifying the zip header and + directory data. + + + + If is true, and if any of the zip entries + are protected with a password, this method will return false. If you want + to verify a ZipFile that has entries which are protected with a + password, you will need to do that manually. + + + + + The zip file to check. + true if the caller wants to extract each entry. + true if the file contains a valid zip file. + + + + Checks a stream to see if it contains a valid zip archive. + + + + + This method reads the zip archive contained in the specified stream, verifying + the ZIP metadata as it reads. If testExtract is true, this method also extracts + each entry in the archive, dumping all the bits into . + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a corrupt + file, the the method returns false. This method also returns false for a + file that does not exist. + + + + If testExtract is true, this method reads in the content for each + entry, expands it, and checks CRCs. This provides an additional check + beyond verifying the zip header data. + + + + If testExtract is true, and if any of the zip entries are protected + with a password, this method will return false. If you want to verify a + ZipFile that has entries which are protected with a password, you will need + to do that manually. + + + + + + The stream to check. + true if the caller wants to extract each entry. + true if the stream contains a valid zip archive. + + + + Delete file with retry on UnauthorizedAccessException. + + + + + When calling File.Delete() on a file that has been "recently" + created, the call sometimes fails with + UnauthorizedAccessException. This method simply retries the Delete 3 + times with a sleep between tries. + + + + the name of the file to be deleted + + + + Saves the Zip archive to a file, specified by the Name property of the + ZipFile. + + + + + The ZipFile instance is written to storage, typically a zip file + in a filesystem, only when the caller calls Save. In the typical + case, the Save operation writes the zip content to a temporary file, and + then renames the temporary file to the desired name. If necessary, this + method will delete a pre-existing file before the rename. + + + + The property is specified either explicitly, + or implicitly using one of the parameterized ZipFile constructors. For + COM Automation clients, the Name property must be set explicitly, + because COM Automation clients cannot call parameterized constructors. + + + + When using a filesystem file for the Zip output, it is possible to call + Save multiple times on the ZipFile instance. With each + call the zip content is re-written to the same output file. + + + + Data for entries that have been added to the ZipFile instance is + written to the output when the Save method is called. This means + that the input streams for those entries must be available at the time + the application calls Save. If, for example, the application + adds entries with AddEntry using a dynamically-allocated + MemoryStream, the memory stream must not have been disposed + before the call to Save. See the property for more discussion of the + availability requirements of the input stream for an entry, and an + approach for providing just-in-time stream lifecycle management. + + + + + + + + Thrown if you haven't specified a location or stream for saving the zip, + either in the constructor or by setting the Name property, or if you try + to save a regular zip archive to a filename with a .exe extension. + + + + Thrown if is non-zero, and the number + of segments that would be generated for the spanned zip file during the + save operation exceeds 99. If this happens, you need to increase the + segment size. + + + + + + Save the file to a new zipfile, with the given name. + + + + + This method allows the application to explicitly specify the name of the zip + file when saving. Use this when creating a new zip file, or when + updating a zip archive. + + + + An application can also save a zip archive in several places by calling this + method multiple times in succession, with different filenames. + + + + The ZipFile instance is written to storage, typically a zip file in a + filesystem, only when the caller calls Save. The Save operation writes + the zip content to a temporary file, and then renames the temporary file + to the desired name. If necessary, this method will delete a pre-existing file + before the rename. + + + + + + Thrown if you specify a directory for the filename. + + + + The name of the zip archive to save to. Existing files will + be overwritten with great prejudice. + + + + This example shows how to create and Save a zip file. + + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(@"c:\reports\January"); + zip.Save("January.zip"); + } + + + + Using zip As New ZipFile() + zip.AddDirectory("c:\reports\January") + zip.Save("January.zip") + End Using + + + + + + This example shows how to update a zip file. + + using (ZipFile zip = ZipFile.Read("ExistingArchive.zip")) + { + zip.AddFile("NewData.csv"); + zip.Save("UpdatedArchive.zip"); + } + + + + Using zip As ZipFile = ZipFile.Read("ExistingArchive.zip") + zip.AddFile("NewData.csv") + zip.Save("UpdatedArchive.zip") + End Using + + + + + + + Save the zip archive to the specified stream. + + + + + The ZipFile instance is written to storage - typically a zip file + in a filesystem, but using this overload, the storage can be anything + accessible via a writable stream - only when the caller calls Save. + + + + Use this method to save the zip content to a stream directly. A common + scenario is an ASP.NET application that dynamically generates a zip file + and allows the browser to download it. The application can call + Save(Response.OutputStream) to write a zipfile directly to the + output stream, without creating a zip file on the disk on the ASP.NET + server. + + + + Be careful when saving a file to a non-seekable stream, including + Response.OutputStream. When DotNetZip writes to a non-seekable + stream, the zip archive is formatted in such a way that may not be + compatible with all zip tools on all platforms. It's a perfectly legal + and compliant zip file, but some people have reported problems opening + files produced this way using the Mac OS archive utility. + + + + + + + This example saves the zipfile content into a MemoryStream, and + then gets the array of bytes from that MemoryStream. + + + using (var zip = new Ionic.Zip.ZipFile()) + { + zip.CompressionLevel= Ionic.Zlib.CompressionLevel.BestCompression; + zip.Password = "VerySecret."; + zip.Encryption = EncryptionAlgorithm.WinZipAes128; + zip.AddFile(sourceFileName); + MemoryStream output = new MemoryStream(); + zip.Save(output); + + byte[] zipbytes = output.ToArray(); + } + + + + + + This example shows a pitfall you should avoid. DO NOT read + from a stream, then try to save to the same stream. DO + NOT DO THIS: + + + + using (var fs = new FileSteeam(filename, FileMode.Open)) + { + using (var zip = Ionic.Zip.ZipFile.Read(inputStream)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(inputStream); // NO NO NO!! + } + } + + + + Better like this: + + + + using (var zip = Ionic.Zip.ZipFile.Read(filename)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(); // YES! + } + + + + + + The System.IO.Stream to write to. It must be + writable. If you created the ZipFile instanct by calling + ZipFile.Read(), this stream must not be the same stream + you passed to ZipFile.Read(). + + + + + Adds to the ZipFile a set of files from the current working directory on + disk, that conform to the specified criteria. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. + + + + Specify the criteria in statements of 3 elements: a noun, an operator, and + a value. Consider the string "name != *.doc" . The noun is "name". The + operator is "!=", implying "Not Equal". The value is "*.doc". That + criterion, in English, says "all files with a name that does not end in + the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; "atime", + "mtime", and "ctime" for last access time, last modfied time, and created + time of the file, respectively; "attributes" (or "attrs") for the file + attributes; "size" (or "length") for the file length (uncompressed), and + "type" for the type of object, either a file or a directory. The + "attributes", "name" and "type" nouns both support = and != as operators. + The "size", "atime", "mtime", and "ctime" nouns support = and !=, and + >, >=, <, <= as well. The times are taken to be expressed in + local time. + + + + Specify values for the file attributes as a string with one or more of the + characters H,R,S,A,I,L in any order, implying file attributes of Hidden, + ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint (symbolic + link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as the + format. If you omit the HH:mm:ss portion, it is assumed to be 00:00:00 + (midnight). + + + + The value for a size criterion is expressed in integer quantities of bytes, + kilobytes (use k or kb after the number), megabytes (m or mb), or gigabytes + (g or gb). + + + + The value for a name is a pattern to match against the filename, potentially + including wildcards. The pattern follows CMD.exe glob rules: * implies one + or more of any character, while ? implies one character. If the name + pattern contains any slashes, it is matched to the entire filename, + including the path; otherwise, it is matched against only the filename + without the path. This means a pattern of "*\*.*" matches all files one + directory level deep, while a pattern of "*.*" matches all files in all + directories. + + + + To specify a name pattern that includes spaces, use single quotes around the + pattern. A pattern of "'* *.*'" will match all files that have spaces in + the filename. The full criteria string for that would be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D (implying + a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND or OR. Using a string + like "name = *.txt AND size >= 100k" for the selectionCriteria retrieves + entries whose names end in .txt, and whose uncompressed size is greater than + or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to group + clauses in the boolean logic. Without parenthesis, the precedence of the + criterion atoms is determined by order of appearance. Unlike the C# + language, the AND conjunction does not take precendence over the logical OR. + This is important only in strings that contain 3 or more criterion atoms. + In other words, "name = *.txt and size > 1000 or attributes = H" implies + "((name = *.txt AND size > 1000) OR attributes = H)" while "attributes = + H OR name = *.txt and size > 1000" evaluates to "((attributes = H OR name + = *.txt) AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to retrieve all + entries that were last updated on 2009 February 14, specify a time range + like so:"mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this to + say: all files updated after 12:00am on February 14th, until 12:00am on + February 15th. You can use the same bracketing approach to specify any time + period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no spaces, it is + treated as a pattern to match for the filename. Therefore a string like "*.xls" + will be equivalent to specifying "name = *.xls". + + + + There is no logic in this method that insures that the file inclusion + criteria are internally consistent. For example, it's possible to specify + criteria that says the file must have a size of less than 100 bytes, as well + as a size that is greater than 1000 bytes. Obviously no file will ever + satisfy such criteria, but this method does not detect such logical + inconsistencies. The caller is responsible for insuring the criteria are + sensible. + + + + Using this method, the file selection does not recurse into + subdirectories, and the full path of the selected files is included in the + entries added into the zip archive. If you don't like these behaviors, + see the other overloads of this method. + + + + + This example zips up all *.csv files in the current working directory. + + using (ZipFile zip = new ZipFile()) + { + // To just match on filename wildcards, + // use the shorthand form of the selectionCriteria string. + zip.AddSelectedFiles("*.csv"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + zip.AddSelectedFiles("*.csv") + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + + Adds to the ZipFile a set of files from the disk that conform to the + specified criteria, optionally recursing into subdirectories. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the current working directory. + + + + Using this method, the full path of the selected files is included in the + entries added into the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files in the current working directory, or any + subdirectory, that are larger than 1mb. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a set of files from a specified directory in the + filesystem, that conform to the specified criteria. + + + + + This method selects files that conform to the specified criteria, from the + the specified directory on disk, and adds them to the ZipFile. The search + does not recurse into subdirectores. + + + + Using this method, the full filesystem path of the files on disk is + reproduced on the entries added to the zip file. If you don't want this + behavior, use one of the other overloads of this method. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files larger than 1mb in the directory + given by "d:\rawdata". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\\rawdata"); + zip.Save(PathToZipArchive); + } + + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\rawdata) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + The name of the directory on the disk from which to select files. + + + + + Adds to the ZipFile a set of files from the specified directory on disk, + that conform to the specified criteria. + + + + + + This method selects files from the the specified disk directory matching + the specified selection criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories. + + + + The full directory structure in the filesystem is reproduced on the + entries added to the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + This example zips up all *.csv files in the "files" directory, or any + subdirectory, that have been saved since 2009 February 14th. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true) + zip.Save(PathToZipArchive) + End Using + + + + + This example zips up all files in the current working + directory, and all its child directories, except those in + the excludethis subdirectory. + + Using Zip As ZipFile = New ZipFile(zipfile) + Zip.AddSelectedFfiles("name != 'excludethis\*.*'", datapath, True) + Zip.Save() + End Using + + + + The criteria for file selection + + + The filesystem path from which to select files. + + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, and using a specified root + path for entries added to the zip archive. + + + + + This method selects files from the specified disk directory matching the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. The search does not recurse + into subdirectories. For details on the syntax for the selectionCriteria + parameter, see . + + + + + + + This example zips up all *.psd files in the "photos" directory that have + been saved since 2009 February 14th, and puts them all in a zip file, + using the directory name of "content" in the zip archive itself. When the + zip archive is unzipped, the folder containing the .psd files will be + named "content". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content") + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, optionally recursing through + subdirectories, and using a specified root path for entries added to the + zip archive. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. If recurseDirectories + is true, files are also selected from subdirectories, and the directory + structure in the filesystem is reproduced in the zip archive, rooted at + the directory specified by directoryOnDisk. For details on the + syntax for the selectionCriteria parameter, see . + + + + + This example zips up all files that are NOT *.pst files, in the current + working directory and any subdirectories. + + + using (ZipFile zip = new ZipFile()) + { + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true) + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + If true, the method also scans subdirectories for files matching the + criteria. + + + + + Updates the ZipFile with a selection of files from the disk that conform + to the specified criteria. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and Updates the ZipFile with those + files, using the specified directory path in the archive. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the directory specified by + directoryOnDisk. For details on the syntax for the + selectionCriteria parameter, see . + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a + real directory in the current filesystem. If the files within the zip + are later extracted, this is the path used for the extracted file. + Passing null (nothing in VB) will use the path on the file name, if + any; in other words it would use directoryOnDisk, plus any + subdirectory. Passing the empty string ("") will insert the item at + the root path within the archive. + + + + If true, the method also scans subdirectories for files matching the criteria. + + + + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example selects all the PhotoShop files from within an archive, and extracts them + to the current working directory. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var PhotoShopFiles = zip1.SelectEntries("*.psd"); + foreach (ZipEntry psd in PhotoShopFiles) + { + psd.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim PhotoShopFiles as ICollection(Of ZipEntry) + PhotoShopFiles = zip1.SelectEntries("*.psd") + Dim psd As ZipEntry + For Each psd In PhotoShopFiles + psd.Extract + Next + End Using + + + the string that specifies which entries to select + a collection of ZipEntry objects that conform to the inclusion spec + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var UpdatedPhotoShopFiles = zip1.SelectEntries("*.psd", "UpdatedFiles"); + foreach (ZipEntry e in UpdatedPhotoShopFiles) + { + // prompt for extract here + if (WantExtract(e.FileName)) + e.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim UpdatedPhotoShopFiles As ICollection(Of ZipEntry) = zip1.SelectEntries("*.psd", "UpdatedFiles") + Dim e As ZipEntry + For Each e In UpdatedPhotoShopFiles + ' prompt for extract here + If Me.WantExtract(e.FileName) Then + e.Extract + End If + Next + End Using + + + the string that specifies which entries to select + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the inclusion spec + + + + Remove entries from the zipfile by specified criteria. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example removes all entries in a zip file that were modified prior to January 1st, 2008. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01"); + // don't forget to save the archive! + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01") + ' do not forget to save the archive! + zip1.Save + End Using + + + the string that specifies which entries to select + the number of entries removed + + + + Remove entries from the zipfile by specified criteria, and within the specified + path in the archive. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents"); + // a call to ZipFile.Save will make the modifications permanent + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents") + ' a call to ZipFile.Save will make the modifications permanent + zip1.Save + End Using + + + + the string that specifies which entries to select + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + the number of entries removed + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the selectionCriteria string, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15"); + } + + + the selection criteria for entries to extract. + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + overwriting any existing files. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15", + ExtractExistingFileAction.OverwriteSilently); + } + + + + the selection criteria for entries to extract. + + + The action to take if extraction would overwrite an existing file. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are selected from the specified directory within the archive, and then + extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + and writes them to the "unpack" directory. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15","unpack"); + } + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. If any of the files to be + extracted already exist, an exception will be thrown. + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + the directory on the disk into which to extract. It will be created + if it does not exist. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all files with an XML extension or with a size larger than 100,000 bytes, + and puts them in the unpack directory. For any files that already exist in + that destination directory, they will not be overwritten. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml or size > 100000", + null, + "unpack", + ExtractExistingFileAction.DontOverwrite); + } + + + + the selection criteria for entries to extract. + + + The directory on the disk into which to extract. It will be created if it does not exist. + + + + The directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + The action to take if extraction would overwrite an existing file. + + + + + + Saves the ZipFile instance to a self-extracting zip archive. + + + + + + The generated exe image will execute on any machine that has the .NET + Framework 2.0 installed on it. The generated exe image is also a + valid ZIP file, readable with DotNetZip or another Zip library or tool + such as WinZip. + + + + There are two "flavors" of self-extracting archive. The + WinFormsApplication version will pop up a GUI and allow the + user to select a target directory into which to extract. There's also + a checkbox allowing the user to specify to overwrite existing files, + and another checkbox to allow the user to request that Explorer be + opened to see the extracted files after extraction. The other flavor + is ConsoleApplication. A self-extractor generated with that + flavor setting will run from the command line. It accepts command-line + options to set the overwrite behavior, and to specify the target + extraction directory. + + + + There are a few temporary files created during the saving to a + self-extracting zip. These files are created in the directory pointed + to by , which defaults to . These temporary files are + removed upon successful completion of this method. + + + + When a user runs the WinForms SFX, the user's personal directory (Environment.SpecialFolder.Personal) + will be used as the default extract location. If you want to set the + default extract location, you should use the other overload of + SaveSelfExtractor()/ The user who runs the SFX will have the + opportunity to change the extract directory before extracting. When + the user runs the Command-Line SFX, the user must explicitly specify + the directory to which to extract. The .NET Framework 2.0 is required + on the computer when the self-extracting archive is run. + + + + NB: This method is not available in the version of DotNetZip build for + the .NET Compact Framework, nor in the "Reduced" DotNetZip library. + + + + + + + string DirectoryPath = "c:\\Documents\\Project7"; + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)); + zip.Comment = "This will be embedded into a self-extracting console-based exe"; + zip.SaveSelfExtractor("archive.exe", SelfExtractorFlavor.ConsoleApplication); + } + + + Dim DirectoryPath As String = "c:\Documents\Project7" + Using zip As New ZipFile() + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)) + zip.Comment = "This will be embedded into a self-extracting console-based exe" + zip.SaveSelfExtractor("archive.exe", SelfExtractorFlavor.ConsoleApplication) + End Using + + + + + a pathname, possibly fully qualified, to be created. Typically it + will end in an .exe extension. + + Indicates whether a Winforms or Console self-extractor is + desired. + + + + Saves the ZipFile instance to a self-extracting zip archive, using + the specified save options. + + + + + This method saves a self extracting archive, using the specified save + options. These options include the flavor of the SFX, the default extract + directory, the icon file, and so on. See the documentation + for for more + details. + + + + The user who runs the SFX will have the opportunity to change the extract + directory before extracting. If at the time of extraction, the specified + directory does not exist, the SFX will create the directory before + extracting the files. + + + + + + This example saves a WinForms-based self-extracting archive EXE that + will use c:\ExtractHere as the default extract location. The C# code + shows syntax for .NET 3.0, which uses an object initializer for + the SelfExtractorOptions object. + + string DirectoryPath = "c:\\Documents\\Project7"; + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)); + zip.Comment = "This will be embedded into a self-extracting WinForms-based exe"; + var options = new SelfExtractorOptions + { + Flavor = SelfExtractorFlavor.WinFormsApplication, + DefaultExtractDirectory = "%USERPROFILE%\\ExtractHere", + PostExtractCommandLine = ExeToRunAfterExtract, + SfxExeWindowTitle = "My Custom Window Title", + RemoveUnpackedFilesAfterExecute = true + }; + zip.SaveSelfExtractor("archive.exe", options); + } + + + Dim DirectoryPath As String = "c:\Documents\Project7" + Using zip As New ZipFile() + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)) + zip.Comment = "This will be embedded into a self-extracting console-based exe" + Dim options As New SelfExtractorOptions() + options.Flavor = SelfExtractorFlavor.WinFormsApplication + options.DefaultExtractDirectory = "%USERPROFILE%\\ExtractHere" + options.PostExtractCommandLine = ExeToRunAfterExtract + options.SfxExeWindowTitle = "My Custom Window Title" + options.RemoveUnpackedFilesAfterExecute = True + zip.SaveSelfExtractor("archive.exe", options) + End Using + + + + The name of the EXE to generate. + provides the options for creating the + Self-extracting archive. + + + + Generic IEnumerator support, for use of a ZipFile in an enumeration. + + + + You probably do not want to call GetEnumerator explicitly. Instead + it is implicitly called when you use a loop in C#, or a + For Each loop in VB.NET. + + + + This example reads a zipfile of a given name, then enumerates the + entries in that zip file, and displays the information about each + entry on the Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + bool header = true; + foreach (ZipEntry e in zip) + { + if (header) + { + System.Console.WriteLine("Zipfile: {0}", zip.Name); + System.Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded); + System.Console.WriteLine("BitField: 0x{0:X2}", e.BitField); + System.Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod); + System.Console.WriteLine("\n{1,-22} {2,-6} {3,4} {4,-8} {0}", + "Filename", "Modified", "Size", "Ratio", "Packed"); + System.Console.WriteLine(new System.String('-', 72)); + header = false; + } + + System.Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", + e.FileName, + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + e.UncompressedSize, + e.CompressionRatio, + e.CompressedSize); + + e.Extract(); + } + } + + + + Dim ZipFileToExtract As String = "c:\foo.zip" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + Dim header As Boolean = True + Dim e As ZipEntry + For Each e In zip + If header Then + Console.WriteLine("Zipfile: {0}", zip.Name) + Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded) + Console.WriteLine("BitField: 0x{0:X2}", e.BitField) + Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod) + Console.WriteLine(ChrW(10) & "{1,-22} {2,-6} {3,4} {4,-8} {0}", _ + "Filename", "Modified", "Size", "Ratio", "Packed" ) + Console.WriteLine(New String("-"c, 72)) + header = False + End If + Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", _ + e.FileName, _ + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), _ + e.UncompressedSize, _ + e.CompressionRatio, _ + e.CompressedSize ) + e.Extract + Next + End Using + + + + A generic enumerator suitable for use within a foreach loop. + + + + An IEnumerator, for use of a ZipFile in a foreach construct. + + + + This method is included for COM support. An application generally does not call + this method directly. It is called implicitly by COM clients when enumerating + the entries in the ZipFile instance. In VBScript, this is done with a For Each + statement. In Javascript, this is done with new Enumerator(zipfile). + + + + The IEnumerator over the entries in the ZipFile. + + + + + Provides a human-readable string with information about the ZipFile. + + + + + The information string contains 10 lines or so, about each ZipEntry, + describing whether encryption is in use, the compressed and uncompressed + length of the entry, the offset of the entry, and so on. As a result the + information string can be very long for zip files that contain many + entries. + + + This information is mostly useful for diagnostic purposes. + + + + + + Indicates whether to perform a full scan of the zip file when reading it. + + + + + + You almost never want to use this property. + + + + When reading a zip file, if this flag is true (True in + VB), the entire zip archive will be scanned and searched for entries. + For large archives, this can take a very, long time. The much more + efficient default behavior is to read the zip directory, which is + stored at the end of the zip file. But, in some cases the directory is + corrupted and you need to perform a full scan of the zip file to + determine the contents of the zip file. This property lets you do + that, when necessary. + + + + This flag is effective only when calling . Normally you would read a ZipFile with the + static ZipFile.Read + method. But you can't set the FullScan property on the + ZipFile instance when you use a static factory method like + ZipFile.Read. + + + + + + + This example shows how to read a zip file using the full scan approach, + and then save it, thereby producing a corrected zip file. + + + using (var zip = new ZipFile()) + { + zip.FullScan = true; + zip.Initialize(zipFileName); + zip.Save(newName); + } + + + + Using zip As New ZipFile + zip.FullScan = True + zip.Initialize(zipFileName) + zip.Save(newName) + End Using + + + + + + + Whether to sort the ZipEntries before saving the file. + + + + The default is false. If you have a large number of zip entries, the sort + alone can consume significant time. + + + + + using (var zip = new ZipFile()) + { + zip.AddFiles(filesToAdd); + zip.SortEntriesBeforeSaving = true; + zip.Save(name); + } + + + + Using zip As New ZipFile + zip.AddFiles(filesToAdd) + zip.SortEntriesBeforeSaving = True + zip.Save(name) + End Using + + + + + + + Indicates whether NTFS Reparse Points, like junctions, should be + traversed during calls to AddDirectory(). + + + + By default, calls to AddDirectory() will traverse NTFS reparse + points, like mounted volumes, and directory junctions. An example + of a junction is the "My Music" directory in Windows Vista. In some + cases you may not want DotNetZip to traverse those directories. In + that case, set this property to false. + + + + + using (var zip = new ZipFile()) + { + zip.AddDirectoryWillTraverseReparsePoints = false; + zip.AddDirectory(dirToZip,"fodder"); + zip.Save(zipFileToCreate); + } + + + + + + Size of the IO buffer used while saving. + + + + + + First, let me say that you really don't need to bother with this. It is + here to allow for optimizations that you probably won't make! It will work + fine if you don't set or get this property at all. Ok? + + + + Now that we have that out of the way, the fine print: This + property affects the size of the buffer that is used for I/O for each + entry contained in the zip file. When a file is read in to be compressed, + it uses a buffer given by the size here. When you update a zip file, the + data for unmodified entries is copied from the first zip file to the + other, through a buffer given by the size here. + + + + Changing the buffer size affects a few things: first, for larger buffer + sizes, the memory used by the ZipFile, obviously, will be larger + during I/O operations. This may make operations faster for very much + larger files. Last, for any given entry, when you use a larger buffer + there will be fewer progress events during I/O operations, because there's + one progress event generated for each time the buffer is filled and then + emptied. + + + + The default buffer size is 8k. Increasing the buffer size may speed + things up as you compress larger files. But there are no hard-and-fast + rules here, eh? You won't know til you test it. And there will be a + limit where ever larger buffers actually slow things down. So as I said + in the beginning, it's probably best if you don't set or get this property + at all. + + + + + + This example shows how you might set a large buffer size for efficiency when + dealing with zip entries that are larger than 1gb. + + using (ZipFile zip = new ZipFile()) + { + zip.SaveProgress += this.zip1_SaveProgress; + zip.AddDirectory(directoryToZip, ""); + zip.UseZip64WhenSaving = Zip64Option.Always; + zip.BufferSize = 65536*8; // 65536 * 8 = 512k + zip.Save(ZipFileToCreate); + } + + + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + + When doing ZLIB or Deflate compression, the library fills a buffer, + then passes it to the compressor for compression. Then the library + reads out the compressed bytes. This happens repeatedly until there + is no more uncompressed data to compress. This property sets the + size of the buffer that will be used for chunk-wise compression. In + order for the setting to take effect, your application needs to set + this property before calling one of the ZipFile.Save() + overloads. + + + Setting this affects the performance and memory efficiency of + compression and decompression. For larger files, setting this to a + larger size may improve compression performance, but the exact + numbers vary depending on available memory, the size of the streams + you are compressing, and a bunch of other variables. I don't have + good firm recommendations on how to set it. You'll have to test it + yourself. Or just leave it alone and accept the default. + + + + + + Indicates whether extracted files should keep their paths as + stored in the zip archive. + + + + + This property affects Extraction. It is not used when creating zip + archives. + + + + With this property set to false, the default, extracting entries + from a zip file will create files in the filesystem that have the full + path associated to the entry within the zip file. With this property set + to true, extracting entries from the zip file results in files + with no path: the folders are "flattened." + + + + An example: suppose the zip file contains entries /directory1/file1.txt and + /directory2/file2.txt. With FlattenFoldersOnExtract set to false, + the files created will be \directory1\file1.txt and \directory2\file2.txt. + With the property set to true, the files created are file1.txt and file2.txt. + + + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when + compressing entries using the DEFLATE method. Different compression + strategies work better on different sorts of data. The strategy + parameter can affect the compression ratio and the speed of + compression but not the correctness of the compresssion. For more + information see Ionic.Zlib.CompressionStrategy. + + + + + The name of the ZipFile, on disk. + + + + + + When the ZipFile instance was created by reading an archive using + one of the ZipFile.Read methods, this property represents the name + of the zip file that was read. When the ZipFile instance was + created by using the no-argument constructor, this value is null + (Nothing in VB). + + + + If you use the no-argument constructor, and you then explicitly set this + property, when you call , this name will + specify the name of the zip file created. Doing so is equivalent to + calling . When instantiating a + ZipFile by reading from a stream or byte array, the Name + property remains null. When saving to a stream, the Name + property is implicitly set to null. + + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified compression level. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method for the zipfile. + + + + By default, the compression method is CompressionMethod.Deflate. + + + + + + + A comment attached to the zip archive. + + + + + + This property is read/write. It allows the application to specify a + comment for the ZipFile, or read the comment for the + ZipFile. After setting this property, changes are only made + permanent when you call a Save() method. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zip file that is + not readable by any tool or application. For best interoperability, leave + alone, or specify it only + once, before adding any entries to the ZipFile instance. + + + + + + + Specifies whether the Creation, Access, and Modified times for entries + added to the zip file will be emitted in “Windows format” + when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Windows. By default this flag is + true, meaning the Windows-format times are stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to + DateTime.Now. Applications can also explicitly set those times by + calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455, although you probably don't need to know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries + may be able to read only one or the other. DotNetZip can read or write + times in either or both formats. + + + + The times stored are taken from , , and . + + + + The value set here applies to all entries subsequently added to the + ZipFile. + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the archive, a time that is always stored in "DOS format". And, + notwithstanding the names PKWare uses for these time formats, any of them + can be read and written by any computer, on any operating system. But, + there are no guarantees that a program running on Mac or Linux will + gracefully handle a zip file with "Windows" formatted times, or that an + application that does not use DotNetZip but runs on Windows will be able to + handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + This example shows how to save a zip file that contains file timestamps + in a format normally used by Unix. + + using (var zip = new ZipFile()) + { + // produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = false; + zip.EmitTimesInUnixFormatWhenSaving = true; + zip.AddDirectory(directoryToZip, "files"); + zip.Save(outputFile); + } + + + + Using zip As New ZipFile + '' produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = False + zip.EmitTimesInUnixFormatWhenSaving = True + zip.AddDirectory(directoryToZip, "files") + zip.Save(outputFile) + End Using + + + + + + + + + Specifies whether the Creation, Access, and Modified times + for entries added to the zip file will be emitted in "Unix(tm) + format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to DateTime.Now. + Applications can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications + typically use: seconds since January 1, 1970 UTC. Each format can be + stored in an "extra field" in the zip entry when saving the zip + archive. The former uses an extra field with a Header Id of 0x000A, while + the latter uses a header ID of 0x5455, although you probably don't need to + know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries may be + able to read only one or the other. DotNetZip can read or write times in + either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the zip archive, a time that is always stored in "DOS + format". And, notwithstanding the names PKWare uses for these time + formats, any of them can be read and written by any computer, on any + operating system. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle a zip file with "Windows" formatted + times, or that an application that does not use DotNetZip but runs on + Windows will be able to handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + + + + + Indicates whether verbose output is sent to the during AddXxx() and + ReadXxx() operations. + + + + This is a synthetic property. It returns true if the is non-null. + + + + + Indicates whether to perform case-sensitive matching on the filename when + retrieving entries in the zipfile via the string-based indexer. + + + + The default value is false, which means don't do case-sensitive + matching. In other words, retrieving zip["ReadMe.Txt"] is the same as + zip["readme.txt"]. It really makes sense to set this to true only + if you are not running on Windows, which has case-insensitive + filenames. But since this library is not built for non-Windows platforms, + in most cases you should just leave this property alone. + + + + + Indicates whether to encode entry filenames and entry comments using Unicode + (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + your ZipFile will encode all filenames and comments using the + IBM437 codepage. This can cause "loss of information" on some filenames, + but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipFile, then adds two files, each with + names of four Chinese characters each, this will result in a duplicate + filename exception. In the case where you add a single file with a name + containing four Chinese characters, calling Extract() on the entry that + has question marks in the filename will result in an exception, because + the question mark is not legal for use within filenames on Windows. These + are just a few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + + When creating a zip file, the default value for the property is . is + safest, in the sense that you will not get an Exception if a pre-ZIP64 + limit is exceeded. + + + + You may set the property at any time before calling Save(). + + + + When reading a zip file via the Zipfile.Read() method, DotNetZip + will properly read ZIP64-endowed zip archives, regardless of the value of + this property. DotNetZip will always read ZIP64 archives. This property + governs only whether DotNetZip will write them. Therefore, when updating + archives, be careful about setting this property after reading an archive + that may use ZIP64 extensions. + + + + An interesting question is, if you have set this property to + AsNecessary, and then successfully saved, does the resulting + archive use ZIP64 extensions or not? To learn this, check the property, after calling Save(). + + + + Have you thought about + donating? + + + + + + + + Indicates whether the archive requires ZIP64 extensions. + + + + + + This property is null (or Nothing in VB) if the archive has + not been saved, and there are fewer than 65334 ZipEntry items + contained in the archive. + + + + The Value is true if any of the following four conditions holds: + the uncompressed size of any entry is larger than 0xFFFFFFFF; the + compressed size of any entry is larger than 0xFFFFFFFF; the relative + offset of any entry within the zip archive is larger than 0xFFFFFFFF; or + there are more than 65534 entries in the archive. (0xFFFFFFFF = + 4,294,967,295). The result may not be known until a Save() is attempted + on the zip archive. The Value of this + property may be set only AFTER one of the Save() methods has been called. + + + + If none of the four conditions holds, and the archive has been saved, then + the Value is false. + + + + A Value of false does not indicate that the zip archive, as saved, + does not use ZIP64. It merely indicates that ZIP64 is not required. An + archive may use ZIP64 even when not required if the property is set to , or if the property is set to and the output stream was not + seekable. Use the property to determine if + the most recent Save() method resulted in an archive that utilized + the ZIP64 extensions. + + + + + + + + + Indicates whether the most recent Save() operation used ZIP64 extensions. + + + + + The use of ZIP64 extensions within an archive is not always necessary, and + for interoperability concerns, it may be desired to NOT use ZIP64 if + possible. The property can be + set to use ZIP64 extensions only when necessary. In those cases, + Sometimes applications want to know whether a Save() actually used ZIP64 + extensions. Applications can query this read-only property to learn + whether ZIP64 has been used in a just-saved ZipFile. + + + + The value is null (or Nothing in VB) if the archive has not + been saved. + + + + Non-null values (HasValue is true) indicate whether ZIP64 + extensions were used during the most recent Save() operation. The + ZIP64 extensions may have been used as required by any particular entry + because of its uncompressed or compressed size, or because the archive is + larger than 4294967295 bytes, or because there are more than 65534 entries + in the archive, or because the UseZip64WhenSaving property was set + to , or because the + UseZip64WhenSaving property was set to and the output stream was not seekable. + The value of this property does not indicate the reason the ZIP64 + extensions were used. + + + + + + + + + Indicates whether the most recent Read() operation read a zip file that uses + ZIP64 extensions. + + + + This property will return null (Nothing in VB) if you've added an entry after reading + the zip file. + + + + + The text encoding to use when writing new entries to the ZipFile, + for those entries that cannot be encoded with the default (IBM437) + encoding; or, the text encoding that was used when reading the entries + from the ZipFile. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zipfile that is + not readable. For best interoperability, either leave alone, or specify it only once, + before adding any entries to the ZipFile instance. There is one + exception to this recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. In other words, if you explicitly specify the codepage when you + create the zipfile, you must explicitly specify the same codepage when + reading the zipfile. + + + + The way you specify the code page to use when reading a zip file varies + depending on the tool or library you use to read the zip. In DotNetZip, + you use a ZipFile.Read() method that accepts an encoding parameter. It + isn't possible with Windows Explorer, as far as I know, to specify an + explicit codepage to use when reading a zip. If you use an incorrect + codepage when reading a zipfile, you will get entries with filenames that + are incorrect, and the incorrect filenames may even contain characters + that are not legal for use within filenames in Windows. Extracting entries + with illegal characters in the filenames will lead to exceptions. It's too + bad, but this is just the way things are with code pages in zip + files. Caveat Emptor. + + + + Example: Suppose you create a zipfile that contains entries with + filenames that have Danish characters. If you use equal to "iso-8859-1" (cp 28591), + the filenames will be correctly encoded in the zip. But, to read that + zipfile correctly, you have to specify the same codepage at the time you + read it. If try to read that zip file with Windows Explorer or another + application that is not flexible with respect to the codepage used to + decode filenames in zipfiles, you will get a filename like "Inf°.txt". + + + + When using DotNetZip to read a zip archive, and the zip archive uses an + arbitrary code page, you must specify the encoding to use before or when + the Zipfile is READ. This means you must use a ZipFile.Read() + method that allows you to specify a System.Text.Encoding parameter. Setting + the ProvisionalAlternateEncoding property after your application has read in + the zip archive will not affect the entry names of entries that have already + been read in. + + + + And now, the exception to the rule described above. One strategy for + specifying the code page for a given zip file is to describe the code page + in a human-readable form in the Zip comment. For example, the comment may + read "Entries in this archive are encoded in the Big5 code page". For + maximum interoperability, the zip comment in this case should be encoded + in the default, IBM437 code page. In this case, the zip comment is + encoded using a different page than the filenames. To do this, Specify + ProvisionalAlternateEncoding to your desired region-specific code + page, once before adding any entries, and then reset + ProvisionalAlternateEncoding to IBM437 before setting the property and calling Save(). + + + + + This example shows how to read a zip file using the Big-5 Chinese code page + (950), and extract each entry in the zip file. For this code to work as + desired, the Zipfile must have been created using the big5 code page + (CP950). This is typical, for example, when using WinRar on a machine with + CP950 set as the default code page. In that case, the names of entries + within the Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did not use + the correct code page in ZipFile.Read(), then names of entries within the + zip archive would not be correctly retrieved. + + using (var zip = ZipFile.Read(zipFileName, System.Text.Encoding.GetEncoding("big5"))) + { + // retrieve and extract an entry using a name encoded with CP950 + zip[MyDesiredEntry].Extract("unpack"); + } + + + + Using zip As ZipFile = ZipFile.Read(ZipToExtract, System.Text.Encoding.GetEncoding("big5")) + ' retrieve and extract an entry using a name encoded with CP950 + zip(MyDesiredEntry).Extract("unpack") + End Using + + + + DefaultEncoding + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + Gets or sets the TextWriter to which status messages are delivered + for the instance. + + + + If the TextWriter is set to a non-null value, then verbose output is sent + to the TextWriter during Add, Read, Save and + Extract operations. Typically, console applications might use + Console.Out and graphical or headless applications might use a + System.IO.StringWriter. The output of this is suitable for viewing + by humans. + + + + + In this example, a console application instantiates a ZipFile, then + sets the StatusMessageTextWriter to Console.Out. At that + point, all verbose status messages for that ZipFile are sent to the + console. + + + + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= System.Console.Out; + // messages are sent to the console during extraction + zip.ExtractAll(); + } + + + + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= System.Console.Out + 'Status Messages will be sent to the console during extraction + zip.ExtractAll() + End Using + + + + In this example, a Windows Forms application instantiates a + ZipFile, then sets the StatusMessageTextWriter to a + StringWriter. At that point, all verbose status messages for that + ZipFile are sent to the StringWriter. + + + + var sw = new System.IO.StringWriter(); + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= sw; + zip.ExtractAll(); + } + Console.WriteLine("{0}", sw.ToString()); + + + + Dim sw as New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= sw + zip.ExtractAll() + End Using + 'Status Messages are now available in sw + + + + + + + Gets or sets the name for the folder to store the temporary file + this library writes when saving a zip archive. + + + + + This library will create a temporary file when saving a Zip archive to a + file. This file is written when calling one of the Save() methods + that does not save to a stream, or one of the SaveSelfExtractor() + methods. + + + + By default, the library will create the temporary file in the directory + specified for the file itself, via the property or via + the method. + + + + Setting this property allows applications to override this default + behavior, so that the library will create the temporary file in the + specified folder. For example, to have the library create the temporary + file in the current working directory, regardless where the ZipFile + is saved, specfy ".". To revert to the default behavior, set this + property to null (Nothing in VB). + + + + When setting the property to a non-null value, the folder specified must + exist; if it does not an exception is thrown. The application should have + write and delete permissions on the folder. The permissions are not + explicitly checked ahead of time; if the application does not have the + appropriate rights, an exception will be thrown at the time Save() + is called. + + + + There is no temporary file created when reading a zip archive. When + saving to a Stream, there is no temporary file created. For example, if + the application is an ASP.NET application and calls Save() + specifying the Response.OutputStream as the output stream, there is + no temporary file created. + + + + + Thrown when setting the property if the directory does not exist. + + + + + + Sets the password to be used on the ZipFile instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + added to the ZipFile, using one of the AddFile, + AddDirectory, AddEntry, or AddItem methods, etc. + When reading a zip archive, this property applies to any entry + subsequently extracted from the ZipFile using one of the Extract + methods on the ZipFile class. + + + + When writing a zip archive, keep this in mind: though the password is set + on the ZipFile object, according to the Zip spec, the "directory" of the + archive - in other words the list of entries or files contained in the archive - is + not encrypted with the password, or protected in any way. If you set the + Password property, the password actually applies to individual entries + that are added to the archive, subsequent to the setting of this property. + The list of filenames in the archive that is eventually created will + appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + One simple way around this limitation is to simply double-wrap sensitive + filenames: Store the files in a zip file, and then store that zip file + within a second, "outer" zip file. If you apply a password to the outer + zip file, then readers will be able to see that the outer zip file + contains an inner zip file. But readers will not be able to read the + directory or file list of the inner zip file. + + + + If you set the password on the ZipFile, and then add a set of files + to the archive, then each entry is encrypted with that password. You may + also want to change the password between adding different entries. If you + set the password, add an entry, then set the password to null + (Nothing in VB), and add another entry, the first entry is + encrypted and the second is not. If you call AddFile(), then set + the Password property, then call ZipFile.Save, the file + added will not be password-protected, and no warning will be generated. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If you set + the password to a null value (Nothing in VB), Encryption is + reset to None. + + + + All of the preceding applies to writing zip archives, in other words when + you use one of the Save methods. To use this property when reading or an + existing ZipFile, do the following: set the Password property on the + ZipFile, then call one of the Extract() overloads on the . In this case, the entry is extracted using the + Password that is specified on the ZipFile instance. If you + have not set the Password property, then the password is + null, and the entry is extracted with no password. + + + + If you set the Password property on the ZipFile, then call + Extract() an entry that has not been encrypted with a password, the + password is not used for that entry, and the ZipEntry is extracted + as normal. In other words, the password is used only if necessary. + + + + The class also has a Password property. It takes precedence + over this property on the ZipFile. Typically, you would use the + per-entry Password when most entries in the zip archive use one password, + and a few entries use a different password. If all entries in the zip + file use the same password, then it is simpler to just set this property + on the ZipFile itself, whether creating a zip archive or extracting + a zip archive. + + + + + + + This example creates a zip file, using password protection for the + entries, and then extracts the entries from the zip file. When creating + the zip file, the Readme.txt file is not protected with a password, but + the other two are password-protected as they are saved. During extraction, + each file is extracted with the appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Password= "!Secret1"; + zip.AddFile("MapToTheSite-7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "!Secret1"; + zip.ExtractAll("extractDir"); + } + + + + + Using zip As New ZipFile + zip.AddFile("ReadMe.txt") + zip.Password = "123456!" + zip.AddFile("MapToTheSite-7440-N49th.png") + zip.Password= "!Secret1"; + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "!Secret1" + zip.ExtractAll("extractDir") + End Using + + + + + + ZipFile.Encryption + ZipEntry.Password + + + + The action the library should take when extracting a file that already + exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting an + entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file + to be extracted does not already exist. + + + + + + + The action the library should take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. + + + + The first problem might occur after having called AddDirectory() on a + directory that contains a Clipper .dbf file; the file is locked by + Clipper and cannot be opened for read by another process. An example of + the second problem might occur when trying to zip a .pst file that is in + use by Microsoft Outlook. Outlook locks a range on the file, which allows + other processes to open the file, but not read it in its entirety. + + + + This property tells DotNetZip what you would like to do in the case of + these errors. The primary options are: ZipErrorAction.Throw to + throw an exception (this is the default behavior if you don't set this + property); ZipErrorAction.Skip to Skip the file for which there + was an error and continue saving; ZipErrorAction.Retry to Retry + the entry that caused the problem; or + ZipErrorAction.InvokeErrorEvent to invoke an event handler. + + + + This property is implicitly set to ZipErrorAction.InvokeErrorEvent + if you add a handler to the event. If you set + this property to something other than + ZipErrorAction.InvokeErrorEvent, then the ZipError + event is implicitly cleared. What it means is you can set one or the + other (or neither), depending on what you want, but you never need to set + both. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified ZipErrorAction to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified error handling action. + + + + If you want to handle any errors that occur with any entry in the zip + file in the same way, then set this property once, before adding any + entries to the zip archive. + + + + If you set this property to ZipErrorAction.Skip and you'd like to + learn which files may have been skipped after a Save(), you can + set the on the ZipFile before + calling Save(). A message will be emitted into that writer for + each skipped file, if any. + + + + + + This example shows how to tell DotNetZip to skip any files for which an + error is generated during the Save(). + + Public Sub SaveZipFile() + Dim SourceFolder As String = "fodder" + Dim DestFile As String = "eHandler.zip" + Dim sw as New StringWriter + Using zipArchive As ZipFile = New ZipFile + ' Tell DotNetZip to skip any files for which it encounters an error + zipArchive.ZipErrorAction = ZipErrorAction.Skip + zipArchive.StatusMessageTextWriter = sw + zipArchive.AddDirectory(SourceFolder) + zipArchive.Save(DestFile) + End Using + ' examine sw here to see any messages + End Sub + + + + + + + + + + The Encryption to use for entries added to the ZipFile. + + + + + Set this when creating a zip archive, or when updating a zip archive. The + specified Encryption is applied to the entries subsequently added to the + ZipFile instance. Applications do not need to set the + Encryption property when reading or extracting a zip archive. + + + + If you set this to something other than EncryptionAlgorithm.None, you + will also need to set the . + + + + As with some other properties on the ZipFile class, like and , setting this + property on a ZipFile instance will cause the specified + EncryptionAlgorithm to be used on all items + that are subsequently added to the ZipFile instance. In other + words, if you set this property after you have added items to the + ZipFile, but before you have called Save(), those items will + not be encrypted or protected with a password in the resulting zip + archive. To get a zip archive with encrypted entries, set this property, + along with the property, before calling + AddFile, AddItem, or AddDirectory (etc.) on the + ZipFile instance. + + + + If you read a ZipFile, you can modify the Encryption on an + encrypted entry, only by setting the Encryption property on the + ZipEntry itself. Setting the Encryption property on the + ZipFile, once it has been created via a call to + ZipFile.Read(), does not affect entries that were previously read. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then calling Save() on the ZipFile does not update the + Encryption used for the entries in the archive. Neither is an + exception thrown. Instead, what happens during the Save() is that + all previously existing entries are copied through to the new zip archive, + with whatever encryption and password that was used when originally + creating the zip archive. Upon re-reading that archive, to extract + entries, applications should use the original password or passwords, if + any. + + + + Suppose an application reads a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then adding new entries (via AddFile(), AddEntry(), etc) + and then calling Save() on the ZipFile does not update the + Encryption on any of the entries that had previously been in the + ZipFile. The Encryption property applies only to the + newly-added entries. + + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other files + use encryption. + + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Encryption= EncryptionAlgorithm.WinZipAes256; + zip.Password= "Top.Secret.No.Peeking!"; + zip.AddFile("7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.Encryption= EncryptionAlgorithm.WinZipAes256 + zip.Password= "Top.Secret.No.Peeking!" + zip.AddFile("ReadMe.txt") + zip.AddFile("7440-N49th.png") + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + ZipFile.Password + ZipEntry.Encryption + + + + A callback that allows the application to specify the compression level + to use for entries subsequently added to the zip archive. + + + + + + With this callback, the DotNetZip library allows the application to + determine whether compression will be used, at the time of the + Save. This may be useful if the application wants to favor + speed over size, and wants to defer the decision until the time of + Save. + + + + Typically applications set the property on + the ZipFile or on each ZipEntry to determine the level of + compression used. This is done at the time the entry is added to the + ZipFile. Setting the property to + Ionic.Zlib.CompressionLevel.None means no compression will be used. + + + + This callback allows the application to defer the decision on the + CompressionLevel to use, until the time of the call to + ZipFile.Save(). The callback is invoked once per ZipEntry, + at the time the data for the entry is being written out as part of a + Save() operation. The application can use whatever criteria it + likes in determining the level to return. For example, an application may + wish that no .mp3 files should be compressed, because they are already + compressed and the extra compression is not worth the CPU time incurred, + and so can return None for all .mp3 entries. + + + + The library determines whether compression will be attempted for an entry + this way: If the entry is a zero length file, or a directory, no + compression is used. Otherwise, if this callback is set, it is invoked + and the CompressionLevel is set to the return value. If this + callback has not been set, then the previously set value for + CompressionLevel is used. + + + + + + + The maximum size of an output segment, when saving a split Zip file. + + + + Set this to a non-zero value before calling or to specify that the ZipFile should be saved as a + split archive, also sometimes called a spanned archive. Some also + call them multi-file archives. + + + + A split zip archive is saved in a set of discrete filesystem files, + rather than in a single file. This is handy when transmitting the + archive in email or some other mechanism that has a limit to the size of + each file. The first file in a split archive will be named + basename.z01, the second will be named basename.z02, and + so on. The final file is named basename.zip. According to the zip + specification from PKWare, the minimum value is 65536, for a 64k segment + size. The maximum number of segments allows in a split archive is 99. + + + + The value of this property determines the maximum size of a split + segment when writing a split archive. For example, suppose you have a + ZipFile that would save to a single file of 200k. If you set the + MaxOutputSegmentSize to 65536 before calling Save(), you + will get four distinct output files. On the other hand if you set this + property to 256k, then you will get a single-file archive for that + ZipFile. + + + + The size of each split output file will be as large as possible, up to + the maximum size set here. The zip specification requires that some data + fields in a zip archive may not span a split boundary, and an output + segment may be smaller than the maximum if necessary to avoid that + problem. Also, obviously the final segment of the archive may be smaller + than the maximum segment size. Segments will never be larger than the + value set with this property. + + + + You can save a split Zip file only when saving to a regular filesystem + file. It's not possible to save a split zip file as a self-extracting + archive, nor is it possible to save a split zip file to a stream. When + saving to a SFX or to a Stream, this property is ignored. + + + + About interoperability: Split or spanned zip files produced by DotNetZip + can be read by WinZip or PKZip, and vice-versa. Segmented zip files may + not be readable by other tools, if those other tools don't support zip + spanning or splitting. When in doubt, test. I don't believe Windows + Explorer can extract a split archive. + + + + This property has no effect when reading a split archive. You can read + a split archive in the normal way with DotNetZip. + + + + When saving a zip file, if you want a regular zip file rather than a + split zip file, don't set this property, or set it to Zero. + + + + If you read a split archive, with and + then subsequently call ZipFile.Save(), unless you set this + property before calling Save(), you will get a normal, + single-file archive. + + + + + + + + Returns the number of segments used in the most recent Save() operation. + + + + This is normally zero, unless you have set the property. If you have set , and then you save a file, after the call to + Save() completes, you can read this value to learn the number of segments that + were created. + + + If you call Save("Archive.zip"), and it creates 5 segments, then you + will have filesystem files named Archive.z01, Archive.z02, Archive.z03, + Archive.z04, and Archive.zip, and the value of this property will be 5. + + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, + if the entry is larger than the given size. Zero means "always + use parallel deflate", while -1 means "never use parallel + deflate". The default value for this property is 512k. Aside + from the special values of 0 and 1, the minimum value is 65536. + + + + If the entry size cannot be known before compression, as with a + read-forward stream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is not as effective. + + + + Parallel deflate tends to yield slightly less compression when + compared to as single-threaded deflate; this is because the original + data stream is split into multiple independent buffers, each of which + is compressed in parallel. But because they are treated + independently, there is no opportunity to share compression + dictionaries. For that reason, a deflated stream may be slightly + larger when compressed using parallel deflate, as compared to a + traditional single-threaded deflate. Sometimes the increase over the + normal deflate is as much as 5% of the total compressed size. For + larger files it can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when + using Encryption. This is primarily because encryption tends to slow + down the entire pipeline. Also, multi-threaded compression gives less + of an advantage when using lower compression levels, for example . You may have to + perform some tests to determine the best approach for your situation. + + + + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time + before calling ZipFile.Save(). + + + + + + + + + Returns the version number on the DotNetZip assembly. + + + + + This property is exposed as a convenience. Callers could also get the + version value by retrieving GetName().Version on the + System.Reflection.Assembly object pointing to the DotNetZip + assembly. But sometimes it is not clear which assembly is being loaded. + This property makes it clear. + + + This static property is primarily useful for diagnostic purposes. + + + + + + This is an integer indexer into the Zip archive. + + + + + This property is read-only. + + + + Internally, the ZipEntry instances that belong to the + ZipFile are stored in a Dictionary. When you use this + indexer the first time, it creates a read-only + List<ZipEntry> from the Dictionary.Values Collection. + If at any time you modify the set of entries in the ZipFile, + either by adding an entry, removing an entry, or renaming an + entry, a new List will be created, and the numeric indexes for the + remaining entries may be different. + + + + This means you cannot rename any ZipEntry from + inside an enumeration of the zip file. + + + + The index value. + + + + + + The ZipEntry within the Zip archive at the specified index. If the + entry does not exist in the archive, this indexer throws. + + + + + + This is a name-based indexer into the Zip archive. + + + + + This property is read-only. + + + + The property on the ZipFile + determines whether retrieval via this indexer is done via case-sensitive + comparisons. By default, retrieval is not case sensitive. This makes + sense on Windows, in which filesystems are not case sensitive. + + + + Regardless of case-sensitivity, it is not always the case that + this[value].FileName == value. In other words, the FileName + property of the ZipEntry retrieved with this indexer, may or may + not be equal to the index value. + + + + This is because DotNetZip performs a normalization of filenames passed to + this indexer, before attempting to retrieve the item. That normalization + includes: removal of a volume letter and colon, swapping backward slashes + for forward slashes. So, zip["dir1\\entry1.txt"].FileName == + "dir1/entry.txt". + + + + Directory entries in the zip file may be retrieved via this indexer only + with names that have a trailing slash. DotNetZip automatically appends a + trailing slash to the names of any directory entries added to a zip. + + + + + + This example extracts only the entries in a zip file that are .txt files. + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + zip[s1].Extract("textfiles"); + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + Thrown if the caller attempts to assign a non-null value to the indexer. + + + + The name of the file, including any directory path, to retrieve from the + zip. The filename match is not case-sensitive by default; you can use the + property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + The ZipEntry within the Zip archive, given by the specified + filename. If the named entry does not exist in the archive, this indexer + returns null (Nothing in VB). + + + + + + The list of filenames for the entries contained within the zip archive. + + + + According to the ZIP specification, the names of the entries use forward + slashes in pathnames. If you are scanning through the list, you may have + to swap forward slashes for backslashes. + + + + + + This example shows one way to test if a filename is already contained + within a zip archive. + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = new ZipFile(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", + candidate, + zipFileName); + else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", + candidate, + zipFileName); + Console.WriteLine(); + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile.Read(ZipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", _ + candidate, _ + zipFileName) + Else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", _ + candidate, _ + zipFileName) + End If + Console.WriteLine + End Using + + + + + The list of strings for the filenames contained within the Zip archive. + + + + + + Returns the readonly collection of entries in the Zip archive. + + + + + + If there are no entries in the current ZipFile, the value returned is a + non-null zero-element collection. If there are entries in the zip file, + the elements are returned in no particular order. + + + This is the implied enumerator on the ZipFile class. If you use a + ZipFile instance in a context that expects an enumerator, you will + get this collection. + + + + + + + Returns a readonly collection of entries in the Zip archive, sorted by FileName. + + + + If there are no entries in the current ZipFile, the value returned + is a non-null zero-element collection. If there are entries in the zip + file, the elements are returned sorted by the name of the entry. + + + + + This example fills a Windows Forms ListView with the entries in a zip file. + + + using (ZipFile zip = ZipFile.Read(zipFile)) + { + foreach (ZipEntry entry in zip.EntriesSorted) + { + ListViewItem item = new ListViewItem(n.ToString()); + n++; + string[] subitems = new string[] { + entry.FileName.Replace("/","\\"), + entry.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + entry.UncompressedSize.ToString(), + String.Format("{0,5:F0}%", entry.CompressionRatio), + entry.CompressedSize.ToString(), + (entry.UsesEncryption) ? "Y" : "N", + String.Format("{0:X8}", entry.Crc)}; + + foreach (String s in subitems) + { + ListViewItem.ListViewSubItem subitem = new ListViewItem.ListViewSubItem(); + subitem.Text = s; + item.SubItems.Add(subitem); + } + + this.listView1.Items.Add(item); + } + } + + + + + + + + Returns the number of entries in the Zip archive. + + + + + An event handler invoked when a Save() starts, before and after each + entry has been written to the archive, when a Save() completes, and + during other Save events. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + SaveProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Saving_Started + Fired when ZipFile.Save() begins. + + + + + ZipProgressEventType.Saving_BeforeSaveEntry + + Fired within ZipFile.Save(), just before writing data for each + particular entry. + + + + + ZipProgressEventType.Saving_AfterSaveEntry + + Fired within ZipFile.Save(), just after having finished writing data + for each particular entry. + + + + + ZipProgressEventType.Saving_Completed + Fired when ZipFile.Save() has completed. + + + + + ZipProgressEventType.Saving_AfterSaveTempArchive + + Fired after the temporary file has been created. This happens only + when saving to a disk file. This event will not be invoked when + saving to a stream. + + + + + ZipProgressEventType.Saving_BeforeRenameTempArchive + + Fired just before renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterRenameTempArchive + + Fired just after renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterCompileSelfExtractor + + Fired after a self-extracting archive has finished compiling. This + EventType is used only within SaveSelfExtractor(). + + + + + ZipProgressEventType.Saving_BytesRead + + Set during the save of a particular entry, to update progress of the + Save(). When this EventType is set, the BytesTransferred is the + number of bytes that have been read from the source stream. The + TotalBytesToTransfer is the number of bytes in the uncompressed + file. + + + + + + + + + This example uses an anonymous method to handle the + SaveProgress event, by updating a progress bar. + + + progressBar1.Value = 0; + progressBar1.Max = listbox1.Items.Count; + using (ZipFile zip = new ZipFile()) + { + // listbox1 contains a list of filenames + zip.AddFiles(listbox1.Items); + + // do the progress bar: + zip.SaveProgress += (sender, e) => { + if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) { + progressBar1.PerformStep(); + } + }; + + zip.Save(fs); + } + + + + + This example uses a named method as the + SaveProgress event handler, to update the user, in a + console-based application. + + + static bool justHadByteUpdate= false; + public static void SaveProgress(object sender, SaveProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Saving_Started) + Console.WriteLine("Saving: {0}", e.ArchiveName); + + else if (e.EventType == ZipProgressEventType.Saving_Completed) + { + justHadByteUpdate= false; + Console.WriteLine(); + Console.WriteLine("Done: {0}", e.ArchiveName); + } + + else if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine(" Writing: {0} ({1}/{2})", + e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal); + justHadByteUpdate= false; + } + + else if (e.EventType == ZipProgressEventType.Saving_EntryBytesRead) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate= true; + } + } + + public static ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) { + zip.SaveProgress += SaveProgress; + zip.AddDirectory(directory); + zip.Save(targetZip); + } + } + + + + + Public Sub ZipUp(ByVal targetZip As String, ByVal directory As String) + Using zip As ZipFile = New ZipFile + AddHandler zip.SaveProgress, AddressOf MySaveProgress + zip.AddDirectory(directory) + zip.Save(targetZip) + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MySaveProgress(ByVal sender As Object, ByVal e As SaveProgressEventArgs) + If (e.EventType Is ZipProgressEventType.Saving_Started) Then + Console.WriteLine("Saving: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_Completed) Then + justHadByteUpdate = False + Console.WriteLine + Console.WriteLine("Done: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_BeforeWriteEntry) Then + If justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine(" Writing: {0} ({1}/{2})", e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal) + justHadByteUpdate = False + + ElseIf (e.EventType Is ZipProgressEventType.Saving_EntryBytesRead) Then + If justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, _ + e.TotalBytesToTransfer, _ + (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + justHadByteUpdate = True + End If + End Sub + + + + + + This is a more complete example of using the SaveProgress + events in a Windows Forms application, with a + Thread object. + + + delegate void SaveEntryProgress(SaveProgressEventArgs e); + delegate void ButtonClick(object sender, EventArgs e); + + public class WorkerOptions + { + public string ZipName; + public string Folder; + public string Encoding; + public string Comment; + public int ZipFlavor; + public Zip64Option Zip64; + } + + private int _progress2MaxFactor; + private bool _saveCanceled; + private long _totalBytesBeforeCompress; + private long _totalBytesAfterCompress; + private Thread _workerThread; + + + private void btnZipup_Click(object sender, EventArgs e) + { + KickoffZipup(); + } + + private void btnCancel_Click(object sender, EventArgs e) + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new ButtonClick(this.btnCancel_Click), new object[] { sender, e }); + } + else + { + _saveCanceled = true; + lblStatus.Text = "Canceled..."; + ResetState(); + } + } + + private void KickoffZipup() + { + _folderName = tbDirName.Text; + + if (_folderName == null || _folderName == "") return; + if (this.tbZipName.Text == null || this.tbZipName.Text == "") return; + + // check for existence of the zip file: + if (System.IO.File.Exists(this.tbZipName.Text)) + { + var dlgResult = MessageBox.Show(String.Format("The file you have specified ({0}) already exists." + + " Do you want to overwrite this file?", this.tbZipName.Text), + "Confirmation is Required", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (dlgResult != DialogResult.Yes) return; + System.IO.File.Delete(this.tbZipName.Text); + } + + _saveCanceled = false; + _nFilesCompleted = 0; + _totalBytesAfterCompress = 0; + _totalBytesBeforeCompress = 0; + this.btnOk.Enabled = false; + this.btnOk.Text = "Zipping..."; + this.btnCancel.Enabled = true; + lblStatus.Text = "Zipping..."; + + var options = new WorkerOptions + { + ZipName = this.tbZipName.Text, + Folder = _folderName, + Encoding = "ibm437" + }; + + if (this.comboBox1.SelectedIndex != 0) + { + options.Encoding = this.comboBox1.SelectedItem.ToString(); + } + + if (this.radioFlavorSfxCmd.Checked) + options.ZipFlavor = 2; + else if (this.radioFlavorSfxGui.Checked) + options.ZipFlavor = 1; + else options.ZipFlavor = 0; + + if (this.radioZip64AsNecessary.Checked) + options.Zip64 = Zip64Option.AsNecessary; + else if (this.radioZip64Always.Checked) + options.Zip64 = Zip64Option.Always; + else options.Zip64 = Zip64Option.Never; + + options.Comment = String.Format("Encoding:{0} || Flavor:{1} || ZIP64:{2}\r\nCreated at {3} || {4}\r\n", + options.Encoding, + FlavorToString(options.ZipFlavor), + options.Zip64.ToString(), + System.DateTime.Now.ToString("yyyy-MMM-dd HH:mm:ss"), + this.Text); + + if (this.tbComment.Text != TB_COMMENT_NOTE) + options.Comment += this.tbComment.Text; + + _workerThread = new Thread(this.DoSave); + _workerThread.Name = "Zip Saver thread"; + _workerThread.Start(options); + this.Cursor = Cursors.WaitCursor; + } + + + private void DoSave(Object p) + { + WorkerOptions options = p as WorkerOptions; + try + { + using (var zip1 = new ZipFile()) + { + zip1.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(options.Encoding); + zip1.Comment = options.Comment; + zip1.AddDirectory(options.Folder); + _entriesToZip = zip1.EntryFileNames.Count; + SetProgressBars(); + zip1.SaveProgress += this.zip1_SaveProgress; + + zip1.UseZip64WhenSaving = options.Zip64; + + if (options.ZipFlavor == 1) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.WinFormsApplication); + else if (options.ZipFlavor == 2) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.ConsoleApplication); + else + zip1.Save(options.ZipName); + } + } + catch (System.Exception exc1) + { + MessageBox.Show(String.Format("Exception while zipping: {0}", exc1.Message)); + btnCancel_Click(null, null); + } + } + + + + void zip1_SaveProgress(object sender, SaveProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Saving_AfterWriteEntry: + StepArchiveProgress(e); + break; + case ZipProgressEventType.Saving_EntryBytesRead: + StepEntryProgress(e); + break; + case ZipProgressEventType.Saving_Completed: + SaveCompleted(); + break; + case ZipProgressEventType.Saving_AfterSaveTempArchive: + // this event only occurs when saving an SFX file + TempArchiveSaved(); + break; + } + if (_saveCanceled) + e.Cancel = true; + } + + + + private void StepArchiveProgress(SaveProgressEventArgs e) + { + if (this.progressBar1.InvokeRequired) + { + this.progressBar1.Invoke(new SaveEntryProgress(this.StepArchiveProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + _nFilesCompleted++; + this.progressBar1.PerformStep(); + _totalBytesAfterCompress += e.CurrentEntry.CompressedSize; + _totalBytesBeforeCompress += e.CurrentEntry.UncompressedSize; + + // reset the progress bar for the entry: + this.progressBar2.Value = this.progressBar2.Maximum = 1; + + this.Update(); + } + } + } + + + private void StepEntryProgress(SaveProgressEventArgs e) + { + if (this.progressBar2.InvokeRequired) + { + this.progressBar2.Invoke(new SaveEntryProgress(this.StepEntryProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + if (this.progressBar2.Maximum == 1) + { + // reset + Int64 max = e.TotalBytesToTransfer; + _progress2MaxFactor = 0; + while (max > System.Int32.MaxValue) + { + max /= 2; + _progress2MaxFactor++; + } + this.progressBar2.Maximum = (int)max; + lblStatus.Text = String.Format("{0} of {1} files...({2})", + _nFilesCompleted + 1, _entriesToZip, e.CurrentEntry.FileName); + } + + int xferred = e.BytesTransferred >> _progress2MaxFactor; + + this.progressBar2.Value = (xferred >= this.progressBar2.Maximum) + ? this.progressBar2.Maximum + : xferred; + + this.Update(); + } + } + } + + private void SaveCompleted() + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new MethodInvoker(this.SaveCompleted)); + } + else + { + lblStatus.Text = String.Format("Done, Compressed {0} files, {1:N0}% of original.", + _nFilesCompleted, (100.00 * _totalBytesAfterCompress) / _totalBytesBeforeCompress); + ResetState(); + } + } + + private void ResetState() + { + this.btnCancel.Enabled = false; + this.btnOk.Enabled = true; + this.btnOk.Text = "Zip it!"; + this.progressBar1.Value = 0; + this.progressBar2.Value = 0; + this.Cursor = Cursors.Default; + if (!_workerThread.IsAlive) + _workerThread.Join(); + } + + + + + + + + + + + An event handler invoked before, during, and after the reading of a zip archive. + + + + + Depending on the particular event being signaled, different properties on the + parameter are set. The following table + summarizes the available EventTypes and the conditions under which this + event handler is invoked with a ReadProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Reading_Started + Fired just as ZipFile.Read() begins. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_Completed + Fired when ZipFile.Read() has completed. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_ArchiveBytesRead + Fired while reading, updates the number of bytes read for the entire archive. + Meaningful properties: ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Reading_BeforeReadEntry + Indicates an entry is about to be read from the archive. + Meaningful properties: ArchiveName, EntriesTotal. + + + + + ZipProgressEventType.Reading_AfterReadEntry + Indicates an entry has just been read from the archive. + Meaningful properties: ArchiveName, EntriesTotal, CurrentEntry. + + + + + + + + + + + + + An event handler invoked before, during, and after extraction of + entries in the zip archive. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + ExtractProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Extracting_BeforeExtractAll + + Set when ExtractAll() begins. The ArchiveName, Overwrite, and + ExtractLocation properties are meaningful. + + + + ZipProgressEventType.Extracting_AfterExtractAll + + Set when ExtractAll() has completed. The ArchiveName, Overwrite, + and ExtractLocation properties are meaningful. + + + + + ZipProgressEventType.Extracting_BeforeExtractEntry + + Set when an Extract() on an entry in the ZipFile has begun. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_AfterExtractEntry + + Set when an Extract() on an entry in the ZipFile has completed. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_EntryBytesWritten + + Set within a call to Extract() on an entry in the ZipFile, as data + is extracted for the entry. Properties that are meaningful: + ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite + + Set within a call to Extract() on an entry in the ZipFile, when the + extraction would overwrite an existing file. This event type is used + only when ExtractExistingFileAction on the ZipFile or + ZipEntry is set to InvokeExtractProgressEvent. + + + + + + + + + + private static bool justHadByteUpdate = false; + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if(e.EventType == ZipProgressEventType.Extracting_EntryBytesWritten) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate = true; + } + else if(e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName); + justHadByteUpdate= false; + } + } + + public static ExtractZip(string zipToExtract, string directory) + { + string TargetDirectory= "extract"; + using (var zip = ZipFile.Read(zipToExtract)) { + zip.ExtractProgress += ExtractProgress; + foreach (var e in zip1) + { + e.Extract(TargetDirectory, true); + } + } + } + + + + Public Shared Sub Main(ByVal args As String()) + Dim ZipToUnpack As String = "C1P3SML.zip" + Dim TargetDir As String = "ExtractTest_Extract" + Console.WriteLine("Extracting file {0} to {1}", ZipToUnpack, TargetDir) + Using zip1 As ZipFile = ZipFile.Read(ZipToUnpack) + AddHandler zip1.ExtractProgress, AddressOf MyExtractProgress + Dim e As ZipEntry + For Each e In zip1 + e.Extract(TargetDir, True) + Next + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MyExtractProgress(ByVal sender As Object, ByVal e As ExtractProgressEventArgs) + If (e.EventType = ZipProgressEventType.Extracting_EntryBytesWritten) Then + If ExtractTest.justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + ExtractTest.justHadByteUpdate = True + ElseIf (e.EventType = ZipProgressEventType.Extracting_BeforeExtractEntry) Then + If ExtractTest.justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName) + ExtractTest.justHadByteUpdate = False + End If + End Sub + + + + + + + + + + An event handler invoked before, during, and after Adding entries to a zip archive. + + + + Adding a large number of entries to a zip file can take a long + time. For example, when calling on a + directory that contains 50,000 files, it could take 3 minutes or so. + This event handler allws an application to track the progress of the Add + operation, and to optionally cancel a lengthy Add operation. + + + + + + int _numEntriesToAdd= 0; + int _numEntriesAdded= 0; + void AddProgressHandler(object sender, AddProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Adding_Started: + Console.WriteLine("Adding files to the zip..."); + break; + case ZipProgressEventType.Adding_AfterAddEntry: + _numEntriesAdded++; + Console.WriteLine(String.Format("Adding file {0}/{1} :: {2}", + _numEntriesAdded, _numEntriesToAdd, e.CurrentEntry.FileName)); + break; + case ZipProgressEventType.Adding_Completed: + Console.WriteLine("Added all files"); + break; + } + } + + void CreateTheZip() + { + using (ZipFile zip = new ZipFile()) + { + zip.AddProgress += AddProgressHandler; + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)); + zip.Save(ZipFileToCreate); + } + } + + + + + + Private Sub AddProgressHandler(ByVal sender As Object, ByVal e As AddProgressEventArgs) + Select Case e.EventType + Case ZipProgressEventType.Adding_Started + Console.WriteLine("Adding files to the zip...") + Exit Select + Case ZipProgressEventType.Adding_AfterAddEntry + Console.WriteLine(String.Format("Adding file {0}", e.CurrentEntry.FileName)) + Exit Select + Case ZipProgressEventType.Adding_Completed + Console.WriteLine("Added all files") + Exit Select + End Select + End Sub + + Sub CreateTheZip() + Using zip as ZipFile = New ZipFile + AddHandler zip.AddProgress, AddressOf AddProgressHandler + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)) + zip.Save(ZipFileToCreate); + End Using + End Sub + + + + + + + + + + + + An event that is raised when an error occurs during open or read of files + while saving a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. If you add a handler to this event, + you can handle such errors in your own code. If you don't add a + handler, the library will throw an exception if it encounters an I/O + error during a call to Save(). + + + + Setting a handler implicitly sets to + ZipErrorAction.InvokeErrorEvent. + + + + The handler you add applies to all items that are + subsequently added to the ZipFile instance. If you set this + property after you have added items to the ZipFile, but before you + have called Save(), errors that occur while saving those items + will not cause the error handler to be invoked. + + + + If you want to handle any errors that occur with any entry in the zip + file using the same error handler, then add your error handler once, + before adding any entries to the zip archive. + + + + In the error handler method, you need to set the property on the + ZipErrorEventArgs.CurrentEntry. This communicates back to + DotNetZip what you would like to do with this particular error. Within + an error handler, if you set the ZipEntry.ZipErrorAction property + on the ZipEntry to ZipErrorAction.InvokeErrorEvent or if + you don't set it at all, the library will throw the exception. (It is the + same as if you had set the ZipEntry.ZipErrorAction property on the + ZipEntry to ZipErrorAction.Throw.) If you set the + ZipErrorEventArgs.Cancel to true, the entire Save() will be + canceled. + + + + In the case that you use ZipErrorAction.Skip, implying that + you want to skip the entry for which there's been an error, DotNetZip + tries to seek backwards in the output stream, and truncate all bytes + written on behalf of that particular entry. This works only if the + output stream is seekable. It will not work, for example, when using + ASPNET's Response.OutputStream. + + + + + + + This example shows how to use an event handler to handle + errors during save of the zip file. + + + public static void MyZipError(object sender, ZipErrorEventArgs e) + { + Console.WriteLine("Error saving {0}...", e.FileName); + Console.WriteLine(" Exception: {0}", e.exception); + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user whether he wants to skip this error or not + do + { + Console.Write("Retry, Skip, Throw, or Cancel ? (R/S/T/C) "); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && + response[0]!='S' && response[0]!='s' && + response[0]!='R' && response[0]!='r' && + response[0]!='T' && response[0]!='t' && + response[0]!='C' && response[0]!='c'); + + e.Cancel = (response[0]=='C' || response[0]=='c'); + + if (response[0]=='S' || response[0]=='s') + entry.ZipErrorAction = ZipErrorAction.Skip; + else if (response[0]=='R' || response[0]=='r') + entry.ZipErrorAction = ZipErrorAction.Retry; + else if (response[0]=='T' || response[0]=='t') + entry.ZipErrorAction = ZipErrorAction.Throw; + } + + public void SaveTheFile() + { + string directoryToZip = "fodder"; + string directoryInArchive = "files"; + string zipFileToCreate = "Archive.zip"; + using (var zip = new ZipFile()) + { + // set the event handler before adding any entries + zip.ZipError += MyZipError; + zip.AddDirectory(directoryToZip, directoryInArchive); + zip.Save(zipFileToCreate); + } + } + + + + Private Sub MyZipError(ByVal sender As Object, ByVal e As Ionic.Zip.ZipErrorEventArgs) + ' At this point, the application could prompt the user for an action to take. + ' But in this case, this application will simply automatically skip the file, in case of error. + Console.WriteLine("Zip Error, entry {0}", e.CurrentEntry.FileName) + Console.WriteLine(" Exception: {0}", e.exception) + ' set the desired ZipErrorAction on the CurrentEntry to communicate that to DotNetZip + e.CurrentEntry.ZipErrorAction = Zip.ZipErrorAction.Skip + End Sub + + Public Sub SaveTheFile() + Dim directoryToZip As String = "fodder" + Dim directoryInArchive As String = "files" + Dim zipFileToCreate as String = "Archive.zip" + Using zipArchive As ZipFile = New ZipFile + ' set the event handler before adding any entries + AddHandler zipArchive.ZipError, AddressOf MyZipError + zipArchive.AddDirectory(directoryToZip, directoryInArchive) + zipArchive.Save(zipFileToCreate) + End Using + End Sub + + + + + + + + + Options for using ZIP64 extensions when saving zip archives. + + + + + + Designed many years ago, the original zip + specification from PKWARE allowed for 32-bit quantities for the + compressed and uncompressed sizes of zip entries, as well as a 32-bit quantity + for specifying the length of the zip archive itself, and a maximum of 65535 + entries. These limits are now regularly exceeded in many backup and archival + scenarios. Recently, PKWare added extensions to the original zip spec, called + "ZIP64 extensions", to raise those limitations. This property governs whether + DotNetZip will use those extensions when writing zip archives. The use of + these extensions is optional and explicit in DotNetZip because, despite the + status of ZIP64 as a bona fide standard, many other zip tools and libraries do + not support ZIP64, and therefore a zip file with ZIP64 extensions may be + unreadable by some of those other tools. + + + + Set this property to to always use ZIP64 + extensions when saving, regardless of whether your zip archive needs it. + Suppose you add 5 files, each under 100k, to a ZipFile. If you specify Always + for this flag, you will get a ZIP64 archive, though the archive does not need + to use ZIP64 because none of the original zip limits had been exceeded. + + + + Set this property to to tell the DotNetZip + library to never use ZIP64 extensions. This is useful for maximum + compatibility and interoperability, at the expense of the capability of + handling large files or large archives. NB: Windows Explorer in Windows XP + and Windows Vista cannot currently extract files from a zip64 archive, so if + you want to guarantee that a zip archive produced by this library will work in + Windows Explorer, use Never. If you set this property to , and your application creates a zip that would + exceed one of the Zip limits, the library will throw an exception while saving + the zip file. + + + + Set this property to to tell the + DotNetZip library to use the ZIP64 extensions when required by the + entry. After the file is compressed, the original and compressed sizes are + checked, and if they exceed the limits described above, then zip64 can be + used. That is the general idea, but there is an additional wrinkle when saving + to a non-seekable device, like the ASP.NET Response.OutputStream, or + Console.Out. When using non-seekable streams for output, the entry + header - which indicates whether zip64 is in use - is emitted before it is + known if zip64 is necessary. It is only after all entries have been saved + that it can be known if ZIP64 will be required. On seekable output streams, + after saving all entries, the library can seek backward and re-emit the zip + file header to be consistent with the actual ZIP64 requirement. But using a + non-seekable output stream, the library cannot seek backward, so the header + can never be changed. In other words, the archive's use of ZIP64 extensions is + not alterable after the header is emitted. Therefore, when saving to + non-seekable streams, using is the same + as using : it will always produce a zip + archive that uses ZIP64 extensions. + + + + + + + The default behavior, which is "Never". + (For COM clients, this is a 0 (zero).) + + + + + Do not use ZIP64 extensions when writing zip archives. + (For COM clients, this is a 0 (zero).) + + + + + Use ZIP64 extensions when writing zip archives, as necessary. + For example, when a single entry exceeds 0xFFFFFFFF in size, or when the archive as a whole + exceeds 0xFFFFFFFF in size, or when there are more than 65535 entries in an archive. + (For COM clients, this is a 1.) + + + + + Always use ZIP64 extensions when writing zip archives, even when unnecessary. + (For COM clients, this is a 2.) + + + + + An enum representing the values on a three-way toggle switch + for various options in the library. This might be used to + specify whether to employ a particular text encoding, or to use + ZIP64 extensions, or some other option. + + + + + The default behavior. This is the same as "Never". + (For COM clients, this is a 0 (zero).) + + + + + Never use the associated option. + (For COM clients, this is a 0 (zero).) + + + + + Use the associated behavior "as necessary." + (For COM clients, this is a 1.) + + + + + Use the associated behavior Always, whether necessary or not. + (For COM clients, this is a 2.) + + + + + A class for collecting the various options that can be used when + Reading zip files for extraction or update. + + + + + When reading a zip file, there are several options an + application can set, to modify how the file is read, or what + the library does while reading. This class collects those + options into one container. + + + + Pass an instance of the ReadOptions class into the + ZipFile.Read() method. + + + . + . + + + + + An event handler for Read operations. When opening large zip + archives, you may want to display a progress bar or other + indicator of status progress while reading. This parameter + allows you to specify a ReadProgress Event Handler directly. + When you call Read(), the progress event is invoked as + necessary. + + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + + + + + + An enum that provides the different self-extractor flavors + + + + + A self-extracting zip archive that runs from the console or + command line. + + + + + A self-extracting zip archive that presents a graphical user + interface when it is executed. + + + + + The options for generating a self-extracting archive. + + + + + The type of SFX to create. + + + + + The command to run after extraction. + + + + + This is optional. Leave it empty (null in C# or Nothing in + VB) to run no command after extraction. + + + + If it is non-empty, the SFX will execute the command specified in this + string on the user's machine, and using the extract directory as the + working directory for the process, after unpacking the archive. The + program to execute can include a path, if you like. If you want to execute + a program that accepts arguments, specify the program name, followed by a + space, and then the arguments for the program, each separated by a space, + just as you would on a normal command line. Example: program.exe arg1 + arg2. The string prior to the first space will be taken as the + program name, and the string following the first space specifies the + arguments to the program. + + + + If you want to execute a program that has a space in the name or path of + the file, surround the program name in double-quotes. The first character + of the command line should be a double-quote character, and there must be + a matching double-quote following the end of the program file name. Any + optional arguments to the program follow that, separated by + spaces. Example: "c:\project files\program name.exe" arg1 arg2. + + + + If the flavor of the SFX is SelfExtractorFlavor.ConsoleApplication, + then the SFX starts a new process, using this string as the post-extract + command line. The SFX waits for the process to exit. The exit code of + the post-extract command line is returned as the exit code of the + command-line self-extractor exe. A non-zero exit code is typically used to + indicated a failure by the program. In the case of an SFX, a non-zero exit + code may indicate a failure during extraction, OR, it may indicate a + failure of the run-after-extract program if specified, OR, it may indicate + the run-after-extract program could not be fuond. There is no way to + distinguish these conditions from the calling shell, aside from parsing + the output of the SFX. If you have Quiet set to true, you may not + see error messages, if a problem occurs. + + + + If the flavor of the SFX is + SelfExtractorFlavor.WinFormsApplication, then the SFX starts a new + process, using this string as the post-extract command line, and using the + extract directory as the working directory for the process. The SFX does + not wait for the command to complete, and does not check the exit code of + the program. If the run-after-extract program cannot be fuond, a message + box is displayed indicating that fact. + + + + You can specify environment variables within this string, with a format like + %NAME%. The value of these variables will be expanded at the time + the SFX is run. Example: %WINDIR%\system32\xcopy.exe may expand at + runtime to c:\Windows\System32\xcopy.exe. + + + + By combining this with the RemoveUnpackedFilesAfterExecute + flag, you can create an SFX that extracts itself, runs a file that + was extracted, then deletes all the files that were extracted. If + you want it to run "invisibly" then set Flavor to + SelfExtractorFlavor.ConsoleApplication, and set Quiet + to true. The user running such an EXE will see a console window + appear, then disappear quickly. You may also want to specify the + default extract location, with DefaultExtractDirectory. + + + + If you set Flavor to + SelfExtractorFlavor.WinFormsApplication, and set Quiet to + true, then a GUI with progressbars is displayed, but it is + "non-interactive" - it accepts no input from the user. Instead the SFX + just automatically unpacks and exits. + + + + + + + The default extract directory the user will see when + running the self-extracting archive. + + + + + Passing null (or Nothing in VB) here will cause the Self Extractor to use + the the user's personal directory () for the default extract + location. + + + + This is only a default location. The actual extract location will be + settable on the command line when the SFX is executed. + + + + You can specify environment variables within this string, + with %NAME%. The value of these variables will be + expanded at the time the SFX is run. Example: + %USERPROFILE%\Documents\unpack may expand at runtime to + c:\users\melvin\Documents\unpack. + + + + + + The name of an .ico file in the filesystem to use for the application icon + for the generated SFX. + + + + + Normally, DotNetZip will embed an "zipped folder" icon into the generated + SFX. If you prefer to use a different icon, you can specify it here. It + should be a .ico file. This file is passed as the /win32icon + option to the csc.exe compiler when constructing the SFX file. + + + + + + + Whether the ConsoleApplication SFX will be quiet during extraction. + + + + + This option affects the way the generated SFX runs. By default it is + false. When you set it to true,... + + + + + Flavor + Behavior + + + + ConsoleApplication + no messages will be emitted during successful + operation. Double-clicking the SFX in Windows + Explorer or as an attachment in an email will cause a console + window to appear briefly, before it disappears. If you run the + ConsoleApplication SFX from the cmd.exe prompt, it runs as a + normal console app; by default, because it is quiet, it displays + no messages to the console. If you pass the -v+ command line + argument to the Console SFX when you run it, you will get verbose + messages to the console. + + + + + WinFormsApplication + the SFX extracts automatically when the application + is launched, with no additional user input. + + + + + + + When you set it to false,... + + + + + Flavor + Behavior + + + + ConsoleApplication + the extractor will emit a + message to the console for each entry extracted. + + When double-clicking to launch the SFX, the console window will + remain, and the SFX will emit a message for each file as it + extracts. The messages fly by quickly, they won't be easily + readable, unless the extracted files are fairly large. + + + + + + WinFormsApplication + the SFX presents a forms UI and allows the user to select + options before extracting. + + + + + + + + + + Specify what the self-extractor will do when extracting an entry + would overwrite an existing file. + + + + The default behavvior is to Throw. + + + + + + Whether to remove the files that have been unpacked, after executing the + PostExtractCommandLine. + + + + + If true, and if there is a + PostExtractCommandLine, and if the command runs successfully, + then the files that the SFX unpacked will be removed, afterwards. If + the command does not complete successfully (non-zero return code), + that is interpreted as a failure, and the extracted files will not be + removed. + + + + Setting this flag, and setting Flavor to + SelfExtractorFlavor.ConsoleApplication, and setting Quiet to + true, results in an SFX that extracts itself, runs a file that was + extracted, then deletes all the files that were extracted, with no + intervention by the user. You may also want to specify the default + extract location, with DefaultExtractDirectory. + + + + + + + The file version number to embed into the generated EXE. It will show up, for + example, during a mouseover in Windows Explorer. + + + + + + The product version to embed into the generated EXE. It will show up, for + example, during a mouseover in Windows Explorer. + + + + You can use any arbitrary string, but a human-readable version number is + recommended. For example "v1.2 alpha" or "v4.2 RC2". If you specify nothing, + then there is no product version embedded into the EXE. + + + + + + The copyright notice, if any, to embed into the generated EXE. + + + + It will show up, for example, while viewing properties of the file in + Windows Explorer. You can use any arbitrary string, but typically you + want something like "Copyright © Dino Chiesa 2011". + + + + + + The description to embed into the generated EXE. + + + + Use any arbitrary string. This text will be displayed during a + mouseover in Windows Explorer. If you specify nothing, then the string + "DotNetZip SFX Archive" is embedded into the EXE as the description. + + + + + + The product name to embed into the generated EXE. + + + + Use any arbitrary string. This text will be displayed + while viewing properties of the EXE file in + Windows Explorer. + + + + + + The title to display in the Window of a GUI SFX, while it extracts. + + + + + By default the title show in the GUI window of a self-extractor + is "DotNetZip Self-extractor (http://DotNetZip.codeplex.com/)". + You can change that by setting this property before saving the SFX. + + + + This property has an effect only when producing a Self-extractor + of flavor SelfExtractorFlavor.WinFormsApplication. + + + + + + + Additional options for the csc.exe compiler, when producing the SFX + EXE. + + + + + + Reset the BitWriter. + + + + This is useful when the BitWriter writes into a MemoryStream, and + is used by a BZip2Compressor, which itself is re-used for multiple + distinct data blocks. + + + + + + Write some number of bits from the given value, into the output. + + + + The nbits value should be a max of 25, for safety. For performance + reasons, this method does not check! + + + + + + Write a full 8-bit byte into the output. + + + + + Write four 8-bit bytes into the output. + + + + + Write all available byte-aligned bytes. + + + + This method writes no new output, but flushes any accumulated + bits. At completion, the accumulator may contain up to 7 + bits. + + + This is necessary when re-assembling output from N independent + compressors, one for each of N blocks. The output of any + particular compressor will in general have some fragment of a byte + remaining. This fragment needs to be accumulated into the + parent BZip2OutputStream. + + + + + + Writes all available bytes, and emits padding for the final byte as + necessary. This must be the last method invoked on an instance of + BitWriter. + + + + + Delivers the remaining bits, left-aligned, in a byte. + + + + This is valid only if NumRemainingBits is less than 8; + in other words it is valid only after a call to Flush(). + + + + + Knuth's increments seem to work better than Incerpi-Sedgewick here. + Possibly because the number of elems to sort is usually small, typically + <= 20. + + + + BZip2Compressor writes its compressed data out via a BitWriter. This + is necessary because BZip2 does byte shredding. + + + + + Accept new bytes into the compressor data buffer + + + + This method does the first-level (cheap) run-length encoding, and + stores the encoded data into the rle block. + + + + + + Process one input byte into the block. + + + + + To "process" the byte means to do the run-length encoding. + There are 3 possible return values: + + 0 - the byte was not written, in other words, not + encoded into the block. This happens when the + byte b would require the start of a new run, and + the block has no more room for new runs. + + 1 - the byte was written, and the block is not full. + + 2 - the byte was written, and the block is full. + + + + 0 if the byte was not written, non-zero if written. + + + + Append one run to the output block. + + + + + This compressor does run-length-encoding before BWT and etc. This + method simply appends a run to the output block. The append always + succeeds. The return value indicates whether the block is full: + false (not full) implies that at least one additional run could be + processed. + + + true if the block is now full; otherwise false. + + + + Compress the data that has been placed (Run-length-encoded) into the + block. The compressed data goes into the CompressedBytes array. + + + + Side effects: 1. fills the CompressedBytes array. 2. sets the + AvailableBytesOut property. + + + + + This is the most hammered method of this class. + +

    + This is the version using unrolled loops. +

    +
    + + Method "mainQSort3", file "blocksort.c", BZip2 1.0.2 + + + + The number of uncompressed bytes being held in the buffer. + + + + I am thinking this may be useful in a Stream that uses this + compressor class. In the Close() method on the stream it could + check this value to see if anything has been written at all. You + may think the stream could easily track the number of bytes it + wrote, which would eliminate the need for this. But, there is the + case where the stream writes a complete block, and it is full, and + then writes no more. In that case the stream may want to check. + + + + + Array instance identical to sfmap, both are used only + temporarily and independently, so we do not need to allocate + additional memory. + + + + A read-only decorator stream that performs BZip2 decompression on Read. + + + + + Create a BZip2InputStream, wrapping it around the given input Stream. + + + + The input stream will be closed when the BZip2InputStream is closed. + + + The stream from which to read compressed data + + + + Create a BZip2InputStream with the given stream, and + specifying whether to leave the wrapped stream open when + the BZip2InputStream is closed. + + The stream from which to read compressed data + + Whether to leave the input stream open, when the BZip2InputStream closes. + + + + + This example reads a bzip2-compressed file, decompresses it, + and writes the decompressed data into a newly created file. + + + var fname = "logfile.log.bz2"; + using (var fs = File.OpenRead(fname)) + { + using (var decompressor = new Ionic.BZip2.BZip2InputStream(fs)) + { + var outFname = fname + ".decompressed"; + using (var output = File.Create(outFname)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = decompressor.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer, 0, n); + } + } + } + } + + + + + + Read data from the stream. + + + + + To decompress a BZip2 data stream, create a BZip2InputStream, + providing a stream that reads compressed data. Then call Read() on + that BZip2InputStream, and the data read will be decompressed + as you read. + + + + A BZip2InputStream can be used only for Read(), not for Write(). + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Read a single byte from the stream. + + the byte read from the stream, or -1 if EOF + + + + Flush the stream. + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + + + + Dispose the stream. + + + indicates whether the Dispose method was invoked by user code. + + + + + Close the stream. + + + + + Read n bits from input, right justifying the result. + + + + For example, if you read 1 bit, the result is either 0 + or 1. + + + + The number of bits to read, always between 1 and 32. + + + + Called by createHuffmanDecodingTables() exclusively. + + + Called by recvDecodingTables() exclusively. + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes read in. + + + + + Compressor State + + + + Freq table collected to save a pass over the data during + decompression. + + + Initializes the tt array. + + This method is called when the required length of the array is known. + I don't initialize it at construction time to avoid unneccessary + memory allocation when compressing small files. + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. + + + + + Constructs a new BZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.BZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new BZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new BZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new BZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + Write data to the stream. + + + + + Use the BZip2OutputStream to compress data while writing: + create a BZip2OutputStream with a writable output stream. + Then call Write() on that BZip2OutputStream, providing + uncompressed data as input. The data sent to the output stream will + be the compressed form of the input data. + + + + A BZip2OutputStream can be used only for Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + The blocksize parameter specified at construction time. + + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value should always be true, unless and until the + object is disposed and closed. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. This stream compresses by + block using multiple threads. + + + This class performs BZIP2 compression through writing. For + more information on the BZIP2 algorithm, see + . + + + + This class is similar to , + except that this implementation uses an approach that employs multiple + worker threads to perform the compression. On a multi-cpu or multi-core + computer, the performance of this class can be significantly higher than + the single-threaded BZip2OutputStream, particularly for larger streams. + How large? Anything over 10mb is a good candidate for parallel + compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla BZip2OutputStream. Also, for small files, the + ParallelBZip2OutputStream can be much slower than the vanilla + BZip2OutputStream, because of the overhead associated to using the + thread pool. + + + + + + + Constructs a new ParallelBZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.ParallelBZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new ParallelBZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + Write data to the stream. + + + + + Use the ParallelBZip2OutputStream to compress data while + writing: create a ParallelBZip2OutputStream with a writable + output stream. Then call Write() on that + ParallelBZip2OutputStream, providing uncompressed data as + input. The data sent to the output stream will be the compressed + form of the input data. + + + + A ParallelBZip2OutputStream can be used only for + Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + The maximum number of concurrent compression worker threads to use. + + + + + This property sets an upper limit on the number of concurrent worker + threads to employ for compression. The implementation of this stream + employs multiple threads from the .NET thread pool, via + ThreadPool.QueueUserWorkItem(), to compress the incoming data by + block. As each block of data is compressed, this stream re-orders the + compressed blocks and writes them to the output stream. + + + + A higher number of workers enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + By default, DotNetZip allocates 4 workers per CPU core, subject to the + upper limit specified in this property. For example, suppose the + application sets this property to 16. Then, on a machine with 2 + cores, DotNetZip will use 8 workers; that number does not exceed the + upper limit specified by this property, so the actual number of + workers used will be 4 * 2 = 8. On a machine with 4 cores, DotNetZip + will use 16 workers; again, the limit does not apply. On a machine + with 8 cores, DotNetZip will use 16 workers, because of the limit. + + + + For each compression "worker thread" that occurs in parallel, there is + up to 2mb of memory allocated, for buffering and processing. The + actual number depends on the property. + + + + CPU utilization will also go up with additional workers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + The blocksize parameter specified at construction time. + + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + The total number of bytes written out by the stream. + + + This value is meaningful only after a call to Close(). + + + + + Returns the "random" number at a specific index. + + the index + the random number + + + + A class for compressing and decompressing streams using the Deflate algorithm. + + + + + + The DeflateStream is a Decorator on a . It adds DEFLATE compression or decompression to any + stream. + + + + Using this stream, applications can compress or decompress data via stream + Read and Write operations. Either compresssion or decompression + can occur through either reading or writing. The compression format used is + DEFLATE, which is documented in IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.". + + + + This class is similar to , except that + ZlibStream adds the RFC + 1950 - ZLIB framing bytes to a compressed stream when compressing, or + expects the RFC1950 framing bytes when decompressing. The DeflateStream + does not. + + + + + + + + + + Create a DeflateStream using the specified CompressionMode. + + + + When mode is CompressionMode.Compress, the DeflateStream will use + the default compression level. The "captive" stream will be closed when + the DeflateStream is closed. + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + + + + Create a DeflateStream using the specified CompressionMode and the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. The "captive" stream will be closed when the DeflateStream is + closed. + + + + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the DeflateStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a DeflateStream using the specified + CompressionMode, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compression. Specify true for + the parameter to leave the stream open. + + + + The DeflateStream will use the default compression level. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + + + + Indicates whether the DeflateStream will compress or decompress. + + + true if the application would like the stream to + remain open after inflation/deflation. + + + + Create a DeflateStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify whether + the stream should be left open after Deflation or Inflation. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter + to leave the stream open. + + + + + + + This example shows how to use a DeflateStream to compress data from + a file, and store the compressed data into another file. + + + using (var output = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + // can write additional data to the output stream here + } + + + + Using output As FileStream = File.Create(fileToCompress & ".deflated") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + Application code won't call this code directly. This method may be + invoked in two distinct scenarios. If disposing == true, the method + has been called directly or indirectly by a user's code, for example + via the public Dispose() method. In this case, both managed and + unmanaged resources can be referenced and disposed. If disposing == + false, the method has been called by the runtime from inside the + object finalizer and this method should not reference other objects; + in that case only unmanaged resources must be referenced or + disposed. + + + + true if the Dispose method was invoked by user code. + + + + + Flush the stream. + + + + + Read data from the stream. + + + + + If you wish to use the DeflateStream to compress data while + reading, you can create a DeflateStream with + CompressionMode.Compress, providing an uncompressed data stream. + Then call Read() on that DeflateStream, and the data read will be + compressed as you read. If you wish to use the DeflateStream to + decompress data while reading, you can create a DeflateStream with + CompressionMode.Decompress, providing a readable compressed data + stream. Then call Read() on that DeflateStream, and the data read + will be decompressed as you read. + + + + A DeflateStream can be used for Read() or Write(), but not both. + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Write data to the stream. + + + + + If you wish to use the DeflateStream to compress data while + writing, you can create a DeflateStream with + CompressionMode.Compress, and a writable output stream. Then call + Write() on that DeflateStream, providing uncompressed data + as input. The data sent to the output stream will be the compressed form + of the data written. If you wish to use the DeflateStream to + decompress data while writing, you can create a DeflateStream with + CompressionMode.Decompress, and a writable output stream. Then + call Write() on that stream, providing previously compressed + data. The data sent to the output stream will be the decompressed form of + the data written. + + + + A DeflateStream can be used for Read() or Write(), + but not both. + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using DEFLATE (RFC 1951). + + + + Uncompress it with . + + + DeflateStream.UncompressString(byte[]) + DeflateStream.CompressBuffer(byte[]) + GZipStream.CompressString(string) + ZlibStream.CompressString(string) + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using DEFLATE. + + + + Uncompress it with . + + + DeflateStream.CompressString(string) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.CompressBuffer(byte[]) + ZlibStream.CompressBuffer(byte[]) + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a DEFLATE'd byte array into a single string. + + + DeflateStream.CompressString(String) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.UncompressString(byte[]) + ZlibStream.UncompressString(byte[]) + + + A buffer containing DEFLATE-compressed data. + + + The uncompressed string + + + + Uncompress a DEFLATE'd byte array into a byte array. + + + DeflateStream.CompressBuffer(byte[]) + DeflateStream.UncompressString(byte[]) + GZipStream.UncompressBuffer(byte[]) + ZlibStream.UncompressBuffer(byte[]) + + + A buffer containing data that has been compressed with DEFLATE. + + + The data in uncompressed form + + + + This property sets the flush behavior on the stream. + + See the ZLIB documentation for the meaning of the flush behavior. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + + The ZLIB strategy to be used during compression. + + + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + A class for compressing and decompressing GZIP streams. + + + + + The GZipStream is a Decorator on a + . It adds GZIP compression or decompression to any + stream. + + + + Like the System.IO.Compression.GZipStream in the .NET Base Class Library, the + Ionic.Zlib.GZipStream can compress while writing, or decompress while + reading, but not vice versa. The compression method used is GZIP, which is + documented in IETF RFC + 1952, "GZIP file format specification version 4.3". + + + A GZipStream can be used to decompress data (through Read()) or + to compress data (through Write()), but not both. + + + + If you wish to use the GZipStream to compress data, you must wrap it + around a write-able stream. As you call Write() on the GZipStream, the + data will be compressed into the GZIP format. If you want to decompress data, + you must wrap the GZipStream around a readable stream that contains an + IETF RFC 1952-compliant stream. The data will be decompressed as you call + Read() on the GZipStream. + + + + Though the GZIP format allows data from multiple files to be concatenated + together, this stream handles only a single segment of GZIP format, typically + representing a single file. + + + + This class is similar to and . + ZlibStream handles RFC1950-compliant streams. + handles RFC1951-compliant streams. This class handles RFC1952-compliant streams. + + + + + + + + + + The last modified time for the GZIP stream. + + + + GZIP allows the storage of a last modified time with each GZIP entry. + When compressing data, you can set this before the first call to + Write(). When decompressing, you can retrieve this value any time + after the first call to Read(). + + + + + Create a GZipStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the GZipStream will use the + default compression level. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with + CompressionMode.Decompress works only through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + + This example shows how to use a GZipStream to uncompress a file. + + private void GunZipFile(string filename) + { + if (!filename.EndsWith(".gz)) + throw new ArgumentException("filename"); + var DecompressedFile = filename.Substring(0,filename.Length-3); + byte[] working = new byte[WORKING_BUFFER_SIZE]; + int n= 1; + using (System.IO.Stream input = System.IO.File.OpenRead(filename)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(DecompressedFile)) + { + while (n !=0) + { + n= decompressor.Read(working, 0, working.Length); + if (n > 0) + { + output.Write(working, 0, n); + } + } + } + } + } + } + + + + Private Sub GunZipFile(ByVal filename as String) + If Not (filename.EndsWith(".gz)) Then + Throw New ArgumentException("filename") + End If + Dim DecompressedFile as String = filename.Substring(0,filename.Length-3) + Dim working(WORKING_BUFFER_SIZE) as Byte + Dim n As Integer = 1 + Using input As Stream = File.OpenRead(filename) + Using decompressor As Stream = new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, True) + Using output As Stream = File.Create(UncompressedFile) + Do + n= decompressor.Read(working, 0, working.Length) + If n > 0 Then + output.Write(working, 0, n) + End IF + Loop While (n > 0) + End Using + End Using + End Using + End Sub + + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + + + + Create a GZipStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + The CompressionMode (Compress or Decompress) also establishes the + "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A + GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + + This example shows how to use a GZipStream to compress a file into a .gz file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".gz")) + { + using (Stream compressor = new GZipStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".gz") + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the GZipStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a GZipStream using the specified CompressionMode, and + explicitly specify whether the stream should be left open after Deflation + or Inflation. + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to leave + the stream open. + + + + The (Compress or Decompress) also + establishes the "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A GZipStream + with CompressionMode.Decompress works only through Read(). + + + + The GZipStream will use the default compression level. If you want + to specify the compression level, see . + + + + See the other overloads of this constructor for example code. + + + + + + The stream which will be read or written. This is called the "captive" + stream in other places in this documentation. + + + Indicates whether the GZipStream will compress or decompress. + + + + true if the application would like the base stream to remain open after + inflation/deflation. + + + + + Create a GZipStream using the specified CompressionMode and the + specified CompressionLevel, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to + leave the stream open. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Flush the stream. + + + + + Read and decompress data from the source stream. + + + + With a GZipStream, decompression is done through reading. + + + + + byte[] working = new byte[WORKING_BUFFER_SIZE]; + using (System.IO.Stream input = System.IO.File.OpenRead(_CompressedFile)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(_DecompressedFile)) + { + int n; + while ((n= decompressor.Read(working, 0, working.Length)) !=0) + { + output.Write(working, 0, n); + } + } + } + } + + + The buffer into which the decompressed data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + irrelevant; it will always throw! + irrelevant; it will always throw! + irrelevant! + + + + Calling this method always throws a . + + irrelevant; this method will always throw! + + + + Write data to the stream. + + + + + If you wish to use the GZipStream to compress data while writing, + you can create a GZipStream with CompressionMode.Compress, and a + writable output stream. Then call Write() on that GZipStream, + providing uncompressed data as input. The data sent to the output stream + will be the compressed form of the data written. + + + + A GZipStream can be used for Read() or Write(), but not + both. Writing implies compression. Reading implies decompression. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using GZip. + + + + Uncompress it with . + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using GZip. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a GZip'ed byte array into a single string. + + + + + + + A buffer containing GZIP-compressed data. + + + The uncompressed string + + + + Uncompress a GZip'ed byte array into a byte array. + + + + + + + A buffer containing data that has been compressed with GZip. + + + The data in uncompressed form + + + + The comment on the GZIP stream. + + + + + The GZIP format allows for each file to optionally have an associated + comment stored with the file. The comment is encoded with the ISO-8859-1 + code page. To include a comment in a GZIP stream you create, set this + property before calling Write() for the first time on the + GZipStream. + + + + When using GZipStream to decompress, you can retrieve this property + after the first call to Read(). If no comment has been set in the + GZIP bytestream, the Comment property will return null + (Nothing in VB). + + + + + + The FileName for the GZIP stream. + + + + + + The GZIP format optionally allows each file to have an associated + filename. When compressing data (through Write()), set this + FileName before calling Write() the first time on the GZipStream. + The actual filename is encoded into the GZIP bytestream with the + ISO-8859-1 code page, according to RFC 1952. It is the application's + responsibility to insure that the FileName can be encoded and decoded + correctly with this code page. + + + + When decompressing (through Read()), you can retrieve this value + any time after the first Read(). In the case where there was no filename + encoded into the GZIP bytestream, the property will return null (Nothing + in VB). + + + + + + The CRC on the GZIP stream. + + + This is used for internal error checking. You probably don't need to look at this property. + + + + + This property sets the flush behavior on the stream. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + A class for compressing streams using the + Deflate algorithm with multiple threads. + + + + + This class performs DEFLATE compression through writing. For + more information on the Deflate algorithm, see IETF RFC 1951, + "DEFLATE Compressed Data Format Specification version 1.3." + + + + This class is similar to , except + that this class is for compression only, and this implementation uses an + approach that employs multiple worker threads to perform the DEFLATE. On + a multi-cpu or multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, particularly + for larger streams. How large? Anything over 10mb is a good candidate + for parallel compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla DeflateStream, and also is less efficient as a compressor. For + large files the size of the compressed data stream can be less than 1% + larger than the size of a compressed data stream from the vanialla + DeflateStream. For smaller files the difference can be larger. The + difference will also be larger if you set the BufferSize to be lower than + the default value. Your mileage may vary. Finally, for small files, the + ParallelDeflateOutputStream can be much slower than the vanilla + DeflateStream, because of the overhead associated to using the thread + pool. + + + + + + + + Create a ParallelDeflateOutputStream. + + + + + This stream compresses data written into it via the DEFLATE + algorithm (see RFC 1951), and writes out the compressed byte stream. + + + + The instance will use the default compression level, the default + buffer sizes and the default number of threads and buffers per + thread. + + + + This class is similar to , + except that this implementation uses an approach that employs + multiple worker threads to perform the DEFLATE. On a multi-cpu or + multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, + particularly for larger streams. How large? Anything over 10mb is + a good candidate for parallel compression. + + + + + + + This example shows how to use a ParallelDeflateOutputStream to compress + data. It reads a file, compresses it, and writes the compressed data to + a second, output file. + + + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + String outputFile = fileToCompress + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new ParallelDeflateOutputStream(raw)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New ParallelDeflateOutputStream(raw) + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to which compressed data will be written. + + + + Create a ParallelDeflateOutputStream using the specified CompressionLevel. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream using the specified + CompressionLevel and CompressionStrategy, and specifying whether to + leave the captive stream open when the ParallelDeflateOutputStream is + closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Write data to the stream. + + + + + + To use the ParallelDeflateOutputStream to compress data, create a + ParallelDeflateOutputStream with CompressionMode.Compress, passing a + writable output stream. Then call Write() on that + ParallelDeflateOutputStream, providing uncompressed data as input. The + data sent to the output stream will be the compressed form of the data + written. + + + + To decompress data, use the class. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Flush the stream. + + + + + Close the stream. + + + You must call Close on the stream to guarantee that all of the data written in has + been compressed, and the compressed data has been written out. + + + + Dispose the object + + + Because ParallelDeflateOutputStream is IDisposable, the + application must call this method when finished using the instance. + + + This method is generally called implicitly upon exit from + a using scope in C# (Using in VB). + + + + + The Dispose method + + indicates whether the Dispose method was invoked by user code. + + + + + Resets the stream for use with another stream. + + + Because the ParallelDeflateOutputStream is expensive to create, it + has been designed so that it can be recycled and re-used. You have + to call Close() on the stream first, then you can call Reset() on + it, to use it again on another stream. + + + + The new output stream for this era. + + + + + ParallelDeflateOutputStream deflater = null; + foreach (var inputFile in listOfFiles) + { + string outputFile = inputFile + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(inputFile)) + { + using (var outStream = System.IO.File.Create(outputFile)) + { + if (deflater == null) + deflater = new ParallelDeflateOutputStream(outStream, + CompressionLevel.Best, + CompressionStrategy.Default, + true); + deflater.Reset(outStream); + + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + deflater.Write(buffer, 0, n); + } + } + } + } + + + + + + This method always throws a NotSupportedException. + + + The buffer into which data would be read, IF THIS METHOD + ACTUALLY DID ANYTHING. + + + The offset within that data array at which to insert the + data that is read, IF THIS METHOD ACTUALLY DID + ANYTHING. + + + The number of bytes to write, IF THIS METHOD ACTUALLY DID + ANYTHING. + + nothing. + + + + This method always throws a NotSupportedException. + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + nothing. It always throws. + + + + This method always throws a NotSupportedException. + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + The ZLIB strategy to be used during compression. + + + + + + The maximum number of buffer pairs to use. + + + + + This property sets an upper limit on the number of memory buffer + pairs to create. The implementation of this stream allocates + multiple buffers to facilitate parallel compression. As each buffer + fills up, this stream uses + ThreadPool.QueueUserWorkItem() + to compress those buffers in a background threadpool thread. After a + buffer is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + The size of the buffers used by the compressor threads. + + + + + The default buffer size is 128k. The application can set this value + at any time, but it is effective only before the first Write(). + + + + Larger buffer sizes implies larger memory consumption but allows + more efficient compression. Using smaller buffer sizes consumes less + memory but may result in less effective compression. For example, + using the default buffer size of 128k, the compression delivered is + within 1% of the compression delivered by the single-threaded . On the other hand, using a + BufferSize of 8k can result in a compressed data stream that is 5% + larger than that delivered by the single-threaded + DeflateStream. Excessively small buffer sizes can also cause + the speed of the ParallelDeflateOutputStream to drop, because of + larger thread scheduling overhead dealing with many many small + buffers. + + + + The total amount of storage space allocated for buffering will be + (N*S*2), where N is the number of buffer pairs, and S is the size of + each buffer (this property). There are 2 buffers used by the + compressor, one for input and one for output. By default, DotNetZip + allocates 4 buffer pairs per CPU core, so if your machine has 4 + cores, then the number of buffer pairs used will be 16. If you + accept the default value of this property, 128k, then the + ParallelDeflateOutputStream will use 16 * 2 * 128kb of buffer memory + in total, or 4mb, in blocks of 128kb. If you set this property to + 64kb, then the number will be 16 * 2 * 64kb of buffer memory, or + 2mb. + + + + + + + The CRC32 for the data that was written out, prior to compression. + + + This value is meaningful only after a call to Close(). + + + + + The total number of uncompressed bytes processed by the ParallelDeflateOutputStream. + + + This value is meaningful only after a call to Close(). + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream supports Read operations. + + + Always returns false. + + + + + Indicates whether the stream supports Write operations. + + + Returns true if the provided stream is writable. + + + + + Reading this property always throws a NotSupportedException. + + + + + Returns the current position of the output stream. + + + + Because the output gets written by a background thread, + the value may change asynchronously. Setting this + property always throws a NotSupportedException. + + + + + + Map from a distance to a distance code. + + + No side effects. _dist_code[256] and _dist_code[257] are never used. + + + + + Describes how to flush the current deflate operation. + + + The different FlushType values are useful when using a Deflate in a streaming application. + + + + No flush at all. + + + Closes the current block, but doesn't flush it to + the output. Used internally only in hypothetical + scenarios. This was supposed to be removed by Zlib, but it is + still in use in some edge cases. + + + + + Use this during compression to specify that all pending output should be + flushed to the output buffer and the output should be aligned on a byte + boundary. You might use this in a streaming communication scenario, so that + the decompressor can get all input data available so far. When using this + with a ZlibCodec, AvailableBytesIn will be zero after the call if + enough output space has been provided before the call. Flushing will + degrade compression and so it should be used only when necessary. + + + + + Use this during compression to specify that all output should be flushed, as + with FlushType.Sync, but also, the compression state should be reset + so that decompression can restart from this point if previous compressed + data has been damaged or if random access is desired. Using + FlushType.Full too often can significantly degrade the compression. + + + + Signals the end of the compression/decompression stream. + + + + The compression level to be used when using a DeflateStream or ZlibStream with CompressionMode.Compress. + + + + + None means that the data will be simply stored, with no change at all. + If you are producing ZIPs for use on Mac OSX, be aware that archives produced with CompressionLevel.None + cannot be opened with the default zip reader. Use a different CompressionLevel. + + + + + Same as None. + + + + + The fastest but least effective compression. + + + + + A synonym for BestSpeed. + + + + + A little slower, but better, than level 1. + + + + + A little slower, but better, than level 2. + + + + + A little slower, but better, than level 3. + + + + + A little slower than level 4, but with better compression. + + + + + The default compression level, with a good balance of speed and compression efficiency. + + + + + A synonym for Default. + + + + + Pretty good compression! + + + + + Better compression than Level7! + + + + + The "best" compression, where best means greatest reduction in size of the input data stream. + This is also the slowest compression. + + + + + A synonym for BestCompression. + + + + + Describes options for how the compression algorithm is executed. Different strategies + work better on different sorts of data. The strategy parameter can affect the compression + ratio and the speed of compression but not the correctness of the compresssion. + + + + + The default strategy is probably the best for normal data. + + + + + The Filtered strategy is intended to be used most effectively with data produced by a + filter or predictor. By this definition, filtered data consists mostly of small + values with a somewhat random distribution. In this case, the compression algorithm + is tuned to compress them better. The effect of Filtered is to force more Huffman + coding and less string matching; it is a half-step between Default and HuffmanOnly. + + + + + Using HuffmanOnly will force the compressor to do Huffman encoding only, with no + string matching. + + + + + An enum to specify the direction of transcoding - whether to compress or decompress. + + + + + Used to specify that the stream should compress the data. + + + + + Used to specify that the stream should decompress the data. + + + + + A general purpose exception class for exceptions in the Zlib library. + + + + + The ZlibException class captures exception information generated + by the Zlib library. + + + + + This ctor collects a message attached to the exception. + + the message for the exception. + + + + Performs an unsigned bitwise right shift with the specified number + + Number to operate on + Ammount of bits to shift + The resulting number from the shift operation + + + + Reads a number of characters from the current source TextReader and writes + the data to the target array at the specified index. + + + The source TextReader to read from + Contains the array of characteres read from the source TextReader. + The starting index of the target array. + The maximum number of characters to read from the source TextReader. + + + 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. + + + + + Computes an Adler-32 checksum. + + + The Adler checksum is similar to a CRC checksum, but faster to compute, though less + reliable. It is used in producing RFC1950 compressed streams. The Adler checksum + is a required part of the "ZLIB" standard. Applications will almost never need to + use this class directly. + + + + + + + Calculates the Adler32 checksum. + + + + This is used within ZLIB. You probably don't need to use this directly. + + + + To compute an Adler32 checksum on a byte array: + + var adler = Adler.Adler32(0, null, 0, 0); + adler = Adler.Adler32(adler, buffer, index, length); + + + + + + Encoder and Decoder for ZLIB and DEFLATE (IETF RFC1950 and RFC1951). + + + + This class compresses and decompresses data according to the Deflate algorithm + and optionally, the ZLIB format, as documented in RFC 1950 - ZLIB and RFC 1951 - DEFLATE. + + + + + The buffer from which data is taken. + + + + + An index into the InputBuffer array, indicating where to start reading. + + + + + The number of bytes available in the InputBuffer, starting at NextIn. + + + Generally you should set this to InputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes read so far, through all calls to Inflate()/Deflate(). + + + + + Buffer to store output data. + + + + + An index into the OutputBuffer array, indicating where to start writing. + + + + + The number of bytes available in the OutputBuffer, starting at NextOut. + + + Generally you should set this to OutputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes written to the output so far, through all calls to Inflate()/Deflate(). + + + + + used for diagnostics, when something goes wrong! + + + + + The compression level to use in this codec. Useful only in compression mode. + + + + + The number of Window Bits to use. + + + This gauges the size of the sliding window, and hence the + compression effectiveness as well as memory consumption. It's best to just leave this + setting alone if you don't know what it is. The maximum value is 15 bits, which implies + a 32k window. + + + + + The compression strategy to use. + + + This is only effective in compression. The theory offered by ZLIB is that different + strategies could potentially produce significant differences in compression behavior + for different data sets. Unfortunately I don't have any good recommendations for how + to set it differently. When I tested changing the strategy I got minimally different + compression performance. It's best to leave this property alone if you don't have a + good feel for it. Or, you may want to produce a test harness that runs through the + different strategy options and evaluates them on different file types. If you do that, + let me know your results. + + + + + Create a ZlibCodec. + + + If you use this default constructor, you will later have to explicitly call + InitializeInflate() or InitializeDeflate() before using the ZlibCodec to compress + or decompress. + + + + + Create a ZlibCodec that either compresses or decompresses. + + + Indicates whether the codec should compress (deflate) or decompress (inflate). + + + + + Initialize the inflation state. + + + It is not necessary to call this before using the ZlibCodec to inflate data; + It is implicitly called when you call the constructor. + + Z_OK if everything goes well. + + + + Initialize the inflation state with an explicit flag to + govern the handling of RFC1950 header bytes. + + + + By default, the ZLIB header defined in RFC 1950 is expected. If + you want to read a zlib stream you should specify true for + expectRfc1950Header. If you have a deflate stream, you will want to specify + false. It is only necessary to invoke this initializer explicitly if you + want to specify false. + + + whether to expect an RFC1950 header byte + pair when reading the stream of data to be inflated. + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for inflation, with the specified number of window bits. + + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if all goes well. + + + + Initialize the inflation state with an explicit flag to govern the handling of + RFC1950 header bytes. + + + + If you want to read a zlib stream you should specify true for + expectRfc1950Header. In this case, the library will expect to find a ZLIB + header, as defined in RFC + 1950, in the compressed stream. If you will be reading a DEFLATE or + GZIP stream, which does not have such a header, you will want to specify + false. + + + whether to expect an RFC1950 header byte pair when reading + the stream of data to be inflated. + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if everything goes well. + + + + Inflate the data in the InputBuffer, placing the result in the OutputBuffer. + + + You must have set InputBuffer and OutputBuffer, NextIn and NextOut, and AvailableBytesIn and + AvailableBytesOut before calling this method. + + + + private void InflateBuffer() + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec decompressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Inflate: {0} bytes.", CompressedBytes.Length); + MemoryStream ms = new MemoryStream(DecompressedBytes); + + int rc = decompressor.InitializeInflate(); + + decompressor.InputBuffer = CompressedBytes; + decompressor.NextIn = 0; + decompressor.AvailableBytesIn = CompressedBytes.Length; + + decompressor.OutputBuffer = buffer; + + // pass 1: inflate + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("inflating: " + decompressor.Message); + + ms.Write(decompressor.OutputBuffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("inflating: " + decompressor.Message); + + if (buffer.Length - decompressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + decompressor.EndInflate(); + } + + + + The flush to use when inflating. + Z_OK if everything goes well. + + + + Ends an inflation session. + + + Call this after successively calling Inflate(). This will cause all buffers to be flushed. + After calling this you cannot call Inflate() without a intervening call to one of the + InitializeInflate() overloads. + + Z_OK if everything goes well. + + + + I don't know what this does! + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for deflation operation. + + + The codec will use the MAX window bits and the default level of compression. + + + + int bufferSize = 40000; + byte[] CompressedBytes = new byte[bufferSize]; + byte[] DecompressedBytes = new byte[bufferSize]; + + ZlibCodec compressor = new ZlibCodec(); + + compressor.InitializeDeflate(CompressionLevel.Default); + + compressor.InputBuffer = System.Text.ASCIIEncoding.ASCII.GetBytes(TextToCompress); + compressor.NextIn = 0; + compressor.AvailableBytesIn = compressor.InputBuffer.Length; + + compressor.OutputBuffer = CompressedBytes; + compressor.NextOut = 0; + compressor.AvailableBytesOut = CompressedBytes.Length; + + while (compressor.TotalBytesIn != TextToCompress.Length && compressor.TotalBytesOut < bufferSize) + { + compressor.Deflate(FlushType.None); + } + + while (true) + { + int rc= compressor.Deflate(FlushType.Finish); + if (rc == ZlibConstants.Z_STREAM_END) break; + } + + compressor.EndDeflate(); + + + + Z_OK if all goes well. You generally don't need to check the return code. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel. + + + The codec will use the maximum window bits (15) and the specified + CompressionLevel. It will emit a ZLIB stream as it compresses. + + The compression level for the codec. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the explicit flag governing whether to emit an RFC1950 header byte pair. + + + The codec will use the maximum window bits (15) and the specified CompressionLevel. + If you want to generate a zlib stream, you should specify true for + wantRfc1950Header. In this case, the library will emit a ZLIB + header, as defined in RFC + 1950, in the compressed stream. + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the specified number of window bits. + + + The codec will use the specified number of window bits and the specified CompressionLevel. + + The compression level for the codec. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified + CompressionLevel, the specified number of window bits, and the explicit flag + governing whether to emit an RFC1950 header byte pair. + + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Deflate one batch of data. + + + You must have set InputBuffer and OutputBuffer before calling this method. + + + + private void DeflateBuffer(CompressionLevel level) + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec compressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Deflate: {0} bytes.", UncompressedBytes.Length); + MemoryStream ms = new MemoryStream(); + + int rc = compressor.InitializeDeflate(level); + + compressor.InputBuffer = UncompressedBytes; + compressor.NextIn = 0; + compressor.AvailableBytesIn = UncompressedBytes.Length; + + compressor.OutputBuffer = buffer; + + // pass 1: deflate + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("deflating: " + compressor.Message); + + ms.Write(compressor.OutputBuffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("deflating: " + compressor.Message); + + if (buffer.Length - compressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + compressor.EndDeflate(); + + ms.Seek(0, SeekOrigin.Begin); + CompressedBytes = new byte[compressor.TotalBytesOut]; + ms.Read(CompressedBytes, 0, CompressedBytes.Length); + } + + + whether to flush all data as you deflate. Generally you will want to + use Z_NO_FLUSH here, in a series of calls to Deflate(), and then call EndDeflate() to + flush everything. + + Z_OK if all goes well. + + + + End a deflation session. + + + Call this after making a series of one or more calls to Deflate(). All buffers are flushed. + + Z_OK if all goes well. + + + + Reset a codec for another deflation session. + + + Call this to reset the deflation state. For example if a thread is deflating + non-consecutive blocks, you can call Reset() after the Deflate(Sync) of the first + block and before the next Deflate(None) of the second block. + + Z_OK if all goes well. + + + + Set the CompressionStrategy and CompressionLevel for a deflation session. + + the level of compression to use. + the strategy to use for compression. + Z_OK if all goes well. + + + + Set the dictionary to be used for either Inflation or Deflation. + + The dictionary bytes to use. + Z_OK if all goes well. + + + + The Adler32 checksum on the data transferred through the codec so far. You probably don't need to look at this. + + + + + A bunch of constants used in the Zlib interface. + + + + + The maximum number of window bits for the Deflate algorithm. + + + + + The default number of window bits for the Deflate algorithm. + + + + + indicates everything is A-OK + + + + + Indicates that the last operation reached the end of the stream. + + + + + The operation ended in need of a dictionary. + + + + + There was an error with the stream - not enough data, not open and readable, etc. + + + + + There was an error with the data - not enough data, bad data, etc. + + + + + There was an error with the working buffer. + + + + + The size of the working buffer used in the ZlibCodec class. Defaults to 8192 bytes. + + + + + The minimum size of the working buffer used in the ZlibCodec class. Currently it is 128 bytes. + + + + + Represents a Zlib stream for compression or decompression. + + + + + The ZlibStream is a Decorator on a . It adds ZLIB compression or decompression to any + stream. + + + Using this stream, applications can compress or decompress data via + stream Read() and Write() operations. Either compresssion or + decompression can occur through either reading or writing. The compression + format used is ZLIB, which is documented in IETF RFC 1950, "ZLIB Compressed + Data Format Specification version 3.3". This implementation of ZLIB always uses + DEFLATE as the compression method. (see IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.") + + + The ZLIB format allows for varying compression methods, window sizes, and dictionaries. + This implementation always uses the DEFLATE compression method, a preset dictionary, + and 15 window bits by default. + + + + This class is similar to , except that it adds the + RFC1950 header and trailer bytes to a compressed stream when compressing, or expects + the RFC1950 header and trailer bytes when decompressing. It is also similar to the + . + + + + + + + + Create a ZlibStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the ZlibStream + will use the default compression level. The "captive" stream will be + closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress a file, and writes the + compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream which will be read or written. + Indicates whether the ZlibStream will compress or decompress. + + + + Create a ZlibStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + The "captive" stream will be closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress data from a file, and writes the + compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream to be read or written while deflating or inflating. + Indicates whether the ZlibStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a ZlibStream using the specified CompressionMode, and + explicitly specify whether the captive stream should be left open after + Deflation or Inflation. + + + + + + When mode is CompressionMode.Compress, the ZlibStream will use + the default compression level. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter to leave the stream + open. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + Indicates whether the ZlibStream will compress or decompress. + true if the application would like the stream to remain + open after inflation/deflation. + + + + Create a ZlibStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify + whether the stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive + stream remain open after the deflation or inflation occurs. By + default, after Close() is called on the stream, the captive + stream is also closed. In some cases this is not desired, for example + if the stream is a that will be + re-read after compression. Specify true for the parameter to leave the stream open. + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. + + + + + + + This example shows how to use a ZlibStream to compress the data from a file, + and store the result into another file. The filestream remains open to allow + additional data to be written to it. + + + using (var output = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + // can write additional data to the output stream here + } + + + Using output As FileStream = File.Create(fileToCompress & ".zlib") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + + The stream which will be read or written. + + Indicates whether the ZlibStream will compress or decompress. + + + true if the application would like the stream to remain open after + inflation/deflation. + + + + A tuning knob to trade speed for effectiveness. This parameter is + effective only when mode is CompressionMode.Compress. + + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Flush the stream. + + + + + Read data from the stream. + + + + + + If you wish to use the ZlibStream to compress data while reading, + you can create a ZlibStream with CompressionMode.Compress, + providing an uncompressed data stream. Then call Read() on that + ZlibStream, and the data read will be compressed. If you wish to + use the ZlibStream to decompress data while reading, you can create + a ZlibStream with CompressionMode.Decompress, providing a + readable compressed data stream. Then call Read() on that + ZlibStream, and the data will be decompressed as it is read. + + + + A ZlibStream can be used for Read() or Write(), but + not both. + + + + + + The buffer into which the read data should be placed. + + + the offset within that data array to put the first byte read. + + the number of bytes to read. + + the number of bytes read + + + + Calling this method always throws a . + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + nothing. This method always throws. + + + + Calling this method always throws a . + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + Write data to the stream. + + + + + + If you wish to use the ZlibStream to compress data while writing, + you can create a ZlibStream with CompressionMode.Compress, + and a writable output stream. Then call Write() on that + ZlibStream, providing uncompressed data as input. The data sent to + the output stream will be the compressed form of the data written. If you + wish to use the ZlibStream to decompress data while writing, you + can create a ZlibStream with CompressionMode.Decompress, and a + writable output stream. Then call Write() on that stream, + providing previously compressed data. The data sent to the output stream + will be the decompressed form of the data written. + + + + A ZlibStream can be used for Read() or Write(), but not both. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using ZLIB. + + + + Uncompress it with . + + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using ZLIB. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a ZLIB-compressed byte array into a single string. + + + + + + + A buffer containing ZLIB-compressed data. + + + The uncompressed string + + + + Uncompress a ZLIB-compressed byte array into a byte array. + + + + + + + A buffer containing ZLIB-compressed data. + + + The data in uncompressed form + + + + This property sets the flush behavior on the stream. + Sorry, though, not sure exactly how to describe all the various settings. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Computes a CRC-32. The CRC-32 algorithm is parameterized - you + can set the polynomial and enable or disable bit + reversal. This can be used for GZIP, BZip2, or ZIP. + + + This type is used internally by DotNetZip; it is generally not used + directly by applications wishing to create, read, or manipulate zip + archive files. + + + + + Returns the CRC32 for the specified stream. + + The stream over which to calculate the CRC32 + the CRC32 calculation + + + + Returns the CRC32 for the specified stream, and writes the input into the + output stream. + + The stream over which to calculate the CRC32 + The stream into which to deflate the input + the CRC32 calculation + + + + Get the CRC32 for the given (word,byte) combo. This is a + computation defined by PKzip for PKZIP 2.0 (weak) encryption. + + The word to start with. + The byte to combine it with. + The CRC-ized result. + + + + Update the value for the running CRC32 using the given block of bytes. + This is useful when using the CRC32() class in a Stream. + + block of bytes to slurp + starting point in the block + how many bytes within the block to slurp + + + + Process one byte in the CRC. + + the byte to include into the CRC . + + + + Process a run of N identical bytes into the CRC. + + + + This method serves as an optimization for updating the CRC when a + run of identical bytes is found. Rather than passing in a buffer of + length n, containing all identical bytes b, this method accepts the + byte value and the length of the (virtual) buffer - the length of + the run. + + + the byte to include into the CRC. + the number of times that byte should be repeated. + + + + Combines the given CRC32 value with the current running total. + + + This is useful when using a divide-and-conquer approach to + calculating a CRC. Multiple threads can each calculate a + CRC32 on a segment of the data, and then combine the + individual CRC32 values at the end. + + the crc value to be combined with this one + the length of data the CRC value was calculated on + + + + Create an instance of the CRC32 class using the default settings: no + bit reversal, and a polynomial of 0xEDB88320. + + + + + Create an instance of the CRC32 class, specifying whether to reverse + data bits or not. + + + specify true if the instance should reverse data bits. + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here. In the CRC-32 used by GZIP and PKZIP, the bits are not + reversed; Therefore if you want a CRC32 with compatibility with + those, you should pass false. + + + + + + Create an instance of the CRC32 class, specifying the polynomial and + whether to reverse data bits or not. + + + The polynomial to use for the CRC, expressed in the reversed (LSB) + format: the highest ordered bit in the polynomial value is the + coefficient of the 0th power; the second-highest order bit is the + coefficient of the 1 power, and so on. Expressed this way, the + polynomial for the CRC-32C used in IEEE 802.3, is 0xEDB88320. + + + specify true if the instance should reverse data bits. + + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here for the reverseBits parameter. In the CRC-32 used by + GZIP and PKZIP, the bits are not reversed; Therefore if you want a + CRC32 with compatibility with those, you should pass false for the + reverseBits parameter. + + + + + + Reset the CRC-32 class - clear the CRC "remainder register." + + + + Use this when employing a single instance of this class to compute + multiple, distinct CRCs on multiple, distinct data blocks. + + + + + + Indicates the total number of bytes applied to the CRC. + + + + + Indicates the current CRC for all blocks slurped in. + + + + + A Stream that calculates a CRC32 (a checksum) on all bytes read, + or on all bytes written. + + + + + This class can be used to verify the CRC of a ZipEntry when + reading from a stream, or to calculate a CRC when writing to a + stream. The stream should be used to either read, or write, but + not both. If you intermix reads and writes, the results are not + defined. + + + + This class is intended primarily for use internally by the + DotNetZip library. + + + + + + The default constructor. + + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). The stream uses the default CRC32 + algorithm, which implies a polynomial of 0xEDB88320. + + + The underlying stream + + + + The constructor allows the caller to specify how to handle the + underlying stream at close. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). + + + The underlying stream + The length of the stream to slurp + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(). + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(), and the CRC32 instance to use. + + + + The stream uses the specified CRC32 instance, which allows the + application to specify how the CRC gets calculated. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + the CRC32 instance to use to calculate the CRC32 + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Flush the stream. + + + + + Seeking is not supported on this stream. This method always throws + + + N/A + N/A + N/A + + + + This method always throws + + + N/A + + + + Closes the stream. + + + + + Gets the total number of bytes run through the CRC32 calculator. + + + + This is either the total number of bytes read, or the total number of + bytes written, depending on the direction of this stream. + + + + + Provides the current CRC for all blocks slurped in. + + + + The running total of the CRC is kept as data is written or read + through the stream. read this property after all reads or writes to + get an accurate CRC for the entire stream. + + + + + + Indicates whether the underlying stream will be left open when the + CrcCalculatorStream is Closed. + + + + Set this at any point before calling . + + + + + + Indicates whether the stream supports reading. + + + + + Indicates whether the stream supports seeking. + + + + Always returns false. + + + + + + Indicates whether the stream supports writing. + + + + + Returns the length of the underlying stream. + + + + + The getter for this property returns the total bytes read. + If you use the setter, it will throw + . + + + + diff --git a/TLC-AUTH/packages/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14.nupkg b/TLC-AUTH/packages/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..37e924a8e228bc31361f97f6449e070b1ac4d247 GIT binary patch literal 126125 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

    Ab$F_?|7bMSq$0Y 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 HwSw_K7Gjo9 literal 0 HcmV?d00001 diff --git a/TLC-AUTH/packages/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14/lib/Ionic.ZLib.dll b/TLC-AUTH/packages/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14/lib/Ionic.ZLib.dll new file mode 100644 index 0000000000000000000000000000000000000000..4491582c2dec8eca1cdc8b00666740135fc7f352 GIT binary patch literal 81408 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 Hqrm?F1UJv! literal 0 HcmV?d00001 diff --git a/TLC-AUTH/packages/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14/lib/windowsphone8/Ionic.ZLib.dll b/TLC-AUTH/packages/MarkerMetro.Unity.Ionic.Zlib.2.0.0.14/lib/windowsphone8/Ionic.ZLib.dll new file mode 100644 index 0000000000000000000000000000000000000000..5b6a7b3f7199447b8e36e0d135bf180760a2c35d GIT binary patch literal 81408 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 WBX}<`IyJK8zg^G%e}`U!2L1yu^kXLg literal 0 HcmV?d00001 diff --git a/TLC-AUTH/packages/TLSharp.0.1.0.285/TLSharp.0.1.0.285.nupkg b/TLC-AUTH/packages/TLSharp.0.1.0.285/TLSharp.0.1.0.285.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..4258fa206edbc02423eebaee803581566eb76493 GIT binary patch literal 289113 zcmY(pRZv}B(>00&*Wm8%zHxVVg1fr}2<{RfxV!7#xCeLNxLXMB?r`$F-?{lO)>z#= z#+EO=F@*k!qPS_2w zp-Vl6e}saCN%%a?ItRx(z*odKO%tXEL>HDkonF3XxIf3d z0XH2OIf=#ocp4~&hxziD;3(weVQp6Ds8fKY2ibnJcy*6F|#T^G98{ZnV9xi z*N~ta6xxtdbo;1QRHK^M%^$0~lwh=KZjP6~-$5m&#)^JO7`?sqCkf2Et|b+j zAL#4|(MO);^-XYyR)ex>o`_>cO^U#&eM}l~aHqVN->!fPo_7?Km8a-owOpWHV)(gs zv{R&?00yN!woj6^%IKT(ttGZZlQg%*{OGrUu#GEmld^NHcf4`nc~`I6(HJ|OUSCX& z`+`f;^606)+S!53p=ru9fEZI?2Tm1JP|d6^=topMXRKKb<-3)&{cbg|=Fi;~eRrnTg@Lei2_+)utny$tP?R=QQS?8;D1 zKTyVs7(bB5qZN>{V1OIzGFe+CA;hmS6cx)w?GG1cS#ZpzdK$^{JSOHJsR+GZVBl+Y zs%KlPKqT?-n@#1S@_RP^4x@-|N|m8xx`_{8f4v1Wjh;=IO*k?woopVop}XjW`Zq`* z6oCMZZ_8}oZvx)WB#s@Vc8Ov;Ldc}0MSec;G@mxFAV|L;<7)v@9`S5_dw95g-d|2$ zjTY|8Gmpsv-@+pbM!+z_Ar0gs6`WOVN1c94Lrnu!x(P3!fU3o^CDt<&ZqIG2w1JOe z88mK45VuUB-Yf!A!w?=MSm-EiCJw#$aIQ7daWHTPC$|RW^H|-JaBOd2G|VJ z(ywmTd(L;i@OR##f^-b*+5UWdeG~cY6?hDo5%Ti);(Pr4x<$mXr(VWB?9tZZY<(t1 z^GQ?Z{BaswP518d^)>i*5)Aj;H-jwnr|p;JA}!OoQIp4X(#a3^j*gCWof$*buDcS@ z$uH2!Sfo;|(VS4Am_O6OMbTVF2dg=pd))h6_Zz&(rlTTq+!efeJ|r9U<*8Usz1@|j zdl>a!+=h+VeZ!^c==eZ_Y!}p@e?ET`^4@s?N_^3ikDZoaEB=0&F51b#ICQvbwMpJV z8@G-uKzRy62N`$or0jpY=#kT{sy<4W^nIVRR5%RIACLGx^7Erh@HJk-e21`U2;pV zvv)B7KTULg!b)SuX0@#dun9GPcBl*Vwg^T8I42|nbL=h5jc6C*k}EEk_=swy-PIkIplXTTp`ASBWrFY- zs7Jvz7WF4Lm*s))x&44(Ujc(h`ZxGCk#i=5z0KMEd@eG5+I zyY&1^6r#wNi<#Y*(*BvySN%34ou~Mn0I20{tPhNhz<$e01gBU0z4@WE;X+JAmavF) zFxRHn^_<7%QH(z>>n7WzGveic)&Ljq)8Xy^cjg<;yo>ut*lqG|<|tW1j>|YezCJ}K zMTWt;w;Qu;8dl?Y?zNA17Nuq_5gGLPt2kz9I&=rI=#Bl>)5z?M{s%Sa?sYSQG=oHc zIO9>+tNjkn&^gbaHXhiPnRPb!Oq~V~r%~LCg}sb22yfeO2R113JIN-QAKH-yHZbx# z=_c>}E?iBWDre5&-S>oBIVXw#y5mN+TM9ouu>p47)5F^3^4GBs%KV(XGW0LpRp8wj z{Vt+Sol0j62@X&n+9&!q$c4RrWa#g^t02113wudr=%2f*pt?uCY-sdvmWtbao%)VXQVR4=-Sv4$jYrP$mH!@1< z9v-I#NvR$B&F`m7m=9HQOA1`Ev)w92u`s|UN4$r z^#EM8`nbA?=f3?MHmZ+Y#na(x5giwMat~`KZWOfMgOw zS>~oz2Hx#qv9uhvzCe2+>UpOvkyD6rl>i_pG3-dUELhx0Fz{0$h7)XS zz{rV=`3Yp5Bf>>kttcdHA{db;!f4drOS6_6>#9Q%_3?akQ3O9YFg7B+5X}@qVn(Jh zT+6H9x9C7Qa#1Y*-?$wB;f zdPF{ME|Ax5WAbI)?)LXpof!Hy@%39u6s}tMPaieiiVSPe;0tvY%~9nGEM7QsDA_r@ zl+x6Fqq28daR!(CZD~}c`d<%L8~_XzfY+wNs*sxNC>O_543C!PHDmU{<#4a0;MMk} zLn_);=g(78t0q9tP$+30XkkCdLC7?v*IH5YfjQyuFld+4E)K&6Y^hMXm1Kh4tXjCf zBRGQWunNZ1ZFM=7R%y-Np29~@Sb?Wn)y7<2)^d(KJK2WwLzrTxrBG^dG7JT|V4yA_ zGy&#GYdaDn`$?0drI{1=8V;?z;0nK>YDQ*-*v9c^(=J-J%wK<7s<9s{8=XVDMN!w` z)jyI>6c&9Lvr?LHUH!37^j)af|8jaHu!y{YYnr^)aFMQRT;X9%cY+9}y@RINS+cc* zlQ#&XkVZew{d+2(guOmMpF1zLu0IZ!#fih%fZ?(^N0Cv0)fsVIfOw*lFja>KpctmP zr8xm_TGG+TTT)!D@YbE^u7ivFklbIT8eOdE?Q1xRS77$5N*R)qZ_r7h+1y`~_24C|I#jZZw zKb%vBErp-PXKw1-d|x;epq`FwgZkwBVLS^m^*0wWfOXurItgmiDijM=H9I~F4?rsUGCQex;kOfy5bD1VQ9$2cDi zZ-4J1(s#<1i50hdX{t0Q2V~a|*z-#QaPe{|$ zUE??K*FUn~puGl0qXTz5o!#9(6VPctza^0(pDKUQP zY@s-T+{f{q)x9t<%k%!>sBY`T?u}`l1IT*)&0pvxK$-X`%9096OJE^b*~-yasUcOW zVk;}OtD&5`k{172C@y3rCl~6vAM>xvzRDfVmTj`>M`^jbk&D>2fJ+sate0vA#_7VZE*K z4(%*M0nKb;^#G}^!ywC?kR!)Soi#B$TSWQ&dJBk-O$gRh^J0!dbfvZ~sF<;4Ogj%p zJ}YP2nPoYz9NgHIS25A;aQw~p+%G3zh!bv4MdFBs|Ms_?4@N-{5-TTEF z^_s4FT&+9vaGvQPh9Y{IoD)J&5aLJzC&6iO9}%GCjK}-uc2xxT@Ax+r8XdeJulPyx zB5n^lFqu5C*FPmQC7}n!HWli|x-Y0P3))R8{@h#Gg{EMb9eF-`Mf}An%NWMG{A|Id zIi49j*>v%-M;-c>i@+Ps&H|O9I?)epFzh6~n&xs=7Sy=6f@Xf^!wpH@jYBTNY}ZXH zBT9l8M#l$l5nwP~E&0g64V)!`NZpvkVj2z>er4L`+{B;n-R7g6DSq{}% znWgRc%gVC-^LN@h6V5!yroifVMh9-ixlq?YwJkk%PDH06cJ^{*&A~H^P{bzN0g`1? z=sbj0$Rr1iTh=d7S4Y`E6gQWhS4g!1`m!q;Dg1Mlo52MWxL{%-qK zwewiU70pbu=%IumQd0&|`->Lsoe1#lNtRXz%Q8m{H5p6x?I~hP1Qc0}rc{TrXd8JA z6+c|zjux299I1WQi>!*4Kh}aS2;A+G(Ni3>yr9+IH$C7I3~Cn z09*4e64Vq=P$YPT;h#3KDQ{|HQx_Ax+wkmb_D%v&)VGk zp}!3XGpdUh31pF7&Exb_34R@YbPb2jQCfZghSi)DP7>SWb(YFKS;Hw-qk&i4g_6>X$-%t`0lO!Z50E6@+p4H?i<9y2+5L;h zz2qF{{Nl(?%MZ-SmP~iHs=Z(bd%>h?1^GU+THeHszt|)7$l8Q@3l>4e`gzG$MHb2T zOqRjF#QcieM;8Q_-79jU4|Eaz;lS`C$?o7N11tvp&|A+Kmxgbf@pFp=1VN@v5Gj;W zOQrQhw$P*4nxsmJ8ODTqM@h`sB*=?ff8V^3i$-F8XXrF_(x>CkC~|A6lACzh_#|2o zHX$eye{tu=gJO0e3Gbt#fX1e^_F*a6RX=GCgt37hbRpcyfTvSx0GfGjqSHEOB`+>0 zR%yU;u`iQ%Vb4em)?bc3b2r>|{5C8%8DH#JcTIH0%G7pgb}F$+h`BE8RxdyaVx!23{q{>Hq6W{fHHEXDHVWKa;j>I z#7^O)m~c}2QQSYCgW@!)h?TO@Qu&w9N#bYH;b@3qzCeYuWkI&DPX(;&fFjny45y}n z2y-Ay4++*W@tIiXBTW7%8L+%y|J(MY%OX!mpLRm({`zpzqIwL))`u{Z#XFHfaORs~rN+-gjaOR8CFcN>EDBX;tJ4eNw2F>=3iLAju(cV?L3! zX6IM3*u`7Bmot7enMljgU|bQYocZoTirTp0AvRM|vo%R@Mu+8Ks5E@W|EKti9GS(Y@=t2tR9b**Bv}Dif`|a z>kR6k{chx+snA$On+^2Eo3>O6gdmppAv6m4J$Yei*FOai+axJ~J#^!}UKmvBgwgvF zQr`@l1S&OAcnPd5T>}f(UllO5_@nQfg(gXh|*;IIUtjlQJ^sgRLg!89_p@Q#&77@6=5y z)N2{AHUdH(?(dm?L8iwuH=!G1U-@3{-tbhWVb7`3j$%)h&l$R2vD&*sc`7BXEL<=v z=Oshm7sUY#gO;!i=W&o@f+%3u8Rt$WBZ`}8oc^W2)$Ih>L0y{ zF63EG_{Q1`dMcXvXP**nX)Uq9qo|ju=bH(#_C=cHy9XM;aTW;P;&j4$jZMG1d{qUHI#p(r@;< zw0Mmc*yZ1;p>LT)wH0Zh@20UWPvzJQchhPgS3q>KNxOsfN2+8x$eI)G)%ObTyl?L% z!^lUn=Fv0p!D`Y)Y$k`4J>8?d%*90E0&&EkVNBe~9*b1E-)}YK0CEN_xYB7J#w95` zJw(Sdbc{Ksm^7DeA{PVmXVogWkPQ0Pa zn5oGoa-tN24(HcoY)F~|V%}+uiH9eS*H2KUgQy0I@p9yoE$S^7K#RG7W<+9oX-zD1 z@6+yJRH*DGUXB4{tKao>tv?S5k&@4Ejzi^e6gRM~m4}C|kvggg%xF2W&wZ$agcglVW<~hyuX2a?v z{t|9dT;aU(2qV|X{MzcLd!`P|3&)Be_N18U&--f{?+_=Ty)iX)??F6lll?R1IIMtL zu+>;EuULKXLwu|Sr;O1B?CUu~qlf?(Sai)W^A%xrn@sRnj1>bxzQ8=0YxGe@N ze{_<3v!7bzd{I(eA>(E;ZZ7`{{GxjHY6v=->#&k!f+nQ2%jPuuCao(@tgx>-=D~ok z2u0&Cgp7&84?D`F=CeD0(>IRlplqkWE{=6ZZ*z=Pqg3dqA}w#Pu66GvPj{}LN5HHg zudiDvWku*hV3}eLuiJKdmv*1D=_37mw7c;VLsL~ZU zUuIiQ`7igw1Mt2u|0YWyI_@smN-GIl0d!B}aIKl=@keC!%emXz6VG$fDThX^H0;t> znxh)wW1o!0N-=G{LV0yUjbWk6jGr~NMYaX;O)GVA`f^J7IdJlJKzli&F-Oiu-Nd|F z<`_2qQ0gPGRhK4Pk0Q_foBUKyslw&y=Jn=j^A|xj|HZSb!{t@B0I%oAGxD(nAu5~< z2^S4;#IWr|aGyC)DV%4Ljm@{9aEE8o6S&^HwbrCh!>n{cSWb)V79_G zdTs#2Q6OybyKWZG>`>8idN9TAli!Lc)}@n$fJe&44eg4k_)(-goVh6KMj$eTGAIXT!hMQRqp?!IQPE1|}Wtsq_bfU&7^+wV`0UEny z?QhZGq2xB=n+@#SnjEzHxkkzY0!d&;n4|o?01Z)P@~^&Da}(ce zP=t|nFP4(bw}WD3jch2}Qqag-vO!)u!a@{Ts-*J<)OX%=%!>733ZhY69GnSv3!n3B zLAaOTxzB%nCFT~LmtQ@5(_NA2QG{D^oF)Nqc${bcbLt_1;rpgNX6Pe5+ zW~)#mEhxRz2=h*_unEBgT}PQpNFiIEbV?4IZs9AV!rrL{oQ3~`1;gB$}q3vD-H4;0yf zUkSo=1fLZMO1%kNlHYw{NHxqiT(ajl#gtg&r?9(&WtzJ;RL3KY-B#@s%Ju)9EZ?=O zb8v^YaNJK8R-TuyO5;2#2ZDCQU!}vg*Xu@XFzrB00386zJH? z#~`3ND(b+4>ugMO65nma?vb-tP4~)0mN-`q{(v4}O2ef`+b|$W;U0ZQRSLIP6Dd_K z9B5Q7S>2fAA9HMDZE^Q>Hjr`Lh{|0D735KGl8`pfO@eJz@d1N z3eKUK3Gx|Uiu)0`_{Jumj@6GPO1tXa<6Itws!8xATOZ(Kg{@?AH|VuMIv{3#Aq8!+ zF-}a(GA!Oyv@GrFQx&})UCW28D3U}xzQ#hAZupI5opo7Bter@<8KY&PF7NP9a6#yZ z2{9c7(@jH^Gj_yrbQwjy1Qg-A!f-gV5gj3-w;9R) zgWoXkSEQj@;+Cq>muyzQNzB4BSfSd861OS54b4-&o7it1^`-n@~~g4fudrAkt6;} zUukL{(`fQ@rxm7$&86*_tC)Btf~}=qK=Pl|v~*bmv~)?IoV0XnpHrAv3(9eyUTc+o z*Asa}1^ah{pWpVTo&kht`S;J;ECnBaQ8+#ujbe`L@1dx!Q-NDcCK6ZDID+TNkzfvw z-m~oanpd4UL0G>0d!?iG;qIhL>j+qXuL2ftZ36X*l0LoDThySXLu`n-r5hexvC9L% zuAmEs@CGpMS>?xZMT6&@ca)YsLsK?b0?y+-K~Ln1kcY)Gn(d7QSR&H<9eo*142}5o zUSjx#{HQRrJ7Dz7e~PD91kHbp#8AK} z-G9vF3YzW1zg^+t-xKIIYu3bEI_DPaI5HlwZDO-J_n)@Nq~YxPdf@U)CV(WBGy@L@4zU{C#;y#Ke8oEx5Z`buk(DGi?(_maiARJt}#s z1aZBhA`Azmycv6bJ(AJx9{kiQ$aMNGO~UK^p;}*5+pY~fwm^++GOBNkP2Xws?<-Rp z**lCqC+ArHlSGlGB!hHPuP_s`OO|E?;h}nOLNu=*a7+-jLSaWR5ZF|!d>Xbkrt zpp4KWN-V#+YzZz7NBC)5bbI%;jmg%qe0c}M&mphaNG0*@Bk9>o^U4q*W@-52vd|*a z$C0Z4{ZTbR>Mih4C}rV=MHiW|zI#F*bSbYh<5&)r*<6?V4Y0=g%?2qijYluwh+?WdOA$@h!#s>2^LR{Y)aVY0>zt1AEfu+xo7#yTBTYRI z#Z~N5rdzVVkKVA=LL`x zOVf9l))?|fckm=)?3$f`tk?}qo(HJ1{HA)?oD5f!iG<%|zgHJM4}IwNZ*0(MQ!vi* zA#ybk+?)%4+k#e;5DS)HRZhHSM%ykm6Fw^kW87=lkZVR}YJYn>FlLj^^m z0s3l5#O8ZWKiEPFQaEVC?U*_$+=sR zhVygGbrsUNETQG`Rrcu_rh8hOb7FMUQ1(G}!=>>0H6!I;*&?3Y*jcWBeBF3B-o9C7 z6ZbblTvmyMUuz9u&)6wv699qWdOhtZGlwWQNH})R}k=*$Tbhoh$3Ax zN_PwJ>x!q8adt(Y!6S`Rr)4>~;8N8A7=fpKprsky!a0PB`Z!jLZIC~?W)TV3jMJkL z;olcDeTC;3BpPWD6xY#t=BjsKd$4YOy>75)gH})})T@;8$q9W9>C{Id$O$Id@hwc~ z7wQH64;}x9=l{b;3G#5?Ac6m3r}%$%=l@0iXZ!vi{x9+>PHu;$`cIIQMs-9M&XB^Y z(?<9tmJqUrvh(5Cy@rIvsn==%t|VbuL7~c0Vw?>U2$6(-$`ZS#voh5x3Q%R&$L`Mz zZ|jF-Eislg0)MYSHx##{LMkPpzE2ESH_T?_m`Pfq5@^`-`g;aXM|-TXYQ=r~PB71} ziJiY?O@VEkVAQ#(~b?#`>` z(%gtOJvE52u9HcSIccVA1&nHewfnF$(=F>ojp@lZwc<1cV}yl0YClU~B(=iLwA>^@ zoXhsLeWW)OJ^tWB2y$nv6UX1y%Dl#%w-Ua;g)V+N+>^%yc6KbHe;# zXO2`xA2S13vAn$g?4_7lB}xl}^@li!RS{MORrz;uW8mb?{lo}9;Q>GWx}M@fBKV*Q z4&sQpCSCoD_w+lQaav9vIH|0Ij)?ENR|5Rknr9Sx0^yU8dhT8$iK#N*4R@73G|&l+ zg+Jy|&6tnZ0b3W#fUPalZSTf{o#^RF0kOYkYGpg3Qb3*C=Fhd-yNTt1)a}4?ooH5X#t>DCI0vw#9KBmz(JzG;zD;sLtQW$Y;;U)%${yAoNMBI`yG zTbt^%N<4M-Rv5ozfV!}e~E<>DQpPZ>P*uf1@d-*V#- z<;f_Q22K3jCiI7|!p=TC$IH6Ud5|rwOOW!85;8S~( z_Gc}!|0X{jJiJ;(b9yn6!z_6B^I6;k@eD=!Xa8Zl8ZCi9mQk(kWr07zst^;E+v|Yw zMesvIo*ybaM=V?@3ERejaSWpDo(3SPQ#ZCte(y)^)-)DQLeZE?trS%UT9QQfUXC=&V?i$>pw2S)MU_>EVU3$61 z*s9#F2`~Wo`wyx#l&;N`QSVyE4J+#s*`6_tGO~GoNY?a2Sf159cDWB$btLqpg~t`} zQYPq1;*0g9MGyRrP*&(-LK5}Rn`;n-m=(jc1%@5{RVv{FO^bgVo)`O!3cr8@EB%{z z@CN3DJ4jb$WUe63i+S%X$yQ~)Tar>sU@EuF3G-(vyjGm>*^rjry{yWpky(&Z7bf_p z+&rtS%T&6^+~lsv$o-+~#(brdBbxFuBc+bk{-4uyox3U{XF;ajd7;%gBlPlEdQe$iIYbN z<=C0j@sH`N4JK<{JkNE4zlXXBspGCdV|>e1@L6#j8^hAk=jOv~qQRPsO!$(^Tg&Ii zkJqEH-~L>58vXac;zaiN9S_IZFF4J!(>BGqv(l$FOgi@Ev^?o6$L|D`EgZjw-Q)y> z;4+aC`DEBantKQOR$Z)X(0|tZLHOFy}OA`j&=^$H)aMsX(q;6@1r7ovOcQ0E> z!JN`jqM3jr@2_4Z^RF)n=vX{ZDXF2RT7G1Z#V{Wy*wmNST^r~+lv0?;5liSg2)v!k z(prB6ETJ42;Rz+*zS$Um!1L)uI<)ipa3cK(W=_9QFnJyPJ@z2iN?+%XLFkzO>e{eh zq+v2ae6pP2&@SQs>XzF8r}@{hWkuMc5lE>b-*VJ!)$VX;ANpghbx-@*bHl&gc?5{M z?rJ=??)rJ(A*p3)cAWHC8ew3k@TOSoCbU1CDj?f#Ij+P2DBW<|*QNs$ZpiPWYG0s( zkXskfZX@*PbV|eH4j$VDE!wE3iHuBW2MB*RJ1;;Z6&1N&^b$+@8=WB12rxUFmxTGP z1L+tUi|^I-tT^FdQ~>8$#lLV>DYQ60NAe-W?yxu#zO9lG82*bAlr z`O<;e&fvVc17BIO?4qg11mcC~w(i+kSznu7=GB0RzsTra`BUlYC+4?8OtLHvw?YnZ za!FHw1(7ni`q={kf4KUzyL0Wx$5ZXd%Q}6bH`cM_L{Fv}eV32ciBQ}P%2JYzom;sOg@J+ zBJDUGvQ@%A0*X1MTPjvNkA{83brIYb);a4S|L9K+CAuspkOf%>F&X`3FsC(`1(QANkF z_+m1Sd^L~WBpS+vSCA~EUM@XkIUJH)%O%N+fj#@nl?F(+<=yzroXCs3%u?Xzu5?j- z(H~-&r?RWhT@eH8D}irM@3kjjv`&M;H&RdhvA2A`=wR{fMql!KUDCXWTuO=4I&6fAU{O3ei+%{E@ z-lc*B-20@Tp7%{CtCE)GP?R{0xz8zx>5nznup39dq~sc81aDrz_XXwNI@QXea&C-| zmsLh9&u~;u)`~a2H{F~KF6ab&vTyK(M3tFYzk0qU-5zS%$ocW?9!oQR0Z63@hZ>sF ze}{Q~fN>PQmz|E-s#DXujaxeC$yhBuLeiZ`Go=JydgP4xXaADxDff^dvmeQHiNUNl5Q6VDIO89>GsJEEZdgRWE2&h@%ne;#27nxM9Tkxiv9#d% zWWeS8cV`Z3A^R?BpD@-m-(*3WiIJOgb%{W37$xS{{Y1LA*^_RV#~yc|0H7}2DPX$- zC_Chc*fhVm?Cr_d#lZ^Q%pW6dI9(uy<8{?#&9yT~*?yf@j0hS(Z+~Lo#`-+*#tJkm zixB3)S27Avf~SUJKZcYRfx=au~Ah&;urUGvlXol>X#dJ=m{2Nw4dLtNneZ#^U2rc{lA3TNc1^xMkL<&RT_!bSVoQ z=Vqzx7V!OE7cIbs+M0G9XF3nFkiN9)S*2QSdc(?bd?vIwe|k}lr?18F)Li~2(X;2( znd510)wBDXO~U1oaetDG$T~R(uI#-tGnwTN^*4-VSiyr?KLqr ziNcCH)=HqZFp5Kq)?dz6P04~M!<@~5Ab_kHzPxL3g5H5JPWH3u$Xe0nc!(fJBO8_R z@a-?GV>^(Ct8hYDYQ1nY9gEPIiM)D$u?2fhOc(FNV1->E^;vu7$3IH=S2#1jbRxo) zX8Bos2vMk@5Iiq>_SeIruPf1fKb50+XFZJx#YYP zZ*n%uz{?o5KA?nl#nD27#x!sokPQ&{SQ&9RIyV*&Z<5c#TS zsR*qBSBk^7a3>3e$qPf@WnT+MJmkz*tOgWEcHXCxp%1r50PCqDpo{U~AtTEHrgmHOBNy8%Qa< zFFfBk)4A2TKlDX4tl|ZEz`o+{@6YDSr)s3(7p3mLIfoB2#>+9bMbDc@jH`7$N1J%= zu=ehUTAPfad~&zKj}v|AQ2h5{z}>U`4l11lYei?l56wwcMCPY1b1#X(MD%M z91+Egpe6NGj=!dbwlx0O^|PqLdjM#UKo#R{7^IeY?wIcTQ;#W|m=g`5P0loj@j!y> z^x=iDE{pk$$1A{m%{A-JvZxq}etvt_-ZFW?)ttJ6?p$-Y-1fu^3yPNJ;b?WXb~Z+? z6>^r@7F>iszlfB{>5;ED z{Fp7(N1Zmi)?%mx zxJI$yOSx0cS*#Oy6tGc$%i!0-LlOywlxy~(23}*pbYaMre3?*9nz`38iq5Z1YAPY~ zFC22m*qeU#dG(xuYG!NvdYEBmNX&REi1xrT@8NG}h51F16M6soK3Kh(RiSbdFTn25 zM-#r`Mls^k&|zcsqWD!{-Au_YYw6^=VnIJhZLx-V$)o-|C4)+l-PTf^ZqN}1bip|0 zV;kq<){iWbHRj|^%oe}6#L|(Yk0rU84Hlp}{nX?}gj9750*VJ~Veqe|ych^F=f#bO zy#~s`e{(AS$_b)K5&odmu|F!TR!$JxxBjPwU#lLO3w>Ch(@%tc*KJjBBfbF}<0^O% z--0>qkZuxE5EY+q_IDq2uP>Wbq`<;jV5)+j>ean}w^*96xZ}a1(T+0_1hL{JQ47xN zjnDqV@34OtVgx)g4w@p!v)*PU*tJ??`6W1Kg-zzTXliVCH%Gi}t&%&@noI&_df;H2 z*+~c&I9uI5@!JAftHdAwT!6dUCR(R13+~Zg4whtc4SN%$jj5kF{t_a0OW&YCZsUEj z#35X$ne{?O{|mq&PEo<5wRUQ!F0uIx_LAUYicyL5KUng889lLu5~ zFQrabbV|#JhHD3RW4$oU$~x=)0lF1vG_Xt5F-npU)hkie$DS%j{n+v8 z%GTZ+`6DWFphwzhq);i&kF7dc8T7E__WPgD(-tBV($GS)R7AdpaM>KgU zeG9tzY!%LbFgv!Jl)`ztx7B!Oozx$#;1c3)5q~Ee;|Uen4-Td~bQXZ)ANi$QA{0CT z2Eh1hgo15@FJ110;<}HIUWs3R!T%w_fBIEq_*rrcr~F4zICg*&i&1(Bu++-c!nJE^ zov|A)^Fb1e61h1=zk>=@`u*u{UqPS)hgl-JIYAMK@SC!{5zcxR5V>;o9-kA^6Z1&5 z6E_q@OS~ ztO+F2cQ!@wS<6{cXXQ(|X=6rp3AZHAfp!}Fl8@gnLgwDbp1aH&Y-S_blcyNO1LUrk zrD)dUjshfSn1#DnES8f#1B!ZRULe(qzu0om3I)@wv{TcjW}L}Tx2713<_$To*DcF~ zxRoBbXZuLzV9{>*zg0 z7_Uzafbzieh2PmbXC` z!0ne`Q44!8JB4q?B$yE$`x4d?LS8rbp799rf_gtGw=jTDxKGZX^&U0?S^Ic}G>6N0 z_Z@ProGVtCNt6&nIBUuLD$zkNeu5T)dG{59SkXhLh*|QHj32=UQy^gm&WGv}f@HH0l>CJ@00XQ--c0j=t(v1H1I3I% zEIKhHENUOM1a-f{I+?OG7~rgJOY*8a=O*~@Xi?7zw05?K8YPnU;0J$6ab#ug!_k*b zhrVAaKx9nFaiq*u@PM4%bHG243Fgh`!^D&C#{c)ZE=n%;&x z5od;cxIfbwc==HV&H_58MF>--@{s1F)k<-zK!CW$g&y?W6%(br?d?3$AM!UgL4iQ@ zn+*!W&t&rT8c@%~k~I-fPe{{{GVtaURi@^Pe-Kp}T#keI{H}@cw~IoxmqU z_EvlO0_*bAQ9|08rC=O3hn@zMuYAq~tuy7x%2J0b?N(IRrN4si{OK@@BGX!z&Ya-5AoyM6gzi7=g1jF)sPoha1 zT?@86hA)2(N04k^xX;&CzvH4+Z}Rfb2P_r}$|9o$8;&VMDug z9kC70DZk=T0xQ&2Cv;)y--kv)bsyHuf` zPbXK_^kAGyBjuX>&~FFCE=NM_XTEseG#h1uwhJj=0$f(j(l?N$XWmxV#^jHL9Yg>* z`m>DBzZKnbLp!Jk{)n&EnJ4NO%C_2A0Q(6sCswUkFbkqP6{`*)^k*>mCrGt2#u|;1 zSyu(hs90yyc&^g}WyXsgLN#Wu`4vJ{u~iRXT@Qs&ma$Hwsx(giM4ZP=8pvwY&T$=f z9cVpo4Kyx6VW)g>bG-e;b}e?uX^*wxS1I%u$vH56zAIqq!!c5K!1cOkijd=&FrfF4 zC|C|gOsAPI3D!bCXTOGegf2k1ls+6iKzu$@$pB7|93IG(%0J8p)WdP_+hgCDj@=Nr z-a2Euw%sMSr`cpM$UN8IRkz3GI0h$sV>!MOH^n6z#Nqa#zcgv1dCt4*@(%5AD@pev zB?=hI6Os?|v+iIBn3Be+y@1|t{%yshA8Zxz;vd;jF+hGm)j--+r;-9J7MYBboS6Bq zw2gn=C%;Pb&e&QcCCbB;^3CX_Q!h?s@O?;eIHrnvr8~VTU$$#D>LP+X!acvzVcS(^ z9Q7GX;E^hJtuy$Jw^BK0cT~A&_Bd6GMuGATx>}@_Z+7c{MCKIE!3xecmZ5Wl&pFX? zOQgQ@3eGlZIvHQ9r^mLYq)a_1Mm&S@80ONQ>Q5JJL|y(0`E8|s)pl7Xi^3O=HY0Nh z6T&ZP%dT%)mvn>!G{2y|<9Y6gbn9eS1mZiL{NwzBWZ?^#Wz@vX(VMkk5WaEWSuOBK zc(0J0pZPVHs-=v#^D>w07)Wzfmo6N1f_9BIbeQ=94V-KLDiZs5jKd%SsLxOGzc-!eQsUpC!pMb0KJ;< zx~o)nPX*rUl-nxgJ9ehcY(%efAUb!(TocXC_z1@IA*0*m$HMb$i_%vsEN-bC=p#~y z__@55Lv0SxyxGX27IqwsGjcHb8w2d}THpM{n`wwGnAYZ<@z}w58e>K#>szS6b!q0Nh!@=L#2QydaT&B|#K_04H zlyJZeK|y#oh4Y7beeQlykV@!T*WI0vhWPCLC%8)8>8k-KPQ~hdQINYAz{T6upW^(< zThSkJ4)-+@1izB=-V4k*cxOledJeuPBToCI=$9v)0FPkQW5P!S2>rZ-gHcCZ>RH#r zI4HL&;WXzD0K5;pABEs4z^KC~F^*yBWe*kIQ@(oft<{3F~}bKt`hEIteXq*t>bWMgpy?aM7B6^uJPi@HbY9V~OiO%Wh|MdQPrSMrZ>V~=`Z`Ct+?kSw}6!s$~ zJH21`o}=dXOl)~@0QC%=-hcSF2~QtCSMYmAOdpPe^h}&QAcJ})(eELEzN2c7jY0sx zTf-R<<|r?@dT9jn8W4M_1@#-{ddUT&8BgpW#`Z=Z9LnCP{-)isgLbOl9Atqz*S99m zYDtahSrYES0MtE^ z^6>I8pIAN0g!8mFADvz+L3)bvMu}-DPTy?aL$ZDO15f@9#JW#^XYkBCq}^UXk9&Nv z_`YPYq|i>uKTW>fnE?SZK76~!c$!5}A*MP5S;!S0U(&wW!j!05PO;H$jr&;Y_i(cb zZzWeKhcvz=|5BaD|60MkSkF{v+OK@hOgy6@!A=oC0=+q;uLLlK-kcIpD<7$4sXZOd zqjl={_@eNQ66TuS9m?ZTmlE#IdJQ^74t!&^@{Y5EQ7CeN^J5Y0!fm@hMe~%6X0<(J zgfJ&ObnX2ot2Nvj*oB!h7H;wc=@s; zgC9{K+vXqPac{A4wyeHWeW>|eF%qvvpq;y~NMEY{zSg`GPMFelQKiVhi4dY&+! z?PA(qF+%tociDGNmM_Q*XUax+x^;tYBUHNOz-A z*Imwh!m(!D(_H= z(j;l&*C*B9k_6~97H%BqMO<2CFPGB$k|6_ggAC$mox>iK1?{LG{hJbg6~4n}0R6bk zG8LJr1$UXFh6_MDm*|jlKszTMhsHrSj8h|>(B2n1R`JLN0+!)+UE{y<}3~ zxrGpf*26j+t5!m6hfNP0bb#;~lnx(Nk>l)hk1*X83(H9!Ry-Y(ks1cud8*)SvS|?jDIDXr5L`*HSToz5R z7$uu`V}R`T&p6;)HK*g`3$1846bWN?h}851_pT#VHBp2Yg2XgXM8JlubOE)15x;+O zOlOiHLeJ4%5Z$#4XKf)~Fgf(QG}3W)QEG-oE!IuG#1{>{UwpWmX-GuLg1*NtQ`o8k z_+MZzuk6^oK94=|-?O3uA)YX*b>G)p-&SX7OP+Mkc~5>>Y|~ipQNTA~DXB(d z-uLDa?OFU<|EDF_u?A{ni`Ce!n7Ow%YMCpPFj$mMSVZk zgw}R_ODILafdYQo$o=8ny29I_O(TiuEYUdAX>$H&i!YwOsY`kAX|R@FXl=>df+hzV~HDFYKzHW-vbp!W?hz7VRpCs9a@%a+F3#{lxQtWkX{ctGn z>shsP^^6wI%h%{D;P9rW$VUK{(rI`o?tEuy5bMKny=qIG6@C?@m(C(h9({(GjHNwq z#y$F(%BBbV1rrANo0{_JyHZnu!aGtjKpqTX?SQZRy8af7oa6 zdjX|nyG^@8zwC3MQ{|1a7`T(KrV5uAd@-MG37dYtt8c;yM#fiE^2X#)TJ|pHaYghp za+1fsu6xGoYhlixlRp{0Uo#WA58}wJ=X{FR%eUKoVa+)D_uqPS>mt|T$6jMR1wde5 z-v>|Pqq2x^yZX2K$kQ3r5^AqM|DQnIpvjObc&%pWS}dIs`xIvHU0tZ?UFT)cv?eIA zO#RV0eizz#FRa{iuW*2oXdcNs?|fQBuh64zVcyTrK&n$o{6c~`k;?+SypYQg=3|ON z)CjqKzh~18RBDMZ0Na;J;pp{VpA^|!MDpK?kE$VVpeP5gM+jd?jI^GWTm9X5ohVdZ zW;YC(8HHUF-xswJYDvm-#a?Bj)k5K}VA z8)pzj&PYGJm^G$E*}{y){yaML zE;9S4wov1^u#=wf&k_7W8pG`MUQ6WB{#+DA(Esrl|b!cX>Pff|PpiPrj^Un%#)nl9gUTy7KC9T_SFp7sw4&541V- zy}rna6*v~kAa>{n!?cEmB~OOvzhS)`#Q>R_M^U7 zK+Vt_@f#t@x6#oz_FEq1w_SMe`Jb2_dql9WuA#Sh<6fd~fe0Li2`+{ScZOvMbH1*4 zdfHmEv?f)-KDd|i+!|x2fjpzd$a76N9t?nCD#T3grQ+?ZQOuq|lndB)7y>AFQaM#8 zvM>_K_?h5o1MZMWLR0vTAhp2oHL9KHm!NM9DgKNdNGH-fHJ-?6f?r{*GvfS(^O1nK zb74R>JLG#E={wduXZQ>=^CLoGoTg+)j5F2zxsW8~PaDEWXD2?T6@T&y3hn>^M&V|7 zqc|)%cYrz1{B%sRFzYy~2|bxqa!fIvgc4ohm8e&^Ek$PtfTPeFZJ2yR#F=%TUbGF_ zq$>%29!7LC;`!(HZ)do98_{+1M9P0(nKh^Rzi;?h)k#~^dWK1Zw`CTb5N%Vnzvim^ z4#5n7nt|zZAt|hK_ zx36sJl#nZ8k4Wef_()MnbQ5kwYooVtJQ(j4kD|s_ktw;kI@O(b0mSnb^J4R;g_II? z;d-b&#GW#bz`I8i_3PpWs#$0~CtYv0T0wa~Q}L${IZI6mafFg{GLU!|BOkqcrO zg`I^yQKkNf{RLvb%@Htn`vaergWiW~v=Gol3Q5B`G-3q*rIP@VJEx(@`eWt!ccH^TEo7-ud_fc6sfg-0UP7N=@6wM?<`&hg&x+QT?7cQ_!tB1R zhaZ+7!ow$)A74Y;%daQrsg~Z~*T3>d>um(%ObEeqWC>l(&Bz5$>n-!0G)dnDx_w zeS_DKp2S{10a~qBhTchvHvt@!ckv;}yM^ zo1+bqUIQ)jgxq3l*J|4Pbb`HGj?qMzky-cE z2v5NG6pYc-+t?i*kE83=+Ir;S9R7@v1h4%er5sjA!0v;5kiF$7Rpgf#8qZ>jgp+`4 zSuEJ_{4KZ{TGWmlQ_gw;-($92a~kpdCeYq?RBF&CH&*Cw==o%3&+sICcmc}wQH3{G z36{6Wh;pk}u!SbbSjb*!Cu8cf3_qh~Rn=DpFHF#WH|9VRBTj_L^#|ZW4hwJ1tQU87 z6j8+Miwdjj3mg1k%x!4Tg9tKdPH6mYnAGbs*G;9B(y6-mzW6{b@kV!l0f#k*3%ejn z0I`(j0_ws3C|u&}RdBu&^^YW(T&aE*RQ{`R=7GmSk;m@cZ2gOlc--#CZ01{vs@lWBbu8W#t9^0C=yIWidOl(UQ{tDkBT#@BkD9SI@Krd zut;0)fhNWjLZGX=!{u}l8kh4-F?DXNMOyR?0&*D)rspNMp9Xy_%c)T~4zq98Tjb9Lhd`2n6 zi1_-4MENL^uuHv;e%q{4c6c)3pe7<+nKz>5!vTKwKpS$Bb^P%`<$XG?lz5(dLeiNX zoZ(i4pO_gAxPY_I&LzMu9wR1g;Ux6cIC;Y)LdWhn@7A3i>$wI{w$7u8$uQ;V{E`i06(2AguqY)&YYz#$4a#rBk+WfT; zGO9<18U+-s3pBER4_FI@K!W{evRB9VGHHXyDBV>lVYIqLq73$TJ{c71bI|FY3n2+a z4QZ<~;+;3rv+(kD|5unw`%Om^*)C7mT`-e96g81L0m>IH+t1g(;Jb4)R!M(FPI>8zD1Qjfpv1q65EBQ0 z5WIY7<3p-gM*ECRY9~+(m;P{??nk^x+iM=HF_eyRkf0i+I*6;)j=Y>9ON3)T6R3G zgjVhaMk;j(I?y=WQaR7+>^@U%q0KMDrVbQ`z`dky?s|ASHrmAH2D-iIj^ajnWwfM~ z9v$_6fjlG9#5}IWN}#4YOF;C3120)b4O`%LDOyi!Ir;4kah=xUt!KM*2Al4S9cOx3 zeT2C|dDuF~Kw__$1MM2n#b%rV~*nOMU)hr>TOgkgw7_#;J-mHyDmF^;B+q$cb=qVbUP zQp4dTh{w0&!YhhkUn43{@&!uyUlc>zyaqrYz)&PU7{Wr^j(yorAwwBr(TJ`!gqLW| zSRDRD;5C3negTmHmG_PuoM34*OGqcN94IOe3=1f7pmuf}KZsjA6 zWX7w)>*d~%j{9DYV89z|GQkcc^FU)_$1o50lQ^$a$Pa&CY*-9NW}7SN>d_Fcib=^?gOzMBrI)Uw#)rM4ZJXUK-QDfpj)tzqo{sIS>usGr7dIy(Cp+LwPL6gTO`^tg zz#$JY1umo7uU}`2$)qdzj-SQLKIQ|P8Xqy7rEv8~hfIF+>Dhriz z%4I&mUj|Q>X!~`}Nd^JWf*H>dVa+Hv0Rt5G+cYR^<0Tu@C6kz*97Q+EqH9}>v=srE z#oxWHO*E`tu1z#eR5oS_nd4=y7!6l+mYbSKrgncY#B%5&xi!&T8mZ2W6_>^f%agRf9TRgb#AJ-G+k&;8dVrW7s=5`wK4WT0ZR+(|IAJm zn*R%?5%nugTf7sc3iA1l#zKj9$yF}y-mZyV+@z$ zHDt9Euw_MSerzKJofV4DOe)jqgF*j09KePjW2f1nQI+tdNfwsL(Q?(tG7YP_b5IgC z_9xhe90i!ena#k2yGW#I5A*f<`k1*pHZtfmEczYp@VLp#xmph`9MTKiGL{bTa{pnt zI!G2ulg%j+y2`VbOk;$khE$_u_#rJ9emkj{R@)Okvm&v-;~Wazg*lGOol|k9ATBte z-?@H1Yt}>*T&1nx6ijrx1eeP=k2zGKuY28rJ9TEh1qH=-f!BVUaBI?nC(U$6z8HiRz5pZ&xGwFPU6-e5Se#j0#)F> zPA!PbV{Y)huQDFdOcC&&54HnYV~_3IQM74fesXy-xde*}5xMnh6LY{ZpJBg_q+U+K zHf-R5ik3;sk_5u(2NaZqcd^#vXM}N44lF}NzhTx=%mzouMRn3thX-_nluPxggtMcD zrGZcJBnlxEsozm~PSUDBR|0Yx@>SO%es6#*MiNy*J6%sk(hC0c(e(uI=nBsFf*gOc zvdh`Ub-23OPWcb}9*+<<9ca*A1?hD~6iJ1*CFYCnw}>^vYeM&Taw;*ePp3jt-n|Qs z{IcKq3`%6IDcTok5rm~u&TDUU*8_bh?+XRa%k@x94nKa;5q$xEMOM!7%X<0o-QHKu zk*|R8QRdE((~#proGKW)FR5caSpv5lMkKIR{iaW8Q+8@A4R-J4uwAc-gL9W85)b0$cK~- z==$8Eanx<0ynof#=6gM4oX2(Zm?g^m8z}WRgu3!#<7uOp^kh5(X}40cH82k_k?L+^ z09GtSF@gz9^Dm%j$SX5_aucE`SMe7}BNx%GYD-h7|WB7WWG9Nb)eF4}!{F!jA0C+Syx z%f3YoTg52V8jw^?Rwq}fV;{iBlM~C(rpmtWC^+)reByet%I6u5w^0?u4IG^{(R;kF z9(cTK$o8&TXL=^&1?pK7*>%^7{CG?q!=~pmD(cbYI}VH|*xD^k|*gsY-cP%JH#fRdERLhd0AFD;#{;yxxTSCy^RKQ$!M zGp(wUfq+`ElHX#*PDIsD8nXyi=9#eYjsU5~Mek_osCB|NYmuTHw1`rM{;Qpa70yKi z#v(u&Ul}HTs2{dWRW2$UCp$Acm5bgwz-o0l5=7s7Q4@^vIl}d4T zDib|%c>~=tPS&xSp4HYc4u-5+-AX;=!uuwRUAHC*_h1aCMUXYstmC?qG2pWH?Z^j1b$~z z-hi43Rw@NnrjG6XG#N{{w>Q_R2+g5c#(`S)WRam3-bd1 zh!WwU5+UoA5yO+zWN?lc+vHA3vztYQ+u1_&akIQfh5VaRp7cgp;}Ru3>iE++*sn{s z9-5aDX~;t*feS|gt9eEn;v)4bi(wqUdv=N4Y{}k-VLPj%vx^JzwVjcun-%>J(0l}5 zx7)43hm=M|A|q=OI--YIISRf~+oO7!!n*^gp93S??@7HRiFa4RS70`b z8ds_`4Fx;$6?9Tl5~(tzG^2^ibT4^;jA=nilPX(^?)LJzW} zs8f-Ah0`q^hePYB*1{1bZLOzn`cfJ zkH3I0CmZrYr=?mIHqaC^ylXw;SpskLuU0C%N`eiNJ!w|Wzg4DKKX;-fW;oH^-R5{3UsvK)bK=sMFk)n z))q%do8PD+e)(DXTnVBb{h`$IQ2;@_L?Igup}8iL7pi5{mY>q?pfKmyp%j42>4-B9 zX7PueGWw}yy5)%-ul&XFfEM0c$al%y#!{jIwf2efd1LOnIp^8btf#AC-SxUQZgn$f zF~-)5%hs*S?WTIy_0ksj3^`MsHyPn**3;wAwB51Z+oXbapze53(=ymI;PCT453aj} zzxeLCDW+w*Ep~8k=_$KSb!WXh3pHrN>g<#wd1DSLU$010Yn+YV^I{)^0#cx=&HNE?3BHqBE$qwZa}}Dmm9yA(Yn4( z;OFjJl)(Fnz}HHdMexJ$ixB;1i`ZkY@aHEL9{F+0Vb14E&_2{n)of$QQh)X4DS5X!_dfgg)8svvf^H9woXqX>^u&&xZ+xQCFF^HEeN-clB!*t{oxklqF2Jh@{Awmt%;1sqgiP`M*16xm*nzb$kD7mBkMVg7v>TW=YxES{N~C{kAatZ_}(EC~v&sCocZY zm*>c4ZVUO(BN8XTl1V>D`yZzC>zN$tMiV1zPz=eR6Ar@7Kj696pi%lc$bS;W|C9#X z4gLWJLk>e;nx>#c1uA?$jVVm^eAC0(hPfqM=J9F0NDk*Xy0)LuwtMil?FNbZuvta*1BE z+tFlp+(mbE=_$9d(RO&E(+4R_+f8_O!6>sx(X3k1Xa#-*QH{+tASd^x49Kl45t71W z)I}Sek^LOx@v}Clp9Esw5VlIkb_ABcOO2TOi;d&T+j#gpkkI`x3+jwu#=R4@IRUn! z9@>4`30@*`|Zd`jtBdrYc$I7N-thp+EDSIWby_DI>}nYl@9R3 z1bUb4)$W?_lb&LNLOj?|)jFQIGxJij zr(`f0Q9JmvQnQz2(83jE3Rkz#^o41fp<=o*QiTzyyf4U3>%7M4jI@TdMu43>EI&yxJ z;T}!34DTCwXoC_S8`Niyk#3VZo~@}d?7YTnhPh-*(F&!W-RZ|u>X^K#Lx2IEBCH$E zTlD;GB#b0jEx&5d(_J3+S2F-Cs4^b*$aCC#tC~9|sf@=$#pnZdO^uV)Iuk*HGGH?J z;6mJ1T^JcHG9K>8b7{iX;6>d^@o51b%N3Oq7~C$yi_YZMS~qG@qB~Tn=|txwxF}0DDtugsfAv#P2L8 zL|F4r6$dI))gv&3Qs)Cp3?efDZF3;Wr8G>2k(EdT>Xk48)n425`#Vu{@MLrFg4qqr z?RwEsXQUFn#T2V6+iF2ViD1h z{P7#qAr4esi(t4VhFG;#`kCY7}{wyC2Z zd1KqY76P~C^xlpSheZCYf^Qt5VmjbM59iYJSD#2w4bLWp*+fQWUd9?E4W%h;tb#^RKi!h^qph|>v0xTu-k z1Oq@}KEu$kBwISb;ov0!0&IV7?xDN13Ow6nRpAMtb}-IAhFSE=X2mNyW<=f`z6 zSrvEjMi;aD_9nD_ggrg^Cwk;0A1Tn{8n!I1ehIH!&knol4*I8|LU8}6T4G=(8!j^m z{Ilm|c`0{7F=5+)aMCV1hE!V(>fH&XEfibm!!^}JVG5%T90oE`wB;3f=`u2Nvkb!L zf^21*l*KI$3If-2o6sy6&t+;z%g{zS=Bm|!xXBhg`!AO&CaEG4TTAZNG0{?6*5<&c zT-JRfJVBDo@o}pnCJN(o2L}rw>%l}dG*T)iR7_cxDBirq%_hBnHFHB$vT3Je`o9VO zB{5bprKSGSQ!2jAQUx1{)-=B=>d-98(V|^|)hRfPH?bbu3SM*EV$+(M_f}J))6$_* z!Dp}MZ%SRu`AP26x!sP-mi&q_&s0%bN}QmoUN@GiEVbaJyjiYVp$UJwUjiYfkc5Sk z1#f26Ug}z`sA5>8Q6r=kqq08@5~G5zpYtG%rUS7C!8u|WLM1Cy`zg}kAH@+kFa zX^!@9!Qr|TG zze$SF4NoAMu~m%tAcTAX7P2kfKQXH|% zNUd{vs#P^Ch49Yl{M4D!V{d+iot5!%bltgdbDH?U3_%X~L4%z2X;d-rZQbQ-u|M)wjMp|sMAwSv4O+R9fF z2`|rw(zT1R`a2WUxczt4RF?0L(G6Awd!p}`8otxJWsYzE~d;=xRq_4{cj;I$m@u1sESV)(mSc9 zWl{0WA_|s2GRlX);PO@uZUrOmLel5W?+Ny1gTA$qKS|oO6&^J86xYqmD>9+7q{WgV zZY`tapa)$F8eRS==m_#?khbTy8eC%|Kh)O~X=e99paH^~CJm-xqE1Ukx#U)FdXJyF{Pv%S6&K3Q zGkVro99V0Ksmf^FDiq|woptDLdY5uUcZDTo-k*b1-)NYH7Xk@L#wLY;#nhQoSkVnp z%XliS3=I1)M)b{SGAMF18=`Q;TVBrWBhu!)NgbnOu7OFRSW#Z8)eC}`73NoM)cI@m zYmw<*KZoiSdIwW(E^5I&!s=_%m}ekU7Oq@4+nlDR?vssK7h!E|{h*UMB~+JxU&U$D zH#;R};Uph{g-HK>*bZ|GCF01+{IMD=_H+kr@Z!izywx#I561N7!J#4+XAk5~dF*eh z!E_nbe);Zv2Rl0_CClTpAkI7{R+4KMC!mO@#iA&^7xp%(;p_=JkBQ%kr;&udLQ0s= zTzh^CACx*i-NcjQUb=^5#FE3hA$$@34!^Pg2F!h-0>dV(qMzYacRC*yndltLXxJ!o z<>}o<=AO3}x?+4={%C(zR=OY&4r|g&46)8GTcCNCyivq6XW9G>2EIjC#H%Rzl{8QB0ES_k zgCVn?fGgyuQ5$uz{?gUO2-nL^=zL}J3D;6~7fAT9b2?{WJHxD=Xi+GrKri{PC|X@< zQ)WH$`^+fqLWJnSRIIj+*LsF&|JyqSP+e5FQ0E#skgIwOorCtjna%54aamfy`euhN zwX9cU!+8?xyat?XSLI+fF=Hmv%^46R&3oa5pr)=`sG^$3*ji3dNAI^d89p0~K`@)p z37j^xj>{Y*JaSu>Q-L)jmo3Zb^V%^D^sBjRmnE52E|I?4`qk~?St6+YQkv%&g%KI_`Ttz}1#z9G^~5yCj4tyiJQH2+V(;h8Cb-=+}b%|imizRD1-l}mBf zJuh-I^jtIYnEBf`@lW;aW9GysV>5;W>&oiK7=9GL7E&*rcOTOv#Vb_3Myk zu7GHLl2UausyYu|f*$Dvaif6bGWR}I8n}fuJ`f^5eKU^{g=leeQ}P0 ze66~!o$wQ+4BS`#8k95|vD=AA!`Im~h27$n+f*LiEQWjK^9u#~ZZAS}6>{*i!dS z8%tZRTWNz#E7vPO}c#-Fe;$T&d9K3aL+f@G9-@UvHfZ>}Aq4tL6p3btDPV##jVo zhZmj4AJ@>bkHm6dnPs_K`~7mAt}5?(B!GO!#3b$wx!W&tiE%cGX}{O0IH~XZV`NUx zW>vjwF`0i4v0v3nPIP{cl$gjCA8AQ3LBU2PV2n;$uVixR4g7o8pPpt08_GG zvBBTPm+ZrO@f*W#oZx<4L}cv@Z8>%8>#Ou)Y^#{z2!FtQJ|w27*hZoQ>|%+f60c6k zmN?e*9~xeAwzMqrhmxw_8})LN%2nvv^0^#$UJ#@a)Yl&9`{sVlxe)DFgfw<5BIx)E zCCk1kp*T+p9$}O+HW2@e%kVYn=MAbVBHDLX$~_g_w@MdjxD)ks&9~$046Ch{XJ82e+FSyq(A?4)HKhwHB;Wo5d z-Qiw*Tdm+4{h z)0WD;0e83lYgLN1Y6jU5Je`QBKm>EliP0Y1Hn(%PUIFF8wMbh$FXqZD&&2Q;f_mAt z*_SzGPb^o`twF;1y6y{(d!EN{-^GvdDaeJsCxwR@JIa)_O--#&#mG#t*QJkjNEzrD z7uKu&d2+O~vuhPGHs$(V`)P=FeWDJ&x=#lw)LFx=HASyQKuVCd)|c`V_vm}McM2b= z^-UAVhpgu_yVlkG_9ak9;s_gs0s}il%&Pxpmoi1vT#zTVHs+_a6WOB@c{p zVM_BU(cjom${p@OQ4Z`De$$F*?BA_TPF8Kd`2~K-2-6X}xUVkfdq-XD=DGZXkTLT_ zT=%^m!cQzUIEU-ZxG`0>xGEh%Yx1jqs)&j^-&QdVYkLm5aR`D-=#1ETISPQVK8aBK?bRK_@`S zZ|ji7=@Q*Iym6Z~$mwhry@}@YLlvsF4m@4n#2D)1$Hq4-EBEhSM|!L5>H&QBG#B*y zX`rDK!79UYJWRqlz)+h4B}U9=V*i?D!eb5JN)%sn;(%jhn)Dy~40O0NI+kT(%WvV= zvB=Yx8s{^v$G{l1`G_w0KO|6w0eF)iWn5N* zywu)%^cl1UUMY?Soi*wwISzq7oiFic+rT{Ffq9>oKeFF{6%s&ECjQzS?E9=W`i`Th zu-nY~V9UorLEkK2ng`cdtwZP^r9uDO_o3_G)su`hE){ zb%;pn(wP}zj$u;?#<0wY!9+H+$+6%J<~&{lG33$w8{k;bTXvzzvzUl9olOwdhqwV} z;BvY5TO2Ht%^%^W59%reJ(MB=NOyht>?J}`;$9l7@3@gKfxE)rOOtZLsK55Ee1Hr8 z38!)Oly$fk+6%xbh7`{^Zd}^-k`vb*i3D#uaHZ7Q^8c9ijF$5Zd<#q>3e$ zgCZ#fksV0Kv)qPjYn4@!4zuS!{3WtbD++N7NiW6g_BR9c}_il71|EJj0h?|5;p_{(+QMB!J3$IN_~v10Jy^!VKYjP0+JSb_h2LzQrM^RX_7 z=`|n2`#Vv=AI`;ey6rTU=xu_M)5RaE*EiO7)vT}5mAV;zdLhk4S&T{9U{+ZEx&5wC7c^oBkF9qBAcMeKS^`sxdCiUraxVFt3lEpl>6xq54`Jf3Qp$-c8OR&|7Bqh z^K{VhfC&~-v45Cu2&Th zgeA3=r&Q4Xp}||be>DO1$_2k{g?rGH*5!+P6pbDa^5(n{2SuCGc8Q=xzLw=S=fDG& zWwnoL|M(!zIJC>RN!o^kzi}5i%D%(f3z>twvsEN-F43^wqR zEpWqY`sh6XjtRT!H(wO#$-0W5?L-c>Oc1vD@=NS=ReRIbyZx}5ioD$pd#+P^9!%_K zA}?Dqw;`3^gjtcl23dK3_q&Eg8+}KxvLQjSg$NkH8^{{8eUv3m;N3p?dPw`U$(kd! zk~*2nk}DC+v#C=?)`B}s*TAf3tkLni5Th6GmgOCu#v;S>;Z!vgZCt4VeuwujU+__6 zc(;lhZ*UXFz`_)sIGmMdH$}vy+pwOl&iF%z&6naFHiVULUoy5D0B7`@ZG{ON>S14Y z0&JtS2u>NKr!~l?J5CF+L@3=+;%0`L$w-9|5v86IGrU4gX|hwzR17NsUTIP(DcBvM z+_ifIEXOF$X%sg*3Kly#gXm!l0RCWJNdV@PA~fVM|H&jsZXjzux8dE36k#A?r(h@! zWtJVezRac<)ftLq6s7xvdNRoTBSRm_ilBQL$I3!X;zD;~>yW$`J`zy=gO384)hOm1 zxWfd85kR^WB$+9N9&-$wf#)p1e#`c*??v2=p1R-X?n=I2{Ud7Go~f`#t6WoVsnBXo z@paA5G~>DT92^cJmkk~yK#cz&Y2?GX9lcC>%C59N^|jTzqLz}CEr7l9vcg^7r#?J( z>Nka&{>i^!zL;~_kJB-RLi65u$Ws<`v2u~$Q$BJTK*g|_1MQB}eySXs5mb9SKM!#? z;c8ssi6e_t#YDWy_u@FP#pU$%_|m%J)knHGJ!}``m7{ZgCQh$vwBjje5&I#8=-{Cv z!FNCa-UFmyDT1n;^=WywW&o(a3}*DNNvEShwq6bgBFmb@en%d=wP=A&ANmV!8kx79 z3N`#JcT@ldV|d8hSf}p8HKY0~Yot1{>#4vV;%QHzw5ed+w5r%M!)hJDfDwSM+wyTE znXXyI&otIEbYbC-+pLhRN68w-ZSwZf&#;M4`$Bo^$q9znOpDOddx4J0YB};hYcLuo zBVimjBVqUX=GtyWOSc5CwLlgsf4NOfdvIL-3bYG-(W`i&CE5jfup2F@O4B8Vqz9 z7whu4C_0OhcLy{1Fu>Ttf+kg&iC{e9oMP!m3p0LLVn~Oe8{_Y3uZfk4{3(=XQVUsl z%00-8g;lO)Se!2N57n3J#e+pJq|mPSaC;#O0bVOnz-#;Z@VUBBG@&=;6w z+aHMh1dSS7xMwzH`A}^WV-q|oWF_&L#Mph_GOXPxy-rT~i)tYDMC*H|4h;%|u1KsA zjP{v#7=n9bR1cS(-gao?&50RSQdCho98*oce(BQk`A&`0*W4KJFdUNa2^fSIzSi3G zdR#ib8?vuvc(VT-vr6xoyEv45jYK!oDB%BgcTyCpaz91L2vH+)XWgyiuvg1$K;?+e zZFonmUH-U<|4GhtIQWV#J@U7hhR9TBcFt?{uV*O*A}Il=j?v1xtj5Z9+66Y`5!B+k zlpM331s|anGtEiIb;Grhg|Ut#P?^1W(3#2l-WKDlI-E^+|BYX3{x2VA7f6})&A*={ z%#@`mAH9X?TfG=Eaf5krRky!e$Bqa%kz}k`pm?+)>z_<&I1D55V5hFd8mFI(Sn__L zQyjw=UTEz5+MZ%nVw98gH_zxa(3wehUSSL63&wpQ8mXz&NA1# z_aHSsHl!FU{dV}L7K1a68b0<+LgH)D+|U-1z61uxh~RFmRY5P_Cd00Otj<3aPn(D< zF;7%EocO5x=B3fTkW6ezw2F0XgBXIdM1;1jZJFZ!C<16_!~0^I)MZneiHSMh!!wt& z14U^3s)m*4dA%ET6H|E^1~_V43p+Fpn+yZ@xA&OA-^*bYYqAEhuch89Zi+LdTpLVS zYIcA{E#%zJ^aT&ks-lu#Oq;2DfUZ>&_Kwr+bsASHEnH*igquJTbO7e^Le#0J+POjb*}ER`H6dTS zm!}Pv^f5EPTSxu4WAmRrP1}h*@sLe9VE(QAk-o%@i_}I?u6X!SiX#)fi`6vGbk|Lt zO4fCp)eK7U#dUG^xP5dgTgF~%NF&PmyOxaNfJ~GX&mwfK-A2_6X9bWvKlc|~#G8OL zbo!ga??2JZa)*d;S#ADRiBShV%B9+Hhlv#r znF8(&r-P_{fAeq%XfU*x<3}$)>X;nl!?e7oZPYu{ z>q27)IoN$nT!NcMYCgf4-`-A`cp}9nVRbTc6!V}>qv%HVy^;;OTk}p(_}b+5x>(_C zj4vlI#HHadoTGs4#wNO{Ws`pe8h^m1SlYa732pSMM`JQQU&Zb|M_?~q+9_!{*ofyT zqn!Jycby2b{3F;3?P$@CydZD3Y$#C(UXS^6CPvZxSW@tFZecpvA(A}OR8}$Mt8xX7 zaIkQN;pnjTG4DX-nii#3uvE917FQHe61Ris`0tC`-8kRAIk(T}ZP7pX)xAGe4Y?6M z@&+T4Al#9TFMKYms*9H0GqBVqHFDJJLbw~u8ww%%2><(T_md58*r9wyM9gee7qaAs ziJ!fm%tHV6lGs(6c-BcyhMWREV~~LY*XmI>girA#j3)vjG(x5niVsA^o8uF4LI84(>@1L#K$fyAsp)enr696^b5@NlN(qu0>J#D^O z4_4`R5~P2j(*C;bh@SS_sNDSm+V3^Fl!<>A~H|D)Rz zpbpQq=O3d4hBp|1!I!LM2@FkBrmHOEfqMo`zdzB-rPH@oUwH(9dFhQgns<_F_g-gk zGi@S3#;wXcKbXvzaK3WjA1gs{0eeB;j2G63BM;if5YuzJ)dkFbdL>fq(h0W;ii z- zl`z;JG%ovfUBDds@a=IY>oEIQNCjbI*5e@OlzpQ2qlAO%-oX3tlh+R+YRVE5YI}-_ zF!My}ufrs2d(n*0RK_R4M28f@aUatk(7_RmXBvj9Th%>(*09jI!X{Yr=ptjRk{U!< z*;gN@+*mo#IFjlNFq!qk!vHPNp0`- zJ@n!IlN|osyl%I_zQqK_vjzRtt=b+dzBIM!&7B3~Rek303_dIjUy>=-P;F0+F?>_d zY_zi-*2Wm#9uoc{ot^9o(@Gz9(|yKm{rV4P%_^a~KWJXYuKVc9+TS$_LltU$om1Vz zNCa?FtU-&pVwqJT6l;_BfLOw9{ry3`vS0u9WLZNaMqxXywlC5a7}@C5t>{ye_b@`% z{`^d6(;F8?%4*7e1<)${^?DV`Dj~NI!+euP!x-!GK0LJWkMg}VcPz6Sgr}H%9$HKr zoBtkKtnAyFhBeqhh3BVzSd0AIf`28HQr?Fpyv-ap zd)Vj_x7lq2rdJ83)_s0N&;1I5wde+tB*IYf&HfwtHsV6CL4`7pIS7oZ)8+=ozV_C^YHv{P z1_nz%+2Du4NH%)j)*JR!ey8XO7XP2Ps}2NlJ{auB z|Bx5gi6hwge>}jPzbh2RpZG)a1~#`gTL_aL{STn}A0XZOCiy~{ru;7;FuebO{P+K(S^uXK z@tYv&aBD}UBiMuTe>_;mzs)CD#(yexsr|3x(3=VX?EeOI`44^gAL>DTU4AjYO??p` zTL|P?A7BU#=3S|#GyPM2-k)ko`tL?ZD(n+onCl!_aih278vy$%HIS0M^6r}R_Ee~t zz>;(#3N`fkEe@piJ!~xQcFk2zJ5eUc4hTPbIL4n?`Y@e zyJRMEgxgep$83NO zV%tALE^%w7!Yz2a(-qFiKym7R3^lYMdRVq@W3T~FLN16 z84OGN%@Hc;0(a^F&uSm|&wo1Mw9c?SHe`gZ_(Js5E6?4Y3)94RxJr_8(IzfeMbj)B z=c=T`tMHNI$pIM_Ge zX87fPL$K7x+J}e(cMEAdqj}4H}9|%s0DDZ^S zl1dXpkD+Uv(f2a+w?%I|UC`<`A7!{A(1{d+Nv#%$ic1$E>P@`w;Kl0!X^lPz-1Cjk zd%<)nT*@eyt)dNYAhfOS zQ?Xnm0U4L@>F7l+y3YJN!O3NI*&gZWV!=;aR+;VAqgS!4fp%}^naXz-cwi=p%+5OD zdFR@KVpL^>y_}Sz4xNK9E_PN@-Ln0G#CR(H&Y~lpX39Hncz`A@N;uSqs+x1TDq=60 z!XYq2dW<`_EZob((h!2f=c_V42d7JeWzruW1WPiiT>8n8n!*wlUroT7(MxYx{jM_@ zdEjNVwxS7dujLSZ(ob@=xn_?8P9nlKA!)-Y%mm)*g!X0P4N@s-p4B1NbzmCZY&co#>rBy=L zT{T{Wb1XIO59#BfoqvuBN@n)*M|n}&9(1*QUZR|AVFLnzKWWoSMwci*rC0G7=D?m1 z4xNljyxTK_Tk=kThDqhgr2$`rcl)Bes5X_K%eW$cmQ$UGzCY=tPhh>J!~lBsHp;6| zja!T)W7*@larn8neOc!oof}qsfYi0%+hw5oB(gz!t(FPQ8pL5w&Ec0{CpXTZ!|6f^ z4@A|*dT}1FANRTri9XTv#pY=q@>U2s1vA__2=Ght(D{#l6aA!@V9w-}U76gg#`9EYRj3;lTiDVyKPI~BR=st@+G^#LBZLfNLXB~H@VUs&Ip__$K0W{2}@^gFj*>R zKJn!`pyZ3!mxk2zGxbuVOk}p$@+ArL4q4MwhSN{Z<;by^c5_O0gX>s+wZC(NqAiXC zrqcckUo#|!Oc^?H8?r}k_|V6reA^K@^@F^9MCu<)qEJ~E z4VTp_+-x5ks^|TDv%%kZJGB=V!mC``j<}R6doDNHyx^L^W5Z9CcLePlIv4{$53InR zk;kVnj5*yCKOe%PnbcXmKrX7nhkYw<_v)mM%~Fxc_3hx5aR)84J^(pS`v9__H|cs7 z<*i=Wn@OfWXgEeIqAHGfF!=9ZcwA%ASL4uFErR**%q=BJ>v#OsYity-BfDurD|`R= z*d+U@2jF8UcGAyYSZ)z6^lUD1m{;n*fs#Y@CH~~O!%L}dj%xPA7_fnDM{IwcV4SQk zGxu%_KOJmTmS}VL`Zw)#=~c*M8x&_nSi*4Yzkc{uYfHg+;}NK=YuEEu?1Wwqt$}ln z!-88oEXHNiGl+P{{%?nQ)S2=Fit*UYE#43OD^m%_h2e+7H1B&Mvm}yHclUV#Hoq>H zfS1Dyj@Uo`+|%{6j0tFsR#&oz=c9enpelVx&@|Jx3n#bot!bdY9z zOK=n`%PpnmA$%N&b!3^p78d9F6k^T8h9Fllin`Tms_NhwZU1&88-^cRm~B~g0Z&B6 z6xOr%JC3uAUV?4^jN-d(h4$hyye|KKB_VmgZ#nHrw)-fzrD)=G%XzozDgJjipP(>_ z-tFW@lKq5$_sY7uEf2L(_JgrJyj<$j+*2qyLXnaPg%tf?tDy7)(ufa%VkQ65VwG)A z+UlAmROJ`E7CU_%om}`68~@%}LHCs1m7!P-_GPN{O=GAA$(;z*`R$UVZ|z6qLU#2K|4!W=8R0M}LLF#cg0NCQl&H zYc==Fjor<|MA8<%y$RhS?{KhuQZ26nNP@k#>O2lUYrB2dA<04+QeZU*ZnikY44>zI z9Q$$DbfN}T=4ZSLWQ9!a9w%DJLZ;$h+2UT=26qkbkO$AWpX#2{rE38r?akvY{;y&; zekL5@jgQ|FEKDJ)@vl>Hul-hoqs=>>ui;;R3|hY$zJvuoZg=)iTqgWT#1xWnh;;}9 z_v4$JPCTyBOK8P9q*w8Vb6evbgd8J&k>+yimlnK>5yT zzM2V^jO1zY;`J4(Q^M*CPyt^*Cy*$#2T{7D2&5GL8F(0$-cZCYJ^N zBJ(OtcSYq`@^M)Ipc-A8x;7zz#cZ|fD3o>OZDjge0y@G_y zYt*j5Z8M_odsgT5&bN_vq17{W)PG2=7|C;6&vr9avMF-6TbFJoU)MA1?k{UHMV`d} z%4wGx(gf{kww)gmSok@#{r+*tcW?;tMH?RV9=QoXL+P4*kb!ac$m$LgZ z$^_*?!;`w3eTWn8fwFrG_)5CDG8Bfyh2k#QEeDi@ZzS8q9cn;&F!b!$6^ali->loM zig*$24)@F-V%?oZ=@Ra?h@e2e5c5m|4#3YMccE;$dJZD4pj_a1GDp6Mcfae#1X96W z@Ot(|^&xL!cwR=-!38jOb99pcHIN=Gb~RBSxIIz2Z-6s!5A2?IyY5HZi1l!+(wkmU{9sU7s>9QyWuEYxEDU2 zUMwF>(OZ5E4PrrhcIS{`PT*pcK|}}+_!0re1%4U2M1;}o!Vn=mk5*uA1Qh5kwCNV}67o4WdEl!Gq{fVW2b?WMl|{4`Bv+ zzz-rrHh_av5NdG95DX52JERp=j07VGH^C1QKs3P?h%iBLb<~@b7vLZbq-{tV6Ed^w zVIV8;Sp(4!)g7<<<%DxdA?GF#_r!L&IMpfO1O|4V@ZN04_%?4vhh0f%=hcLyT$L&c8*iAgoNARk8mes5z6h_x-4=UD8mzGNV^N5xUh6!GG?eXhn$mO_%P zeAOq6tr`Rj(w=EodUC%NMwpH4ArBWd`D^jnd&%}nml{he!XnCW)=oy{9sSQVJFDIO|>_Dg-jT2i|5>LcjS(cH=Uhn5tAk>iDk z7E!;=6#M6AAaQ8G`VMgJtI&+0PmatMO1C?~wE1J$QLHZm8Mm4*p_gV`HKnk@6(^1a z@t|noWi>6cFMf76d-8ioCTDnHC;DJvQssf2iTY+z<$Xw&>~XhgW9>NU!>bqgHdm*mNj9kIjM(W1>Cddj+3RsCwd2sRok-1dJe6&<7;G>dy(An>g$YK}Z)i%M0l;jy>Tv^J}M z2*WJJeCL3?Xf!LTvRscH?}VQp64H*pEO^>CeoL)b7o>Q(y;s8b)JIX7z4gSnrh4?~ zW->)ITw}wdW3pf^aY+8H0Hj>`{$K1?nv3wt{WflHAKldNj(A}KVUXBN-~9y{d=byF zSKQ6*HvSdSHW;bv&EN1{QvtBsb@dAUt=9nd7)<*&dg=J$VBXVu;*A_=PE}d;5gD5S z2RU#t|A!;zg}2Qk5e&*xPi`81_`}Te=T66V;bMD{9V7z3(dDXsOCAz;*#dD*+L7~= zzsCP47Z^de*(a*&s7=^YrJ@zH$h)W%l6BCqG+vx9$qshs3ELDsj5TOFIkkrdu@rt| zxyAZ?E~*m$DQEKSfWz+L+8&QHGu5Oo?0a#|-v$*X@y`vTmD)NP`|Vm<=)P=PKL5tR!pUj5H{i8>0^aI_YwR=tFr>KMtH>KCl1uTq?{VqW|ImVd)=U zit`VDbOvz86w~W0`>iI(r>=){%T^+MOSw|GGFnr_FQ2BNzoLd-Va0fYT7s#MSp2jOWAT@r`-$jRemgc{oCJ=iN2$DV{(YvyCI^XFLPh=Ud) z8CljpX0|W_aDP0KqMFE0$3YwTw^M3T3IcF{VE~?5m@ht(frzko$Me{iJsqZ6c_>-ya2~}cg zX6uzUkx38v+)OUE#ZK^<@BS~>K+VkeXNJ?bC%be_N8h=BQl?i-W1F`p+WfU0YZA7d z5?ln*e*=`y>W&?sI;zNBC4ZT_M|T=-`>6Nv`7^W*9&0MaEfmkl;?@l$>4&H3R>eyc_w$mosrYa;J!upuUT~#T zDeMHcszcwbI`ALe+96G2{b45B&ALt+zs2N>s>mC7XP>~|E>2$JEqI^xO(=cBDkDXJLd)Fbe zeK|{60V{+Gj6ZmM`)T3vJ5p%#C69Pg%V`(X_H(POLf5ryWJ^}iysP-Iw!yH*{r7JX zP{LLxcS#4|7a;k7LkY&p2NAGXRW{b0;QnLfry6UC8s!le`6Am@*$Jk)`kRSsx2gko zfEb%(mx;z4YXwWGyv3*YdQlEj@k~RIr9TYTd$U!yLhuq7wBW_5-YfyuI|05*y`uB%2g)!3`^J?t3* zg8w3&GoYEEQ~$d-$O8#IIImctezSZ$O2<@H_g5k_zY8R~F8CCtE?A)mHi#NzdQ^%k z##3LSb!A>P^U+TJ`HXI^o=Jf&WpZOVV+<-J&x9S2PgnL6?`?NX<}wC`avlZZ0~gU6 z=>s`|m-zk3yM;(J^pE0Em+wBNvjkxRom46cG{M19T?AkLSpBFG!{RRW=Ys^Flg%arhD6ltQ!y=UG)eF7jO5;s{AkB)S- zc{%W0w{+0j0GRFzi?``pDCFsf#kgjysXM~sfhupYSgpCN#$0(V15>|$CBu-8))^OD z3l&@bT7AF$vo-T5Xo$>uqL~5RL~YeO^cPk|Ymx4$ogtsbp4Mg`2*IC_w&tP0E&e9Nd6%^@F=NJ;)t_N3CQ-}h##xC}L>imNX z7MJm`NkuTT;dZWzxUT9X-+dWmEL;auGG)N!Q@%{wZIH6l-g3|%{C0TXiVsx?>3`%eWOtEB`B*9$i>$cf70Mu z)deEb9-df&xY40myEjNXzRmX1e&#WCnc%w5JN9K(j?AvshcfzBZS<3gEd`CuV|X#l zibpaaGNhd)%0Ix_BNnlAO1FL8C$NgR5D_ehmD0zeYB4+l;~KXI+P{Wxtk?5mE69 z6u_QQN_eKSp2$Gzs4yfg#8u#I45b6EDctECwULG=Cy*W8o%Ye}zeiZO`?d~@HPj40 zX-dG{D$ofQ2-e&1(4t)vq@5&l%*scPC>jD7llcN^T#`)=-+lKQ;+&pVD95$Q@`}D5 zmgvNUHsT`s>}R^UJziJDE?p2+OZAe_z09<3=qrTx-h}1S0xetyEEiRb|MBy?Pe|oR zYUl=dlp3CfQDO5t>D%G#&VYLv7rfyuG)?9}79cWGD&4ADbMY=)gb!*X{UcRW7m*cv zZ@FXp0x(<_O!uEb5|830EVVahctni?&_6N(yU?M?wA0$3OP4?^NX4A~C9yW*NXmP{ zXyM8{N42UHb)NIk_TKL!Hk<4M?$Sj51xa9Al8`B5!WWGwX+L4OIlT+j6TGH(bNNWp zWk!8SR;)lBq?Q$y`f{XyH%s{a&h9_&(uThxWoMO)NezrfQ~MhJ4}32l00U4rL%&&_1F71JJ{jJqbS45n83DG$#xbAt~W)##*ui!xA0n zaS0>{cQ+$-BEv2$eNU4efobGnOZiwl>0nx7lP2IkI_B`IHMUURTgWmS+8}9TOxC^Yl`~ow z)6sX7d|7bGXlMi`{;I(WBgRd<7QTbbg{r75MafUqsTPOjEF0Wf=I)RuC%6Z?XO1#k zG=GBE_G?kgK9ngMS?o+{1W&&wRvDOq=n`h%R}r0BWJDh}o(Tn{`C1Ozy0;8?QwXih zn3F{uv}y=+caS=?@Pq^A~7Nkc>*o3_^kAy<^107loq53Hmv$adXT)W?G3l9EVJcE)Q)r z84t3^t@2=zaPKdYWd;cT{X=iBlKN|wl!3;ooLS1@S-Z=+nUbUyddRu z4y_wBH`e-a>OG?;{O(yBEo38M%O(^fTs5A`B8x5r5%wIt%ZUc$dcL6_Gi=6k5oRN` zYvJ(sW(L1{5kROVnQdrq?}!j%$rs+#HtYeUKMuI)^{NkWA*z-(x2W(TA1vL1g)IT} zAS)q#K#pLu=z&OQlT?vlONOXD4cbaaYa4QBMDq>OAB9zNFSArBie_y33&OO@Z(H2W z@WbKk&1$#Ia3P;e1InQSx5wE?Z*JUkOOJQ=ao)leqD2D?`$f#^)rQ&)tT38mV>=0U zCXi`u{1qs>4@@rpN6~eMaANj7sD{u(G8@0s(J;l#L-+&RC7wUo%MVHOwL*PiaCZou zJH9yIObe=8>c27Q`{rs8>y$ai;$+K8gb$m^+UQNl1ohm#eYA$e1+5Q-eTs4ETC*mn`(6%(7^#6fNtbs$n}CvN8g{2wJ+=t0{n$UseAU%3gnX4%AQfdk z!Kd$((@>7)a@j2qkC4B_gh3oJdz;aVJEb_Hh(lWtLLXXlkn8D1KbE0fUVK|6LExr_ z=hhymUsBYc#F9+Nhi&2lm(#EnbbMO|^!W#frMAUf8$n?A>xB0*QzB+9xs>#%xw&>I!s$h}jT7NTOA4e)kF&VkEj@Tz`wS8c@)eNq`9QKXy>1>5Di2 z7593XJ@pf$6=Me64k*&rbO4BdPa7cveF% z>AxKeGlFFAr4hux@#LHPKB?WmH;ThtlNb)Xv>4MQSw$G0B{U+jTJic43}d^;#ETyQ z5QTiSM2z`HJ4A;_8z#3;8X2+A+ z{rOt#dVk^oPoH+aa7)-Rp)<(7(^9i^+}-}y{~Grv1+vLo!`sDr-&;&pcaGi�ElL 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�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 z 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 a{}q&yEI7o!egXA;DtuStqs4b?0Qw)&FX=h} literal 0 HcmV?d00001 diff --git a/TLC-AUTH/packages/TLSharp.0.1.0.285/lib/net45/BigMath.dll b/TLC-AUTH/packages/TLSharp.0.1.0.285/lib/net45/BigMath.dll new file mode 100644 index 0000000000000000000000000000000000000000..38d658f55be9b117883e37cb36f2cc2a5930ce15 GIT binary patch literal 65024 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 Sc23dSZ8WO?_w)Z91^xqc-k#6^ literal 0 HcmV?d00001 diff --git a/TLC-AUTH/packages/TLSharp.0.1.0.285/lib/net45/TeleSharp.TL.dll b/TLC-AUTH/packages/TLSharp.0.1.0.285/lib/net45/TeleSharp.TL.dll new file mode 100644 index 0000000000000000000000000000000000000000..bf74f8649c304ad9a34e9d1b194ebd3c441ad707 GIT binary patch literal 541696 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 literal 0 HcmV?d00001

    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