§
    º! hXh  ã                  ó\  — d Z ddlmZ ddlmZ ddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ d	d
lmZ d	dlmZ d	dlmZ d	dlmZ d	dlmZ d	dlmZ d	dlmZ d	dlm Z  d	dl!m"Z" d	dl#m$Z$  ej%        d¦  «        Z&ej'        dk    rdZ(dZ)ndZ(dZ) G d„ dej*        e&         ¦  «        Z+d=d>d"„Z,d?d&„Z-d?d'„Z.d@d*„Z/ G d+„ d,¦  «        Z0dAdBd3„Z1dCd5„Z2e
j3        d6k    rddl4Z4ej5        dDd8„¦   «         Z6dEd:„Z7dS ddl8Z8ddl9Z9ej5        dDd;„¦   «         Z6dEd<„Z7dS )Fz¿
This module contains implementations for the termui module. To keep the
import time of Click down, some infrequently used functionality is
placed in this module and only imported as needed.
é    )ÚannotationsN)Úgettext)ÚStringIO)ÚPath)Úwhich)ÚTracebackTypeé   )Ú_default_text_stdout)ÚCYGWIN)Úget_best_encoding)Úisatty)Úopen_stream)Ú
strip_ansi)Úterm_len)ÚWIN)ÚClickException)ÚechoÚVÚntúú
z[?25lz[?25h
c                  óø   — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dEdFd%„ZdGd'„ZdHd.„ZdId0„ZdJd2„ZdKd3„Ze	dLd5„¦   «         Z
e	dLd6„¦   «         Ze	dLd7„¦   «         ZdMd8„ZdMd9„ZdMd:„ZdMd;„ZdMd<„ZdKd=„ZdNd?„ZdOdPdB„ZdKdC„ZdIdD„ZdS )QÚProgressBarNú#ú ú%(bar)sú  FTr	   é   Úiterableúcabc.Iterable[V] | NoneÚlengthú
int | NoneÚ	fill_charÚstrÚ
empty_charÚbar_templateÚinfo_sepÚhiddenÚboolÚshow_etaÚshow_percentúbool | NoneÚshow_posÚitem_show_funcú)t.Callable[[V | None], str | None] | NoneÚlabelú
str | NoneÚfileút.TextIO | NoneÚcolorÚupdate_min_stepsÚintÚwidthÚreturnÚNonec                óò  — || _         || _        || _        || _        || _        || _        |	| _        |
| _        || _        |pd| _	        |€t          ¦   «         }|€t          ¦   «         }|| _        || _        || _        d| _        || _        |dk    | _        |€ddlm}  ||d¦  «        }|dk    rd }|€3|€t)          d¦  «        ‚t+          j        dt/          |¦  «        ¦  «        }t1          |¦  «        | _        || _        d| _        g | _        |  |  t9          j        ¦   «         x| _        | _        d| _        d| _         d | _!        d| _"        d | _#        tI          | j        ¦  «        | _%        d | _&        d S )NÚ r   )Úlength_hintéÿÿÿÿziterable or length is requiredzcabc.Iterable[V]F)'r#   r%   r&   r'   r(   r*   r+   r-   r.   r0   r
   r   r2   r4   r5   Ú_completed_intervalsr7   Ú	autowidthÚoperatorr<   Ú	TypeErrorÚtÚcastÚrangeÚiterr!   ÚposÚavgÚtimeÚstartÚlast_etaÚ	eta_knownÚfinishedÚ	max_widthÚenteredÚcurrent_itemr   Ú_is_attyÚ
