ó
    F\h·  ã                  ó’   • S SK Jr  S SKrS SKrS SKrS SK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S jjrSSS	 jjrSSS
 jjrg)é    )ÚannotationsNc                 óP  ^• [        [        R                  S5      (       d  [        $ [        [        R                  S5      (       d  [        $ [        R                  R                  5       (       a#  [        R                  R                  5       (       d  [        $ [        R                  S:X  a  [        $ [        R                  R                  S5      =(       d    [        R                  R                  S5      mT(       aO  [        R                  S:X  a  SU4S jj$ [        R                  R                  S5      S;   a  SU4S	 jj$ SU4S
 jj$ [        R                  R                  S5      S;   a  [        $ [        R                  S:X  a  SS j$ [        [        S5      (       a  [        R                  " S5      S:X  a  SS j$ [        [        S5      (       a  [        R                  " S5      S:X  a  SS j$ SSKn U R                  5       u  p[        R                  " U5         [        [        S5      (       a8  [        R                  " SU-  5      S:X  a  SS j[        R                  " U5        $ [        [        R                  " U5        $ ! [        R                  " U5        f = f)z2Decide what method to use for paging through text.ÚisattyÚ
emscriptenÚMANPAGERÚPAGERÚwin32c                ó.   >• [        [        U 5      T5      $ ©N©Útempfile_pagerÚplain©ÚtextÚtitleÚ	use_pagers     €Ú$/usr/lib/python3.13/_pyrepl/pager.pyÚ<lambda>Úget_pager.<locals>.<lambda>   s   ø€ ¬.¼¸t»ÀiÔ*Pó    ÚTERM)ÚdumbÚemacsc                ó0   >• [        [        U 5      TU5      $ r   )Ú
pipe_pagerr   r   s     €r   r   r       s   ø€ ¬*´U¸4³[À)ÈUÔ*Sr   c                ó   >• [        U TU5      $ r   ©r   r   s     €r   r   r   "   s   ø€ ¬*°T¸9ÀeÔ*Lr   c                ó,   • [        [        U 5      S5      $ )Nzmore <r   ©r   r   s     r   r   r   &   s   € ¤n´U¸4³[À(Ô&Kr   Úsystemz(pager) 2>/dev/nullr   c                ó   • [        U SU5      $ )NÚpagerr   r   s     r   r   r   (   s   € ¤j°°wÀÔ&Fr   z(less) 2>/dev/nullc                ó   • [        U SU5      $ )NÚlessr   r   s     r   r   r   *   s   € ¤j°°v¸uÔ&Er   Nz	more "%s"c                ó   • [        U SU5      $ )NÚmorer   r   s     r   r   r   1   s   € ¬*°T¸6À5Ô*Ir   ©Ú )ÚhasattrÚsysÚstdinÚplain_pagerÚstdoutr   ÚplatformÚosÚenvironÚgetr    ÚtempfileÚmkstempÚcloseÚunlinkÚ	tty_pager)r2   ÚfdÚfilenamer   s      @r   Ú	get_pagerr9      s³  ø€ ä”3—9‘9˜h×'Ñ'ÜÐÜ”3—:‘:˜x×(Ñ(ÜÐÜ�9‰9×Ñ×Ñ¤S§Z¡Z×%6Ñ%6×%8Ñ%8ÜÐÜ
‡|�|�|Ó#ÜÐÜ—
‘
—‘˜zÓ*×E¬b¯j©j¯n©n¸WÓ.E€IÞÜ�<‰<˜7Ó"ÞPÐPÜ�Z‰Z�^‰^˜FÓ#Ð'8Ó8ÞSÐSæLÐLÜ	‡z�z‡~�~�fÓÐ!2Ó2ÜÐÜ
‡|�|�wÓÛKÐKÜŒr�8×Ñ¤§¢Ð+@Ó!AÀQÓ!FÛFÐFÜŒr�8×Ñ¤§¢Ð+?Ó!@ÀAÓ!EÛEÐEãØ×%Ñ%Ó'�N€RÜ‡H‚HˆR„LðÜ”2�x× Ñ ¤R§Y¢Y¨{¸XÑ/EÓ%FÈ!Ó%KÛIô 	�	Š	�(Õô ä
�	Š	�(ÕøŒ�	Š	�(Õús   È$6J É1J ÊJ%c                óŒ   • [        [        R                  SS 5      =(       d    SnU R                  US5      R	                  U5      $ )NÚencodingzutf-8Úbackslashreplace)Úgetattrr*   r-   ÚencodeÚdecode)r   r;   s     r   Úescape_stdoutr@   8   s6   € ä”s—z‘z :¨tÓ4×?¸€HØ�;‰;�xÐ!3Ó4×;Ñ;¸HÓEÐEr   c                ó2   • [         R                  " SSU 5      $ )Nz
([?:.%\\])z\\\1©ÚreÚsub)Úss    r   Úescape_lessrF   >   s   € Ü�6Š6�- ¨!Ó,Ð,r   c                ó2   • [         R                  " SSU 5      $ )z%Remove boldface formatting from text.z.r(   rB   )r   s    r   r   r   B   s   € ä�6Š6�%˜˜TÓ"Ð"r   c           	     óè  • [        [        U 5      5      R                  S5      nSn SSKnSSKn[
        R                  R                  5       nUR                  U5      nUR                  U5        SnSS jn  [        [        R                   R#                  SS5      5      n	U	S	::  a  S
n	U	S	-
  =p«[
        R&                  R)                  SR+                  USU 5      S-   5        X*S (       aú  [
        R&                  R)                  S5        [
        R&                  R-                  5         U" 5       nUS;   a   [
        R&                  R)                  S5        O�US;   a.  [
        R&                  R)                  SX*   -   S-   5        U
S	-   n
M§  US;   a  X«-
  U-
  n
U
S:  a  Sn
[
        R&                  R)                  SSR+                  X*X«-    5      -   S-   5        X«-   n
X*S (       a  Mú  U(       a  WR/                  WUR0                  W5        gg! [        [        [        R                  4 a	    SS jn GN½f = f! [$         a    Sn	 GN¥f = f! U(       a  WR/                  WUR0                  W5        f f = f)z%Page through text on a text terminal.Ú
Fr   NTc                 ó@   • [         R                  R                  S5      $ )Né   )r*   r+   Úread© r   r   ÚgetcharÚtty_pager.<locals>.getcharS   s   € Ü—9‘9—>‘> !Ó$Ð$r   c                 óJ   • [         R                  R                  5       S S S S $ )NéÿÿÿÿrK   )r*   r+   ÚreadlinerM   r   r   rN   rO   W   s#   € Ü—9‘9×%Ñ%Ó'¨¨Ð,¨R¨aÐ0Ð0r   ÚLINESrK   é   z
-- more --)ÚqÚQz          )ÚrI   )ÚbÚBÚ)ÚreturnÚstr)r   r@   ÚsplitÚttyÚtermiosr*   r+   ÚfilenoÚ	tcgetattrÚ	setcbreakÚImportErrorÚAttributeErrorÚioÚUnsupportedOperationÚintr/   r0   r1   Ú
ValueErrorr-   ÚwriteÚjoinÚflushÚ	tcsetattrÚ	TCSAFLUSH)r   r   ÚlinesÚhas_ttyr^   r_   r7   ÚoldrN   ÚhÚrÚincÚcs                r   r6   r6   G   s   € ä”- Ó%Ó&×,Ñ,¨TÓ2€EØ€Gð1ÛÛÜ�Y‰Y×ÑÓˆØ×Ñ Ó#ˆØ�‰�bÔØˆô	%ð:ð	Ü”B—J‘J—N‘N 7¨AÓ.Ó/ˆAð �‹6ØˆAØ�a‘%ˆˆÜ�
‰
×Ñ˜Ÿ™ 5¨¨# ;Ó/°$Ñ6Ô7Ø�BŽiÜ�J‰J×Ñ˜\Ô*Ü�J‰J×ÑÔÙ“	ˆAà�J‹Ü—
‘
× Ñ Ð!1Ô2ØØ�lÓ"Ü—
‘
× Ñ Ð!1°E±HÑ!<¸tÑ!CÔDØ˜‘E�ÙØÐ&Ó&Ø‘G˜c‘M�Ø�q“5˜a˜!Ü�J‰J×Ñ˜T D§I¡I¨e°a±e¨nÓ$=Ñ=ÀÑDÔEØ‘ˆAð! �B�iˆiö& Ø×Ñ˜b '×"3Ñ"3°SÕ9ð øôA œ¬×)@Ñ)@ÐAó 1÷	1ð1ûô ó 	Ø‹Að	ûö2 Ø×Ñ˜b '×"3Ñ"3°SÕ9ð ús=   §AH Á8)H7 Â!EI
 È$H4È3H4È7IÉI
 ÉIÉI
 É
'I1c                óf   • [         R                  R                  [        [	        U 5      5      5        g)z>Simply print unformatted text.  This is the ultimate fallback.N)r*   r-   ri   r   r@   r   s     r   r,   r,   z   s   € ä‡J�J×Ñ”Uœ=¨Ó.Ó/Õ0r   c                ó   • SSK n[        R                  R                  5       nU(       a  US-  n[	        U5      nSU 3S-   nSR                  U5      US'   UR                  USUR                  SUS	9nUR                  c   e UR                   n UR                  U 5        SSS5          UR                  5         g! [         a     N'f = f! , (       d  f       N1= f! [         a     N@f = f! [         a     Of = fMU  )
z3Page through text by feeding it to another program.r   NÚ zU?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)z-RmPm{0}$PM{0}$ÚLESSTr<   )Úshellr+   ÚerrorsÚenv)Ú
subprocessr/   r0   ÚcopyrF   ÚformatÚPopenÚPIPEr+   ri   ÚKeyboardInterruptÚOSErrorÚwait)	r   Úcmdr   r|   r{   Ú	esc_titleÚprompt_stringÚprocÚpipes	            r   r   r      s  € ãÜ
�*‰*�/‰/Ó
€CÞØ�‰ˆÜ˜EÓ"€Ià
ˆIˆ;ˆð	+ñ	+ð ð $×*Ñ*¨=Ó9€Cˆ�KØ×Ñ˜C t°:·?±?Ø#5¸3ð ð @€Dà�:‰:Ñ!Ð!Ð!ð	Ø�ZŠZ˜4ðØ—
‘
˜4Ô ÷ ð ð	Ø�I‰IŒKØøô %ó ñ ðú÷ �Zûô ó Ùðûô !ó 	ñ ð	úñ	 s`   ÂC ÂCÂB=Â"C Â,C. Â=
C
ÃCÃ	C
Ã
CÃ
CÃC ÃC Ã
C+Ã*C+Ã.
C;Ã:C;c           	     ó   • SSK nUR                  5        n[        R                  R	                  US5      n[        USS[        R                  S:X  a  [        R                  " S5      OSS9 nUR                  U 5        SSS5        [        R                  " US-   U-   S	-   5        SSS5        g! , (       d  f       N6= f! , (       d  f       g= f)
z<Page through text by invoking a program on a temporary file.r   Nz	pydoc.outÚwr<   r	   )rz   r;   z "Ú")r2   ÚTemporaryDirectoryr/   Úpathrj   Úopenr*   r.   Údevice_encodingri   r    )r   r„   r   r2   Útempdirr8   Úfiles          r   r   r   ¥   s£   € ãØ	×	$Ñ	$Ô	&¨'Ü—7‘7—<‘< ¨Ó5ˆÜ�(˜CÐ(:ä—,‘, 'Ó)ô ×-Ò-¨aÔ0Ø/3òð Ø�J‰J�tÔ÷	ô
 	�	Š	�#˜‘*˜xÑ'¨#Ñ-Ô.÷ 
'Ð	&÷õ ú÷ 
'Õ	&ús$   •AB?Á,B.Á>'B?Â.
B<	Â8B?Â?
C)r[   ÚPager)r   r\   r[   r\   )rE   r\   r[   r\   r'   )r   r\   r   r\   r[   ÚNone)r   r\   r„   r\   r   r\   r[   r“   )Ú
__future__r   re   r/   rC   r*   ÚtypingÚProtocolr’   r9   r@   rF   r   r6   r,   r   r   rM   r   r   Ú<module>r—      sE   ðÝ "ã 	Û 	Û 	Û 
ð 	ô$ôNFô-ô#ö
0:öf1ö
#÷L
/r   