ó
    pñ:iÕi  ã                  ó¬  • S r SSKJr  SSKJr  SSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ r   SSK!J"r"  \RF                  " S5      r$\RJ                  S:X  a  Sr&Sr'OSr&Sr' " S S\RP                  \$   5      r)S(S)S jjr*        S*S jr+        S*S jr,        S+S jr- " S S 5      r.S,S-S! jjr/S.S" jr0\
Rb                  S#:X  a  SSK2r2\Rf                  S/S$ j5       r4S0S% jr5gSSK6r6SSK7r7\Rf                  S/S& j5       r4S0S' jr5g)1z¿
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)ÚTracebackTypeé   )Ú_default_text_stdout)ÚCYGWIN)Úget_best_encoding)Úisatty)Úopen_stream)Ú
strip_ansi)Úterm_len)ÚWIN)ÚClickException)ÚechoÚVÚntÚÚ
z[?25lz[?25h
c                  óh  • \ rS rSr               S                                 SS jjrSS jr        SS jrSS jrSS jrSS jr	\
SS	 j5       r\
SS
 j5       r\
SS j5       rSS jrSS jrSS jrSS jrSS jrSS jrS S jrS!S"S jjrSS jrSS jrSrg)#ÚProgressBaré+   Nc                óÈ  • X0l         X@l        XPl        X`l        Xpl        X€l        X�l        X l        X°l        U=(       d    SU l	        Uc  [        5       nUc
  [        5       nXÐl        Xàl        Xðl        SU l        UU l        US:H  U l        Uc  SSKJn  U" US5      nUS:X  a  S nUc.  Uc  [)        S5      e[*        R,                  " S[/        U5      5      n[1        U5      U l        X l        SU l        / U l        U   U   [8        R8                  " 5       =U l        U l        SU l        SU l         S U l!        SU l"        S U l#        [I        U R                  5      U l%        S U l&        g )NÚ r   )Úlength_hintéÿÿÿÿziterable or length is requiredzcabc.Iterable[V]F)'Ú	fill_charÚ
empty_charÚbar_templateÚinfo_sepÚhiddenÚshow_etaÚshow_percentÚshow_posÚitem_show_funcÚlabelr	   r   ÚfileÚcolorÚupdate_min_stepsÚ_completed_intervalsÚwidthÚ	autowidthÚoperatorr   Ú	TypeErrorÚtÚcastÚrangeÚiterÚlengthÚposÚavgÚtimeÚstartÚlast_etaÚ	eta_knownÚfinishedÚ	max_widthÚenteredÚcurrent_itemr   Ú_is_attyÚ
_last_line)ÚselfÚiterabler4   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r,   r   s                     ÚU/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/click/_termui_impl.pyÚ__init__ÚProgressBar.__init__,   sC  € ð& #ŒØ$ŒØ(ÔØ ŒØŒØ ŒØ(ÔØ ŒØ,ÔØŸ+ 2ˆŒ
à‰<Ü'Ó)ˆDð ‰|Ü“z�àŒ	ØŒ
Ø 0ÔØ$%ˆÔ!ØˆŒ
Ø$¨™zˆŒà‰>Ý,á  ¨2Ó.ˆFà˜‹|Ø�ØÑØ‰~ÜÐ @ÓAÐAÜ—v’vÐ0´%¸³-Ó@ˆHÜ&*¨8£nˆŒ	ØŒØˆŒØ "ˆŒÙÙÜ%)§Y¢Y£[Ð0ˆŒ
�T”]Ø$ˆŒØ#ˆŒØ%)ˆŒØ"ˆŒØ&*ˆÔÜ˜tŸy™yÓ)ˆŒØ&*ˆ�ó    c                ó4   • SU l         U R                  5         U $ )NT)r=   Úrender_progress©rA   s    rC   Ú	__enter__ÚProgressBar.__enter__s   s   € ØˆŒØ×ÑÔØˆrF   c                ó$   • U R                  5         g ©N)Úrender_finish)rA   Úexc_typeÚ	exc_valueÚtbs       rC   Ú__exit__ÚProgressBar.__exit__x   s   € ð 	×ÑÕrF   c                óz   • U R                   (       d  [        S5      eU R                  5         U R                  5       $ )Nú.You need to use progress bars in a with block.)r=   ÚRuntimeErrorrH   Ú	generatorrI   s    rC   Ú__iter__ÚProgressBar.__iter__€   s.   € Ø�|�|ÜÐOÓPÐPØ×ÑÔØ�~‰~ÓÐrF   c                ó*   • [        [        U 5      5      $ rM   )Únextr3   rI   s    rC   Ú__next__ÚProgressBar.__next__†   s   € ô ”D˜“JÓÐrF   c                ó¼   • U R                   (       d  U R                  (       d  g U R                  R                  [        5        U R                  R                  5         g rM   )r"   r?   r(   ÚwriteÚ	AFTER_BARÚflushrI   s    rC   rN   ÚProgressBar.render_finishŽ   s0   € Ø�;�;˜dŸmŸmØØ�	‰	�‰œ	Ô"Ø�	‰	�‰ÕrF   c                ó¢   • U R                   (       a  g[        U R                  [        U R                  =(       d    S5      =(       d    S-  S5      $ )Nç      ð?r   )r;   Úminr5   Úfloatr4   rI   s    rC   ÚpctÚProgressBar.pct”   s5   € à�=�=ØÜ�4—8‘8œu T§[¡[×%5°AÓ6×;¸!Ñ<¸cÓBÐBrF   c                óŽ   • U R                   (       d  g[        U R                   5      [        [        U R                   5      5      -  $ ©Ng        )r6   Úsumrf   ÚlenrI   s    rC   Útime_per_iterationÚProgressBar.time_per_iterationš   s,   € à�x�xØÜ�4—8‘8‹}œu¤S¨¯©£]Ó3Ñ3Ð3rF   c                óŒ   • U R                   b7  U R                  (       d&  U R                  U R                   U R                  -
  -  $ grj   )r4   r;   rm   r5   rI   s    rC   ÚetaÚProgressBar.eta    s3   € à�;‰;Ñ"¨4¯=¯=Ø×*Ñ*¨d¯k©k¸D¿H¹HÑ.DÑEÐEØrF   c                óÒ   • U R                   (       aV  [        U R                  5      nUS-  nUS-  nUS-  nUS-  nUS-  nUS-  nUS:”  a  U SUS SUS SUS 3$ US SUS SUS 3$ g)Né<   é   r   zd Ú02Ú:r   )r:   Úintrp   )rA   r0   ÚsecondsÚminutesÚhourss        rC   Ú
format_etaÚProgressBar.format_eta¦   s–   € Ø�>�>Ü�D—H‘H“ˆAØ˜"‘fˆGØ�"‰HˆAØ˜"‘fˆGØ�"‰HˆAØ˜‘FˆEØ�"‰HˆAØ�1‹uØ˜˜B˜u R˜j¨¨'°"¨°Q°w¸r°lÐCÐCà ˜ 1 W¨R L°°'¸"°Ð>Ð>ØrF   c                ón   • [        U R                  5      nU R                  b  USU R                   3-  nU$ )NÚ/)Ústrr5   r4   )rA   r5   s     rC   Ú
format_posÚProgressBar.format_posµ   s3   € Ü�$—(‘(‹mˆØ�;‰;Ñ"Ø�Q�t—{‘{�mÐ$Ñ$ˆCØˆ
rF   c                ó@   • [        U R                  S-  5      S S3SS  $ )Néd   z 4Ú%r   )rw   rg   rI   s    rC   Ú
format_pctÚProgressBar.format_pct»   s&   € Ü�d—h‘h ‘nÓ% bÐ)¨Ð+¨A¨BÐ/Ð/rF   c                ó^  • U R                   bQ  [        U R                  U R                  -  5      nU R                  U-  nX R
                  U R                  U-
  -  -  nU$ U R                  (       a  U R                  U R                  -  nU$ [        U R
                  U R                  =(       d    S-  5      nU R                  S:w  aV  U R                  U[        [        R                  " U R                  U R                  -  5      S-  S-   U R                  -  5      '   SR                  U5      nU$ )Nr   r   g       @g      à?r   )r4   rw   rg   r,   r   r   r;   Úlistrm   ÚmathÚcosr5   Újoin)rA   Ú
bar_lengthÚbarÚcharss       rC   Ú
format_barÚProgressBar.format_bar¾   sÿ   € Ø�;‰;Ñ"Ü˜TŸX™X¨¯
©
Ñ2Ó3ˆJØ—.‘. :Ñ-ˆCØ—?‘? d§j¡j°:Ñ&=Ñ>Ñ>ˆCð ˆ
ð �]�]Ø—.‘. 4§:¡:Ñ-ˆCð ˆ
ô ˜Ÿ™¨D¯J©J¯O¸!Ñ<Ó=ˆEØ×&Ñ&¨!Ó+ð —N‘Nð ÜÜŸš $§(¡(¨T×-DÑ-DÑ"DÓEÈÑKÈcÑQØŸ*™*ñ%óñð —'‘'˜%“.ˆCØˆ
rF   c                óÌ  • U R                   n/ nU R                  b  Uc  U R                  (       + nU R                  (       a  UR                  U R	                  5       5        U(       a  UR                  U R                  5       5        U R                  (       aA  U R                  (       a0  U R                  (       d  UR                  U R                  5       5        U R                  b/  U R                  U R                  5      nUb  UR                  U5        U R                  U R                  U R                  5       U R                  R!                  U5      S.-  R#                  5       $ )N)r'   r�   Úinfo)r$   r4   r%   Úappendr€   r…   r#   r:   r;   r{   r&   r>   r    r'   r�   r!   r‹   Úrstrip)rA   r$   Ú	info_bitsÚ	item_infos       rC   Úformat_progress_lineÚ ProgressBar.format_progress_lineÑ   s  € Ø×(Ñ(ˆàˆ	Ø�;‰;Ñ" |Ñ';Ø#Ÿ}™}Ô,ˆLà�=�=Ø×Ñ˜TŸ_™_Ó.Ô/ÞØ×Ñ˜TŸ_™_Ó.Ô/Ø�=�=˜TŸ^Ÿ^°D·M·MØ×Ñ˜TŸ_™_Ó.Ô/Ø×ÑÑ*Ø×+Ñ+¨D×,=Ñ,=Ó>ˆIØÑ$Ø× Ñ  Ô+ð ×ÑàŸ™Ø—‘Ó(ØŸ™×*Ñ*¨9Ó5ññ÷ ‰&‹(ð	rF   c                óh  • U R                   (       a  g U R                  (       dU  U R                  U R                  :w  a:  U R                  U l        [	        U R                  U R
                  U R                  S9  g / nU R                  (       a¨  SS KnU R                  nSU l	        [        U R                  5       5      n[        SUR                  5       R                  U-
  5      nXS:  aF  U R                  b9  UR!                  ["        5        UR!                  SU R                  -  5        XPl        XPl	        U R                  nU R                  b  U R                  nUR!                  ["        5        U R                  5       n[        U5      nU R                  b  U R                  U:  a  X€l        UR!                  U5        UR!                  SXh-
  -  5        SR%                  U5      nXpR                  :w  a@  Xpl        [	        XpR
                  U R                  SS9  U R
                  R'                  5         g g )N)r(   r)   r   Ú r   F)r(   r)   Únl)r"   r?   r@   r'   r   r(   r)   r-   Úshutilr,   r   r—   ÚmaxÚget_terminal_sizeÚcolumnsr<   r“   Ú
BEFORE_BARr‹   ra   )	rA   Úbufrœ   Ú	old_widthÚclutter_lengthÚ	new_widthÚclear_widthÚlineÚline_lens	            rC   rH   ÚProgressBar.render_progressì   s“  € Ø�;�;Øà�}�}à�‰ $§*¡*Ó,Ø"&§*¡*�”Ü�T—Z‘Z d§i¡i°t·z±zÒBØàˆà�>�>ÛàŸ
™
ˆIØˆDŒJÜ% d×&?Ñ&?Ó&AÓBˆNÜ˜A˜v×7Ñ7Ó9×AÑAÀNÑRÓSˆIØÓ$¨¯©Ñ)CØ—
‘
œ:Ô&Ø—
‘
˜3 §¡Ñ/Ô0Ø!*”Ø"ŒJà—j‘jˆØ�>‰>Ñ%ØŸ.™.ˆKà�
‰
”:ÔØ×(Ñ(Ó*ˆÜ˜D“>ˆØ�>‰>Ñ! T§^¡^°hÓ%>Ø%ŒNà�
‰
�4ÔØ�
‰
�3˜+Ñ0Ñ1Ô2Ø�w‰w�s‹|ˆð —?‘?Ó"Ø"ŒOÜ�ŸI™I¨T¯Z©Z¸EÒBØ�I‰I�O‰OÕð #rF   c                ó(  • U =R                   U-  sl         U R                  b!  U R                   U R                  :¼  a  SU l        [        R                  " 5       U R                  -
  S:  a  g [        R                  " 5       U l        U R                   (       a0  [        R                  " 5       U R
                  -
  U R                   -  nO"[        R                  " 5       U R
                  -
  nU R                  SS  U/-   U l        U R                  S LU l        g )NTrd   iúÿÿÿ)r5   r4   r;   r7   r9   r8   r6   r:   )rA   Ún_stepsÚsteps      rC   Ú	make_stepÚProgressBar.make_step  s¹   € Ø�Š�GÑ�Ø�;‰;Ñ" t§x¡x°4·;±;Ó'>Ø ˆDŒMä�IŠI‹K˜$Ÿ-™-Ñ'¨3Ó.ØäŸ	š	›ˆŒð
 �8�8Ü—I’I“K $§*¡*Ñ,°·±Ñ8‰Dä—9’9“; §¡Ñ+ˆDà—8‘8˜B˜C�= D 6Ñ)ˆŒàŸ™¨DÐ0ˆ�rF   c                óÚ   • Ub  X l         U =R                  U-  sl        U R                  U R                  :¼  a3  U R                  U R                  5        U R	                  5         SU l        gg)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   )r>   r+   r*   r¬   rH   )rA   rª   r>   s      rC   ÚupdateÚProgressBar.update0  s`   € ð  Ñ#Ø ,Ôà×!Ò! WÑ,Õ!à×$Ñ$¨×(=Ñ(=Ó=Ø�N‰N˜4×4Ñ4Ô5Ø× Ñ Ô"Ø()ˆDÕ%ð >rF   c                ó.   • SU l         S U l        SU l        g )NFT)r:   r>   r;   rI   s    rC   ÚfinishÚProgressBar.finishJ  s   € ØˆŒØ ˆÔØˆ�rF   c              #  óp  #   • U R                   (       d  [        S5      eU R                  (       d  U R                   Sh  v•N   gU R                   H>  nXl        U R
                  S:X  a  U R                  5         Uv •  U R                  S5        M@     U R                  5         U R                  5         g Nt7f)z�Return a generator which yields the items added to the bar
during construction, and updates the progress bar *after* the
yielded block returns.
rU   Nr   r   )	r=   rV   r?   r3   r>   r+   rH   r¯   r²   )rA   Úrvs     rC   rW   ÚProgressBar.generatorO  sŠ   é € ð �|�|ÜÐOÓPÐPà�}�}Ø—y‘y× Ñ à—i”i�Ø$&Ô!ð
 ×,Ñ,°Ó1Ø×(Ñ(Ô*à’Ø—‘˜A–ñ  ð �K‰KŒMØ× Ñ Õ"ñ !ùs   ‚=B6¿B4Á A5B6)r+   r?   r@   r-   r6   r    r)   r>   r   r=   r:   r(   r   r;   r"   r!   r&   r3   r'   r9   r4   r<   r5   r#   r$   r%   r8   r*   r,   )NÚ#rš   z%(bar)sz  FTNFNNNNr   é   )"rB   zcabc.Iterable[V] | Noner4   z
int | Noner   r   r   r   r    r   r!   r   r"   Úboolr#   r¹   r$   úbool | Noner%   r¹   r&   z)t.Callable[[V | None], str | None] | Noner'   ú
str | Noner(   zt.TextIO | Noner)   rº   r*   rw   r,   rw   ÚreturnÚNone)r¼   zProgressBar[V])rO   ztype[BaseException] | NonerP   zBaseException | NonerQ   zTracebackType | Noner¼   r½   )r¼   zcabc.Iterator[V])r¼   r   )r¼   r½   )r¼   rf   ©r¼   r   )rª   rw   r¼   r½   rM   )rª   rw   r>   zV | Noner¼   r½   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rD   rJ   rR   rX   r\   rN   Úpropertyrg   rm   rp   r{   r€   r…   r�   r—   rH   r¬   r¯   r²   rW   Ú__static_attributes__© rF   rC   r   r   +   s¢  † ð "ØØØ%ØØØØ$(ØØDHØ Ø $Ø!Ø !Øð#E+à)ðE+ð ðE+ð ð	E+ð
 ðE+ð ðE+ð ðE+ð ðE+ð ðE+ð "ðE+ð ðE+ð BðE+ð ðE+ð ðE+ð ðE+ð  ð!E+ð" ð#E+ð$ 
õ%E+ôNð
à,ðð (ðð !ð	ð
 
ôô ô ôð óCó ðCð
 ó4ó ð4ð
 óó ðô
ôô0ôô&ô6,ô\1ö,*ô4÷
#rF   r   c                ó®  • [        5       nUc
  [        5       n[        [        R                  5      (       a  [        U5      (       d  [        X U5      $ [        R                  " [        R                  R                  SS5      SS9nU(       a0  [        (       a  [        XU5      (       a  gO[        XU5      (       a  g[        R                  R                  S5      S;   a  [        X U5      $ [        (       d$  [        R                  R                  S5      (       a  [        U S	/U5      (       a  g[        U S
/U5      (       a  gSSKnUR#                  5       u  pV[        R$                  " U5         [        U S	/U5      (       a   [        R&                  " U5        g[        X U5      [        R&                  " U5        $ ! [        R&                  " U5        f = f)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)rW   r)   ÚstdoutÚpager_cmd_partsrÛ   ÚfdÚfilenames          rC   Úpagerrã   q  s_  € ä!Ó#€Fð �~Ü“ˆä”#—)‘)×Ñ¤F¨6§N¡NÜ˜&¨UÓ3Ð3ô —k’k¤"§*¡*§.¡.°¸"Ó"=ÀUÑK€OÞßŠ3Ü˜i¸%×@Ñ@Øð Aä˜	°E×:Ñ:Øä	‡z�z‡~�~�fÓÐ!2Ó2Ü˜&¨UÓ3Ð3ßŠŒs�|‰|×&Ñ& u×-Ñ-´>Ø�F�8˜U÷4ñ 4ð 	Ü�)˜f˜X u×-Ñ-Øãà×#Ñ#Ó%�L€BÜ‡H‚HˆR„LðÜ�i & ¨5×1Ñ1Øô 	�	Š	�(Õô ˜&¨UÓ3ä
�	Š	�(ÕøŒ�	Š	�(Õús   Å/F< ÆF< Æ<Gc           	     ó"  • U(       d  gSSK nUS   nUSS nUR                  U5      nU(       d  g[        U5      R                  5       nUR                  nSSKn	[        [        R                  5      n
UcV  US:X  aP  [        R                  R                  SS5       SR                  U5       3nU(       d  S	U
S'   S
nOSU;   d  SU;   a  S
nU	R                  [        U5      /U-   SU	R                  U
SS
S9nUR                  c   e U  H0  nU(       d  [        U5      nUR                  R!                  U5        M2      UR                  R)                  5           UR+                  5          g
! ["         a     N;[$         a  nUR'                  5         UeSnAff = f! ["         a     NOf = f! [,         a     Of = fMd  !  UR                  R)                  5         O! ["         a     Of = f  UR+                  5         f ! [,         a     Of = fM$  = f)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   Nr   rÎ   ÚLESSr   rš   ú-RTÚrÚRÚreplace)ÚshellrÐ   ÚenvÚerrorsÚtext)rœ   Úwhichr   ÚabsoluteÚnameÚ
subprocessÚdictrÔ   rÕ   rÖ   r‹   ÚPopenr   ÚPIPErÐ   r   r_   ÚBrokenPipeErrorÚ	ExceptionÚ	terminaterÝ   ÚwaitÚKeyboardInterrupt)rW   Ú	cmd_partsr)   rœ   ÚcmdÚ
cmd_paramsÚcmd_filepathÚcmd_pathÚcmd_namerñ   rë   Ú
less_flagsÚcrí   Úes                  rC   rØ   rØ   ›  s  € ö Øãà
�A‰,€CØ˜1˜2�€Jà—<‘< Ó$€LÞØô
 �LÓ!×*Ñ*Ó,€HØ�}‰}€Hãô Œr�z‰zÓ
€Cð �}˜ VÓ+ÜŸ
™
Ÿ™ v¨rÓ2Ð3°C·H±H¸ZÓ4HÐ3IÐJˆ
ÞØˆC�‰KØ‰EØ�JÓ #¨Ó"3ØˆEà×ÑÜ	ˆX‹ˆ˜*Ñ$ØØ�o‰oØØØð 	ð 	€Að �7‰7ÑÐÐð'ÛˆDÞÜ! $Ó'�à�G‰G�M‰M˜$Öñ	 ð"	Ø�G‰G�M‰MŒOð ðØ—‘”ð àøôG ó áÜó ð
 	
�‰ŒØˆûðûô ó 	Ùð	ûô %ó Ùðúñ øð	Ø�G‰G�M‰M�Oøô ó 	Ùð	úð ðØ—‘”ð øô %ó Ùðúñ úsœ   Ä6E+ Ä=F ÅF* Å+
FÅ5F< Å7	FÆ FÆFÆF< Æ
F'Æ&F'Æ*
F7Æ6F7Æ<HÆ>GÇHÇ
G&Ç#HÇ%G&Ç&HÇ+G<Ç;HÇ<
H	ÈHÈH	È	Hc                óÜ  • U(       d  gSSK nUS   nUR                  U5      nU(       d  g[        U5      R                  5       nSSKnSSKnUR                  5       u  pšSR                  U 5      nU(       d  [        U5      n[        [        R                  5      n[        U
S5      S    nUR                  UR                  U5      5        SSS5         UR                  [!        U5      U
/5        [$        R&                  " U	5        [$        R(                  " U
5        g! , (       d  f       NX= f! ["         a     NJf = f! [$        R&                  " U	5        [$        R(                  " U
5        f = f)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ß   r   r_   ÚencodeÚcallr   ÚOSErrorrÔ   rÝ   rÞ   )rW   rú   r)   rœ   rû   rý   rþ   rñ   rÛ   rá   râ   rí   ÚencodingÚfs                 rC   r×   r×   û  s  € ö Øãà
�A‰,€Cà—<‘< Ó$€LÞØô �LÓ!×*Ñ*Ó,€HãÛà×#Ñ#Ó%�L€Bà�7‰7�9Ó€DÞÜ˜$ÓˆÜ ¤§¡Ó,€HÜ	�X˜tÓ	$ QÒ	'¨1Ø	�‰�—‘˜HÓ%Ô&÷ 
(ðØ�‰œ˜X›¨Ð1Ô2ô
 	�Š�ŒÜ
�	Š	�(Ôà÷ 
(Õ	'ûô ó áðûô 	�Š�ŒÜ
�	Š	�(Õús0   Â)!DÃD- Ä
D*Ä-
D:Ä7D= Ä9D:Ä:D= Ä=.E+c                ó\   • U H&  nU(       d  [        U5      nU R                  U5        M(     g)z>Simply print unformatted text.  This is the ultimate fallback.N)r   r_   )ÚstreamrW   r)   rí   s       rC   rÑ   rÑ   *  s'   € ó ˆÞÜ˜dÓ#ˆDØ�‰�TÖò rF   c                  óª   • \ rS rSr    S
         SS jjrSS jrSS jr\R                  SS j5       r	\R                  SS j5       r	SS jr	S	r
g)ÚEditori4  Nc                ó4   • Xl         X l        X0l        X@l        g rM   )Úeditorrë   Úrequire_saveÚ	extension)rA   r  rë   r  r  s        rC   rD   ÚEditor.__init__5  s   € ð ŒØŒØ(ÔØ"�rF   c                óì   • U R                   b  U R                   $ S H-  n[        R                  R                  U5      nU(       d  M+  Us  $    [        (       a  gSSKJn  S H  nU" U5      c  M  Us  $    g)N)ÚVISUALÚEDITORÚnotepadr   )rî   )zsensible-editorÚvimÚnanoÚvi)r  rÔ   rÕ   rÖ   r   rœ   rî   )rA   Úkeyrµ   rî   r  s        rC   Ú
get_editorÚEditor.get_editorA  sg   € Ø�;‰;Ñ"Ø—;‘;ÐÛ%ˆCÜ—‘—‘ Ó$ˆBßˆrØ’	ñ &÷ Š3Øå ã6ˆFÙ�V‹}Ó(Ø’ñ 7ð rF   c                óø  • SS K nU R                  5       nS nU R                  (       a9  [        R                  R                  5       nUR                  U R                  5        SR                  S U 5       5      n UR                  U SU 3USS9nUR                  5       nUS:w  a!  [        [        S5      R                  US95      eg ! [         a'  n[        [        S5      R                  X8S	95      UeS nAff = f)
Nr   rš   c              3  ó.   #   • U  H  nS U S 3v •  M     g7f)Ú"NrÅ   )Ú.0râ   s     rC   Ú	<genexpr>Ú$Editor.edit_files.<locals>.<genexpr>\  s   é € ÐJÂ	°H ! H :¨Q¥Â	ùs   ‚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  )	rA   Ú	filenamesrñ   r  rÕ   Úexc_filenamer  Ú	exit_coder  s	            rC   Ú
edit_filesÚEditor.edit_filesR  só   € Ûà—‘Ó"ˆØ)-ˆà�8�8Ü—j‘j—o‘oÓ'ˆGØ�N‰N˜4Ÿ8™8Ô$à—x‘xÑJÁ	ÓJÓJˆð	Ø× Ñ Ø�x˜q  Ð/°WÀDð !ð ˆAð Ÿ™›ˆIØ˜A‹~Ü$ÜÐ0Ó1×8Ñ8ÀÐ8ÐGóð ð øô ó 	Ü ÜÐ1Ó2×9Ñ9ÀÐ9ÐMóàðûð	ús   Á:AC Ã
C9Ã"C4Ã4C9c                ó   • g rM   rÅ   ©rA   rí   s     rC   ÚeditÚEditor.editl  s   € Ø=@rF   c                ó   • g rM   rÅ   r-  s     rC   r.  r/  q  s   € Ø47rF   c                óî  • SS K nUc  SnO~[        U[        [        45      (       a  UnO`U(       a  UR	                  S5      (       d  US-  n[
        (       a"  UR                  SS5      R                  S5      nOUR                  S5      nUR                  SU R                  S9u  pE [        R                  " US	5       nUR                  U5        S S S 5        [        R                  " U[        R                  R                  U5      [        R                  R!                  U5      S
-
  45        [        R                  R!                  U5      nU R#                  U45        U R$                  (       a;  [        R                  R!                  U5      U:X  a   [        R&                  " U5        g [)        US5       nUR+                  5       nS S S 5        [        U[        [        45      (       a  W[        R&                  " U5        $ WR-                  S5      R                  SS5      [        R&                  " U5        $ ! , (       d  f       GNq= f! , (       d  f       NŠ= f! [        R&                  " U5        f = f)Nr   rF   r   z
z	utf-8-sigzutf-8zeditor-)ÚprefixÚsuffixr  é   Úrb)rÛ   Ú
isinstanceÚbytesÚ	bytearrayÚendswithr   ré   r  rÜ   r  rÔ   Úfdopenr_   ÚutimeÚpathÚgetatimeÚgetmtimer*  r  rÞ   ÚopenÚreadÚdecode)	rA   rí   rÛ   Údatará   rð   r	  Ú	timestamprµ   s	            rC   r.  r/  t  sÁ  € Ûà‰<Ø&)‰DÜ˜œu¤iÐ0×1Ñ1Ø‰Dæ˜DŸM™M¨$×/Ñ/Ø˜‘�çŠsØ—|‘| D¨&Ó1×8Ñ8¸ÓE‘à—{‘{ 7Ó+�à×#Ñ#¨9¸T¿^¹^Ð#ÐL‰ˆð	Ü—’˜2˜tÔ$¨Ø—‘˜”÷ %ô �HŠH�TœBŸG™G×,Ñ,¨TÓ2´B·G±G×4DÑ4DÀTÓ4JÈQÑ4NÐOÔPô Ÿ™×(Ñ(¨Ó.ˆIà�O‰O˜T˜GÔ$à× × ¤R§W¡W×%5Ñ%5°dÓ%;¸yÓ%HØô �IŠI�d�Oô �d˜DÔ! QØ—V‘V“X�÷ "ô ˜$¤¬	Ð 2×3Ñ3Øô �IŠI�d�Oð —9‘9˜[Ó)×1Ñ1°&¸$Ó?ä�IŠI�d�O÷3 %Ö$ú÷" "Õ!ûô �IŠI�d�OúsI   Â&I Â=H9ÃCI Æ*I Æ6IÇ$I È I È9
IÉI É
IÉI ÉI4)r  rë   r  r  )NNTz.txt)
r  r»   rë   zcabc.Mapping[str, str] | Noner  r¹   r  r   r¼   r½   r¾   )r'  úcabc.Iterable[str]r¼   r½   )rí   zbytes | bytearrayr¼   zbytes | None)rí   r»   r¼   r»   )rí   zstr | bytes | bytearray | Noner¼   zstr | bytes | None)r¿   rÀ   rÁ   rÂ   rD   r  r*  r0   Úoverloadr.  rÄ   rÅ   rF   rC   r  r  4  s|   † ð "Ø-1Ø!Øð
#àð
#ð +ð
#ð ð	
#ð
 ð
#ð 
õ
#ôô"ð4 ‡Z�ZÛ@ó Ø@ð ‡Z�ZÛ7ó Ø7÷-rF   r  c                óî  • SS K nSS jn[        R                  S:X  a„  S/nU(       a  UR                  S5        U(       a  UR                  S5        UR                  U" U 5      5        [	        SS5      n UR                  XVS	9R                  5       UR                  5         $ [        (       af  U(       a  U" U 5      n S
SU  3/nO=S/nU(       a  UR                  S5        UR                  S5        UR                  U 5         UR                  U5      $ [        (       ao  U(       a*  U" U 5      n S[        R                  R                  U 5      /nO,S/nU(       a  UR                  S5        UR                  U 5         UR                  U5      $  U(       a/  [        R                  R                  U" U 5      5      =(       d    Sn OU" U 5      n UR                  SU /5      nU(       a  UR                  5       $ g! UR                  5         f = f! [         a     gf = f! [         a     gf = f! [         a>    U R                  S5      (       a%  U(       d  U(       d  SS KnUR	                  U 5         g gf = f)Nr   c                óT   • SSK Jn  U R                  S5      (       a  U" U SS  5      n U $ )Nr   )Úunquotezfile://é   )Úurllib.parserH  rÚ   )ÚurlrH  s     rC   Ú_unquote_fileÚopen_url.<locals>._unquote_file§  s)   € Ý(à�>‰>˜)×$Ñ$Ù˜#˜a˜b˜'Ó"ˆCàˆ
rF   Údarwinr?  z-Wræ   z	/dev/nullÚw)ÚstderrÚexplorerz/select,r8   z/WAITr   é   Úcygstartz-wÚ.zxdg-open)zhttp://zhttps://r   )rK  r   r¼   r   )rñ   rÏ   rÙ   r“   r?  ró   rø   rÝ   r   r  r  r
   rÔ   r<  ÚdirnamerÚ   Ú
webbrowser)	rK  rø   Úlocaterñ   rL  r#  Únullr  rV  s	            rC   Úopen_urlrY  ¤  s  € Ûôô ‡|�|�xÓØˆxˆÞØ�K‰K˜ÔÞØ�K‰K˜ÔØ�‰‘M #Ó&Ô'Ü�K Ó%ˆð	Ø×#Ñ# DÐ#Ð6×;Ñ;Ó=à�J‰J�Lß	ŠÞÙ Ó$ˆCØ (¨3¨%Ð 0Ð1‰Dà�9ˆDÞØ—‘˜GÔ$Ø�K‰K˜ŒOØ�K‰K˜Ôð	Ø—?‘? 4Ó(Ð(÷ 
ŠÞÙ Ó$ˆCØ¤§¡§¡°Ó 4Ð5‰Dà�<ˆDÞØ—‘˜DÔ!Ø�K‰K˜Ôð	Ø—?‘? 4Ó(Ð(ð
ÞÜ—'‘'—/‘/¡-°Ó"4Ó5×<¸‰Cá Ó$ˆCØ×Ñ˜j¨#Ð.Ó/ˆÞØ—6‘6“8ˆOØøðO �J‰J�Lûô ó 	áð	ûô ó 	áð	ûô ó Ø�>‰>Ð1×2Ñ2¾6Î$Ûà�O‰O˜CÔ ÙÙðúsD   Á5G7 ÄH Å<H ÆA'H, Ç7H	È
HÈHÈ
H)È(H)È,AI4É3I4c                ó�   • U S:X  a
  [        5       eU S:X  a  [        (       d
  [        5       eU S:X  a  [        (       a
  [        5       eg )NÚÚÚ)rù   r   ÚEOFError)Úchs    rC   Ú_translate_ch_to_excr`  ë  s;   € Ø	ˆVƒ|ÜÓ!Ð!à	ˆVƒ|ŸCšCÜ‹jÐà	ˆVƒ|ŸšÜ‹jÐàrF   Úwin32c               #  ó   #   • Sv •  g 7f)Nr   rÅ   rÅ   rF   rC   Úraw_terminalrc  û  s
   é € à‹ùs   ‚c                óH  • U (       a=  [         R                  " [         R                  / [        4   [        R
                  5      nO<[         R                  " [         R                  / [        4   [        R                  5      nU" 5       nUS;   a	  X!" 5       -  n[        U5        U$ )N)Ú ô   Ã )r0   r1   ÚCallabler   ÚmsvcrtÚgetwcheÚgetwchr`  )r   Úfuncrµ   s      rC   Úgetcharrl  ÿ  ss   € ö> Ü—6’6œ!Ÿ*™* R¬ WÑ-¬v¯~©~Ó>‰Dä—6’6œ!Ÿ*™* R¬ WÑ-¬v¯}©}Ó=ˆDá‹VˆàÐ!Ó!ð �$“&‰LˆBä˜RÔ Øˆ	rF   c               #  óÂ  #   • [        [        R                  5      (       d  [        S5      n U R	                  5       nO [        R                  R	                  5       nS n  [
        R                  " U5      n [        R                  " U5        Uv •  [
        R                  " U[
        R                  U5        [        R                  R                  5         U b  U R                  5         g g ! [
        R                  " U[
        R                  U5        [        R                  R                  5         U b  U R                  5         f f = f! [
        R                   a     g f = f7f)Nz/dev/tty)r   rÏ   rÐ   r?  ÚfilenoÚtermiosÚ	tcgetattrÚttyÚsetrawÚ	tcsetattrÚ	TCSADRAINrß   ra   rÝ   Úerror)r	  rá   Úold_settingss      rC   rc  rc  1  sú   é € ô
 ”c—i‘i× Ñ Ü�ZÓ ˆAØ—‘“‰Bä—‘×!Ñ!Ó#ˆBØˆAð	Ü"×,Ò,¨RÓ0ˆLðÜ—
’
˜2”Ø’ä×!Ò! "¤g×&7Ñ&7¸ÔFÜ—
‘
× Ñ Ô"à‘=Ø—G‘G•Ið !øô ×!Ò! "¤g×&7Ñ&7¸ÔFÜ—
‘
× Ñ Ô"à‘=Ø—G‘G•Ið !ûä�}‰}ó 	Ùð	üsD   ‚AEÁE Á5C( ÂAE Ã&EÃ(AEÅE ÅEÅEÅEÅEc                ój  • [        5        n[        R                  " US5      R                  [	        [
        R                  5      S5      nU (       a=  [        [
        R                  5      (       a  [
        R                  R                  U5        [        U5        UsS S S 5        $ ! , (       d  f       g = f)Né    ré   )rc  rÔ   r@  rA  r   rÏ   rÐ   r   rß   r_   r`  )r   rá   r_  s      rC   rl  rl  L  sg   € ÜŒ^˜rÜ—’˜˜R“×'Ñ'Ô(9¼#¿)¹)Ó(DÀiÓPˆBæœœsŸz™z×*Ñ*Ü—
‘
× Ñ  Ô$ä  Ô$Ø÷ �^�^ús   ‹BB$Â$
B2rM   )rW   rD  r)   rº   r¼   r½   )rW   rD  rú   z	list[str]r)   rº   r¼   r¹   )r  zt.TextIOrW   rD  r)   rº   r¼   r½   )FF)rK  r   rø   r¹   rW  r¹   r¼   rw   )r_  r   r¼   r½   )r¼   zcabc.Iterator[int])r   r¹   r¼   r   )8Ú__doc__Ú
__future__r   Úcollections.abcÚabcÚcabcÚ
contextlibr‰   rÔ   rÒ   rÏ   r7   Útypingr0   r   r%  Úior   Úpathlibr   Útypesr   Ú_compatr	   r
   r   r   r   r   r   r   Ú
exceptionsr   Úutilsr   ÚTypeVarr   rð   r    r`   ÚGenericr   rã   rØ   r×   rÑ   r  rY  r`  rÙ   rh  Úcontextmanagerrc  rl  ro  rq  rÅ   rF   rC   Ú<module>r‰     s}  ðñõ #å Û Û Û 	Û Û 
Û Û Ý  Ý Ý Ý å )Ý Ý &Ý Ý  Ý Ý Ý Ý &Ý à‡I‚IˆcƒN€à‡7�7ˆdƒ?Ø€JØ�Ià€JØ€IôC#�!—)‘)˜A‘,ô C#öL
'ðT]Ø!ð]Ø.7ð]Ø@Kð]à	ô]ð@,Ø!ð,Ø.7ð,Ø@Kð,à	ô,ð^ØðØ!3ðØ<Gðà	ô÷mñ mö`DôN
ð ‡<�<�7ÓÛà×Ñóó ðõ,ó^ Ûà×Ñóó ðõ4rF   