úÎ.a)_5      !"#$%&'()*+,-./01234##Represents Distinguished Name (DN) BRepresents ChangeModify operations upon one entry within given DN  2Represents one LDAP operation within changes LDIF @Represents one data record within LDIF file with DN and content E | Represents one change record within LDIF file with DN and content ERepresents LDIF structure, it can be either simply LDIF data dump or & | changes LDIF with LDAP operations &Type of LDIF Files (Content, Changes)  !"#  !")   !" #     !""(#;Parse string as LDIF content and return LDIF or ParseError $;Read and parse provided file and return LDIF or ParseError 5>Read and parse provided string and return LDIF or ParserError F | If LDIF type is specified than given type is expected for parsing % | and mismatch generates ParseError %&4Parse string as DN and return DN type or ParseError 6@Preprocessing for concat wrapped lines and remove comment lines 7Remove Comment Lines 8FUnwrap lines, lines with space at begin is continue of previous line 9:;Parsec ldif parser <=>?@ABCDEFGHIJKLMNOPQRSTUVWX#$%&#%$&#$%&'Serialize LDIF in LDIF Format Y'Serialize version to LDIF Format Lines (Serialize DN to LDIF Format )(Serialize Content Record in LDIF Format Z[\]'()'()'() * Find all Contents with given DN +!Find first Content with given DN ,!Change record without any impact -./^01"Check if the dn1 is prefix of dn2 *+,-./01*+1/0-.,*+,-./0124Create Change LDIF between to LDIF contents. If any = | of input argument is not LDIFContent it returns Nothing. 9 | If there is not difference the Change LDIF with empty  | change list is returned.  |  | Unsing following strategy:  | 1. Iterate over L1 DN' s and Modify / Remove Content 0 | 2. Iterate over L2 and Add Content not in L1 3.Diff two AttrVal Records if any of provided. a | Implementation uses inefficient algorithm for large count of attributes within ContentRecord. 23232349Apply one LDIF to another LDIF. The destination LDIF has  | to be Content LDIF _Apply one LDIF Content/1Change Record into LDIF and produce Changed LDIF `Apply one LDIF Change (adddel(modf) for given DN within LDIF Content a!Apply Attribute Modification (AddDel<Replace) to ContentRecord and produce changed ContentRecord 4445  !"#$%&'()*+,-./01234b      !"#$%&'(()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh ldif-0.0.6Text.LDIF.TypesText.LDIF.ParserText.LDIF.PrinterText.LDIF.UtilsText.LDIF.DiffText.LDIF.Apply Text.LDIFDN dnAttrValsModify ModReplace ModDeleteModAddmodAttr modAttrValsChange ChangeModDN ChangeModifychMods ChangeDelete ChangeAdd chAttrVals LDIFRecord ChangeRecordchOp ContentRecordreDN coAttrValsLDIF LDIFChanges lcChanges LDIFContent lcVersion lcEntriesLDIFTypeLDIFChangesTypeLDIFContentType AttrValueValue Attribute parseLDIFStr parseLDIFFileparseLDIFStrAs parseDNStrldif2strdn2str record2strfindRecordsByDNfindRecordByDN isDummyRecordleafOfDNrootOfDNsizeOfDN takeDNPrefix isDNPrefixOfdiffLDIF diffRecord applyLDIFparseLDIFStrAs'preproc stripCommentsunwrap takeLinestakeLinepLdif pLdifChanges pLdifContent pAttrValRec pChangeRec pChangeAdd pChangeDel pChangeMod pChangeModDNpRDNpDNSpecpDN pAttrEqValue pAttrValueDN pVersionSpecpModSpecmkModpModTypepAttributeDescriptionpAttributeType pAttrValSpec pValueSpecpURL pSafeString pBase64StringpAttrTypeCharspLdapOidpFILLpSEPpSEPsver2str attrVals2Ln attrVal2Lnmods2Lnmod2Ln getDNValueapplyRecord2LDIFapplyChange2RecordapplyMod2Record