h$?@ABCDEFGHIJKLMNOP 2016@present Mark Karpov BSD 3 clause$Mark Karpov  experimentalportable Safe-Inferredzip Decode a Q containing CP 437 encoded text. 2016@present Mark Karpov BSD 3 clause$Mark Karpov  experimentalportable Safe-Inferred3 zip8The bad things that can happen when you use the library.zip9Thrown when you try to get contents of non-existing entryzip/Thrown when archive structure cannot be parsed.zip-The information about the archive as a whole.zip!The comment of the entire archivezip1Absolute offset of the start of central directoryzip$The size of central directory record zip"The supported compression methods. zipStore file uncompressed zipDeflate zip Compressed using BZip2 algorithm zip$Compressed using Zstandard algorithmzipThe information about archive entry that can be stored in a zip archive. It does not mirror local file header or central directory file header, but their binary representations can be built given this data structure and the archive contents.zipVersion made byzipVersion needed to extractzipCompression methodzipLast modification date and timezipCRC32 check sumzipSize of compressed entryzipSize of uncompressed entryzip$Absolute offset of local file headerzip Entry commentzipAll extra fields foundzipExternal file attributeszip"The problems you can have with an .zip! cannot be created from this pathzipThis data type serves for naming and selection of archive entries. It can be created only with the help of the smart constructor , and it's the only @key@ that can be used to refer to files in the archive or to name new archive entries.The abstraction is crucial for ensuring that created archives are portable across operating systems, file systems, and platforms. Since on some operating systems, file paths are case-insensitive, this selector is also case-insensitive. It makes sure that only relative paths are used to name files inside archive, as it's recommended in the specification. It also guarantees that forward slashes are used when the path is stored inside the archive for compatibility with Unix-like operating systems (as recommended in the specification). On the other hand, in can be rendered as an ordinary relative file path in OS-specific format when needed.zip Create an  from a R. To avoid problems with distribution of the archive, characters that some operating systems do not expect in paths are not allowed. Argument to  should pass these checks:.it is a relative path without slash at the endbinary representations of normalized path should be not longer than 65535 bytesThis function can throw an .zipRestore a relative path from . Every  corresponds to a R. zipGet an entry name in the from that is suitable for writing to file header, given an .    2016@present Mark Karpov BSD 3 clause$Mark Karpov  experimentalportable Safe-Inferred\!zip-Convert external attributes to the file info.toFileMode 21797928960o0755"zipConvert external attributes to the file info. The function assumes a regular file and keeps DOS attributes untouched.fromFileMode 0o0755 2179792896!"!" 2016@present Mark Karpov BSD 3 clause$Mark Karpov  experimentalportableNone#$SzipThe sum type describes all possible actions that can be performed on an archive.TzipAdd an entry given its SourceUzip9Copy an entry form another archive without re-compressionVzip+Change the name of the entry inside archiveWzipDelete an entry from archiveXzip)Change the compression method on an entryYzip&Set the comment for a particular entryZzip)Delete theh comment of a particular entry[zip/Set the modification time of a particular entry\zip)Add an extra field to the specified entry]zip,Delete an extra filed of the specified entry^zip&Set the comment for the entire archive_zip(Delete the comment of the entire archive`zip6Set an external file attribute for the specified entryazipScan the central directory of an archive and return its description ( as well as a collection of its entries.This operation may fail with:isAlreadyInUseError9 if the file is already open and cannot be reopened;isDoesNotExistError if the file does not exist;isPermissionError< if the user does not have permission to open the file; when specified archive is something this library cannot parse (this includes multi-disk archives, for example).Please note that entries with invalid (non-portable) file names may be missing in the list of entries. Files that are compressed with unsupported compression methods are skipped as well. Also, if several entries would collide on some operating systems (such as Windows, because of its case-insensitivity), only one of them will be available, because  is case-insensitive. These are the consequences of the design decision to make it impossible to create non-portable archives with this library.bzipGiven location of the archive and information about a specific archive entry  , return Source of its data. The actual data can be compressed or uncompressed depending on the third argument.czip Undertake all actions specified as the fourth argument of the function. This transforms the given pending actions so they can be performed in one pass, and then they are applied in the most efficient way.dzip(Determine the target entry of an action.ezipA sink that calculates the CRC32 check sum for an incoming stream.azipPath to archive to scanbzip'Path to archive that contains the entryzip/Information needed to extract entry of interestzip#Should we stream uncompressed data?zipSource of uncompressed dataczip*Location of archive file to edit or createzipArchive descriptionzipCurrent list of entireszipCollection of pending actionsSTUVWXYZ[\]^_`abcde 2016@present Mark Karpov BSD 3 clause$Mark Karpov  experimentalportableNone 9'#zip&The internal state record used by the $, monad. This is only exported for use with f methods, you can't look inside.$zipMonad that provides context necessary for performing operations on zip archives. It's intentionally opaque and not a monad transformer to limit the actions that can be performed in it to those provided by this module and their combinations.%zipCreate a new archive given its location and an action that describes how to create contents of the archive. This will silently overwrite the specified file if it already exists. See &/ if you want to work with an existing archive.&zip#Work with an existing archive. See %. if you want to create a new archive instead.This operation may fail with:isAlreadyInUseError9 if the file is already open and cannot be reopened;isDoesNotExistError if the file does not exist;isPermissionError< if the user does not have permission to open the file; when specified archive is something this library cannot parse (this includes multi-disk archives, for example).Please note that entries with invalid (non-portable) file names may be missing in the list of entries. Files that are compressed with unsupported compression methods are skipped as well. Also, if several entries would collide on some operating systems (such as Windows, because of its case-insensitivity), only one of them will be available, because  is case-insensitive. These are the consequences of the design decision to make it impossible to create non-portable archives with this library.'zipRetrieve a description of all archive entries. This is an efficient operation that can be used for example to list all entries in the archive. Do not hesitate to use the function frequently: scanning of the archive happens only once.Please note that the returned value only reflects the current contents of the archive in file system, non-committed actions are not reflected, see G for more information.(zipCheck whether the specified entry exists in the archive. This is a simple shortcut defined as: ,doesEntryExist s = M.member s <$> getEntries)zipGet > for a specified entry. This is a simple shortcut defined as: *getEntryDesc s = M.lookup s <$> getEntries*zip5Get contents of a specific archive entry as a strict Q. It's not recommended to use this on big entries, because it will suck out a lot of memory. For big entries, use conduits: ,.Throws: .+zipGet an entry source.Throws: .,zip1Stream contents of an archive entry to the given Sink.Throws: .-zip;Save a specific archive entry as a file in the file system.Throws: ..zipCalculate CRC32 check sum and compare it with the value read from the archive. The function returns g when the check sums are the same@that is, the data is not corrupted.Throws: ./zipUnpack the archive into the specified directory. The directory will be created if it does not exist.0zipGet the archive comment.1zip#Get the archive description record.2zipAdd a new entry to the archive given its contents in binary form.3zip:Stream data from the specified source to an archive entry.4zip Load an entry from a given file.5zipCopy an entry @as is@ from another zip archive. If the entry does not exist in that archive,  will be thrown.6zipAdd an directory to the archive. Please note that due to the design of the library, empty sub-directories will not be added.The action can throw .7zip The same as 6 but allows us to perform modifying actions on the created entities as we go.8zipRename an entry in the archive. If the entry does not exist, nothing will happen.9zipDelete an entry from the archive, if it does not exist, nothing will happen.:zipChange compression method of an entry, if it does not exist, nothing will happen.;zipSet an entry comment, if that entry does not exist, nothing will happen. Note that if binary representation of the comment is longer than 65535 bytes, it will be truncated on writing.<zipDelete an entry's comment, if that entry does not exist, nothing will happen.=zipSet the last modification date/time. The specified entry may be missing, in that case the action has no effect.>zipAdd an extra field. The specified entry may be missing, in that case this action has no effect.?zipDelete an extra field by its type (tag). The specified entry may be missing, in that case this action has no effect.@zipSet external file attributes. This function can be used to set file permissions. See also: Codec.Archive.Zip.Unix.Azip0Perform an action on every entry in the archive.Bzip&Set the comment of the entire archive.Czip-Delete the archive's comment if it's present.Dzip-Undo the changes to a specific archive entry.Ezip?Undo the changes to the archive as a whole (archive's comment).Fzip.Undo all changes made in this editing session.GzipArchive contents are not modified instantly, but instead changes are collected as @pending actions@ that should be committed, in order to efficiently modify the archive in one pass. The actions are committed automatically when the program leaves the $ monad (i.e. as part of % or &), or can be forced explicitly with the help of this function. Once committed, changes take place in the file system and cannot be undone.HzipIzip%zip&Location of the archive file to createzip)Actions that create the archive's content&zip$Location of the archive to work withzipActions on that archive*zip&Selector that identifies archive entryzipContents of the entry+zip&Selector that identifies archive entry,zip*Selector that identifies the archive entryzip#Sink where to stream entry contentszip Contents of the entry (if found)-zip*Selector that identifies the archive entryzipWhere to save the file.zip*Selector that identifies the archive entryzipIs the entry intact?2zipThe compression method to usezipEntry contentszipName of the entry to add3zipThe compression method to usezipSource of entry contentszipName of the entry to add4zipThe compression method to usezipName of the entry to addzipPath to the file to add5zip Path to the archive to copy fromzip1Name of the entry (in the source archive) to copyzip0Name of the entry to insert (in current archive)6zipThe compression method to usezipHow to get the ; from a path relative to the root of the directory we packzipPath to the directory to add7zipThe compression method to usezipHow to get the ; from a path relative to the root of the directory we packzip%How to modify an entry after creationzipPath to the directory to add8zipThe original entry namezipThe new entry name:zipThe new compression methodzip Name of the entry to re-compress;zipText of the commentzipName of the entry to comment on=zipNew modification timezipName of the entry to modify>zip)Tag (header id) of the extra field to addzipBody of the fieldzipName of the entry to modify?zip,Tag (header id) of the extra field to deletezipName of the entry to modify@zipExternal file attributeszipName of the entry to modifyAzipThe action to perform  #$%&'()*+,-./0123456789:;<=>?@ABCDEFG  $#%&'()*+,-./0123456789:;<=>?@ABCDEFG       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl3Nmnopqrstzip-1.7.2-inplaceCodec.Archive.Zip.CP437Codec.Archive.ZipCodec.Archive.Zip.UnixCodec.Archive.Zip.TypeSystem.FilePath.PosixisValidSystem.FilePath.WindowsCodec.Archive.Zip.Internal decodeCP437 ZipExceptionEntryDoesNotExist ParsingFailedArchiveDescription adComment adCDOffsetadCDSizeCompressionMethodStoreDeflateBZip2ZstdEntryDescriptionedVersionMadeByedVersionNeeded edCompression edModTimeedCRC32edCompressedSizeedUncompressedSizeedOffset edComment edExtraFieldedExternalFileAttrsEntrySelectorExceptionInvalidEntrySelector EntrySelectormkEntrySelectorunEntrySelector getEntryName toFileMode fromFileModeZipState ZipArchive createArchive withArchive getEntriesdoesEntryExist getEntryDescgetEntrygetEntrySource sourceEntry saveEntry checkEntry unpackIntogetArchiveCommentgetArchiveDescriptionaddEntry sinkEntry loadEntry copyEntry packDirRecur packDirRecur' renameEntry deleteEntry recompresssetEntryCommentdeleteEntryComment setModTime addExtraFielddeleteExtraFieldsetExternalFileAttrs forEntriessetArchiveCommentdeleteArchiveCommentundoEntryChangesundoArchiveChangesundoAllcommit$fMonadBaseControlIOZipArchive$fMonadBaseIOZipArchive$fFunctorZipArchive$fApplicativeZipArchive$fMonadZipArchive$fMonadIOZipArchive$fMonadThrowZipArchive$fMonadCatchZipArchive$fMonadMaskZipArchivebytestring-0.10.12.0Data.ByteString.Internal ByteStringbaseGHC.IOFilePath PendingAction SinkEntry CopyEntry RenameEntry DeleteEntry RecompressSetEntryCommentDeleteEntryComment SetModTime AddExtraFieldDeleteExtraFieldSetArchiveCommentDeleteArchiveCommentSetExternalFileAttributes scanArchive targetEntry crc32Sinkmonad-control-1.0.3.1-55a23652305b5994d8038b3923504bfafc2a38cb5a0b33def80586bebe71da34Control.Monad.Trans.ControlMonadBaseControlghc-prim GHC.TypesTrue