_last_line)Úselfr   r!   r#   r%   r&   r'   r(   r*   r+   r-   r.   r0   r2   r4   r5   r7   r<   s                     úLc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\click/_termui_impl.pyÚ__init__zProgressBar.__init__-   s‹  € ð& #ˆŒØ$ˆŒØ(ˆÔØ ˆŒØˆŒØ ˆŒØ(ˆÔØ ˆŒØ,ˆÔØ˜+ 2ˆŒ
àˆ<Ý'Ñ)Ô)ˆDð ˆ|Ý‘z”z�àˆŒ	ØˆŒ
Ø 0ˆÔØ$%ˆÔ!ØˆŒ
Ø$¨šzˆŒàˆ>Ø,Ð,Ð,Ð,Ð,Ð,à �[ ¨2Ñ.Ô.ˆFà˜Š|ˆ|Ø�ØÐØˆ~ÝÐ @ÑAÔAÐAÝ”vÐ0µ%¸±-´-Ñ@Ô@ˆHÝ&*¨8¡n¤nˆŒ	ØˆŒØˆŒØ "ˆŒØÐØÐÝ%)¤Y¡[¤[Ð0ˆŒ
�T”]Ø$ˆŒØ#ˆŒØ%)ˆŒØ"ˆŒØ&*ˆÔÝ˜tœyÑ)Ô)ˆŒØ&*ˆŒˆˆó    úProgressBar[V]c                ó<   — d| _         |                      ¦   «          | S )NT)rN   Úrender_progress©rR   s    rS   Ú	__enter__zProgressBar.__enter__t   s    € ØˆŒØ×ÒÑÔÐØˆrU   Úexc_typeútype[BaseException] | NoneÚ	exc_valueúBaseException | NoneÚtbúTracebackType | Nonec                ó.   — |                       ¦   «          d S ©N)Úrender_finish)rR   r[   r]   r_   s       rS   Ú__exit__zProgressBar.__exit__y   s   € ð 	×ÒÑÔÐÐÐrU   úcabc.Iterator[V]c                ó~   — | j         st          d¦  «        ‚|                      ¦   «          |                      ¦   «         S )Nú.You need to use progress bars in a with block.)rN   ÚRuntimeErrorrX   Ú	generatorrY   s    rS   Ú__iter__zProgressBar.__iter__�   s>   € ØŒ|ð 	QÝÐOÑPÔPÐPØ×ÒÑÔÐØ�~Š~ÑÔÐrU   r   c                ó:   — t          t          | ¦  «        ¦  «        S rb   )ÚnextrE   rY   s    rS   Ú__next__zProgressBar.__next__‡   s   € õ •D˜‘J”JÑÔÐrU   c                ó–   — | j         s| j        sd S | j                             t          ¦  «         | j                             ¦   «          d S rb   )r(   rP   r2   ÚwriteÚ	AFTER_BARÚflushrY   s    rS   rc   zProgressBar.render_finish�   sF   € ØŒ;ð 	˜dœmð 	ØˆFØŒ	�Š�	Ñ"Ô"Ð"ØŒ	�ŠÑÔÐÐÐrU   Úfloatc                óp   — | j         rdS t          | j        t          | j        pd¦  «        pdz  d¦  «        S )Nç      ð?r	   )rL   ÚminrF   rr   r!   rY   s    rS   ÚpctzProgressBar.pct•   s<   € àŒ=ð 	Ø�3Ý�4”8�u T¤[Ð%5°AÑ6Ô6Ð;¸!Ñ<¸cÑBÔBÐBrU   c                ó€   — | j         sdS t          | j         ¦  «        t          t          | j         ¦  «        ¦  «        z  S ©Ng        )rG   Úsumrr   ÚlenrY   s    rS   Útime_per_iterationzProgressBar.time_per_iteration›   s4   € àŒxð 	Ø�3Ý�4”8‰}Œ}�u¥S¨¬¡]¤]Ñ3Ô3Ñ3Ð3rU   c                óP   — | j         �| j        s| j        | j         | j        z
  z  S dS rx   )r!   rL   r{   rF   rY   s    rS   ÚetazProgressBar.eta¡   s-   € àŒ;Ð"¨4¬=Ð"ØÔ*¨d¬k¸D¼HÑ.DÑEÐEØˆsrU   c                ó¾   — | j         rUt          | j        ¦  «        }|dz  }|dz  }|dz  }|dz  }|dz  }|dz  }|dk    r|› d|d›d|d›d|d›�S |d›d|d›d|d›�S dS )Né<   é   r   zd Ú02ú:r;   )rK   r6   r}   )rR   rB   ÚsecondsÚminutesÚhourss        rS   Ú
format_etazProgressBar.format_eta§   s¯   € ØŒ>ð 	?Ý�D”H‘”ˆAØ˜"‘fˆGØ�"‰HˆAØ˜"‘fˆGØ�"‰HˆAØ˜‘FˆEØ�"‰HˆAØ�1ŠuˆuØÐCÐC˜uÐCÐCÐC¨'ÐCÐCÐC°wÐCÐCÐCÐCàÐ>Ð>Ð> WÐ>Ð>Ð>°'Ð>Ð>Ð>Ð>ØˆrrU   c                óV   — t          | j        ¦  «        }| j        �|d| j        › �z  }|S )Nú/)r$   rF   r!   )rR   rF   s     rS   Ú
format_poszProgressBar.format_pos¶   s1   € Ý�$”(‰mŒmˆØŒ;Ð"ØÐ$�t”{Ð$Ð$Ñ$ˆCØˆ
rU   c                óH   — t          | j        dz  ¦  «        d›d�dd …         S )Néd   z 4ú%r	   )r6   rv   rY   s    rS   Ú
format_pctzProgressBar.format_pct¼   s+   € Ý�d”h ‘nÑ%Ô%Ð+Ð+Ð+Ð+¨A¨B¨BÔ/Ð/rU   c                ó¾  — | j         �<t          | j        | j        z  ¦  «        }| j        |z  }|| j        | j        |z
  z  z  }n™| j        r| j        | j        z  }n‚t          | j        | j        pdz  ¦  «        }| j        dk    rD| j        |t          t          j
        | j        | j        z  ¦  «        dz  dz   | j        z  ¦  «        <   d                     |¦  «        }|S )Nr	   r   g       @g      à?r;   )r!   r6   rv   r7   r#   r%   rL   Úlistr{   ÚmathÚcosrF   Újoin)rR   Ú
