§
    
Á³g¼é  ã            +       óª  — d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZ d dlmZ d dl mZmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZmZmZ d dlmZ d dlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ ej0        dk    rd dlm1Z1 nd dl2m1Z1 ddl3m4Z4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ddlGmHZHmIZI ddlJmKZKmLZL  e(deM¦  «        ZN e.d¦  «        ZOe g ePf         ZQ ej.        de+e¦  «        ZR G d„ de¦  «        ZS	 	 	 	 	 	 	 	 	 	 	 	 	 	 d”d)e/e*eO         e%eO         f         d*eTd+e)eP         d,eUd-e)e7         d.eUd/e)e g ePf                  d0ePd1eFd2eFd3eFd4eFd5ePd6eUd7eUd8e%eO         f d9„ZV G d:„ d;ee¦  «        ZW G d<„ d=e!eR         e$eR         ¦  «        ZXd>d!dd"dd#d$d%d&d'd"d?œd@ed+eMd*eTd,eUd-e)e7         d.eUd/e)e g ePf                  d0ePd1eFd2eFd3eFd4eFd6eUd8e!e         fdA„ZYejZ        	 	 	 	 d•dd>d!dd"dd#d$d%d&d'd"dCœd@e/eTdDe[f         dEe/e1dF         e1dG         f         dHeMdIe)eT         dJe)eT         dKe)eT         d+e)eM         d*eTd,eUd-e)e7         d.eUd/e)e g ePf                  d0ePd1eFd2eFd3eFd4eFd6eUd8e!e+         f&dL„¦   «         Z\ejZ        	 	 	 	 d•dd>d!dd"dd#d$d%d&d'd"dCœd@e/eTdDe[f         dEe1dM         dHeMdIe)eT         dJe)eT         dKe)eT         d+e)eM         d*eTd,eUd-e)e7         d.eUd/e)e g ePf                  d0ePd1eFd2eFd3eFd4eFd6eUd8e!e         f&dN„¦   «         Z\	 	 	 	 	 d–dd>d!dd"dd#d$d%d&d'd"dCœd@e/eTdDe[f         dEe/e1dM         e1dF         e1dG         f         dHeMdIe)eT         dJe)eT         dKe)eT         d+e)eM         d*eTd,eUd-e)e7         d.eUd/e)e g ePf                  d0ePd1eFd2eFd3eFd4eFd6eUd8e/e!e         e!e+         f         f&dO„Z\ G dP„ dQe¦  «        Z] G dR„ dSe]¦  «        Z^ G dT„ dUe]¦  «        Z_ G dV„ dWe]¦  «        Z` G dX„ dYe]¦  «        Za G dZ„ d[e]¦  «        Zb G d\„ d]e`¦  «        Zc G d^„ d_e]¦  «        Zd G d`„ dae]¦  «        Ze G db„ dce]¦  «        Zf G dd„ dee]¦  «        Zg G df„ dge]¦  «        Zh G dh„ die]¦  «        Zi G dj„ dke'¦  «        Zje G dl„ dm¦  «        ¦   «         Zk G dn„ doe>¦  «        Zlemdpk    �rŸd dlnZnd dloZoddqlpmqZq ddrlrmsZs ddsltmuZu ddtlGmIZI  eududvd!¬w¦  «        Zt eIdxdydz¦  «        ZGeG v                    d{d|d}¦  «         d~ eqd¦  «        d€eGd�d‚dƒd„œd…et esd†¦  «        g	Zwd d‡lxmyZy  eyew¦  «        Zz e7d!¬ˆ¦  «        Z6 el e_¦   «         gel {                    ¦   «         ¢ eb¦   «         ‘R e6d"d‰œŽ5 Z|e| }                    dŠd‹¬Œ¦  «        Z~e| }                    d�d‹¬Œ¦  «        Ze| }                    dŽd¬Œ¦  «        Z€e|j�        sxe| ‚                    e~d�¬�¦  «         e| ‚                    ed‘¬�¦  «          eojƒ        d’¦  «          enj„        d d“¦  «        dk     re| …                     e†ez¦  «        ¦  «         e|j�        ¯xddd¦  «         dS # 1 swxY w Y   dS dS )—é    N)ÚABCÚabstractmethod©Údeque)ÚSized)Ú	dataclassÚfield)Ú	timedelta)Ú	RawIOBaseÚUnsupportedOperation)Úceil)Úmmap)ÚPathLikeÚstat)ÚEventÚRLockÚThread)ÚTracebackType)ÚAnyÚBinaryIOÚCallableÚContextManagerÚDequeÚDictÚGenericÚIterableÚListÚ
NamedTupleÚNewTypeÚOptionalÚSequenceÚTextIOÚTupleÚTypeÚTypeVarÚUnion)é   é   )ÚLiteralé   )ÚfilesizeÚget_console)ÚConsoleÚGroupÚJustifyMethodÚRenderableType)ÚHighlighter)ÚJupyterMixin)ÚLive)ÚProgressBar)ÚSpinner)Ú	StyleType)ÚColumnÚTable)ÚTextÚTextTypeÚTaskIDÚProgressTypeÚ_Ic                   óˆ   ‡ — e Zd ZdZdddddefˆ fd„Zdd
„Zdd„Zdee	e
                  dee
         dee         dd	fd„Zˆ xZS )Ú_TrackThreadz)A thread to periodically update progress.ÚprogressÚProgressÚtask_idr;   Úupdate_periodc                 ó¦   •— || _         || _        || _        t          ¦   «         | _        d| _        t          ¦   «                              ¦   «          d S )Nr   )r@   rB   rC   r   ÚdoneÚ	completedÚsuperÚ__init__)Úselfr@   rB   rC   Ú	__class__s       €úW/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pip/_vendor/rich/progress.pyrH   z_TrackThread.__init__B   sG   ø€ Ø ˆŒØˆŒØ*ˆÔÝ‘G”GˆŒ	àˆŒÝ‰Œ×ÒÑÔÐÐÐó    ÚreturnNc                 ó  — | j         }| j        j        }| j        }d}| j        j        } ||¦  «        s)| j        }||k    r ||||z
  ¦  «         |} ||¦  «        ¯)| j                             | j         | j        d¬¦  «         d S )Nr   T)rF   Úrefresh)rB   r@   ÚadvancerC   rE   ÚwaitrF   Úupdate)rI   rB   rP   rC   Úlast_completedrQ   rF   s          rK   Úrunz_TrackThread.runK   s¦   € Ø”,ˆØ”-Ô'ˆØÔ*ˆØˆØŒyŒ~ˆØ�$�}Ñ%Ô%ð 	+ØœˆIØ Ò*Ð*Ø�˜ ¨^Ñ!;Ñ<Ô<Ð<Ø!*�ð	 �$�}Ñ%Ô%ð 	+ð 	Œ×Ò˜Tœ\°T´^ÈTÐÑRÔRÐRÐRÐRrL   c                 ó.   — |                       ¦   «          | S ©N©Ústart©rI   s    rK   Ú	__enter__z_TrackThread.__enter__Y   ó   € Ø�
Š
‰ŒˆØˆrL   Úexc_typeÚexc_valÚexc_tbc                 ó`   — | j                              ¦   «          |                      ¦   «          d S rV   )rE   ÚsetÚjoin©rI   r\   r]   r^   s       rK   Ú__exit__z_TrackThread.__exit__]   s$   € ð 	Œ	�Š‰ŒˆØ�	Š	‰ŒˆˆˆrL   ©rM   N)rM   r?   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚfloatrH   rT   rZ   r    r$   ÚBaseExceptionr   rc   Ú__classcell__©rJ   s   @rK   r?   r?   ?   sÒ   ø€ € € € € Ø3Ð3ð ð °hð Èuð ð ð ð ð ð ðSð Sð Sð Sðð ð ð ðà˜4 Ô.Ô/ðð ˜-Ô(ðð ˜Ô'ð	ð
 
ðð ð ð ð ð ð ð rL   r?   ú
Working...TFé
   úbar.backúbar.completeúbar.finishedú	bar.pulseçš™™™™™¹?ÚsequenceÚdescriptionÚtotalÚauto_refreshÚconsoleÚ	transientÚget_timeÚrefresh_per_secondÚstyleÚcomplete_styleÚfinished_styleÚpulse_stylerC   ÚdisableÚ
show_speedrM   c           
   #   óR  K  — |rt          d¦  «        gng }|                     t          ||	|
|¬¦  «        t          |¬¦  «        t	          ¦   «         f¦  «         t          ||||||pd|dœŽ}|5  |                     | |||¬¦  «        E d{V —† ddd¦  «         dS # 1 swxY w Y   dS )aé  Track progress by iterating over a sequence.

    Args:
        sequence (Iterable[ProgressType]): A sequence (must support "len") you wish to iterate over.
        description (str, optional): Description of task show next to progress bar. Defaults to "Working".
        total: (float, optional): Total number of steps. Default is len(sequence).
        auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True.
        transient: (bool, optional): Clear the progress on exit. Defaults to False.
        console (Console, optional): Console to write to. Default creates internal Console instance.
        refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10.
        style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
        complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
        finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
        pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
        update_period (float, optional): Minimum time (in seconds) between calls to update(). Defaults to 0.1.
        disable (bool, optional): Disable display of progress.
        show_speed (bool, optional): Show speed if total isn't known. Defaults to True.
    Returns:
        Iterable[ProgressType]: An iterable of the values in the sequence.

    ú([progress.description]{task.description}©r|   r}   r~   r   )r�   rn   ©rw   rx   ry   rz   r{   r€   )rv   ru   rC   N)Ú
