+
     BiH                       . ROt ^ RIHt ^ RIHt ^ RIHt ]! RR4      t	R	 t
 ! R
 R4      tR R ltR t ! R R4      tR!R ltR"R ltR tR#R ltR tR#R ltR tR$R ltR]3R ltRR]3R ltRtRtRtRt ! R R]4      tR tR# )%get_close_matchesSequenceMatcherDifferHtmlDiffMatch)nlargest)
namedtuple)GenericAliasza b sizec                 6    V'       d   R V ,          V,          # R# )g       @      ? )matcheslengths   &&/usr/lib/python3.14/difflib.py_calculate_ratior   '   s    W}v%%    c                      a  ] tR t^,t o RR ltR tR tR tR tRR lt	R t
R	 tRR
 ltR tR tR t]! ]4      tRtV tR# )r   Nc                \    Wn         R ;V n        V n        W@n        V P	                  W#4       R # N)isjunkabautojunkset_seqs)selfr   r   r   r   s   &&&&&r   __init__SequenceMatcher.__init__x   s)    v  ar   c                J    V P                  V4       V P                  V4       R # r   )set_seq1set_seq2)r   r   r   s   &&&r   r   SequenceMatcher.set_seqs   s     	aar   c                P    WP                   J d   R # Wn         R ;V n        V n        R # r   )r   matching_blocksopcodes)r   r   s   &&r   r   SequenceMatcher.set_seq1   s$    * ;.22t|r   c                ~    WP                   J d   R # Wn         R ;V n        V n        R V n        V P	                  4        R # r   )r   r"   r#   
fullbcount_SequenceMatcher__chain_b)r   r   s   &&r   r   SequenceMatcher.set_seq2   s5    * ;.22t|r   c                   V P                   p/ ;V n        p\        V4       F(  w  r4VP                  V. 4      pVP	                  V4       K*  	  \        4       ;V n        pV P                  pV'       dD   VP                  4        F$  pV! V4      '       g   K  VP                  V4       K&  	  V F  pW$ K  	  \        4       ;V n
        p\        V4      p	V P                  '       dc   V	^8  dZ   V	^d,          ^,           p
VP                  4        F(  w  rK\        V4      V
8  g   K  VP                  V4       K*  	  V F  pW$ K  	  R# R# R# )   N)r   b2j	enumerate
setdefaultappendsetbjunkr   keysaddbpopularlenr   items)r   r   r+   ieltindicesjunkr   popularnntestidxss   &           r   	__chain_bSequenceMatcher.__chain_b
  s    FF3lFAnnS"-GNN1 #
  E!
Txxz#;;HHSM " H  #&%'F===Q#XHqLE YY[	t9u$KK$ ) H  &=r   c                "   V P                   V P                  V P                  V P                  P                  3w  rVrxVf   \        V4      pVf   \        V4      pY^ rp	/ p. p\        W4       F  pVP                  p/ pVP                  W^,          V4       F[  pVV8  d   K  VV8  d    MJV! V^,
          ^ 4      ^,           ;pVV&   VV8  g   K:  VV,
          ^,           VV,
          ^,           Trp	K]  	  TpK  	  W8  d_   W8  dY   V! Wj^,
          ,          4      '       g>   WY^,
          ,          Wj^,
          ,          8X  d   V	^,
          V
^,
          V^,           rp	Kd  W,           V8  dU   W,           V8  dH   V! WjV,           ,          4      '       g-   WYV,           ,          WjV,           ,          8X  d   V^,          pKa  W8  d_   W8  dY   V! Wj^,
          ,          4      '       d>   WY^,
          ,          Wj^,
          ,          8X  d   V	^,
          V
