Ë ¸>+}ˆ¹ãóh—ddlZddlmZddlmZmZmZmZm Z d„Z Gd„d«Z d„Z Gd „d «Z y) éNé)Ú_)ÚerrorÚmatchÚpycompatÚscmutilÚutilc#ó|K—d}d}|t|«kr¦|j||«}|sy|j«\}}||jd||«dzz }|j d||«dzxs|}|j d|«dzxst|«dz}|dz }|||z ||z |||f–—|t|«krŒ¥yy­w)Nró r)ÚlenÚsearchÚspanÚcountÚrfindÚfind) ÚbodyÚregexpÚbeginÚlinenumrÚmstartÚmendÚlstartÚlends ú2usr/lib/python3.12/site-packages/mercurial/grep.pyÚ matchlinesrsÐèø€Ø €EØ€GØ ”#�d“)Ò Ø— ‘ ˜d EÓ*ˆÙØ Ø—z‘z“|‰ ˆ�Ø�4—:‘:˜e U¨FÓ3°aÑ7Ñ7ˆØ—‘˜E 5¨&Ó1°AÑ5Ò>¸ˆØ— ‘ ˜% Ó&¨Ñ*Ò;¬c°$«i¸!©mˆØ�q‰yˆØ�v ‘¨¨v© °t¸FÀ4Ð7HÐHÒHð ”#�d“)Õ ùs ‚B7B<Â:B<có$—eZdZd„Zd„Zd„Zd„Zy)Ú linestatecó<—||_||_||_||_y©N)ÚlinerÚcolstartÚcolend)Úselfr rr!r"s rÚ__init__zlinestate.__init__&s€ØˆŒ ؈Œ Ø ˆŒ ؈� ócó,—t|j«Sr)Úhashr )r#s rÚ__hash__zlinestate.__hash__,s€Ü�D—I‘I‹Ðr%có4—|j|jk(Sr)r )r#Úothers rÚ__eq__zlinestate.__eq__/s€Ø�y‰y˜EŸJ™JÑ&Ð&r%c#ópK—|j|jf–—|j}|t|j«krt|j |j|«}|sy|j «|k(r|dz }n"|j «–—|j «}|t|j«krŒsyy­w)z+Iterate all (start, end) indices of matchesrN)r!r"r r r Úendr)r#rÚpÚms rÚfindposzlinestate.findpos2sŠèø€à�m‰m˜TŸ[™[Ð(Ò(Ø �K‰KˆØ”#�d—i‘i“.Ò Ø— ‘ ˜dŸi™i¨Ó+ˆAÙØØ�u‰u‹w˜!Š|Ø�Q‘‘à—f‘f“h’Ø—E‘E“G�ð”#�d—i‘i“.Õ ùs ‚B1B6Â4B6N)Ú__name__Ú __module__Ú __qualname__r$r(r+r0©r%rrr%s„òò ò'ó r%rc#ódK—tjd||«}|j«D]‚\}}}}}|dk(rt||«D] }d||f–—Œ Œ)|dk(rt||«D] }d||f–—Œ ŒI|dk(sŒOt||«D] }d||f–—Œ t||«D] }d||f–—Œ Œ„y­w)NÚinsertó+Údeleteó-Úreplace)ÚdifflibÚSequenceMatcherÚ get_opcodesÚrange) ÚaÚbÚsmÚtagÚaloÚahiÚbloÚbhiÚis rÚdifflinestatesrHAsÄèø€Ü × Ñ   q¨!Ó ,€BØ#%§>¡>Ö#3шˆS�#�s˜CØ �(Š?ܘ3 –_�ؘQ˜q™T�lÓ"ñ%à �HŠ_ܘ3 –_�ؘQ˜q™T�lÓ"ñ%à �IÓ Ü˜3 –_�ؘQ˜q™T�lÓ"ð%ä˜3 –_�ؘQ˜q™T�lÓ"ñ%ñ$4ùs ‚A6B0Á97B0có8—eZdZdZ d d„Zd„Zd„Zd„Zd„Zd„Z y) Ú grepsearcheraSearch files and revisions for lines matching the given pattern Options: - all_files to search unchanged files at that revision. - diff to search files in the parent revision so diffs can be generated. - follow to skip files across copies and renames. có—||_||_||_||_||_||_t j|j«|_ tj|«|_ i|_ i|_t«|_i|_yr)Ú_uiÚ_repoÚ_regexpÚ _all_filesÚ_diffÚ_followr Ú lrucachefuncÚfileÚ_getfilerÚ getrenamedfnÚ _getrenamedÚ_matchesÚ_copiesÚsetÚ_skipÚ _revfiles)r#ÚuiÚreporÚ all_filesÚdiffÚfollows rr$zgrepsearcher.__init__Zsu€ðˆŒØˆŒ ؈Œ Ø#ˆŒØˆŒ ؈Œ ä×)Ñ)¨$¯)©)Ó4ˆŒ Ü"×/Ñ/°Ó5ˆÔàˆŒ ؈Œ Ü“UˆŒ ؈�r%cóÌ—|jj|i«j|«}|jj|«|r|jj|«yy)zZExclude the given file (and the copy at the specified revision) from future searchN)rXÚgetrZÚadd)r#ÚfnÚrevÚcopys rÚskipfilezgrepsearcher.skipfilelsM€ð�|‰|×Ñ  RÓ(×,Ñ,¨RÓ0ˆØ � ‰ �‰�rÔÙ Ø �J‰J�N‰N˜4Õ ð r%c#óØK—tj|j|||j«D�]6}|j «}|j «j «}t |jj|g««D]¨}|j||}|jj|i«j|«}||jvr|r|jj|«Œl|jj|i«j|xs|g«} | s|sŒ¡||| |f–—Œª|j|=|jr�Œ|jj«�Œ9y­w)z·Walk files and revisions to yield (fn, ctx, pstates, states) matches states is a list of linestate objects. pstates may be empty unless diff is True. N)rÚwalkchangerevsrMÚ_prepreÚp1Úsortedr[rbrWrXrZrcÚclear) r#ÚrevsÚmakefilematcherÚctxreÚparentrdÚstatesrfÚpstatess rÚ searchfileszgrepsearcher.searchfilests$èø€ô×)Ñ)Ø �J‰J˜˜o¨t¯z©z÷ ˆCð—'‘'“)ˆCØ—V‘V“X—\‘\“^ˆFܘTŸ^™^×/Ñ/°°RÓ8Ö9�ØŸ™ sÑ+¨BÑ/�Ø—|‘|×'Ñ'¨¨RÓ0×4Ñ4°RÓ8�ؘŸ™Ñ#ÙØŸ ™ Ÿ™ tÔ,ØØŸ-™-×+Ñ+¨F°BÓ7×;Ñ;¸DºJÀBÈÓK�Ùšfؘc 7¨FÐ2Ó2ð:𗑘sÐ#ð—>”>Ø— ‘ ×#Ñ#Ö%ñ' ùs‚D$E*Ä'#E*Å E*cóê—|j|j|g«|j||}|€yt||j«D]&\}}}}t ||||«} |j | «Œ(yr)rWÚ setdefaultrrNrÚappend) r#rdrerr/ÚlnumÚcstartÚcendr Úss rÚ _grepbodyzgrepsearcher._grepbody�sp€Ø � ‰ �cÑ×%Ñ% b¨"Ô-Ø �M‰M˜#Ñ ˜rÑ "ˆØ ˆ<Ø ä(2°4¸¿¹Ö(FÑ $ˆD�&˜$ Ü˜$  f¨dÓ3ˆAØ �H‰H�Q�Kñ)Gr%có„—|j«}|€||} |j«S|j|«}|j |«} |j |«S#t$rYywxYw#t j$r@|jjtd«|tj|«dœz«YywxYw)Ns8cannot search in censored file: %(filename)s:%(revnum)s )sfilenamesrevnum) reÚdataÚFileNotFoundErrorrTÚfilenodeÚreadrÚCensoredNodeErrorrLÚwarnrrÚbytestr)r#rprdreÚfctxÚflogÚfnodes rÚ _readfilezgrepsearcher._readfilešsÀ€Ø�g‰g‹iˆØ ˆ;Ø�r‘7ˆDð Ø—y‘y“{Ð"ð—=‘= Ó$ˆDØ—L‘L Ó$ˆEð Ø—y‘y Ó'Ð'øô %ò Ùð ûô×*Ñ*ò Ø—‘— ‘ Üð5óð%'´8×3CÑ3CÀCÓ3HÑIñ Jöð ús$™AÁ A,Á A)Á(A)Á,AB?Â>B?c 󬇗|j«}|j«}|jj|i«|jr,|j«}|jj|i«|j j|g«}|€+|j jjj}ntj}|«5|jr)tj‰d„«Š|j‰«}nˆfd„|j!«D«}|D�]} |�| |vrŒ d} |j"r\|j%| |«} | rH| |j&j|i«| <| |j(vr|j(j+| «| |j(vrŒ„|j-| «| |j|vr#|j/| ||j1|| ««|jsŒÖ| xs| } | |jvsŒî| |vsŒó|j/| ||j1|| ««�Œ ddd«y#1swYyxYw)Ncó—yrr4)ÚfÚmsgs rÚz$grepsearcher._prep..Ás€À$r%c3ó4•K—|]}‰|«sŒ |–—Œy­wrr4)Ú.0r‹Úfmatchs €rÚ z%grepsearcher._prep..Äsøèø€ÐA©  1±v¸aµyœQ© ùsƒ ‘)rerkrWrvrPr[rMÚwvfsÚauditÚcachedr ÚnullcontextmanagerrOÚmatchmodÚbadmatchÚmatchesÚfilesrQrVrXrZrcrwr|rˆ) r#rpr�reÚpctxrqr™ÚcontextmanagerÚ filenamesrdrfÚpfns ` rrjzgrepsearcher._prep°sÙø€Ø�g‰g‹iˆØ�v‰v‹xˆØ � ‰ × Ñ   bÔ)Ø �:Š:Ø—X‘X“ZˆFØ �M‰M× $Ñ $ V¨RÔ 0Ø—‘×)Ñ)¨#¨rÓ2ˆØ ˆ;ð"ŸZ™ZŸ_™_×2Ñ2×9Ñ9‰Nä!×4Ñ4ˆNÙ Õ à�ŠÜ!×*Ñ*¨6Ñ3FÓG�ØŸK™K¨Ó/‘ ãA¨¯ © ¬ ÓA� Ü�ð�? r°¡}Øà�Ø—<’<Ø×+Ñ+¨B°Ó4�DÙØ?C˜Ÿ ™ ×/Ñ/°°RÓ8¸Ñ<Ø §¡Ñ+Ø ŸJ™JŸN™N¨4Ô0ؘŸ™Ñ#ØØ— ‘ ˜RÔ à˜TŸ]™]¨3Ñ/Ñ/Ø—N‘N 2 s¨D¯N©N¸3ÀÓ,CÔDà—:“:Øš* "�CØ $§-¡-°Ñ"7Ò7¸CÀ4ºKØŸ™ s¨F°D·N±NÀ4ÈÓ4MÖNñ1 ÷× Ñ úsÃD&I Ç=I ÈI È&I É IN)FFF) r1r2r3Ú__doc__r$rgrtr|rˆrjr4r%rrJrJQs-„ñðEJóò$!ò&ò8òó,-Or%rJ)r;Úi18nrÚrrr–rrr rrrHrJr4r%rÚr¡s:ðóå÷õò I÷ñò8 #÷ LOòLOr%