
    =Og                     0   	 d dl Z d dl T d dlZd dlZd dlZd dlZd dlmZmZ 	 d dlZn# e	$ r dZY nw xY w e
edd          Z e
edd          Z e
edd          Zg d	Ze                     ej        e                       ej        d
ed             ej        ded             ej        ded             ej        ded            dZdZd Zej                                                            d          ri Zded<   ded<   ded<   ded<   ded<   d ed!<   d"ed#<   d$ed%<   d&ed'<   d(ed)<   d*ed+<   d,ed-<   d.ed/<   d0ed1<   d2ed3<   d4ed5<   d6ed7<   d8ed9<   d:ed;<   d<ed=<   d>ed?<   d@edA<   dBedC<   dDedE<   dFedG<   dHedI<   dJedK<   dLedM<   dNedO<   dPedQ<   dRedS<   dTedU<   dVedW<   dXedY<   dZed[<   d\ed]<   d^ed_<   d`eda<   dbedc<   ddede<   dfedg<   dhedi<   djedk<   dledm<   dnedo<   dpedq<   dreds<   dtedu<   dvedw<   dxedy<   dzed{<   d|ed}<   d~ed<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   e                    dҦ            G dӄ de          Z G dՄ de j                  ZddׄZ ee j        dئ          rd dl Z ddلZ!e                    dڦ            ee j        dۦ          rd dl Z dd܄Z"e                    dݦ            ee j        dަ          rd߄ Z#e                    d           e$e%d fdZ& ee d          rde%d fdZ'ne&Z'e                    d           de'_(        eehZ) G d dej*                  Z+ddZ, e-            Z.e.dfdddZ/d Z0e$dddddZ1ddZ2dS )    N)*)IntEnumIntFlagEBADF	   EAGAIN   EWOULDBLOCK)fromfdgetfqdncreate_connectioncreate_serverhas_dualstack_ipv6AddressFamily
SocketKindr   c                 T    |                                  o|                     d          S )NAF_isupper
startswithCs    /usr/lib64/python3.11/socket.py<lambda>r   N       !))++5!,,u"5"5     r   c                 T    |                                  o|                     d          S )NSOCK_r   r   s    r   r   r   S   s    !))++7!,,w"7"7 r   MsgFlagc                 T    |                                  o|                     d          S )NMSG_r   r   s    r   r   r   X   s    !))++6!,,v"6"6 r   AddressInfoc                 T    |                                  o|                     d          S )NAI_r   r   s    r   r   r   ]   r   r   z	127.0.0.1z::1c                 @    	 	  ||           S # t           $ r | cY S w xY wN)
ValueError)value
enum_klasss     r   _intenum_converterr*   c   s@    z%      s   
 winz)Specified event object handle is invalid.   zInsufficient memory available.   z#One or more parameters are invalid.W   zOverlapped operation aborted.i  z2Overlapped I/O event object not in signaled state.i  z)Overlapped operation will complete later.i  zThe operation was interrupted.i'  zA bad file handle was passed.i'  zPermission denied.i'  z!A fault occurred on the network??i'  z#An invalid operation was attempted.i&'  zToo many open files.i('  z!The socket operation would block.i3'  z,A blocking operation is already in progress.i4'  zOperation already in progress.i5'  zSocket operation on nonsocket.i6'  zDestination address required.i7'  zMessage too long.i8'  zProtocol wrong type for socket.i9'  zBad protocol option.i:'  zProtocol not supported.i;'  zSocket type not supported.i<'  zOperation not supported.i='  zProtocol family not supported.i>'  z0Address family not supported by protocol family.i?'  zThe network address is in use.i@'  z Cannot assign requested address.iA'  zNetwork is down.iB'  zNetwork is unreachable.iC'  z$Network dropped connection on reset.iD'  z!Software caused connection abort.iE'  zThe connection has been reset.iF'  zNo buffer space available.iG'  zSocket is already connected.iH'  zSocket is not connected.iI'  zThe network has been shut down.iJ'  zToo many references.iK'  zThe operation timed out.iL'  zConnection refused.iM'  zCannot translate name.iN'  zThe name is too long.iO'  zThe host is down.iP'  zThe host is unreachable.iQ'  zDirectory not empty.iR'  zToo many processes.iS'  zUser quota exceeded.iT'  zDisk quota exceeded.iU'  zStale file handle reference.iV'  zItem is remote.iW'  z!Network subsystem is unavailable.ik'  z!Winsock.dll version out of range.il'  z(Successful WSAStartup not yet performed.im'  zGraceful shutdown in progress.iu'  z*No more results from WSALookupServiceNext.iv'  zCall has been canceled.iw'  z Procedure call table is invalid.ix'  zService provider is invalid.iy'  z&Service provider failed to initialize.iz'  zSystem call failure.i{'  zService not found.i|'  zClass type not found.i}'  i~'  zCall was canceled.i'  zDatabase query was refused.i'  zHost not found.i*  z Nonauthoritative host not found.i*  zThis is a nonrecoverable error.i*  z*Valid name, no data record requested type.i*  zQoS receivers.i*  zQoS senders.i*  zNo QoS senders.i*  zQoS no receivers.i +  zQoS request confirmed.i+  zQoS admission error.i+  zQoS policy failure.i+  zQoS bad style.i+  zQoS bad object.i+  zQoS traffic control error.i+  zQoS generic error.i+  zQoS service type error.i+  zQoS flowspec error.i	+  zInvalid QoS provider buffer.i