^,
          V^,           rp	Kd  W,           V8  dU   W,           V8  dH   V! WjV,           ,          4      '       d-   WYV,           ,          WjV,           ,          8X  d   V^,           pKa  \        WV4      # r   )	r   r   r+   r0   __contains__r4   rangegetr   )r   aloahiblobhir   r   r+   isbjunkbestibestjbestsizej2lennothingr6   j2lengetnewj2lenjks   &&&&&              r   find_longest_match"SequenceMatcher.find_longest_match1  s   t "VVTVVTXXtzz7N7NNc;a&C;a&C!$1h sA yyHHWWQT7+s78"*1Q3"2Q"66HQKx<-.qSUAaCE1(E( , E !( kek!!G*%%ajAAgJ&%*1WeAgxz(E(ns"u~';!(N+,,h18^#44MH kekaaj!!ajAAgJ&%*1WeAgxz(E(ns"u~';ah'((h18^#44!|HU8,,r   c                   V P                   e   V P                   # \        V P                  4      \        V P                  4      r!^ V^ V3.p. pV'       d   VP	                  4       w  rVrxV P                  WVWx4      ;w  rrV'       g   K;  VP                  V4       WY8  d   Wz8  d   VP                  WYWz34       W,           V8  g   Kz  W,           V8  g   K  VP                  W,           WjV,           V34       K  VP                  4        ^ ;p;r. pV FL  w  pppW,           V8X  d   W,           V8X  d   VV,          pK,  V'       d   VP                  WV34       TTTrpKN  	  V'       d   VP                  WV34       VP                  W^ 34       \        \        \        P                  V4      4      V n         V P                   # r   )r"   r4   r   r   poprR   r.   sortlistmapr   _make)r   lalbqueuer"   rD   rE   rF   rG   r6   rP   rQ   xi1j1k1non_adjacenti2j2k2s   &                   r   get_matching_blocks#SequenceMatcher.get_matching_blocks  s   & +'''TVVc$&&kB RB !&Cc11#CEEGA! q&&q)7swLL##!1239sLL!#saC!56
 R)JBBw"}B b
  ''5R * -ba[*#C\$BC###r   c                \   V P                   e   V P                   # ^ ;r. ;V n         pV P                  4        Fq  w  rEpRpW8  d
   W%8  d   RpMW8  d   RpMW%8  d   RpV'       d   VP                  WqWBV34       WF,           WV,           r!V'       g   K]  VP                  RWAWR34       Ks  	  V# )N replacedeleteinsertequal)r#   re   r.   )r   r6   rP   answeraibjsizetags   &       r   get_opcodesSequenceMatcher.get_opcodes  s    : <<#<<	 ""v 446LBD Cv!&r247BGq t68' 7( r   c              #    "   V P                  4       pV'       g   R.pV^ ,          ^ ,          R 8X  d8   V^ ,          w  r4rVpV\        WEV,
          4      V\        WgV,
          4      V3V^ &   VR,          ^ ,          R 8X  d7   VR,          w  r4rVpW4\        WTV,           4      V\        WvV,           4      3VR&   W,           p. p	V F  w  r4rVpVR 8X  dl   WT,
          V8  d_   V	P                  W4\        WTV,           4      V\        WvV,           4      34       V	x  . p	\        WEV,
          4      \        WgV,
          4      rdV	P                  W4WVV34       K  	  V	'       d.   \	        V	4      ^8X  d   V	^ ,          ^ ,          R 8X  g   V	x  R# R# R# 5i)rl   N)rl          ru   rv   )rr   maxminr.   r4   )
r   r;   codesrq   r^   rb   r_   rc   nngroups
   &&        r   get_grouped_opcodes#SequenceMatcher.get_grouped_opcodes#  sX    2   "*+E8A;'!"'(CRRCqDM2s2!t}b@E!H9Q<7""')CRRRACqDMAE"IU#(CRR g~"%"*cs2!t}b#bQ$-HIRAB1BLL#22./ $) #e*a-E!HQK7,BK -C5s   EF	/F	c                    \        R  V P                  4        4       4      p\        V\        V P                  4      \        V P
                  4      ,           4      # )c              3   2   "   T F  qR,          x  K  	  R# 5i)rv   Nrw   r   ).0triples   & r   	<genexpr>(SequenceMatcher.ratio.<locals>.<genexpr>k  s     J/IVRjj/Is   )sumre   r   r4   r   r   )r   r   s   & r   ratioSequenceMatcher.ratioU  s?    , Jt/G/G/IJJTVVs466{)BCCr   c                   V P                   f8   / ;V n         pV P                   F  pVP                  V^ 4      ^,           W&   K   	  V P                   p/ pVP                  ^ rTV P                   FI  pV! V4      '       d
   W2,          pMVP                  V^ 4      pV^,
          W2&   V^ 8  g   K@  V^,           pKK  	  \        V\        V P                  4      \        V P                  4      ,           4      # r   )r&   r   rC   rA   r   r   r4   )r   r&   r7   availavailhasr   numbs   &      r   quick_ratioSequenceMatcher.quick_ration  s     ??"+--DOjvv",..a"81"<
 __
 !..'66C}}z!~~c1-EJax!A+   TVVs466{)BCCr   c                    \        V P                  4      \        V P                  4      r!\        \	        W4      W,           4      # r   )r4   r   r   r   ry   )r   rZ   r[   s   &  r   real_quick_ratio SequenceMatcher.real_quick_ratio  s0     TVVc$&&kB  BRW55r   )
