a
    
”aî   ã                   @   sÚ   d dl mZmZmZmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZe
j e¡Zdd„ Zdd„ ZedkrÖdejvr¢ejd  d	 ejd < edƒ ejd = ze	 e	jd
¡ W n eyÆ   Y n0 eeejƒƒ dS )é    )Úabsolute_importÚdivisionÚprint_functionÚunicode_literalsNc              
      s´  | j d u r(ttjdƒ t_}t |j¡ ddl	m
} ddlm}m‰m} ddlm}m}m} | jd ur´tjdkrŽt ¡  t ¡ dkrŽt d¡ tjtjtjfD ]}|d urž| ¡  qž| jrÐˆj jtˆjƒO  _| jd urâ| jˆ_ˆjdd ˆ  d	¡ | j!|_"| jd u r&| #t$ %t &d
¡d¡¡|_"i }	z| '| j(| j ¡\}
}W nD t)y† } z*| jd u rb‚ ddt*|ƒ i}	W Y d }~nd }~0 0 |
|dœ|	d< | jd urÂz| '¡ \}}W n6 t)yè } zddt*|ƒ i}	W Y d }~nd }~0 0 ||dœ|	d< ˆ +d| j|	¡ z|| ,¡ }zb| -d ¡ | .d| jf¡ | /dd¡}z"| 0t1 2|	¡ %d¡¡ W | ¡  n
| ¡  0 W | 3|¡ n| 3|¡ 0 W n t)y¢   ˆ 4d¡ Y n0 d|	v rÂˆ 5d¡ t d¡ t 6d¡‰ ˆ d ur^ˆ +dˆ |	¡ ‡ ‡fdd„}zLtˆ dƒ,}t |¡ t7t1 2|	¡|d W d   ƒ n1 s20    Y  W n t)y\   ˆ 4d¡ Y n0 | j d u rt| 8d¡ t |j9¡ t |j9¡ | :¡  ˆ +d ¡ | ;¡  ˆ +d!¡ d S )"NÚwr   )Úadapter)ÚcompatÚlogÚsockets)ÚclientsÚserversÚsessionsÚposixzdebugpy.adapter)Úprefixz$debugpy.adapter startup environment:é    ÚhexÚerrorz%Can't listen for client connections: )ÚhostÚportZclientz%Can't listen for server connections: Zserverz>Sending endpoints info to debug server at localhost:{0}:
{1!j}ú	127.0.0.1Úwbzutf-8z-Error sending endpoints info to debug server:z#Couldn't set up endpoints; exiting.é   ZDEBUGPY_ADAPTER_ENDPOINTSz&Writing endpoints info to {0!r}:
{1!j}c                      sB   ˆ  dˆ ¡ zt ˆ ¡ W n" ty<   ˆjdˆ dd Y n0 d S )Nz%Listener ports closed; deleting {0!r}zFailed to delete {0!r}Zwarning)Úlevel)ÚinfoÚosÚremoveÚ	ExceptionZswallow_exception© ©Zlistener_filer	   r   ú7lib/python3.9/site-packages/debugpy/adapter/__main__.pyÚdelete_listener_filej   s    ÿz"main.<locals>.delete_listener_file)Úfilez%Error writing endpoints info to file:ÚstdiozAAll debug servers disconnected; waiting for remaining sessions...z'All debug sessions have ended; exiting.)<r   Úopenr   ÚdevnullÚsysÚstderrÚatexitÚregisterÚcloseÚdebugpyr   Zdebugpy.commonr   r	   r
   Zdebugpy.adapterr   r   r   Ú
for_serverÚnameÚsetsidÚforkÚexitÚstdinÚstdoutÚ
log_stderrZlevelsÚsetZLEVELSZlog_dirZto_fileZdescribe_environmentZserver_access_tokenZaccess_tokenZ	force_strÚcodecsÚencodeÚurandomZserver   r   Ústrr   Zcreate_clientZ
settimeoutZconnectZmakefileÚwriteÚjsonÚdumpsZclose_socketZreraise_exceptionr   ÚgetenvÚprintZClientZstop_servingZwait_until_disconnectedZwait_until_ended)Úargsr&   r   r   r
   r   r   r   r"   Z	endpointsZclient_hostZclient_portÚexcZserver_hostZserver_portZsockZsock_ior    Úfr   r   r   Úmain   s–    






&&ý





	
6

r@   c                 C   sÊ   t  ¡ }|jdtdt jd |jdtd ddd |jdtdd	d
d |jdtdd |jdtdd |jdtddd |jdddd | | dd … ¡}|jd u rÆ|jr²| 	d¡ |j
d urÆ| 	d¡ |S )Nz--for-serverZPORT)ÚtypeÚmetavarÚhelpz--portz;start the adapter in debugServer mode on the specified port)rA   ÚdefaultrB   rC   z--hostr   ZHOSTz;start the adapter in debugServer mode on the specified hostz--access-tokenz%access token expected from the server)rA   rC   z--server-access-tokenz#access token expected by the serverz	--log-dirZDIRz/enable logging and use DIR to save adapter logsz--log-stderrÚ
store_truezenable logging to stderr)ÚactionrC   r   z--log-stderr requires --portz--for-server requires --port)ÚargparseÚArgumentParserÚadd_argumentÚintZSUPPRESSr7   Ú
parse_argsr   r2   r   r+   )ÚargvÚparserr=   r   r   r   Ú_parse_argvŠ   sP    
ÿûûÿÿüÿ



rN   Ú__main__r*   z/../../Ú )Z
__future__r   r   r   r   rG   r'   r4   r9   Zlocaler   r%   ÚpathÚabspathÚ__file__r@   rN   Ú__name__ÚmodulesÚ
__import__Ú	setlocaleÚLC_ALLr   rL   r   r   r   r   Ú<module>   s(   t5
