ó
    6°hÜ/  ã                  óâ   • S SK Jr  S SKrS SKrS SKrS SKrSSKJr  SSKJ	r	J
r
JrJrJrJr  SSKJrJrJr  S rS r\" 5       rS	 rSS jrS
qS rS rSS jr\R:                  S 5       rSS jrg)é    )ÚannotationsNé   )Ú_)ÚdemandimportÚencodingÚerrorÚ
extensionsÚpycompatÚutil)ÚprocutilÚresourceutilÚ
stringutilc           
     óÄ  • [        U5      (       a   UnUR                  S-   UR                  -   nGOž[        R                  " U5      nUR                  S5      nUS:X  a8  [        R                  " [        S5      U[        R                  " U5      4-  5      eUSU n	[        R                  n
[        R                  " 5       (       aQ  [        R                  R!                  U	5      u  p¼U(       a)  U(       a"  [        R                  SS U/-   [        l        Un	["        R$                  " 5           ['        [        R                  " U	5      5      nSSS5        U
[        l         UR!                  S5      SS  H  n[5        WU5      nM     [        W5      (       d8  [        R                  " [        S5      U[        R                  " U5      4-  5      eU R9                  [        S5      U[        R                  " U5      4-  5        [:        R<                  " 5       n U" SXUS.[        R>                  " U5      D6n [:        R<                  " 5       U-
  nU RI                  SSU[        R                  " U5      U5        U(       aF  U(       a"  [        RJ                  " [        S5      U-  5      eU R1                  [        S5      U-  5        US4$ ! [(        [*        4 GaK    [        R,                  " 5       n ['        S[        R                  " U	5      -  5      n GNÊ! [(        [*        4 aü    [        R,                  " 5       nU R.                  (       a  U R1                  [        S5      5        U R3                  U5        U R.                  (       a  U R1                  [        S5      5        U R3                  U5        U R.                  (       d  [        S5      nOSn[        S	5      nU[        R                  " U5      [        R                  " U	5      4-  n[        R                  " UUS
9ef = ff = f! , (       d  f       GNä= f! [6         a9    [        R                  " [        S5      U[        R                  " U5      4-  5      ef = f! [@         Ga  n[C        U[        RD                  5      (       a-  U R1                  [        S5      UURF                  S   4-  5        O3U R1                  [        S5      U[        R                  " U5      4-  5        U(       a  e U R.                  (       d  U R1                  [        S5      5        U R3                  5          SnA[:        R<                  " 5       U-
  nU RI                  SSU[        R                  " U5      U5        gSnAff = f! [:        R<                  " 5       U-
  nU RI                  SSU[        R                  " U5      U5        f = f)a‡  call python hook. hook is callable object, looked up as
name in python module. if callable returns "true", hook
fails, else passes. if hook raises exception, treated as
hook failure. exception propagates if throw is "true".

reason for "true" meaning "hook failed" is so that
unmodified commands (e.g. mercurial.commands.update) can
be run as hooks without wrappers to convert return values.Ú.éÿÿÿÿs(   %s hook is invalid: "%s" not in a moduleNzhgext_%ss,   exception from first failed import attempt:
s-   exception from second failed import attempt:
s$   run with --traceback for stack traces)   %s hook is invalid: import of "%s" failed©Úhintr   s'   %s hook is invalid: "%s" is not defineds(   %s hook is invalid: "%s" is not callables   calling hook %s: %s
)ÚuiÚrepoÚhooktypes   error: %s hook failed: %s
r   s'   error: %s hook raised an exception: %s
s'   (run with --traceback for stack trace)
s
   pythonhooks,   pythonhook-%s: %s finished in %0.2f seconds
)TTs   %s hook faileds   warning: %s hook failed
F© )&ÚcallableÚ
__module__Ú__name__r
   ÚsysstrÚrfindr   ÚHookLoadErrorr   r   ÚforcebytestrÚsysÚpathr   Ú
mainfrozenÚosÚsplitr   ÚdeactivatedÚ
__import__ÚImportErrorÚSyntaxErrorÚexc_infoÚtracebackflagÚwarnÚ	tracebackÚgetattrÚAttributeErrorÚnoter   ÚtimerÚ	strkwargsÚ	ExceptionÚ
isinstanceÚAbortÚargsÚlogÚ	HookAbort)r   r   ÚhtypeÚhnameÚfuncnamer4   ÚthrowÚobjÚdÚmodnameÚoldpathsÚmodpathÚmodfileÚe1Úe2ÚtracebackhintÚmsgÚpÚ	starttimeÚrÚexcÚdurations                         Ú0/usr/lib/python3/dist-packages/mercurial/hook.pyÚ
pythonhookrK      sÚ  € ô �×ÑØˆØ—>‘> CÑ'¨#¯,©,Ñ6Šä—?’? 8Ó,ˆØ�N‰N˜3ÓˆØ�‹7Ü×%Ò%ÜÐ=Ó>Øœ*×1Ò1°(Ó;Ð<ñ=óð ð ˜2˜A�,ˆÜ—8‘8ˆÜ×"Ò"×$Ñ$ä!Ÿw™wŸ}™}¨WÓ5ÑˆGÞž7ÜŸ8™8¡A˜;¨'¨Ñ2””Ø!�Ü×%Ò%Õ'ð%GÜ ¤§¢°Ó!9Ó:�÷ (ðN ŒŒð	Ø—^‘^ CÓ(¨¨Ó,�Ü˜c 1“o’ñ -ô ˜�}‰}Ü×%Ò%ÜÐ=Ó>Øœ*×1Ò1°(Ó;Ð<ñ=óð ð
 ‡G�GÜ	Ð
"Ó# u¬j×.EÒ.EÀhÓ.OÐ&PÑPôô —
’
“€Ið
ÙÐM�2¨5ÑM´H×4FÒ4FÀtÓ4LÑM‰ô  —:’:“< )Ñ+ˆØ
�‰ØØ<ØÜ×#Ò# HÓ-Øô	
ö 	ÞÜ—/’/¤!Ð$5Ó"6¸Ñ">Ó?Ð?Ø
�‰”Ð.Ó/°%Ñ7Ô8Øˆeˆ8€Oøôk  ¤Ð-ô #GÜ—\’\“^�ð!Gä$ Z´(·/²/À'Ó2JÑ%JÓK“CøÜ#¤[Ð1ó GÜŸš›�BØ×'×'ØŸ™Üð!.óôð —L‘L Ô$Ø×'×'ØŸ™Üð!.óôð —L‘L Ô$à×+×+Ü()ØCó)™ð )-˜ÜÐHÓI�CØÜ"×/Ò/°Ó6Ü"×/Ò/°Ó8ðñ �Cô  ×-Ò-¨c¸ÑFÐFð=Gúð#Gú÷ (Ö'ûôV ó 	Ü×%Ò%ÜÐ<Ó=Øœ*×1Ò1°(Ó;Ð<ñ=óð ð	ûô$ ô Ü�cœ5Ÿ;™;×'Ñ'Ø�G‰G”AÐ4Ó5¸ÀÇÁÈÁÐ8LÑLÕMà�G‰GÜÐ=Ó>Øœ*×1Ò1°#Ó6Ð7ñ8ôö ØØ××Ø�G‰G”AÐAÓBÔCØ
�‰ŒÛä—:’:“< )Ñ+ˆØ
�‰ØØ<ØÜ×#Ò# HÓ-Øõ	
ûð!ûô —:’:“< )Ñ+ˆØ
�‰ØØ<ØÜ×#Ò# HÓ-Øõ	
úsp   Ä+P)Ä-K
Å 'P; ÈR Ë
&P&Ë1"LÌP)ÌDP"Ð"P&Ð&P)Ð)
P8Ð;AQ>ÒVÒCVÕV ÖVÖV ÖAWc                ó®  • [         R                  " 5       n0 nUbV  UR                  5       n	UR                  R	                  U	5        U	(       a$  U	R                  5       (       a  UR                  US'   X(S'   X8S'   U R                  SSU-  5      S:X  a  U R                  5       n
OU R                  SSU-  5      n
U
(       a  SUS'   OS	US'   UR                  5        Hj  u  p¼US
:X  a  M  [        U5      (       a  U" 5       n[        U[        [        45      (       a  [        R                   " U5      nXÈSUR#                  5       -   '   Ml     U R                  SSU-  S5      (       a:  Un[$        R&                  " XH5      nXM:w  a  U R)                  [+        S5      U-  5        U R)                  [+        S5      X44-  5        U(       a  UR                  nO[,        R.                  " 5       nU R1                  XHUSU4-  S9nUb!  UR3                  5       c  UR5                  5         Ub!  UR7                  5       c  UR9                  5         [         R                  " 5       U-
  nU R;                  SSUUU5        U(       a`  [$        R<                  " U5      nU(       a$  [>        R@                  " [+        S5      UU4-  5      eU RC                  [+        S5      UU4-  5        U$ )Ns
   HG_PENDINGs   HG_HOOKTYPEs   HG_HOOKNAMEó   hookss   %s:run-with-plains   autoó   1s   HGPLAINó    s   changess   HG_s   tonative.%sFs   converting hook "%s" to native
s   running hook %s: %s
s
   exthook-%s)ÚenvironÚcwdÚ
blockedtags   exthooks)   exthook-%s: %s finished in %0.2f seconds
s
   %s hook %ss   warning: %s hook %s
)"r   r/   ÚcurrenttransactionÚdirstateÚwriteÚwritependingÚrootÚconfigÚplainÚ
configboolÚitemsr   r2   ÚdictÚlistr   ÚpprintÚupperr   Úshelltonativer.   r   r   ÚgetcwdÚsystemÚcurrentwlockÚinvalidatedirstateÚcurrentlockÚ
invalidater5   Úexplainexitr   r6   r*   )r   r   r7   ÚnameÚcmdr4   r:   rF   ÚenvÚtrrY   ÚkÚvÚoldcmdrQ   rG   rI   Údescs                     rJ   Ú_exthookrp   —   sm  € Ü—
’
“€IØ
€Cð ÑØ×$Ñ$Ó&ˆØ�‰×Ñ˜BÔÞ�"—/‘/×#Ñ#Ø!%§¡ˆC�ÑØˆÑØˆÑà	‡y�y�Ð/°$Ñ6Ó7¸7ÓBØ—‘“
‰à—‘˜hÐ(<¸tÑ(CÓDˆÞØˆˆJŠàˆˆJ‰à—
‘
–‰ˆð �
‹?ÙÜ�A�;‰;Ù“ˆAÜ�aœ$¤˜×&Ñ&Ü×!Ò! !Ó$ˆAØ"#ˆF�Q—W‘W“YÑÓñ ð 
‡}�}�X˜~°Ñ4°e×<Ñ<ØˆÜ×$Ò$ SÓ.ˆØ‹=Ø�G‰G”AÐ9Ó:¸TÑAÔBà‡G�GŒAÐ&Ó'¨4¨+Ñ5Ô6æØ�i‰i‰ä�oŠoÓˆØ
�	‰	�#¨¸ÈÈÑ8Oˆ	ÐP€AàÑ˜D×-Ñ-Ó/Ñ7Ø×ÑÔ!ØÑ˜D×,Ñ,Ó.Ñ6Ø�‰Ôä�zŠz‹|˜iÑ'€HØ‡F�FØØ5ØØØôö 	Ü×#Ò# AÓ&ˆÞÜ—/’/¤! MÓ"2°d¸D°\Ñ"AÓBÐBØ
�‰”Ð*Ó+¨t°T¨lÑ:Ô;Ø€HrO   c           
     ó8  • [        U 5      n[        U SS9nUR                  5        H6  u  p4UR                  USSU[        45      nXE:w  d  M&  Uu  pgp‰XgU[        4X'   M8     [	        UR                  5       5       V
VVVs/ s H	  u  p«pÍXÍ4PM     snnnn
$ s  snnnn
f )z8return a list of (hook-id, cmd) pairs sorted by priorityT)Ú
_untrustedr   )Ú
_hookitemsr[   ÚgetÚ_fromuntrustedÚsortedÚvalues)r   ÚhooksÚuntrustedhooksrh   ÚvalueÚtrustedvalueÚlpÚloÚlkÚlvrE   Úorl   rm   s                 rJ   Ú	_allhooksr�   ß   s’   € ä�r‹N€Eô   ¨tÑ4€NØ%×+Ñ+Ö-‰ˆØ—y‘y ¨¨B°´nÐ'EÓFˆØÕ Ø+ÑˆR�RØ 2¤~Ð6ˆE‹Kñ	 .ô &,¨E¯L©L«NÔ%;Ö<Ò%;‘z�q˜QˆQ‹FÑ%;Ô<Ð<ùÕ<s   Á>B
Fc                óö   • 0 nU R                  SUS9 Hb  u  p4UR                  S5      (       d  UR                  S5      (       d  SU;   a  M9  U R                  SSU-  S5      nU* 4[        U5      4X44X#'   Md     U$ )z)return all hooks items ready to be sortedrM   )Ú	untrusteds	   priority.s	   tonative.ó   :s   priority.%sr   )ÚconfigitemsÚ
startswithÚ	configintÚlen)r   rr   rx   rh   ri   Úprioritys         rJ   rs   rs   ï   s   € à€EØ—^‘^ H¸
�^ÓC‰	ˆà�O‰O˜L×)Ñ)Ø�‰˜|×,Ñ,Ø�t‹|áà—<‘< ¨.¸4Ñ*?ÀÓCˆØ!˜	�|¤c¨%£j ]°DÐ>ˆ‹ñ Dð €LrO   c                ó   • U q g )N)Ú	_redirect)Ústates    rJ   Úredirectr�     s   € à�IrO   c                ó–   • U R                   (       d  g[        U 5       H(  u  p#UR                  S5      S   U:X  d  M  U(       d  M(    g   g)z/return True if a hook is configured for 'htype'Fó   .r   T)Ú	callhooksr�   r#   )r   r7   r8   ri   s       rJ   Úhashookr‘     s>   € à�<�<ØÜ –m‰
ˆØ�;‰;�tÓ˜QÑ 5Õ(¯S¨SÙñ $ð rO   c                ó  • U R                   (       d  g/ n[        U 5       H:  u  pgUR                  S5      S   U:X  d  M  U(       d  M(  UR                  Xg45        M<     [	        XX%4SU0UD6nSn	U H  u  pgX†   S   =(       d    U	n	M     U	$ )NFr�   r   r:   )r�   r�   r#   ÚappendÚrunhooks)
r   r   r7   r:   r4   rx   r8   ri   ÚresrG   s
             rJ   Úhookr–     s‡   € Ø�<�<Øà€EÜ –m‰
ˆØ�;‰;�tÓ˜QÑ 5Õ(¯S¨SØ�L‰L˜%˜Ö&ñ $ô �2˜UÑ
?°Ð
?¸$Ñ
?€CØ€AÛ‰
ˆØ‰J�q‰M×˜QŠñ à€HrO   c               #  óÚ  #   • Sn  [         (       a“   [        R                  R                  5       n[        R                  R                  5       nUS:¼  aP  US:¼  aJ  [        R                  R                  5         [        R                  " U5      n [        R                  " X!5        Sv •   [        R                  R                  5         [         (       aT  U S:¼  aM   [        R                  R                  5         [        R                  " U W5        [        R"                  " U 5        ggg! [        [        4 a     N•f = f! [         a]  nUR                  [        R                  [        R                  [        R                  4;  a  [        R                   " U5      e SnANØSnAff = f! [         a^  nUR                  [        R                  [        R                  [        R                  4;  a  [        R                   " U5      e SnAGNSnAff = f!  [        R                  R                  5         Oj! [         a]  nUR                  [        R                  [        R                  [        R                  4;  a  [        R                   " U5      e SnAOSnAff = f[         (       a¿  U S:¼  a¸   [        R                  R                  5         Oj! [         a]  nUR                  [        R                  [        R                  [        R                  4;  a  [        R                   " U5      e SnAOSnAff = f[        R                  " U W5        [        R"                  " U 5        f f f = f7f)z(Redirects stdout to stderr, if possible.r   r   N)r‹   r   ÚstdoutÚfilenoÚstderrÚflushr"   ÚdupÚdup2ÚOSErrorr-   ÚerrnoÚEPIPEÚEIOÚEBADFr   Ú
StdioErrorÚclose)Ú	oldstdoutÚstdoutnoÚstderrnoÚerrs       rJ   Úredirect_stdior©   !  sb  é € ð €Ið! ßŠ9ð
Ü#Ÿ?™?×1Ñ1Ó3�Ü#Ÿ?™?×1Ñ1Ó3�à˜q“= X°£]Ü—O‘O×)Ñ)Ô+Ü "§¢ xÓ 0�IÜ—G’G˜HÔ/ó
 	ð	,Ü�O‰O×!Ñ!Ô#÷
 Š9˜ a›ð0Ü—‘×%Ñ%Ô'ô �GŠG�I˜xÔ(Ü�HŠH�YÕð (ˆ9øô! œ^Ð,ó áðûô ó 	,Ø�y‰y¤§¡¬e¯i©i¼¿¹Ð EÓEÜ×&Ò& sÓ+Ð+ô Fûð	,ûô ó 0Ø—9‘9¤U§[¡[´%·)±)¼U¿[¹[Ð$IÓIÜ×*Ò*¨3Ó/Ð/õ Jûð0ûð	,Ü�O‰O×!Ñ!Õ#øÜó 	,Ø�y‰y¤§¡¬e¯i©i¼¿¹Ð EÓEÜ×&Ò& sÓ+Ð+ô Fûð	,ú÷ Š9˜ a›ð0Ü—‘×%Ñ%Õ'øÜó 0Ø—9‘9¤U§[¡[´%·)±)¼U¿[¹[Ð$IÓIÜ×*Ò*¨3Ó/Ð/ô Jûð0úô �GŠG�I˜xÔ(Ü�HŠH�YÕð (ˆ9üsæ   ‚M+†H ’BD' Â$H Â)D= ÃM+ÃF' Ã70M+Ä'D:Ä7H Ä9D:Ä:H Ä=
F$ÅAFÆM+ÆF$Æ$M+Æ'
HÆ1AH
ÈM+È
HÈM+ÈM(ÈH3È2M(È3
JÈ=AJÊM(ÊJÊM(Ê/KËM(Ë
L5ËAL0Ì+M(Ì0L5Ì53M(Í(M+c                ó  • [         R                  " U5      n0 n[        5          U GH˜  u  pxU[        L aT  U(       a*  [        R
                  " [        S5      U-  [        S5      S9eU R                  [        S5      U-  5        Sn	Sn
GO0[        U5      (       a  [        XX'X…U5      u  pšGOUR                  S5      (       aè  UR                  S5      S	:¼  a¯  US
S  R                  SS5      u  p¸[        R                  " U5      nU(       a*  [        R                   R#                  UR$                  U5      n S[         R&                  " U5      -  n[(        R*                  " X¼5      n[1        U[         R&                  " U5      5      nOUS
S  R3                  5       n[        XX'XåU5      u  pšO[5        XX'X…U5      n	Sn
Xš4Xg'   GM›     S S S 5        U$ ! [,         a    U R/                  [        S5      U-  5        e f = f! , (       d  f       U$ = f)Ns   untrusted hook %s not executeds   see 'hg help config.trusted'r   s(   warning: untrusted hook %s not executed
r   Fs   python:r„   é   é   z	hghook.%ss   loading %s hook failed:
)r
   Úbyteskwargsr©   ru   r   r6   r   r*   r   rK   r†   ÚcountÚrsplitr   Ú
expandpathr"   r    ÚjoinrW   r   r	   Úloadpathr1   rU   r,   Ústriprp   )r   r   r7   rx   r:   r4   r•   r8   ri   rG   Úraisedr    Úmod_nameÚmodÚhookfns                  rJ   r”   r”   J  sÍ  € Ü×Ò Ó%€DØ
€Cä	Õ	Ü‰JˆEØ”nÒ$ÞÜŸ/š/ÜÐ;Ó<¸uÑDÜÐ>Ó?ñð ð —‘œÐFÓGÈ%ÑOÔPØ�Ø’Ü˜#—‘Ü& r°¸sÈ%ÓP‘	�‘6Ø—‘ 
×+Ñ+Ø—9‘9˜T“? aÓ'Ø # A B §¡¨t°QÓ 7‘I�DÜŸ?š?¨4Ó0�DÞÜ!Ÿw™wŸ|™|¨D¯I©I°tÓ<˜ðØ#.´·²ÀÓ1GÑ#G˜Ü(×1Ò1°$ÓA˜ô % S¬(¯/ª/¸#Ó*>Ó?‘Fà   ˜WŸ]™]›_�FÜ&Ø˜e¨F¸%ó‘	��6ô ˜R u°SÀÓF�Ø�à˜ˆCŒJñE  ÷ 
ðJ €Jøô %ó ØŸ™¤Ð#?Ó!@À5Ñ!HÔIØðú÷- 
Ô	ðJ €Jús%   £DG9Ä5/GÅ$AG9Ç)G6Ç6G9Ç9
H)F) Ú
__future__r   Ú
contextlibrŸ   r"   r   Úi18nr   Ú r   r   r   r	   r
   r   Úutilsr   r   r   rK   rp   Úobjectru   r�   rs   r‹   r�   r‘   r–   Úcontextmanagerr©   r”   r   rO   rJ   Ú<module>r¿      s„   ðõ #ã Û Û 	Û 
å ÷÷ ÷ñ òuòpAñJ “€ò=ô ð  €	òò
ôð  ×Ññ% ó ð% õP)rO   