+  zInvalid QoS filter style.i+  i+  zIncorrect QoS filter count.i+  zInvalid QoS object length.i+  zIncorrect QoS flow count.i+  zUnrecognized QoS object.i+  zInvalid QoS policy object.i+  zInvalid QoS flow descriptor.i+  z'Invalid QoS provider-specific flowspec.i+  z)Invalid QoS provider-specific filterspec.i+  z&Invalid QoS shape discard mode object.i+  z Invalid QoS shaping rate object.i+  z!Reserved policy QoS element type.i+  errorTabc                       e Zd ZdS )_GiveupOnSendfileN)__name__
__module____qualname__ r   r   r1   r1      s          r   r1   c                   F    e Zd Z	 g dZd"dZd Zd Zd Zd Zd	 Z	d
 Z
d#dddddZ eed          rd$dZnd$dZd$dZd Zd$dZd Zej        fdZd Z fdZe fd            Ze fd            Zej        dk    rd Zd Znd Zd Zd e_        d!e_         xZS )%socket)__weakref___io_refs_closedNc                     |"|dk    rt           }|dk    rt          }|dk    rd}t          j                            | ||||           d| _        d| _        d S )Nr;   r   F)AF_INETSOCK_STREAM_socketr7   __init__r9   r:   )selffamilytypeprotofilenos        r   r@   zsocket.__init__   sc    
 >|| rzz"{{fdE6BBBr   c                     | S r&   r5   rA   s    r   	__enter__zsocket.__enter__   s    r   c                 @    | j         s|                                  d S d S r&   )r:   close)rA   argss     r   __exit__zsocket.__exit__   s'    | 	JJLLLLL	 	r   c                    	 t          | dd          }d| j        j        | j        j        |rdnd|                                 | j        | j        | j        fz  }|s	 |                                 }|r|dt          |          z  z  }n# t          t          f$ r Y nw xY w	 |                                 }|r|dt          |          z  z  }n# t          t          f$ r Y nw xY w|dz  }|S )	Nr:   Fz,<%s.%s%s fd=%i, family=%s, type=%s, proto=%iz	 [closed] z