bar_lengthÚbarÚcharss       rS   Ú
format_barzProgressBar.format_bar¿   sç   € ØŒ;Ð"Ý˜TœX¨¬
Ñ2Ñ3Ô3ˆJØ”. :Ñ-ˆCØ�4”? d¤j°:Ñ&=Ñ>Ñ>ˆCˆCØŒ]ð 	!Ø”. 4¤:Ñ-ˆCˆCå˜œ¨D¬J¨O¸!Ñ<Ñ=Ô=ˆEØÔ&¨!Ò+Ð+ð ”Nð ÝÝœ $¤(¨TÔ-DÑ"DÑEÔEÈÑKÈcÑQØœ*ñ%ñô ñð —'’'˜%‘.”.ˆCØˆ
rU   c                ój  — | j         }g }| j        �
|€| j         }| j        r'|                     |                      ¦   «         ¦  «         |r'|                     |                      ¦   «         ¦  «         | j        r5| j        r.| j        s'|                     |  	                    ¦   «         ¦  «         | j
        �1|  
                    | j        ¦  «        }|�|                     |¦  «         | j        | j        |                      ¦   «         | j                             |¦  «        dœz                       ¦   «         S )N)r0   r”   Úinfo)r+   r!   r-   Úappendr‰   r�   r*   rK   rL   r†   r.   rO   r&   r0   r–   r'   r’   Úrstrip)rR   r+   Ú	info_bitsÚ	item_infos       rS   Úformat_progress_linez ProgressBar.format_progress_lineÒ   s3  € ØÔ(ˆàˆ	ØŒ;Ð" |Ð';Ø#œ}Ð,ˆLàŒ=ð 	0Ø×Ò˜TŸ_š_Ñ.Ô.Ñ/Ô/Ð/Øð 	0Ø×Ò˜TŸ_š_Ñ.Ô.Ñ/Ô/Ð/ØŒ=ð 	0˜Tœ^ð 	0°D´Mð 	0Ø×Ò˜TŸ_š_Ñ.Ô.Ñ/Ô/Ð/ØÔÐ*Ø×+Ò+¨DÔ,=Ñ>Ô>ˆIØÐ$Ø× Ò  Ñ+Ô+Ð+ð ÔàœØ—’Ñ(Ô(Øœ×*Ò*¨9Ñ5Ô5ðð ñ÷ Š&‰(Œ(ð	rU   c                ó  — dd l }| j        rd S | j        s?| j        | j        k    r-| j        | _        t          | j        | j        | j        ¬¦  «         d S g }| j        r«| j	        }d| _	        t          |                      ¦   «         ¦  «        }t          d|                     ¦   «         j        |z
  ¦  «        }||k     rE| j        �>|                     t"          ¦  «         |                     d| j        z  ¦  «         || _        || _	        | j	        }| j        �| j        }|                     t"          ¦  «         |                      ¦   «         }t          |¦  «        }| j        �| j        |k     r|| _        |                     |¦  «         |                     d||z
  z  ¦  «         d                     |¦  «        }|| j        k    r?|| _        t          || j        | j        d¬¦  «         | j                             ¦   «          d S d S )Nr   )r2   r4   r   r;   F)r2   r4   Únl)Úshutilr(   rP   rQ   r0   r   r2   r4   r?   r7   r   r�   ÚmaxÚget_terminal_sizeÚcolumnsrM   r™   Ú
BEFORE_BARr’   rq   )	rR   r    ÚbufÚ	old_widthÚclutter_lengthÚ	new_widthÚclear_widthÚlineÚline_lens	            rS   rX   zProgressBar.render_progressí   sí  € ØˆˆˆàŒ;ð 	ØˆFàŒ}ð 	àŒ $¤*Ò,Ð,Ø"&¤*�”Ý�T”Z d¤i°t´zÐBÑBÔBÐBØˆFàˆàŒ>ð 		#Øœ
ˆIØˆDŒJÝ% d×&?Ò&?Ñ&AÔ&AÑBÔBˆNÝ˜A˜v×7Ò7Ñ9Ô9ÔAÀNÑRÑSÔSˆIØ˜9Ò$Ð$¨¬Ð)CØ—
’
�:Ñ&Ô&Ð&Ø—
’
˜3 ¤Ñ/Ñ0Ô0Ð0Ø!*�”Ø"ˆDŒJà”jˆØŒ>Ð%Øœ.ˆKà�
Š
•:ÑÔÐØ×(Ò(Ñ*Ô*ˆÝ˜D‘>”>ˆØŒ>Ð! T¤^°hÒ%>Ð%>Ø%ˆDŒNà�
Š
�4ÑÔÐØ�
Š
�3˜+¨Ñ0Ñ1Ñ2Ô2Ð2Ø�wŠw�s‰|Œ|ˆð �4”?Ò"Ð"Ø"ˆDŒOÝ�˜DœI¨T¬Z¸EÐBÑBÔBÐBØŒI�OŠOÑÔÐÐÐð #Ð"rU   Ún_stepsc                ó¬  — | xj         |z  c_         | j        �| j         | j        k    rd| _        t          j        ¦   «         | j        z
  dk     rd S t          j        ¦   «         | _        | j         r$t          j        ¦   «         | j        z
  | j         z  }nt          j        ¦   «         | j        z
  }| j        dd …         |gz   | _        | j        d u| _        d S )NTrt   iúÿÿÿ)rF   r!   rL   rH   rJ   rI   rG   rK   )rR   r¬   Ústeps      rS   Ú	make_stepzProgressBar.make_step  s¼   € ØˆŒ�GÑˆŒØŒ;Ð" t¤x°4´;Ò'>Ð'>Ø ˆDŒMåŒI‰KŒK˜$œ-Ñ'¨3Ò.Ð.ØˆFåœ	™œˆŒð
 Œ8ð 	,Ý”I‘K”K $¤*Ñ,°´Ñ8ˆDˆDå”9‘;”; ¤Ñ+ˆDà”8˜B˜C˜C”= D 6Ñ)ˆŒàœ¨DÐ0ˆŒˆˆrU   rO   úV | Nonec                óÆ   — |�|| _         | xj        |z  c_        | j        | j        k    r7|                      | j        ¦  «         |                      ¦   «          d| _        dS dS )a  Update the progress bar by advancing a specified number of
        steps, and optionally set the ``current_item`` for this new
        position.

        :param n_steps: Number of steps to advance.
        :param current_item: Optional item to set as ``current_item``
            for the updated position.

        .. versionchanged:: 8.0
            Added the ``current_item`` optional parameter.

        .. versionchanged:: 8.0
            Only render when the number of steps meets the
            ``update_min_steps`` threshold.
        Nr   )rO   r>   r5   r¯   rX   )rR   r¬   rO   s      rS   ÚupdatezProgressBar.update1  st   € ð  Ð#Ø ,ˆDÔàÐ!Ô! WÑ,Ð!Ô!àÔ$¨Ô(=Ò=Ð=Ø�NŠN˜4Ô4Ñ5Ô5Ð5Ø× Ò Ñ"Ô"Ð"Ø()ˆDÔ%Ð%Ð%ð >Ð=rU   c                ó0   — d| _         d | _        d| _        d S )NFT)rK   rO   rL   rY   s    rS   ÚfinishzProgressBar.finishK  s   € ØˆŒØ ˆÔØˆŒˆˆrU   c              #  óD  K  — | j         st          d¦  «        ‚| j        s| j        E d{V —† dS | j        D ]A}|| _        | j        dk    r|                      ¦   «          |V — |                      d¦  «         ŒB|                      ¦   «          |                      ¦   «          dS )z¨Return a generator which yields the items added to the bar
        during construction, and updates the progress bar *after* the
        yielded block returns.
        rg   Nr   r	   )	rN   rh   rP   rE   rO   r>   rX   r²   r´   )rR   Úrvs     rS   ri   zProgressBar.generatorP  sÆ   è è € ð Œ|ð 	QÝÐOÑPÔPÐPàŒ}ð 	#Ø”yÐ Ð Ð Ð Ð Ð Ð Ð Ð à”ið 
