Ë �5øwY<ãóø—ddlZddlmZddlmZddlmZmZmZm Z m Z m Z m Z ddl mZe jZe j ZdZej«Zd„Zd „Zd „Zd „Zej/e d «d „«Zd„Zy)éN)Ú_)Úopen)ÚerrorÚ exthelperÚhttppeerÚutilÚwireprototypesÚwireprotov1peerÚwireprotov1serveré)Úlfutilsa This repository uses the largefiles extension. Please enable it in your Mercurial config file. có*—|j«5}tj||«}tjt j j|««tj||jj¬«} |j«D]}|j|«Œ|jjd«|tj|j«k7rt!dt#d««‚|j%«tj&||« |j5« ddd«t/j0dr|j3««Sd«S#t $r~}|j(j+t#d«||j,fz«t/j0d|r|j3«nd«cYd}~|j5«cddd«Sd}~wwxYw#|j5«wxYw#1swYŒÔxYw)zcServer command for putting a largefile into a repository's local store and into the user cache.)Ú createmoders$largefile contents do not match hashs,largefiles: failed to put %s into store: %s r óN)Úmayberedirectstdior Ú storepathrÚmakedirsÚosÚpathÚdirnameÚatomictempfileÚstorerÚ getpayloadÚwriteÚ_fpÚseekÚhexsha1ÚIOErrorrÚcloseÚlinktousercacheÚuiÚwarnÚstrerrorr ÚpushresÚgetvalueÚdiscard)ÚrepoÚprotoÚshaÚoutputrÚtmpfpÚpÚes ú:usr/lib/python3.12/site-packages/hgext/largefiles/proto.pyÚputlfiler/#sŒ€ð × !Ñ !Ô # vÜ×Ñ  cÓ*ˆÜ � ‰ ”b—g‘g—o‘o dÓ+Ô,Ü×#Ñ# D°T·Z±Z×5JÑ5JÔKˆð Ø×%Ñ%Ö'�Ø— ‘ ˜A•ð(à �I‰I�N‰N˜1Ô Ø”f—n‘n U§Y¡YÓ/Ò/ܘa¤Ð#JÓ!KÓLÐLØ �K‰KŒMÜ × "Ñ " 4¨Õ -ð �M‰M�O÷- $ô0 × !Ñ ! !¹& V§_¡_Ó%6Ó JÐJÀcÓ JÐJøôò Ø �G‰G�L‰LÜÐBÓCؘŸ ™ Ð#ñ$ô ô"×)Ñ)Ø©�6—?‘?Ô$°Cóô ð �M‰MŒO÷- $Ñ #ûð ûð �M‰M�Oú÷- $Ð #úsP‘A4H ÂBE*Ä%H Å* G1Å3AG,Ç G1ÇG4ÇH Ç,G1Ç1G4Ç4HÈH È Hc󇇗tj||«}|s!tjt d«|z«‚t |d«Št j‰j««dŠˆˆfd„}tj|«¬«S)z\Server command for retrieving a largefile from the repository-local cache or user cache.s+requested largefile %s not present in cachesrbéc3óX•K—d‰z–—tj‰«D]}|–—Œy­w)Ns%d )rÚ filechunkiter)ÚchunkÚfÚlengths €€r.Ú generatorzgetlfile..generatorQs,øèø€Ø˜ÑÒÜ×'Ñ'¨Ö*ˆEØ‹Kñ+ùsƒ'*)Úgen) r ÚfindfilerÚAbortrrrÚfstatÚfilenor Ústreamreslegacy)r'r(r)Úfilenamer7r5r6s @@r.Úgetlfiler?Asxù€ô�‰˜t SÓ)€HÙ Ü�k‰kÜ Ð<Ó =ÀÑ Có ð ô ˆX�uÓ€AÜ �X‰X�a—h‘h“jÓ ! !Ñ $€Fõô × )Ñ )©i«kÔ :Ð:rcó†—tj||«}|stjd«Stjd«S)a;Server command for checking if a largefile is present - returns '2 ' if the largefile is missing, '0 ' if it seems to be in good condition. The value 1 is reserved for mismatched checksum, but that is too expensive to be verified on every stat and must be caught be running 'hg verify' server side.s2 s0 )r r9r Ú bytesresponse)r'r(r)r>s r.Ú statlfilerBYs9€ô�‰˜t SÓ)€HÙ Ü×+Ñ+¨FÓ3Ð3Ü × 'Ñ '¨Ó /Ð/rcóZ‡—|jŠGˆfd„d|j«}||_y)Ncól•—eZdZˆfd„Zej d„«Zd„Zd„Zej d„«Z y)ú+wirereposetup..lfileswirerepositoryc󎕇—‰«}|jd«r*|jŠGˆfd„d|j«}||_|S)Ns largefilescó•—eZdZˆfd„Zy)úWwirereposetup..lfileswirerepository.commandexecutor..lfscommandexecutorcó$•—|dk(rd}‰||«S)Nsheadsslheads©)ÚselfÚcommandÚargsÚorig_callcommands €r.Ú callcommandzcwirereposetup..lfileswirerepository.commandexecutor..lfscommandexecutor.callcommandpsø€Ø" hÒ.Ø&/˜GÙ/°¸Ó>Ð>rN)Ú__name__Ú __module__Ú __qualname__rO)rNs€r.ÚlfscommandexecutorrHosø„õ?rrS)ÚcapablerOÚ __class__)rKÚexecutorrSrNÚorig_commandexecutors @€r.Úcommandexecutorz;wirereposetup..lfileswirerepository.commandexecutorjsDù€Ù+Ó-ˆHØ�|‰|˜MÔ*Ø#+×#7Ñ#7Ð ö?¨×);Ñ);ô?ð &8�Ô"؈Orcó8—|jj|«S)N)ÚheadsÚ batchable)rKs r.Úlheadsz2wirereposetup..lfileswirerepository.lheadsxs€à—:‘:×'Ñ'¨Ó-Ð -rcó–—t|jtj«rs|jd||ddi¬«} |j dd«\}}|j d«D]'}|j jtd«|«Œ)t|«S |jd||¬ «\}}|d k(rtjtd «|«‚t|«S#t$r*|j jtd «|z«YywxYw#t$rYyt$r tjtd ««‚wxYw)Nsputlfilez content-typezapplication/mercurial-0.1)Údatar)Úheadersó r Tsremote: s!unexpected putlfile response: %r ©r)rsputlfile failed:s&putlfile failed (unexpected response):)Ú issubclassrUrÚ_callÚsplitÚ splitlinesr!r"rÚintÚ ValueErrorÚ _callpushrÚ ResponseErrorr)rKr)ÚfdÚresÚdr*ÚlÚrets r.r/z4wirereposetup..lfileswirerepository.putlfile|s?€ô˜$Ÿ.™.¬(×*;Ñ*;Ô<Ø—j‘jØØØØ+Ð-HÐIð !ó�ð Ø #§ ¡ ¨%°Ó 3‘I�A�vØ#×.Ñ.¨tÖ4˜ØŸ™Ÿ ™ ¤Q {£^°QÕ7ð5ä˜q›6�Mð Ø"&§.¡.°¸bÀc .Ó"J‘K�C˜Ø˜c’zÜ#×1Ñ1ÜÐ1Ó2°Fóðô˜s›8�Oøô"òØ—G‘G—L‘L¤Ð#HÓ!IÈCÑ!OÔPÙðûôòÙÜ!òÜ×-Ñ-ÜÐCÓDÀcóððús%½ACÂADÃ0DÄDÄ EÄ (Ec3óòK—|jd|¬«}|j«} t|«}tj||¬«D]}|–—Œt|jtj«rC|jd«}|r/|j t j td«|««yyy#t$r1|j t j td«|««YŒÁwxYw­w)z.lfileswirerepository.getlfile¡sØèø€à×%Ñ% k°sÐ%Ó;ˆFØ—_‘_Ó&ˆFð ܘV›�ô×+Ñ+¨F¸&×A�Ø“ ðBô˜$Ÿ.™.¬(×*;Ñ*;Ô<ØŸ ™  A›�ÙØ—K‘KÜ×+Ñ+¬AÐ.EÓ,FÈÓNõðð=øôò Ø— ‘ Ü×'Ñ'¬Ð*AÓ(BÀFÓKöð üs(‚$C7§ B:²BC7Â:7C4Ã1C7Ã3C4Ã4C7có—d„}d|i}||fS)NcóX— t|«S#ttjf$rYywxYw)Né)rfrgÚurlerrÚ httperror)rls r.ÚdecodezEwirereposetup..lfileswirerepository.statlfile..decodeºs/€ðܘq›6�MøÜ"¤F×$4Ñ$4Ð5òñ ð ús ‚ �)¨)ssharJ)rKr)r{Úresults r.rBz5wirereposetup..lfileswirerepository.statlfile¸s€ò ð˜c�]ˆFؘ6�>Ð !rN) rPrQrRrXr r[r\r/r?rB)rWs€r.ÚlfileswirerepositoryrEisGø„ô ð × "Ñ "ñ .ó #ð .ò# òJ ð. × "Ñ "ñ "ó #ñ "rr})rXrU)r!r'r}rWs @r.Ú wirereposetupr~fs+ø€Ø×/Ñ/Ðö\"˜tŸ~™~ô\"ð|*€D…Nrs _capabilitiescó:—|||«}|jd«|S)z$announce largefile server capabilityslargefiles=serve)Úappend)Úorigr'r(Úcapss r.Ú _capabilitiesrƒËs"€ñ ��eÓ €D؇K�KÐ#Ô$Ø €Krcóp—tj|«rtjt«S|||«S)zTWrap server command - largefile capable clients will know to call lheads instead)r Ú islfilesrepor ÚooberrorÚLARGEFILES_REQUIRED_MSG)r�r'r(s r.rZrZÓs1€ô×ј4Ô Ü×&Ñ&Ô'>Ó?Ð?á ��eÓ Ðr)rÚmercurial.i18nrÚmercurial.pycompatrÚ mercurialrrrrr r r Úr ryÚurlreqr‡Úehr/r?rBr~Ú wrapfunctionrƒrZrJrr.Úr�s�ðó  åÝ#÷÷ñõà �‰€Ø �‰€ððð €Y×ÑÓ€òKò<;ò0 0òa*ðJ‡�Ð"Ð$4Ó5ñó6ðór