h&fA      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred Safe-Inferred Safe-Inferredaquic1Insertion. Worst-case: O(N), amortized: O(log N).quic.Finding the minimum element. Worst-case: O(1).quicDeleting the minimum element. Worst-case: O(N), amortized: O(log N).quic9Merging two heaps. Worst-case: O(N), amortized: O(log N). Safe-Inferredquic toAckInfo [9]AckInfo 9 0 []toAckInfo [9,8,7]AckInfo 9 2 []toAckInfo [8,7,3,2]AckInfo 8 1 [(2,1)]toAckInfo [9,8,7,5,4]AckInfo 9 2 [(0,1)]quicfromAckInfo $ AckInfo 9 0 [][9]fromAckInfo $ AckInfo 9 2 [][7,8,9]!fromAckInfo $ AckInfo 8 1 [(2,1)] [2,3,7,8]!fromAckInfo $ AckInfo 9 2 [(0,1)] [4,5,7,8,9]quic%fromAckInfoWithMin (AckInfo 9 0 []) 1[9]%fromAckInfoWithMin (AckInfo 9 2 []) 8[8,9]*fromAckInfoWithMin (AckInfo 8 1 [(2,1)]) 3[3,7,8]*fromAckInfoWithMin (AckInfo 9 2 [(0,1)]) 8[8,9]    Safe-Inferredquic$Application protocol errors of QUIC.quicTransport errors of QUIC.+quic:Converting a TLS alert to a corresponding transport error. !"#$%&'()*+  Safe-Inferred" ,-./012345678  Safe-InferredU9quic All internal byte sequences. & should be used for FFI related stuff. ,-./0123456789  8 8  Safe-Inferred:;<=>?@ABCDEFGH  Safe-InferredIJKLMN Safe-InferredsOquic$enc16 $ encodeInt 151288809941952652"c2197c5eff14e88c"enc16 $ encodeInt 494878333 "9d7f3e7d"enc16 $ encodeInt 15293"7bbd"enc16 $ encodeInt 37"25"Tquic$decodeInt (dec16 "c2197c5eff14e88c")151288809941952652decodeInt (dec16 "9d7f3e7d") 494878333decodeInt (dec16 "7bbd")15293decodeInt (dec16 "25")37OPQRSTU Safe-Inferred_quicA type for conneciton ID.dquicConverting a connection ID.VWXYZ[\]^_`abcdefgh Safe-Inferred"nquicStream identifier. This should be 62-bit interger. On 32-bit machines, the total number of stream identifiers is limited.quic7Checking if a stream is client-initiated bidirectional.quic7Checking if a stream is server-initiated bidirectional.quic8Checking if a stream is client-initiated unidirectional.quic8Checking if a stream is server-initiated unidirectional.0ijklmno~}|{zyxwvutsqpr Safe-Inferred"Yquic QUIC version. Safe-Inferred%& quicInformation about resumptionquicIs 0RTT possible?quicIs resumption possible?  Safe-Inferred  Safe-Inferred!LquicUser level exceptions for QUIC. Safe-Inferred!  !"#$%&'()*+9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVZYWX[\]^_`abcdefghijklmno~}|{zyxwvutsqrp Safe-Inferred# Safe-Inferred"%&&quicQUIC transport parameters.quic0The default value for QUIC transport parameters.quic3An example parameters obsoleted in the near future.defaultParametersParameters {originalDestinationConnectionId = Nothing, maxIdleTimeout = 30000, statelessResetToken = Nothing, maxUdpPayloadSize = 2048, initialMaxData = 1048576, initialMaxStreamDataBidiLocal = 262144, initialMaxStreamDataBidiRemote = 262144, initialMaxStreamDataUni = 262144, initialMaxStreamsBidi = 64, initialMaxStreamsUni = 3, ackDelayExponent = 3, maxAckDelay = 25, disableActiveMigration = False, preferredAddress = Nothing, activeConnectionIdLimit = 3, initialSourceConnectionId = Nothing, retrySourceConnectionId = Nothing, grease = Nothing, greaseQuicBit = True, versionInformation = Nothing}" Safe-Inferred"%&'t! Safe-Inferred"%&.[ quicThe sum of the size in bytes of all sent packets that contain at least one ack-eliciting or PADDING frame, and have not been acked or declared lost. The size does not include IP or UDP overhead, but does include the QUIC header and AEAD overhead. Packets only containing ACK frames do not count towards bytes_in_flight to ensure congestion control does not impede congestion feedback. quic3Maximum number of bytes-in-flight that may be sent. quicThe time when QUIC first detects congestion due to loss or ECN, causing it to enter congestion recovery. When a packet sent after this time is acknowledged, QUIC exits congestion recovery. quicSlow start threshold in bytes. When the congestion window is below ssthresh, the mode is slow start and the window grows by the number of bytes acknowledged. quicRecords number of bytes acked, and used for incrementing the congestion window during congestion avoidance. quicThe most recent RTT measurement made when receiving an ack for a previously unacked packet. quic#The smoothed RTT of the connection. quicThe RTT variation. quic;The minimum RTT seen in the connection, ignoring ack delay. quicThe maximum amount of time by which the receiver intends to delay acknowledgments for packets in the ApplicationData packet number space. The actual ack_delay in a received ACK frame may be larger due to late timers, reordering, or lost ACK frames. quicThe number of times a PTO has been sent without receiving an ack. quic+The RTT used before an RTT sample is taken.     Safe-Inferred"%&/>  Safe-Inferred%&/{   Safe-Inferred%&/  Safe-Inferred2' quicMaximum reordering in packets before packet threshold loss detection considers a packet lost. quicMaximum reordering in time before time threshold loss detection considers a packet lost. Specified as an RTT multiplier. quicTimer granularity. quic-Default limit on the initial bytes in flight. quic#Minimum congestion window in bytes. quicReduction in congestion window when a new loss event is detected. quicPeriod of time for persistent congestion to be established, specified as a PTO multiplier.  Safe-Inferred"%&2e  Safe-Inferred"%&'2    Safe-Inferred"%&2  ! Safe-Inferred"%&3  " Safe-Inferred"%&3B  # Safe-Inferred"%&3z$ Safe-Inferred"%&3% Safe-Inferred3%& Safe-Inferred"4Y ' Safe-Inferred4 ( Safe-Inferred6: quic2encodePacketNumber 0xabe8bc 0xac5c02 == (0x5c02,2)True6encodePacketNumber 0xa82f30ea 0xa82f9b32 == (0x9b32,2)True5encodePacketNumber 0xabe8bc 0xace8fe == (0xace8fe, 3)True quic0decodePacketNumber 0xabe8bc 0x5c02 2 == 0xac5c02True4decodePacketNumber 0xa82f30ea 0x9b32 2 == 0xa82f9b32True2decodePacketNumber 0xabe8bc 0xace8fe 3 == 0xace8feTrue ) Safe-Inferred6k * Safe-Inferred"6 quicpayload size without paddings + Safe-Inferred"7, Safe-Inferred"7fquicA type for debug logger.- Safe-Inferred7 . Safe-Inferred7_/ Safe-Inferred"8* 0 Safe-Inferred"8j1 Safe-Inferred"82 Safe-Inferred8 3 Safe-Inferred"9;_4 Safe-Inferred">quicServer configuration.quic/Fully-Deployed Versions in the preferred order.quic%Cipher candidates defined in TLS 1.3.quic1Key exchange group candidates defined in TLS 1.3.quicServer certificate information.quic=Use 0-RTT on the 2nd connection if possible. server originalquic5Server addresses assigned to used network interfaces.quic ALPN handler.quicRequiring QUIC retry.quicA session manager of TLS 1.3.quicClient configuration.quic+Compatible versions in the preferred order.quic%Cipher candidates defined in TLS 1.3.quic1Key exchange group candidates defined in TLS 1.3.quicTLS credentials.quic=Use 0-RTT on the 2nd connection if possible. client originalquic(Used to create a socket and SNI for TLS.quicUsed to create a socket.quicAn ALPN provider.quic1Authenticating a server based on its certificate.quic1Use resumption on the 2nd connection if possible.quic#QUIC packet size (UDP payload size)quicIf  , use a unconnected socket for auto migration. Otherwise, use a connected socket.quicHooks.quicDefault hooks.quic+The default value for client configuration.quic+The default value for server configuration./5 Safe-Inferred?r26 Safe-Inferred%&@Wquic"An abstract data type for streams.quicGetting stream identifier.   7 Safe-Inferred"%&A#quic,A quic connection to carry multiple streams.quicA logger for debugging.8 Safe-Inferred"Bi9 Safe-Inferred"%&B: Safe-Inferred%&B ; Safe-Inferred"%&C  < Safe-Inferred"%&C\= Safe-InferredC> Safe-Inferred%&Dquic%Waiting until 0-RTT data can be sent.quic%Waiting until 1-RTT data can be sent.quicFor clients, waiting until HANDSHAKE_DONE is received. For servers, waiting until a TLS stack reports that the handshake is complete.? Safe-InferredE @ Safe-Inferred%&EUA Safe-Inferred%&F4quicClosing a connection with/without a transport error. Internal threads should use this.quic8Closing a connection with an application protocol error.B Safe-Inferred%&FC Safe-Inferred"%&F D Safe-Inferred%&GEquic%Getting information about resumption.E Safe-Inferred%&I quic+Reseting to Initial CID in the client side.quicSending NewConnectionIDquicReceiving NewConnectionIDquicAutomatic CID updatequic%Only for the internal "migration" APIquic After sending RetireConnectionIDquicReceiving NewConnectionIDquicPeer starts using a new CID.quicReceiving RetireConnectionIDF Safe-Inferred%&IcG Safe-InferredIH Safe-Inferred%&L9quicThis is not used internally.I Safe-Inferred"%&LqJ Safe-InferredL!K Safe-Inferred"%&MG quic,readerServer dies when the socket is closed. L Safe-Inferred"M M Safe-Inferred"%&M N Safe-Inferred"%&NquicStatistics of a connection.quicInformation about a connection.quic'Getting information about a connection.quic#Getting statistics of a connection.O Safe-Inferred"R quic Creating a bidirectional stream.quic!Creating a unidirectional stream.quicSending data in the stream.quic%Sending a list of data in the stream.quicSending FIN in a stream.  should be called later.quicClosing a stream without an error. This sends FIN if necessary.quic)Accepting a stream initiated by the peer.quicReceiving data in the stream. In the case where a FIN is received an empty bytestring is returned.quicClosing a stream with an error code. This sends RESET_STREAM to the peer. This is an alternative of .quicAsking the peer to stop sending. This sends STOP_SENDING to the peer and it will send RESET_STREAM back.  should be called later.   P Safe-Inferred"Ri Q Safe-InferredR  Safe-InferredR*)('&%$#"! +nn*)('&%$#"! *)('&%$#"! +R Safe-Inferred"T4 S Safe-Inferred"%&UquicRunning a QUIC server. The action is executed with a new connection in a new lightweight thread.quic'Stopping the base thread of the server. Safe-InferredUqquic(Getting a certificate chain of a client.T Safe-Inferred"V7quicHow to control a connection. quic,readerClient dies when the socket is closed. U Safe-Inferred"%&X\quic?Running a QUIC client. A UDP socket is created according to  and .If  is  , a unconnected socket is made. Otherwise, a connected socket is made. Use the  API for the connected socket.quicCreating a new socket and execute a path validation with a new connection ID. Typically, this is used for migration in the case where  is  6. But this can also be used even when the value is  . Safe-InferredXV Safe-InferredX Safe-InferredY*  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVZYWX[\]^_`abcdefghijklmno~}|{zyxwvutsqrp_9  _`abdcef]^g[\hVWXYZIJKLMN*)('&%$#"! +o~}|{zyxwvutsqprnmlkjiOPQRSTU=>;>>>>>>>>>>>>>>>>>>>??????????????@@@AAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBCCCCCCCCCDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFHHHINNNNNNNNNNNNNNNNNOOOOOOOOOOSSTTTTTTUUVWWW                                                                                                                                                                                                                           W  W                                                                                                                    ! ! ! " " " & ( ( * - -  66 6 6 6 6 6 6 : : : ; K K K K K K K K K K K K K K K K K K K K K K L L L M O O O O O O O O P P P P P P P P P P P P P P P P P P P P P P P Q Q Q Q Q R T T  "quic-0.1.12-5CQNAl9AfJH739aJlmBORzNetwork.QUIC.Internal Network.QUICNetwork.QUIC.ClientNetwork.QUIC.ServerNetwork.QUIC.EventNetwork.QUIC.Stream.FragNetwork.QUIC.Stream.SkewNetwork.QUIC.Types.AckNetwork.QUIC.Types.ErrorNetwork.QUIC.UtilsNetwork.QUIC.ImportsNetwork.QUIC.Types.TimeNetwork.QUIC.Types.ConstantsNetwork.QUIC.Types.IntegerNetwork.QUIC.Types.CIDNetwork.QUIC.Types.FrameNetwork.QUIC.Types.PacketNetwork.QUIC.Types.ResumptionNetwork.QUIC.Types.QueueNetwork.QUIC.Types.ExceptionNetwork.QUIC.TypesNetwork.QUIC.ConnectorNetwork.QUIC.ParametersNetwork.QUIC.QlogNetwork.QUIC.Recovery.TypesNetwork.QUIC.Recovery.Utils'Network.QUIC.Recovery.PeerPacketNumbersNetwork.QUIC.Recovery.MiscNetwork.QUIC.Recovery.Constants Network.QUIC.Recovery.PersistentNetwork.QUIC.Recovery.MetricsNetwork.QUIC.Recovery.ReleaseNetwork.QUIC.Recovery.DetectNetwork.QUIC.Recovery.TimerNetwork.QUIC.Recovery.Interface"Network.QUIC.Recovery.LossRecoveryNetwork.QUIC.RecoveryNetwork.QUIC.QLoggerNetwork.QUIC.Packet.TokenNetwork.QUIC.Packet.NumberNetwork.QUIC.Packet.HeaderNetwork.QUIC.Packet.FrameNetwork.QUIC.Packet.DecodeNetwork.QUIC.LoggerNetwork.QUIC.ExceptionNetwork.QUIC.Crypto.TypesNetwork.QUIC.Crypto.NiteNetwork.QUIC.Crypto.UtilsNetwork.QUIC.Crypto.KeysNetwork.QUIC.Crypto.FusionNetwork.QUIC.CryptoNetwork.QUIC.ConfigNetwork.QUIC.StreamNetwork.QUIC.Stream.TypesNetwork.QUIC.Connection.TypesNetwork.QUIC.Stream.TableNetwork.QUIC.Stream.ReassNetwork.QUIC.Stream.QueueNetwork.QUIC.Stream.MiscNetwork.QUIC.TLSNetwork.QUIC.Connection.TimeoutNetwork.QUIC.Connection.StateNetwork.QUIC.Connection.Queue$Network.QUIC.Connection.PacketNumberNetwork.QUIC.Connection.Misc#Network.QUIC.Connection.StreamTableNetwork.QUIC.Connection.StreamNetwork.QUIC.Connection.Role!Network.QUIC.Connection.MigrationNetwork.QUIC.Connection.CryptoNetwork.QUIC.ConnectionNetwork.QUIC.Packet.EncodeNetwork.QUIC.Packet.DecryptNetwork.QUIC.PacketNetwork.QUIC.Server.ReaderNetwork.QUIC.SenderNetwork.QUIC.ReceiverNetwork.QUIC.InfoNetwork.QUIC.IONetwork.QUIC.HandshakeNetwork.QUIC.CommonNetwork.QUIC.CloserNetwork.QUIC.Server.RunNetwork.QUIC.Client.ReaderNetwork.QUIC.Client.RunNetwork.QUIC.Windowsbytestring-0.11.3.1 Data.ByteString.Builder.InternalBuilder tls-1.9.0-Ffm6ctqaCel5zpUqxBxsoWNetwork.TLS.CipherCipherNetwork.TLS.TypesClientTrafficSecretServerTrafficSecretTrafficSecrets ConnectionPeerPacketNumbersAckInfoGapRange PacketNumberackInfo0 toAckInfo fromAckInfofromAckInfoWithMinfromAckInfoToPredemptyPeerPacketNumbersApplicationProtocolErrorTransportErrorVersionNegotiationError NoViablePathAeadLimitReachedKeyUpdateErrorCryptoBufferExceededApplicationError InvalidTokenProtocolViolationConnectionIdLimitErrorTransportParameterErrorFrameEncodingErrorFinalSizeErrorStreamStateErrorStreamLimitErrorFlowControlErrorConnectionRefused InternalErrorNoError cryptoError fromRightdec16enc16dec16senc16s shortToStringgetRandomOneBytegetRandomBytestotalLensum'withByteString shortpackignoreBytesTimeMicrosecond Microseconds Milliseconds milliToMicro microToMillitimeMicrosecond0getTimeMicrosecondgetElapsedTimeMicrosecondelapsedTimeMicrosecondgetTimeoutInMicrosecondgetPastTimeMicrosecondgetFutureTimeMicrosecondaddMicrosecondsmaximumUdpPayloadSizedefaultQUICPacketSizedefaultQUICPacketSizeForIPv4defaultQUICPacketSizeForIPv6maximumQUICHeaderSize idleTimeout encodeInt encodeInt8 encodeInt' encodeInt'2 encodeInt'4 decodeInt decodeInt'CIDInfo cidInfoSeq cidInfoCID cidInfoSRTPathDataStatelessResetTokenCID myCIDLengthnewCIDtoCIDfromCIDmakeCID unpackCIDnewStatelessResetToken newPathDataToken StreamData CryptoDataFinDelayStreamIdFramePaddingPingAck ResetStream StopSendingCryptoFNewTokenStreamFMaxData MaxStreamData MaxStreams DataBlockedStreamDataBlockedStreamsBlockedNewConnectionIDRetireConnectionID PathChallenge PathResponseConnectionCloseConnectionCloseApp HandshakeDone UnknownFrameSeqNum ReasonPhrase DirectionUnidirectional Bidirectional FrameTypeisClientInitiatedBidirectionalisServerInitiatedBidirectionalisClientInitiatedUnidirectionalisServerInitiatedUnidirectionalisClientInitiatedisServerInitiatedisBidirectionalisUnidirectional emptyToken ackElicitingpathValidatinginFlight rateControledEncodedPacketNumberRaw ProtectedFlagsEncryptionLevel InitialLevel RTT0LevelHandshakeLevel RTT1LevelLongHeaderPacketTypeInitialPacketTypeRTT0PacketTypeHandshakePacketTypeRetryPacketTypeReceivedPacket rpCryptPacketrpTimeReceviedrpReceivedBytesrpEncryptionLevelStatelessResetCryptcryptPktNumOffset cryptPacket cryptMarkscryptMigraionInfo MigrationInfoPlain plainFlagsplainPacketNumber plainFrames plainMarks CryptPacket PlainPacketHeaderInitialRTT0 HandshakeShort BrokenPacket RetryPacketVersionNegotiationPacketPacketOPacketOVPacketORPacketOPPacketIPacketIVPacketIRPacketICPacketIB VersionInfo chosenVersion otherVersionsVersionGreasingVersion2GreasingVersionDraft29Version2Version1 NegotiationisGreasingVersionbrokenVersionInfo!extensionIDForTtransportParameter headerMyCID headerPeerCIDdefaultPlainMarkssetIllegalReservedBitssetUnknownFrame setNoFrames setNoPaddings set4bytesPNisIllegalReservedBitsisUnknownFrame isNoFrames isNoPaddings is4bytesPNisCryptDelayedsetCryptDelayedmkReceivedPacketpacketEncryptionLevelResumptionInforesumptionVersionresumptionSessionresumptionTokenresumptionRetrySessionEstablishdefaultResumptionInfois0RTTPossibleisResumptionPossible get0RTTCipherRecvQnewRecvQ readRecvQ writeRecvQ prependRecvQAbortVerNego NextVersionInternalControlMustNotReachedExitConnectionWrongTransportParameterWrongVersionInformation BreakForever QUICExceptionConnectionIsClosedTransportErrorIsReceivedTransportErrorIsSent"ApplicationProtocolErrorIsReceivedApplicationProtocolErrorIsSentConnectionIsTimeoutConnectionIsResetStreamIsClosedHandshakeFailedVersionIsUnknownNoVersionIsSpecifiedVersionNegotiationFailedBadThingHappen SizedBufferCloseConnectionState Handshaking ReadyFor0RTT ReadyFor1RTT EstablishedRoleClientServer ConnStateroleconnectionState packetNumberencryptionLevel maxPacketSizeconnectionAlive ConnectorgetRolegetEncryptionLevelgetMaxPacketSizegetConnectionStategetPacketNumbergetAlive newConnStateisClientisServerisConnectionEstablished RecvStreamQ recvStreamQ pendingData endOfStream StreamState streamOffset streamFin RxStreamData rxstrmData rxstrmOff rxstrmLen rxstrmFin TxStreamDataLengthStreamstreamIdstreamConnection newStream syncFinTx waitFinTx StreamTableemptyStreamTable lookupStream insertStream deleteStreaminsertCryptoStreamsdeleteCryptoStreamlookupCryptoStreamgetTxStreamOffsetisTxStreamClosedsetTxStreamClosedgetRxStreamOffsetisRxStreamClosedsetRxStreamClosedreadStreamFlowTxaddTxStreamDatasetTxMaxStreamDatagetRxMaxStreamDataupdateStreamFlowRxFlowCntl OverLimit Duplicated ReassembledtakeRecvStreamQwithSizeputRxStreamData tryReassembleAuthCIDs initSrcCID origDstCID retrySrcCID ParametersoriginalDestinationConnectionIdmaxIdleTimeoutstatelessResetTokenmaxUdpPayloadSizeinitialMaxDatainitialMaxStreamDataBidiLocalinitialMaxStreamDataBidiRemoteinitialMaxStreamDataUniinitialMaxStreamsBidiinitialMaxStreamsUniackDelayExponent maxAckDelaydisableActiveMigrationpreferredAddressactiveConnectionIdLimitinitialSourceConnectionIdretrySourceConnectionIdgrease greaseQuicBitversionInformationencodeParametersdecodeParametersbaseParametersdefaultParametersdefaultAuthCIDssetCIDsToParametersgetCIDsToParametersKeepQlogkeepQlogQLoggerQlogMsg QRecvInitial QSentRetryQSent QReceivedQDroppedQMetricsUpdated QPacketLostQCongestionStateUpdatedQLossTimerUpdatedQDebug QParamsSet QCIDUpdateLRLocalRemoteDebugQlogqlog packetTypesw newQlogger qlogReceived qlogDroppedqlogRecvInitial qlogSentRetry qlogParamsSet qlogDebug qlogCIDUpdateLDCC SentPacket spPlainPacket spTimeSent spSentBytesspEncryptionLevelspPacketNumberspPeerPacketNumbersspAckEliciting mkSentPacket fixSentPacketnewLDCCqlogSentgetPeerPacketNumberssetPreviousRTT1PPNsgetPreviousRTT1PPNsnullPeerPacketNumbersfromPeerPacketNumbers getSpeedingUpgetPacketNumberSpaceDiscarded#getAndSetPacketNumberSpaceDiscardedsetMaxAckDaley findDurationgetPTOsetInitialCongestionWindowreleaseByRetry releaseOldest ldccTimer beforeAntiAmpcheckWindowOpenSTM takePingSTMspeedupresender onPacketSentonPacketReceived onAckReceivedonPacketNumberSpaceDiscarded CryptoTokentokenQUICVersiontokenCreatedTime tokenCIDs isRetryToken generateTokengenerateRetryToken encryptToken decryptTokenisLongisShortunprotectFlags protectFlagsencodeShortHeaderFlagsencodeLongHeaderFlagsretryPacketTypeversionNegotiationPacketTypedecodeLongHeaderPacketTypeencodePktNumLengthdecodePktNumLength encodeFramesdecodeFramesBSdecodeFramesBuffer countZerodecodeCryptPackets decodePackets decodePacketdecodeStatelessResetToken DebugLoggerbhow stdoutLoggerdirDebugLogger InitialSecretNonceLabelMaskSampleAssDatSecretIVKeySalt CipherText PlainTextaes128gcmEncrypt makeNoncemakeNiteEncrypt niteEncrypt niteEncrypt'makeNiteDecrypt niteDecrypt niteDecrypt'protectionMaskmakeNiteProtectorbsXOR tagLength sampleLengthcalculateIntegrityTag defaultCipherinitialSecretsclientInitialSecretserverInitialSecretaeadKeyheaderProtectionKey initialVector nextSecret Supplement FusionContextfusionNewContext fusionSetup fusionEncrypt fusionDecryptfusionSetupSupplementfusionSetSample fusionGetMaskisFusionAvailable ServerConfig scVersions scCiphersscGroups scParametersscKeyLogscQLog scCredentialsscHooks scUse0RTT scAddressesscALPNscRequireRetryscSessionManager scDebugLog ClientConfig ccVersions ccCiphersccGroups ccParametersccKeyLogccQLog ccCredentialsccHooks ccUse0RTT ccServerName ccPortNameccALPN ccValidate ccResumption ccPacketSize ccDebugLogccAutoMigrationHooksonCloseCompletedonPlainCreatedonTransportParametersCreatedonTLSExtensionCreatedonTLSHandshakeCreatedonResetStreamReceived onServerReady defaultHooksdefaultClientConfigdefaultServerConfigclientHandshakerserverHandshakerSharedsharedCloseSentsharedCloseReceivedshared1RTTReadysharedSendStreamQ SendStreamQ MigrationQOutputQCryptoQInputQOutput OutControl OutHandshake OutRetransCrypto InpHandshakeInput InpStream connState connDebugLogconnQLog connHooksconnSendconnRecv connRecvQ udpSocketreaders mainThreadId controlRateroleInfoquicVersionInfoorigVersionInfo myParametersmyCIDDBpeerParameters peerCIDDBinputQcryptoQoutputQ migrationQshareddelayedAckCountdelayedAckCancelpeerPacketNumber streamTable myStreamId myUniStreamId peerStreamIdpeerUniStreamIdflowTxflowRxmigrationStateminIdleTimeoutbytesTxbytesRxaddressValidatedpendingQcipherscoders coders1RTT protectorscurrentKeyPhase negotiatedconnMyAuthCIDsconnPeerAuthCIDs connResources encodeBuf encryptRes decryptBufconnLDCCRecvSend Concurrency currentStream maxStreams StreamIdBasefromStreamIdBase NegotiatedtlsHandshakeModeapplicationProtocolapplicationSecretInfo Protector setSamplegetMask unprotect Coder1RTT coder1RTTsecretNCoderencryptdecrypt supplementMigrationState NonMigrationMigrationStarted SendChallenge RecvResponseCIDDB usedCIDInfocidInfosrevInfos nextSeqNum triggeredByMeRoleInfo ClientInfo ServerInfoclientInitialTokenresumptionInfoincompatibleVN tokenManager registerCID unregisterCIDaskRetry baseThreadId certChain dummySecretsdefaultClientRoleInfodefaultServerRoleInfonewCIDDB initialCoderinitialCoder1RTTinitialProtectorinitialNegotiatednewConcurrencysetDead makePendingQ newConnectiondefaultTrafficSecretsclientConnectionserverConnection newSharedtimeoutfirecfiredelaysetConnection0RTTReadysetConnection1RTTReadysetConnectionEstablishedisConnection1RTTReady wait0RTTReady wait1RTTReadywaitEstablishedreadConnectionFlowTx addTxData setTxMaxData getRxMaxData updateFlowRxcheckRxMaxData addTxBytes getTxBytes addRxBytes getRxBytessetAddressValidatedwaitAntiAmplificationFreecheckAntiAmplificationFree takeInputputInput takeCrypto putCrypto takeOutputSTM tryTakeOutput tryPeekOutput putOutputtakeSendStreamQtakeSendStreamQSTMtryPeekSendStreamQputSendStreamQreadMigrationQwriteMigrationQnextPacketNumbergetPeerPacketNumbersetPeerPacketNumbersetVersionInfogetVersionInfo setVersion getVersiongetOriginalVersion getSocket setSocket clearSocketgetPeerAuthCIDssetPeerAuthCIDsgetClientDstCIDgetMyParametersgetPeerParameterssetPeerParameters delayedAckresetDealyedAcksetMaxPacketSize addResource freeResources addReader killReadersreadMinIdleTimeoutsetMinIdleTimeout sendFramescloseConnectionabortConnection createStream findStream addStream delStreaminitialRxMaxStreamDatasetupCryptoStreamsclearCryptoStreamgetCryptoStream getMyStreamIdpossibleMyStreamswaitMyNewStreamIdwaitMyNewUniStreamIdsetTxMaxStreamssetTxUniMaxStreamsupdatePeerStreamIdcheckRxMaxStreamscheckStreamIdRoomsetTokengetTokengetResumptionInfo setRetried getRetriedsetIncompatibleVNgetIncompatibleVNsetResumptionSession setNewToken setRegister getRegister getUnregistersetTokenManagergetTokenManagersetBaseThreadIdgetBaseThreadIdsetCertificateChaingetCertificateChaingetMyCID getMyCIDsgetMyCIDSeqNum getPeerCIDisMyCIDshouldUpdateMyCID myCIDsInclude resetPeerCID getNewMyCID addPeerCIDshouldUpdatePeerCIDchoosePeerCIDForPrivacy waitPeerCID retirePeerCIDsetPeerCIDAndRetireCIDssetMyCID retireMyCIDsetPeerStatelessResetTokenisStatelessRestTokenValid validatePathsetMigrationStartedisPathValidating checkResponsesetEncryptionLevel putOffCryptowaitEncryptionLevel getCipher setCipher getTLSModegetApplicationProtocol setNegotiated dropSecretsinitializeCoderinitializeCoder1RTTupdateCoder1RTTgetCoder getProtectorgetCurrentKeyPhasesetCurrentKeyPhaseencodeVersionNegotiationPacketencodeRetryPacketencodePlainPacket decryptCryptConnectionStatstxBytesrxBytesConnectionInfoversioncipheralpn handshakeModeretry localSockAddrremoteSockAddrlocalCID remoteCIDgetConnectionInfogetConnectionStatsstreamunidirectionalStream sendStreamsendStreamManyshutdownStream closeStream acceptStream recvStream resetStream stopStreamrunstopclientCertificateChainConnectionControlChangeServerCIDChangeClientCID NATRebindingActiveMigrationcontrolConnectionmigratewindowsThreadBlockHackbaseGHC.Event.ThreadgetSystemTimerManagerGHC.Event.TimerManager TimerManager updateTimeoutunregisterTimeoutregisterTimeoutGHC.Event.TimeOut TimeoutKeyTimeoutCallbackFFragshrinknextOffcurrOff shrinkSeqinsertminimum deleteMin'mergeSkewNodeLeafempty deleteMin deleteMinIfData.ByteString.Internal ByteString Control.MonadguardGHC.Basejoin GHC.FloatFloatingtanhtansqrtsinhsinpilogBaselog1pexplog1plog1mexplogexpm1expcoshcosatanhatanasinhasinacosh**acosMonad>>=return>>Functor<$fmapghc-prim GHC.ClassesOrd<<=>maxmincompare>=GHC.IxIxindexinRange rangeSizerangeControl.Monad.Fail MonadFailfail ApplicativeliftA2<**><*>pure Data.FoldableFoldablefoldr'foldMap'foldMapfoldsumproductmaximumfoldr1foldl1foldl'elemtoListfoldllengthfoldrnullData.TraversablemapMsequence<>Monoidmemptymconcatmappend GHC.TypesIntGHC.IntInt8Int16Int32Int64 GHC.MaybeMaybeNothingJustOrderingGTLTEQWordGHC.WordWord8Word16Word32Word64BSPS<**> Data.Functor<$> array-0.5.4.0 Data.Array.IO hPutArray hGetArrayData.Array.IO.InternalsIOUArrayData.Array.BaseMArray newArray_ getBoundsnewArray writeArraythaw readArray newListArray mapIndicesmapArraygetElems getAssocsfreezeGHC.Arr!//accum accumArrayarrayassocsboundselemsindicesixmap listArrayArray GHC.IOArrayIOArrayforM_mapM_ GHC.IORefatomicModifyIORef' zipWithM_zipWithMunless replicateM_ replicateMmfilter mapAndUnzipMforeverfoldM_foldMfilterM>=><=<<$!>forMControl.ApplicativeZipList getZipList WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowoptional Data.IORef modifyIORef' modifyIORef mkWeakIORefatomicWriteIORefatomicModifyIORefIORef writeIORef readIORefnewIORefData.Functor.ConstConstgetConst traverse_ sequence_ sequenceA_ornotElemmsum minimumBy maximumByfor_foldrMfoldlMfind concatMapconcatasumanyandall Data.MonoidLastgetLastFirstgetFirstApgetApData.Semigroup.InternalSumgetSumProduct getProductEndoappEndoDualgetDualAnygetAnyAltgetAltAllgetAllData.OrdDowngetDown comparingclamp Data.BitsXorgetXorIorgetIorIffgetIffAndgetAndoneBitsNumericshowOct showIntAtBaseshowIntshowHex showHFloat showGFloatAlt showGFloat showFFloatAlt showFFloat showEFloatshowBin readSignedreadOctreadIntreadHex readFloatreadDecreadBinGHC.Read lexDigits showFloatfromRat floatToDigits byteSwap64 byteSwap32 byteSwap16 bitReverse8 bitReverse64 bitReverse32 bitReverse16GHC.Bits FiniteBits finiteBitSizecountLeadingZeroscountTrailingZerosBitszeroBitsxor unsafeShiftR unsafeShiftLtestBitshiftRshiftLshiftsetBitrotateRrotateLrotatepopCountisSigned complementBit complementclearBit bitSizeMaybebitSizebit.&..|.toIntegralSizedtestBitDefaultpopCountDefault bitDefaultGHC.Real showSigned Data.Maybe maybeToListmaybemapMaybe listToMaybe isNothingisJust fromMaybefromJust catMaybesvoid MonadPlusmplusmzero Alternative<|>somemanywhenliftM5liftM4liftM3liftM2liftMliftA3liftAap=<<Data.ByteString.Short.InternalShortByteStringSBS/network-byte-order-0.1.7-BakDmHDWUUUFlST10X0A9oNetwork.ByteOrderread64read32read24read16extractShortByteStringextractByteStringwithReadBuffer newReadBuffer currentOffsetwithWriteBuffer'withWriteBuffertoShortByteString toByteStringcopyShortByteStringcopyByteString shiftLastNwrite64write32write24write16write8clearWriteBuffernewWriteBufferbufferIOcopyunsafeWithByteStringword64word32word16word8 bytestring64 bytestring32 bytestring16 bytestring8peekByteStringpeek64peek32peek24peek16peek8poke64poke32poke24poke16poke8BufferOffset BufferSize WriteBuffer oldoffsetlimitstartoffsetReadablegoBack savingSizesavewithCurrentOffSetposition remainingSizeffread8readInt8 ReadBuffer BufferOverrun!<<.!>>.atomicModifyIORef''copyBS bytesInFlightcongestionWindowcongestionRecoveryStartTimessthresh bytesAcked latestRTT smoothedRTTrttvarminRTTmaxAckDelay1RTTptoCount kInitialRTT ldccState ldccQlogger putRetrans recoveryRTT recoveryCCspaceDiscarded sentPackets lossDetectiontimerKey timerInfolostCandidatesptoPing speedingUppktNumPersistentpeerPacketNumberspreviousRTT1PPNs timerInfoQ TimerInfoQEmptyNext TimerInfo timerTime timerLevel timerTypeTimerCancelled TimerExpired TimerTypeLossTimePTO MetricsDiff LossDetectionlargestAckedPacketpreviousAckInfotimeOfLastAckElicitingPacketlossTimeCCnumOfAckElicitingccModeCCModeRecovery SlowStart AvoidanceRTT SentPackets LostPacketemptySentPackets initialRTT initialCCinitialLossDetectionmakeSentPacketsmakeLossDetectionqlogMetricsUpdatedqlogPacketLostqlogContestionStateUpdatedqlogLossTimerUpdatedqlogLossTimerCancelledqlogLossTimerExpired retransmitsendPingmergeLostCandidatesmergeLostCandidatesAndClearpeerCompletedAddressValidation countAckEliinCongestionRecoveryaddPeerPacketNumbersdelPeerPacketNumbersclearPeerPacketNumbersreducePeerPacketNumbersgetPktNumPersistentsetPktNumPersistent setSpeedingUpkPacketThresholdkTimeThreshold kGranularitykInitialWindowkMinimumWindowkLossReductionFactorkPersistentCongestionThresholdtimerGranularitygetMaxAckDelaycalcPTObackOffinPersistentCongestion updateRTTupdateCCmetricsUpdateddiscard onPacketsLostreleaseByPredicatedetectAndRemoveLostPacketsremovePacketNumbersgetLossTimeAndSpacegetPtoTimeAndSpacesetLossDetectionTimer dirQLoggerencodePacketNumberdecodePacketNumberencodeFramesWithPadding handleLogUnit handleLogTTrue streamFlowTx streamFlowRx streamStateTx streamStateRx streamRecvQ streamReassstreamSyncFinTxputRecvStreamQtakeRecvStreamQtryTakeRecvStreamQaddRxStreamData readerServerAcceptaccVersionInfo accMyAuthCIDsaccPeerAuthCIDs accMySocketaccPeerSockAddraccRecvQ accPacketSize accRegister accUnregisteraccAddressValidatedaccTimeDispatchtokenMgr newDispatch clearDispatchaccept runDispatcher recvServerrunNewServerReadermkHeadersender sendFinalreceiverBlocked StrmBlocked ConnBlocked BothBlockedaddTx sendBlockedsplit checkBlockedHndState hsRecvCntnewHndStateRef sendCompleted recvCompletedrxLevelChangedsendCryptoDatarecvCryptoDatarecvTLSsendTLS internalErrorhandshakeClienthandshakeClient'handshakeServerhandshakeServer' setPeerParamsstoreNegotiatedsendCCParamError sendCCVNErrorsendCCTLSErrorsendCCTLSAlert getErrorCauseConnResconnResConnectiondefaultPacketSizemaximumPacketSizeclosure readerClient recvClientFalse