r   r   r   r+   r0   r3   r&   r   r"   r#   )Nrh   rh   T)ru   Nru   N)   )__name__
__module____qualname____firstlineno__r   r   r   r   r'   rR   re   rr   r}   r   r   r   classmethodr	   __class_getitem____static_attributes____classdictcell____classdict__s   @r   r   r   ,   sZ     X>@
34X%Nr-hE$N5n0dD2D:
6 $L1r   c                    V^ 8  g   \        RV: 24      hRTu;8:  d   R8:  g   M \        RV: 24      h. p\        4       pVP                  V 4       V Fz  pVP                  V4       VP	                  4       V8  g   K+  VP                  4       V8  g   KB  VP                  4       V8  g   KY  VP                  VP                  4       V34       K|  	  \        W$4      pV UUu. uF  w  rvVNK	  	  upp# u uppi )ru   zn must be > 0: g        r   zcutoff must be in [0.0, 1.0]: )	
ValueErrorr   r   r   r   r   r   r.   	_nlargest)wordpossibilitiesr;   cutoffresultsr]   scores   &&&&    r   r   r     s    : 6344&CvGHHFAJJt	

16)==?f$779MM1779a.)  q!F$%f(%Af%%%s   $C5c                 D    R P                  R \        W4       4       4      # )rh   c              3   h   "   T F(  w  rVR 8X  d   VP                  4       '       d   TMTx  K*  	  R# 5i N)isspace)r   ctag_cs   &  r   r   $_keep_original_ws.<locals>.<genexpr>  s.      %HA c\aiikku4%s   #22)joinzip)r   tag_ss   &&r   _keep_original_wsr     s$    77 A  r   c                   N   a  ] tR tRt o RR ltR tR tR tR tR t	R	 t
R
tV tR# )r   i  Nc                    Wn         W n        R # r   linejunkcharjunk)r   r   r   s   &&&r   r   Differ.__init__*  s    ( ! r   c           	   #  ~  "   \        V P                  W4      pVP                  4        F  w  rErgpVR 8X  d   V P                  WWbWx4      p	M`VR8X  d   V P	                  RWV4      p	MEVR8X  d   V P	                  RW'V4      p	M*VR8X  d   V P	                  RWV4      p	M\        RV: 24      hT	 Rj  xL
  K  	  R#  L
5i)	ri   rj   -rk   +rl   r   unknown tag N)r   r   rr   _fancy_replace_dumpr   )
r   r   r   cruncherrq   rD   rE   rF   rG   gs
   &&&       r   compareDiffer.compareA  s     4 #4==!7'/';';'=#Cci''AJJsAC0JJsAC0JJsAC0 S!:;;LL (> s   B.B=0B;1B=c              #  T   "   \        W44       F  pV: R W%,          : 2x  K  	  R# 5ir   )rB   )r   rq   r]   lohir6   s   &&&&& r   r   Differ._dumpj  s      rA !$'' s   &(c              #     "   We,
          W2,
          8  d(   V P                  R WEV4      pV P                  RWV4      pM&V P                  RWV4      pV P                  R WEV4      pWx3 F  p	T	 Rj  xL
  K  	  R#  L
5i)r   r   N)r   )
r   r   rD   rE   r   rF   rG   firstsecondr   s
   &&&&&&&   r   _plain_replaceDiffer._plain_replaceo  sq      9sy ZZQS1EZZQS1FZZQS1EZZQS1FALL s   A,A;.A9/A;c           	   #    "   R p\        V P                  4      pVP                  p	VP                  p
VP                  p^
pR;rY%pp\        WV4       EF  pVP                  VV,          4       VVV,
          ,           p\        \        VV,
          V4      \        VV,           ^,           V4      4      pV'       g    EMTpV FO  pVP                  VV,          4       V	! 4       V8  g   K)  V
! 4       V8  g   K7  V! 4       V8  g   KE  TTV! 4       prKQ  	  Vf   K  V P                  WVVVV4       Rj  xL
  W,          WN,          ppVV8w  d   R;ppVP                  VV4       VP                  4        F  w  pppppVV,
          VV,
          p pVR8X  d#   VRV,          ,          pVRV ,          ,          pKD  VR8X  d   VRV,          ,          pK]  VR8X  d   VRV ,          ,          pKv  VR	8X  d#   VR
V,          ,          pVR
V ,          ,          pK  \        RV: 24      h	  V P                  VVVV4       Rj  xL
  MRV,           x  V^,           V^,           ppR;rEK  	  V P                  WVVVV4       Rj  xL
  R#  ELS LL L5i)gwJ?Nrh   ri   ^rj   r   rk   r   rl   r   r     )r   r   r   r   r   rB   r   rx   ry   r   _fancy_helperr   rr   r   _qformat)!r   r   rD   rE   r   rF   rG   r   r   crqrcqrcrWINDOWbest_ibest_jdump_idump_jrP   aequivarange