, laddr=%sz
, raddr=%s>)getattr	__class__r3   r4   rE   rB   rC   rD   getsocknamestrerrorAttributeErrorgetpeername)rA   closedsladdrraddrs        r   __repr__zsocket.__repr__   s)   	 y%00:~(~*$,{{"{{}}{yz  	((** 3E

22A>*   ((** 3E

22A>*   	Ss$   +B BB+C CCc                 <    t          d| j        j        d          )Nzcannot pickle z object)	TypeErrorrQ   r2   rG   s    r   __getstate__zsocket.__getstate__  s!    K)@KKKLLLr   c                     	 t          |                                           }|                     | j        | j        | j        |          }|                    |                                            |S )NrE   )duprE   rQ   rB   rC   rD   
settimeout
gettimeout)rA   fdsocks      r   ra   z
socket.dup  s^    	
 ~~dk49dj~LL))***r   c                     	 |                                  \  }}t          | j        | j        | j        |          }t                      )|                                 r|                    d           ||fS )Nr`   T)_acceptr7   rB   rC   rD   getdefaulttimeoutrc   setblocking)rA   rd   addrre   s       r   acceptzsocket.accept  sq    	 <<>>Ddk49djDDD &4??+<+<&T"""Tzr   r)encodingerrorsnewlinec                0   	 t          |          h dk    st          d|d          d|v }d|v p| }d|v }d}	|r|	dz  }	|r|	dz  }	t          | |	          }
| xj        dz  c_        |d	}|d
k     rt          j        }|d
k    r|st          d          |
S |r|rt	          j        |
|
|          }n-|rt	          j        |
|          }nt	          j        |
|          }|r|S t	          j	        |          }t	          j
        ||||          }||_        |S )N>   brl   wzinvalid mode z (only r, w, b allowed)rr   rl   rq   rN      r;   r   z!unbuffered streams must be binary)setr'   SocketIOr9   ioDEFAULT_BUFFER_SIZEBufferedRWPairBufferedReaderBufferedWritertext_encodingTextIOWrappermode)rA   r}   	bufferingrm   rn   ro   writingreadingbinaryrawmoderawbuffertexts                r   makefilezsocket.makefile/  ss   	 4yyOOO++*OPPP++,W 	sNG 	sNGtW%%Iq==.I>> F !DEEEJ 	7w 	7&sC;;FF 	7&sI66FF &sI66F 	M#H--&'BB	r   sendfiler   c                    |                      |||           |                                 }	 |                                }n-# t          t          j        f$ r}t          |          d }~ww xY w	 t          j        |          j        }n!# t          $ r}t          |          d }~ww xY w|sdS t          |p|d          }|                                 }	|	dk    rt          d          t          t          d          rt          j                    }
nt          j                    }
|
                    |t          j                   d}|
j        }t          j        }	 	 |	r ||	          st+          d          |rt          ||z
  |          }|dk    rnc	  |||||          }|dk    rnM||z  }||z  }nA# t,          $ r |	s
 |             Y rt          $ r}|dk    rt          |          |d d }~ww xY w||dk    r&t          |d          r|                    |           S S S # |dk    r&t          |d          r|                    |           w w w xY w)Nr   i   @&non-blocking sockets are not supportedPollSelectorTz	timed outseek)_check_sendfile_paramsrE   rU   rv   UnsupportedOperationr1   osfstatst_sizeOSErrorminrc   r'   hasattr	selectorsr   SelectSelectorregisterEVENT_WRITEselectr   TimeoutErrorBlockingIOErrorr   )rA   fileoffsetcountsocknorE   errfsize	blocksizetimeoutselector
total_sentselector_selectos_sendfilesents                  r   _sendfile_use_sendfilezsocket._sendfile_use_sendfile\  s   ''fe<<<[[]]F-"B$;< - - -',,,--((0 - - -',,,- qENUG44Ioo''G!|| !IJJJ y.11 6$133$355fi&;<<<J&oO+K &+ 8w'?'? 8*;777 "$'
(:I$F$F	$>>!+*{6669MM   199!$"d*

% + ! ! !& . ,O--- " , , ,%??
 #4C"8"88!t+,+8 ">>gdF&;&;>IIf%%%% ">:>>gdF&;&;>IIf%%%% ">sk   A A,A''A,0B
 

B(B##B(9H' F6 $H' 6G4H' 	G4G//G44H' '/Ic                      t          d          )Nz,os.sendfile() not available on this platform)r1   rA   r   r   r   s       r   r   zsocket._sendfile_use_sendfile  s    #>@ @ @r   c                    |                      |||           |                                 dk    rt          d          |r|                    |           |rt	          |d          nd}d}|j        }| j        }	 	 |rt	          ||z
  |          }|dk    rn^t           ||                    }|snC	 	  ||          }	||	z  }|	t          |          k     r||	d          }nn# t          $ r Y =w xY wAz||dk    r)t          |d          r|                    ||z              S S S # |dk    r)t          |d          r|                    ||z              w w w xY w)Nr   r   i    Tr   )r   rc   r'   r   r   readsend
memoryviewlenr   r   )
rA   r   r   r   r   r   	file_read	sock_senddatar   s
             r   _sendfile_use_sendzsocket._sendfile_use_send  s   ##D&%888??!!EFFF 	IIf(-7Ct$$$4	
I	I		/"  #EJ$6	 B BI A~~!))I"6"677 
"	"(y #d*
#d))++#';DD! + ! ! ! !
""& A~~'$"7"7~		&:-.... ~zA~~'$"7"7~		&:-.... ~s0   ;9D( 5C$  $D( $
C1.D( 0C11D( (2Ec                 L   dt          |dd          vrt          d          | j        t          z  st          d          |_t	          |t
                    s"t          d                    |                    |dk    r$t          d                    |                    d S d S )Nrq   r}   z$file should be opened in binary modez+only SOCK_STREAM type sockets are supportedz+count must be a positive integer (got {!r})r   )rP   r'   rC   r>   
isinstanceintr]   formatr   s       r   r   zsocket._check_sendfile_params  s    gdFC0000CDDDy;& 	LJKKKeS)) QAHHOOQ Q Qzz AHHOOQ Q Q  zr   c                     	 	 |                      |||          S # t          $ r |                     |||          cY S w xY wr&   )r   r1   r   r   s       r   r   zsocket.sendfile  sb    	"	@..tVUCCC  	@ 	@ 	@**4?????	@s    !>>c                 v    | j         dk    r| xj         dz  c_         | j        r|                                  d S d S )Nr   rs   )r9   r:   rJ   rG   s    r   _decref_socketioszsocket._decref_socketios  sD    =1MMQMM< 	JJLLLLL	 	r   c                 0    |                     |            d S r&   )rJ   )rA   _sss     r   _real_closezsocket._real_close  s    		$r   c                 V    d| _         | j        dk    r|                                  d S d S )NTr   )r:   r9   r   rG   s    r   rJ   zsocket.close  s6    =A r   c                 T    	 d| _         t                                                      S )NT)r:   superdetachrA   rQ   s    r   r   zsocket.detach  s%    	 ww~~r   c                 R    	 t          t                      j        t                    S r&   )r*   r   rB   r   r   s    r   rB   zsocket.family  s    	!%''.-@@@r   c                 R    	 t          t                      j        t                    S r&   )r*   r   rC   r   r   s    r   rC   zsocket.type	  s    	!%'',
;;;r   ntc                 N    t          j        |                                           S r&   )r   get_handle_inheritablerE   rG   s    r   get_inheritablezsocket.get_inheritable  s    ,T[[]];;;r   c                 T    t          j        |                                 |           d S r&   )r   set_handle_inheritablerE   rA   inheritables     r   set_inheritablezsocket.set_inheritable  s#    %dkkmm[AAAAAr   c                 N    t          j        |                                           S r&   )r   r   rE   rG   s    r   r   zsocket.get_inheritable  s    %dkkmm444r   c                 T    t          j        |                                 |           d S r&   )r   r   rE   r   s     r   r   zsocket.set_inheritable  s#    t{{}}k:::::r   z&Get the inheritable flag of the socketz&Set the inheritable flag of the socket)r;   r;   r;   N)rl   Nr   N) r2   r3   r4   	__slots__r@   rH   rL   r[   r^   ra   rk   r   r   r   r   r   r   r   r   r?   r7   r   rJ   r   propertyrB   rC   namer   r   __doc____classcell__rQ   s   @r   r7   r7      sH       D666I          <M M M	 	 	   )tT) ) ) ) )V wr: E@?	& ?	& ?	& ?	& ?	&B	@ 	@ 	@ 	@"/ "/ "/ "/HQ Q Q@ @ @ @.   &n                A A A A XA
 < < < < X<
 
w$	< 	< 	<	B 	B 	B 	B	5 	5 	5	; 	; 	;FOFOr   r7   c                 F    	 t          |           }t          ||||          S r&   )ra   r7   )rd   rB   rC   rD   nfds        r   r   r     s(    
 b''C&$s+++r   sendmsgc           	          	 |                      |t          j        t          j        t	          j        d|          fg          S Ni)r   r?   
SOL_SOCKET
SCM_RIGHTSarray)re   buffersfdsflagsaddresss        r   send_fdsr   (  sD    	 ||Gw'9C 5 5'7 &8 9 9 	9r   r   recvmsgc           	         	 t          j         d          }|                     |t          j        ||j        z                      \  }}}}|D ]h\  }}	}
|t          j        k    rR|	t          j        k    rB|                    |
d t          |
          t          |
          |j        z  z
                      i|t          |          ||fS r   )
r   r   r?   CMSG_LENitemsizer   r   	frombytesr   list)re   bufsizemaxfdsr   r   msgancdatarj   
cmsg_level	cmsg_type	cmsg_datas              r   recv_fdsr   4  s    	 k#$(LLVcl233%5 %5!WeT07 	K 	K,J	9g000Y'BT5T5Ti )II#i..3<*GH)I J K K K DIIud**r   r   sharec                 (    	 t          ddd|           S )Nr   )r7   )infos    r   	fromsharer   H  s    	
 aAt$$$r   r   c                 J   | t           k    rt          }n"| t          k    rt          }nt	          d          |t
          k    rt	          d          |dk    rt	          d          t          | ||          }	 |                    |df           |                                 |	                                d d         \  }}t          | ||          }	 |
                    d           	 |                    ||f           n# t          t          f$ r Y nw xY w|
                    d           |                                \  }}	n#  |                                  xY w	 |                                 n# |                                 w xY w	 |	                                |                                k    s*|	                                |                                k    rt#          d          n.#  |                                 |                                  xY w||fS )	Nz?Only AF_INET and AF_INET6 socket address families are supportedz)Only SOCK_STREAM socket type is supportedr   zOnly protocol zero is supported   FTzUnexpected peer connection)r=   
_LOCALHOSTAF_INET6_LOCALHOST_V6r'   r>   r7   bindlistenrR   ri   connectr   InterruptedErrorrk   rJ   rV   ConnectionError)
rB   rC   rD   hostlsockrj   portcsockssock_s
             r   _fallback_socketpairr  T  s/   	8		 ) * * 	*{DEEEzz:;;; 64''E

D!9&&((!,
dvtU++
	e$$$tTl++++#%56   d###||~~HE11	KKMMM 
 	
5#4#4#6#666  ""e&7&7&9&999!">??? : 	5>sV   7AE5 E )D  E DE D/E E5 EE5 5FA#G3 3+H
socketpairc                    |  	 t           } n# t          $ r
 t          } Y nw xY wt          j        | ||          \  }}t          | |||                                          }t          | |||                                          }||fS r&   )AF_UNIX	NameErrorr=   r?   r  r7   r   )rB   rC   rD   arq   s        r   r  r    s    >!  ! ! ! !!&$66164

3364

33!ts      a8  socketpair([family[, type[, proto]]]) -> (socket object, socket object)
Create a pair of socket objects from the sockets returned by the platform
socketpair() function.
The arguments are the same as for socket() except the default family is AF_UNIX
if defined on the platform; otherwise, the default is AF_INET.
c                   v     e Zd Z	 d Zd Zd Zd Zd Z fdZd Z	e
d             Ze
d	             Zd
 Z xZS )ru   c                     |dvrt          d|z            t          j                            |            || _        d|vr|dz  }|| _        d|v | _        d|v | _        d| _        d S )N)rl   rr   rwrbwbrwbzinvalid mode: %rrq   rl   rr   F)	r'   rv   	RawIOBaser@   _sock_mode_reading_writing_timeout_occurred)rA   re   r}   s      r   r@   zSocketIO.__init__  s|    :::/$6777
d###
d??CKD
tt!&r   c                 (   	 |                                   |                                  | j        rt          d          	 	 | j                            |          S # t          $ r	 d| _         t          $ r}|j        t          v rY d }~d S  d }~ww xY w)Nz!cannot read from timed out objectT)
_checkClosed_checkReadabler  r   r  	recv_intor   rT   errno_blocking_errnosrA   rq   es      r   readintozSocketIO.readinto  s    	 	! 	?=>>>		z++A...   )-&   7...44444s   A B7BBBc                     	 |                                   |                                  	 | j                            |          S # t          $ r}|j        t          v rY d }~d S  d }~ww xY wr&   )r  _checkWritabler  r   rT   r  r  r  s      r   writezSocketIO.write  s    	
 		:??1%%% 	 	 	w***ttttt		s   A 
A)A$#A$$A)c                 >    	 | j         rt          d          | j        S NzI/O operation on closed socket.)rW   r'   r  rG   s    r   readablezSocketIO.readable  )    	; 	@>???}r   c                 >    	 | j         rt          d          | j        S r&  )rW   r'   r  rG   s    r   writablezSocketIO.writable  r(  r   c                 r    	 | j         rt          d          t                                                      S r&  )rW   r'   r   seekabler   s    r   r,  zSocketIO.seekable  s8    	; 	@>???ww!!!r   c                 ^    	 |                                   | j                                        S r&   )r  r  rE   rG   s    r   rE   zSocketIO.fileno  s-    	z  """r   c                 <    | j         s|                                 S dS )Nr;   )rW   rE   rG   s    r   r   zSocketIO.name  s    { 	;;== 2r   c                     | j         S r&   )r  rG   s    r   r}   zSocketIO.mode	  s
    zr   c                     	 | j         rd S t          j                            |            | j                                         d | _        d S r&   )rW   rv   r  rJ   r  r   rG   s    r   rJ   zSocketIO.close  sM    	 ; 	F
4   
$$&&&


r   )r2   r3   r4   r@   r!  r$  r'  r*  r,  rE   r   r   r}   rJ   r   r   s   @r   ru   ru     s        
' 
' 
'  .       " " " " "# # #   X   X      r   ru   rN   c                     	 |                                  } | r| dv rt                      } 	 t          |           \  }}}|                    d|           |D ]} d| v r n	|} n# t          $ r Y nw xY w| S )N)z0.0.0.0z::r   .)stripgethostnamegethostbyaddrinsertrT   )r   hostnamealiasesipaddrss       r   r   r     s     ::<<D 4,,,}}
%24%8%8"'7 	q(### 	 	Dd{{  D     Ks   A" "
A/.A/F)
all_errorsc                   	 | \  }}g }t          ||dt                    D ]}|\  }}	}
}}d }	 t          ||	|
          }|t          ur|                    |           |r|                    |           |                    |           |                                 |c S # t          $ rK}|s|                                 |	                    |           ||
                                 Y d }~d }~ww xY wt          |          r4	 |s|d         t          d|          # |                                 w xY wt          d          )Nr   zcreate_connection failedz!getaddrinfo returns an empty list)getaddrinfor>   r7   _GLOBAL_DEFAULT_TIMEOUTrb   r   r   clearrT   appendrJ   r   ExceptionGroup)r   r   source_addressr:  r  r  
exceptionsresafsocktyperD   	canonnamesare   excs                  r   r   r   5  s    JD$J4q+66  -0*HeY	"h..D555((( *		.)))LLKKK 	 	 	 #  """c"""

	 : 	9	 $ m# !;ZHHH 7888s%   A0B  
C5*AC00C5D" "D8c                  <   	 t           r*t          t          d          rt          t          d          sdS 	 t          t          t
                    5 } |                     t          t          d           	 d d d            dS # 1 swxY w Y   d S # t          $ r Y dS w xY w)NIPPROTO_IPV6IPV6_V6ONLYFr   T)
has_ipv6r   r?   r7   r   r>   
setsockoptrJ  rK  rT   )re   s    r   r   r   h  s      7N337M22 uHk** 	dOOL+q999	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	    uus5   B #B 3B  BB BB 
BB)rB   backlog
reuse_portdualstack_ipv6c                   	 |r$t          t          d          st          d          |r7t                      st          d          |t          k    rt          d          t          |t                    }	 t          j        dvrHt          t          d          r3	 |	                    t          t          d           n# t          $ r Y nw xY w|r!|	                    t          t          d           t          rz|t          k    ro|r"|	                    t          t           d           nKt          t          d	          r6t          t          d
          r!|	                    t          t           d           	 |                    |            n5# t          $ r(}|j        d| d}t          |j        |          d d }~ww xY w||                                 n|                    |           |S # t          $ r |                                  w xY w)NSO_REUSEPORTz+SO_REUSEPORT not supported on this platformz-dualstack_ipv6 not supported on this platformz'dualstack_ipv6 requires AF_INET6 family)r   cygwinSO_REUSEADDRrs   r   rK  rJ  z& (while attempting to bind on address ))r   r?   r'   r   r   r7   r>   r   r   rM  r   rT  rT   rR  rL  rJ  rK  r   strerrorr  r   rJ   )r   rB   rN  rO  rP  re   r   r   s           r   r   r   x  s2   "  H''>:: HFGGG H!## 	NLMMMXFGGG&+&&D' 7***00 +
L!<<<<      	9OOJa888 	>(** >k1====-00 >G^44>k1===	2IIg 	2 	2 	2www(C	3''T1	2 ?KKMMMMKK      

sU   7#G+ !B= <G+ =
C
G+ 	C

B'G+ 2F G+ 
F:#F55F::0G+ + Hc                     	 g }t          j        | |||||          D ]J}|\  }}	}}
}|                    t          |t                    t          |	t
                    ||
|f           K|S r&   )r?   r<  r?  r*   r   r   )r  r  rB   rC   rD   r   addrlistrC  rD  rE  rF  rG  s               r   r<  r<    s     H"4vtUEJJ 0 0-0*HeY+B>>+HjAA	2/ 	0 	0 	0 	0 Or   )r   r   )rN   )r   r   r   r   )3r?   r   sysrv   r   enumr   r   r  ImportErrorrP   r   r   r
   __all__extend_get_exports_list	_convert_r2   r   r   r*   platformlowerr   r/   r?  	Exceptionr1   r7   r   r   r   r   r   r   r=   r>   r  r  r   r  r  ru   r   objectr=  r   r   r   r<  r5   r   r   <module>rd     s  -^                      ! ! ! ! ! ! ! !LLLL   EEEw""	"	%	%ge]B//@ @ @ #r#G,, - - -  557 7 7
  779 9 9
  668 8 8
  557 7 7
 
   <""5)) aH=HQK2HQK8HRL3HSMHHSM?HSM6HUO5HUO*HUO9HUO;HUO,HUO9HUODHUO6HUO6HUO5HUO)HUO7HUO,HUO/HUO2HUO0HUO6HUOHHUO6HUO8HUO(HUO/HUO<HUO9HUO6HUO2HUO4HUO0HUO7HUO,HUO0HUO+HUO.HUO-HUO)HUO0HUO,HUO+HUO,HUO,HUO4HUO'HUO9HUO9HUO@HUO6HUOBHUO/HUO8HUO4HUO>HUO,HUO*HUO-HUOBHUO*HUO3HUO'HUO8HUO7HUOBHUO&HUO$HUO'HUO)HUO.HUO,HUO+HUO&HUO'HUO2HUO*HUO/HUO+HUO4HUO1HUO1HUO3HUO2HUO1HUO0HUO2HUO4HUO?HUOAHUO>HUO8HUO9HUONN: ) ( ( ( (	 ( ( (DG DG DG DG DGW^ DG DG DGL
, , , , 77>9%% 
LLL9 9 9 9 NN:
77>9%% LLL+ + + +" NN:
77>7##  % % % NN;
 !(k 4 4 4 4l 77L!! ![ 	 	 	 	 	 &JNN<   
  [* r r r r rr| r r rj   6 !&(( '>%)099>09 09 09 09 09f    &-du!&B B B B BJ     s   ( 22