+
    "Ý³j~@  ã                   óÌ  € R t ^ RIHt ^ RIHt ^ RIt^ RIt^ RIt^ RIH	t	H
t
Ht RtRtRtRt]P                   ! R	4      t^tRQt]! ]4      ^,
          tR
tRtRtRt/ ^Rb^Rb^ Rb^!Rb^"Rb^#Rb^$Rb^%Rb^ZRb^[Rb^\Rb^]Rb^^Rb^_Rb^`Rb^aRbt]! RR7      R  R! l4       t]! R"R7      R# R$ l4       t]! R"R7      R% R& l4       t]! R"R7      R' R( l4       t]! R"R7      R) R* l4       t]! R"R7      R+ R, l4       t ]! R"R7      R- R. l4       t!]! R"R7      R/ R0 l4       t"R1 R2 lt#]! RR7      R3 R4 l4       t$R5 R6 lt%R7 R8 lt&]! R9R7      R: R; l4       t']! RR7      R< R= l4       t(R> R? lt)]! R@R7      RA RB l4       t*]! R"R7      RC RD l4       t+]! R"R7      RE RF l4       t,RG RH lt-]! RR7      RI RJ l4       t.]! RKRL7       ! RM RN4      4       t/]! RKRL7       ! RO RP4      4       t0R# )Rz<Shared ANSI-aware drawing primitives for terminal rendering.)Ú	dataclass)Ú	lru_cacheN)ÚCallableÚOptionalÚSequencez[0mz[22mz[38;5;250mz[1m[38;5;15mz\x1B\[[0-9;?]*[ -/]*[@-~]u   â€�u   ï¸Žu   ï¸�u   âƒ£ú#000000z#aa0000z#00aa00z#aa5500z#0000aaz#aa00aaz#00aaaaz#aaaaaaz#555555z#ff5555z#55ff55z#ffff55z#5555ffz#ff55ffz#55ffffú#ffffffi    )Úmaxsizec                ó0   € V ^8„  d   QhR\         R\         /# ©é   ÚtextÚreturn©Ústr)Úformats   "ÚO/home/luca/screen-checking/.venv/lib/python3.14/site-packages/logbar/drawing.pyÚ__annotate__r   3   s   € ÷ (ñ (”Sð (œSñ (ó    c                ó@   € RV 9  d   V # \         P                  RV 4      # )zBRemove ANSI control sequences while leaving printable text intact.ÚÚ )ÚANSI_ESCAPE_REÚsub©r   s   &r   Ú
strip_ansir   2   s$   € ð �TÔØˆÜ×Ñ˜b $Ó'Ð'r   i   c                ó0   € V ^8„  d   QhR\         R\        /# ©r   Úcharr   ©r   Úbool)r   s   "r   r   r   <   s   € ÷ Lñ L¤ð L¬ñ Lr   c                ó€   € \        V 4      pRTu;8*  ;'       d    R8*  Mu ;'       g    RTu;8*  ;'       d    R8*  # u # )zAReturn whether the codepoint is an emoji/text variation selector.i þ  iþ  i  iï ©Úord©r   Ú	codepoints   & r   Ú_is_variation_selectorr&   ;   s;   € ô �D“	€IØ�Y×(Ô( &Ô(×KÐK¨G°y×,KÔ,KÀGÑ,KÐKÑ,KÐKr   c                ó0   € V ^8„  d   QhR\         R\        /# r   r   )r   s   "r   r   r   D   s   € ÷ +ñ +¤ð +¬ñ +r   c                óD   € \        V 4      pRTu;8*  ;'       d    R8*  # u # )z>Return whether the codepoint participates in flag emoji pairs.iæñ iÿñ r"   r$   s   & r   Ú_is_regional_indicatorr)   C   ó&   € ô �D“	€IØ�i×*Ô* 7Ñ*Ð*Ñ*Ð*r   c                ó0   € V ^8„  d   QhR\         R\        /# r   r   )r   s   "r   r   r   L   s   € ÷ +ñ +œSð +¤Tñ +r   c                óD   € \        V 4      pRTu;8*  ;'       d    R8*  # u # )z=Return whether the codepoint is a Fitzpatrick emoji modifier.iûó iÿó r"   r$   s   & r   Ú_is_emoji_modifierr-   K   r*   r   c                ó0   € V ^8„  d   QhR\         R\        /# r   r   )r   s   "r   r   r   T   s   € ÷ 0ñ 0œ#ð 0¤$ñ 0r   c                ó<   € V P                  4       ;'       g    V R9   # )z9Return whether the character can start a keycap grapheme.¾   Ú#Ú*)Úisdigit)r   s   &r   Ú_is_keycap_baser4   S   s   € ð �<‰<‹>×/Ð/˜T ZÑ/Ð/r   c                ó0   € V ^8„  d   QhR\         R\        /# r   r   )r   s   "r   r   r   [   s   € ÷ ,ñ ,œSð ,¤Tñ ,r   c                ó  € V \         8X  d   R# V \        \        \        09   d   R# \	        V 4      '       g   \        V 4      '       d   R# \        P                  ! V 4      pVR9   d   R# VR8X  d   R# \        P                  ! V 4      ^ 8g  # )zCTreat combining marks and zero-width formatting chars as widthless.FTÚCf>   ÚMeÚMn)	Ú_ZERO_WIDTH_JOINERÚ_EMOJI_TEXT_VARIATIONÚ_EMOJI_PRESENTATION_VARIATIONÚ_KEYCAP_COMBININGr&   r-   ÚunicodedataÚcategoryÚ	combining©r   r?   s   & r   Ú_is_combining_likerB   Z   sz   € ð Ô!Ô!ÙàÔ%Ô'DÔFWÐXÔXÙä˜d×#Ò#Ô'9¸$×'?Ò'?Ùä×#Ò# DÓ)€HØ�<ÔÙà�4ÔÙä× Ò  Ó&¨!Ñ+Ð+r   c                ó0   € V ^8„  d   QhR\         R\        /# r   r   )r   s   "r   r   r   r   s   € ÷ 	ñ 	œsð 	¤tñ 	r   c                óÖ   € \        V 4      pV R9   ;'       gS    RT u;8*  ;'       d    R8*  Mu ;'       g5    RTu;8*  ;'       d    R8*  Mu ;'       g    RTu;8*  ;'       d    R8*  # u # )z@Return whether emoji presentation can widen this base character.Ú0Ú9i &  i¿'  i ð iÿú r0   r"   r$   s   & r   Ú_can_expand_to_emojirG   q   st   € ô �D“	€Ià�
Ñ÷ 	+ð 	+Ø�$×Ô˜#Ô÷	+ð 	+à�Y×(Ô( &Ô(÷	+ð 	+ð �i×*Ô* 7Ñ*ð	ñ +ð	r   c                ó0   € V ^8„  d   QhR\         R\        /# r   ©r   Úint)r   s   "r   r   r      s   € ÷ ñ œ3ð ¤3ñ r   c                óü   € V '       g   ^ # V R9   d   ^ # V R8X  d   ^# \        V 4      '       d   ^ # \        P                  ! V 4      pVP                  R4      '       d   ^ # \        P                  ! V 4      R9   d   ^# ^# )zCEstimate the terminal cell width for a single standalone codepoint.Ú	ÚC¾   Ú
Ú>   ÚFÚW)rB   r>   r?   Ú
startswithÚeast_asian_widthrA   s   & r   Ú_base_cell_widthrU   ~   sj   € ÷ Ùàˆ|ÔÙàˆt„|Ùä˜$×ÒÙä×#Ò# DÓ)€HØ×Ñ˜3×ÒÙä×#Ò# DÓ)¨ZÔ7Ùár   c                ó^   € V ^8„  d   QhR\         R\        R\        \         \        3,          /# )r   r   Ústartr   )r   rJ   Útuple)r   s   "r   r   r   ˜   s)   € ÷ $ñ $¤ð $¬Sð $´U¼3Ä¸8µ_ñ $r   c                ó  € \        V 4      pW,          .pV^,           p\        V^ ,          4      '       d>   WB8  d8   \        W,          4      '       d!   VP                  W,          4       V^,          pWB8  d:   \        W,          4      '       d#   VP                  W,          4       V^,          pK?  WB8  dJ   W,          \        8X  d9   \        V^ ,          4      '       d!   VP                  W,          4       V^,          pWB8  dï   W,          \        8X  dÞ   VP                  W,          4       V^,          pWB8¼  d   M¶VP                  W,          4       V^,          pWB8  d:   \        W,          4      '       d#   VP                  W,          4       V^,          pK?  WB8  g   K¥  W,          \        8X  g   K¸  \        VR,          4      '       g   KÒ  VP                  W,          4       V^,          pKô  RP                  V4      V3# )z<Consume one printable grapheme-like cluster from plain text.r   éÿÿÿÿ)Úlenr)   ÚappendrB   r=   r4   r:   Újoin)r   rW   ÚlengthÚclusterÚis   &&   r   Ú_consume_plain_clusterra   ˜   sl  € ô �‹Y€FØ�{ˆm€GØ��	€Aä˜g a�j×)Ò)¨a¬jÔ=SÐTXÕT[×=\Ò=\Ø�‰�t•wÔØ	ˆQ�ˆà
Œ*Ô+¨D­G×4Ò4Ø�‰�t•wÔØ	ˆQ�Šà„z�d•gÔ!2Ô2´ÀwÈqÅz×7RÒ7RØ�‰�t•wÔØ	ˆQ�ˆà
Œ*˜�Ô$6Ô6Ø�‰�t•wÔØ	ˆQ�ˆØŒ;Øà�‰�t•wÔØ	ˆQ�ˆàŒjÔ/°µ×8Ò8Ø�N‰N˜4�7Ô#Ø��FŠAàŽ:˜$�'Ô%6Ö6¼?È7ÐSUÍ;×;WÔ;WØ�N‰N˜4�7Ô#Ø��FŠAà�7‰7�7Ó˜QÐÐr   c                ó0   € V ^8„  d   QhR\         R\        /# )r   r_   r   rI   )r   s   "r   r   r   À   s   € ÷ ñ ¤ð ¬ñ r   c                óŽ  € V '       g   ^ # \         ;QJ d    R V  4       F  '       g   K   RM	  RM! R V  4       4      '       d   ^ # \        V 9   d   ^# \         ;QJ d    R V  4       F  '       g   K   RM	  RM! R V  4       4      '       d   ^# \        V 9   d?   \         ;QJ d    R V  4       F  '       g   K   RM	  RM! R V  4       4      '       d   ^# ^ # \        R V  4       4      pV^ 8:  d   ^ # \        V 9   dG   \         ;QJ d    R V  4       F  '       g   K   RM	  RM! R V  4       4      '       d   \        ^V4      # V# )z?Estimate terminal width for one already-clustered display atom.c              3   ó*   "  € T F	  qR9   x € K  	  R# 5i)rP   NrN   © ©Ú.0Úchs   & r   Ú	<genexpr>Ú&_cluster_cell_width.<locals>.<genexpr>Æ   s   é € Ð
0© "�Ö«ùs   ‚TFc              3   ó8   "  € T F  p\        V4      x € K  	  R # 5i©N)r)   rf   s   & r   ri   rj   Ì   s   é € Ð
8±¨"Ô! "×%Ð%³ùó   ‚c              3   ó>   "  € T F  p\        V4      ^ 8„  x € K  	  R# 5i)é    N©rU   rf   s   & r   ri   rj   Ð   s   é € ÐC¹7°RÔ(¨Ó,¨qÖ0»7ùs   ‚c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irl   rp   rf   s   & r   ri   rj   Ò   s   é € Ð7©w¨Ô  ×$Ð$«wùrm   c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irl   )rG   rf   s   & r   ri   rj   Ö   s   é € Ð7cÑ[bÐUWÔ8LÈR×8PÐ8PÓ[bùrm   )Úanyr=   r:   Úsumr<   Úmax)r_   Úwidths   & r   Ú_cluster_cell_widthrw   ¿   så   € ÷ Ùç
ƒsÑ
0©Ó
0‡s‡s‚sÑ
0©Ó
0×0Ò0Ùä˜GÔ#Ùç
ƒsÑ
8±Ó
8‡s‡s‚sÑ
8±Ó
8×8Ò8Ùä˜WÔ$ß“CÑC¹7ÓC—C—C’CÑC¹7ÓC×CÒCˆqÐJÈÐJäÑ7©wÓ7Ó7€EØ�„zÙä$¨Ô/·C³CÑ7cÑ[bÓ7c·C·C²CÑ7cÑ[bÓ7c×4cÒ4cÜ�1�e‹}Ðà€Lr   c                ó$   € V ^8„  d   QhR\         /# ©r   r   r   )r   s   "r   r   r   Ü   s   € ÷ ñ œsñ r   c              #  óX   "  € ^ pV\        V 4      8  d   \        W4      w  r!Vx € K#  R# 5i)zAYield printable clusters from text that contains no ANSI escapes.N)r[   ra   )r   r`   r_   s   &  r   Ú_iter_plain_clustersr{   Ü   s-   é € ð 	
€AØ
Œc�$‹iŒ-Ü+¨DÓ4‰
ˆØŒñ ùs   ‚(*c                ó$   € V ^8„  d   QhR\         /# ry   r   )r   s   "r   r   r   å   s   € ÷ ñ œSñ r   c              #  óž  "  € ^ p^ pV\        V 4      8  dµ   W,          R8X  dF   \        P                  W4      pV'       d)   RVP                  ^ 4      ^ 3x € VP	                  4       pKb  \        W4      w  rBVR8X  d)   V\        ,          pV^ 8X  d   \        M\        V,
          pM\        V4      pRWF3x € VR9   d   ^ pKº  W,          pKÄ  R# 5i)zDYield ANSI tokens and printable clusters with their terminal widths.r   TrL   FNrN   )r[   r   ÚmatchÚgroupÚendra   ÚTAB_STOPrw   )r   Úcolumnr`   r~   r_   Ú	remainderrv   s   &      r   Úiter_display_atomsr„   å   s¹   é € ð €FØ	€AØ
Œc�$‹iŒ-Ø�7�fÔÜ"×(Ñ(¨Ó1ˆEßØ˜EŸK™K¨›N¨AÐ-Ò-Ø—I‘I“K�Ùä+¨DÓ4‰
ˆØ�dŒ?Ø¤Õ)ˆIØ )¨Q¤•H´H¸yÕ4H‰Eä'¨Ó0ˆEà�WÐ#Ò#à�lÔ"ØŠFà�OŠFñ) ùs   ‚CCi   c                óv   € V ^8„  d   QhR\         R\        \        \        \         \        3,          R3,          /# )r   r   r   .)r   rX   r    rJ   )r   s   "r   r   r     s/   € ÷ +ñ +œsð +¤u¬U´4¼¼c°>Õ-BÀCÐ-GÕ'Hñ +r   c                ó*   € \        \        V 4      4      # )z5Memoize tokenized display atoms for hot render paths.)rX   r„   r   s   &r   Úcached_display_atomsr‡     s   € ô Ô# DÓ)Ó*Ð*r   c                ó0   € V ^8„  d   QhR\         R\        /# r   rI   )r   s   "r   r   r   	  s   € ÷ ñ œð ¤ñ r   c                óÚ   € V '       g   ^ # V P                  4       '       d"   V P                  4       '       d   \        V 4      # ^ p\        V 4       F  w  r#pV'       d   K  W,          pK  	  V# )z;Return the rendered terminal cell width of ANSI-aware text.)ÚisasciiÚisprintabler[   r„   )r   Ú	printableÚis_ansiÚ_tokenrv   s   &    r   Úvisible_lengthr�     s[   € ÷ Ùà‡|�|‡~‚~˜$×*Ñ*×,Ò,Ü�4‹yÐà€IÜ"4°TÖ":Ñˆ˜ß‰wØÕŠIñ #;ð Ðr   c                ó$   € V ^8„  d   QhR\         /# ry   r   )r   s   "r   r   r     s   € ÷ ñ œ3ñ r   c              #  ó  "  € ^ pV\        V 4      8  di   W,          R8X  dE   \        P                  W4      pV'       d(   RVP                  ^ 4      3x € VP	                  4       pKa  RW,          3x € V^,          pKx  R# 5i)z?Yield raw ANSI escape tokens interleaved with plain characters.r   TFN)r[   r   r~   r   r€   )r   r`   r~   s   &  r   Úiter_ansi_tokensr’     so   é € ð 	
€AØ
Œc�$‹iŒ-Ø�7�fÔÜ"×(Ñ(¨Ó1ˆEßØ˜EŸK™K¨›NÐ*Ò*Ø—I‘I“K�ÙØ�T•WˆnÒØ	ˆQ�Šñ ùs   ‚A=A?i   c                ó0   € V ^8„  d   QhR\         R\        /# )r   Úcoder   ©rJ   r   )r   s   "r   r   r   )  s   € ÷ "-ñ "-œCð "-¤Cñ "-r   c           	     ó¬  € \        ^ \        ^ÿ\        V 4      4      4      p V ^8  d;   / ^ Rb^Rb^Rb^Rb^Rb^Rb^Rb^Rb^R	b^	R
b^
Rb^Rb^Rb^Rb^Rb^RbpW,          # V ^è8  dL   V ^,
          pV^$,          pV^$,          ^,          pV^,          pRpRWc,           RWd,           RWe,           R2# ^V ^è,
          ^