best_ratior6   aeltbeltatagsbtagsrq   ai1ai2bj1bj2rZ   r[   s!   &&&&&&&                          r   r   Differ._fancy_replace}  s    4 "4==1((""^^sAad# AG_F3v7v2C8:FJ!!!A$' FZ'%*,$+12ArtJFJ  ~ ))!V*+VV= = = AI$Dt| ""!!$-/7/C/C/E+Cc3 3Yc	Bi'r)r)r)r)r)r)(S)BCC 0F  ==tUEBBB Tk!#aZ!FF""FVg !l %%a&'6 	6 	6==, C	6sJ   C#J*	J8	J,J2J3DJ;J<AJ>J
?JJ
Jc              #     "   . pW#8  d/   WV8  d   V P                  WW4WV4      pM-V P                  R WV4      pMWV8  d   V P                  RWEV4      pT Rj  xL
  R#  L5i)r   r   N)r   r   )r   r   rD   rE   r   rF   rG   r   s   &&&&&&& r   r   Differ._fancy_helper  sX     9y''AJJsAC0Y

3,As   AA AA c              #     "   \        W4      P                  4       p\        W$4      P                  4       pR V,           x  V'       d	   RV R2x  RV,           x  V'       d   RV R2x  R# R# 5i)- z? 
+ N)r   rstrip)r   alinebliner   r   s   &&&&&r   r   Differ._qformat  sh       "%/668!%/668UlugR. UlugR.  s   A A/#A/)r   r   )NN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   @r   r   r     s1     l!.'R(
Z6x
! !r   Nc                 D    Vf   V P                  4       R9   # V! V 4      R J# )N#)strip)linepats   &&r   IS_LINE_JUNKr     s+     {zz|s"" t9D  r   c                 
    W9   # r   r   )chwss   &&r   IS_CHARACTER_JUNKr   &  s      8Or   c                     V ^,           pW,
          pV^8X  d   RP                  V4      # V'       g
   V^,          pRP                  W#4      # rv   z{}z{},{}formatstartstop	beginningr   s   &&  r   _format_range_unifiedr   =  sE     	I\F{{{9%%Q	>>),,r   c           	   #     "   \        WW#WEV4       R p\        RW4      P                  V4       EF2  p	V'       ga   RpV'       d   RP                  V4      MRp
V'       d   RP                  V4      MRpRP                  W*V4      x  RP                  W;V4      x  V	^ ,          V	R,          r\	        V^,          V^,          4      p\	        V^,          V^,          4      pRP                  WV4      x  V	 Fg  w  pppppVR8X  d   V VV  F  pR	V,           x  K  	  K)  VR9   d   V VV  F  pR
V,           x  K  	  VR9   g   KP  VVV  F  pRV,           x  K  	  Ki  	  EK5  	  R# 5i)FNT	{}rh   
--- {}{}{}z
+++ {}{}{}z@@ -{} +{} @@{}rl   r   r   r   rw   >   rj   ri   >   rk   ri   )_check_typesr   r}   r   r   )r   r   fromfiletofilefromfiledate
tofiledater;   linetermstartedr|   fromdatetodater   lastfile1_rangefile2_rangerq   r^   rb   r_   rc   r   s   &&&&&&&&              r   unified_diffr  H  sS    R x8LG a*>>qAG6Bv}}\2H2<V]]:."F%%h(CC%%fh??Ahb	t+E!Hd1g>+E!Hd1g>&&{JJ#(CRRg~bHD*$ %++bHD*$ %++bHD*$ % $) Bs   AE'E'C!E'"E'c                     V ^,           pW,
          pV'       g
   V^,          pV^8:  d   RP                  V4      # RP                  W"V,           ^,
          4      # r   r   r   s   &&  r   _format_range_contextr    sO     	I\FQ	{{{9%%>>)%7!%;<<r   c           	   #     "   \        WW#WEV4       \        R RRRR7      pRp	\        RW4      P                  V4       EF  p
V	'       ga   Rp	V'       d   RP	                  V4      MR	pV'       d   RP	                  V4      MR	pR
P	                  W+V4      x  RP	                  W<V4      x  V
^ ,          V
R,          rRV,           x  \        V^,          V^,          4      pRP	                  W4      x  \        ;QJ d    R V
 4       F  '       g   K   RM	  RM! R V
 4       4      '       d7   V
 F0  w  ppp pVR8w  g   K  V VV  F  pVV,          V,           x  K  	  K2  	  \        V^,          V^,          4      pRP	                  VV4      x  \        ;QJ d    R V
 4       F  '       g   K   RM	  RM! R V
 4       4      '       g   EK  V
 F0  w  p pppVR8w  g   K  VVV  F  pVV,          V,           x  K  	  K2  	  EK  	  R# 5i)r   r   z! r   )rk   rj   ri   rl   FNTr  rh   z