TextColumnÚextendÚ	BarColumnÚTaskProgressColumnÚTimeRemainingColumnrA   Útrack)rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   rC   r€   r�   Úcolumnsr@   s                    rK   r‹   r‹   g   s\  è è € ðP EPÐW�Ð>Ñ	?Ô	?Ð@Ð@ÐUWð ð ‡N‚NåØØ-Ø-Ø'ð	ñ ô õ ¨*Ð5Ñ5Ô5ÝÑ!Ô!ð		
ñô ð õ Ø	Ø!ØØØØ-Ð3°Øðð ð €Hð 
ð 
ð 
Ø—>’>Ø˜E¨{È-ð "ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Á/ BÂB Â#B c                   óÄ  — e Zd ZdZ	 d*dedddededd	f
d
„Zd+d„Zde	e
e                  de	e         de	e         dd	fd„Zdefd„Zdefd„Zedefd„¦   «         Zdefd„Zdefd„Zedefd„¦   «         Zedefd„¦   «         Zdefd„Zdefd„Zdefd„Zd,dedefd„Zdeeee f         fd„Z!d,dedefd„Z"d,d ede#e         fd!„Z$d-d"„Z%d.d$ed%edefd&„Z&defd'„Z'd(e(defd)„Z)d	S )/Ú_Readerz9A reader that tracks progress while it's being read from.TÚhandler@   rA   ÚtaskÚclose_handlerM   Nc                 óL   — || _         || _        || _        || _        d| _        d S ©NF)r�   r@   r�   r‘   Ú_closed)rI   r�   r@   r�   r‘   s        rK   rH   z_Reader.__init__°   s,   € ð ˆŒØ ˆŒØˆŒ	Ø(ˆÔØˆŒˆˆrL   c                 ó8   — | j                              ¦   «          | S rV   )r�   rZ   rY   s    rK   rZ   z_Reader.__enter__½   s   € ØŒ×ÒÑÔÐØˆrL   r\   r]   r^   c                 ó.   — |                       ¦   «          d S rV   )Úcloserb   s       rK   rc   z_Reader.__exit__Á   s   € ð 	�
Š
‰ŒˆˆˆrL   c                 ó   — | S rV   © rY   s    rK   Ú__iter__z_Reader.__iter__É   s   € ØˆrL   c                 óŠ   — t          | j        ¦  «        }| j                             | j        t          |¦  «        ¬¦  «         |S ©N©rP   )Únextr�   r@   rP   r�   Úlen)rI   Úlines     rK   Ú__next__z_Reader.__next__Ì   s9   € Ý�D”KÑ Ô ˆØŒ×Ò˜dœiµ°T±´ÐÑ;Ô;Ð;ØˆrL   c                 ó   — | j         S rV   )r”   rY   s    rK   Úclosedz_Reader.closedÑ   s
   € àŒ|ÐrL   c                 ó4   — | j                              ¦   «         S rV   )r�   ÚfilenorY   s    rK   r¥   z_Reader.filenoÕ   ó   € ØŒ{×!Ò!Ñ#Ô#Ð#rL   c                 ó4   — | j                              ¦   «         S rV   )r�   ÚisattyrY   s    rK   r¨   z_Reader.isattyØ   r¦   rL   c                 ó   — | j         j        S rV   )r�   ÚmoderY   s    rK   rª   z_Reader.modeÛ   ó   € àŒ{ÔÐrL   c                 ó   — | j         j        S rV   )r�   ÚnamerY   s    rK   r­   z_Reader.nameß   r«   rL   c                 ó4   — | j                              ¦   «         S rV   )r�   ÚreadablerY   s    rK   r¯   z_Reader.readableã   ó   € ØŒ{×#Ò#Ñ%Ô%Ð%rL   c                 ó4   — | j                              ¦   «         S rV   )r�   ÚseekablerY   s    rK   r²   z_Reader.seekableæ   r°   rL   c                 ó   — dS r“   r™   rY   s    rK   Úwritablez_Reader.writableé   s   € ØˆurL   éÿÿÿÿÚsizec                 ó–   — | j                              |¦  «        }| j                             | j        t          |¦  «        ¬¦  «         |S rœ   )r�   Úreadr@   rP   r�   rŸ   )rI   r¶   Úblocks      rK   r¸   z_Reader.readì   s?   € Ø”× Ò  Ñ&Ô&ˆØŒ×Ò˜dœiµ°U±´ÐÑ<Ô<Ð<ØˆrL   Úbc                 ó|   — | j                              |¦  «        }| j                             | j        |¬¦  «         |S rœ   )r�   Úreadintor@   rP   r�   )rI   rº   Úns      rK   r¼   z_Reader.readintoñ   s9   € ØŒK× Ò  Ñ#Ô#ˆØŒ×Ò˜dœi°ÐÑ3Ô3Ð3ØˆrL   c                 ó–   — | j                              |¦  «        }| j                             | j        t          |¦  «        ¬¦  «         |S rœ   )r�   Úreadliner@   rP   r�   rŸ   )rI   r¶   r    s      rK   r¿   z_Reader.readlineö   s?   € ØŒ{×#Ò# DÑ)Ô)ˆØŒ×Ò˜dœiµ°T±´ÐÑ;Ô;Ð;ØˆrL   Úhintc           	      ó¼   — | j                              |¦  «        }| j                             | j        t          t          t          |¦  «        ¦  «        ¬¦  «         |S rœ   )r�   Ú	readlinesr@   rP   r�   ÚsumÚmaprŸ   )rI   rÀ   Úliness      rK   rÂ   z_Reader.readlinesû   sI   € Ø”×%Ò% dÑ+Ô+ˆØŒ×Ò˜dœiµµS½¸e±_´_Ñ1EÔ1EÐÑFÔFÐFØˆrL   c                 óT   — | j         r| j                             ¦   «          d| _        d S )NT)r‘   r�   r—   r”   rY   s    rK   r—   z_Reader.close   s,   € ØÔð 	 ØŒK×ÒÑÔÐØˆŒˆˆrL   r   ÚoffsetÚwhencec                 ó~   — | j                              ||¦  «        }| j                             | j        |¬¦  «         |S )N©rF   )r�   Úseekr@   rR   r�   )rI   rÇ   rÈ   Úposs       rK   rË   z_Reader.seek  s;   € ØŒk×Ò˜v vÑ.Ô.ˆØŒ×Ò˜TœY°#ÐÑ6Ô6Ð6Øˆ
rL   c                 ó4   — | j                              ¦   «         S rV   )r�   ÚtellrY   s    rK   rÎ   z_Reader.tell
  s   € ØŒ{×ÒÑ!Ô!Ð!rL   Úsc                 ó    — t          d¦  «        ‚)NÚwrite)r   )rI   rÏ   s     rK   rÑ   z_Reader.write  s   € Ý" 7Ñ+Ô+Ð+rL   )T)rM   rŽ   )rµ   rd   )r   )*re   rf   rg   rh   r   r;   ÚboolrH   rZ   r    r$   rj   r   rc   rš   Úbytesr¡   Úpropertyr£   Úintr¥   r¨   Ústrrª   r­   r¯   r²   r´   r¸   r&   Ú	bytearrayÚ
memoryviewr   r¼   r¿   r   rÂ   r—   rË   rÎ   r   rÑ   r™   rL   rK   rŽ   rŽ   ­   s  € € € € € ØCÐCð "ðð àðð ðð ð	ð
 ðð 
ðð ð ð ðð ð ð ðà˜4 Ô.Ô/ðð ˜-Ô(ðð ˜Ô'ð	ð
 
ðð ð ð ð˜(ð ð ð ð ð˜%ð ð ð ð ð
 ð˜ð ð ð ñ „Xðð$˜ð $ð $ð $ð $ð$˜ð $ð $ð $ð $ð ð �cð  ð  ð  ñ „Xð ð ð �cð  ð  ð  ñ „Xð ð&˜$ð &ð &ð &ð &ð&˜$ð &ð &ð &ð &ð˜$ð ð ð ð ðð ˜ð  eð ð ð ð ð
˜% 	¨:°tÐ ;Ô<ð ð ð ð ð
ð ˜Sð ¨%ð ð ð ð ð
ð ˜cð ¨4°¬;ð ð ð ð ð
ð ð ð ð
ð ˜3ð ¨ð °Cð ð ð ð ð
"�cð "ð "ð "ð "ð,�sð ,˜sð ,ð ,ð ,ð ,ð ,ð ,rL   rŽ   c                   óz   — e Zd ZdZdddeddfd„Zdefd„Zd	eee	                  d
ee	         dee
         ddfd„ZdS )Ú_ReadContextzEA utility class to handle a context for both a reader and a progress.r@   rA   ÚreaderrM   Nc                 ó"   — || _         || _        d S rV   )r@   rÛ   )rI   r@   rÛ   s      rK   rH   z_ReadContext.__init__  s   € Ø ˆŒØ ˆŒˆˆrL   c                 óf   — | j                              ¦   «          | j                             ¦   «         S rV   )r@   rX   rÛ   rZ   rY   s    rK   rZ   z_ReadContext.__enter__  s*   € ØŒ×ÒÑÔÐØŒ{×$Ò$Ñ&Ô&Ð&rL   r\   r]   r^   c                 óp   — | j                              ¦   «          | j                             |||¦  «         d S rV   )r@   ÚstoprÛ   rc   rb   s       rK   rc   z_ReadContext.__exit__  s8   € ð 	Œ×ÒÑÔÐØŒ×Ò˜X w°Ñ7Ô7Ð7Ð7Ð7rL   )re   rf   rg   rh   r=   rH   rZ   r    r$   rj   r   rc   r™   rL   rK   rÚ   rÚ     s¬   € € € € € ØOÐOð! ð !°Rð !¸Dð !ð !ð !ð !ð'˜2ð 'ð 'ð 'ð 'ð8à˜4 Ô.Ô/ð8ð ˜-Ô(ð8ð ˜Ô'ð	8ð
 
ð8ð 8ð 8ð 8ð 8ð 8rL   rÚ   ú
Reading...)ru   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   Úfilec          
      ó"  — |rt          d¦  «        gng }|                     t          ||	|
|¬¦  «        t          ¦   «         t	          ¦   «         f¦  «         t          ||||||pd|dœŽ}|                     | ||¬¦  «        }t          ||¦  «        S )a  Read bytes from a file while tracking progress.

    Args:
        file (Union[str, PathLike[str], BinaryIO]): The path to the file to read, or a file-like object in binary mode.
        total (int): Total number of bytes to read.
        description (str, optional): Description of task show next to progress bar. Defaults to "Reading".
        auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True.
        transient: (bool, optional): Clear the progress on exit. Defaults to False.
        console (Console, optional): Console to write to. Default creates internal Console instance.
        refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10.
        style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
        complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
        finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
        pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
        disable (bool, optional): Disable display of progress.
    Returns:
        ContextManager[BinaryIO]: A context manager yielding a progress reader.

    rƒ   r„   rn   r…   )rv   ru   )r†   r‡   rˆ   ÚDownloadColumnrŠ   rA   Ú	wrap_filerÚ   )rá   rv   ru   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   rŒ   r@   rÛ   s                   rK   rä   rä   &  sÑ   € ðJ EPÐW�Ð>Ñ	?Ô	?Ð@Ð@ÐUWð ð ‡N‚NåØØ-Ø-Ø'ð	ñ ô õ ÑÔÝÑ!Ô!ð		
ñô ð õ Ø	Ø!ØØØØ-Ð3°Øðð ð €Hð ×Ò ¨E¸{ÐÑKÔK€FÝ˜ &Ñ)Ô)Ð)rL   rµ   )rv   ru   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   úPathLike[str]rª   ÚrtÚrÚ	bufferingÚencodingÚerrorsÚnewlinec                ó   — d S rV   r™   ©rá   rª   rè   ré   rê   rë   rv   ru   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   s                     rK   Úopenrî   g  ó	   € ð, 	€DrL   Úrbc                ó   — d S rV   r™   rí   s                     rK   rî   rî   €  rï   rL   c          
      ó,  — |rt          d¦  «        gng }|                     t          ||||¬¦  «        t          ¦   «         t	          ¦   «         f¦  «         t          |||	|
||pd|dœŽ}|                     | |||||||¬¦  «        }t          ||¦  «        S )a®  Read bytes from a file while tracking progress.

    Args:
        path (Union[str, PathLike[str], BinaryIO]): The path to the file to read, or a file-like object in binary mode.
        mode (str): The mode to use to open the file. Only supports "r", "rb" or "rt".
        buffering (int): The buffering strategy to use, see :func:`io.open`.
        encoding (str, optional): The encoding to use when reading in text mode, see :func:`io.open`.
        errors (str, optional): The error handling strategy for decoding errors, see :func:`io.open`.
        newline (str, optional): The strategy for handling newlines in text mode, see :func:`io.open`
        total: (int, optional): Total number of bytes to read. Must be provided if reading from a file handle. Default for a path is os.stat(file).st_size.
        description (str, optional): Description of task show next to progress bar. Defaults to "Reading".
        auto_refresh (bool, optional): Automatic refresh, disable to force a refresh after each iteration. Default is True.
        transient: (bool, optional): Clear the progress on exit. Defaults to False.
        console (Console, optional): Console to write to. Default creates internal Console instance.
        refresh_per_second (float): Number of times per second to refresh the progress information. Defaults to 10.
        style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
        complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
        finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
        pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
        disable (bool, optional): Disable display of progress.
        encoding (str, optional): The encoding to use when reading in text mode.

    Returns:
        ContextManager[BinaryIO]: A context manager yielding a progress reader.

    rƒ   r„   rn   r…   )rª   rè   ré   rê   rë   rv   ru   )r†   r‡   rˆ   rã   rŠ   rA   rî   rÚ   )rá   rª   rè   ré   rê   rë   rv   ru   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   rŒ   r@   rÛ   s                        rK   rî   rî   ™  sé   € ðb EPÐW�Ð>Ñ	?Ô	?Ð@Ð@ÐUWð ð ‡N‚NåØØ-Ø-Ø'ð	ñ ô õ ÑÔÝÑ!Ô!ð		
ñô ð õ Ø	Ø!ØØØØ-Ð3°Øðð ð €Hð �]Š]ØØØØØØØØð ñ 	ô 	€Fõ ˜ &Ñ)Ô)Ð)rL   c                   óˆ   — e Zd ZU dZdZee         ed<   ddee         ddfd„Z	defd„Z
dd	defd
„Zedd	defd„¦   «         ZdS )ÚProgressColumnz3Base class for a widget to use in progress display.NÚmax_refreshÚtable_columnrM   c                 ó0   — || _         i | _        d | _        d S rV   )Ú_table_columnÚ_renderable_cacheÚ_update_time)rI   rö   s     rK   rH   zProgressColumn.__init__ô  s    € Ø)ˆÔØMOˆÔØ-1ˆÔÐÐrL   c                 ó,   — | j         pt          ¦   «         S )z.Get a table column, used to build tasks table.)rø   r7   rY   s    rK   Úget_table_columnzProgressColumn.get_table_columnù  s   € àÔ!Ð-¥V¡X¤XÐ-rL   r�   ÚTaskc                 ó  — |                      ¦   «         }| j        �>|j        s7	 | j        |j                 \  }}|| j        z   |k    r|S n# t
          $ r Y nw xY w|                      |¦  «        }||f| j        |j        <   |S )a  Called by the Progress object to return a renderable for the given task.

        Args:
            task (Task): An object containing information regarding the task.

        Returns:
            RenderableType: Anything renderable (including str).
        )rz   rõ   rF   rù   ÚidÚKeyErrorÚrender)rI   r�   Úcurrent_timeÚ	timestampÚ