ð 
�Ø$&�Ô!ð
 Ô,°Ò1Ð1Ø×(Ò(Ñ*Ô*Ð*à���Ø—’˜A‘”��à�KŠK‰MŒMˆMØ× Ò Ñ"Ô"Ð"Ð"Ð"rU   )Nr   r   r   r   FTNFNNNNr	   r   )"r   r    r!   r"   r#   r$   r%   r$   r&   r$   r'   r$   r(   r)   r*   r)   r+   r,   r-   r)   r.   r/   r0   r1   r2   r3   r4   r,   r5   r6   r7   r6   r8   r9   )r8   rV   )r[   r\   r]   r^   r_   r`   r8   r9   )r8   re   )r8   r   )r8   r9   )r8   rr   ©r8   r$   )r¬   r6   r8   r9   rb   )r¬   r6   rO   r°   r8   r9   )Ú__name__Ú
__module__Ú__qualname__rT   rZ   rd   rj   rm   rc   Úpropertyrv   r{   r}   r†   r‰   r�   r–   r�   rX   r¯   r²   r´   ri   © rU   rS   r   r   ,   sø  € € € € € ð "ØØØ%ØØØØ$(ØØDHØ Ø $Ø!Ø !Øð#E+ð E+ð E+ð E+ð E+ðNð ð ð ð
ð ð ð ð ð  ð  ð  ð ð  ð  ð  ðð ð ð ð ðCð Cð Cñ „XðCð
 ð4ð 4ð 4ñ „Xð4ð
 ðð ð ñ „Xðð
ð ð ð ðð ð ð ð0ð 0ð 0ð 0ðð ð ð ð&ð ð ð ð6,ð ,ð ,ð ,ð\1ð 1ð 1ð 1ð,*ð *ð *ð *ð *ð4ð ð ð ð
#ð #ð #ð #ð #ð #rU   r   ri   úcabc.Iterable[str]r4   r,   r8   r9   c                ó¦  — t          ¦   «         }|€t          ¦   «         }t          t          j        ¦  «        rt          |¦  «        st          || |¦  «        S t          j        t          j	         
                    dd¦  «        d¬¦  «        }|r.t          rt          | ||¦  «        rdS nt          | ||¦  «        rdS t          j	         
                    d¦  «        dv rt          || |¦  «        S t          st          j                             d¦  «        rt          | d	g|¦  «        rdS t          | d
g|¦  «        rdS ddl}|                     ¦   «         \  }}t          j        |¦  «         	 t          | d	g|¦  «        r	 t          j        |¦  «         dS t          || |¦  «        t          j        |¦  «         S # t          j        |¦  «         w xY w)z2Decide what method to use for paging through text.NÚPAGERr;   F)ÚposixÚTERM)ÚdumbÚemacsÚos2ÚmoreÚlessr   )r
   r   r   ÚsysÚstdinÚ
_nullpagerÚshlexÚsplitÚosÚenvironÚgetr   Ú_tempfilepagerÚ
_pipepagerÚplatformÚ
startswithÚtempfileÚmkstempÚcloseÚunlink)ri   r4   ÚstdoutÚpager_cmd_partsrÓ   ÚfdÚfilenames          rS   ÚpagerrÛ   r  sÝ  € å!Ñ#Ô#€Fð €~Ý‘”ˆå•#”)ÑÔð 4¥F¨6¡N¤Nð 4Ý˜& )¨UÑ3Ô3Ð3õ ”k¥"¤*§.¢.°¸"Ñ"=Ô"=ÀUÐKÑKÔK€OØð Ýð 	Ý˜i¨¸%Ñ@Ô@ð Ø�ðå˜	 ?°EÑ:Ô:ð 	ØˆFå	„z‡~‚~�fÑÔÐ!2Ð2Ð2Ý˜& )¨UÑ3Ô3Ð3Ýð �sŒ|×&Ò& uÑ-Ô-ð µ>Ø�F�8˜Uñ4ô 4ð ð 	ˆÝ�)˜f˜X uÑ-Ô-ð Øˆà€O€O€Oà×#Ò#Ñ%Ô%�L€BˆÝ„HˆR�L„L€LðÝ�i & ¨5Ñ1Ô1ð 	Øõ 	Œ	�(ÑÔÐÐÐõ ˜& )¨UÑ3Ô3å
Œ	�(ÑÔÐÐø�Œ	�(ÑÔÐÐøøøs   Å,F: ÆF: Æ:GÚ	cmd_partsú	list[str]r)   c                ó  — |sdS |d         }|dd…         }t          |¦  «        }|sdS t          |¦  «                             ¦   «         }|j        }ddl}t          t          j        ¦  «        }	|€Q|dk    rKt          j                             dd¦  «        › d 	                    |¦  «        › �}
|
sd	|	d<   d
}n
d|
v sd|
v rd
}| 
                    t          |¦  «        g|z   d
