
    tni                     |    d dl mZ 	 d dlZn# e$ r dZY nw xY wd Zd ZdedefdZdeee	f         de	fdZ
g d	ZdS )
    )UnionNc                     t          | t                    r|                     d          S t          | t                    r| S t	          d          Nasciiz1only str (ascii encoding) and bytes are supported)
isinstancestrencodebytes	TypeErrordatas    J/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/pycares/utils.pyascii_bytesr   
   sL    $ ${{7###$ 
G
H
HH    c                     t          | t                    r| S t          | t                    r(	 |                     d          S # t          $ r | cY S w xY wt          d          r   )r   r   r
   decodeUnicodeDecodeErrorr   r   s    r   	maybe_strr      su    $ $ 	;;w'''! 	 	 	KKK	
G
H
HHs   A AAnamereturnc                    |                      d          }g }|D ]}|                                r)|                    |                    d                     ?t	          |          dk    rt          dt	          |                      |                    t          j        |                     d                    |          S )N.r      z;domains can only be less than 253 characters in length not    .)splitisasciiappendr	   lenRuntimeErroridna2008join)r   partsrparts       r   parse_name_idna2008r%      s    JJsOOE
A , ,<<>> 	,HHT[[))****YY__YcRViiYY   HHX_T**++++99Q<<r   c                     t          | t                    rT|                                 r|                     d          S t          t          |           S |                     d          S t          | t                    r| S t          d          )Nr   idnaz only str and bytes are supported)r   r   r   r	   r    r%   r
   r   )r   s    r   
parse_namer(   ,   s    $ #<<>> 	(;;w'''&t,,,{{6"""$ 
6
7
77r   )r   r   r(   )typingr   r'   r    ImportErrorr   r   r   r%   r
   r(   __all__ r   r   <module>r-      s            HHHI I II I Ic c    	8U3:& 	85 	8 	8 	8 	8 5
4
4s    