renderables        rK   Ú__call__zProgressColumn.__call__ý  s©   € ð —}’}‘”ˆØÔÐ'°´Ð'ð&Ø(,Ô(>¸t¼wÔ(GÑ%�	˜:ð ˜tÔ/Ñ/°,Ò>Ð>Ø%Ð%ð ?øõ ð ð ð Ø�ðøøøð —[’[ Ñ&Ô&ˆ
Ø+7¸Ð*DˆÔ˜tœwÑ'ØÐs   ¤A
 Á

AÁAc                 ó   — dS )z"Should return a renderable object.Nr™   ©rI   r�   s     rK   r  zProgressColumn.render  s   € € € rL   rV   )re   rf   rg   rh   rõ   r    ri   Ú__annotations__r7   rH   rü   r0   r  r   r  r™   rL   rK   rô   rô   ï  sÇ   € € € € € € Ø=Ð=à#'€K�˜%”Ð'Ð'Ñ'ð2ð 2 X¨fÔ%5ð 2Àð 2ð 2ð 2ð 2ð
. &ð .ð .ð .ð .ð˜Vð ¨ð ð ð ð ð. ð1˜6ð 1 nð 1ð 1ð 1ñ „^ð1ð 1ð 1rL   rô   c                   óR   ‡ — e Zd ZdZ	 dddœdedee         fˆ fd„Zdd	d
efd„Zˆ xZ	S )ÚRenderableColumnz�A column to insert an arbitrary column.

    Args:
        renderable (RenderableType, optional): Any renderable. Defaults to empty string.
    Ú N©rö   r  rö   c                óZ   •— || _         t          ¦   «                              |¬¦  «         d S ©Nr  )r  rG   rH   )rI   r  rö   rJ   s      €rK   rH   zRenderableColumn.__init__   s-   ø€ ð %ˆŒÝ‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rL   r�   rý   rM   c                 ó   — | j         S rV   )r  r  s     rK   r  zRenderableColumn.render&  s
   € ØŒÐrL   )r  )
re   rf   rg   rh   r0   r    r7   rH   r  rk   rl   s   @rK   r
  r
    s•   ø€ € € € € ðð ð ,.ð4ØSWð4ð 4ð 4Ø(ð4Ø@HÈÔ@Pð4ð 4ð 4ð 4ð 4ð 4ð˜6ð  nð ð ð ð ð ð ð ð rL   r
  c                   ó–   ‡ — e Zd ZdZ	 	 	 	 	 ddedee         d	ed
edee	         f
ˆ fd„Z
	 	 ddedee         d	eddfd„Zdddefd„Zˆ xZS )ÚSpinnerColumna‰  A column with a 'spinner' animation.

    Args:
        spinner_name (str, optional): Name of spinner animation. Defaults to "dots".
        style (StyleType, optional): Style of spinner. Defaults to "progress.spinner".
        speed (float, optional): Speed factor of spinner. Defaults to 1.0.
        finished_text (TextType, optional): Text used when task is finished. Defaults to " ".
    Údotsúprogress.spinnerç      ð?ú NÚspinner_namer|   ÚspeedÚfinished_textrö   c                 óÚ   •— t          |||¬¦  «        | _        t          |t          ¦  «        rt	          j        |¦  «        n|| _        t          ¦   «                              |¬¦  «         d S )N©r|   r  r  )	r5   ÚspinnerÚ
isinstancerÖ   r9   Úfrom_markupr  rG   rH   )rI   r  r|   r  r  rö   rJ   s         €rK   rH   zSpinnerColumn.__init__4  sm   ø€ õ ˜|°5ÀÐFÑFÔFˆŒõ ˜-­Ñ-Ô-ð�DÔ˜]Ñ+Ô+Ð+àð 	Ôõ
 	‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rL   Úspinner_stylerM   c                 ó4   — t          |||¬¦  «        | _        dS )a-  Set a new spinner.

        Args:
            spinner_name (str): Spinner name, see python -m rich.spinner.
            spinner_style (Optional[StyleType], optional): Spinner style. Defaults to "progress.spinner".
            speed (float, optional): Speed factor of spinner. Defaults to 1.0.
        r  N)r5   r  )rI   r  r  r  s       rK   Úset_spinnerzSpinnerColumn.set_spinnerD  s   € õ ˜|°=ÈÐNÑNÔNˆŒˆˆrL   r�   rý   c                 óz   — |j         r| j        n+| j                             |                     ¦   «         ¦  «        }|S rV   )Úfinishedr  r  r  rz   )rI   r�   Útexts      rK   r  zSpinnerColumn.renderS  s=   € ð Œ}ð6ˆDÔÐà”×$Ò$ T§]¢]¡_¤_Ñ5Ô5ð 	ð
 ˆrL   )r  r  r  r  N)r  r  )re   rf   rg   rh   rÖ   r    r6   ri   r:   r7   rH   r   r0   r  rk   rl   s   @rK   r  r  *  s  ø€ € € € € ðð ð #Ø%7ØØ"%Ø)-ð4ð 4àð4ð ˜	Ô"ð4ð ð	4ð
  ð4ð ˜vÔ&ð4ð 4ð 4ð 4ð 4ð 4ð& .@Øð	Oð OàðOð   	Ô*ðOð ð	Oð
 
ðOð Oð Oð Oð˜6ð  nð ð ð ð ð ð ð ð rL   r  c                   ót   ‡ — e Zd ZdZ	 	 	 	 	 ddededed	ed
ee	         dee
         ddfˆ fd„Zdddefd„Zˆ xZS )r†   zA column containing text.ÚnoneÚleftTNÚtext_formatr|   ÚjustifyÚmarkupÚhighlighterrö   rM   c                 ó²   •— || _         || _        || _        || _        || _        t          ¦   «                              |pt          d¬¦  «        ¬¦  «         d S )NT©Úno_wrapr  )r'  r(  r|   r)  r*  rG   rH   r7   )rI   r'  r|   r(  r)  r*  rö   rJ   s          €rK   rH   zTextColumn.__init___  s[   ø€ ð 'ˆÔØ&-ˆŒØˆŒ
ØˆŒØ&ˆÔÝ‰Œ×Ò lÐ&JµfÀTÐ6JÑ6JÔ6JÐÑKÔKÐKÐKÐKrL   r�   rý   c                 ó  — | j                              |¬¦  «        }| j        r"t          j        || j        | j        ¬¦  «        }nt          || j        | j        ¬¦  «        }| j        r| j                             |¦  «         |S ©N©r�   )r|   r(  )	r'  Úformatr)  r9   r  r|   r(  r*  Ú	highlight)rI   r�   Ú_textr#  s       rK   r  zTextColumn.rendero  s‚   € ØÔ ×'Ò'¨TÐ'Ñ2Ô2ˆØŒ;ð 	GÝÔ# E°´ÀTÄ\ÐRÑRÔRˆDˆDå˜ T¤Z¸¼ÐFÑFÔFˆDØÔð 	-ØÔ×&Ò& tÑ,Ô,Ð,ØˆrL   )r%  r&  TNN)re   rf   rg   rh   rÖ   r6   r/   rÒ   r    r1   r7   rH   r9   r  rk   rl   s   @rK   r†   r†   \  s×   ø€ € € € € Ø#Ð#ð
 "Ø!'ØØ-1Ø)-ðLð LàðLð ðLð ð	Lð
 ðLð ˜kÔ*ðLð ˜vÔ&ðLð 
ðLð Lð Lð Lð Lð Lð ˜6ð  dð ð ð ð ð ð ð ð rL   r†   c                   óv   ‡ — e Zd ZdZ	 	 	 	 	 	 ddee         d	ed
edededee         ddfˆ fd„Zddde	fd„Z
ˆ xZS )rˆ   a  Renders a visual progress bar.

    Args:
        bar_width (Optional[int], optional): Width of bar or None for full width. Defaults to 40.
        style (StyleType, optional): Style for the bar background. Defaults to "bar.back".
        complete_style (StyleType, optional): Style for the completed bar. Defaults to "bar.complete".
        finished_style (StyleType, optional): Style for a finished bar. Defaults to "bar.finished".
        pulse_style (StyleType, optional): Style for pulsing bars. Defaults to "bar.pulse".
    é(   ro   rp   rq   rr   NÚ	bar_widthr|   r}   r~   r   rö   rM   c                 ó’   •— || _         || _        || _        || _        || _        t          ¦   «                              |¬¦  «         d S r  )r6  r|   r}   r~   r   rG   rH   )rI   r6  r|   r}   r~   r   rö   rJ   s          €rK   rH   zBarColumn.__init__…  sL   ø€ ð #ˆŒØˆŒ
Ø,ˆÔØ,ˆÔØ&ˆÔÝ‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rL   r�   rý   c                 ó   — t          |j        �t          d|j        ¦  «        ndt          d|j        ¦  «        | j        €dnt          d| j        ¦  «        |j         |                     ¦   «         | j        | j        | j	        | j
        ¬¦	  «	        S )z&Gets a progress bar widget for a task.Nr   r*   )	rv   rF   ÚwidthÚpulseÚanimation_timer|   r}   r~   r   )r4   rv   ÚmaxrF   r6  Ústartedrz   r|   r}   r~   r   r  s     rK   r  zBarColumn.render•  s‡   € åØ(,¬
Ð(>•#�a˜œÑ$Ô$Ð$ÀDÝ˜!˜Tœ^Ñ,Ô,Øœ.Ð0�$�$µc¸!¸T¼^Ñ6LÔ6LØ”lÐ"ØŸ=š=™?œ?Ø”*ØÔ.ØÔ.ØÔ(ð

ñ 

ô 

ð 
	
rL   )r5  ro   rp   rq   rr   N)re   rf   rg   rh   r    rÕ   r6   r7   rH   r4   r  rk   rl   s   @rK   rˆ   rˆ   z  sÏ   ø€ € € € € ðð ð $&Ø%Ø$2Ø$2Ø!,Ø)-ð4ð 4à˜C”=ð4ð ð4ð "ð	4ð
 "ð4ð ð4ð ˜vÔ&ð4ð 
ð4ð 4ð 4ð 4ð 4ð 4ð 
˜6ð 
 kð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
rL   rˆ   c                   ó"   — e Zd ZdZdddefd„ZdS )ÚTimeElapsedColumnzRenders time elapsed.r�   rý   rM   c                 óÈ   — |j         r|j        n|j        }|€t          dd¬¦  «        S t	          t          |¦  «        ¬¦  «        }t          t          |¦  «        d¬¦  «        S )úShow time remaining.Nú-:--:--úprogress.elapsed©r|   )Úseconds)r"  Úfinished_timeÚelapsedr9   r
   rÕ   rÖ   )rI   r�   rG  Údeltas       rK   r  zTimeElapsedColumn.render§  sa   € à(,¬ÐG�$Ô$Ð$¸4¼<ˆØˆ?Ý˜	Ð);Ð<Ñ<Ô<Ð<Ý¥# g¡,¤,Ð/Ñ/Ô/ˆÝ•C˜‘J”JÐ&8Ð9Ñ9Ô9Ð9rL   N©re   rf   rg   rh   r9   r  r™   rL   rK   r?  r?  ¤  s<   € € € € € ØÐð:˜6ð : dð :ð :ð :ð :ð :ð :rL   r?  c                   ó®   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 dd	ed
ededededee	         dee
         deddfˆ fd„Zedee         defd„¦   «         Zdddefd„Zˆ xZS )r‰   a  Show task progress as a percentage.

    Args:
        text_format (str, optional): Format for percentage display. Defaults to "[progress.percentage]{task.percentage:>3.0f}%".
        text_format_no_percentage (str, optional): Format if percentage is unknown. Defaults to "".
        style (StyleType, optional): Style of output. Defaults to "none".
        justify (JustifyMethod, optional): Text justification. Defaults to "left".
        markup (bool, optional): Enable markup. Defaults to True.
        highlighter (Optional[Highlighter], optional): Highlighter to apply to output. Defaults to None.
        table_column (Optional[Column], optional): Table Column to use. Defaults to None.
        show_speed (bool, optional): Show speed if total is unknown. Defaults to False.
    ú-[progress.percentage]{task.percentage:>3.0f}%r  r%  r&  TNFr'  Útext_format_no_percentager|   r(  r)  r*  rö   r�   rM   c	                 ór   •— || _         || _        t          ¦   «                              ||||||¬¦  «         d S )N)r'  r|   r(  r)  r*  rö   )rL  r�   rG   rH   )