|j        |	dd
¬¦  «        }|j        €J ‚	 | D ]-}|st          |¦  «        }|j                             |¦  «         Œ.n3# t           $ r Y n't"          $ r}|                     ¦   «          |‚d}~ww xY w	 |j                             ¦   «          n# t           $ r Y nw xY w	 	 |                     ¦   «          n# t*          $ r Y nw xY wŒ'nX# 	 |j                             ¦   «          n# t           $ r Y nw xY w	 	 |                     ¦   «          n# t*          $ r Y nw xY wŒ'w xY wd
S )zàPage through text by feeding it to another program. Invoking a
    pager through this might support colors.

    Returns `True` if the command was found, `False` otherwise and thus another
    pager should be attempted.
    Fr   r	   NrÆ   ÚLESSr;   r   ú-RTÚrÚRÚreplace)ÚshellrÈ   ÚenvÚerrorsÚtext)r   r   ÚresolveÚnameÚ
subprocessÚdictrÌ   rÍ   rÎ   r’   ÚPopenr$   ÚPIPErÈ   r   ro   ÚBrokenPipeErrorÚ	ExceptionÚ	terminaterÕ   ÚwaitÚKeyboardInterrupt)ri   rÜ   r4   ÚcmdÚ
cmd_paramsÚcmd_filepathÚcmd_pathÚcmd_namerê   rå   Ú
less_flagsÚcrç   Úes                 rS   rÐ   rÐ   œ  sÞ  € ð ð ØˆuØ
�AŒ,€CØ˜1˜2˜2”€Jå˜‘:”:€LØð Øˆuå�LÑ!Ô!×)Ò)Ñ+Ô+€HØŒ}€HàÐÐÐõ �rŒzÑ
Ô
€Cð €}˜ VÒ+Ð+Ýœ
Ÿš v¨rÑ2Ô2ÐJ°C·H²H¸ZÑ4HÔ4HÐJÐJˆ
Øð 	ØˆC�‰KØˆEˆEØ�JÐÐ #¨Ð"3Ð"3ØˆEà×ÒÝ	ˆX‰Œˆ˜*Ñ$ØØŒoØØØð 	ñ 	ô 	€Að Œ7ÐÐÐð'Øð 	 ð 	 ˆDØð (Ý! $Ñ'Ô'�àŒG�MŠM˜$ÑÔÐÐð		 øõ
 ð ð ð àˆÝð ð ð ð
 	
�Š‰ŒˆØˆøøøøðøøøð	ØŒG�MŠM‰OŒOˆOˆOøõ ð 	ð 	ð 	ØˆDð	øøøð	ðØ—’‘”�ð øõ %ð ð ð Ø�ðøøøð	ð øð+	ØŒG�MŠM‰OŒOˆOˆOøõ ð 	ð 	ð 	ØˆDð	øøøð	ðØ—’‘”�ð øõ %ð ð ð Ø�ðøøøð	ð 	ð 	ð 	ð 	ð ˆ4s¢   Ã=0D. Ä-F5 Ä.
EÄ8F5 Ä:	EÅEÅEÅF5 Å"E< Å<
F	ÆF	ÆF# Æ#
F0Æ/F0Æ5H
Æ7GÇH
Ç
GÇH
ÇGÇH
Ç#G8Ç7H
Ç8
HÈH
ÈHÈH
c                ó  — |sdS |d         }t          |¦  «        }|sdS t          |¦  «                             ¦   «         }ddl}ddl}|                     ¦   «         \  }}	d                     | ¦  «        }
|st          |
¦  «        }
t          t          j
        ¦  «        }t          |	d¦  «        d         5 }|                     |
                     |¦  «        ¦  «         ddd¦  «         n# 1 swxY w Y   	 |                     t          |¦  «        |	g¦  «         n# t           $ r Y nw xY wt#          j        |¦  «         t#          j        |	¦  «         n-# t#          j        |¦  «         t#          j        |	¦  «         w xY wdS )z±Page through text by invoking a program on a temporary file.

    Returns `True` if the command was found, `False` otherwise and thus another
    pager should be attempted.
    Fr   Nr;   ÚwbT)r   r   rè   rê   rÓ   rÔ   r’   r   r   rÇ   r×   r   ro   ÚencodeÚcallr$   ÚOSErrorrÌ   rÕ   rÖ   )ri   rÜ   r4   ró   rõ   rö   rê   rÓ   rÙ   rÚ   rç   ÚencodingÚfs                rS   rÏ   rÏ   ö  sÁ  € ð ð ØˆuØ
