+
    NV-jÍ  ã            
       ó  € ^ RI Ht ^ RIHt ^ RIHtHtHtHtH	t	  ! R R]	4      t
R R ltR R	 ltRR R llt]R8X  dJ   ^ RIHt ] ! R R4      4       t]! ^n]! R
^^4      ]! R
^^4      ]! R
^^4      .4      t]! ]! ]4      4       R
# R
# )é    )ÚFraction)Úceil)ÚcastÚListÚOptionalÚSequenceÚProtocolc                   ó<   a € ] tR t^t o RtRt^t^tV 3R ltRt	V t
R# )ÚEdgez1Any object that defines an edge (such as Layout).Nc                óN   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[;R&   S[;R&   # ©é   ÚsizeÚratioÚminimum_size©r   Úint)ÚformatÚ__classdict__s   "€Ú\/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/rich/_ratio.pyÚ__annotate__ÚEdge.__annotate__   s/   ø‡ ‚ ñ ‘3�-Ññ ñ �Nñ	 ñ
 Ñò ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      s   ø‡ € Ù;à€DØ€EØ€L÷ ƒ r   r   c                óh   € V ^8„  d   QhR\         R\        \        ,          R\        \         ,          /# )r   ÚtotalÚedgesÚreturn)r   r   r   r   )r   s   "r   r   r      s)   € ÷ :"ñ :"œð :"¤X¬d¥^ð :"¼¼S½	ñ :"r   c                óþ  € V Uu. uF  q"P                   ;'       g    RNK  	  pp\        pRV9   Ed    \        \        W14      4       UUUu. uF  w  pw  rbVe   K  WR3NK  	  ppppV \	        R V 4       4      ,
          pV^ 8:  d:   \        W14       UUu. uF!  w  rbVf   VP
                  ;'       g    ^MTNK#  	  upp# V! V\	        R V 4       4      4      p	V F7  w  rRW’P                  ,          VP
                  8:  g   K(  VP
                  W5&    Kè  	  V! ^ 4      p
V F.  w  rR\        W’P                  ,          V
,           ^4      w  rjWcV&   K0  	   \        \        \        ,          V4      # u upi u upppi u uppi )a`  Divide total space to satisfy size, ratio, and minimum_size, constraints.

The returned list of integers should add up to total in most cases, unless it is
impossible to satisfy all the constraints. For instance, if there are two edges
with a minimum size of 20 each and `total` is 30 then the returned list will be
greater than total. In practice, this would mean that a Layout object would
clip the rows that would overflow the screen height.

Args:
    total (int): Total number of characters.
    edges (List[Edge]): Edges within total space.

Returns:
    List[int]: Number of characters for each edge.
Nc              3   ó8   "  € T F  q;'       g    ^ x € K  	  R# 5i)r   Nr   )Ú.0r   s   & r   Ú	<genexpr>Ú ratio_resolve.<locals>.<genexpr>,   s   é € Ð<±e¨d§	 	¨¤	³eùs   ‚�c              3   óR   "  € T F  w  rVP                   ;'       g    ^x € K  	  R# 5i)é   N)r   )r*   Ú_Úedges   &  r   r+   r,   5   s   é € ÐK¹N±°˜DŸJ™JŸO˜O¨!œO»Nùs   ‚'œ')r   r   Ú	enumerateÚzipÚsumr   r   Údivmodr   r   r   )r%   r&   r0   ÚsizesÚ	_FractionÚindexr   Úflexible_edgesÚ	remainingÚportionÚ	remainders   &&         r   Úratio_resolver<      sy  € ñ" .3Ó3©U T�i‰i×Ð˜4Ò©U€EÐ3ä€Ið �%�-ô (1´°UÓ1BÔ'Cõ
á'CÑ#�‘|˜Øô ˆU‹MÙ'Cð 	ò 
ð œCÑ<±eÓ<Ó<Õ<ˆ	Ø˜Œ>ô #& eÔ"3ôá"3‘J�Dð .2ª\�$×#Ñ#×(Ð( qø¸tÒCÙ"3òð ñ
 Ø”sÑK¹NÓKÓKó
ˆó
 *‰KˆEØŸ™Õ# t×'8Ñ'8Ö8Ø#×0Ñ0�‘âñ	 *ñ " !›ˆIÛ-‘�Ü"(¨·:±:Õ)=À	Õ)IÈ1Ó"M‘�Ø#�e“ñ  .ð ä””S•	˜5Ó!Ð!ùòS 4ùô
ùós"   …E-œE-ÁE2ÁE2ÂE9Â2	E9c                ó¬   € V ^8„  d   QhR\         R\        \         ,          R\        \         ,          R\        \         ,          R\        \         ,          /# )r   r%   ÚratiosÚmaximumsÚvaluesr'   )r   r   )r   s   "r   r   r   K   sD   € ÷ ñ ÜðÜœS�	ðÜ-1´#­YðÜ@DÄSÅ	ðä	Œ#…Yñr   c                ó˜  € \        W4       UUu. uF  w  rEV'       d   TM^ NK  	  ppp\        V4      pV'       g
   VR,          # T p. pVP                  p	\        WV4       F_  w  rJpV'       dJ   V^ 8”  dC   \        V
\	        WG,          V,          4      4      pV	! W¼,
          4       W|,          pWd,          pKW  V	! V4       Ka  	  V# u uppi )aD  Divide an integer total in to parts based on ratios.

Args:
    total (int): The total to divide.
    ratios (List[int]): A list of integer ratios.
    maximums (List[int]): List of maximums values for each slot.
    values (List[int]): List of values

Returns:
    List[int]: A list of integers guaranteed to sum to total.
:NNN)r2   r3   ÚappendÚminÚround)r%   r>   r?   r@   r   Ú_maxÚtotal_ratioÚtotal_remainingÚresultrB   ÚmaximumÚvalueÚdistributeds   &&&&         r   Úratio_reducerL   K   s¸   € ô 7:¸&Ô6KÔLÑ6K¡{ u—t‰e Ò"Ñ6K€FÑLÜ�f“+€KßØ�a�yÐØ€OØ€FØ�]‰]€FÜ!$ V°vÖ!>Ñˆ˜ß�[ 1”_Ü˜g¤u¨UÕ-DÀ{Õ-RÓ'SÓTˆKÙ�5Õ&Ô'ØÕ*ˆOØÕ ŠKá�5ŽMñ "?ð €Mùó Ms   �CNc          	      ó    € V ^8„  d   QhR\         R\        \         ,          R\        \        \         ,          ,          R\        \         ,          /# )r   r%   r>   Úminimumsr'   )r   r   r   )r   s   "r   r   r   k   s=   € ÷ !ñ !Üð!ÜœS�	ð!Ü-5´d¼3µiÕ-@ð!ä	Œ#…Yñ!r   c                ó¨  € V'       d)   \        W4       UUu. uF  w  r4V'       d   TM^ NK  	  ppp\        V4      pV^ 8”  g   Q R4       hT p. pVP                  pVf   ^ .\        V4      ,          p	MTp	\        W4       FI  w  r:V^ 8”  d$   \	        V
\        W6,          V,          4      4      pMTpV! V4       WS,          pWk,          pKK  	  V# u uppi )a   Distribute an integer total in to parts based on ratios.

Args:
    total (int): The total to divide.
    ratios (List[int]): A list of integer ratios.
    minimums (List[int]): List of minimum values for each slot.

Returns:
    List[int]: A list of integers guaranteed to sum to total.
zSum of ratios must be > 0)r2   r3   rB   ÚlenÚmaxr   )r%   r>   rN   r   Ú_minrF   rG   Údistributed_totalrB   Ú	_minimumsÚminimumrK   s   &&&         r   Úratio_distributerV   k   sÓ   € ÷ Ü:=¸fÔ:OÔPÑ:O©;¨5Ÿ4‘% QÒ&Ñ:OˆÑPÜ�f“+€KØ˜Œ?Ð7Ð7Ó7ˆ?à€OØ#%ÐØ×%Ñ%€FØÒØ�Cœ#˜f›+Õ%‰	àˆ	Ü˜fÖ0‰ˆØ˜Œ?Ü˜g¤t¨EÕ,CÀkÕ,QÓ'RÓS‰Kà)ˆKÙˆ{ÔØÕˆØÕ&Šñ 1ð Ðùó' Qs   —CÚ__main__)Ú	dataclassc                   ó8   a € ] tR t^’t o Rt^t^tV 3R ltRtV t	R# )ÚENc                óN   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[;R&   S[;R&   # r   r   )r   r   s   "€r   r   ÚE.__annotate__’   s-   ø‡ ‚ á‘s�mÑ"ñ ñ ‰ñ ñ Ñò	 r   r   )
r   r   r   r   r   r   r   r    r!   r"   r#   s   @r   rZ   rZ   ’   s   ø‡ € à"ˆØˆØˆ÷	 ƒ r   rZ   )N)Ú	fractionsr   Úmathr   Útypingr   r   r   r   r	   r   r<   rL   rV   r   ÚdataclassesrX   rZ   ÚresolvedÚprintr3   r   r   r   Ú<module>rc      s‘   ðÝ Ý ß ;Õ ;ôˆ8ô õ:"õz÷@!ðH ˆzÔÝ%à÷ð ó ðñ
 ˜S¡1 T¨1¨a£=±!°D¸!¸Q³-ÁÀ4ÈÈAÃÐ"OÓP€HÙ	‰#ˆh‹-Öñ r   