rI   r'  rL  r|   r(  r)  r*  rö   r�   rJ   s
            €rK   rH   zTaskProgressColumn.__init__¾  sR   ø€ ð *CˆÔ&Ø$ˆŒÝ‰Œ×ÒØ#ØØØØ#Ø%ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
rL   r  c                 ó°   — |€t          dd¬¦  «        S t          j        t          |¦  «        g d¢d¦  «        \  }}||z  }t          |d›|› d�d¬¦  «        S )	zµRender the speed in iterations per second.

        Args:
            task (Task): A Task object.

        Returns:
            Text: Text object containing the task speed.
        Nr  zprogress.percentagerD  )r  u   Ã—10Â³u   Ã—10â�¶u   Ã—10â�¹u   Ã—10Â¹Â²éè  z.1fz it/s)r9   r+   Úpick_unit_and_suffixrÕ   )Úclsr  ÚunitÚsuffixÚ
data_speeds        rK   Úrender_speedzTaskProgressColumn.render_speedÕ  sx   € ð ˆ=Ý˜Ð"7Ð8Ñ8Ô8Ð8ÝÔ4Ý�‰JŒJØ<Ð<Ð<Øñ
ô 
‰ˆˆfð
 ˜T‘\ˆ
Ý�zÐ4Ð4 vÐ4Ð4Ð4Ð<QÐRÑRÔRÐRrL   r�   rý   c                 ó†  — |j         €(| j        r!|                      |j        p|j        ¦  «        S |j         €| j        n| j        }|                     |¬¦  «        }| j        r"t          j
        || j        | j        ¬¦  «        }nt          || j        | j        ¬¦  «        }| j        r| j                             |¦  «         |S r/  )rv   r�   rU  Úfinished_speedr  rL  r'  r1  r)  r9   r  r|   r(  r*  r2  )rI   r�   r'  r3  r#  s        rK   r  zTaskProgressColumn.renderé  sÈ   € ØŒ:Ð $¤/ÐØ×$Ò$ TÔ%8Ð%F¸D¼JÑGÔGÐGà.2¬jÐ.@ˆDÔ*Ð*ÀdÔFVð 	ð ×"Ò"¨Ð"Ñ-Ô-ˆØŒ;ð 	GÝÔ# E°´ÀTÄ\ÐRÑRÔRˆDˆDå˜ T¤Z¸¼ÐFÑFÔFˆDØÔð 	-ØÔ×&Ò& tÑ,Ô,Ð,ØˆrL   )rK  r  r%  r&  TNNF)re   rf   rg   rh   rÖ   r6   r/   rÒ   r    r1   r7   rH   Úclassmethodri   r9   rU  r  rk   rl   s   @rK   r‰   r‰   °  s#  ø€ € € € € ðð ð KØ)+Ø!Ø!'ØØ-1Ø)-Ø ð
ð 
àð
ð $'ð
ð ð	
ð
 ð
ð ð
ð ˜kÔ*ð
ð ˜vÔ&ð
ð ð
ð 
ð
ð 
ð 
ð 
ð 
ð 
ð. ðS ¨%¤ð S°Tð Sð Sð Sñ „[ðSð&˜6ð  dð ð ð ð ð ð ð ð rL   r‰   c                   óX   ‡ — e Zd ZdZdZ	 	 	 ddededee         fˆ fd„Zd	d
de	fd„Z
ˆ xZS )rŠ   a  Renders estimated time remaining.

    Args:
        compact (bool, optional): Render MM:SS when time remaining is less than an hour. Defaults to False.
        elapsed_when_finished (bool, optional): Render time elapsed when the task is finished. Defaults to False.
    ç      à?FNÚcompactÚelapsed_when_finishedrö   c                 óh   •— || _         || _        t          ¦   «                              |¬¦  «         d S r  )r[  r\  rG   rH   )rI   r[  r\  rö   rJ   s       €rK   rH   zTimeRemainingColumn.__init__  s5   ø€ ð ˆŒØ%:ˆÔ"Ý‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rL   r�   rý   rM   c                 ót  — | j         r|j        r
|j        }d}n	|j        }d}|j        €t          d|¬¦  «        S |€t          | j        rdnd|¬¦  «        S t          t          |¦  «        d¦  «        \  }}t          |d¦  «        \  }}| j        r|s
|d	›d
|d	›�}n|d›d
|d	›d
|d	›�}t          ||¬¦  «        S )rA  rC  zprogress.remainingNr  rD  z--:--rB  é<   Ú02dú:Úd)	r\  r"  rF  Útime_remainingrv   r9   r[  ÚdivmodrÕ   )rI   r�   Ú	task_timer|   ÚminutesrE  ÚhoursÚ	formatteds           rK   r  zTimeRemainingColumn.render  s  € àÔ%ð 	)¨$¬-ð 	)ØÔ*ˆIØ&ˆEˆEàÔ+ˆIØ(ˆEàŒ:ÐÝ˜ %Ð(Ñ(Ô(Ð(àÐÝ 4¤<Ð>˜˜°YÀeÐLÑLÔLÐLõ "¥# i¡.¤.°"Ñ5Ô5Ñˆ�Ý ¨Ñ,Ô,‰ˆˆwàŒ<ð 	A ð 	AØ"Ð6Ð6Ð6¨Ð6Ð6Ð6ˆIˆIà Ð@Ð@Ð@ WÐ@Ð@Ð@°7Ð@Ð@Ð@ˆIå�I UÐ+Ñ+Ô+Ð+rL   )FFN)re   rf   rg   rh   rõ   rÒ   r    r7   rH   r9   r  rk   rl   s   @rK   rŠ   rŠ   ù  s¡   ø€ € € € € ðð ð €Kð Ø&+Ø)-ð	4ð 4àð4ð  $ð4ð ˜vÔ&ð	4ð 4ð 4ð 4ð 4ð 4ð,˜6ð , dð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,rL   rŠ   c                   ó"   — e Zd ZdZdddefd„ZdS )ÚFileSizeColumnzRenders completed filesize.r�   rý   rM   c                 óp   — t          j        t          |j        ¦  «        ¦  «        }t	          |d¬¦  «        S )úShow data completed.zprogress.filesizerD  )r+   ÚdecimalrÕ   rF   r9   ©rI   r�   Ú	data_sizes      rK   r  zFileSizeColumn.render,  s0   € åÔ$¥S¨¬Ñ%8Ô%8Ñ9Ô9ˆ	Ý�IÐ%8Ð9Ñ9Ô9Ð9rL   NrI  r™   rL   rK   rj  rj  )  s<   € € € € € Ø%Ð%ð:˜6ð : dð :ð :ð :ð :ð :ð :rL   rj  c                   ó"   — e Zd ZdZdddefd„ZdS )ÚTotalFileSizeColumnzRenders total filesize.r�   rý   rM   c                 ó‚   — |j         �&t          j        t          |j         ¦  «        ¦  «        nd}t	          |d¬¦  «        S )rl  Nr  zprogress.filesize.totalrD  )rv   r+   rm  rÕ   r9   rn  s      rK   r  zTotalFileSizeColumn.render5  s;   € à9=¼Ð9O•HÔ$¥S¨¬¡_¤_Ñ5Ô5Ð5ÐUWˆ	Ý�IÐ%>Ð?Ñ?Ô?Ð?rL   NrI  r™   rL   rK   rq  rq  2  sD   € € € € € Ø!Ð!ð@˜6ð @ dð @ð @ð @ð @ð @ð @rL   rq  c                   óJ   ‡ — e Zd ZdZddedee         fˆ fd„Zddd	efd
„Z	ˆ xZ
S )ÚMofNCompleteColumnaH  Renders completed count/total, e.g. '  10/1000'.

    Best for bounded tasks with int quantities.

    Space pads the completed count so that progress length does not change as task progresses
    past powers of 10.

    Args:
        separator (str, optional): Text to separate completed and total values. Defaults to "/".
    ú/NÚ	separatorrö   c                 óZ   •— || _         t          ¦   «                              |¬¦  «         d S r  )rv  rG   rH   )rI   rv  rö   rJ   s      €rK   rH   zMofNCompleteColumn.__init__G  s+   ø€ Ø"ˆŒÝ‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rL   r�   rý   rM   c                 óÜ   — t          |j        ¦  «        }|j        �t          |j        ¦  «        nd}t          t	          |¦  «        ¦  «        }t          ||› d�›| j        › |› �d¬¦  «        S )zShow completed/total.Nú?rb  úprogress.downloadrD  )rÕ   rF   rv   rŸ   rÖ   r9   rv  )rI   r�   rF   rv   Útotal_widths        rK   r  zMofNCompleteColumn.renderK  st   € å˜œÑ'Ô'ˆ	Ø#'¤:Ð#9•�D”J‘”�¸sˆÝ�#˜e™*œ*‘o”oˆÝØ˜+Ð@Ð@Ð@Ð@¨¬Ð@¸Ð@Ð@Ø%ð
ñ 
ô 
ð 	
rL   )ru  N)re   rf   rg   rh   rÖ   r    r7   rH   r9   r  rk   rl   s   @rK   rt  rt  ;  s�   ø€ € € € € ð	ð 	ð4ð 4 #ð 4¸8ÀFÔ;Kð 4ð 4ð 4ð 4ð 4ð 4ð
˜6ð 
 dð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
rL   rt  c                   óP   ‡ — e Zd ZdZ	 ddedee         ddfˆ fd„Zdd	defd
„Z	ˆ xZ
S )rã   z¤Renders file size downloaded and total, e.g. '0.5/2.3 GB'.

    Args:
        binary_units (bool, optional): Use binary units, KiB, MiB etc. Defaults to False.
    FNÚbinary_unitsrö   rM   c                 óZ   •— || _         t          ¦   «                              |¬¦  «         d S r  )r}  rG   rH   )rI   r}  rö   rJ   s      €rK   rH   zDownloadColumn.__init__]  s.   ø€ ð )ˆÔÝ‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3rL   r�   rý   c                 óž  — t          |j        ¦  «        }|j        �t          |j        ¦  «        n|}| j        rt	          j        |g d¢d¦  «        \  }}nt	          j        |g d¢d¦  «        \  }}|dk    rdnd}||z  }|d|› d	�›}|j        �"t          |j        ¦  «        }	|	|z  }
|
d|› d	�›}nd
}|› d|› d|› �}t          |d¬¦  «        }|S )z.Calculate common unit for completed and total.N)	rÓ   ÚKiBÚMiBÚGiBÚTiBÚPiBÚEiBÚZiBÚYiBi   )	rÓ   ÚkBÚMBÚGBÚTBÚPBÚEBÚZBÚYBrO  r*   r   z,.Úfry  ru  r  rz  rD  )rÕ   rF   rv   r}  r+   rP  r9   )rI   r�   rF   Ú unit_and_suffix_calculation_baserR  rS  Ú	precisionÚcompleted_ratioÚcompleted_strrv   Útotal_ratioÚ	total_strÚdownload_statusÚdownload_texts                 rK   r  zDownloadColumn.renderc  s+  € å˜œÑ'Ô'ˆ	ð  $œzÐ5�C�”
‰OŒOˆO¸9ð 	)ð Ôð 	Ý#Ô8Ø0ØQÐQÐQØñô ‰LˆD�&�&õ $Ô8Ø0ØIÐIÐIØñô ‰LˆD�&ð
  š˜�A�A¨ˆ	à# dÑ*ˆØ*Ð;¨iÐ;Ð;Ð;Ð;ˆàŒ:Ð!Ý˜œ
