ó
    Eñië   ã                   ót  • S SK r S SKJr  S SKJr  S SKJrJrJrJ	r	J
r
JrJrJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJrJr  \ R0                  " S\ R2                  5      r\ R0                  " S5      r " S S\
5      r\	\   r\\/\4   r\\\/\4   r \ R0                  " S5      RB                  4S\S\ S\4S jjr"S\S\\\#\\   \\   4      4S jr$   S!S\S\\\4   S\%S\\   S\4
S jjr&\'S:X  aB  / SQr(S SK)J*r*  S SK+J,r,  \," SSSS 9r-\( H  r.\-R_                  \" \.5      \.5        M     \*" \-5        gg)"é    N)Úliteral_eval)Ú
attrgetter)ÚCallableÚIterableÚListÚMatchÚ
NamedTupleÚOptionalÚTupleÚUnioné   )Ú_emoji_replace)ÚEmojiVariant)ÚMarkupError)ÚStyle)ÚSpanÚTextz((\\*)\[([a-z#/@][^[]*?)])z^([\w.]*?)(\(.*?\))?$c                   ó^   • \ rS rSr% Sr\\S'    \\   \S'    S\4S jr\	S\4S j5       r
Srg	)
ÚTagé   zA tag in console markup.ÚnameÚ
parametersÚreturnc                 ój   • U R                   c  U R                  $ U R                   SU R                    3$ )NÚ ©r   r   ©Úselfs    ÚH/home/mande/repo/quber/.venv/lib/python3.13/site-packages/rich/markup.pyÚ__str__ÚTag.__str__   s3   € àŸ™Ñ0ˆD�I‰Ið	
Ø9=¿¹¸À1ÀTÇ_Á_ÐDUÐ6Vð	
ó    c                 óv   • U R                   c  SU R                   S3$ SU R                   SU R                    S3$ )z*Get the string representation of this tag.Ú[Ú]Ú=r   r   s    r   ÚmarkupÚ
Tag.markup!   sG   € ð
 �‰Ñ&ð �—	‘	ˆ{˜!Ðð	
ð �T—Y‘Y�K˜q §¡Ð 1°Ð3ð	
r"   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚstrÚ__annotations__r
   r    Úpropertyr'   Ú__static_attributes__r)   r"   r   r   r      sA   ‡ Ù"à
ƒIØ$Ø˜‘ÓØ3ð
˜ô 
ð
 ð
˜ó 
ó ó
r"   r   z(\\*)(\[[a-z#/@][^[]*?])r'   Ú_escaper   c                 ó¨   • S[         [           S[        4S jnU" X 5      n U R                  S5      (       a  U R                  S5      (       d  U S-   $ U $ )z®Escapes text so that it won't be interpreted as markup.

Args:
    markup (str): Content to be inserted in to markup.

Returns:
    str: Markup with square brackets escaped.
Úmatchr   c                 ó8   • U R                  5       u  pU U SU 3$ )z!Called by re.sub replace matches.Ú\)Úgroups)r5   ÚbackslashesÚtexts      r   Úescape_backslashesÚ"escape.<locals>.escape_backslashes=   s%   € à!ŸL™L›NÑˆØ�˜{˜m¨2¨d¨VÐ4Ð4r"   r7   z\\)r   r/   Úendswith)r'   r3   r;   s      r   Úescaper>   0   sR   € ð5¤%¬¡*ð 5´ô 5ñ
 Ð'Ó0€FØ‡��t×Ñ V§_¡_°V×%<Ñ%<Ø˜‰}Ðà€Mr"   c              #   óî  #   • Sn[         n[        n[        R                  U 5       H±  nUR	                  5       u  pVnUR                  5       u  p‰X�:”  a  X€X S4v •  U(       aI  U" [        U5      S5      u  p«U
