§
    ò³\dÁ	  ã                   ót  — d Z ddlZddlZddlmZ ddlmZmZ  G d„ dej        ¦  «        Z	 G d„ dej        ¦  «        Z
 eej        ¦  «         G d	„ d
ej        ¦  «        ¦   «         Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Zg d¢ZdS )zzImplement standard (and unused) TCP protocols.

These protocols are either provided by inetd, or are not provided at all.
é    N)Úimplementer)Ú
interfacesÚprotocolc                   ó   — e Zd ZdZd„ ZdS )ÚEchozC
    As soon as any data is received, write it back (RFC 862).
    c                 ó:   — | j                              |¦  «         d S ©N)Ú	transportÚwrite©ÚselfÚdatas     ú6lib/python3.11/site-packages/twisted/protocols/wire.pyÚdataReceivedzEcho.dataReceived   s   € ØŒ×Ò˜TÑ"Ô"Ð"Ð"Ð"ó    N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   © r   r   r   r      s-   € € € € € ðð ð#ð #ð #ð #ð #r   r   c                   ó   — e Zd ZdZd„ ZdS )ÚDiscardz.
    Discard any received data (RFC 863).
    c                 ó   — d S r	   r   r   s     r   r   zDiscard.dataReceived    s   € àˆr   Nr   r   r   r   r   r      s-   € € € € € ðð ðð ð ð ð r   r   c                   ó.   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ ZdS )ÚChargenz-
    Generate repeating noise (RFC 864).
    sG   @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&?c                 ó<   — | j                              | d¦  «         d S )Nr   )r
   ÚregisterProducer©r   s    r   ÚconnectionMadezChargen.connectionMade-   s    € ØŒ×'Ò'¨¨aÑ0Ô0Ð0Ð0Ð0r   c                 óD   — | j                              | j        ¦  «         d S r	   )r
   r   Únoiser   s    r   ÚresumeProducingzChargen.resumeProducing0   s    € ØŒ×Ò˜TœZÑ(Ô(Ð(Ð(Ð(r   c                 ó   — d S r	   r   r   s    r   ÚpauseProducingzChargen.pauseProducing3   ó   € Øˆr   c                 ó   — d S r	   r   r   s    r   ÚstopProducingzChargen.stopProducing6   r&   r   N)	r   r   r   r   r"   r    r#   r%   r(   r   r   r   r   r   %   sb   € € € € € ðð ð X€Eð1ð 1ð 1ð)ð )ð )ðð ð ðð ð ð ð r   r   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚQOTDz.
    Return a quote of the day (RFC 865).
    c                 ó   — | j                              |                      ¦   «         ¦  «         | j                              ¦   «          d S r	   )r
   r   ÚgetQuoteÚloseConnectionr   s    r   r    zQOTD.connectionMade?   ó:   € ØŒ×Ò˜TŸ]š]™_œ_Ñ-Ô-Ð-ØŒ×%Ò%Ñ'Ô'Ð'Ð'Ð'r   c                 ó   — dS )zB
        Return a quote. May be overrriden in subclasses.
        s'   An apple a day keeps the doctor away.
r   r   s    r   r,   zQOTD.getQuoteC   s
   € ð <Ð;r   N)r   r   r   r   r    r,   r   r   r   r*   r*   :   s<   € € € € € ðð ð(ð (ð (ð<ð <ð <ð <ð <r   r*   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚWhoz/
    Return list of active users (RFC 866)
    c                 ó   — | j                              |                      ¦   «         ¦  «         | j                              ¦   «          d S r	   )r
   r   ÚgetUsersr-   r   s    r   r    zWho.connectionMadeO   r.   r   c                 ó   — dS )z>
        Return active users. Override in subclasses.
        s   root
r   r   s    r   r3   zWho.getUsersS   s	   € ð ˆ{r   N)r   r   r   r   r    r3   r   r   r   r1   r1   J   s<   € € € € € ðð ð(ð (ð (ðð ð ð ð r   r1   c                   ó   — e Zd ZdZd„ ZdS )ÚDaytimez8
    Send back the daytime in ASCII form (RFC 867).
    c                 óÜ   — | j                              t          j        t          j        t          j        ¦   «         ¦  «        ¦  «        dz   ¦  «         | j                              ¦   «          d S )Ns   
)r
   r   ÚtimeÚasctimeÚgmtimer-   r   s    r   r    zDaytime.connectionMade_   sQ   € ØŒ×ÒTœ\­$¬+µd´i±k´kÑ*BÔ*BÑCÔCÀgÑMÑNÔNÐNØŒ×%Ò%Ñ'Ô'Ð'Ð'Ð'r   N©r   r   r   r   r    r   r   r   r6   r6   Z   s-   € € € € € ðð ð(ð (ð (ð (ð (r   r6   c                   ó   — e Zd ZdZd„ ZdS )ÚTimez@
    Send back the time in machine readable form (RFC 868).
    c                 óÒ   — t          j        dt          t          j        ¦   «         ¦  «        ¦  «        }| j                             |¦  «         | j                             ¦   «          d S )Nz!i)ÚstructÚpackÚintr8   r
   r   r-   )r   Úresults     r   r    zTime.connectionMadei   sQ   € å”˜T¥3¥t¤y¡{¤{Ñ#3Ô#3Ñ4Ô4ˆØŒ×Ò˜VÑ$Ô$Ð$ØŒ×%Ò%Ñ'Ô'Ð'Ð'Ð'r   Nr;   r   r   r   r=   r=   d   s-   € € € € € ðð ð(ð (ð (ð (ð (r   r=   )r   r   r   r*   r1   r6   r=   )r   r?   r8   Úzope.interfacer   Útwisted.internetr   r   ÚProtocolr   r   Ú	IProducerr   r*   r1   r6   r=   Ú__all__r   r   r   ú<module>rH      s´  ððð ð €€€Ø €€€à &Ð &Ð &Ð &Ð &Ð &à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1ð#ð #ð #ð #ð #ˆ8Ôñ #ô #ð #ðð ð ð ð ˆhÔñ ô ð ð €ˆZÔ!Ñ"Ô"ðð ð ð ð ˆhÔñ ô ñ #Ô"ðð(<ð <ð <ð <ð <ˆ8Ôñ <ô <ð <ð ð ð ð ð ˆ(Ô
ñ ô ð ð (ð (ð (ð (ð (ˆhÔñ (ô (ð (ð	(ð 	(ð 	(ð 	(ð 	(ˆ8Ôñ 	(ô 	(ð 	(ð KÐ
JÐ
J€€€r   