‘O”OˆEØ $™,ˆKØ&Ð7¨)Ð7Ð7Ð7Ð7ˆIˆIàˆIà*ÐAÐA¨YÐAÐA¸ÐAÐAˆÝ˜_Ð4GÐHÑHÔHˆØÐrL   )FN)re   rf   rg   rh   rÒ   r    r7   rH   r9   r  rk   rl   s   @rK   rã   rã   V  s’   ø€ € € € € ðð ð LPð4ð 4Ø ð4Ø8@ÀÔ8Hð4à	ð4ð 4ð 4ð 4ð 4ð 4ð!˜6ð ! dð !ð !ð !ð !ð !ð !ð !ð !rL   rã   c                   ó"   — e Zd ZdZdddefd„ZdS )ÚTransferSpeedColumnz&Renders human readable transfer speed.r�   rý   rM   c                 ó®   — |j         p|j        }|€t          dd¬¦  «        S t          j        t          |¦  «        ¦  «        }t          |› d�d¬¦  «        S )zShow data transfer speed.Nry  zprogress.data.speedrD  z/s)rW  r  r9   r+   rm  rÕ   )rI   r�   r  rT  s       rK   r  zTransferSpeedColumn.renderŠ  s]   € àÔ#Ð1 t¤zˆØˆ=Ý˜Ð#8Ð9Ñ9Ô9Ð9ÝÔ%¥c¨%¡j¤jÑ1Ô1ˆ
Ý�zÐ%Ð%Ð%Ð-BÐCÑCÔCÐCrL   NrI  r™   rL   rK   rš  rš  ‡  sD   € € € € € Ø0Ð0ðD˜6ð D dð Dð Dð Dð Dð Dð DrL   rš  c                   ó*   — e Zd ZU dZeed<   	 eed<   dS )ÚProgressSamplez$Sample of progress for a given time.r  rF   N)re   rf   rg   rh   ri   r  r™   rL   rK   r�  r�  “  s3   € € € € € € Ø.Ð.àÐÐÑØØÐÐÑØ$Ð$rL   r�  c                   ó¢  — e Zd ZU dZeed<   	 eed<   	 ee         ed<   	 eed<   	 e	ed<   	 dZ
ee         ed<   	 d	Zeed
<   	  ee¬¦  «        Zeeef         ed<   	  eddd¬¦  «        Zee         ed<   	  eddd¬¦  «        Zee         ed<   	 dZee         ed<   	  ed„ dd¬¦  «        Zee         ed<    ede¬¦  «        Zeed<   	 defd„Zedefd„¦   «         Zedee         fd„¦   «         Zedee         fd„¦   «         Zedefd„¦   «         Zedefd„¦   «         Z edee         fd„¦   «         Z!edee         fd„¦   «         Z"d!d „Z#dS )"rý   z…Information regarding a progress task.

    This object should be considered read-only outside of the :class:`~Progress` class.

    rÿ   ru   rv   rF   Ú	_get_timeNrF  TÚvisible)Údefault_factoryÚfieldsF)ÚdefaultÚinitÚreprÚ
start_timeÚ	stop_timerW  c                  ó"   — t          d¬¦  «        S )NrO  )Úmaxlenr   r™   rL   rK   ú<lambda>zTask.<lambda>Æ  s   € ¥¨TÐ 2Ñ 2Ô 2€ rL   )r¡  r¤  r¥  Ú	_progress)r¥  r¡  Ú_lockrM   c                 ó*   — |                       ¦   «         S )z(float: Get the current time, in seconds.)rŸ  rY   s    rK   rz   zTask.get_timeÌ  s   € à�~Š~ÑÔÐrL   c                 ó   — | j         duS )z#bool: Check if the task as started.N)r¦  rY   s    rK   r=  zTask.startedÐ  s   € ð Œ dÐ*Ð*rL   c                 ó2   — | j         €dS | j         | j        z
  S )zPOptional[float]: Get the number of steps remaining, if a non-None total was set.N)rv   rF   rY   s    rK   Ú	remainingzTask.remainingÕ  s    € ð Œ:ÐØ�4ØŒz˜DœNÑ*Ð*rL   c                 óx   — | j         €dS | j        �| j        | j         z
  S |                      ¦   «         | j         z
  S )z]Optional[float]: Time elapsed since task was started, or ``None`` if the task hasn't started.N)r¦  r§  rz   rY   s    rK   rG  zTask.elapsedÜ  s=   € ð Œ?Ð"Ø�4ØŒ>Ð%Ø”> D¤OÑ3Ð3Ø�}Š}‰Œ ¤Ñ0Ð0rL   c                 ó   — | j         duS )zCheck if the task has finished.N)rF  rY   s    rK   r"  zTask.finishedå  s   € ð Ô!¨Ð-Ð-rL   c                 óx   — | j         sdS | j        | j         z  dz  }t          dt          d|¦  «        ¦  «        }|S )zOfloat: Get progress of task as a percentage. If a None total was set, returns 0ç        ç      Y@)rv   rF   Úminr<  )rI   rF   s     rK   Ú
percentagezTask.percentageê  sE   € ð Œzð 	Ø�3Ø”^ d¤jÑ0°EÑ9ˆ	Ý˜�s 3¨	Ñ2Ô2Ñ3Ô3ˆ	ØÐrL   c                 ó^  — | j         €dS | j        5  | j        }|s	 ddd¦  «         dS |d         j        |d         j        z
  }|dk    r	 ddd¦  «         dS t	          |¦  «        }t          |¦  «         t          d„ |D ¦   «         ¦  «        }||z  }|cddd¦  «         S # 1 swxY w Y   dS )z=Optional[float]: Get the estimated speed in steps per second.Nrµ   r   c              3   ó$   K  — | ]}|j         V — Œd S rV   rÊ   )Ú.0Úsamples     rK   ú	<genexpr>zTask.speed.<locals>.<genexpr>  s%   è è € Ð!OÐ!O°v &Ô"2Ð!OÐ!OÐ!OÐ!OÐ!OÐ!OrL   )r¦  r¬  r«  r  Úiterrž   rÃ   )rI   r@   Ú
total_timeÚiter_progressÚtotal_completedr  s         rK   r  z
Task.speedó  sI  € ð Œ?Ð"Ø�4ØŒZð 	ð 	Ø”~ˆHØð Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð " "œÔ/°(¸1´+Ô2GÑGˆJØ˜QŠˆØð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	õ ! ™NœNˆMÝ�ÑÔÐÝ!Ð!OÐ!OÀÐ!OÑ!OÔ!OÑOÔOˆOØ# jÑ0ˆEØð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ‘B"©"B"Á=B"Â"B&Â)B&c                 óh   — | j         rdS | j        }|sdS | j        }|€dS t          ||z  ¦  «        }|S )zJOptional[float]: Get estimated time to completion, or ``None`` if no data.r´  N)r"  r  r°  r   )rI   r  r°  Úestimates       rK   rc  zTask.time_remaining  sP   € ð Œ=ð 	Ø�3Ø”
ˆØð 	Ø�4Ø”Nˆ	ØÐØ�4Ý˜	 EÑ)Ñ*Ô*ˆØˆrL   c                 óT   — | j                              ¦   «          d| _        d| _        dS )zReset progress.N)r«  ÚclearrF  rW  rY   s    rK   Ú_resetzTask._reset  s,   € àŒ×ÒÑÔÐØ!ˆÔØ"ˆÔÐÐrL   rd   )$re   rf   rg   rh   r;   r  rÖ   r    ri   ÚGetTimeCallablerF  r   rÒ   r	   Údictr¢  r   r   r¦  r§  rW  r«  r   r�  r   r¬  rz   rÔ   r=  r°  rG  r"  r·  r  rc  rÅ  r™   rL   rK   rý   rý   œ  sÑ  € € € € € € ðð ð 	€J€J�JØGàÐÐÑØ'à�EŒ?ÐÐÑØ>àÐÐÑØ*àÐÐÑØ+à%)€M�8˜E”?Ð)Ð)Ñ)Ø(à€GˆTÐÐÑØJà"˜U°4Ð8Ñ8Ô8€FˆD��c�ŒNÐ8Ð8Ñ8Ø?à"' %°¸5ÀuÐ"MÑ"MÔ"M€J�˜”ÐMÐMÑMØNà!& ¨t¸%ÀeÐ!LÑ!LÔ!L€Iˆx˜ŒÐLÐLÑLØNà&*€N�H˜U”OÐ*Ð*Ñ*Ø>à', uØ2Ð2¸ÀUð(ñ (ô (€Iˆu�^Ô$ð ð ñ ð �5˜e°UÐ;Ñ;Ô;€Eˆ5Ð;Ð;Ñ;Øð ˜%ð  ð  ð  ð  ð ð+˜ð +ð +ð +ñ „Xð+ð ð+˜8 Eœ?ð +ð +ð +ñ „Xð+ð ð1˜ %œð 1ð 1ð 1ñ „Xð1ð ð.˜$ð .ð .ð .ñ „Xð.ð ð˜Eð ð ð ñ „Xðð ð�x ”ð ð ð ñ „Xðð" ð ¨¤ð ð ð ñ „Xðð#ð #ð #ð #ð #ð #rL   rý   c                   ó`  — e Zd ZdZdddddddddddœ
deeef         d	ee         d
e	de
de
de	de	de	dee         de	de	ddfd„Zedeedf         fd„¦   «         Zedefd„¦   «         Zedee         fd„¦   «         Zedee         fd„¦   «         Zede	fd„¦   «         ZdTd„ZdTd„ZdUd„Zdeee                  dee         d ee         ddfd!„Z	 	 	 	 dVd$eee          e!e          f         d%ee
         d&ee         d'ed(e
dee          fd)„Z"	 dWdd*d+œd,e#d%ee$         d&ee         d'ede#f
d-„Z%e&j'        	 	 	 	 dXddd*d/œd,eed0e(f         d1e)d2         d3e$d4ee         d5ee         d6ee         d%ee$         d&ee         d'ede#fd7„¦   «         Z*e&j'        	 	 	 	 dXddd*d/œd,eed0e(f         d1ee)d8         e)d9         f         d3e$d4ee         d5ee         d6ee         d%ee$         d&ee         d'ede+fd:„¦   «         Z*	 	 	 	 	 dYddd*d/œd,eed0e(f         d1ee)d2         e)d9         e)d8         f         d3e$d4ee         d5ee         d6ee         d%ee$         d&ee         d'edee#e+f         fd;„Z*d&eddfd<„Z,d&eddfd=„Z-ddddddd>œd&ed%ee
         d?ee
         d@ee
         d'ee         dAee	         dBe	dCe.ddfdD„Z/dddEdddFœd&edGe	d%ee
         d?e$dAee	         d'ee         dCe.ddfdH„Z0dZd&ed@e
ddfdJ„Z1dTdK„Z2de3fdL„Z4dee3         fdM„Z5dNee         de6fdO„Z7de3fdP„Z8	 	 	 	 d[d'edGe	d%ee
         d?e$dAe	dCe.defdR„Z9d&eddfdS„Z:dS )\rA   a�  Renders an auto-updating progress bar(s).

    Args:
        console (Console, optional): Optional Console instance. Default will an internal Console instance writing to stdout.
        auto_refresh (bool, optional): Enable auto refresh. If disabled, you will need to call `refresh()`.
        refresh_per_second (Optional[float], optional): Number of times per second to refresh the progress information or None to use default (10). Defaults to None.
        speed_estimate_period: (float, optional): Period (in seconds) used to calculate the speed estimate. Defaults to 30.
        transient: (bool, optional): Clear the progress on exit. Defaults to False.
        redirect_stdout: (bool, optional): Enable redirection of stdout, so ``print`` may be used. Defaults to True.
        redirect_stderr: (bool, optional): Enable redirection of stderr. Defaults to True.
        get_time: (Callable, optional): A callable that gets the current time, or None to use Console.get_time. Defaults to None.
        disable (bool, optional): Disable progress display. Defaults to False
        expand (bool, optional): Expand tasks table to fit width. Defaults to False.
    NTrn   g      >@F)