*** {}{}{}r  z***************z*** {} ****{}c              3   6   "   T F  w  p   q!R9   x  K  	  R# 5i)ri   N>   rj   ri   r   r   rq   _s   &  r   r   context_diff.<locals>.<genexpr>       I5Q1a++5   rk   z--- {} ----{}c              3   6   "   T F  w  p   q!R9   x  K  	  R# 5i)ri   N>   rk   ri   r   r  s   &  r   r   r    r  r  rj   rw   )r  dictr   r}   r   r  any)r   r   r  r  r  r  r;   r  prefixr	  r|   r
  r  r   r  r  rq   r^   rb   r  r   r  r_   rc   s   &&&&&&&&                r   context_diffr    s    X x8LdDEFG a*>>qAG6Bv}}\2H2<V]]:."F%%h(CC%%fh??Ahb	t(**+E!Hd1g>$$[;;3I5I333I5III%*!RQ(? !"R$SkD00 !) &+
 ,E!Hd1g>$$[(;;3I5I333I5III%*!Q2r(? !"R$SkD00 !) &+1 Bs8   AH
H
.B H
H
,H
 A,H
/H
H
!)H
c                    V '       dS   \        V ^ ,          \        4      '       g6   \        R\        V ^ ,          4      P                  : RV ^ ,          : R24      hV'       dS   \        V^ ,          \        4      '       g6   \        R\        V^ ,          4      P                  : RV^ ,          : R24      h\        V \        4      '       d&   \        R\        V 4      P                  ,          4      h\        V\        4      '       d&   \        R\        V4      P                  ,          4      hV F(  p\        V\        4      '       d   K  \        RV: 24      h	  R# )ru   z"lines to compare must be str, not  ()z+input must be a sequence of strings, not %sz all arguments must be str, not: N)
isinstancestr	TypeErrortyper   )r   r   argsargs   &&* r   r  r    s    	AaD#&&ad,,add4 5 	5AaD#&&ad,,add4 5 	5!SEQ(() * 	*!SEQ(() * 	*#s##CIJJ r   c	           
   #     "   R  p	\        \        W4      4      p\        \        W4      4      pV	! V4      pV	! V4      pV	! V4      pV	! V4      pV	! V4      pV ! WW4WVWx4      p
V
 F  pVP                  RR4      x  K  	  R# 5i)c                      V P                  R R4      #   \         d0   pR\        T 4      P                  : RT : R2p\	        T4      ThRp?ii ; i)asciisurrogateescapez!all arguments must be bytes, not r  r   N)decodeAttributeErrorr$  r   r#  )r   errmsgs   &  r   r+  diff_bytes.<locals>.decode  sK    	*88G%677 	*G$$a)CC.c)	*s    A*A		Ar)  r*  N)rW   rX   encode)dfuncr   r   r  r  r  r  r;   r  r+  linesr   s   &&&&&&&&&   r   
diff_bytesr3     s     * 	S^AS^AhHF^F,'L
#JhH!,APEkk'#455 s   A>B c                 6    \        W#4      P                  W4      # r   )r   r   )r   r   r   r   s   &&&&r   ndiffr5    s    F (%--a33r   c              #     aaaa"   ^ RI pVP                  R4      o\        WW44      o^ ^ .3V3R lloVV3R loV3R lpV! 4       pVf   T Rj  xL
  R# V^,          p^ p ^ R.V,          rRpVRJ d)    \        V4      w  rpY,          pYT3Y&   T	^,          p	K.  W8  d   Rx  TpMT	p^ p	V'       d'   W,          pV	^,          p	W,          x  V^,          pK.  V^,
          p V'       d2   \        V4      w  rpV'       d   V^,
          pM	V^,          pWV3x  K9  K   L  \         d     R# i ; i  \         d     R# i ; i5i)ru   Nz(\++|\-+|\^+)c                   < W2;;,          ^,          uu&   Vf!   W2,          V P                  ^ 4      R,          3# VR8X  d   V P                  ^ 4      V P                  ^ 4      rT. pV3R lpSP                  Wu4       \        V4       F4  w  pw  rV^ V	 R,           V,           WIV
 ,           R,           WJR ,           pK6  	  VR,          pM9V P                  ^ 4      R,          pV'       g   RpRV,           V,           R,           pW2,          V3# )rv   N   NN?c                     VP                  V P                  ^4      ^ ,          V P                  4       .4       V P                  ^4      # )rv   )r.   r|   span)match_objectsub_infos   &&r   record_sub_info3_mdiff.<locals>._make_line.<locals>.record_sub_info  s=    !3!3A!6q!9,:K:K:M NO#))!,,r    r   )rU   subreversed)r2  
format_keyside	num_linestextmarkersr>  r?  keybeginend	change_res   &&&&       r   
_make_line_mdiff.<locals>._make_linem  s    . 	1 OEIIaL$455!IIaL%))A,'H6> - MM/2 $,H#5KUAe}T)#-do=dB4:M $68D 99Q<#D *$t+d2D %%r   c               3   v  <"   . p ^ ^ r! \        V 4      ^8  d   V P                  \        SR4      4       K-  RP                  V  Uu. uF  q3^ ,          NK  	  up4      pVP	                  R4      '       d   TpEMVP	                  R4      '       d   S! V R^ 4      S! V R^4      R3x  K  VP	                  R4      '       d   V^,          pS! V R^ 4      RR3x  K  VP	                  R4      '       d   S! V R^ 4      RreV^,
          ^ rEM]VP	                  R	4      '       d   S! V R^ 4      S! V R^4      R3x  EK0  VP	                  R
