h*      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                         5.1.16  Safe-Inferred 1   Safe-Inferred x  Safe-Inferred" http2Encoding integer with a temporary buffer whose size is 4096. No prefix is set. BS.unpack <$> encodeInteger 5 10[10]"BS.unpack <$> encodeInteger 5 1337 [31,154,10] BS.unpack <$> encodeInteger 8 42[42] http2%Integer encoding with a write buffer. http24Integer decoding. The first argument is N of prefix.decodeInteger 5 10 $ BS.empty10%decodeInteger 5 31 $ BS.pack [154,10]1337decodeInteger 8 42 $ BS.empty42 http2Integer decoding with a read buffer. The first argument is N of prefix. http2N+http2Target http2Setting prefixhttp2N+http2Target http2N+http2;The head of encoded integer whose prefix is already droppedhttp2The tail of encoded integer http2N+http2;The head of encoded integer whose prefix is already dropped  Safe-Inferredhttp2 Bit stream.http2Data type for Bit.http2Zerohttp2Onehttp2From  of length 8 to .fromBits [T,F,T,F,T,F,T,F]170fromBits [F,T,F,T,F,T,F,T]85 Safe-Inferredhttp2&let bs = BS.pack [0x12,0x34,0xf3,0xab]unpack4bits bs[1,2,3,4,15,3,10,11]unpack4bits $ BS.tail bs[3,4,15,3,10,11] Safe-Inferred Safe-Inferred  Safe-Inferred%&http2Huffman encoding.http2Is this token ix for a header not defined in the static table?ihttp2;Is this token for a header not defined in the static table?jhttp2!Making a token from a header key.&toToken ":authority" == tokenAuthorityTrue toToken "foo"Token {tokenIx = 73, shouldBeIndexed = True, isPseudo = False, tokenKey = "foo"}toToken ":bar"Token {tokenIx = 73, shouldBeIndexed = True, isPseudo = True, tokenKey = ":bar"}jbcdegfhi !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMaNOPQRSTUVWXYZ[\]^_`jbcdegfhi !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMaNOPQRSTUVWXYZ[\]^_` Safe-Inferred7mhttp2Errors for decoder.nhttp2Index is out of rangeohttp2+Eos appears in the middle of huffman stringphttp2,Non-eos appears in the end of huffman stringqhttp2)Eos of huffman string is more than 7 bitsrhttp2.A peer set the dynamic table size less than 32shttp2Type for table entry. Size includes the 32 bytes magic number.http2Size in bytes.http2From  to .http2Getting the size of .http2Getting .http2Getting .http2Getting .http2Getting .http2Dummy  to initialize a dynamic table.http22How many entries can be stored in a dynamic table? Safe-Inferred"!)http2The size of static table.http2Get  from the static table.toStaticEntry 1Entry 42 (Token {tokenIx = 0, shouldBeIndexed = True, isPseudo = True, tokenKey = ":authority"}) ""toStaticEntry 8Entry 42 (Token {tokenIx = 4, shouldBeIndexed = True, isPseudo = True, tokenKey = ":status"}) "200"toStaticEntry 50Entry 37 (Token {tokenIx = 40, shouldBeIndexed = True, isPseudo = False, tokenKey = "Range"}) ""http2Pre-defined static table. Safe-Inferred"%&!^ Safe-Inferred""http2Huffman decoding.http2Huffman decoding.http2-Low devel Huffman decoding in a write buffer.http2>> testEndStream 0x1 Truehttp27Checking if the ACK flag is set. >>> testAck 0x1 Truehttp2(Checking if the END_HEADERS flag is set.testEndHeader 0x4Truehttp2#Checking if the PADDED flag is set.testPadded 0x8Truehttp2%Checking if the PRIORITY flag is set.testPriority 0x20Truehttp2Setting the END_STREAM flag.setEndStream 01http2Setting the ACK flag.setAck 01http2Setting the END_HEADERS flag.setEndHeader 04http2Setting the PADDED flag. setPadded 08http2Setting the PRIORITY flag. setPriority 032http2.Checking if the stream identifier for control. isControl 0True isControl 1Falsehttp23Checking if the stream identifier is from a client.isClientInitiated 0FalseisClientInitiated 1Truehttp23Checking if the stream identifier is from a server.isServerInitiated 0FalseisServerInitiated 2Truehttp2&Checking if the exclusive flag is set.http2Setting the exclusive flag.http2Clearing the exclusive flag.http2Getting  from .*framePayloadToFrameType (DataFrame "body") FrameDatahttp22Checking if padding is defined in this frame type.isPaddingDefined $ DataFrame ""TrueisPaddingDefined $ PingFrame ""False  Safe-Inferred%&K| http2)Auxiliary information for frame encoding.http2!Flags to be set in a frame headerhttp2%Stream id to be set in a frame headerhttp2Padding if any. In the case where this value is set but the priority flag is not set, this value gets preference over the priority flag. So, if this value is set, the priority flag is also set.http2A smart builder of .encodeInfo setAck 0EncodeInfo {encodeFlags = 1, encodeStreamId = 0, encodePadding = Nothing}http2Encoding an HTTP/2 frame to . This function is not efficient enough for high performace program because of the concatenation of .0encodeFrame (encodeInfo id 1) (DataFrame "body")*"\NUL\NUL\EOT\NUL\NUL\NUL\NUL\NUL\SOHbody"http2Encoding an HTTP/2 frame to [$]. This is suitable for sendMany.http2Encoding an HTTP/2 frame header. The frame header must be completed.http2Writing an encoded HTTP/2 frame header to the buffer. The length of the buffer must be larger than or equal to 9 bytes.http2Encoding an HTTP/2 frame payload. This returns a complete frame header and chunks of payload.http2stream identifierhttp2Payload length. ! Safe-Inferred"%&'Qhttp2#The type for frame payload decoder.http2Decoding an HTTP/2 frame to . The second argument must be include the entire of frame. So, this function is not useful for real applications but useful for testing.http28Decoding an HTTP/2 frame header. Must supply 9 bytes.http26Checking a frame header and reporting an error if any.2checkFrameHeader (FrameData,(FrameHeader 100 0 0))Left (FrameDecodeError ProtocolError 0 "cannot used in control stream")http2Decoding an HTTP/2 frame payload. This function is considered to return a frame payload decoder according to a frame type.http2%Frame payload decoder for DATA frame.http2(Frame payload decoder for HEADERS frame.http2)Frame payload decoder for PRIORITY frame.http2+Frame payload decoder for RST_STREAM frame.http2)Frame payload decoder for SETTINGS frame.http2-Frame payload decoder for PUSH_PROMISE frame.http2%Frame payload decoder for PING frame.http2'Frame payload decoder for GOAWAY frame.http2.Frame payload decoder for WINDOW_UPDATE frame.http2-Frame payload decoder for CONTINUATION frame.http2Helper function to pull off the padding if its there, and will eat up the trailing padding automatically. Calls the decoder func passed in with the length of the unpadded portion between the padding octet and the actual paddinghttp2Input byte-streamhttp2 Decoded frame Safe-Inferred"R}http2The preface of HTTP/2.connectionPreface""PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"http2Length of the preface.connectionPrefaceLength24" Safe-InferredU# Safe-InferredW http2&Making a position read and its closer.http2Manipulating a file resource.http2Closing a file resource. Its refresher is automatiaclly generated by the internal timer.http2Refreshing a file resource while reading. Closing the file must be done by its own timer or something.http2Position read for files.http2How many bytes to readhttp2Offset for file.http2Position read based on .$ Safe-Inferred\ http2+Manager to manage the thread and the timer.http2$Action to be spawned by the manager.http2Starting a thread manager. Its action is initially set to 'return ()' and should be set by . This allows that the action can include the manager itself.http2!Setting the action to be spawned.http2Stopping the manager.http2Spawning the action.http2Fork managed threadThis guarantees that the thread ID is added to the manager's queue before the thread starts, and is removed again when the thread terminates (normally or abnormally).http2Like ', but run action with exceptions maskedhttp28Adding my thread id to the kill-thread list on stopping.(This is not part of the public API; see  instead.http2 Maybe ByteString -> IO NextTrailersMaker trailersMaker ctx Nothing = return $ Trailers [("X-SHA1", sha1)] where !sha1 = C8.pack $ show $ CH.hashFinalize ctx trailersMaker ctx (Just bs) = return $ NextTrailersMaker $ trailersMaker ctx' where !ctx' = CH.hashUpdate ctx bsUsage example: let h2rsp = responseFile ... maker = trailersMaker (CH.hashInit :: Context SHA1) h2rsp' = setResponseTrailersMaker h2rsp makerhttp2 Output objecthttp2Accessor for header.http2Accessor for outObj body.http2Accessor for trailers maker.http2 Input objecthttp2Accessor for headers.http26Accessor for body length specified in content-length:.http2Accessor for body.http2Accessor for trailers.http27Streaming body takes a write action and a flush action.http2Like *, but with a callback to unmask expectionsThis is used in the client: we spawn the new thread for the request body with exceptions masked, and provide the body of  with a callback to unmask them again (typically after installing an exception handler).We do NOT support this in the server, as here the scope of the thread that is spawned for the server is the entire handler, not just the response streaming body.TODO: The analogous change for the server-side would be to provide a similar unmask' callback as the first argument in the Server type alias.http2Path.http2 Authority.http2"http" or "https".http2#TrailersMake to create no trailers.http2 Checking  and reporting an error if any.*checkSettingsList [(SettingsEnablePush,2)]Just (ConnectionErrorIsSent ProtocolError 0 "enable push must be 0 or 1")) Safe-Inferred%&n* Safe-Inferred%&'o* + Safe-Inferred%&ok, Safe-Inferred"%&'phttp2"The context for HTTP/2 connection.http2RFC 9113 says "Other frames (from any stream) MUST NOT occur between the HEADERS frame and any CONTINUATION frames that might follow". This field is used to implement this requirement.<- Safe-Inferred"%&qD. Safe-Inferredr-http2Making simple configuration whose IO is not efficient. A write buffer is allocated internally.http26Deallocating the resource of the simple configuration./ Safe-Inferred%&'r_ 0 Safe-Inferred"%&'rhttp2Running trailers-maker. *bufferIO buf siz $ \bs -> tlrmkr (Just bs)1 Safe-Inferred"%&'sThttp2Type for input streaming.2 Safe-Inferreds3 Safe-Inferredvhttp2Additional information.http21How many streams can be created without blocking.http2Response from server.http2Request from client.http2 Client type.4 Safe-Inferred"%&'{ http2Client configurationhttp2 https or httphttp2 Server namehttp21The maximum number of incoming streams on the nethttp2The window size of connection.http2Settingshttp2The default client config.The  authority% field will be used to set the HTTP2  :authority pseudo-header. In most cases you will want to override it to be equal to host.Further background on  authority:  9https://datatracker.ietf.org/doc/html/rfc3986#section-3.2RFC 3986 also allows  host:port, and most servers will accept this too. However, when using TLS, many servers will expect the TLS SNI server name and the  :authority pseudo-header to be equal, and for TLS SNI the server name should not include the port. Note that HTTP2 explicitly  disallows using  userinfo@ as part of the authority.defaultClientConfigClientConfig {scheme = "http", authority = "localhost", cacheLimit = 64, connectionWindowSize = 1048576, settings = Settings {headerTableSize = 4096, enablePush = True, maxConcurrentStreams = Just 64, initialWindowSize = 262144, maxFrameSize = 16384, maxHeaderListSize = Nothing}}http2Running HTTP/2 client.http2"Launching a receiver and a sender. Safe-Inferred|,   Safe-Inferred"R http2Creating request without body.http2Creating request with file.http2Creating request with builder.http2 Creating request with streaming.http2Like +, but run the action with exceptions maskedhttp2Setting  to .http2!Getting the status of a response.http2$Getting the headers from a response.http2&Getting the body size from a response.http22Reading a chunk of the response body. An empty  returned when finished.http2Reading response trailers. This function must be called after  returns an empty. Safe-Inferred??5 Safe-Inferred http2Additional information.http2Time handle for the worker processing this request and response.http2!Local socket address copied from .http2"Remove socket address copied from .http2HTTP/2 push promise or sever push. Pseudo REQUEST headers in push promise is automatically generated. Then, a server push is sent according to .http2Accessor for a URL path in a push promise (a virtual request from a server). E.g. "/style/default.css".http24Accessor for response actually pushed from a server.http2Response from server.http2Request from client.http2Server type. Server takes a HTTP request, should generate a HTTP response and push promises, then should give them to the sending function. The sending function would throw exceptions so that they can be logged.6 Safe-Inferred"%&'http2The type for cleaning up.http26This function is passed to workers. They also pass s from a server to this function. This function enqueues commands for the HTTP/2 sender.http2Worker for server applications.  7 Safe-Inferred"%&'jhttp2Server configurationhttp2The number of workershttp2#The window size of incoming streamshttp2Settingshttp2The default server config.defaultServerConfigServerConfig {numberOfWorkers = 8, connectionWindowSize = 1048576, settings = Settings {headerTableSize = 4096, enablePush = True, maxConcurrentStreams = Just 64, initialWindowSize = 262144, maxFrameSize = 16384, maxHeaderListSize = Nothing}}http2Running HTTP/2 server.http2Launching a receiver and a sender without workers. Any frames can be sent with .   Safe-Inferred  Safe-Inferred"http2"Getting the method from a request.http2 Getting the path from a request.http2%Getting the authority from a request.http2"Getting the scheme from a request.http2#Getting the headers from a request.http2%Getting the body size from a request.http21Reading a chunk of the request body. An empty  returned when finished.http2Reading request trailers. This function must be called after  returns an empty.http2Creating response without body.http2Creating response with file.http2Creating response with builder.http2!Creating response with streaming.http2Getter for response body size. This value is available for file body.http2Setting  to .http2Creating push promise. The third argument is traditional, not used. 89:89;89<=>?@AB@AB@AC@ADEFG H I J K LMNOOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~           !!!!!!!!!!!!!!!!!########$$$$$$$$$$$$$$$%&&&&&&&&&(((((((((((((((((((((((((((((((((((((((((((((((((((((((((..000033333333444444444444444444555555555555577777777777777                      !"""""$$&&&&&''(((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))**********+++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------// / / / / / / / 0 1 1 4 4 4 4 4 4 56 6 6 6 6 666 6 6 6 6 6 77 7 7 7 !http2-5.1.1-Ys2YuXjlM85OkKoHKf1Re Network.HPACKNetwork.HTTP2.ClientNetwork.HTTP2.FrameNetwork.HPACK.InternalNetwork.HPACK.TokenNetwork.HTTP2.InternalNetwork.HTTP2.Client.InternalNetwork.HTTP2.Server.InternalNetwork.HTTP2.Serverhttp2ImportsNetwork.HPACK.Builder!Network.HPACK.HeaderBlock.IntegerNetwork.HPACK.Huffman.Bit Network.HPACK.Huffman.ByteStringNetwork.HPACK.Huffman.ParamsNetwork.HPACK.Huffman.TableNetwork.HPACK.Huffman.EncodeNetwork.HPACK.Huffman.TreeNetwork.HPACK.TypesNetwork.HPACK.Table.EntryNetwork.HPACK.Table.StaticNetwork.HPACK.Table.RevIndexNetwork.HPACK.Huffman.DecodeNetwork.HPACK.HuffmanNetwork.HPACK.Table.DynamicNetwork.HPACK.Table Network.HPACK.HeaderBlock.Encode Network.HPACK.HeaderBlock.DecodeNetwork.HPACK.HeaderBlockNetwork.HTTP2.Frame.TypesNetwork.HTTP2.Frame.EncodeNetwork.HTTP2.Frame.DecodeNetwork.HTTP2.H2.EncodeFrameNetwork.HTTP2.H2.FileNetwork.HTTP2.H2.ManagerNetwork.HTTP2.H2.ReadNNetwork.HTTP2.H2.SettingsNetwork.HTTP2.H2.StatusNetwork.HTTP2.H2.TypesNetwork.HTTP2.H2.StreamTableNetwork.HTTP2.H2.StreamNetwork.HTTP2.H2.QueueNetwork.HTTP2.H2.ContextNetwork.HTTP2.H2.HPACKNetwork.HTTP2.H2.ConfigNetwork.HTTP2.H2.WindowNetwork.HTTP2.H2.SenderNetwork.HTTP2.H2.ReceiverNetwork.HTTP2.H2Network.HTTP2.Client.TypesNetwork.HTTP2.Client.RunNetwork.HTTP2.Server.TypesNetwork.HTTP2.Server.WorkerNetwork.HTTP2.Server.Run/case-insensitive-1.2.1.0-4lVnzYNxRtT855pNvaIS2wData.CaseInsensitive.Internaloriginal foldedCasemk'http-types-0.12.4-7ravU9ZeEhYD9G3h69uf3Network.HTTP.Types.MethodMethod/network-byte-order-0.1.7-183l24JU6xQ9NGdCLjd3gUNetwork.ByteOrder BufferOverrun BufferSizeBuffer,network-control-0.0.2-3rarvJsQYHGHy7qcFPOdmLNetwork.Control.Flow WindowSizeGCBuffer encodeIntegerencodeI decodeIntegerdecodeIencodeH encodeHuffmanTokentokenIxshouldBeIndexedisPseudotokenKey tokenCIKeytokenFoldedKeytokenAuthority tokenMethod tokenPath tokenScheme tokenStatustokenAcceptCharsettokenAcceptEncodingtokenAcceptLanguagetokenAcceptRanges tokenAccepttokenAccessControlAllowOrigintokenAge tokenAllowtokenAuthorizationtokenCacheControltokenContentDispositiontokenContentEncodingtokenContentLanguagetokenContentLengthtokenContentLocationtokenContentRangetokenContentType tokenCookie tokenDate tokenEtag tokenExpect tokenExpires tokenFrom tokenHost tokenIfMatchtokenIfModifiedSincetokenIfNoneMatch tokenIfRangetokenIfUnmodifiedSincetokenLastModified tokenLink tokenLocationtokenMaxForwardstokenProxyAuthenticatetokenProxyAuthorization tokenRange tokenReferer tokenRefreshtokenRetryAfter tokenServertokenSetCookietokenStrictTransportSecuritytokenTransferEncodingtokenUserAgent tokenVarytokenViatokenWwwAuthenticatetokenConnectiontokenTE"tokenAccessControlAllowCredentialstokenAccessControlAllowHeaderstokenAccessControlAllowMethodstokenAccessControlExposeHeaders tokenAccessControlRequestHeaderstokenAccessControlRequestMethod tokenAltSvctokenContentSecurityPolicytokenEarlyData tokenExpectCttokenForwarded tokenOrigin tokenPurposetokenTimingAllowOrigintokenUpgradeInsecureRequeststokenXContentTypeOptionstokenXForwardedFortokenXFrameOptionstokenXXssProtectiontokenMax minTokenIxmaxStaticTokenIx maxTokenIx cookieTokenIxisCookieTokenIx isMaxTokenIxisStaticTokenIx isStaticTokentoToken $fEqToken $fShowToken DecodeError IndexOverrunEosInTheMiddle IllegalEos TooLongEosTooSmallTableSizeTooLargeTableSizeIllegalTableSizeUpdateHeaderBlockTruncatedIllegalHeaderNameTooLargeHeaderEncodeStrategycompressionAlgo useHuffmanCompressionAlgoNaiveStaticLinearIndexTokenHeaderList TokenHeader HeaderListHeader HeaderValue HeaderNamedefaultEncodeStrategyEntrySizetoEntry toEntryToken entrySizeentryTokenHeader entryTokenentryHeaderNameentryHeaderValue dummyEntry maxNumbersHuffmanDecoderdecodeHdecH decodeHuffman DynamicTablesetLimitForEncodingnewDynamicTableForEncodingnewDynamicTableForDecodingwithDynamicTableForEncodingwithDynamicTableForDecoding encodeHeaderencodeTokenHeaderencodeS encodeString HeaderTable ValueTablegetHeaderValue decodeHeaderdecodeTokenHeader decodeSimpledecodeSophisticated decodeStringdecodeS toHeaderTabledefaultDynamicTableSize FrameTypeId SettingsKeyId ErrorCodeId FramePayload DataFrame HeadersFrame PriorityFrameRSTStreamFrame SettingsFramePushPromiseFrame PingFrame GoAwayFrameWindowUpdateFrameContinuationFrame UnknownFrame FrameHeader payloadLengthflagsstreamIdFrame frameHeader framePayloadPaddingHeaderBlockFragmentStreamId FrameFlags FrameTypePriority exclusivestreamDependencyweightWeight SettingsList SettingsValue SettingsKey ErrorCodeFrameContinuationFrameWindowUpdate FrameGoAway FramePingFramePushPromise FrameSettingsFrameRSTStream FramePriority FrameHeaders FrameDataSettingsMaxHeaderListSizeSettingsMaxFrameSizeSettingsInitialWindowSizeSettingsMaxConcurrentStreamsSettingsEnablePushSettingsHeaderTableSizeHTTP11RequiredInadequateSecurityEnhanceYourCalm ConnectErrorCompressionErrorCancel RefusedStreamFrameSizeError StreamClosedSettingsTimeoutFlowControlError InternalError ProtocolErrorNoErrorframeHeaderLength fromErrorCode toErrorCodefromSettingsKey toSettingsKeydefaultWindowSize maxWindowSizeisWindowOverflowrecommendedConcurrency fromFrameType toFrameType minFrameType maxFrameTypemaxPayloadLengthdefaultPayloadLength defaultFlags testEndStreamtestAck testEndHeader testPadded testPriority setEndStreamsetAck setEndHeader setPadded setPriority isControlisClientInitiatedisServerInitiated testExclusive setExclusiveclearExclusiveframePayloadToFrameTypeisPaddingDefined EncodeInfo encodeFlagsencodeStreamId encodePadding encodeInfo encodeFrameencodeFrameChunksencodeFrameHeaderencodeFrameHeaderBufencodeFramePayloadFramePayloadDecoderFrameDecodeError decodeFramedecodeFrameHeadercheckFrameHeaderdecodeFramePayloaddecodeDataFramedecodeHeadersFramedecodePriorityFramedecodeRSTStreamFramedecodeSettingsFramedecodePushPromiseFramedecodePingFramedecodeGoAwayFramedecodeWindowUpdateFramedecodeContinuationFrameconnectionPrefaceconnectionPrefaceLengthPositionReadMakerSentinelCloser Refresher PositionRead ByteCount FileOffsetdefaultPositionReadMakerKilledByHttp2ThreadManagerManagerActionstart setAction stopAfter spawnAction forkManagedforkManagedUnmasktimeoutKillThread timeoutClose incCounter decCounter waitCounter0 defaultReadNSettingsheaderTableSize enablePushmaxConcurrentStreamsinitialWindowSize maxFrameSizemaxHeaderListSizedefaultSettingsConfigconfWriteBufferconfBufferSize confSendAll confReadNconfPositionReadMakerconfTimeoutManagerconfMySockAddrconfPeerSockAddr HTTP2ErrorConnectionIsClosedConnectionIsTimeoutConnectionErrorIsReceivedConnectionErrorIsSentStreamErrorIsReceivedStreamErrorIsSentBadThingHappen GoAwayIsSent ReasonPhraseStreamingChunkStreamingFinishedStreamingFlushStreamingBuilderNext BytesFilledDynaNextStreamFileSpecNextTrailersMakerTrailers TrailersMakerOutObj outObjHeaders outObjBodyoutObjTrailersInpObj inpObjHeadersinpObjBodySize inpObjBodyinpObjTrailersOutBody OutBodyNoneOutBodyStreamingOutBodyStreamingUnmaskOutBodyBuilder OutBodyFileInpBodyPath AuthoritySchemedefaultTrailersMakerallocSimpleConfigfreeSimpleConfigrunTrailersMakerfillBuilderBodyGetNextfillFileBodyGetNextfillStreamBodyGetNextAuxauxPossibleClientStreamsResponseRequestClientClientIO cioMySockAddrcioPeerSockAddrcioWriteRequestcioReadResponse cioWriteBytescioCreateStream ClientConfigscheme authority cacheLimitconnectionWindowSizesettingsdefaultClientConfigrunrunIO requestNoBody requestFilerequestBuilderrequestStreamingrequestStreamingUnmasksetRequestTrailersMakerresponseStatusresponseHeadersresponseBodySizegetResponseBodyChunkgetResponseTrailers auxTimeHandle auxMySockAddrauxPeerSockAddr PushPromisepromiseRequestPathpromiseResponseServerServerIO sioMySockAddrsioPeerSockAddrsioReadRequestsioWriteResponse sioWriteBytes ServerConfignumberOfWorkersdefaultServerConfig requestMethod requestPathrequestAuthority requestSchemerequestHeadersrequestBodySizegetRequestBodyChunkgetRequestTrailersresponseNoBody responseFileresponseBuilderresponseStreamingsetResponseTrailersMaker pushPromisebytestring-0.11.5.2Data.ByteString.Internal.Type ByteStringBSPSData.ByteString.Short.InternalShortByteStringbaseGHC.Base Applicative<*>pure*>liftA2<* Alternativeempty<|>somemanyData.Functor.ConstConstgetConstControl.ApplicativeZipList getZipList WrappedArrow WrapArrow unwrapArrow WrappedMonad WrapMonad unwrapMonad Data.Functor<$>Functorfmap<$<**>liftAliftA3optional Data.Foldableasum MonadPlusmzeromplusMonad>>=return>>Control.Monad.Fail MonadFailfailmapM_forM_Data.TraversablemapMsequenceforM Control.MonadforeverliftMguardjoin=<<whenliftM2liftM3liftM4liftM5apvoid sequence_msumfilterM>=><=< mapAndUnzipMzipWithM zipWithM_foldMfoldM_ replicateM replicateM_unless<$!>mfilterGHC.Bits FiniteBits finiteBitSizecountLeadingZeroscountTrailingZeros Data.BitsIffgetIffXorgetXorIorgetIorAndgetAnd.&..|.xor complementshiftrotatezeroBitsbitsetBitclearBit complementBittestBit bitSizeMaybebitSizeisSignedshiftL unsafeShiftLshiftR unsafeShiftRrotateLrotateRpopCount bitDefaulttestBitDefaultpopCountDefaulttoIntegralSizedoneBits.^..>>..<<.!>>.!<<. Data.EitherEitherRightLefteitherleftsrightspartitionEithersisLeftisRightfromLeft fromRightFoldablenulllengthfoldlfoldrtoListfoldl'foldl1sumproductfoldr'foldr1maximumminimumelemfoldfoldMapfoldMap'GHC.ListzipWith Data.OldListsortBy genericLength maximumBy minimumBygenericReplicate genericTake genericDropgenericSplitAt genericIndexheadgroupgroupByfilterunfoldr transposesortOncycle++concatzipmapunconstaillastinitfoldl1'scanlscanl1scanl'scanrscanr1iterateiterate'repeat replicate takeWhile dropWhiletakedropsplitAtspanbreakreverseandoranyallnotElemlookup concatMap!!zip3zipWith3unzipunzip3find dropWhileEnd stripPrefix elemIndex elemIndices findIndex findIndices isPrefixOf isSuffixOf isInfixOfnubnubBydeletedeleteBy\\unionunionBy intersect intersectBy intersperse intercalate partition mapAccumL mapAccumRinsertinsertByzip4zip5zip6zip7zipWith4zipWith5zipWith6zipWith7unzip4unzip5unzip6unzip7deleteFirstsByinitstails subsequences permutationssort singletonlinesunlineswordsunwords Data.ListisSubsequenceOffoldrMfoldlM traverse_for_ sequenceA_ghc-prim GHC.TypesIntGHC.IntInt8Int16Int32Int64 GHC.MaybeMaybeNothingJust Data.MaybemaybeisJust isNothingfromJust fromMaybe maybeToList listToMaybe catMaybesmapMaybeData.Semigroup.InternalAnygetAnySumgetSumProduct getProduct Data.MonoidLastgetLastFirstgetFirstMonoidmemptymappendmconcatAltgetAltAllgetAllEndoappEndoDualgetDualApgetAp<>OrderingLTEQGT GHC.ClassesOrdcompare>=<<=>maxminData.OrdDowngetDownclamp comparingString Data.StringIsString fromStringGHC.WordWord8WordWord64Word32Word16 byteSwap16 byteSwap32 byteSwap64 bitReverse8 bitReverse16 bitReverse32 bitReverse64 GHC.FloatFloatingpiexplogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanhlog1pexpm1log1pexplog1mexpGHC.Real showSigned showFloat floatToDigitsfromRatGHC.Read lexDigitsNumericreadIntreadBinreadOctreadDecreadHex readFloat readSignedshowInt showEFloat showFFloat showGFloat showFFloatAlt showGFloatAlt showHFloat showIntAtBaseshowHexshowOctshowBinGHC.ForeignPtrwithForeignPtrmallocPlainForeignPtrBytesBuilder<<BitsBFTfromBits unpack4bitscopyidxEos huffmanTable huffmanTable'HTreetoHTreemarkBinTipeosInfoshowTree printTreeflattenHIndexSIndexDIndexstaticTableSize toStaticEntry staticTablestaticTableListRevIndex newRevIndex renewRevIndexlookupRevIndexlookupRevIndex'insertRevIndexdeleteRevIndexList circularTableoffset numOfEntriesmaxNumOfEntriesdynamicTableSizemaxDynamicTableSizeprintDynamicTablerenewDynamicTable shouldRenew insertEntrycodeInfohuffmanDecoderisDynamicTableEmptyisSuitableSizeTableSizeActionIgnoreKeepChangeneedChangeTableSizeresetLimitForEncodingtoDynamicEntryCodeInfoCIECIDtoIndexedEntryfromHIndexToIndex getRevIndex encodeHeader'TrueFalseminSettingsKeymaxSettingsKey buildPaddingdecodeWithPadding goawayFrame resetFrame settingsFrame pingFramewindowUpdateFrameGHC.IO.Handle.TypesHandleaddMyId deleteMyId baseSettingsfromSettingsListdifftoSettingsListmakeNegotiationFrames getStatus setStatuscheckSettingsListControlCGoawayCFramesCFinish OutputTypeONextOPushOWaitOObjOutputoutputSentinel outputStrmQ outputType outputObject outputStreamInput streamRxFlow streamTxFlow streamInput streamState streamNumber StreamStateReservedClosedHalfClosedRemoteOpenIdle ClosedCode ResetByMeResetKilledFinished OpenStateHasBodyNoBody Continued JustOpenedBodyclosedCodeToErrorcheckSettingsValueOddStreamTableoddConcoddTableemptyOddStreamTableEvenStreamTableevenConc evenTable evenCacheemptyEvenStreamTable insertOdd insertOdd' deleteOdd lookupOddgetOddConcurrency getOddStreamsclearOddStreamTable waitIncOdd insertEven insertEven' deleteEven lookupEvengetEvenConcurrencyclearEvenStreamTable waitIncEveninsertEvenCachedeleteEvenCachelookupEvenCachegetEvenStreamsisIdleisOpenisHalfClosedRemoteisHalfClosedLocalisClosed isReserved newOddStream newEvenStreamreadStreamStatecloseAllStreamsforkAndEnqueueWhenReady enqueueOutputenqueueControlContext continued peerSockAddr mySockAddrrstRateemptyFrameRate settingsRatepingRaterxFlowtxFlowdecodeDynamicTableencodeDynamicTablecontrolQoutputQStreamIDoutputQoutputBufferLimit peerStreamId myStreamIdevenStreamTableoddStreamTable peerSettingsmyFirstSettings mySettingsroleInforole ClientInfo ServerInfoinputQRoleInfoRICRISRole toServerInfo toClientInfo newServerInfo newClientInfo newContextmakeMySettingsListisClientisServergetMyNewStreamIdgetPeerStreamIDsetPeerStreamIDsetStreamStateopenedhalfClosedRemotehalfClosedLocalclosedopenOddStreamCheckopenEvenStreamCacheCheckcheckMyConcurrencyopenOddStreamWaitopenEvenStreamWaithpackEncodeHeaderhpackEncodeHeaderLoophpackDecodeHeaderhpackDecodeTrailerjust fixHeadersgetStreamWindowSizegetConnectionWindowSizewaitStreamWindowSizewaitConnectionWindowSizeincreaseWindowSizeincreaseStreamWindowSizeincreaseConnectionWindowSizedecreaseWindowSizeinformWindowUpdate frameSenderSource frameReceiver getResponsesetuprunH2 sendRequest sendStreamingexchangeSettings StreamInforesponseworker WorkerConf readInputQ writeOutputQ workerCleanup isPushablemakePushStream fromContext checkPrefacegoaway