§
    Ètºf�  ã                   ó‚  — d 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	Z	ddl
mZ ddlmZ ddlmZmZ dd	lmZ  ee¦  «         e	j        d
d
¬¦  «         G d„ d¦  «        ¦   «         ¦   «         Z ee¦  «         e	j        d
d
¬¦  «         G d„ d¦  «        ¦   «         ¦   «         Z ee¦  «         G d„ d¦  «        ¦   «         Z e	j        d
d
¬¦  «         ee¦  «         G d„ d¦  «        ¦   «         ¦   «         Z e	j        dddd
¬¦  «         ee¦  «         G d„ d¦  «        ¦   «         ¦   «         Z G d„ de¦  «        ZdS )z*
Address objects for network connections.
é    N)ÚOptionalÚUnion)Úwarn)Úimplementer)ÚLiteral)ÚIAddress)Ú_asFilesystemBytesÚ_coerceToFilesystemEncoding)ÚplatformT)ÚhashÚauto_attribsc                   ó°   — e Zd ZU dZ ej        ej                             ddg¦  «        ¬¦  «        Ze	e
d         e
d         f         ed<   eed<   eed<   dS )	ÚIPv4Addressat  
    An L{IPv4Address} represents the address of an IPv4 socket endpoint.

    @ivar type: A string describing the type of transport, either 'TCP' or
        'UDP'.

    @ivar host: A string containing a dotted-quad IPv4 address; for example,
        "127.0.0.1".
    @type host: C{str}

    @ivar port: An integer representing the port number.
    @type port: C{int}
    ÚTCPÚUDP©Ú	validatorÚtypeÚhostÚportN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚattrÚibÚ
validatorsÚin_r   r   r   Ú__annotations__ÚstrÚint© ó    úW/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/internet/address.pyr   r      s‚   € € € € € € ðð ð 3:°$´'Ø”/×%Ò% u¨e nÑ5Ô5ð3ñ 3ô 3€Dˆ%�˜” ¨¤Ð.Ô
/ð ð ñ ð €I€I�IØ
€I€I�I€I€Ir#   r   c                   óÜ   — e Zd ZU dZ ej        ej                             ddg¦  «        ¬¦  «        Ze	e
d         e
d         f         ed<   eed<   eed<   dZeed	<   dZe	eef         ed
<   dS )ÚIPv6Addressaõ  
    An L{IPv6Address} represents the address of an IPv6 socket endpoint.

    @ivar type: A string describing the type of transport, either 'TCP' or
        'UDP'.

    @ivar host: A string containing a colon-separated, hexadecimal formatted
        IPv6 address; for example, "::1".
    @type host: C{str}

    @ivar port: An integer representing the port number.
    @type port: C{int}

    @ivar flowInfo: the IPv6 flow label.  This can be used by QoS routers to
        identify flows of traffic; you may generally safely ignore it.
    @type flowInfo: L{int}

    @ivar scopeID: the IPv6 scope identifier - roughly analagous to what
        interface traffic destined for this address must be transmitted over.
    @type scopeID: L{int} or L{str}
    r   r   r   r   r   r   r   ÚflowInfoÚscopeIDN)r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r'   r(   r"   r#   r$   r&   r&   /   s¬   € € € € € € ðð ð, 3:°$´'Ø”/×%Ò% u¨e nÑ5Ô5ð3ñ 3ô 3€Dˆ%�˜” ¨¤Ð.Ô
/ð ð ñ ð €I€I�IØ
€I€I�IØ€HˆcÐÐÑØ €GˆU�3˜�8Œ_Ð Ð Ñ Ð Ð r#   r&   c                   ó   — e Zd ZdZdS )Ú_ProcessAddresszD
    An L{interfaces.IAddress} provider for process transports.
    N)r   r   r   r   r"   r#   r$   r*   r*   Q   s   € € € € € ðð ð ð r#   r*   c                   ó(   — e Zd ZU dZeed<   eed<   dS )ÚHostnameAddressa  
    A L{HostnameAddress} represents the address of a L{HostnameEndpoint}.

    @ivar hostname: A hostname byte string; for example, b"example.com".
    @type hostname: L{bytes}

    @ivar port: An integer representing the port number.
    @type port: L{int}
    Úhostnamer   N)r   r   r   r   Úbytesr   r!   r"   r#   r$   r,   r,   X   s.   € € € € € € ðð ð €O€O�OØ
€I€I�I€I€Ir#   r,   F)r   ÚreprÚeqr   c                   óÔ   — e Zd ZU dZ ej        ej                             e¦  «        ¬¦  «        Z	e
e         ed<    eej        dd¦  «        �	dedefd„Zndedefd	„Zdefd
„Zd„ ZdS )ÚUNIXAddressz‰
    Object representing a UNIX socket endpoint.

    @ivar name: The filename associated with this socket.
    @type name: C{bytes}
    )Ú	converterÚnameÚsamefileNÚotherÚreturnc                 óP  — t          || j        ¦  «        st          S | j        |j        k    }|sw| j        rp|j        ri	 t          j                             | j        |j        ¦  «        S # t          $ r Y n2t          t          f$ r}t          j        ¦   «         s|‚Y d}~nd}~ww xY w|S )zŒ
            Overriding C{attrs} to ensure the os level samefile
            check is done if the name attributes do not match.
            N)Ú