4      '       d   S! V R^ 4      S! V R^4      R3x  EKa  VP	                  R4      '       d   V^,          pS! V R^ 4      RR3x  EK  VP	                  R4      '       d   V^,          pRS! V R^4      R3x  EK  VP	                  R4      '       d   RS! V R^4      reV^,           ^ rMjVP	                  R4      '       d   V^,          pRS! V R^4      R3x  EK$  VP	                  R4      '       d"   S! V R,          R^ 4      S! V R^4      R3x  EK\  V^ 8  d   V^,          pRx  K  V^ 8  d   V^,          pRx  K  VP	                  R4      '       d   R# XXR3x  EK  u upi 5i)ru   TXrh   z-?+?r:  z--++r   Nz-+?z-?+z+--r   r   :NNNF)z--?+z--+r   )r   z+-)Nrh   r   T)rR  NT)r4   r.   nextr   
startswith)	r2  num_blanks_pendingnum_blanks_to_yieldr   r   	from_lineto_linerN  diff_lines_iterators	          r   _line_iterator_mdiff.<locals>._line_iterator  s     23Q/ e*q.T"5s;<U3UTaU34A||C   '9#f%% s1-z%A/FLLf%% #a'" s1-tT99344 %/uS$;T'9KA9Ma$6e$$ tA.
5Q0GMMe$$ s1-z%Q/GMMc"""a'" s1-tT99e$$ #a'"JuS3T99l++%):eC+B79KA9Ma$6c"""a'"JuS3T99c"" q$q1*U42J5PP &)#q(#))%)#q(#))||C  ,,A 4sQ   AJ9J4J95J9/J9 AJ90J90J91J93AJ91J9A#J9(J9c               3   t  <"   S! 4       p . . r! \        V4      ^ 8X  g   \        V4      ^ 8X  d@    \        V 4      w  r4pTe   TP                  Y534       Tf   KK  TP                  YE34       K_  VP	                  ^ 4      w  r6VP	                  ^ 4      w  rGY4T;'       g    T3x  K    \         d     R# i ; i5i)TN)r4   rS  StopIterationr.   rU   )	line_iterator	fromlinestolinesrW  rX  
found_difffromDiffto_diffrZ  s	           r   _line_pair_iterator#_mdiff.<locals>._line_pair_iterator  s      '(R'y>1$Ga59-5H2I
 ($$i%;<&NNG#78"+--"2I&{{1~GX%8%899 % s.   ,B8B& B8AB8&B51B84B55B8F)NNN)recompiler5  rS  r]  )r_  r`  contextr   r   rf  rd  line_pair_iteratorlines_to_writeindexcontextLinesra  rW  rX  r6   rZ  rN  rM  rY  s   &&&&&          @@@@r   _mdiffrm  C  sv    D  

+,I  	(D78e 6&pV-p:B -.%%% 	1 #$dVW%5<J%59:L5M2I
 O#,z"B
 &&!(!& O
"o%!#$QYN$59:L5M2I
!)0&!+#j88 %I 	& % : ! sf   A
ED"%E7D$ 1E7/E'D6 /1D6  E$D3/E2D33E6EEEEan  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>
    <meta http-equiv="Content-Type"
          content="text/html; charset=%(charset)s" />
    <title></title>
    <style type="text/css">%(styles)s
    </style>
</head>

<body>
    %(table)s%(legend)s
</body>

</html>a  
        :root {color-scheme: light dark}
        table.diff {font-family: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace; border:medium}
        .diff_header {background-color:#e0e0e0}
        td.diff_header {text-align:right}
        .diff_next {background-color:#c0c0c0}
        .diff_add {background-color:palegreen}
        .diff_chg {background-color:#ffff77}
        .diff_sub {background-color:#ffaaaa}

        @media (prefers-color-scheme: dark) {
            .diff_header {background-color:#666}
            .diff_next {background-color:#393939}
            .diff_add {background-color:darkgreen}
            .diff_chg {background-color:#847415}
            .diff_sub {background-color:darkred}
        }aZ  
    <table class="diff" id="difflib_chg_%(prefix)s_top"
           cellspacing="0" cellpadding="0" rules="groups" >
        <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup>
        <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup>
        %(header_row)s
        <tbody>
%(data_rows)s        </tbody>
    </table>a  
    <table class="diff" summary="Legends">
        <tr> <th colspan="2"> Legends </th> </tr>
        <tr> <td> <table border="" summary="Colors">
                      <tr><th> Colors </th> </tr>
                      <tr><td class="diff_add">&nbsp;Added&nbsp;</td></tr>
                      <tr><td class="diff_chg">Changed</td> </tr>
                      <tr><td class="diff_sub">Deleted</td> </tr>
                  </table></td>
             <td> <table border="" summary="Links">
                      <tr><th colspan="2"> Links </th> </tr>
                      <tr><td>(f)irst change</td> </tr>
                      <tr><td>(n)ext change</td> </tr>
                      <tr><td>(t)op</td> </tr>
                  </table></td> </tr>
    </table>c                      a  ] tR tRt o ]t]t]t]t^ t^RR]	3R lt
RRR/R lltR tR tR	 tR
 tR tR tR tRR ltRtV tR# )r   i  Nc                6    Wn         W n        W0n        W@n        R # r   )_tabsize_wrapcolumn	_linejunk	_charjunk)r   tabsize
wrapcolumnr   r   s   &&&&&r   r   HtmlDiff.__init__  s      %!!r   charsetzutf-8c                   V P                   \        V P                  V P                  V P	                  WW4WVR 7      VR7      ,          P                  VR4      P                  V4      # ))rh  numlines)styleslegendtablerw  xmlcharrefreplace)_file_templater  _styles_legend
make_tabler0  r+  )r   r_  r`  fromdesctodescrh  ry  rw  s   &&&&&&&$r   	make_fileHtmlDiff.make_file  s`    & ##d<<<<//)h*1 " F'
 
 6'./w	@r   c                   a  V 3R  lpV Uu. uF
  qC! V4      NK  	  ppV Uu. uF
  qC! V4      NK  	  ppW3# u upi u upi )c                    < V P                  R R4      p V P                  SP                  4      p V P                  R R4      p V P                  RR 4      P                  R4      # )r   rA  	r   )ri   
expandtabsrp  r   )r   r   s   &r   expand_tabs2HtmlDiff._tab_newline_replace.<locals>.expand_tabs  sS    <<D)D??4==1D <<D)D<<S)0066r   r   )r   r_  r`  r  r   s   f&&  r   _tab_newline_replaceHtmlDiff._tab_newline_replace  sM    	7 4==94[&9	=189;t$9   >9s   7<c                V   V'       g   VP                  W#34       R # \        V4      pV P                  pWE8:  g$   WCP                  R4      ^,          ,
          V8:  d   VP                  W#34       R # ^ p^ pRpWu8  d^   Wd8  dX   W6,          R8X  d   V^,          pW6,          pV^,          pK5  W6,          R8X  d   V^,          pRpKO  V^,          pV^,          pKc  VR V p	W6R  p
V'       d   V	R,           p	RV,           V
,           p
VP                  W)34       V P	                  VRV
4       R # )NrA  rh   rB  >)r.   r4   rq  count_split_line)r   	data_listline_numrH  rp   rx   r6   r;   markline1line2s   &&&&       r   r  HtmlDiff._split_line  s    h_- 4yKdZZ%5a%78S@h_- g!(w$QwQDQQQ RaR
 DLE4K%'E 	()* 	3u-r   c              #  <  "   V F  w  r#pVf	   W#V3x  K  W#uw  rVw  rx. . rV P                  WV4       V P                  WV4       V	'       g   V
'       g   KS  V	'       d   V	P                  ^ 4      pMRpV
'       d   V
P                  ^ 4      pMRpW#V3x  KR  	  R # 5i)N)rh   r   )r  rU   )r   diffsfromdatatodataflagfromlinefromtexttolinetotextfromlisttolists   &&         r   _line_wrapperHtmlDiff._line_wrapper"  s      %* HD|d**2:/X !VXx8V62 ff'||AH'H#ZZ]F%Fd**- %*s   ABBB B< Bc                F   . . . rCpV F`  w  rVp VP                  V P                  ! ^ V.VO5!  4       VP                  V P                  ! ^V.VO5!  4       VP                  V4       Kb  	  W#V3#   \         d&    TP                  R4       TP                  R4        LHi ; i)ru   N)r.   _format_liner#  )r   r  r  r  flaglistr  r  r  s   &&      r   _collect_linesHtmlDiff._collect_lines>  s     $&b$) HD$ 1 1!D C( CDd//$??@
 OOD! %* x''  $%d#$s   AA00-B B c                4    R V,          pRV P                   V,          : V: R2pVP                  RR4      P                  RR4      P                  RR	4      pVP                  R