rx   rw   r{   Úspeed_estimate_periodry   Úredirect_stdoutÚredirect_stderrrz   r€   ÚexpandrŒ   rx   rw   r{   rÉ  ry   rÊ  rË  rz   r€   rÌ  rM   c       
   	      ó¨  — |dk    s
J d¦   «         ‚t          ¦   «         | _        |p|                      ¦   «         | _        || _        |	| _        |
| _        i | _        t          d¦  «        | _	        t          |pt          ¦   «         |||||| j        ¬¦  «        | _        |p| j        j        | _        | j        j        | _        | j        j        | _        d S )Nr   zrefresh_per_second must be > 0)rx   rw   r{   ry   rÊ  rË  Úget_renderable)r   r¬  Úget_default_columnsrŒ   rÉ  r€   rÌ  Ú_tasksr;   Ú_task_indexr3   r,   rÎ  Úliverx   rz   ÚprintÚlog)rI   rx   rw   r{   rÉ  ry   rÊ  rË  rz   r€   rÌ  rŒ   s               rK   rH   zProgress.__init__*  sÒ   € ð " AÒ%Ð%Ð%Ð'GÑ%Ô%Ð%Ý‘W”WˆŒ
ØÐ< $×":Ò":Ñ"<Ô"<ˆŒØ%:ˆÔ"àˆŒØˆŒØ*,ˆŒÝ#)¨!¡9¤9ˆÔÝØÐ,�{™}œ}Ø%Ø1ØØ+Ø+ØÔ.ð
ñ 
ô 
ˆŒ	ð !Ð9 D¤LÔ$9ˆŒØ”\Ô'ˆŒ
Ø”<Ô#ˆŒˆˆrL   .c                 óp   — t          d¦  «        t          ¦   «         t          ¦   «         t          ¦   «         fS )a£  Get the default columns used for a new Progress instance:
           - a text column for the description (TextColumn)
           - the bar itself (BarColumn)
           - a text column showing completion percentage (TextColumn)
           - an estimated-time-remaining column (TimeRemainingColumn)
        If the Progress instance is created without passing a columns argument,
        the default columns defined here will be used.

        You can also create a Progress instance using custom columns before
        and/or after the defaults, as in this example:

            progress = Progress(
                SpinnerColumn(),
                *Progress.default_columns(),
                "Elapsed:",
                TimeElapsedColumn(),
            )

        This code shows the creation of a Progress display, containing
        a spinner to the left, the default columns, and a labeled elapsed
        time column.
        rƒ   )r†   rˆ   r‰   rŠ   )rQ  s    rK   rÏ  zProgress.get_default_columnsN  s3   € õ2 ÐAÑBÔBÝ‰KŒKÝÑ Ô ÝÑ!Ô!ð	
ð 	
rL   c                 ó   — | j         j        S rV   )rÒ  rx   rY   s    rK   rx   zProgress.consolem  s   € àŒyÔ Ð rL   c                 ó�   — | j         5  t          | j                             ¦   «         ¦  «        cddd¦  «         S # 1 swxY w Y   dS )zGet a list of Task instances.N)r¬  ÚlistrÐ  ÚvaluesrY   s    rK   ÚtaskszProgress.tasksq  s‰   € ð ŒZð 	.ð 	.Ý˜œ×*Ò*Ñ,Ô,Ñ-Ô-ð	.ð 	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ó   ˆ&;»?Á?c                 ó�   — | j         5  t          | j                             ¦   «         ¦  «        cddd¦  «         S # 1 swxY w Y   dS )zA list of task IDs.N)r¬  rØ  rÐ  ÚkeysrY   s    rK   Útask_idszProgress.task_idsw  s‰   € ð ŒZð 	,ð 	,Ý˜œ×(Ò(Ñ*Ô*Ñ+Ô+ð	,ð 	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,rÛ  c                 óÎ   — | j         5  | j        s	 ddd¦  «         dS t          d„ | j                             ¦   «         D ¦   «         ¦  «        cddd¦  «         S # 1 swxY w Y   dS )z'Check if all tasks have been completed.NTc              3   ó$   K  — | ]}|j         V — Œd S rV   )r"  )rº  r�   s     rK   r¼  z$Progress.finished.<locals>.<genexpr>ƒ  s$   è è € ÐFÐF¨�t”}ÐFÐFÐFÐFÐFÐFrL   )r¬  rÐ  ÚallrÙ  rY   s    rK   r"  zProgress.finished}  së   € ð ŒZð 	Gð 	GØ”;ð Øð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gõ ÐFÐF°´×1CÒ1CÑ1EÔ1EÐFÑFÔFÑFÔFð	Gð 	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gs   ˆ	Až/AÁAÁ!Ac                 óN   — | j         s| j                             d¬¦  «         dS dS )zStart the progress display.T)rO   N)r€   rÒ  rX   rY   s    rK   rX   zProgress.start…  s2   € àŒ|ð 	*ØŒI�OŠO DˆOÑ)Ô)Ð)Ð)Ð)ð	*ð 	*rL   c                 ó†   — | j                              ¦   «          | j        j        s| j                             ¦   «          dS dS )zStop the progress display.N)rÒ  rß   rx   Úis_interactiverÓ  rY   s    rK   rß   zProgress.stopŠ  sE   € àŒ	�ŠÑÔÐØŒ|Ô*ð 	!ØŒL×ÒÑ Ô Ð Ð Ð ð	!ð 	!rL   c                 ó.   — |                       ¦   «          | S rV   rW   rY   s    rK   rZ   zProgress.__enter__�  r[   rL   r\   r]   r^   c                 ó.   — |                       ¦   «          d S rV   )rß   rb   s       rK   rc   zProgress.__exit__”  s   € ð 	�	Š	‰ŒˆˆˆrL   rm   rs   rt   rv   rB   ru   rC   c              #   óÚ  K  — d}|€2t          |t          ¦  «        rt          t          |¦  «        ¦  «        }n|}|€|                      ||¬¦  «        }n|                      ||¬¦  «         | j        j        rFt          | ||¦  «        5 }|D ]}|V — |xj	        dz  c_	        Œ	 ddd¦  «         dS # 1 swxY w Y   dS | j
        }	| j        }
|D ]}|V —  |	|d¦  «          |
¦   «          ŒdS )a‡  Track progress by iterating over a sequence.

        Args:
            sequence (Sequence[ProgressType]): A sequence of values you want to iterate over and track progress.
            total: (float, optional): Total number of steps. Default is len(sequence).
            task_id: (TaskID): Task to track. Default is new task.
            description: (str, optional): Description of task, if new task is created.
            update_period (float, optional): Minimum time (in seconds) between calls to update(). Defaults to 0.1.

        Returns:
            Iterable[ProgressType]: An iterable of values taken from the provided sequence.
        N©rv   r*   )r  r   ri   rŸ   Úadd_taskrR   rÒ  rw   r?   rF   rP   rO   )rI   rt   rv   rB   ru   rC   Ú
task_totalÚtrack_threadÚvaluerP   rO   s              rK   r‹   zProgress.trackœ  st  è è € ð* '+ˆ
Øˆ=Ý˜(¥EÑ*Ô*ð 2Ý"¥3 x¡=¤=Ñ1Ô1�
øàˆJàˆ?Ø—m’m K°z�mÑBÔBˆGˆGà�KŠK˜ zˆKÑ2Ô2Ð2àŒ9Ô!ð 	Ý˜d G¨]Ñ;Ô;ð 0¸|Ø%ð 0ð 0�EØ�K�K�KØ Ð*Ô*¨aÑ/Ð*Ô*Ð*ð0ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0ð
 ”lˆGØ”lˆGØ!ð ð �Ø���Ø�˜ Ñ#Ô#Ð#Ø�‘	”	�	�	ðð s   Â	B1Â1B5Â8B5rà   )rB   ru   rá   c                ó   — d}|�|}n3|�1| j         5  | j        |         j        }ddd¦  «         n# 1 swxY w Y   |€t          d¦  «        ‚|€|                      ||¬¦  «        }n|                      ||¬¦  «         t          || |d¬¦  «        S )aj  Track progress file reading from a binary file.

        Args:
            file (BinaryIO): A file-like object opened in binary mode.
            total (int, optional): Total number of bytes to read. This must be provided unless a task with a total is also given.
            task_id (TaskID): Task to track. Default is new task.
            description (str, optional): Description of task, if new task is created.

        Returns:
            BinaryIO: A readable file-like object in binary mode.

        Raises:
            ValueError: When no total value can be extracted from the arguments or the task.
        Nz?unable to get the total number of bytes, please specify 'total'rè  F©r‘   )r¬  rÐ  rv   Ú
ValueErrorré  rR   rŽ   )rI   rá   rv   rB   ru   Útotal_bytess         rK   rä   zProgress.wrap_fileÊ  sî   € ð. (,ˆØÐØˆKˆKØÐ Ø”ð 9ð 9Ø"œk¨'Ô2Ô8�ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9àÐÝØRñô ð ð
 ˆ?Ø—m’m K°{�mÑCÔCˆGˆGà�KŠK˜ {ˆKÑ3Ô3Ð3å�t˜T 7¸Ð?Ñ?Ô?Ð?s   ‘0°4·4rµ   )rv   rB   ru   rå   rª   rð   rè   ré   rê   rë   c                ó   — d S rV   r™   ©
rI   rá   rª   rè   ré   rê   rë   rv   rB   ru   s
             rK   rî   zProgress.openô  ó	   € ð 	ˆrL   rç   ræ   c                ó   — d S rV   r™   rò  s
             rK   rî   zProgress.open  ró  rL   c                óv  — d                      t          |d¬¦  «        ¦  «        }
|
dvr"t          d                     |¦  «        ¦  «        ‚|dk    }|
dk    r#|dk    rt	          j        dt          ¦  «         d	}n)|
d
k    s|
dk    r|dk    rt          d¦  «        ‚|dk    rd	}|€t          |¦  «        j        }|€|  	                    |	|¬¦  «        }n|  
                    ||¬¦  «         t          j        |d|¬¦  «        }t          || |d¬¦  «        }|dk    s|d
k    rt          j        |||||¬¦  «        S |S )a#  Track progress while reading from a binary file.

        Args:
            path (Union[str, PathLike[str]]): The path to the file to read.
            mode (str): The mode to use to open the file. Only supports "r", "rb" or "rt".
            buffering (int): The buffering strategy to use, see :func:`io.open`.
            encoding (str, optional): The encoding to use when reading in text mode, see :func:`io.open`.
            errors (str, optional): The error handling strategy for decoding errors, see :func:`io.open`.
            newline (str, optional): The strategy for handling newlines in text mode, see :func:`io.open`.
            total (int, optional): Total number of bytes to read. If none given, os.stat(path).st_size is used.
            task_id (TaskID): Task to track. Default is new task.
            description (str, optional): Description of task, if new task is created.

        Returns:
            BinaryIO: A readable file-like object in binary mode.

        Raises:
            ValueError: When an invalid mode is given.
        r  F)Úreverse)Úbrræ   rç   zinvalid mode {!r}r*   r÷  zaline buffering (buffering=1) isn't supported in binary mode, the default buffer size will be usedrµ   ræ   rç   r   zcan't have unbuffered text I/ONrè  rð   )rè   Trî  )ré   rê   rë   Úline_buffering)ra   Úsortedrï  r1  ÚwarningsÚwarnÚRuntimeWarningr   Úst_sizeré  rR   Úiorî   rŽ   ÚTextIOWrapper)rI   rá   rª   rè   ré   rê   rë   rv   rB   ru   Ú_moderø  r�   rÛ   s                 rK   rî   zProgress.open  s|  € ðB —’�˜t¨UÐ3Ñ3Ô3Ñ4Ô4ˆØÐ)Ð)Ð)ÝÐ0×7Ò7¸Ñ=Ô=Ñ>Ô>Ð>ð # ašˆØ�DŠ=ˆ=˜Y¨!š^˜^ÝŒMØsÝñô ð ð ˆIˆIØ�dŠ]ˆ]˜e sšl˜lØ˜AŠ~ˆ~Ý Ð!AÑBÔBÐBØ˜a’�Ø�	ð ˆ=Ý˜‘J”JÔ&ˆEð ˆ?Ø—m’m K°u�mÑ=Ô=ˆGˆGà�KŠK˜ uˆKÑ-Ô-Ð-õ ”˜˜t¨yÐ9Ñ9Ô9ˆÝ˜  w¸TÐBÑBÔBˆð �3Š;ˆ;˜$ $š,˜,ÝÔ#ØØ!ØØØ-ðñ ô ð ð ˆrL   c                 ó    — | j         5  | j        |         }|j        €|                      ¦   «         |_        ddd¦  «         dS # 1 swxY w Y   dS )zéStart a task.

        Starts a task (used when calculating elapsed time). You may need to call this manually,
        if you called ``add_task`` with ``start=False``.

        Args:
            task_id (TaskID): ID of task.
        N)r¬  rÐ  r¦  rz   )rI   rB   r�   s      rK   Ú
