Ë
    äØjj�  ã            
       óæ  — d dl Z d dlmZ d dlmZmZ ddlmZ  e j                  d«      j                  Z
 ed«      ded	efd
„«       Zefdedeegef   d	efd„Z ed¬«      ded	efd„«       Z ed¬«      ded	efd„«       Zdeded	efd„Zddededed	ee   fd„Zedk(  rQ e ed«      «        edd«      D ]
  Z ee«       Œ  eddd«      D ]  Z e ede«      dz   «        edez  «       Œ! yy) é    N)Ú	lru_cache)ÚCallableÚListé   )ÚCELL_WIDTHSu   ^[ -oÂ Ë¿Í°-Ò‚]*$i   ÚtextÚreturnc                 ó<   ‡— t         Št        ˆfd„| D «       «      }|S )a/  Get the number of cells required to display text.

    This method always caches, which may use up a lot of memory. It is recommended to use
    `cell_len` over this method.

    Args:
        text (str): Text to display.

    Returns:
        int: Get the number of cells required to display text.
    c              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­w©N© ©Ú.0Ú	characterÚ	_get_sizes     €úX/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_vendor/rich/cells.pyú	<genexpr>z"cached_cell_len.<locals>.<genexpr>   ó   øè ø€ Ò@¨i‘Y˜y×)Ñ@ùó   ƒ)Úget_character_cell_sizeÚsum)r   Ú
total_sizer   s     @r   Úcached_cell_lenr      s    ø€ ô (€IÜÓ@¸4Ô@Ó@€JØÐó    Ú	_cell_lenc                 óh   ‡— t        | «      dk  r || «      S t        Št        ˆfd„| D «       «      }|S )z³Get the number of cells required to display text.

    Args:
        text (str): Text to display.

    Returns:
        int: Get the number of cells required to display text.
    i   c              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr   r   r   s     €r   r   zcell_len.<locals>.<genexpr>)   r   r   )Úlenr   r   )r   r   r   r   s      @r   Úcell_lenr      s5   ø€ ô ˆ4ƒy�3‚Ù˜‹ÐÜ'€IÜÓ@¸4Ô@Ó@€JØÐr   )Úmaxsizer   c                 ó*   — t        t        | «      «      S )z±Get the cell size of a character.

    Args:
        character (str): A single character.

    Returns:
        int: Number of cells (0, 1 or 2) occupied by that character.
    )Ú_get_codepoint_cell_sizeÚord)r   s    r   r   r   -   s   € ô $¤C¨	£NÓ3Ð3r   Ú	codepointc                 ó°   — t         }d}t        |«      dz
  }||z   dz  }	 ||   \  }}}| |k  r|dz
  }n| |kD  r|dz   }n	|dk(  rdS |S ||k  r	 y||z   dz  }Œ8)z·Get the cell size of a character.

    Args:
        codepoint (int): Codepoint of a character.

    Returns:
        int: Number of cells (0, 1 or 2) occupied by that character.
    r   r   é   éÿÿÿÿ)r   r   )r$   Ú_tableÚlower_boundÚupper_boundÚindexÚstartÚendÚwidths           r   r"   r"   :   s“   € ô €FØ€KÜ�f“+ ‘/€KØ˜;Ñ&¨1Ñ,€EØ
Ø" 5™MÑˆˆs�EØ�uÒØ !™)‰KØ˜Š_Ø !™)‰Kà š�1Ð.¨Ð.Ø˜Ò$Øàð ˜{Ñ*¨qÑ0ˆð r   Útotalc                 ó`  — t        | «      r t        | «      }||k  r| d||z
  z  z   S | d| S |dk  ryt        | «      }||k(  r| S ||k  r| d||z
  z  z   S d}t        | «      }	 ||z   dz  }| d|dz    }t        |«      }||dz   k(  rt        |d   «      dk(  r|dd dz   S ||k(  r|S ||kD  r|}n|}ŒN)z?Set the length of a string to fit within given number of cells.ú Nr   Ú r&   r   r'   )Ú_is_single_cell_widthsr   r   )	r   r/   ÚsizeÚ	cell_sizer,   r-   ÚposÚbeforeÚ
before_lens	            r   Úset_cell_sizer9   W   s  € ô ˜dÔ#Ü�4‹yˆØ�%Š<Ø˜# ¨¡Ñ.Ñ.Ð.Ø�F�Uˆ|Ðà�‚zØÜ˜“€IØ�EÒØˆØ�5ÒØ�c˜U YÑ.Ñ/Ñ/Ð/à€EÜ
ˆd‹)€Cð Ø�s‰{˜qÑ ˆØ�i˜˜a™�ˆÜ˜fÓ%ˆ
Ø˜ ™Ò"¤x°°r±
Ó';¸qÒ'@Ø˜#˜2�; Ñ$Ð$Ø˜ÒØˆMØ˜ÒØ‰CàˆEð r   Úmax_sizeÚpositionc                 óN  — t         }| D �cg c]  }| ||«      f‘Œ }}|}g g}|d   j                  }t        |«      D ]>  \  }}	||	z   |kD  r$|j                  |g«       |d   j                  }|	}Œ2||	z  } ||«       Œ@ |D �
cg c]  }
dj                  |
«      ‘Œ c}
S c c}w c c}
w )z[Break text in to equal (cell) length strings, returning the characters in reverse
    orderr'   r2   )r   ÚappendÚreversedÚjoin)r   r:   r;   Ú_get_character_cell_sizer   Ú
charactersr   Úlinesr=   r4   Úlines              r   Ú
chop_cellsrD   |   sÊ   € ô  7ÐàJNöØ=FˆÑ,¨YÓ7Ò8ð€Jð ð €JØ ˜T€EØ�2‰Y×Ñ€Fä# JÓ/ò ‰ˆ	�4Ø˜Ñ˜xÒ'Ø�L‰L˜)˜Ô%Ø˜2‘Y×%Ñ%ˆFØ‰Jà˜$ÑˆJÙ�9Õðð ',Ö,˜dˆB�G‰G�D�MÒ,Ð,ùò!ùò  -s   ‹BÂB"Ú__main__u   ðŸ˜½u]   è¿™æ˜¯å¯¹äºšæ´²è¯­è¨€æ”¯æŒ�çš„æµ‹è¯•ã€‚é�¢å¯¹æ¨¡æ£±ä¸¤å�¯çš„æƒ³æ³•ï¼Œæ‹’ç»�çŒœæµ‹çš„è¯±æƒ‘ã€‚é   éP   r'   ú|Úx)r   )ÚreÚ	functoolsr   Útypingr   r   Ú_cell_widthsr   ÚcompileÚmatchr3   ÚstrÚintr   r   r   r"   r9   rD   Ú__name__ÚprintrC   ÚrangeÚnr   r   r   ú<module>rV      s˜  ðÛ 	Ý ß !å %ð $˜Ÿ™Ð$QÓR×XÑXÐ ñ ˆ4ƒð˜#ð  #ò ó ðð" ;Jñ �3ð  8¨S¨E°3¨JÑ#7ð Ècó ñ  �4Ôð	4 sð 	4¨sò 	4ó ð	4ñ �4Ôð¨ð °ò ó ðð8 ˜ð   Cð  ¨Có  ñJ-�Sð - Cð -°3ð -¸tÀC¹yó -ð. ˆzÒá	Ñ
! &Ó
)Ô*ÙÐ~ð  ABó  Cò ˆÙˆd�ðá�2�q˜"Óò ˆÙ‰mÐð  BCó  Dð  GJñ  Jô  	KÙˆc�A‰g�ñð r   