R4      P                  4       pRV: RV: RV: R2#   \         d    Rp Lpi ; i)z%dz id=""rh   &z&amp;r  z&gt;<z&lt;r   &nbsp;z<td class="diff_header"z</td><td nowrap="nowrap">z</td>)_prefixr#  ri   r   )r   rF  r  linenumrH  ids   &&&&& r   r  HtmlDiff._format_lineS  s    	WnG!%d!3G<B
 \\#g&..s6:BB3vN ||C)002 WT# 	#  	B	s   $B BBc                    R \         P                  ,          pR\         P                  ,          p\         ;P                  ^,          un        W.V n        R# )zfrom%d_zto%d_N)r   _default_prefixr  )r   
fromprefixtoprefixs   &  r   _make_prefixHtmlDiff._make_prefixj  s?    
 !9!99
X555  A% ",r   c                   V P                   ^,          pR.\        V4      ,          pR.\        V4      ,          p^ Rr^ p\        V4       FS  w  rV'       dE   V
'       g;   Rp
Tp\        ^ W,
          .4      pRWi3,          W|&   V	^,          p	RWi3,          W&   KO  KQ  Rp
KU  	  V'       g   R.pR.pR.p^ pV'       d   R.pTpMR.;rV^ ,          '       g   RV,          V^ &   R	V,          W&   WW8V3# )
rv   rh   FTz id="difflib_chg_%s_%d"z"<a href="#difflib_chg_%s_%d">n</a>z2<td></td><td>&nbsp;No Differences Found&nbsp;</td>z(<td></td><td>&nbsp;Empty File&nbsp;</td>z!<a href="#difflib_chg_%s_0">f</a>z#<a href="#difflib_chg_%s_top">t</a>)r  r4   r,   rx   )r   r  r  r  rh  ry  r  next_id	next_hrefnum_chg	in_changer  r6   r  s   &&&&&&        r   _convert_flagsHtmlDiff._convert_flagsu  s    <<? $s8}$DX&	)FA  $ID QqzN+A!:h=O!OGJ qLG&J!N+ '+IO ! "	! *$ wHdGIDPQ!%O$PP{{>IIaL?8L	x'99r   c           
        V P                  4        V P                  W4      w  rV'       d   TpMR p\        WWpP                  V P                  R7      pV P
                  '       d   V P                  V4      pV P                  V4      w  rpV P                  WWV4      w  rrp. pRp\        \        V4      4       Fi  pVV,          f   V^ 8  d   VP                  R4       K(  K*  VP                  WV,          VV,          V	V,          VV,          V