,          ,           pRV RV RV R2# )z;Map an xterm 256-color palette index to a CSS color string.r   z#800000z#008000z#808000z#000080z#800080z#008080z#c0c0c0z#808080z#ff0000z#00ff00z#ffff00z#0000ffz#ff00ffz#00ffffr   úrgb(ú, Ú))ro   é_   é‡   é¯   é×   éÿ   )ru   ÚminrJ   )r”   ÚtableÚcolorÚredÚgreenÚblueÚlevelsÚlevels   &       r   Ú_xterm_256_to_cssr§   (  ss  € ô ˆq”#�cœ3˜t›9Ó%Ó&€DØˆb„yð
Øˆyð
àˆyð
ð ˆyð
ð ˆyð	
ð
 ˆyð
ð ˆyð
ð ˆyð
ð ˆyð
ð ˆyð
ð ˆyð
ð �	ð
ð �	ð
ð �	ð
ð �	ð
ð �	ð
ð  �	ð!
ˆð$ �{Ðàˆc„zØ�r•	ˆØ�r�kˆØ˜• Õ!ˆØ�q�yˆØ,ˆØ�f•k�] " V¥] O°2°fµl°^À1ÐEÐEà�$˜•* Õ"Õ#€EØ�%�˜˜5˜'  E 7¨!Ð,Ð,r   c          
      ój   € V ^8„  d   QhR\         R\        R\        R\        \         \        3,          /# )r   ÚboldÚfg_colorÚtokenr   )r    r   rX   )r   s   "r   r   r   O  s1   € ÷ $ñ $œ4ð $¬3ð $´sð $¼uÄTÌ3ÀYÕ?Oñ $r   c           	     ó¾  € VP                  R4      '       g   W3# V^R	 pV'       g   ^ .M2VP                  R4       Uu. uF  qD'       d   \        V4      M^ NK  	  upp^ pV\        V4      8  Edg   WV,          pV^ 8X  d   Rp RpEMEV^8X  d   Rp EM:V^8X  d   Rp EM/V^'8X  d   RpEM$V\        9   d   \        V,          pEM