(       a  USU
-  S4v •  XŠS-  -  nU(       a  X…[        U5      S S4v •  U	nM…  UR                  S5      u  pÍnUSU" XÍ(       a  UOS5      4v •  U	nM³     U[        U 5      :  a
  XUS S4v •  gg7f)z€Parse markup in to an iterable of tuples of (position, text, tag).

Args:
    markup (str): A string containing console markup

r   Né   r7   r&   )Údivmodr   ÚRE_TAGSÚfinditerr8   ÚspanÚlenÚ	partition)r'   ÚpositionÚ_divmodÚ_Tagr5   Ú	full_textÚescapesÚtag_textÚstartÚendr9   Úescapedr:   Úequalsr   s                  r   Ú_parserQ   I   s  é € ð €HÜ€GÜ€DÜ×!Ñ! &Ö)ˆØ',§|¡|£~Ñ$ˆ	˜HØ—Z‘Z“\‰
ˆØÓØ Ð/°Ð5Ò5ÞÙ#*¬3¨w«<¸Ó#;Ñ ˆKÞà˜T KÑ/°Ð5Ò5Ø q™Ñ(�Þà¤s¨7£| ~Ð6¸Ð<Ò<Ø�ÙØ#+×#5Ñ#5°cÓ#:Ñ ˆ�jØ�T™4 µF¡jÀÓEÐEÒEØŠñ% *ð& ”#�f“+ÓØ˜x˜yÐ)¨4Ð/Ó/ð ùs   ‚C3C5ÚstyleÚemojiÚemoji_variantc                 óT  ^^• [         nSU ;  a  [        U(       a	  U" XS9US9$ U US9$ [        US9nUR                  n[        R                  n/ mTR
                  m/ nUR                  n	[        n
[        nS[        S[        [        [        4   4UU4S jjn[        U 5       GHã  u  pÞnUb+  UR                  SS5      nU" U(       a  U" U5      OU5        M5  Uc  M:  UR                  R                  S	5      (       GaI  UR                  S
S R                  5       nU(       a  U" U5      n U" U5      u  nnO T" 5       u  nnUR                  R                  S5      (       aÀ  UR(                  (       a~  SnUR(                  R                  5       n[*        R-                  U5      nUb  UR/                  5       u  nnUc  SOUn [1        U5      nU(       a  U[9        U[:        5      (       a  UOU44nOSnU	" U
" U[=        U5      [        UR                  U0S95      5        GM  U	" U
" U[=        U5      [        U5      5      5        GM¤  U" U" UR                  5      UR(                  5      nTR                  [=        U5      U45        GMæ     [=        U5      nT(       a>  TR                  5       u  nn[        U5      nU(       a  U	" U
" UUU5      5        T(       a  M>  [?        USSS2   [A        S5      S9Ul!        U$ ! [          a    [#        SUR$                   SU S35      Sef = f! [&         a    [#        SU S35      Sef = f! [2         a/  n[#        SU< SUR(                  < SUR4                   35      eSnAf[6         a"  n[#        SUR(                  < SU 35      SeSnAff = f)a³  Render console markup in to a Text instance.

Args:
    markup (str): A string containing console markup.
    style: (Union[str, Style]): The style to use.
    emoji (bool, optional): Also render emoji code. Defaults to True.
    emoji_variant (str, optional): Optional emoji variant, either "text" or "emoji". Defaults to None.


Raises:
    MarkupError: If there is a syntax error in the markup.

Returns:
    Text: A test instance.
r$   )Údefault_variant)rR   Ú
style_namer   c                 ó’   >• [        [        T5      S5       H#  u  nu  p#UR                  U :X  d  M  T" U* 5      s  $    [        U 5      e)z"Pop tag matching given style name.r   )Ú	enumerateÚreversedr   ÚKeyError)rW   ÚindexÚ_ÚtagÚpopÚstyle_stacks       €€r   Ú	pop_styleÚrender.<locals>.pop_style’   sE   ø€ ä(¬°+Ó)>ÀÖB‰OˆE‘8�AØ�x‰x˜:Õ%Ù˜E˜6“{Ò"ñ  Cô �zÓ"Ð"r"   Nz\[Ú/r   zclosing tag 'z' at position z doesn't match any open tagzclosing tag '[/]' at position z has nothing to closeÚ@Ú z()zerror parsing z in z; r)   )ÚmetaéÿÿÿÿrM   )Úkey)"r   r   Úappendr   Ú	normalizer_   r   r   r/   r   ÚintrQ   Úreplacer   Ú
startswithÚstripr[   r   r'   Ú
IndexErrorr   Ú
RE_HANDLERr5   r8   r   ÚSyntaxErrorÚmsgÚ	ExceptionÚ
isinstanceÚtuplerE   Úsortedr   Úspans)r'   rR   rS   rT   Úemoji_replacer:   ri   rj   rw   Úappend_spanÚ_SpanrI   ra   rG   Ú
plain_textr^   rW   rM   Úopen_tagÚhandler_namer   Úhandler_matchÚmatch_parametersÚmeta_paramsÚerrorÚnormalized_tagÚtext_lengthr_   r`   s                              @@r   Úrenderr„   j   s¨  ù€ ô* #€MØ
�&ÓÜÞDI‰M˜&Ñ@Øñ
ð 	
ØOUØñ
ð 	
ô �eÑ€DØ�[‰[€FÜ—‘€Ià)+€KØ
�/‰/€Cà€EØ—,‘,€Kä€EÜ€Dð#œcð #¤e¬C´¨H¡o÷ #ð #ô &,¨F§^Ñ!ˆ˜cØÑ!à#×+Ñ+¨E°3Ó7ˆJÙ¶‘= Ô,¸:ÖFØ‹_Ø�x‰x×"Ñ" 3×'Ò'Ø ŸX™X a b˜\×/Ñ/Ó1�
æÙ!*¨:Ó!6�Jð$Ù*3°JÓ*?™˜™xð$Ù*-«%™˜˜xð —=‘=×+Ñ+¨C×0Ñ0Ø×*×*Ø')˜Ø%-×%8Ñ%8×%>Ñ%>Ó%@˜
Ü(2×(8Ñ(8¸Ó(D˜Ø(Ñ4Ø=J×=QÑ=QÓ=SÑ:˜LÐ*:à(8Ñ(@¡ÐFVð 'ð	(Ü*6°zÓ*B˜Kö (à ,ä#-¨k¼5×#AÑ#Añ !,à&1 ^ð	+˜Køð ')˜áÙØ!¤3 t£9¬e¸(¿-¹-ÈÐ9UÑ.Vó÷ñ  ¡ e¬S°«Y¼¸H»Ó F×Gñ "&¡i°·±Ó&9¸3¿>¹>Ó!J�Ø×"Ñ"¤C¨£I¨~Ð#>×?ñI &4ôL �d“)€KÞ
Ø —_‘_Ó&‰
ˆˆsÜ�C“ˆÞÙ™˜e [°%Ó8Ô9÷	 ˆ+ô ˜™d ˜d™¬°GÓ)<Ñ=€D„JØ€KøôC $ó $Ü)Ø+¨C¯J©J¨<°~ÀhÀZÐOjÐkóà#ð$ð$ûô &ó $Ü)Ø<¸X¸JÐF[Ð\óà#ð$ð$ûô$  +ó Ü"-Ø"0°±¸dÀ8×CVÑCVÑBYÐY[Ð\a×\eÑ\eÐ[fÐ gó#ð ûô  )ó (Ü"-Ø"0°×1DÑ1DÑ0GÀrÈ%ÈÐ Qó#à#'ð(ûð(ús<   Ä+K;Ä8
L&ÇMË;(L#Ì&MÍ
N'Í*M8Í8N'ÎN"Î"N'Ú__main__)z[red]Hello World[/red]z[magenta]Hello [b]World[/b]z9[bold]Bold[italic] bold and italic [/bold]italic[/italic]zDClick [link=https://www.willmcgugan.com]here[/link] to visit my Blogz+:warning-emoji: [bold red blink] DANGER![/])Úprint)ÚTableÚMarkupÚResult)r   r   )Úpadding)re   TN)0ÚreÚastr   Úoperatorr   Útypingr   r   r   r   r	   r
   r   r   r   rS   r   Úerrorsr   rR   r   r:   r   r   ÚcompileÚVERBOSErB   rp   r   r/   Ú_ReStringMatchÚ_ReSubCallableÚ_EscapeSubMethodÚsubr>   rk   rQ   Úboolr„   r*   ÚMARKUPÚrichr†   Ú
rich.tabler‡   Úgridr'   Úadd_rowr)   r"   r   Ú<module>rœ      s’  ðÛ 	Ý Ý ß V× VÓ Vå *Ý Ý Ý ß à
�*Š*Ø%Ø‡J�Jó€ð
 �ZŠZÐ0Ó1€
ô
ˆ*ô 
ð. �s‘€Ø˜>Ð*¨CÐ/Ñ0€Ø˜^¨SÐ1°3Ð6Ñ7Ð ð
 !#§
¢
Ð+FÓ G× KÑ KñØðàðð 	õð20�3ð 0˜8 E¨#¨x¸©}¸hÀs¹mÐ*KÑ$LÑMô 0ðF  "ØØ,0ñ	}Øð}à��e�Ñð}ð ð}ð ˜LÑ)ð	}ð
 
õ}ð@ ˆzÓò€Fõ Ý á�˜8¨VÑ4€DãˆØ�‰‘T˜&“\ 6Ö*ñ ñ 
ˆ$…Kð# r"   