�AŒ,€Cå˜‘:”:€LØð Øˆuå�LÑ!Ô!×)Ò)Ñ+Ô+€HàÐÐÐØ€O€O€Oà×#Ò#Ñ%Ô%�L€Bˆà�7Š7�9ÑÔ€DØð  Ý˜$ÑÔˆÝ ¥¤Ñ,Ô,€HÝ	�X˜tÑ	$Ô	$ QÔ	'ð '¨1Ø	�Š�—’˜HÑ%Ô%Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ðØ�Š�˜X™œ¨Ð1Ñ2Ô2Ð2Ð2øÝð ð ð àˆðøøøõ 	Œ�‰ŒˆÝ
Œ	�(ÑÔÐÐøõ 	Œ�‰ŒˆÝ
Œ	�(ÑÔÐÐøøøàˆ4s<   Â5)C*Ã*C.Ã1C.Ã6$D ÄE Ä
D(Ä%E Ä'D(Ä(E Å*E>Ústreamút.TextIOc                ó\   — |D ](}|st          |¦  «        }|                      |¦  «         Œ)dS )z>Simply print unformatted text.  This is the ultimate fallback.N)r   ro   )r  ri   r4   rç   s       rS   rÉ   rÉ      sG   € ð ð ð ˆØð 	$Ý˜dÑ#Ô#ˆDØ�Š�TÑÔÐÐðð rU   c                  ó|   — e Zd Z	 	 	 	 ddd„Zdd„Zdd„Zej        dd„¦   «         Zej        d d„¦   «         Zd!d„ZdS )"ÚEditorNTú.txtÚeditorr1   rå   úcabc.Mapping[str, str] | NoneÚrequire_saver)   Ú	extensionr$   r8   r9   c                ó>   — || _         || _        || _        || _        d S rb   )r  rå   r
  r  )rR   r  rå   r
  r  s        rS   rT   zEditor.__init__+  s%   € ð ˆŒØˆŒØ(ˆÔØ"ˆŒˆˆrU   c                ó¸   — | j         �| j         S dD ]'}t          j                             |¦  «        }|r|c S Œ(t          rdS dD ]}t          |¦  «        �|c S ŒdS )N)ÚVISUALÚEDITORÚnotepad)zsensible-editorÚvimÚnanoÚvi)r  rÌ   rÍ   rÎ   r   r   )rR   Úkeyr¶   r  s       rS   Ú
get_editorzEditor.get_editor7  s…   € ØŒ;Ð"Ø”;ÐØ%ð 	ð 	ˆCÝ”—’ Ñ$Ô$ˆBØð Ø�	�	�	ðåð 	Ø�9Ø6ð 	ð 	ˆFÝ�V‰}Œ}Ð(Ø���ð )àˆtrU   Ú	filenamesr½   c                óN  — dd l }|                      ¦   «         }d }| j        r8t          j                             ¦   «         }|                     | j        ¦  «         d                     d„ |D ¦   «         ¦  «        }	 |                     |› d|› �|d¬¦  «        }| 	                    ¦   «         }|dk    r0t          t          d¦  «                             |¬¦  «        ¦  «        ‚d S # t          $ r7}t          t          d¦  «                             ||¬	¦  «        ¦  «        |‚d }~ww xY w)
Nr   r   c              3  ó"   K  — | ]
}d |› d �V — ŒdS )ú"Nr¼   )Ú.0rÚ   s     rS   ú	<genexpr>z$Editor.edit_files.<locals>.<genexpr>O  s*   è è € ÐJÐJ°H  H   ÐJÐJÐJÐJÐJÐJrU   T)Úargsrå   rä   z{editor}: Editing failed)r  z{editor}: Editing failed: {e})r  rú   )rê   r  rå   rÌ   rÍ   Úcopyr²   r’   rì   rñ   r   Ú_Úformatrÿ   )	rR   r  rê   r  rÍ   Úexc_filenamerù   Ú	exit_coderú   s	            rS   Ú
edit_fileszEditor.edit_filesE  sH  € ØÐÐÐà—’Ñ"Ô"ˆØ)-ˆàŒ8ð 	%Ý”j—o’oÑ'Ô'ˆGØ�NŠN˜4œ8Ñ$Ô$Ð$à—x’xÐJÐJÀ	ÐJÑJÔJÑJÔJˆð	Ø× Ò ØÐ/Ð/ Ð/Ð/°WÀDð !ñ ô ˆAð Ÿš™œˆIØ˜AŠ~ˆ~Ý$ÝÐ0Ñ1Ô1×8Ò8ÀÐ8ÑGÔGñô ð ð ˆ~øõ ð 	ð 	ð 	Ý ÝÐ1Ñ2Ô2×9Ò9ÀÈ1Ð9ÑMÔMñô àðøøøøð	øøøs   Á:A'C# Ã#
D$Ã-2DÄD$rç   úbytes | bytearrayúbytes | Nonec                ó   — d S rb   r¼   ©rR   rç   s     rS   ÚeditzEditor.edit_  s   € Ø=@¸SrU   c                ó   — d S rb   r¼   r&  s     rS   r'  zEditor.editd  s   € Ø47°CrU   ústr | bytes | bytearray | Noneústr | bytes | Nonec                óö  — dd l }|€d}n�t          |t          t          f¦  «        r|}nb|r|                     d¦  «        s|dz  }t
          r*|                     dd¦  «                             d¦  «        }n|                     d¦  «        }|                     d| j	        ¬¦  «        \  }}	 t          j        |d	¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |t          j                             |¦  «        t          j                             |¦  «        d
z
  f¦  «         t          j                             |¦  «        }|                      |f¦  «         | j        r:t          j                             |¦  «        |k    r	 t          j        |¦  «         d S t)          |d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          |t          t          f¦  «        r|t          j        |¦  «         S |                     d¦  «                             dd¦  «        t          j        |¦  «         S # t          j        |¦  «         w xY w)Nr   rU   r   z
z	utf-8-sigzutf-8zeditor-)ÚprefixÚsuffixrü   é   Úrb)rÓ   Ú
isinstanceÚbytesÚ	bytearrayÚendswithr   rã   rý   rÔ   r  rÌ   Úfdopenro   ÚutimeÚpathÚgetatimeÚgetmtimer"  r
  rÖ   ÚopenÚreadÚdecode)	rR   rç   rÓ   ÚdatarÙ   ré   r  Ú	timestampr¶   s	            rS   r'  zEditor.editg  s¯  € Øˆˆˆàˆ<ØˆDˆDÝ˜�u¥iÐ0Ñ1Ô1ð 		,ØˆDˆDàð ˜DŸMšM¨$Ñ/Ô/ð Ø˜‘�åð ,Ø—|’| D¨&Ñ1Ô1×8Ò8¸ÑEÔE��à—{’{ 7Ñ+Ô+�à×#Ò#¨9¸T¼^Ð#ÑLÔL‰ˆˆDð	Ý”˜2˜tÑ$Ô$ð ¨Ø—’˜‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ŒH�T�BœG×,Ò,¨TÑ2Ô2µB´G×4DÒ4DÀTÑ4JÔ4JÈQÑ4NÐOÑPÔPÐPõ œ×(Ò(¨Ñ.Ô.ˆIà�OŠO˜T˜GÑ$Ô$Ð$àÔ ð ¥R¤W×%5Ò%5°dÑ%;Ô%;¸yÒ%HÐ%HØõ ŒI�d‰OŒOˆOˆOˆOõ �d˜DÑ!Ô!ð  QØ—V’V‘X”X�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜$¥­	Ð 2Ñ3Ô3ð Øõ ŒI�d‰OŒOˆOˆOð —9’9˜[Ñ)Ô)×1Ò1°&¸$Ñ?Ô?åŒI�d‰OŒOˆOˆOø�BŒI�d‰OŒOˆOˆOøøøsa   Â+I" Ã C"ÃI" Ã"C&Ã&I" Ã)C&Ã*B6I" Æ7I" ÇG(ÇI" Ç(G,Ç,I" Ç/G,Ç0 I" È%(I" É"I8)NNTr  )