V,          3,          4       Kk  	  V'       g	   V'       d    RR: RV,          : R: RV,          : R2pMRpV P                  \        RP                  V4      VV P                  ^,          R7      ,          pVP!                  R	R
4      P!                  RR4      P!                  RR4      P!                  RR4      P!                  RR4      # )Nr   z)        </tbody>        
        <tbody>
z<thead><tr>z!<th class="diff_next"><br /></th>z+<th colspan="2" class="diff_header">%s</th>z</tr></thead>rh   )	data_rows
header_rowr  z +z<span class="diff_add">z -z<span class="diff_sub">z ^z<span class="diff_chg">rB  z</span>r  r  zV            <tr><td class="diff_next"%s>%s</td>%s<td class="diff_next">%s</td>%s</tr>
)r  r  rm  rr  rs  rq  r  r  r  rB   r4   r.   _table_templater  r   r  ri   )r   r_  r`  r  r  rh  ry  context_linesr  r  r  r  r  r  r   fmtr6   r  r|  s   &&&&&&&            r   r  HtmlDiff.make_table  s   ( 	 !55iH	 $M My#~~/ &&u-E $(#6#6u#=  6:5H5HHX6727 7s8}%A{" q5HHJK  #IaL!+4Q<q	!C C D & v3=H3=FF	HJ J$$tggaj!<<?($ $
 }}U#<=WU#<=WU#<=WT),WT(+		,r   )rs  rr  r  rp  rq  )rh   rh   F   )r   r   r   r   r~  r  r  r  r  r   r   r  r  r  r  r  r  r  r  r  r   r   r   s   @r   r   r     so       $NG%OGO4+""@8?@6!.5.n+8(*#.	--:^K, K,r   c              #      "    ^R^R/\        V4      ,          pRT3pT  F  pTR,          T9   g   K  TR,          x  K   	  R#   \         d    \        RT,          4      Rhi ; i5i)rv   r   r   z)unknown delta choice (must be 1 or 2): %rNr   :Nr9  Nr8  )intKeyErrorr   )deltawhichrq   prefixesr   s   &&   r   restorer    sv     ,.$4 U, c{H8xr(N 	  .D"# $)-	..s    A&A A&A&A##A&)r   r5  r  r   r   r   r   r  r  r3  r   r   )r   g333333?r   )z 	)rh   rh   rh   rh   r   r   )r   r   r   r   r      
) __all__heapqr   r   collectionsr   _namedtupletypesr	   r   r   r   r   r   r   r   r   r   r  r  r  r  r3  r5  rm  r~  r  r  r  objectr   r  r   r   r   <module>r     s   :> ( 1 GZ(
k	2 k	2\.&bj! j!z	!*.	-B%R	=J1XK.6< (9 #4J (,d%K\($"],v ],@r   