úÎ ! …-      !"#$%&'()*+,#Represents Distinguished Name (DN) BRepresents ChangeModify operations upon one entry within given DN 2Represents one LDAP operation within changes LDIF BRepresents one change record within LDIF file with DN and content @Represents one data 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 !  &    !     !;Parse string as LDIF content and return LDIF or ParseError ";Read and parse provided file and return LDIF or ParseError #4Parse string as DN and return DN type or ParseError -@Preprocessing for concat wrapped lines and remove comment lines .Remove Comment Lines /FUnwrap lines, lines with space at begin is continue of previous line 0Parsec ldif parser !"#!"#!"#$Serialize LDIF in LDIF Format 1'Serialize version to LDIF Format Lines %Serialize DN to LDIF Format &(Serialize Content Record in LDIF Format ''Serialize Change Record in LDIF Format $%&'$%'&$%&'(Find all Changes with given DN ) Find all Contents with given DN *!Find first Content with given DN +4Create 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 ,.Diff two AttrVal Records if any of provided. a | Implementation uses inefficient algorithm for large count of attributes within ContentRecord. 2!Change record without any impact ()*+,()*+,()*+,-  !"#$%&'()*+,3      !"#$%&'()*+,-./0123456 ldif-0.0.2Text.LDIF.TypesText.LDIF.ParserText.LDIF.PrinterText.LDIF.Proc Text.LDIFDN dnAttrValsModify ModReplace ModDeleteModAddmodAttr modAttrValsChange ChangeModDN ChangeModifychMods ChangeDelete ChangeAdd chAttrVals ChangeRecordchDNchOp ContentRecordcoDN coAttrValsLDIF LDIFChanges lcChanges LDIFContent lcVersion lcEntries AttrValueValue Attribute parseLDIFStr parseLDIFFile parseDNStrldif2Strdn2Str content2Str change2StrfindChangesByDNfindContentsByDNfindContentByDNdiffLDIF diffRecordpreproc stripCommentsunwrappLdifver2StrisDummyChangeRecord