r  r1   rå   r	  r
  r)   r  r$   r8   r9   r·   )r  r½   r8   r9   )rç   r#  r8   r$  )rç   r1   r8   r1   )rç   r)  r8   r*  )	r¸   r¹   rº   rT   r  r"  rB   Úoverloadr'  r¼   rU   rS   r  r  *  s«   € € € € € ð "Ø-1Ø!Øð
#ð 
#ð 
#ð 
#ð 
#ðð ð ð ðð ð ð ð4 „ZØ@Ð@Ð@ñ „ZØ@ð „ZØ7Ð7Ð7ñ „ZØ7ð-ð -ð -ð -ð -ð -rU   r  FÚurlr$   rñ   Úlocater6   c                ó   — dd l }dd„}t          j        dk    r¶dg}|r|                     d¦  «         |r|                     d	¦  «         |                      || ¦  «        ¦  «         t	          d
d¦  «        }	 |                     ||¬¦  «                             ¦   «         |                     ¦   «          S # |                     ¦   «          w xY wt          r€|r || ¦  «        } dd| › �g}nDdg}|r|                     d¦  «         |                     d¦  «         |                     | ¦  «         	 | 	                    |¦  «        S # t          $ r Y dS w xY wt          r…|r- || ¦  «        } dt          j                             | ¦  «        g}n/dg}|r|                     d¦  «         |                     | ¦  «         	 | 	                    |¦  «        S # t          $ r Y dS w xY w	 |r+t          j                              || ¦  «        ¦  «        pd} n || ¦  «        } |                     d| g¦  «        }|r|                     ¦   «         S dS # t          $ r9 |                      d¦  «        r |s|sdd l}|                     | ¦  «         Y dS Y dS w xY w)Nr   r?  r$   r8   c                ób   — ddl m} |                      d¦  «        r || dd …         ¦  «        } | S )Nr   )Úunquotezfile://é   )Úurllib.parserC  rÒ   )r?  rC  s     rS   Ú_unquote_filezopen_url.<locals>._unquote_fileš  sD   € Ø(Ð(Ð(Ð(Ð(Ð(à�>Š>˜)Ñ$Ô$ð 	#Ø�'˜#˜a˜b˜bœ'Ñ"Ô"ˆCàˆ
rU   Údarwinr9  z-Wrà   z	/dev/nullÚw)ÚstderrÚexplorerz/select,rI   z/WAITr;   é   Úcygstartz-wú.zxdg-open)zhttp://zhttps://r	   )r?  r$   r8   r$   )rê   rÇ   rÑ   r™   r9  rì   rñ   rÕ   r   rþ   rÿ   r   rÌ   r6  ÚdirnamerÒ   Ú
webbrowser)	r?  rñ   r@  rê   rF  r  Únullrù   rO  s	            rS   Úopen_urlrQ  —  s  € ØÐÐÐðð ð ð õ „|�xÒÐØˆxˆØð 	Ø�KŠK˜ÑÔÐØð 	Ø�KŠK˜ÑÔÐØ�Š�M�M #Ñ&Ô&Ñ'Ô'Ð'Ý�K Ñ%Ô%ˆð	Ø×#Ò# D°Ð#Ñ6Ô6×;Ò;Ñ=Ô=à�JŠJ‰LŒLˆLˆLøˆD�JŠJ‰LŒLˆLˆLøøøÝ	ð Øð 	Ø�- Ñ$Ô$ˆCØÐ 0¨3Ð 0Ð 0Ð1ˆDˆDà�9ˆDØð %Ø—’˜GÑ$Ô$Ð$Ø�KŠK˜‰OŒOˆOØ�KŠK˜ÑÔÐð	Ø—?’? 4Ñ(Ô(Ð(øÝð 	ð 	ð 	à�3�3ð	øøøõ 
ð Øð 	Ø�- Ñ$Ô$ˆCØ¥¤§¢°Ñ 4Ô 4Ð5ˆDˆDà�<ˆDØð "Ø—’˜DÑ!Ô!Ð!Ø�KŠK˜ÑÔÐð	Ø—?’? 4Ñ(Ô(Ð(øÝð 	ð 	ð 	à�3�3ð	øøøðØð 	%Ý”'—/’/ - -°Ñ"4Ô"4Ñ5Ô5Ð<¸ˆCˆCà�- Ñ$Ô$ˆCØ×Ò˜j¨#Ð.Ñ/Ô/ˆØð 	Ø—6’6‘8”8ˆOØˆqøÝð ð ð Ø�>Š>Ð1Ñ2Ô2ð 	¸6ð 	È$ð 	ØÐÐÐà�OŠO˜CÑ Ô Ð Ø�1�1ØˆqˆqðøøøsC   Á9(B6 Â6CÄ0E Å
EÅEÆ<G Ç
GÇGÇ#A$I
 É
