úÎ!†onÿ˜      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABC D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  €  ‚ ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–— SafeEH ldap-clientÿ7The LDAPOID is a notational convenience to indicate that the permitted value of this string is a (UTF-8 encoded) dotted-decimal representation of an OBJECT IDENTIFIER. Although an LDAPOID is encoded as an OCTET STRING, values are limited to the definition of <numericoid> given in Section 1.4 of [RFC4512]. ldap-clientÿ The LDAPString is a notational convenience to indicate that, although strings of LDAPString type encode as ASN.1 OCTET STRING types, the [ISO10646] character set (a superset of [Unicode]) is used, encoded following the UTF-8 [RFC3629] algorithm. (Section 4.1.2.) ldap-client™A RelativeLDAPDN is defined to be the representation of a Relative Distinguished Name (RDN) after encoding according to the specification in [RFC4514]. ldap-client‡An LDAPDN is defined to be the representation of a Distinguished Name (DN) after encoding according to the specification in [RFC4514]. ldap-clientLDAP operation's result.R ldap-client™Matching rules are defined in Section 4.1.3 of [RFC4512]. A matching rule is identified in the protocol by the printable representation of either its  numericoid8 or one of its short name descriptors [RFC4512], e.g., caseIgnoreMatch or  '2.5.13.2'. (Section 4.1.8.)\ ldap-clientQConditions that must be fulfilled in order for the Search to match a given entry.] ldap-clientAll filters evaluate to TRUE^ ldap-clientAny filter evaluates to TRUE_ ldap-clientFilter evaluates to FALSE` ldap-clientEQUALITY rule returns TRUEa ldap-clientSUBSTR rule returns TRUEb ldap-clientORDERING rule returns FALSEc ldap-clientORDERING or EQUALITY rule returns TRUEd ldap-client!Attribute is present in the entrye ldap-clientSame as ` for most serversg ldap-client‰An indicator as to whether or not alias entries (as defined in [RFC4512]) are to be dereferenced during stages of the Search operation.h ldap-clientUDo not dereference aliases in searching or in locating the base object of the Search.i ldap-client_While searching subordinates of the base object, dereference any alias within the search scope.j ldap-client>Dereference aliases in locating the base object of the Search.k ldap-clientTDereference aliases both in searching and in locating the base object of the Search.l ldap-client$Scope of the search to be performed.m ldap-client-Constrained to the entry named by baseObject.n ldap-clientKConstrained to the immediate subordinates of the entry named by baseObject.o ldap-clientIConstrained to the entry named by baseObject and to all its subordinates.p ldap-client7SASL Mechanism, for now only SASL EXTERNAL is supportedr ldap-client,Not really a choice until SASL is supported.u ldap-client=Server responses. The RFC doesn't make a difference between  and u8 but it's useful to distinguish between them in Haskell. ldap-client<Client requests. The RFC doesn't make a difference between  and u8 but it's useful to distinguish between them in Haskell.‹ ldap-clientREvery message being processed has a unique non-zero integer ID. (Section 4.1.1.1.)Ž ldap-client"Message envelope. (Section 4.1.1.)‘  DCBA@?>=<;:9876543210/.-,+*)('&%$#" !EFGHIJKLMNOPQRSTUVYWXZ[\fedcba`^]_gkjihlonmpqrtsu€~}|{zyxwvЉˆ‡†…„ƒ‚‹ŒŽ’‘‘Ž’‘‹ŒŠ‰ˆ‡†…„ƒ‚u€~}|{zyxwvrtspqlonmgkjih\fedcba`^]_Z[VYWXTURSPQNOLMJKHIFGDCBA@?>=<;:9876543210/.-,+*)('&%$#" !E  NonešHÖ ldap-clientConvert a LDAP type to ASN.1.NWhen it's relevant, instances include the part of RFC describing the encoding.Ú ldap-client 2AttributeList ::= SEQUENCE OF attribute Attribute Û ldap-client éMatchingRuleAssertion ::= SEQUENCE { matchingRule [1] MatchingRuleId OPTIONAL, type [2] AttributeDescription OPTIONAL, matchValue [3] AssertionValue, dnAttributes [4] BOOLEAN DEFAULT FALSE } Ü ldap-client ÿ9SubstringFilter ::= SEQUENCE { type AttributeDescription, substrings SEQUENCE SIZE (1..MAX) OF substring CHOICE { initial [0] AssertionValue, -- can occur at most once any [1] AssertionValue, final [2] AssertionValue } -- can occur at most once } Ý ldap-client ÿ Filter ::= CHOICE { and [0] SET SIZE (1..MAX) OF filter Filter, or [1] SET SIZE (1..MAX) OF filter Filter, not [2] Filter, equalityMatch [3] AttributeValueAssertion, substrings [4] SubstringFilter, greaterOrEqual [5] AttributeValueAssertion, lessOrEqual [6] AttributeValueAssertion, present [7] AttributeDescription, approxMatch [8] AttributeValueAssertion, extensibleMatch [9] MatchingRuleAssertion, ... } Þ ldap-client 7AttributeSelection ::= SEQUENCE OF selector LDAPString ß ldap-client ÿAuthenticationChoice ::= CHOICE { simple [0] OCTET STRING, sasl [3] SaslCredentials, ... } SaslCredentials ::= SEQUENCE { mechanism LDAPString, credentials OCTET STRING OPTIONAL } à ldap-client ¶BindRequest ::= [APPLICATION 0] SEQUENCE { version INTEGER (1 .. 127), name LDAPDN, authentication AuthenticationChoice }  'UnbindRequest ::= [APPLICATION 2] NULL  ÿrSearchRequest ::= [APPLICATION 3] SEQUENCE { baseObject LDAPDN, scope ENUMERATED { baseObject (0), singleLevel (1), wholeSubtree (2), ... }, derefAliases ENUMERATED { neverDerefAliases (0), derefInSearching (1), derefFindingBaseObj (2), derefAlways (3) }, sizeLimit INTEGER (0 .. maxInt), timeLimit INTEGER (0 .. maxInt), typesOnly BOOLEAN, filter Filter, attributes AttributeSelection }  ÿ>ModifyRequest ::= [APPLICATION 6] SEQUENCE { object LDAPDN, changes SEQUENCE OF change SEQUENCE { operation ENUMERATED { add (0), delete (1), replace (2), ... }, modification PartialAttribute } }  lAddRequest ::= [APPLICATION 8] SEQUENCE { entry LDAPDN, attributes AttributeList }  'DelRequest ::= [APPLICATION 10] LDAPDN  »ModifyDNRequest ::= [APPLICATION 12] SEQUENCE { entry LDAPDN, newrdn RelativeLDAPDN, deleteoldrdn BOOLEAN, newSuperior [0] LDAPDN OPTIONAL }  {CompareRequest ::= [APPLICATION 14] SEQUENCE { entry LDAPDN, ava AttributeValueAssertion } …ExtendedRequest ::= [APPLICATION 23] SEQUENCE { requestName [0] LDAPOID, requestValue [1] OCTET STRING OPTIONAL } á ldap-client ¦Control ::= SEQUENCE { controlType LDAPOID, criticality BOOLEAN DEFAULT FALSE, controlValue OCTET STRING OPTIONAL } â ldap-client )Controls ::= SEQUENCE OF control Control ã ldap-client MatchingRuleId ::= LDAPString ä ldap-client VAttribute ::= PartialAttribute(WITH COMPONENTS { ..., vals (SIZE(1..MAX))}) å ldap-client tPartialAttribute ::= SEQUENCE { type AttributeDescription, vals SET OF value AttributeValue } æ ldap-client  AssertionValue ::= OCTET STRING ç ldap-client xAttributeValueAssertion ::= SEQUENCE { attributeDesc AttributeDescription, assertionValue AssertionValue } è ldap-client  AttributeValue ::= OCTET STRING é ldap-client $AttributeDescription ::= LDAPString ê ldap-client ARelativeLDAPDN ::= LDAPString -- Constrained to <name-component> ë ldap-client <LDAPDN ::= LDAPString -- Constrained to <distinguishedName> ì ldap-client 8LDAPOID ::= OCTET STRING -- Constrained to <numericoid> í ldap-client -LDAPString ::= OCTET STRING -- UTF-8 encoded î ldap-client %MessageID ::= INTEGER (0 .. maxInt) ï ldap-client ÿDLDAPMessage ::= SEQUENCE { messageID MessageID, protocolOp CHOICE { bindRequest BindRequest, bindResponse BindResponse, unbindRequest UnbindRequest, searchRequest SearchRequest, searchResEntry SearchResultEntry, searchResDone SearchResultDone, searchResRef SearchResultReference, addRequest AddRequest, addResponse AddResponse, ... }, controls [0] Controls OPTIONAL } Ö×Ö×Noneâ@ð ldap-clientASN.1 stream parsers.NWhen it's relevant, instances include the part of RFC describing the encoding.ñ ldap-clientTConvert a part of ASN.1 stream to a LDAP type returning the remainder of the stream.ù ldap-client GPartialAttributeList ::= SEQUENCE OF partialAttribute PartialAttribute ú ldap-client BindResponse ::= [APPLICATION 1] SEQUENCE { COMPONENTS OF LDAPResult, serverSaslCreds [7] OCTET STRING OPTIONAL }  zSearchResultEntry ::= [APPLICATION 4] SEQUENCE { objectName LDAPDN, attributes PartialAttributeList }  gSearchResultReference ::= [APPLICATION 19] SEQUENCE SIZE (1..MAX) OF uri URI  0SearchResultDone ::= [APPLICATION 5] LDAPResult  .ModifyResponse ::= [APPLICATION 7] LDAPResult  +AddResponse ::= [APPLICATION 9] LDAPResult  ,DelResponse ::= [APPLICATION 11] LDAPResult  1ModifyDNResponse ::= [APPLICATION 13] LDAPResult  0CompareResponse ::= [APPLICATION 15] LDAPResult  °ExtendedResponse ::= [APPLICATION 24] SEQUENCE { COMPONENTS OF LDAPResult, responseName [10] LDAPOID OPTIONAL, responseValue [11] OCTET STRING OPTIONAL } “IntermediateResponse ::= [APPLICATION 25] SEQUENCE { responseName [0] LDAPOID OPTIONAL, responseValue [1] OCTET STRING OPTIONAL } û ldap-client URI ::= LDAPString ü ldap-client /Referral ::= SEQUENCE SIZE (1..MAX) OF uri URI ý ldap-client ÿ}LDAPResult ::= SEQUENCE { resultCode ENUMERATED { success (0), operationsError (1), protocolError (2), timeLimitExceeded (3), sizeLimitExceeded (4), compareFalse (5), compareTrue (6), authMethodNotSupported (7), strongerAuthRequired (8), -- 9 reserved -- referral (10), adminLimitExceeded (11), unavailableCriticalExtension (12), confidentialityRequired (13), saslBindInProgress (14), noSuchAttribute (16), undefinedAttributeType (17), inappropriateMatching (18), constraintViolation (19), attributeOrValueExists (20), invalidAttributeSyntax (21), -- 22-31 unused -- noSuchObject (32), aliasProblem (33), invalidDNSyntax (34), -- 35 reserved for undefined isLeaf -- aliasDereferencingProblem (36), -- 37-47 unused -- inappropriateAuthentication (48), invalidCredentials (49), insufficientAccessRights (50), busy (51), unavailable (52), unwillingToPerform (53), loopDetect (54), -- 55-63 unused -- namingViolation (64), objectClassViolation (65), notAllowedOnNonLeaf (66), notAllowedOnRDN (67), entryAlreadyExists (68), objectClassModsProhibited (69), -- 70 reserved for CLDAP -- affectsMultipleDSAs (71), -- 72-79 unused -- other (80), ... }, matchedDN LDAPDN, diagnosticMessage LDAPString, referral [3] Referral OPTIONAL } þ ldap-client tPartialAttribute ::= SEQUENCE { type AttributeDescription, vals SET OF value AttributeValue } ÿ ldap-client  AttributeValue ::= OCTET STRING  ldap-client $AttributeDescription ::= LDAPString  ldap-client LDAPDN ::= LDAPString  ldap-client 8LDAPOID ::= OCTET STRING -- Constrained to <numericoid>  ldap-client .LDAPString ::= OCTET STRING -- UTF-8 encoded,  ldap-client %MessageID ::= INTEGER (0 .. maxInt)  ldap-client ÿDLDAPMessage ::= SEQUENCE { messageID MessageID, protocolOp CHOICE { bindRequest BindRequest, bindResponse BindResponse, unbindRequest UnbindRequest, searchRequest SearchRequest, searchResEntry SearchResultEntry, searchResDone SearchResultDone, searchResRef SearchResultReference, addRequest AddRequest, addResponse AddResponse, ... }, controls [0] Controls OPTIONAL } ðññðNone$2ûÓ ldap-client%List of attributes and their values. f- is the structure these values are in, e.g. . ldap-clientAttribute value. ldap-clientAttribute name.  ldap-client&Response indicates a failed operation.  ldap-client,LDAP server did not follow the protocol, so  ldap-client% couldn't make sense of the response.  ldap-clientLThe response contains a result code indicating failure and an error message.  ldap-client#Unique identifier of an LDAP entry. ldap-client!Asynchronous LDAP operation. Use  or  to wait for its completion. ldap-clientAn LDAP connection handle ldap-client-Request queue for client messages to be send. ldap-client0Workers group for communicating with the server. ldap-client!Network connection to the server. ldap-client LDAP host. ldap-client Plain LDAP. ldap-clientLDAP over TLS. ldap-clientWait for operation completion. ldap-client%Wait for operation completion inside ˜. Do not use this inside the same ˜ transaction the operation was requested in! To give LDAP the chance to respond to it that transaction should commit. After that, applying  to the corresponding  starts to make sense.! ldap-client*Terminate the connection to the Directory. Note that ! does not return an ), because LDAP server never responds to  UnbindRequests, hence a call to  on a hypothetical - would have resulted in an exception anyway." ldap-client*Terminate the connection to the Directory. Note that " does not return an ), because LDAP server never responds to  UnbindRequests, hence a call to  on a hypothetical - would have resulted in an exception anyway.FE! "#$%&'()*+,-./0123456789:;<=>?@ABCD      !"FE! "#$%&'()*+,-./0123456789:;<=>?@ABCD      !"None o , ldap-client'Globally unique LDAP object identifier.. ldap-client5Perform the Extended operation synchronously. Raises   on failures./ ldap-client6Perform the Extended operation synchronously. Returns Left e where e is a   on failures.0 ldap-client4Perform the Extended operation asynchronously. Call   to wait for its completion.1 ldap-client.Perform the Extended operation asynchronously.$Don't wait for its completion (with 2) in the same transaction you've performed it in.2 ldap-clientAn example of Extended Operation, cf. ..3 ldap-clientAn example of Extended Operation, cf. /.4 ldap-clientAn example of Extended Operation, cf. 0.5 ldap-clientAn example of Extended Operation, cf. 1.,-./01234567,-./01234567NoneÑ; ldap-client3Perform the Delete operation synchronously. Raises   on failures.< ldap-client4Perform the Delete operation synchronously. Returns Left e where e is a   on failures.= ldap-client2Perform the Delete operation asynchronously. Call   to wait for its completion.> ldap-client,Perform the Delete operation asynchronously.$Don't wait for its completion (with 2) in the same transaction you've performed it in.;<=>;<=>None? ldap-client4Perform the Compare operation synchronously. Raises   on failures.@ ldap-client5Perform the Compare operation synchronously. Returns Left e where e is a   on failures.A ldap-client3Perform the Compare operation asynchronously. Call   to wait for its completion.B ldap-client-Perform the Compare operation asynchronously.$Don't wait for its completion (with 2) in the same transaction you've performed it in.?@AB?@AB None&ß C ldap-clientUser's password.E ldap-client1Perform the Bind operation synchronously. Raises   on failures.F ldap-client2Perform the Bind operation synchronously. Returns Left e where e is a   on failures.G ldap-client0Perform the Bind operation asynchronously. Call   to wait for its completion.H ldap-client*Perform the Bind operation asynchronously.$Don't wait for its completion (with 2) in the same transaction you've performed it in.I ldap-client=Perform a SASL EXTERNAL Bind operation synchronously. Raises   on failures.J ldap-client>Perform a SASL EXTERNAL Bind operation synchronously. Returns Left e where e is a   on failures.K ldap-client>Perform the SASL EXTERNAL Bind operation asynchronously. Call   to wait for its completion.L ldap-client8Perform the SASL EXTERNAL Bind operation asynchronously.$Don't wait for its completion (with 2) in the same transaction you've performed it in. CDEFGHIJKL CDEFGHIJKL None.O ldap-client0Perform the Add operation synchronously. Raises   on failures.P ldap-client1Perform the Add operation synchronously. Returns Left e where e is a   on failures.Q ldap-client/Perform the Add operation asynchronously. Call   to wait for its completion.R ldap-client)Perform the Add operation asynchronously.$Don't wait for its completion (with 2) in the same transaction you've performed it in.OPQROPQR NoneB. S ldap-clientA component of  .U ldap-client%Type of modification being performed.V ldap-clientnDelete values from the attribute. Deletes the attribute if the list is empty or all current values are listed.W ldap-client6Add values to the attribute, creating it if necessary.X ldap-clientkReplace all existing values of the attribute with the new list. Deletes the attribute if the list is empty.Y ldap-client3Perform the Modify operation synchronously. Raises   on failures.Z ldap-client4Perform the Modify operation synchronously. Returns Left e where e is a   on failures.[ ldap-client2Perform the Modify operation asynchronously. Call   to wait for its completion.\ ldap-client,Perform the Modify operation asynchronously.$Don't wait for its completion (with 2) in the same transaction you've performed it in.] ldap-client6Perform the Modify DN operation synchronously. Raises   on failures.^ ldap-client7Perform the Modify DN operation synchronously. Returns Left e where e is a   on failures._ ldap-client5Perform the Modify DN operation asynchronously. Call   to wait for its completion.` ldap-client/Perform the Modify DN operation asynchronously.$Don't wait for its completion (with 2) in the same transaction you've performed it in.STUWVXYZ[\]^_`UWVXYZ[\ST]^_` None$]Te ldap-clientEntry found during the Search.g ldap-clientQConditions that must be fulfilled in order for the Search to match a given entry.h ldap-clientFilter does not match the entryi ldap-clientAll filters match the entryj ldap-clientAny filter matches the entryk ldap-client!Attribute is present in the entryl ldap-client+Attribute's value is equal to the assertionm ldap-client;Attribute's value is equal to or greater than the assertionn ldap-client8Attribute's value is equal to or less than the assertiono ldap-client5Attribute's value approximately matches the assertionp ldap-client Glob matchq ldap-clientExtensible matchr ldap-clientSearch modifier. Combine using ™ and/or š instance.s ldap-clientSearch options. Use r to change some of those.t ldap-client3Perform the Search operation synchronously. Raises   on failures.u ldap-client4Perform the Search operation synchronously. Returns Left e where e is a   on failures.v ldap-client2Perform the Search operation asynchronously. Call   to wait for its completion.w ldap-client,Perform the Search operation asynchronously.$Don't wait for its completion (with 2) in the same transaction you've performed it in.x ldap-clientScope of the search (default:  WholeSubtree).y ldap-client^Maximum number of entries to be returned as a result of the Search. No limit if the value is 0 (default: 0).z ldap-clientLMaximum time (in seconds) allowed for the Search. No limit if the value is 0 (default: 0).{ ldap-clientxWhether Search results are to contain just attribute descriptions, or both attribute descriptions and values (default: ›).| ldap-client#Alias dereference policy (default: NeverDerefAliases).$ghijklmnoefghijklmnopqrstuvwxyz{|$tuvwsrlmnoxyz{ghijk|ghijklmnopqefNone$2Xkº „ ldap-client8Various failures that can happen when working with LDAP.… ldap-clientNetwork failure.† ldap-client,Invalid ASN.1 data received from the server.‡ ldap-clientAn LDAP operation failed.ˆ ldap-client*Notice of Disconnection has been received.‰ ldap-client Provide a ƒ to a function needing an  handle.Š ldap-client Provide a ƒ to a function needing an  handle‹ ldap-clientThe entrypoint into LDAP. ldap-clientgCreates an LDAP handle. This action is useful for creating your own resource management, such as with 'resource-pool'+. The handle must be manually closed with . ldap-client@Closes an LDAP connection. This is to be used in together with .œ ldap-client=Reads Asn1 BER encoded chunks off a connection into a TQueue. ldap-client@Transmits Asn1 DER encoded data from a TQueue into a Connection.vE! "#$%&'()*+,-./0123456789:;<=>?@ABCDghijklmno     ,-.;?CDEIOSTUWVXY]efghijklmnopqrstxyz{|ƒ„…‡†ˆ‰Š‹ŒŽ‘vŒ‹‰ŠŽ‘ƒ„…‡†ˆ   E! "#$%&'()*+,-./0123456789:;<=>?@ABCDCDEItefsrlmnoxyz{ghijk|ghijklmnopqYUWVXO;ST]?,-.  ž  !!""##$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMMNNOOPPQQRRSSTTUVWXYYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰‰Š‹‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ       !"##$%&'()*+,-./012345678 9 9 : ; < = > ? @ A B C D E F G H H     I J K L M N O P ¢ £ Q R S S Z ] [ \ b T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i jklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆldap-client-0.4.2-inplace Ldap.ClientLdap.Client.InternalLdap.Asn1.TypeLdap.Asn1.ToAsn1Ldap.Asn1.FromAsn1Ldap.Client.ExtendedLdap.Client.DeleteLdap.Client.CompareLdap.Client.BindLdap.Client.AddLdap.Client.ModifyLdap.Client.SearchwaitwaitSTMbaseGHC.BaseNonEmptyPnetwork-3.1.2.3-3bd42dc54b3ec0e657f50900ea8e0b44d18a2cc1fbf318336d8db59c09a9075cNetwork.Socket.Types PortNumberLdapOid LdapString OperationAddDeleteReplaceUri ReferralUrisRelativeLdapDnLdapDnPartialAttribute AttributeAssertionValueAttributeValueAssertionAttributeValueAttributeDescription ResultCodeSuccessOperationError ProtocolErrorTimeLimitExceededSizeLimitExceeded CompareFalse CompareTrueAuthMethodNotSupportedStrongerAuthRequiredReferralAdminLimitExceededUnavailableCriticalExtensionConfidentialityRequiredSaslBindInProgressNoSuchAttributeUndefinedAttributeTypeInappropriateMatchingConstraintViolationAttributeOrValueExistsInvalidAttributeSyntax NoSuchObject AliasProblemInvalidDNSyntaxAliasDereferencingProblemInappropriateAuthenticationInvalidCredentialsInsufficientAccessRightsBusy UnavailableUnwillingToPerform LoopDetectNamingViolationObjectClassViolationNotAllowedOnNonLeafNotAllowedOnRDNEntryAlreadyExistsObjectClassModsProhibitedAffectsMultipleDSAsOther LdapResultControlControlsPartialAttributeList AttributeListAttributeSelectionMatchingRuleIdMatchingRuleAssertion SubstringInitialAnyFinalSubstringFilterFilterAndOrNot EqualityMatch SubstringsGreaterOrEqual LessOrEqualPresent ApproxMatchExtensibleMatch DerefAliasesNeverDerefAliasesDerefInSearchingDerefFindingBaseObject DerefAlwaysScope BaseObject SingleLevel WholeSubtree SaslMechanismExternalAuthenticationChoiceSimpleSaslProtocolServerOp BindResponseSearchResultEntrySearchResultReferenceSearchResultDoneModifyResponse AddResponseDeleteResponseModifyDnResponseCompareResponseExtendedResponseIntermediateResponseProtocolClientOp BindRequest UnbindRequest SearchRequest ModifyRequest AddRequest DeleteRequestModifyDnRequestCompareRequestExtendedRequestIdunId LdapMessage ldapMessageId ldapMessageOpldapMessageControls$fShowId$fEqId$fOrdId$fShowSaslMechanism$fEqSaslMechanism$fShowAuthenticationChoice$fEqAuthenticationChoice $fShowScope $fEqScope$fShowDerefAliases$fEqDerefAliases$fShowResultCode$fEqResultCode$fShowAttributeValue$fEqAttributeValue$fShowAssertionValue$fEqAssertionValue$fShowSubstring $fEqSubstring$fShowOperation $fEqOperation$fShowLdapString$fEqLdapString $fShowUri$fEqUri$fShowReferralUris$fEqReferralUris$fShowRelativeLdapDn$fEqRelativeLdapDn $fShowLdapDn $fEqLdapDn$fShowAttributeDescription$fEqAttributeDescription$fShowPartialAttribute$fEqPartialAttribute$fShowPartialAttributeList$fEqPartialAttributeList$fShowAttribute $fEqAttribute$fShowAttributeList$fEqAttributeList$fShowAttributeValueAssertion$fEqAttributeValueAssertion$fShowSubstringFilter$fEqSubstringFilter$fShowLdapResult$fEqLdapResult$fShowAttributeSelection$fEqAttributeSelection$fShowMatchingRuleId$fEqMatchingRuleId$fShowMatchingRuleAssertion$fEqMatchingRuleAssertion $fShowFilter $fEqFilter $fShowLdapOid $fEqLdapOid $fShowControl $fEqControl$fShowControls $fEqControls$fShowLdapMessage$fEqLdapMessage$fShowProtocolServerOp$fEqProtocolServerOp$fShowProtocolClientOp$fEqProtocolClientOpToAsn1toAsn1$fToAsn1NonEmpty $fToAsn1[]$fToAsn1AttributeList$fToAsn1MatchingRuleAssertion$fToAsn1SubstringFilter$fToAsn1Filter$fToAsn1AttributeSelection$fToAsn1AuthenticationChoice$fToAsn1ProtocolClientOp$fToAsn1Control$fToAsn1Controls$fToAsn1MatchingRuleId$fToAsn1Attribute$fToAsn1PartialAttribute$fToAsn1AssertionValue$fToAsn1AttributeValueAssertion$fToAsn1AttributeValue$fToAsn1AttributeDescription$fToAsn1RelativeLdapDn$fToAsn1LdapDn$fToAsn1LdapOid$fToAsn1LdapString $fToAsn1Id$fToAsn1LdapMessageFromAsn1 parseAsn1$fMonadFailParser$fMonadPlusParser $fMonadParser$fAlternativeParser$fApplicativeParser$fFunctorParser $fFromAsn1(,)$fFromAsn1PartialAttributeList$fFromAsn1ProtocolServerOp $fFromAsn1Uri$fFromAsn1ReferralUris$fFromAsn1LdapResult$fFromAsn1PartialAttribute$fFromAsn1AttributeValue$fFromAsn1AttributeDescription$fFromAsn1LdapDn$fFromAsn1LdapOid$fFromAsn1LdapString $fFromAsn1Id$fFromAsn1LdapMessageAttrList AttrValueAttr ResponseErrorResponseInvalidResponseErrorCodeDnAsyncResponseRequest ClientMessageNewLdapreqQworkersconnHostPlainTlsunAttr sendRequest eitherToIO unbindAsyncunbindAsyncSTM$fExceptionResponseError$fFunctorAsync $fShowHost$fShowDn$fEqDn$fShowResponseError$fEqResponseError $fShowAttr$fEqAttrOidextendedextendedEither extendedAsyncextendedAsyncSTMstartTlsstartTlsEither startTlsAsyncstartTlsAsyncSTMnoticeOfDisconnectionOid startTlsOid $fIsStringOid $fShowOid$fEqOiddelete deleteEither deleteAsyncdeleteAsyncSTMcompare compareEither compareAsynccompareAsyncSTMPasswordbind bindEither bindAsync bindAsyncSTM externalBindexternalBindEitherexternalBindAsyncexternalBindAsyncSTM$fShowPassword $fEqPasswordadd addEitheraddAsync addAsyncSTM RelativeDnmodify modifyEither modifyAsyncmodifyAsyncSTMmodifyDnmodifyDnEither modifyDnAsyncmodifyDnAsyncSTM$fShowRelativeDn$fEqRelativeDn SearchEntry:=:>=:<=:~=:=*::=ModSearchsearch searchEither searchAsyncsearchAsyncSTMscopesizetime typesOnly derefAliases $fMonoidMod$fSemigroupMod $fShowSearch $fEqSearch$fShowSearchEntry$fEqSearchEntryLdapH LdapErrorIOError ParseErrorDisconnectErrorrunsIn runsInEitherwith'withopenopenFromConnectionclosedefaultTlsSettingsinsecureTlsSettings$fExceptionDisconnect$fExceptionLdapError$fShowDisconnect$fEqDisconnect$fShowLdapError $fEqLdapError GHC.Conc.SyncSTM SemigroupMonoidghc-prim GHC.TypesFalseinputoutput