V^&8X  Ed   V^,           \        V4      8  dì   WV^,           ,          pV^8X  d:   V^,           \        V4      8  d#   \        WV^,           ,          4      pV^,          pMœV^8X  d–   V^,           \        V4      8  d   \        ^ \        ^ÿWV^,           ,          4      4      p	\        ^ \        ^ÿWV^,           ,          4      4      p
\        ^ \        ^ÿWV^,           ,          4      4      pRV	 RV
 RV R2pV^,          pV^,          pEKw  W3# u upi )
z?Apply one SGR token to the current bold/foreground style state.ÚmÚ;Fr   Tr—   r˜   r™   rZ   )ÚendswithÚsplitrJ   r[   Ú_ANSI_BASIC_FGr§   ru   rŸ   )r©   rª   r«   ÚparamsÚpartÚvaluesÚidxr”   Úmoder¢   r£   r¤   s   &&&         r   Ú_apply_sgr_styler·   N  s¡  € ð �>‰>˜#×ÒØˆ~Ðà�1�Rˆ[€Fßˆa‰SÈ&Ï,É,ÐWZÔJ[Ó$\ÑJ[À$¶$¤S¨¤Y¸AÒ%=ÑJ[Ñ$\€Fà
€CØ
”�F“Õ
Ø�{ˆØ�1Œ9ØˆDØŠHØ�QŒYØŠDØ�RŒZØŠDØ�RŒZØŠHØ”^Ô#Ü% dÕ+ŠHØ�R�Z˜C !�G¤c¨&£kÔ1Ø �'•?ˆDØ�qŒy˜S 1�W¤s¨6£{Ô2Ü,¨V¸!µG­_Ó=�Ø�q•‘Ø˜”˜s Q�w¬¨V«Ô4Ü˜!œS  f°1­W¥oÓ6Ó7�Ü˜Aœs 3¨°Q­w­Ó8Ó9�Ü˜1œc # v°A­g¥Ó7Ó8�Ø! #  b¨¨¨r°$°°qÐ9�Ø�q•�Øˆq�‹àˆ>Ðùò; %]s   ¾Gc                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   r©   rª   r   )r    r   )r   s   "r   r   r   w  s!   € ÷ ñ œDð ¬Cð ´Cñ r   c                ó’   € . pV '       d   VP                  R4       V'       d   VP                  RV 24       RP                  V4      # )z<Serialize the active text style into an inline CSS fragment.zfont-weight:700zcolor:z; )r\   r]   )r©   rª   Úpartss   && r   Ú_inline_css_styler»   v  s>   € ð €EßØ�‰Ð&Ô'ßØ�‰�v˜h˜ZÐ(Ô)Ø�9‰9�UÓÐr   c                ó0   € V ^8„  d   QhR\         R\         /# r   r   )r   s   "r   r   r   ‚  s   € ÷ 1ñ 1”sð 1œsñ 1r   c                ó  aaa	a
€ V '       g   R# . o	RoRoRo
^ pR VVV	V
3R llp\         P                  V 4       F‰  pVP                  4       V8”  d   V! WVP                  4        4       VP                  ^ 4      p\	        SSV4      w  rVWV3SS38w  d    S
'       d   S	P                  R4       Ro
WVuooVP                  4       pK‹  	  V\        V 4      8  d   V! WR 4       S
'       d   S	P                  R4       RP                  S	4      # )zAConvert ANSI-colored text into HTML spans for notebook rendering.r   Fc                ó(   € V ^8„  d   QhR\         RR/# )r   Úchunkr   Nr   )r   s   "r   r   Ú"ansi_to_html.<locals>.__annotate__Ž  s   € ÷ )ñ )œSð ) Tñ )r   c                ó  <€ V '       g   R# \        SS4      pV'       d!   S'       g   SP                  RV R24       RoM#V'       g   S'       d   SP                  R4       RoSP                  \        P                  ! V 4      4       R# )z?Append escaped plain text under the current ANSI-derived style.Nz<span style="z">Tú</span>F)r»   r\   ÚhtmlÚescape)r¿   Úcssr©   rª   rº   Ú	span_opens   & €€€€r   Ú_append_plainÚ#ansi_to_html.<locals>._append_plainŽ  sa   ø€ ÷ Ùä  hÓ/ˆß—yØ�L‰L˜=¨¨¨RÐ0Ô1Ø‰IßŸØ�L‰L˜Ô#ØˆIà�‰”T—[’[ Ó'Ö(r   rÂ   N)	r   ÚfinditerrW   r   r·   r\   r€   r[   r]   )r   ÚcursorrÇ   r~   r«   Ú	next_boldÚnext_fg_colorr©   rª   rº   rÆ   s   &      @@@@r   Úansi_to_htmlrÍ   ‚  só   û€ ÷ Ùà€EØ€DØ€HØ€IØ€F÷)ó )ô"  ×(Ñ(¨Ö.ˆØ�;‰;‹=˜6Ô!Ù˜$ e§k¡k£mÐ4Ô5à—‘˜A“ˆÜ#3°D¸(ÀEÓ#JÑ ˆ	ØÐ%¨$°Ð)9Ô9ßØ—‘˜YÔ'Ø!�	à&ˆNˆD�(Ø—‘“Šñ /ð ”�D“	ÔÙ�d˜7�mÔ$çØ�‰�YÔà�7‰7�5‹>Ðr   c                ó<   € V ^8„  d   QhR\         R\        R\         /# )r   r   Úlimitr   rI   )r   s   "r   r   r   ·  s!   € ÷ ñ œð ¤Cð ¬Cñ r   c                ó²  € V^ 8:  d   \         # V P                  4       '       d.   V P                  4       '       d   \        V 4      V8:  d   V # V RV # . p^ p\	        V 4       FI  w  rEpV'       d   VP                  V4       K!  W6,           V8”  d    MVP                  V4       W6,          pKK  	  W18¼  d   VP                  \         4       RP                  V4      # )z5Clip ANSI-styled text to a rendered cell-width limit.Nr   )Ú
ANSI_RESETrŠ   r‹   r[   r„   r\   r]   )r   rÏ   ÚresultrŒ   r�   r«   rv   s   &&     r   Útruncate_ansirÓ   ¶  s»   € ð �„zÜÐà‡|�|‡~‚~˜$×*Ñ*×,Ò,Üˆt‹9˜ÔØˆKØ�F�Uˆ|Ðà€FØ€Iä!3°DÖ!9Ñˆ˜ßØ�M‰M˜%Ô ÙàÕ˜uÔ$Ùà�‰�eÔØÕŠ	ñ ":ð ÔØ�‰”jÔ!à�7‰7�6‹?Ðr   T)Úfrozenc                   ó0   a € ] tR tRt o RtV 3R ltRtV tR# )ÚBarRenderResultiÖ  z=Pair the plain and styled forms of one rendered bar snapshot.c                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   # )r   ÚplainÚrenderedr   )r   Ú__classdict__s   "€r   r   ÚBarRenderResult.__annotate__Ö  s   ø‡ ‚ ñ �Jñ	 ñ
 �Mò r   re   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©rÚ   s   @r   rÖ   rÖ   Ö  s   ø‡ € áG÷ ƒ r   rÖ   c                   óš   a € ] tR tRt o RtRtRtRt]t	]