<JÊJÚchc                óš   — | dk    rt          ¦   «         ‚| dk    rt          st          ¦   «         ‚| dk    rt          rt          ¦   «         ‚d S )Núúú)rò   r   ÚEOFError)rR  s    rS   Ú_translate_ch_to_excrX  Þ  sJ   € Ø	ˆV‚|€|ÝÑ!Ô!Ð!à	ˆV‚|€|�C€|Ý‰jŒjÐà	ˆV‚|€|�€|Ý‰jŒjÐàˆ4rU   Úwin32úcabc.Iterator[int]c               #  ó   K  — dV — d S )Nr=   r¼   r¼   rU   rS   Úraw_terminalr\  î  s   è è € àˆˆˆˆˆrU   r   c                ó8  — | r7t          j        t           j        g t          f         t          j        ¦  «        }n6t          j        t           j        g t          f         t          j        ¦  «        } |¦   «         }|dv r| |¦   «         z  }t          |¦  «         |S )N)ú õ   Ã )rB   rC   ÚCallabler$   ÚmsvcrtÚgetwcheÚgetwchrX  )r   Úfuncr¶   s      rS   Úgetcharre  ò  s…   € ð> ð 	>Ý”6�!œ* R­ WÔ-­v¬~Ñ>Ô>ˆDˆDå”6�!œ* R­ WÔ-­v¬}Ñ=Ô=ˆDàˆT‰VŒVˆàÐ!Ð!Ð!ð �$�$‘&”&‰LˆBå˜RÑ Ô Ð Øˆ	rU   c               #  ó¬  K  — t          t          j        ¦  «        s$t          d¦  «        } |                      ¦   «         }n t          j                             ¦   «         }d } 	 t          j        |¦  «        }	 t          j        |¦  «         |V — t          j	        |t
          j
        |¦  «         t          j                             ¦   «          | �|                      ¦   «          d S d S # t          j	        |t
          j
        |¦  «         t          j                             ¦   «          | �|                      ¦   «          w w xY w# t
          j        $ r Y d S w xY w)Nz/dev/tty)r   rÇ   rÈ   r9  ÚfilenoÚtermiosÚ	tcgetattrÚttyÚsetrawÚ	tcsetattrÚ	TCSADRAINr×   rq   rÕ   Úerror)r  rÙ   Úold_settingss      rS   r\  r\  $  s6  è è € õ
 •c”iÑ Ô ð 	Ý�ZÑ Ô ˆAØ—’‘”ˆBˆBå”×!Ò!Ñ#Ô#ˆBØˆAð	Ý"Ô,¨RÑ0Ô0ˆLðÝ”
˜2‘”�Ø���åÔ! "¥gÔ&7¸ÑFÔFÐFÝ”
× Ò Ñ"Ô"Ð"à�=Ø—G’G‘I”I�I�I�Ið !�=øõ Ô! "¥gÔ&7¸ÑFÔFÐFÝ”
× Ò Ñ"Ô"Ð"à�=Ø—G’G‘I”I�I�Ið !øøøøåŒ}ð 	ð 	ð 	ØˆDˆDð	øøøs,   Á!E  Á6C& ÂAE  Ã&AD=Ä=E  Å EÅEc                óh  — t          ¦   «         5 }t          j        |d¦  «                             t	          t
          j        ¦  «        d¦  «        }| r8t          t
          j        ¦  «        rt
          j         	                    |¦  «         t          |¦  «         |cd d d ¦  «         S # 1 swxY w Y   d S )Né    rã   )r\  rÌ   r:  r;  r   rÇ   rÈ   r   r×   ro   rX  )r   rÙ   rR  s      rS   re  re  ?  s×   € Ý‰^Œ^ð 	˜rÝ”˜˜R‘”×'Ò'Õ(9½#¼)Ñ(DÔ(DÀiÑPÔPˆBàð %��sœzÑ*Ô*ð %Ý”
× Ò  Ñ$Ô$Ð$å  Ñ$Ô$Ð$Øð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �BB'Â'B+Â.B+rb   )ri   r½   r4   r,   r8   r9   )ri   r½   rÜ   rÝ   r4   r,   r8   r)   )r  r  ri   r½   r4   r,   r8   r9   )FF)r?  r$   rñ   r)   r@  r)   r8   r6   )rR  r$   r8   r9   )r8   rZ  )r   r)   r8   r$   ):Ú__doc__Ú
__future__r   Úcollections.abcÚabcÚcabcÚ
contextlibr�   rÌ   rÊ   rÇ   rH   ÚtypingrB   r   r  Úior   Úpathlibr   r    r   Útypesr   Ú_compatr
   r   r   r   r   r   r   r   Ú
exceptionsr   Úutilsr   ÚTypeVarr   ré   r¤   rp   ÚGenericr   rÛ   rÐ   rÏ   rÉ   r  rQ  rX  rÑ   ra  Úcontextmanagerr\  re  rh  rj  r¼   rU   rS   ú<module>r‚     s^  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð à€A„Iˆc�N„N€à„7ˆd‚?€?Ø€JØ€I€Ià€JØ€IðC#ð C#ð C#ð C#ð C#�!”)˜A”,ñ C#ô C#ð C#ðL
'ð 'ð 'ð 'ð 'ðTWð Wð Wð Wðt'ð 'ð 'ð 'ðTð ð ð ðjð jð jð jð jñ jô jð jðZDð Dð Dð Dð DðN
ð 
ð 
ð 
ð „<�7ÒÐØ€M€M€MàÔðð ð ñ Ôðð,ð ,ð ,ð ,ð ,ð ,ð^ €N€N€NØ€J€J€JàÔðð ð ñ Ôðð4ð ð ð ð ð rU   