
     h5                     ^    d dl mZmZmZmZ d dlZd dlZddlmZ ddl	m
Z
mZmZmZ d Zd ZdS )    )unicode_literalsdivisionabsolute_importprint_functionN   )unwrap)byte_clsbytes_to_liststr_cls	type_namec           
      (   | t          t          j        t          j        g          vrZt	          t          dt          t          j                  t          t          j                  t          |                               t          |t                    s*t          t          dt          |                              | t          j        k    rdnd}t          |          |k    r+t	          t          d|t          |                              | t          j        k    rdt          t          |                    z  S t          j        d|          }i }d}d	}t!          |d
z             D ]2\  }}|dk    r#| ||z
  }	|	|vr|||	<   t#          ||	          }d	}.||}3d |D             }
|dk     rd                    |
          S ||         }||z   }d                    |
d	|                   dz   d                    |
|d	                   z   S )a  
    Windows compatibility shim for socket.inet_ntop().

    :param address_family:
        socket.AF_INET for IPv4 or socket.AF_INET6 for IPv6

    :param packed_ip:
        A byte string of the network form of an IP address

    :return:
        A unicode string of the IP address
    p
            address_family must be socket.AF_INET (%s) or socket.AF_INET6 (%s),
            not %s
            zA
            packed_ip must be a byte string, not %s
                  zA
            packed_ip must be %d bytes long - is %d
            z%d.%d.%d.%d	   !HHHHHHHHr   N)c                 <    g | ]}t          |          d d         S )   N)hex).0os     L/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/asn1crypto/_inet.py
<listcomp>zinet_ntop.<locals>.<listcomp>I   s&    (((ASVVABBZ(((    r   :::)setsocketAF_INETAF_INET6
ValueErrorr   repr
isinstancer	   	TypeErrorr   lentupler
   structunpack	enumeratemaxjoin)address_family	packed_iprequired_lenoctetsruns_of_zerolongest_run
zero_indexioctetlengthhexed
zero_startzero_ends                r   	inet_ntopr9      s8    S&.&/!BCCCC   !!  
 
   	 i**  i  	
 
   	 '&.8811bL
9~~%% 	NN
 
   	 ''u]9%=%=>>>>]<33FLKJfun-- 	 	5A::%Z--+5L(!+v66!
J(((((EQxxk*JK'H88E+:+&''$.%		:J1K1KKKr   c           
      Z   | t          t          j        t          j        g          vrZt	          t          dt          t          j                  t          t          j                  t          |                               t          |t                    s*t          t          dt          |                              | t          j        k    r|                    d          }t          |          dk    }|s;g }|D ]6}t          |          }|dk    s|dk     rd} n|                    |           7|r*t	          t          dt          |                              t          j        d	g|R  S d
}|                    d          }|dk    rd}n|dk    r)|                    d          }t          |          dk    }np|                    d          \  }}|                    d          }	|                    d          }
dt          |	          z
  t          |
          z
  }|	dg|z  z   |
z   }|sNg }|D ]7}t          |d          }|dk    s|dk     rd} n|                    |           8t          j        dg|R  S t	          t          dt          |                              )a  
    Windows compatibility shim for socket.inet_ntop().

    :param address_family:
        socket.AF_INET for IPv4 or socket.AF_INET6 for IPv6

    :param ip_string:
        A unicode string of an IP address

    :return:
        A byte string of the network form of the IP address
    r   zD
            ip_string must be a unicode string, not %s
            .r      r   Tz
                ip_string must be a dotted string with four integers in the
                range of 0 to 255, got %s
                s   !BBBBFr   r   r      0r   i  r   z?
        ip_string must be a valid ipv6 string, got %s
        )r   r   r   r    r!   r   r"   r#   r   r$   r   splitr%   intappendr'   packcount)r,   	ip_stringr/   errorintsr   omittedbeginendbegin_octets
end_octetsmissings               r   	inet_ptonrM   T   s    S&.&/!BCCCC   !!  
 
   	 i))  i  	
 
   	 ''%%Fq  	D  FFs77a!ee EEA 	V Y     {8+d++++Eood##G{{	A%%Fq __T**
s{{3''YYs^^
c,'''#j//9#1J> 	0 	 	AAr

A5yyAEEKKNNNN{</$////
V	 	Y	    r   )
__future__r   r   r   r   r   r'   _errorsr   _typesr	   r
   r   r   r9   rM    r   r   <module>rR      s    R R R R R R R R R R R R         ? ? ? ? ? ? ? ? ? ? ? ?FL FL FLRV V V V Vr   