úÎ!°žĨbą      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨͧĻĐŠŦŽ­ŪŊ ° SafeĐ binary-strictZThis is used for masking the last byte of a ByteString so that extra bits don't leak in binary-strict)Return a Word8 with the bottom n bits set binary-strict?Shift the whole ByteString some number of bits left where 0 <= n < 8 binary-strict@Shift the whole ByteString some number of bits right where 0 <= n < 8 binary-strictvTruncate a ByteString to a given number of bits (counting from the left) by masking out extra bits in the last byte binary-strictxTruncate a ByteString to a given number of bits (counting from the right) by masking out extra bits in the first byte Adam LangleyBSD3-style (see LICENSE)%Adam Langley <agl@imperialviolet.org> experimentalNone 124567=>?@ACDEFHJMNORSUVX,wą binary-stricthUsed as a flag argument to readN to control weather the resulting ByteString is left or right aligned binary-strictRun a BitGet on a ByteString binary-strictRun ga4, but return without consuming its input. Fails if ga fails.ē binary-strictŒSame as the standard splitAt, but in this version both parts share a byte so that splitting [1,2,3,4] at 2 results in ([1,2], [2, 3, 4]).ģ binary-strictmFetch some number of bits from the input and return them as a ByteString after applying the given function  binary-strictSkip n' bits of the input. Fails if less then n bits remain  binary-strict0Return the number of bits remaining to be parsed  binary-strict.Return true if there are no more bits to parse  binary-strictGet a single bit from the input  binary-strict=Get a ByteString with the given number of bits, left aligned. binary-strictAGet a ByteString with the given number of bits in, right aligned. binary-strict"Read a Word16 in big endian format binary-strict"Read a Word32 in big endian format binary-strict"Read a Word64 in big endian format binary-strict Reads an ī8, sign-extending the input if it has fewer than 8 bits. binary-strict Reads an ĩN in big endian format, sign-extending the input if it has fewer than 16 bits.  binary-strict Reads an ķN in big endian format, sign-extending the input if it has fewer than 32 bits.! binary-strict Reads an ·N in big endian format, sign-extending the input if it has fewer than 64 bits.  !   !-Lennart Kolmodin, Ross Paterson, Adam LangleyBSD3-style (see LICENSE)%Adam Langley <agl@imperialviolet.org> experimentalportable to Hugs and GHCNoneM°& binary-strictA &# is an efficient way to build lazy ļ1s. There are several functions for constructing &Xs, but only one to inspect them: to extract any data, you have to turn them into lazy ļs using -.Internally, a & constructs a lazy   … by filling byte arrays piece by piece. As each buffer is filled, it is 'popped' off, to become a new chunk of the resulting lazy ļ+. All this is hidden from the user of the &.[This is closely based on the Builder monad, but this one deals with single bits at a time.' binary-strictO(1).! The empty BitBuilder, satisfying - ' = đ( binary-strictO(1).- A BitBuilder taking a single bit, satisfying - (( b) = š b* binary-strictŦConstruct a BitBuilder by taking the bottom n bits of a Bits instance. If the instance has less than n bits, this acts as if there was an infinite zero filled prefix+ binary-strictO(1).O The concatenation of two BitBuilders, an associative operation with identity ' , satisfying - (+ x y) = ŧ (- x) (- y), binary-strictO(1). A BitBuilder taking a lazy ļ , satisfying - (, bs) = bs- binary-strictO(n). Extract a lazy ļ from a &P. The construction work takes place if and when the relevant part of the lazy ļ is demanded.. binary-strictO(1). Pop the žN we have constructed so far, if any, yielding a new chunk in the result lazy ļ.― binary-strict(The default size of a new chunk, in bitsū binary-strict&Sequence an IO operation on the bufferŋ binary-strict#Get the size of the buffer, in bitsĀ binary-strictEnsure that there are at least n many bits available.Á binary-strict Ensure that n' many bits are available, and then use f& to write some bytes into the memory. binary-strictŌCreate a new buffer of, at least, the given bit size. The current buffer is passed in. If it has a partial byte in progress, that byte is merged in. The given buffer must be in the form as produced by . &'()*+,-. &-'(+),*.Dominic SteinitzBSD3-style (see LICENSE)4Dominic Steinitz <dominic.steinitz@blueyonder.co.uk> experimentalNone=?@AZ@5 binary-strictAppend a single bit6 binary-strictūAppend the bottom n bits of the given bits value. In the case that more bits are requested than the value provides, this acts as if the value has as unlimited number of leading 0 bits.7 binary-strictxAppend a value. Note that this function is undefined for instances of Bits which have no fixed bitsize (like Integer)8 binary-strictAppend a ByteString9 binary-strictčAppend a left aligned ByteString where ByteString has a partial byte with the given number of valid bits, from the MSB downwards. The number of such bits must be 0..7. (A normal ByteString, which all bytes full would use 0) 23456789:;<=> 342:;<5=6>789Nonea*à binary-strict‘We don't import the usual array indexing function from the array modules. Instead, we implement it ourselves and remove the bounds checkingH binary-strict An empty setI binary-strictThe set contained all elementsJ binary-strictA set with a single elementÄ binary-strictA generic binary functionQ binary-strictGConstruct a ByteSet containing all the elements from a to b, inclusive. GHIJKLMNOPQR GHIJPQKLMNORSafee:T binary-strictÍThis is the generic class for the set of binary parsers. This lets you write parser functions which are agnostic about the pattern of parsing in which they get used (incremental, strict, bitwise etc)T]ZbYVilehkdgjcfaXWU\_`[^T]ZbYVilehkdgjcfaXWU\_`[^Lennart KolmodinBSD3-style (see LICENSE)%Adam Langley <agl@imperialviolet.org> experimentalportable to Hugs and GHC.None 124567=>?@ACDEFHJMNORSUVXy# Å binary-strictThe parse stateq binary-strict`Run a parser on the given input and return the result (either an error string from a call to fail>, or the parsing result) and the remainder of of the input.r binary-strict Skip ahead n bytes. Fails if fewer than n bytes are available.s binary-strictRun ga4, but return without consuming its input. Fails if ga fails.t binary-strictLike s, but consume the input if gma returns 'Just _'. Fails if gma fails.u binary-strictLike s, but consume the input if gea returns 'Right _'. Fails if gea fails.v binary-strict1Get the total number of bytes read to this point.w binary-stricteGet the number of remaining unparsed bytes. Useful for checking whether all input has been consumed.x binary-strictVTest whether all input has been consumed, i.e. there are no remaining unparsed bytes.y binary-strict An efficient Æ5 method for strict ByteStrings. Fails if fewer than n bytes are left in the input.Į binary-strictPull n. bytes from the input, as a strict ByteString.mnopqrstuvwxyz{|}~€‚ƒ„…†mqstuonprvwx€y{}z|~‚ƒ„…†Lennart KolmodinBSD3-style (see LICENSE)%Adam Langley <agl@imperialviolet.org> experimentalportable to Hugs and GHC.None 124567=>?@ACDEFHJMNORSUVX ÔČ binary-strictÉThis is the internal version of the above. This is the type which is actually used by the code, as it has the extra information needed for backtracking. This is converted to an external friendly Result4 type just before giving it to the outside world.Ž binary-strictThe result of a partial parse binary-strict-the parse failed with the given error message binary-strictethe parse finished and produced the given list of results doing so. Any unparsed data is returned.‘ binary-strictĻthe parse ran out of data before finishing, but produced the given list of results before doing so. To continue the parse pass more data to the given continuationÉ binary-strictThe parse stateĘ binary-strictAThis turns an internal Result into one safe for the outside worldË binary-strictJThis is the final continuation that turns a passed value into an IFinished’ binary-strict+Start a parser and return the first Result.Ė binary-strict<I'm not sure if this is a huge bodge or not. It probably is.When performing a choice (in plusĸ™), the failure depth in the current state is incremented. If a failure is generated inside the attempted path, the state carried in the IFailure will have this incremented failure depth. However, we don't want to backtrack after the attempted path has completed. Thus we insert this cut continuation, which decrements the failure count of any failure passing though, thus it would be caught in plus$ and doesn't trigger a backtrack.“ binary-strictļThis is the choice operator. If the first option fails, the second is tried. The failure of the first option must happen within this function otherwise rollback is not attempted.• binary-strict Skip ahead n bytes. Fails if fewer than n bytes are available.– binary-strict1Get the total number of bytes read to this point.— binary-stricteGet the number of remaining unparsed bytes. Useful for checking whether all input has been consumed.˜ binary-strictVTest whether all input has been consumed, i.e. there are no remaining unparsed bytes.™ binary-strict An efficient Í5 method for strict ByteStrings. Fails if fewer than n bytes are left in the input.š binary-strict!Yield a partial and get more dataÎ binary-strictPull n. bytes from the input, as a strict ByteString.Ž‘’“”•–—˜™š›œžŸ ĄĒĢĪĨĶŽ‘’•–—˜“”ĶšĄ™œž ›ŸĒĢĪĨ NoneĨNŊ binary-stricttConvert a strict ByteString to a lazy Char8 ByteString, where the format is the same as running hexdump -C on it.° binary-strictJPerforms the same operation as hexDumpString, but also writes it to stdoutŊ°Ŋ°Ï   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS3T4UVWXYZ[\]^_`abcdefg!h "#$%ijk`lmn_h !"#$%opqrstuviwxyzljk_h{ !"#$%`|}qrstuv ~ €‚ƒ„…ƒ„†ƒ„‡ƒ„ˆ‰Š‹‰Œ3‰Œ4‰Œ7‰‹Ž‘’“”•–—˜™–š›œ—˜,binary-strict-0.4.8.6-9B6movniG9W99nvm1cvdA5Data.Binary.Strict.BitUtilData.Binary.Strict.BitGetData.Binary.BitBuilderData.Binary.BitPutData.Binary.Strict.ByteSetData.Binary.Strict.ClassData.Binary.Strict.Get!Data.Binary.Strict.IncrementalGetData.Binary.Strict.UtilL BytestringtopNBits bottomNBits leftShift rightShiftleftTruncateBitsrightTruncateBitsBitGet runBitGet lookAheadskip remainingisEmptygetBitgetLeftByteStringgetRightByteString getWord16le getWord16be getWord32le getWord32be getWord64le getWord64begetWord8 getWordhost getWord16host getWord32host getWord64host getAsWord8 getAsWord16 getAsWord32 getAsWord64 getAsInt8 getAsInt16 getAsInt32 getAsInt64 $fMonadBitGet$fApplicativeBitGet$fFunctorBitGet$fShowDirection BitBuilderempty singletonfromByteStringfromBitsappendfromLazyByteStringtoLazyByteStringflush$fMonoidBitBuilder$fSemigroupBitBuilder$fShowBitBuilderBitPutTBitPutBitPutMputBitputNBitsputBits putByteStringputLeftByteString runBitPut runBitPutM runBitPutTputBitT putNBitsT$fMonadBitPutM$fApplicativeBitPutM$fFunctorBitPutM$fMonadErroreBitPutT$fMonadTransBitPutT$fMonadBitPutT$fApplicativeBitPutT$fFunctorBitPutTByteSetfullunion intersection difference complementtoListfromListrangemember $fShowByteSet BinaryParser bytesReadspanOfspanOf1stringword8oneOfmanymany1optional getByteStringGetpluszerorunGet lookAheadM lookAheadEgetFloat32hostgetFloat64host$fBinaryParserGet$fAlternativeGet$fApplicativeGet$fMonadPlusGet $fMonadGet $fFunctorGetResultFailedFinishedPartialsuspend $fShowResult $fShowIResult hexDumpStringhexDump DirectionsplitAtWithDupBytereadNbaseGHC.IntInt8Int16Int32Int64bytestring-0.10.8.2Data.ByteString.Lazy.Internal ByteStringData.ByteString.LazyData.ByteString.Internal defaultSize unsafeLiftIOwithSize ensureFreewriteN newBuffer!binarySgetgetBytesIResulttoplevelTranslateterminalContinuationcutContinuation