³ò ø$•Jc @s‹ddklZddkZddkZddkZddkZddkZddkZdefd„ƒYZ deifd„ƒYZ dS(iÿÿÿÿ(t_Nt manifestdictcBs2eZddd„Zd„Zd„Zd„ZRS(cCsK|djo h}n|djo h}nti||ƒ||_dS(N(tNonetdictt__init__t_flags(tselftmappingtflags((s%/sys/lib/python/mercurial/manifest.pyR scCs|ii|dƒS(Nt(Rtget(Rtf((s%/sys/lib/python/mercurial/manifest.pyRscCs||i|s!iiis ti(N(tlentcmp( RR(tstlothiR*tmidtstarttendtfound((R(R)s%/sys/lib/python/mercurial/manifest.pyt_search3s*   %  cCsÈ|ioB||idjo.|idi|ƒ|idi|ƒfSn|i|ƒ}|i||ƒ\}}||jodSn|||!}|idƒ\}}ti|d ƒ|dd!fS(smlook up entry for a single file efficiently. return (node, flags) pair if found, (None, None) if not.iiR+i(iÿÿÿÿN(NN( RR RR#R5RtsplitRtbin(RRR R%R2R3tltn((s%/sys/lib/python/mercurial/manifest.pytfind]s.  c Csrd„}d„}|o"|io|o|id|jpt|ƒ} || ƒti|i} } g} | D]*} | d| | || ƒ| | ƒfqr~ }tiddi|ƒƒ|_d}nl|i}||dƒg}|dD]}||dgqó~}g}|dD]}||dgq~|t |ƒ)|i ƒg}d}d}dg}d}t |ƒ}xN|D]F}|d} |i || |ƒ\}}|ddjo-d| ti|| ƒ|i| ƒf}nd}||jo+|ddjot tdƒ| ƒ‚n|djoM||jo@||jo3||jo |}n|o|i|ƒqÈq‚|djo#|i||di|ƒgƒn|}|}|g}q‚W|djo#|i||di|ƒgƒn|||ƒ}|id|iƒjo d}n||_|it |iƒ|||||ƒ}||f|_|S( Nc SsÙt|ƒ}xv|djoh|d8}||d}||d}||do%tid||dƒ|||+q|||5qWdig}|D]9}|tid|d|dt|dƒƒ|dq–~ƒS(NiiiR!R s>lll(R,R$tjointstructtpack(taddlisttxR'R2R3t_[1]td((s%/sys/lib/python/mercurial/manifest.pyt addlistdeltans  % cSsLxE|D]=}d|jp d|jotitdƒ|ƒ‚qqWdS(Ns s s)'\n' and '\r' disallowed in filenames: %r(terrort RevlogErrorR(R8R ((s%/sys/lib/python/mercurial/manifest.pytcheckforbidden}s is%s%s%s R!R is!failed to remove %s from manifest(RRtsortedRthexRR$R;RR,tsorttbufferR5tAssertionErrorRtappendttipt addrevision(Rtmapt transactiontlinktp1tp2tchangedRBREtfilesRGRR@R R%t cachedeltaR>t_[2]R?tworkt_[3]tdeltatdstarttdendtdlineR2taddbuftwR3R8R9((s%/sys/lib/python/mercurial/manifest.pytaddjsf  ,  7  +5    -'   #  #  N( RRRRR R&RR5R:R_(((s%/sys/lib/python/mercurial/manifest.pyRs    * ( ti18nRRRRCRR$R<RRR(((s%/sys/lib/python/mercurial/manifest.pyss0