start_taskzProgress.start_taska  s“   € ð ŒZð 	2ð 	2Ø”;˜wÔ'ˆDØŒÐ&Ø"&§-¢-¡/¤/�”ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	2ð 	2s   ˆ.AÁAÁ
Ac                 ó²   — | j         5  | j        |         }|                      ¦   «         }|j        €||_        ||_        ddd¦  «         dS # 1 swxY w Y   dS )z†Stop a task.

        This will freeze the elapsed time on the task.

        Args:
            task_id (TaskID): ID of task.
        N)r¬  rÐ  rz   r¦  r§  )rI   rB   r�   r  s       rK   Ú	stop_taskzProgress.stop_tasko  sŸ   € ð ŒZð 	*ð 	*Ø”;˜wÔ'ˆDØŸ=š=™?œ?ˆLØŒÐ&Ø".�”Ø)ˆDŒNð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ˆ7AÁAÁA)rv   rF   rP   ru   r   rO   rF   rP   r   rO   r¢  c                óì  — | j         5  | j        |         }	|	j        }
|�&||	j        k    r||	_        |	                     ¦   «          |�|	xj        |z  c_        |�||	_        |�||	_        |�||	_        |	j                             |¦  «         |	j        |
z
  }|  	                    ¦   «         }|| j
        z
  }|	j        }|j        }|r.|d         j        |k     r |¦   «          |r|d         j        |k     °|dk    r#|                     t          ||¦  «        ¦  «         |	j        �#|	j        |	j        k    r|	j        €|	j        |	_        ddd¦  «         n# 1 swxY w Y   |r|                      ¦   «          dS dS )a˜  Update information associated with a task.

        Args:
            task_id (TaskID): Task id (returned by add_task).
            total (float, optional): Updates task.total if not None.
            completed (float, optional): Updates task.completed if not None.
            advance (float, optional): Add a value to task.completed if not None.
            description (str, optional): Change task description if not None.
            visible (bool, optional): Set visible flag if not None.
            refresh (bool): Force a refresh of progress information. Default is False.
            **fields (Any): Additional data fields required for rendering.
        Nr   )r¬  rÐ  rF   rv   rÅ  ru   r   r¢  rR   rz   rÉ  r«  Úpopleftr  Úappendr�  rF  rG  rO   )rI   rB   rv   rF   rP   ru   r   rO   r¢  r�   Úcompleted_startÚupdate_completedr  Úold_sample_timer«  r  s                   rK   rR   zProgress.update~  sÞ  € ð0 ŒZð  	2ð  	2Ø”;˜wÔ'ˆDØ"œnˆOàÐ  U¨d¬jÒ%8Ð%8Ø"�”
Ø—’‘”�ØÐ"Ø�” 'Ñ)�”ØÐ$Ø!*�”ØÐ&Ø#.�Ô ØÐ"Ø&�”ØŒK×Ò˜vÑ&Ô&Ð&Ø#œ~°Ñ?ÐàŸ=š=™?œ?ˆLØ*¨TÔ-GÑGˆOØœˆIàÔ'ˆGØð  	¨!¤Ô 6¸Ò HÐ HØ�‘	”	�	ð ð  	¨!¤Ô 6¸Ò HÐ Hà !Ò#Ð#Ø× Ò ¥°Ð>NÑ!OÔ!OÑPÔPÐPà”
Ð&Ø”N d¤jÒ0Ð0ØÔ&Ð.à%)¤\�Ô"ðA 	2ð  	2ð  	2ñ  	2ô  	2ð  	2ð  	2ð  	2ð  	2ð  	2ð  	2øøøð  	2ð  	2ð  	2ð  	2ðD ð 	Ø�LŠL‰NŒNˆNˆNˆNð	ð 	s   ˆD=EÅEÅEr   )rX   rv   rF   r   ru   rX   c                óP  — |                       ¦   «         }| j        5  | j        |         }	|	                     ¦   «          |r|nd|	_        |�||	_        ||	_        |�||	_        |r||	_        |�||	_	        d|	_
        ddd¦  «         n# 1 swxY w Y   |                      ¦   «          dS )aˆ  Reset a task so completed is 0 and the clock is reset.

        Args:
            task_id (TaskID): ID of task.
            start (bool, optional): Start the task after reset. Defaults to True.
            total (float, optional): New total steps in task, or None to use current total. Defaults to None.
            completed (int, optional): Number of steps completed. Defaults to 0.
            visible (bool, optional): Enable display of the task. Defaults to True.
            description (str, optional): Change task description if not None. Defaults to None.
            **fields (str): Additional data fields required for rendering.
        N)rz   r¬  rÐ  rÅ  r¦  rv   rF   r   r¢  ru   rF  rO   )
rI   rB   rX   rv   rF   r   ru   r¢  r  r�   s
             rK   ÚresetzProgress.reset»  sð   € ð, —}’}‘”ˆØŒZð 	&ð 	&Ø”;˜wÔ'ˆDØ�KŠK‰MŒMˆMØ.3Ð=˜l˜l¸ˆDŒOØÐ Ø"�”
Ø&ˆDŒNØÐ"Ø&�”Øð %Ø$�”ØÐ&Ø#.�Ô Ø!%ˆDÔð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	�Š‰Œˆˆˆs   œABÂBÂBr*   c                 ól  — |                       ¦   «         }| j        5  | j        |         }|j        }|xj        |z  c_        |j        |z
  }|| j        z
  }|j        }|j        }	|r.|d         j        |k     r |	¦   «          |r|d         j        |k     °t          |¦  «        dk    r |	¦   «          t          |¦  «        dk    °| 	                    t          ||¦  «        ¦  «         |j        �/|j        |j        k    r|j        €|j        |_        |j        |_        ddd¦  «         dS # 1 swxY w Y   dS )z«Advance task by a number of steps.

        Args:
            task_id (TaskID): ID of task.
            advance (float): Number of steps to advance. Default is 1.
        r   rO  N)rz   r¬  rÐ  rF   rÉ  r«  r  r  rŸ   r  r�  rv   rF  rG  r  rW  )
rI   rB   rP   r  r�   r  r	  r
  r«  r  s
             rK   rP   zProgress.advanceâ  sŠ  € ð —}’}‘”ˆØŒZð 	1ð 	1Ø”;˜wÔ'ˆDØ"œnˆOØˆNŒN˜gÑ%ˆNŒNØ#œ~°Ñ?ÐØ*¨TÔ-GÑGˆOØœˆIàÔ'ˆGØð  	¨!¤Ô 6¸Ò HÐ HØ�‘	”	�	ð ð  	¨!¤Ô 6¸Ò HÐ Hå�i‘.”. 4Ò'Ð'Ø�‘	”	�	õ �i‘.”. 4Ò'Ð'à×Ò�^¨LÐ:JÑKÔKÑLÔLÐLà”
Ð&Ø”N d¤jÒ0Ð0ØÔ&Ð.à%)¤\�Ô"Ø&*¤j�Ô#ð)	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s   œD D)Ä)D-Ä0D-c                 óf   — | j         s'| j        j        r| j                             ¦   «          dS dS dS )z*Refresh (render) the progress information.N)r€   rÒ  Ú
is_startedrO   rY   s    rK   rO   zProgress.refresh   sF   € àŒ|ð 	  ¤	Ô 4ð 	 ØŒI×ÒÑÔÐÐÐð	 ð 	 ð 	 ð 	 rL   c                 ó<   — t          |                      ¦   «         Ž }|S )z*Get a renderable for the progress display.)r.   Úget_renderables)rI   r  s     rK   rÎ  zProgress.get_renderable  s   € å˜D×0Ò0Ñ2Ô2Ð3ˆ
ØÐrL   c              #   óF   K  — |                       | j        ¦  «        }|V — dS )z5Get a number of renderables for the progress display.N)Úmake_tasks_tablerÚ  )rI   Útables     rK   r  zProgress.get_renderables
  s(   è è € à×%Ò% d¤jÑ1Ô1ˆØˆˆˆˆˆrL   rÚ  c                 ó¦   ‡— d„ | j         D ¦   «         }t          j        |d| j        dœŽ}|D ]$Š‰j        r |j        ˆfd„| j         D ¦   «         Ž  Œ%|S )z×Get a table to render the Progress display.

        Args:
            tasks (Iterable[Task]): An iterable of Task instances, one per row of the table.

        Returns:
            Table: A table instance.
        c              3   ó¬   K  — | ]O}t          |t          ¦  «        rt          d ¬¦  «        n%|                     ¦   «                              ¦   «         V — ŒPdS )Tr,  N)r  rÖ   r7   rü   Úcopy)rº  Ú_columns     rK   r¼  z,Progress.make_tasks_table.<locals>.<genexpr>  sr   è è € ð 
ð 
ð õ ˜g¥sÑ+Ô+ð7•˜tÐ$Ñ$Ô$Ð$à×-Ò-Ñ/Ô/×4Ò4Ñ6Ô6ð	
ð 
ð 
ð 
ð 
ð 
rL   )r   r*   )ÚpaddingrÌ  c              3   ó„   •K  — | ]:}t          |t          ¦  «        r|                     ‰¬ ¦  «        n
 |‰¦  «        V — Œ;dS )r0  N)r  rÖ   r1  )rº  Úcolumnr�   s     €rK   r¼  z,Progress.make_tasks_table.<locals>.<genexpr>%  sf   øè è € ð ð ð #õ  *¨&µ#Ñ6Ô6ð.˜FŸMšM¨t˜MÑ4Ô4Ð4à!' ¨¡¤ð	ð ð ð ð ð rL   )rŒ   r8   ÚgridrÌ  r   Úadd_row)rI   rÚ  Útable_columnsr  r�   s       @rK   r  zProgress.make_tasks_table  s›   ø€ ð