isinstanceÚ	__class__ÚNotImplementedr4   ÚosÚpathr5   ÚOSErrorÚ	TypeErrorÚ
ValueErrorr   ÚisLinux)Úselfr6   ÚresÚes       r$   Ú__eq__zUNIXAddress.__eq__y   sÚ   € õ
 ˜e T¤^Ñ4Ô4ð &Ý%Ð%Ø”)˜uœzÒ)ˆCØð 	 ˜4œ9ð 	 ¨¬ð 	 ð Ýœ7×+Ò+¨D¬I°u´zÑBÔBÐBøÝð ð ð Ø�DÝ!¥:Ð.ð  ð  ð  õ $Ô+Ñ-Ô-ð  Ø˜ð ð  ð  ð  ð  øøøøð øøøð
 ˆJs   ¾)A( Á(
B#Á4B#ÂBÂB#c                 óZ   — t          || j        ¦  «        r| j        |j        k    S t          S ©N)r9   r:   r4   r;   )rB   r6   s     r$   rE   zUNIXAddress.__eq__�   s+   € Ý˜% ¤Ñ0Ô0ð /Ø”y E¤JÒ.Ð.Ý!Ð!r#   c                 óD   — | j         }|�t          d|¦  «        nd }d|›d�S )NÚ zUNIXAddress(ú))r4   r
   )rB   r4   Úshows      r$   Ú__repr__zUNIXAddress.__repr__”   s4   € ØŒyˆØ8<Ð8HÕ*¨2¨tÑ4Ô4Ð4ÈdˆØ'˜dÐ'Ð'Ð'Ð'r#   c                 óî   — | j         €t          | j        d f¦  «        S 	 t          j        | j         ¦  «        }t          |j        |j        f¦  «        S # t          $ r t          | j         ¦  «        cY S w xY wrG   )r4   r   r:   r<   ÚstatÚst_inoÚst_devr>   )rB   Ús1s     r$   Ú__hash__zUNIXAddress.__hash__™   s{   € ØŒ9ÐÝ˜œ¨Ð.Ñ/Ô/Ð/ð	#Ý”˜œÑ#Ô#ˆBÝ˜œ B¤IÐ.Ñ/Ô/Ð/øÝð 	#ð 	#ð 	#Ý˜œ	‘?”?Ð"Ð"Ð"ð	#øøøs   Ÿ3A ÁA4Á3A4)r   r   r   r   r   r   Ú
convertersÚoptionalr	   r4   r   r.   r   Úgetattrr<   r=   ÚobjectÚboolrE   r    rL   rR   r"   r#   r$   r2   r2   i   sî   € € € € € € ðð ð $˜DœGØ”/×*Ò*Ð+=Ñ>Ô>ðñ ô €Dˆ(�5Œ/ð ð ñ ð €wˆrŒw˜
 DÑ)Ô)Ð5ð	 ð 	¨4ð 	ð 	ð 	ð 	ð 	ð,	" ð 	"¨4ð 	"ð 	"ð 	"ð 	"ð
(˜#ð (ð (ð (ð (ð
#ð #ð #ð #ð #r#   r2   c                   ó"   — e Zd ZdZdedefd„ZdS )Ú_ServerFactoryIPv4Addressz@Backwards compatibility hack. Just like IPv4Address in practice.r6   r7   c                 ó  — t          |t          ¦  «        r)t          dt          d¬¦  «         | j        | j        f|k    S t          |t          ¦  «        r.| j        | j        | j        f}|j        |j        |j        f}||k    S t          S )Nz?IPv4Address.__getitem__ is deprecated.  Use attributes instead.é   )ÚcategoryÚ
stacklevel)	r9   Útupler   ÚDeprecationWarningr   r   r   r   r;   )rB   r6   ÚaÚbs       r$   rE   z _ServerFactoryIPv4Address.__eq__ª   s�   € Ý�e�UÑ#Ô#ð 
	ÝØTÝ+Øðñ ô ð ð
 ”I˜tœyÐ)¨UÒ2Ð2Ý˜�{Ñ+Ô+ð 	Ø”˜DœI t¤yÐ1ˆAØ”˜UœZ¨¬Ð4ˆAØ˜’6ˆMÝÐr#   N)r   r   r   r   rV   rW   rE   r"   r#   r$   rY   rY   §   s<   € € € € € ØJÐJð˜Fð  tð ð ð ð ð ð r#   rY   )r   r<   Útypingr   r   Úwarningsr   Úzope.interfacer   r   Útyping_extensionsr   Útwisted.internet.interfacesr   Útwisted.python.filepathr	   r
   Útwisted.python.runtimer   Úsr   r&   r*   r,   r2   rY   r"   r#   r$   ú<module>rj      s’  ððð ð
 
€	€	€	Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &à €€€Ø %Ð %Ð %Ð %Ð %Ð %à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ +Ð +Ð +Ð +Ð +Ð +ð €ˆXÑÔØ€„ˆT Ð%Ñ%Ô%ðð ð ð ð ñ ô ñ &Ô%ñ Ôðð, €ˆXÑÔØ€„ˆT Ð%Ñ%Ô%ð!ð !ð !ð !ð !ñ !ô !ñ &Ô%ñ Ôð!ð@ €ˆXÑÔðð ð ð ð ñ ô ñ Ôðð €„ˆT Ð%Ñ%Ô%Ø€ˆXÑÔðð ð ð ð ñ ô ñ Ôñ &Ô%ðð €„ˆU˜ 5°tÐ<Ñ<Ô<Ø€ˆXÑÔð5#ð 5#ð 5#ð 5#ð 5#ñ 5#ô 5#ñ Ôñ =Ô<ð5#ðxð ð ð ð  ñ ô ð ð ð r#   