tRRRRR	R/V 3R
 lR lltRRRRR	R/V 3R lR lltV 3R lR ltV 3R ltRtV tR# )ÚCellBarRendereriÞ  zFRasterize a horizontal progress bar using terminal cell sub-divisions.õ   â–ˆÚ NÚselect_colorÚempty_colorr   Ú
head_colorc                óz   <€ V ^8„  d   QhRS[ RS[ RS[S[S[ S[ .S[3,          ,          RS[RS[S[,          RS[/# )r   ÚfilledÚemptyré   rê   rë   r   ©rJ   r   r   r   rÖ   )r   rÚ   s   "€r   r   ÚCellBarRenderer.__annotate__è  s]   ø€ ÷ 
ñ 
áð
ñ ð
ñ
 ™x©©c¨
±C¨Õ8Õ9ð
ñ ð
ñ ™S•Mð
ñ 
ñ
r   c               ó®   € \        ^ \        V4      4      p\        ^ \        V4      4      pV P                  W,           WP                  ,          VVVR7      # )z6Render a bar using whole filled and empty cell counts.)Útotal_cellsÚfilled_unitsré   rê   rë   )ru   rJ   Úrender_unitsÚunits_per_cell)Úselfrí   rî   ré   rê   rë   s   &&&$$$r   ÚrenderÚCellBarRenderer.renderè  sV   € ô �Qœ˜F›Ó$ˆÜ�A”s˜5“zÓ"ˆØ× Ñ Ø�Ø×"5Ñ"5Õ5Ø%Ø#Ø!ð !ó 
ð 	
r   c                óz   <€ V ^8„  d   QhRS[ RS[ RS[S[S[ S[ .S[3,          ,          RS[RS[S[,          RS[/# )r   rò   ró   ré   rê   rë   r   rï   )r   rÚ   s   "€r   r   rð   ý  sm   ø€ ÷ IQñ IQáðIQñ ðIQñ
 ™x©©c¨
±C¨Õ8Õ9ðIQñ ðIQñ ™S•MðIQñ 
ñIQr   c               óŠ  € \        ^ \        V4      4      p\        ^\        V P                  4      4      pV^ 8X  d   \        RR4      # Wg,          p\        ^ \	        \        V4      V4      4      p\        W'4      w  rš\	        YiV
'       d   ^M^ ,           4      pV
'       dz   V P                  V
4      pV	^ 8X  d"   WÀP                  V^,
          ,          ,           pMäV P                  V	,          V,           V P                  Wi,
          ^,
          ,          ,           pM¤V	^ 8X  d   V P                  V,          pM‰Wi,
          pV P                  '       dE   V P                  V	^,
          ,          V P                  ,           V P                  V,          ,           pM+V P                  V	,          V P                  V,          ,           pV'       g   V'       g   V'       g   \        WÝR7      # T;'       g    R p. pRp\        V4       F‹  w  ppRpVV8  d#   V! VV4      pV'       d   VV^,
          8X  d   TpM
V'       d   TpVV8w  d9   V'       d   VP                  \        4       V'       d   VP                  V4       TpVP                  V4       K�  	  V'       d   VP                  \        4       \        VRP                  V4      R7      # )z=Render a bar using sub-cell fill units for smoother progress.r   )rØ   rÙ   c                 ó   € R # )r   re   )rµ   Útotals   &&r   Ú<lambda>Ú.CellBarRenderer.render_units.<locals>.<lambda>-  s   € ¹Rr   N)ru   rJ   rõ   rÖ   rŸ   ÚdivmodÚ_partial_charÚ
empty_charÚ	fill_charÚ	head_charÚ	enumerater\   rÑ   r]   )rö   rò   ró   ré   rê   rë   rv   Ú
resolutionÚtotal_unitsÚ
full_cellsÚpartial_unitsÚoccupied_cellsÚpartial_charrØ   Úempty_countÚcolor_selectorÚrendered_segmentsÚcurrent_colorrµ   r   r¡   s   &&&$$$               r   rô   ÚCellBarRenderer.render_unitsý  s7  € ô �A”s˜;Ó'Ó(ˆÜ˜œC × 3Ñ 3Ó4Ó5ˆ
à�AŒ:Ü" 2 rÓ*Ð*àÕ(ˆÜ˜1œc¤# lÓ"3°[ÓAÓBˆÜ$*¨<Ó$DÑ!ˆ
Ü˜U·}±!È!Õ$LÓMˆçØ×-Ñ-¨mÓ<ˆLØ˜QŒØ$§¡¸%À!½)Õ'DÕD‘ð —N‘N ZÕ/Ø"õ#à—o‘o¨Õ);¸aÕ)?Õ@õAñ ð
 ˜1Œ_Ø—O‘O eÕ+‰EàÕ,ˆKØ�~�~ˆ~à—N‘N j°1¥nÕ5Ø—n‘nõ%à—o‘o¨Õ3õ4ñ ð Ÿ™¨Õ3°d·o±oÈÕ6SÕS�ç§K¿
Ü"¨Ô?Ð?à%×@Ð@Ñ*?ˆØ')ÐØ'+ˆä" 5Ö)‰IˆC�ØˆEØ�^Ô#Ù& s¨NÓ;�ß #¨¸!Õ);Ô";Ø&�EøßØ#�à˜Ô%ß Ø%×,Ñ,¬ZÔ8ßØ%×,Ñ,¨UÔ3Ø %�à×$Ñ$ TÖ*ñ! *÷$ Ø×$Ñ$¤ZÔ0ä U°R·W±WÐ=NÓ5OÔPÐPr   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   r  r   r•   )r   rÚ   s   "€r   r   rð   H  s   ø€ ÷ *ñ *©3ð *±3ñ *r   c                óN  € V P                   '       g   V P                  # \        V P                   4      ^,
          pV^ 8:  d   V P                  # W,          V P                  ,           ^,
          V P                  ,          p\	        ^\        W#4      4      pV P                   V,          # )z>Convert a partial fill amount into the closest ramp character.)Úpartial_charsr  r[   rõ   ru   rŸ   )rö   r  ÚstepsÚscaleds   &&  r   r   ÚCellBarRenderer._partial_charH  s…   € ð ×!×!Ð!Ø—>‘>Ð!ä�D×&Ñ&Ó'¨!Õ+ˆØ�AŒ:Ø—>‘>Ð!àÕ'¨$×*=Ñ*=Õ=ÀÕAÀd×FYÑFYÕYˆÜ�Qœ˜EÓ*Ó+ˆØ×!Ñ! &Õ)Ð)r   c                óv   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[;R&   # )r   r  r  r  r  rõ   )r   r   r   rJ   )r   rÚ   s   "€r   r   rð   Þ  sN   ø‡ ‚ ñ Ññ	 ñ
 Ññ ñ ™�}Ñ#ñ ñ ™C•=Ñ6ñ ñ Ñ,ò r   re   )rÜ   rÝ   rÞ   rß   rà   r  r  r  ÚBLOCK_PARTIAL_CHARSr  ÚSUBCELL_RESOLUTIONrõ   r÷   rô   r   rá   râ   rã   rä   s   @r   ræ   ræ   Þ  s�   ø‡ € áPà€IØ€JØ#€IØ#6€MØ,€Nð
ð
 =Að
ð ð
ð %)÷
ò 
ð*IQð
 =AðIQð ðIQð %)÷IQò IQ÷V*ð *÷U ƒ r   ræ   )	r   u   â–�u   â–Žu   â–�u   â–Œu   â–‹u   â–Šu   â–‰rç   )1rà   Údataclassesr   Ú	functoolsr   rÃ   Úrer>   Útypingr   r   r   rÑ   ÚANSI_BOLD_RESETÚTITLE_BASE_COLORÚTITLE_HIGHLIGHT_COLORÚcompiler   r�   r  r[   r  r:   r;   r<   r=   r±   r   r&   r)   r-   r4   rB   rG   rU   ra   rw   r{   r„   r‡   r�   r’   r§   r·   r»   rÍ   rÓ   rÖ   ræ   re   r   r   Ú<module>r!     s  ðñ Cå !Ý Û Û 	Û ß /Ñ /ð €
Ø€Ø#Ð Ø.Ð Ø—’Ð8Ó9€Ø€àRÐ ÙÐ,Ó-°Õ1Ð àÐ Ø Ð Ø (Ð ØÐ ðØˆ	ðàˆ	ðð ˆ	ðð ˆ	ð	ð
 ˆ	ðð ˆ	ðð ˆ	ðð ˆ	ðð ˆ	ðð ˆ	ðð ˆ	ðð ˆ	ðð ˆ	ðð ˆ	ðð ˆ	ðð  ˆ	ð!€ñ( �4Ôô(ó ð(ñ �4ÔôLó ðLñ �4Ôô+ó ð+ñ �4Ôô+ó ð+ñ �4Ôô0ó ð0ñ �4Ôô,ó ð,ñ, �4Ôô	ó ð	ñ �4Ôôó ðõ2$ñN �4Ôôó ðõ8õñ8 �4Ôô+ó ð+ñ �4Ôôó ðõ ñ �4Ôô"-ó ð"-ñJ �4Ôô$ó ð$ñN �4Ôôó ðõ1ñh �4Ôôó ðñ> �$Ô÷ð ó ðñ �$Ô÷u*ð u*ó òu*r   