ð 
ð  œ<ð
ñ 
ô 
ˆõ ”
˜M°6À$Ä+ÐNÐNÐNˆàð 	ð 	ˆDØŒ|ð 
Ø�”ðð ð ð ð '+¤lðñ ô ð	ð 	øð ˆrL   c                 ól   — | j         5  |                      ¦   «         cddd¦  «         S # 1 swxY w Y   dS )z+Makes the Progress class itself renderable.N)r¬  rÎ  rY   s    rK   Ú__rich__zProgress.__rich__0  s}   € àŒZð 	)ð 	)Ø×&Ò&Ñ(Ô(ð	)ð 	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   ˆ)©-°-rµ  c                 ón  — | j         5  t          | j        |||||| j        | j         ¬¦  «        }|| j        | j        <   |r|                      | j        ¦  «         | j        }t          t          | j        ¦  «        dz   ¦  «        | _        ddd¦  «         n# 1 swxY w Y   |                      ¦   «          |S )a  Add a new 'task' to the Progress display.

        Args:
            description (str): A description of the task.
            start (bool, optional): Start the task immediately (to calculate elapsed time). If set to False,
                you will need to call `start` manually. Defaults to True.
            total (float, optional): Number of total steps in the progress if known.
                Set to None to render a pulsing animation. Defaults to 100.
            completed (int, optional): Number of steps completed so far. Defaults to 0.
            visible (bool, optional): Enable display of the task. Defaults to True.
            **fields (str): Additional data fields required for rendering.

        Returns:
            TaskID: An ID you can use when calling `update`.
        )r   r¢  rŸ  r¬  r*   N)	r¬  rý   rÑ  rz   rÐ  r  r;   rÕ   rO   )	rI   ru   rX   rv   rF   r   r¢  r�   Únew_task_indexs	            rK   ré  zProgress.add_task5  s  € ð0 ŒZð 	Að 	AÝØÔ ØØØØØØœ-Ø”jð	ñ 	ô 	ˆDð -1ˆDŒK˜Ô(Ñ)Øð 2Ø—’ Ô 0Ñ1Ô1Ð1Ø!Ô-ˆNÝ%¥c¨$Ô*:Ñ&;Ô&;¸aÑ&?Ñ@Ô@ˆDÔð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Að  	�Š‰ŒˆØÐs   ˆBBÂBÂBc                 óV   — | j         5  | j        |= ddd¦  «         dS # 1 swxY w Y   dS )z]Delete a task if it exists.

        Args:
            task_id (TaskID): A task ID.

        N)r¬  rÐ  )rI   rB   s     rK   Úremove_taskzProgress.remove_task`  sz   € ð ŒZð 	%ð 	%Ø”˜GÐ$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   ˆ	ž"¥"rd   )rM   rA   )NNrm   rs   rV   ©rµ   NNN©rç   rµ   NNN)r*   )Trµ  r   T);re   rf   rg   rh   r&   rÖ   rô   r    r-   rÒ   ri   rÆ  rH   rX  r#   rÏ  rÔ   rx   r   rý   rÚ  r;   rÞ  r"  rX   rß   rZ   r$   rj   r   rc   r   r<   r!   r‹   r   rÕ   rä   ÚtypingÚoverloadrÓ   r)   rî   r"   r  r  r   rR   r  rP   rO   r0   rÎ  r  r8   r  r   ré  r$  r™   rL   rK   rA   rA     s«  € € € € € ðð ð$ &*Ø!Ø$&Ø'+ØØ $Ø $Ø.2ØØð"$ð "$ð "$à˜˜^Ð+Ô,ð"$ð ˜'Ô"ð"$ð ð	"$ð
 "ð"$ð  %ð"$ð ð"$ð ð"$ð ð"$ð ˜?Ô+ð"$ð ð"$ð ð"$ð 
ð"$ð "$ð "$ð "$ðH ð
 E¨.¸#Ð*=Ô$>ð 
ð 
ð 
ñ „[ð
ð< ð!˜ð !ð !ð !ñ „Xð!ð ð.�t˜D”zð .ð .ð .ñ „Xð.ð
 ð,˜$˜vœ,ð ,ð ,ð ,ñ „Xð,ð
 ðG˜$ð Gð Gð Gñ „XðGð*ð *ð *ð *ð
!ð !ð !ð !ðð ð ð ðà˜4 Ô.Ô/ðð ˜-Ô(ðð ˜Ô'ð	ð
 
ðð ð ð ð "&Ø$(Ø'Ø"ð,ð ,à˜ Ô.°¸Ô0FÐFÔGð,ð ˜Œð,ð ˜&Ô!ð	,ð
 ð,ð ð,ð 
�,Ô	ð,ð ,ð ,ð ,ðb  $ð(@ð
 %)Ø'ð(@ð (@ð (@àð(@ð ˜Œ}ð(@ð
 ˜&Ô!ð(@ð ð(@ð 
ð(@ð (@ð (@ð (@ðT „_ð
 Ø"&Ø $Ø!%ðð  $Ø$(Ø'ðð ð à�C˜¨%Ð/Ô0ðð �dŒmðð ð	ð
 ˜3”-ðð ˜”ðð ˜#”ðð ˜Œ}ðð ˜&Ô!ðð ðð 
ðð ð ñ „_ðð „_ð
 Ø"&Ø $Ø!%ðð  $Ø$(Ø'ðð ð à�C˜¨%Ð/Ô0ðð �G˜C”L '¨$¤-Ð/Ô0ðð ð	ð
 ˜3”-ðð ˜”ðð ˜#”ðð ˜Œ}ðð ˜&Ô!ðð ðð 
ðð ð ñ „_ðð$ CFØØ"&Ø $Ø!%ðKð  $Ø$(Ø'ðKð Kð Kà�C˜¨%Ð/Ô0ðKð �G˜D”M 7¨4¤=°'¸#´,Ð>Ô?ðKð ð	Kð
 ˜3”-ðKð ˜”ðKð ˜#”ðKð ˜Œ}ðKð ˜&Ô!ðKð ðKð 
ˆx˜ÐÔ	 ðKð Kð Kð KðZ2 &ð 2¨Tð 2ð 2ð 2ð 2ð* ð *¨Dð *ð *ð *ð *ð& "&Ø%)Ø#'Ø%)Ø"&Øð;ð ;ð ;àð;ð ˜Œð	;ð
 ˜E”?ð;ð ˜%”ð;ð ˜c”]ð;ð ˜$”ð;ð ð;ð ð;ð 
ð;ð ;ð ;ð ;ðB Ø!%ØØ"&Ø%)ð%ð %ð %àð%ð ð	%ð
 ˜Œð%ð ð%ð ˜$”ð%ð ˜c”]ð%ð ð%ð 
ð%ð %ð %ð %ðN1ð 1˜vð 1°ð 1¸dð 1ð 1ð 1ð 1ð< ð  ð  ð  ð
 ð ð ð ð ð
 ¨.Ô!9ð ð ð ð ð
 h¨t¤nð ¸ð ð ð ð ðB)˜.ð )ð )ð )ð )ð Ø!&ØØð)ð )àð)ð ð)ð ˜Œð	)ð
 ð)ð ð)ð ð)ð 
ð)ð )ð )ð )ðV% 6ð %¨dð %ð %ð %ð %ð %ð %rL   rA   Ú__main__)ÚPanel)ÚRule)ÚSyntax)r8   a~  def loop_last(values: Iterable[T]) -> Iterable[Tuple[bool, T]]:
    """Iterate and generate a tuple with a flag for last value."""
    iter_values = iter(values)
    try:
        previous_value = next(iter_values)
    except StopIteration:
        return
    for value in iter_values:
        yield False, previous_value
        previous_value = value
    yield True, previous_valueÚpython)Úline_numbersÚfooÚbarÚbazÚ1Ú2Ú3z:Text may be printed while the progress bars are rendering.z(In fact, [i]any[/i] renderable will workzSuch as [magenta]tables[/]...zPretty printed structures...ÚexamplezPretty printed)Útyper#  z	Syntax...zGive it a try!)Úcycle)Úrecord)rx   ry   z[red]DownloadingrO  rè  z[green]Processingz[yellow]ThinkingrZ  r�   g333333Ó?g{®Gáz„?éd   )rm   NTNFNrn   ro   rp   rq   rr   rs   FTr%  r&  )‡rþ  Úsysr'  rú  Úabcr   r   Úcollectionsr   Úcollections.abcr   Údataclassesr   r	   Údatetimer
   r   r   Úmathr   r   Úosr   r   Ú	threadingr   r   r   Útypesr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Úversion_infor)   Úpip._vendor.typing_extensionsr  r+   r,   rx   r-   r.   r/   r0   r*  r1   Újupyterr2   rÒ  r3   Úprogress_barr4   r  r5   r|   r6   r  r7   r8   r#  r9   r:   rÕ   r;   r<   ri   rÆ  r=   r?   rÖ   rÒ   r‹   rŽ   rÚ   rä   r(  rÓ   rî   rô   r
  r  r†   rˆ   r?  r‰   rŠ   rj  rq  rt  rã   rš  r�  rý   rA   re   ÚrandomÚtimeÚpanelr*  Úruler+  Úsyntaxr,  r  Úprogress_renderablesÚ	itertoolsr7  ÚexamplesrÏ  r@   ré  Útask1Útask2Útask3r"  rR   ÚsleepÚrandintrÔ  rž   r™   rL   rK   ú<module>rU     s¸  ðØ 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð* Ô�vÒÐØÐÐÐÐÐÐà5Ð5Ð5Ð5Ð5Ð5à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ $Ð $Ð $Ð $Ð $Ð $Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à	ˆ�˜3Ñ	Ô	€àˆw�~Ñ&Ô&€à˜2˜u˜9Ô%€ð €V„^�D˜& (Ñ+Ô+€ð%ð %ð %ð %ð %�6ñ %ô %ð %ðT $Ø!ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(ØØØðC
ð C
Ø�H˜\Ô*¨H°\Ô,BÐBÔCðC
àðC
ð �EŒ?ðC
ð ð	C
ð
 �gÔðC
ð ðC
ð �x  E 	Ô*Ô+ðC
ð ðC
ð ðC
ð ðC
ð ðC
ð ðC
ð ðC
ð ðC
ð ðC
ð  ˆlÔð!C
ð C
ð C
ð C
ðLa,ð a,ð a,ð a,ð a,ˆi˜ñ a,ô a,ð a,ðH8ð 8ð 8ð 8ð 8�> "Ô% w¨r¤{ñ 8ô 8ð 8ð2 $ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øð>*ð >*ð >*Ø
ð>*àð>*ð ð	>*ð
 ð>*ð �gÔð>*ð ð>*ð �x  E 	Ô*Ô+ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð ð>*ð �HÔð>*ð >*ð >*ð >*ðB „ð Ø"Ø Ø!ð	ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øð'	ð 	ð 	Ø
��_ eÐ+Ô
,ð	à
�˜”˜w sœ|Ð+Ô
,ð	ð ð	ð �sŒmð		ð
 �SŒMð	ð �cŒ]ð	ð �CŒ=ð	ð ð	ð ð	ð �gÔð	ð ð	ð �x  E 	Ô*Ô+ð	ð ð	ð ð	ð  ð!	ð" ð#	ð$ ð%	ð& ð'	ð( �FÔð)	ð 	ð 	ñ „ð	ð0 „ð Ø"Ø Ø!ð	ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øð'	ð 	ð 	Ø
��_ eÐ+Ô
,ð	à
�$Œ-ð	ð ð	ð �sŒmð		ð
 �SŒMð	ð �cŒ]ð	ð �CŒ=ð	ð ð	ð ð	ð �gÔð	ð ð	ð �x  E 	Ô*Ô+ð	ð ð	ð ð	ð  ð!	ð" ð#	ð$ ð%	ð& ð'	ð( �HÔð)	ð 	ð 	ñ „ð	ð4 ?BØØ"Ø Ø!ðS*ð  Ø#ØØ!%ØØ.2Ø "Ø!Ø .Ø .Ø(Øð'S*ð S*ð S*Ø
��_ eÐ+Ô
,ðS*à
�˜”˜w tœ}¨g°c¬lÐ:Ô
;ðS*ð ðS*ð �sŒmð	S*ð
 �SŒMðS*ð �cŒ]ðS*ð �CŒ=ðS*ð ðS*ð ðS*ð �gÔðS*ð ðS*ð �x  E 	Ô*Ô+ðS*ð ðS*ð ðS*ð  ð!S*ð" ð#S*ð$ ð%S*ð& ð'S*ð( ˆ>˜(Ô# ^°FÔ%;Ð;Ô<ð)S*ð S*ð S*ð S*ðl'1ð '1ð '1ð '1ð '1�Sñ '1ô '1ð '1ðTð ð ð ð �~ñ ô ð ð"/ð /ð /ð /ð /�Nñ /ô /ð /ðdð ð ð ð �ñ ô ð ð<'
ð '
ð '
ð '
ð '
�ñ '
ô '
ð '
ðT	:ð 	:ð 	:ð 	:ð 	:˜ñ 	:ô 	:ð 	:ðFð Fð Fð Fð F˜ñ Fô Fð FðR-,ð -,ð -,ð -,ð -,˜.ñ -,ô -,ð -,ð`:ð :ð :ð :ð :�^ñ :ô :ð :ð@ð @ð @ð @ð @˜.ñ @ô @ð @ð
ð 
ð 
ð 
ð 
˜ñ 
ô 
ð 
ð6.ð .ð .ð .ð .�^ñ .ô .ð .ðb	Dð 	Dð 	Dð 	Dð 	D˜.ñ 	Dô 	Dð 	Dð%ð %ð %ð %ð %�Zñ %ô %ð %ð ðz#ð z#ð z#ð z#ð z#ñ z#ô z#ñ „ðz#ðzN	%ð N	%ð N	%ð N	%ð N	%ˆ|ñ N	%ô N	%ð N	%ðb ˆzÒÑà€M€M€MØ€K€K€KàÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐàˆVð
	"ð 	Øðñ ô €Fð  ˆE�%˜ Ñ&Ô&€EØ	‡M‚M�#�s˜CÑ Ô Ð ð 	EØˆÐ8Ñ9Ô9Ø'ØØ&ØÐ$4Ð5Ð5ØØØˆÐÑÔð
Ðð  ÐÐÐÐÐàˆuÐ)Ñ*Ô*€Hàˆg˜TÐ"Ñ"Ô"€Gà	ˆØˆ‰Œð
à	×	%Ò	%Ñ	'Ô	'ð
ð 	ÐÑÔð
ð 
ð Øð
ð 
ð 
ð -ð 
à×!Ò!Ð"4¸DÐ!ÑAÔAˆØ×!Ò!Ð"5¸TÐ!ÑBÔBˆØ×!Ò!Ð"4¸DÐ!ÑAÔAˆàÔ#ð 	-Ø�OŠO˜E¨3ˆOÑ/Ô/Ð/Ø�OŠO˜E¨3ˆOÑ/Ô/Ð/ØˆDŒJ�tÑÔÐØˆvŒ~˜a Ñ%Ô%¨Ò)Ð)Ø—’˜T˜T (™^œ^Ñ,Ô,Ð,ð Ô#ð 	-ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -ð_ Ðs   Õ4CYÙY
ÙY
