§
    Ìtºf  ã                   ó\  — d dl mZ d dlmZ ddgZej                             e¦  «         ej                             e¦  «         ej	                             e¦  «         ej
                             e¦  «         ej                             e¦  «         dZed
d„¦   «         Zed	„ ¦   «         ZdS )é    )Úpublic)ÚparseÚrsÚrss)Ú
create_urlÚ	parse_urlNFc                 óR  — t          |¦  «        t          k    sJ ‚| dk    rd|z  }ne|�,t          |¦  «        t          k    r|t          dd¦  «        v sJ ‚|�d| |fz  }n-|rd                     | ¦  «        }nd                     | ¦  «        }|rd	}nd
}d                     ||¦  «        S )aŠ  
    Create a RawSocket URL from components.

    :param hostname: RawSocket server hostname (for TCP/IP sockets) or
        filesystem path (for Unix domain sockets).
    :type hostname: str

    :param port: For TCP/IP sockets, RawSocket service port or ``None`` (to select default
        ports ``80`` or ``443`` depending on ``isSecure``. When ``hostname=="unix"``,
        this defines the path to the Unix domain socket instead of a TCP/IP network socket.
    :type port: int or str

    :param isSecure: Set ``True`` for secure RawSocket (``rss`` scheme).
    :type isSecure: bool

    :returns: Constructed RawSocket URL.
    :rtype: str
    Úunixzunix:%sNr   éÿÿ  z%s:%dz{}:443z{}:80r   r   z{}://{})ÚtypeÚboolÚintÚrangeÚformat)ÚhostnameÚportÚisSecureÚnetlocÚschemes        úV/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/autobahn/rawsocket/util.pyr   r   3   sÌ   € õ* �‰>Œ>�TÒ!Ð!Ð!Ð!à�6ÒÐà˜TÑ!ˆˆàˆ|¥ T¡
¤
­cÒ 1Ð 1°d½eÀAÀu¹o¼oÐ6MÐ6MÐ6MÐ6MàÐØ ¨$Ð/Ñ/ˆFˆFàð 2Ø!Ÿš¨Ñ2Ô2��à Ÿš¨Ñ1Ô1�àð Øˆˆàˆà×Ò˜F FÑ+Ô+Ð+ó    c                 ó¢  — t          j         | ¦  «        }|j        dvr't          d                     |j        ¦  «        ¦  «        ‚|j        r|j        dk    rt          d¦  «        ‚|j        �2|j        dk    r't          d                     |j        ¦  «        ¦  «        ‚|j        �2|j        dk    r't          d                     |j        ¦  «        ¦  «        ‚|j        dk    r=|j        |j        z   }| 	                    d	¦  «        d
         }|j        dk    |j        |fS |j        �2|j        dk    r't          d                     |j        ¦  «        ¦  «        ‚|j
        �|j
        dk    r|j        dk    rd}nd}nt          |j
        ¦  «        }|d
k     s|dk    r"t          d                     |¦  «        ¦  «        ‚|j        dk    |j        |fS )aï  
    Parses as RawSocket URL into it's components and returns a tuple:

     - ``isSecure`` is a flag which is ``True`` for ``rss`` URLs.
     - ``host`` is the hostname or IP from the URL.

    and for TCP/IP sockets:

     - ``tcp_port`` is the port from the URL or standard port derived from
       scheme (``rs`` => ``80``, ``rss`` => ``443``).

    or for Unix domain sockets:

     - ``uds_path`` is the path on the local host filesystem.

    :param url: A valid RawSocket URL, i.e. ``rs://localhost:9000`` for TCP/IP sockets or
        ``rs://unix:/tmp/file.sock`` for Unix domain sockets (UDS).
    :type url: str

    :returns: A 3-tuple ``(isSecure, host, tcp_port)`` (TCP/IP) or ``(isSecure, host, uds_path)`` (UDS).
    :rtype: tuple
    )r   r   z@invalid RawSocket URL: protocol scheme '{}' is not for RawSocketÚ z'invalid RawSocket URL: missing hostnameNz+invalid RawSocket URL: non-empty query '{}'z.invalid RawSocket URL: non-empty fragment '{}'r
   ú:é   r   z*invalid RawSocket URL: non-empty path '{}'r   éP   i»  r   zinvalid port {})Úurlparser   Ú	Exceptionr   r   ÚqueryÚfragmentr   ÚpathÚsplitr   r   )ÚurlÚparsedÚfpÚuds_pathÚtcp_ports        r   r   r   `   sÔ  € õ0 Ô˜sÑ#Ô#€Fà„}˜MÐ)Ð)ÝÐZ×aÒaÐbhÔboÑpÔpÑqÔqÐqàŒ?ð C˜fœo°Ò3Ð3ÝÐAÑBÔBÐBà„|Ð F¤L°BÒ$6Ð$6ÝÐE×LÒLÈVÌ\ÑZÔZÑ[Ô[Ð[à„Ð" v¤¸"Ò'<Ð'<ÝÐH×OÒOÐPVÔP_Ñ`Ô`ÑaÔaÐaà„˜&Ò Ð ð Œ]˜Vœ[Ñ(ˆØ—8’8˜C‘=”= Ô#ˆð
 Œ} Ò% v¤¸Ð@Ð@ð
 Œ;Ð" v¤{°bÒ'8Ð'8ÝÐH×OÒOÐPVÔP[Ñ\Ô\Ñ]Ô]Ð]àŒ;Ð &¤+°Ò"3Ð"3ØŒ} Ò$Ð$Ø��à��å˜6œ;Ñ'Ô'ˆHà�aŠ<ˆ<˜8 eÒ+Ð+ÝÐ-×4Ò4°XÑ>Ô>Ñ?Ô?Ð?àŒ} Ò% v¤¸Ð@Ð@r   )NF)Úautobahn.utilr   Úurllibr   r   Ú	wsschemesÚuses_relativeÚextendÚuses_netlocÚuses_paramsÚ
uses_queryÚuses_fragmentÚ__all__r   r   © r   r   ú<module>r3      s   ðð8 !Ð  Ð  Ð  Ð  Ð  ð %Ð $Ð $Ð $Ð $Ð $à�5ˆM€	Ø Ô × Ò ˜iÑ (Ô (Ð (Ø Ô × Ò ˜IÑ &Ô &Ð &Ø Ô × Ò ˜IÑ &Ô &Ð &Ø Ô × Ò ˜9Ñ %Ô %Ð %Ø Ô × Ò ˜iÑ (Ô (Ð (ð€ð ð),ð ),ð ),ñ „ð),ðX ðBAð BAñ „ðBAð BAð BAr   