ó
    6°hy  ã                  ó   • S SK Jr  S SKrS SKJrJrJr  SSKJr  SSKJ	r	  SSK
JrJr  \R                  (       a  SSK
Jr  \\\4   r    S           SS	 jjr       S                 SS
 jjrS rg)é    )ÚannotationsN)ÚAnyÚDictÚOptionalé   )Ú_)Únullrev)ÚmdiffÚpycompat)Úuic                ó"   • [        U UUUSSSUS9$ )z6return diffopts with all features supported and parsedT)ÚoptsÚ	untrustedÚsectionÚgitÚ
whitespaceÚformatchangingÚconfigprefix)Údifffeatureopts)r   r   r   r   r   s        Ú4/usr/lib/python3/dist-packages/mercurial/diffutil.pyÚdiffalloptsr   #   s)   € ô Ø
ØØØØØØØ!ñ	ð 	ó    c                óÞ  ^ ^^^^• ST R                   S4       S*UUUU U4S jjjnU" S5      U" SS5      U" ST R                  S9S.n	T R                  S	S
5      U	S
'   U(       aq  U" S5      U	S'   T R                  S	S5      U	S'   T R                  S	S5      n
U
b<  Sn [        U
5      nUS:  d  US:”  a  [        S5      nT R	                  XË-  5        X¹S'   U(       a0  U" SS5      U	S'   U" SS5      U	S'   U" SS5      U	S'   U" SS 5      U	S '   U(       aX  Tc  SOTR                  S!5      U	S!'   Tc  SOTR                  S"5      nUb  U(       + OU" S#S$S%9U	S#'   U" S&S$S%9U	S&'   U" S'S(S$S%9U	S)'   [        R                  " S+0 [        R                  " U	5      D6$ ! [
         aB    U
S:X  d  U
S:X  a  Sn NÞU
S:X  a  Sn NèU
S:w  a  [        S5      nT R	                  XÊ-  5         GNf = f! X¹S'   f = f),zÿreturn diffopts with only opted-in features parsed

Features:
- git: git-style diffs
- whitespace: whitespace options like ignoreblanklines and ignorews
- formatchanging: options that will likely break or cause correctness issues
  with most diff parsers
Nc                óÌ   >• T(       a/  TR                  U 5      nU(       d  [        U[        5      (       a  U$ Ub  TR                  5       (       a  U$ U" TTU=(       d    U -   T	S9$ )N)r   )ÚgetÚ
isinstanceÚboolÚplain)
ÚkeyÚnameÚgetterÚ
forceplainÚvr   r   r   r   r   s
        €€€€€r   r   Údifffeatureopts.<locals>.getJ   s^   ø€ ö Ø—‘˜“ˆAö ”J˜q¤$×'Ñ'Ø�ØÑ! b§h¡h§j¡jØÐÙØ�\ T§[¨SÑ1¸Yñ
ð 	
r   ó   nodatess   show_functionó   showfuncs   unified)r!   )r%   r&   s   contexts   experimentals   xdiffs   gits   extendedheader.similaritys   showsimilaritys   extendedheader.indexr   é(   s.   invalid length for extendedheader.index: '%d'
s   shortr   é   s   fulls   nones-   invalid value for extendedheader.index: '%s'
s   indexs   ignore_all_spaces   ignorewss   ignore_space_changes   ignorewsamounts   ignore_blank_liness   ignoreblankliness   ignore_space_at_eols   ignorewseols   texts   binarys   nobinaryF)r"   s   noprefixs	   word_diffs	   word-diffs   worddiff)r   Úbytesr    zOptional[bytes]r"   zOptional[bool]Úreturnr   © )Ú
configboolÚconfigÚintr   ÚwarnÚ
ValueErrorr   r
   Údiffoptsr   Ú	strkwargs)r   r   r   r   r   r   r   r   r   Ú	buildoptsÚhconfÚhlenÚmsgÚbinarys   ````   `      r   r   r   7   s\  ü€ ð* !%Ø�}‰}Ø%)ð	
Øð
àð
ð #ð	
ð
 
÷
ô 
ñ2 ˜
“OÙÐ)¨;Ó7Ù˜
¨2¯9©9Ñ5ñ€Ið
 Ÿ-™-¨¸ÓB€IˆhÑæ
Ù ›Kˆ	�&Ñð (*§}¡}ØÐ9ó(
ˆ	Ð#Ñ$ð —	‘	˜/Ð+BÓCˆØÑØˆDð+ô ˜5“z�Ø˜!“8˜t b›yÜÐNÓO�CØ—G‘G˜C™JÔ'ð '+˜(Ñ#æÙ!$Ð%8¸+Ó!Fˆ	�+ÑÙ'*Ø"Ð$5ó(
ˆ	Ð#Ñ$ñ *-Ø!Ð#6ó*
ˆ	Ð%Ñ&ñ %(Ð(>ÀÓ$Oˆ	�.Ñ!ÞØ%)¡\™T°t·x±xÀÓ7Hˆ	�'ÑØ™‘¨4¯8©8°IÓ+>ˆð Ñ!ð �Já�[¨UÑ3ð 	�+Ññ
 "% [¸UÑ!Cˆ	�+ÑÙ!$Ø˜,°5ñ"
ˆ	�+Ñô �>Š>Ñ:œH×.Ò.¨yÓ9Ñ:Ð:øôE ó )à˜HÓ$¨°«Ø’DØ˜gÓ%Ø’DØ˜gÓ%ÜÐMÓN�CØ—G‘G˜C™KÔ(úð)ûð '+˜(Ò#ús<   Â5F ÆG#Æ/G& Æ1G#Æ9G& Æ;$G#ÇG& Ç"G#Ç#G& Ç&G,c                óZ  • U R                  5       nUR                  R                  SS5      (       aÈ  U R                  5       R	                  5       [
        :w  a¢  SSKJnJn  UR                  U5      nUR                  U R                  5       5        UR                  R                  SS0S5         UR                  R                  5          UR                  U R                  5       US9  S	S	S	5        S	S	S	5        U$ U R                  5       $ ! , (       d  f       N(= f! , (       d  f       U$ = f)
z“get the context object to use as parent when diffing


If diff.merge is enabled, an overlayworkingctx of the auto-merged parents will be returned.
ó   diffs   merger   )ÚcontextÚmerge)s   uis
   forcemerges#   internal:merge3-lie-about-conflictss
   merge-diff)ÚwcN)Úrepor   r,   Úp2Úrevr	   Ú r:   r;   ÚoverlayworkingctxÚsetbaseÚp1ÚconfigoverrideÚsilent)Úctxr=   r:   r;   Úwctxs        r   Údiff_parentrH   £   så   € ð �8‰8‹:€DØ‡w�w×Ñ˜' 8×,Ñ,°·±³·±³Ä7Ó1J÷	
ð
 ×(Ñ(¨Ó.ˆØ�‰�S—V‘V“XÔØ�W‰W×#Ñ#ðð :ð	ð õ
ð —‘—‘Õ!Ø—‘˜CŸF™F›H¨�Ñ.÷ "÷
ð ˆà�v‰v‹xˆ÷	 "Õ!ú÷
ô 
ð ˆús$   Â.DÃ	D
Ã(DÄ

D	ÄDÄ
D*)NFr9   r   )r   úuimod.uir   úOptional[_Opts]r   r   r   r)   r   r)   r*   úmdiff.diffopts)NFr9   FFFr   )r   rI   r   rJ   r   r   r   r)   r   r   r   r   r   r   r   r)   r*   rK   )Ú
__future__r   Útypingr   r   r   Úi18nr   Únoder	   r@   r
   r   ÚTYPE_CHECKINGr   Úuimodr)   Ú_Optsr   r   rH   r+   r   r   Ú<module>rS      s  ðõ #ã ÷ñ õ Ý ÷ð
 
××Ýð 	ˆU�CˆZÑ€ð
 !ØØØðØðà
ðð ðð ð	ð
 ðð õð, !ØØØØØ Øði;Øði;à
ði;ð ði;ð ð	i;ð
 
ði;ð ði;ð ði;ð ði;ð õi;óXr   