Îõ³h$C0@’      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘ None ÇÉ׌’None(./ÇɶNone#ÇÉ×åZ bytesliceA slice of unmanaged memory. byteslice A slice of a “.  byteslice A slice of a ”.   None%+Çì  bytesliceThe empty byte sequence. bytesliceThe empty pinned byte sequence. bytesliceThe empty pinned byte sequence. bytesliceëYields a pinned byte sequence whose contents are identical to those of the original byte sequence. If the  ByteArrayî backing the argument was already pinned, this simply aliases the argument and does not perform any copying. bytesliceConvert the sliced   to an unsliced ”,. This reuses the array backing the sliced  Ý if the slicing metadata implies that all of the bytes are used. Otherwise, it makes a copy. byteslice Variant of Ä that unconditionally makes a copy of the array backing the sliced  5 even if the original array could be reused. Prefer . bytesliceCopy the byte sequence into a mutable buffer. The buffer must have enough space to accomodate the byte sequence, but this this is not checked. bytesliceCreate a slice of  & that spans the entire argument array. bytesliceThe length of a slice of bytes. byteslice1Hash byte sequence with 32-bit variant of FNV-1a.  byteslice1Hash byte sequence with 64-bit variant of FNV-1a.! byteslice0Left fold over bytes, strict in the accumulator." bytesliceÛYields a pointer to the beginning of the byte sequence. It is only safe to call this on a   backed by a pinned  ByteArray.# bytesliceConvert the sliced   to an unsliced ”,. This reuses the array backing the sliced  ú if the slicing metadata implies that all of the bytes are used and they are already pinned. Otherwise, it makes a copy.$ byteslice Variant of #Ä that unconditionally makes a copy of the array backing the sliced  5 even if the original array could be reused. Prefer #.% bytesliceO(n) when unpinned, O(1) when pinned. Create a •Ï from a byte sequence. This only copies the byte sequence if it is not pinned.& bytesliceO(1)Á Precondition: bytes are pinned. Behavior is undefined otherwise. byteslice Destination bytesliceDestination Offset bytesliceSource !"#$%&Noneà' bytesliceÅTake bytes while the predicate is true, aliasing the argument array.( bytesliceÅDrop bytes while the predicate is true, aliasing the argument array.) bytesliceTake the first n& bytes from the argument, aliasing it.* bytesliceDrop the first n? bytes from the argument, aliasing it. The new length will be len - n.+ bytesliceCreate a slice of  that spans the entire argument array. This aliases the argument.'()*+'()*+None%+Çì2, bytesliceRead   directly from the specified –. The resulting  & are pinned. This is implemented with hGetBuf.- bytesliceOutputs   to the specified –. This is implemented with hPutBuf.,- None %+ÇÙìï . byteslice;Count the number of times the byte appears in the sequence./ byteslice Variant of 1; that returns an array of unsliced byte sequences. Unlike 1è, this is not a good producer for list fusion. (It does not return a list, so it could not be.) Prefer 1Ð if the result is going to be consumed exactly once by a good consumer. Prefer /Ý if the result of the split is going to be around for a while and inspected multiple times.0 byteslice Variant of /& that drops the trailing element. See 4/ for an explanation of why this may be useful.1 bytesliceÂBreak a byte sequence into pieces separated by the byte argument, consuming the delimiter. This function is a good producer for list fusion. It is common to immidiately consume the results of split with foldl',  traverse_, foldlM5, and being a good producer helps in this situation.4Note: this function differs from its counterpart in  bytestringÞ. If the byte sequence is empty, this returns a singleton list with the empty byte sequence.2 byteslice Variant of 17 that intended for use with stream fusion rather than build-foldr fusion.3 byteslice Variant of 1 that returns the result as a — instead of []*. This is also eligible for stream fusion.4 byteslice Variant of 1À that drops the trailing element. This behaves correctly even if the byte sequence is empty. This is a good producer for list fusion. This is useful when splitting a text file into lines.  Óhttps://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap03.html#tag_03_392POSIXË mandates that text files end with a newline, so the list resulting from 1> always has an empty byte sequence as its last element. With 4%, that unwanted element is discarded.5 bytesliceöSplit a byte sequence on the first occurrence of the target byte. The target is removed from the result. For example:split1 0xA [0x1,0x2,0xA,0xB]Just ([0x1,0x2],[0xB])6 bytesliceƒSplit a byte sequence on the first and second occurrences of the target byte. The target is removed from the result. For example:(split2 0xA [0x1,0x2,0xA,0xB,0xA,0xA,0xA] Just ([0x1,0x2],[0xB],[0xA,0xA])7 byteslice‹Split a byte sequence on the first, second, and third occurrences of the target byte. The target is removed from the result. For example:(split3 0xA [0x1,0x2,0xA,0xB,0xA,0xA,0xA]Just ([0x1,0x2],[0xB],[],[0xA])8 byteslice“Split a byte sequence on the first, second, third, and fourth occurrences of the target byte. The target is removed from the result. For example:(split4 0xA [0x1,0x2,0xA,0xB,0xA,0xA,0xA]Just ([0x1,0x2],[0xB],[],[],[])9 bytesliceõSplit a byte sequence on the last occurrence of the target byte. The target is removed from the result. For example:$split1 0xA [0x1,0x2,0xA,0xB,0xA,0xC]Just ([0x1,0x2,0xA,0xB],[0xC]) ./0123456789None#%<ÇÉÔ×Ùåì#º: bytesliceA cons-list of byte sequences.= byteslice2Are there any bytes in the chunked byte sequences?> byteslice Variant of @À that ensure that the resulting byte sequence is pinned memory.? byteslice,Concatenate chunks into a strict bytestring.@ byteslice:Concatenate chunks into a single contiguous byte sequence.A byteslice Variant of @( that returns an unsliced byte sequence.B byteslice Variant of >/ that returns an unsliced pinned byte sequence.C byteslice,The total number of bytes in all the chunks.D byteslice˜Copy the contents of the chunks into a mutable array. Precondition: The destination must have enough space to house the contents. This is not checked.E byteslice3Reverse chunks but not the bytes within each chunk.F byteslice Variant of Eì that allows the caller to provide an initial list of chunks that the reversed chunks will be pushed onto.G byteslice5Read a handle's entire contents strictly into chunks.H bytesliceƒRead an entire file strictly into chunks. If reading from a regular file, this makes an effort read the file into a single chunk.I byteslice,Create a list of chunks with a single chunk.J byteslice Variant of I$ where the single chunk is unsliced.K bytesliceÂLeft fold over all bytes in the chunks, strict in the accumulator.L byteslice1Hash byte sequence with 32-bit variant of FNV-1a.M byteslice1Hash byte sequence with 64-bit variant of FNV-1a.N bytesliceOutputs : to the specified –. This is implemented with hPutBuf.O bytesliceWrite :9 to a file, replacing the previous contents of the file.P bytesliceÿBreak chunks of bytes into contiguous pieces separated by the byte argument. This is a good producer for list fusion. For this function to perform well, each chunk should contain multiple separators. Any piece that spans multiple chunks must be copied.Q byteslice This uses concat to form an equivalence class.D byteslice Destination bytesliceDestination offset bytesliceSource byteslice=Returns the next index into the destination after the payload:;<=>?@ABCDEFGHIJKLMNOP:;AB?EFKPLMIJDGHNONone #%+ÇÔÙåì? =U bytesliceIs the byte sequence empty?V byteslice!Extract the head and tail of the   , returning ˜ if it is empty.W byteslice Extract the init and last of the   , returning ˜ if it is empty.X byteslice×Does the byte sequence begin with the given byte? False if the byte sequence is empty.Y bytesliceÕDoes the byte sequence end with the given byte? False if the byte sequence is empty.Z byteslice6Is the first argument a prefix of the second argument?[ byteslice6Is the first argument a suffix of the second argument?\ byteslice ?@ABCDEFGH$"IJKLM#'%&3N7OPQRCSTUVWXYZ[\]^_`abcdef-.ghi/0jklmnopqrstuvwxyz{|}~€L‚ƒ„…†‡ˆ‰Š‹Œ‹ŒŽ‘’“”’•–’—˜’•™š›œ(byteslice-0.2.5.2-1V0KyiuYSnO13gxwnsk8wZData.Bytes.Types Data.BytesData.Bytes.MutableData.Bytes.ChunksCstrlen UnliftedBytesData.Bytes.Pure Data.Bytes.IOData.Bytes.ByteBytes#UnmanagedBytes$sel:address:UnmanagedBytes$sel:length:UnmanagedBytes MutableBytes$sel:array:MutableBytes$sel:offset:MutableBytes$sel:length:MutableBytesBytes$sel:array:Bytes$sel:offset:Bytes$sel:length:Bytes $fMonoidBytes$fSemigroupBytes $fOrdBytes $fEqBytes $fShowBytes $fIsListBytesempty emptyPinned emptyPinnedUpin toByteArraytoByteArrayClone unsafeCopy fromByteArraylengthfnv1a32fnv1a64foldl'contentstoPinnedByteArraytoPinnedByteArrayClone toByteStringpinnedToByteString takeWhile dropWhile unsafeTake unsafeDropfromMutableByteArrayhGethPutcountsplitU splitInitUsplit splitStream splitNonEmpty splitInitsplit1split2split3split4 splitEnd1Chunks ChunksCons ChunksNilnull concatPinnedconcatByteStringconcatconcatU concatPinnedUreverse reverseOnto hGetContentsreadFile fromBytes writeFile $fEqChunks$fMonoidChunks$fSemigroupChunks $fShowChunksunconsunsnocisBytePrefixOfisByteSuffixOf isPrefixOf isSuffixOflongestCommonPrefix singleton doubleton tripleton singletonU doubletonU tripletonU replicate replicateU stripPrefixstripOptionalPrefix stripSuffixstripOptionalSuffixelem unsafeIndex dropWhileEnd takeWhileEndfoldlfoldrifoldl'foldr'fromAsciiStringfromLatinString toLatinString fromCString# equalsLatin1 equalsLatin2 equalsLatin3 equalsLatin4 equalsLatin5 equalsLatin6 equalsLatin7 equalsLatin8 equalsLatin9 equalsLatin10 equalsLatin11 equalsLatin12 equalsCStringstripCStringPrefixtouch intercalateintercalateByte2anyalltoShortByteStringtoShortByteStringClonefromShortByteStringtoLowerAsciiByteArrayClonefromByteStringcstringLength#'primitive-0.7.1.0-Jxsyd70oUttYiCXCa0HqVData.Primitive.ByteArrayMutableByteArray ByteArraybytestring-0.10.10.0Data.ByteString.Internal ByteStringbaseGHC.IO.Handle.TypesHandleGHC.BaseNonEmpty GHC.MaybeNothingStringData.ByteString.Short.InternalShortByteString