????

Your IP : 216.73.217.84


Current Path : /usr/lib/python3.9/site-packages/pycriu/images/__pycache__/
Upload File :
Current File : //usr/lib/python3.9/site-packages/pycriu/images/__pycache__/pb2dict.cpython-39.pyc

a

?9j�1�@sZddlZddlZddlZddlZddlZddlmZmZmZddl	m
ZddlZde
e�vrleje_eje_ejeejeejeejeejeejeejeejeejeejeejeeje iZ!dd�Z"dd�Z#d	d
�Z$dd�Z%d
d�Z&dd�Z'dd�Z(gd�Z)gd�Z*gd�Z+gd�Z,gd�Z-gd�Z.e)e*e+e,e.e-d�Z/ddddd�iZ0dd d!d"d#d$�d%d&d'd(d#d)�d*d+d,d-d.d/d0d1d2d3d4�
d5d6d7d8d9�d:�Z1d;d<�e2e0�3��D�Z4d=d<�e2e1�3��D�Z5e0e4fe1e5fd>�Z6d?d@�Z7dAdB�Z8dCZ9dDdE�Z:dFdG�Z;dHdI�Z<dJdK�Z=dLdM�Z>dNdO�Z?dPe>iZ@dPe?iZAdQdR�ZBdSdT�ZCdUdV�ZDd`dXdY�ZEdadZd[�ZFd\d]�ZGd^d_�ZHdS)b�N)�IPv4Address�IPv6Address�
ip_address)�FieldDescriptor�encodebytescCs|��jtjjS�N)�
GetOptions�
Extensions�opts_pb2�criu�hex��field�r�9/usr/lib/python3.9/site-packages/pycriu/images/pb2dict.py�_marked_as_hex1srcCs|��jtjjSr)rr	r
rZipaddr
rrr�
_marked_as_ip5srcCs|��jtjjSr)rr	r
r�flagsr
rrr�_marked_as_flags9srcCs|��jtjjSr)rr	r
r�devr
rrr�_marked_as_dev=srcCs|��jtjjSr)rr	r
rZodevr
rrr�_marked_as_odevAsrcCs|��jtjjSr)rr	r
r�dictr
rrr�_marked_as_dictEsrcCs|��jtjjSr)rr	r
r�convr
rrr�_custom_convIsr))Z	PROT_READ�)Z
PROT_WRITE�)Z	PROT_EXEC�))Z
MAP_SHAREDr)ZMAP_PRIVATEr)Z
MAP_DROPPABLE�)ZMAP_ANON� )Z
MAP_GROWSDOWN�))Z
VMA_AREA_NONEr)ZVMA_AREA_REGULARr)ZVMA_AREA_STACKr)ZVMA_AREA_VSYSCALLr)Z
VMA_AREA_VDSOr)Z
VMA_AREA_HEAPr )ZVMA_FILE_PRIVATE�@)ZVMA_FILE_SHARED�)ZVMA_ANON_SHAREDr!)ZVMA_ANON_PRIVATE�)ZVMA_AREA_SYSVIPC�)ZVMA_AREA_SOCKET�)Z
VMA_AREA_VVAR�)ZVMA_AREA_AIORING� )ZVMA_AREA_MEMFD�@)ZVMA_AREA_SHSTK��)ZVMA_AREA_UPROBES�)Z
VMA_UNSUPPl))�O_WRONLYr)�O_RDWRr)�O_CREATr")�O_EXCLr#)�O_NOCTTYr!)�O_TRUNCr$)�O_APPENDr%)�
O_NONBLOCKr&)�O_DSYNCr')ZFASYNCr()�O_DIRECTr))�O_LARGEFILEr*)�O_DIRECTORYi)�
O_NOFOLLOWr+)�	O_NOATIMEi)�	O_CLOEXECi))ZF_SEAL_SEALr)Z
F_SEAL_SHRINKr)ZF_SEAL_GROWr)ZF_SEAL_WRITEr)ZF_SEAL_FUTURE_WRITE�))Z	PE_PARENTr)ZPE_LAZYr)Z
PE_PRESENTr)z	mmap.protz
mmap.flagszmmap.statuszrfile.flagsz
pmap.flagszseals.flagsZ
task_stateZAliveZZombieZStopped)r��ZUNIXZINETZINET6ZNETLINKZPACKET)rr�
r;�ZSTREAMZDGRAMZRAWZ	SEQPACKET)rrr<�r>ZESTABLISHEDZSYN_SENTZSYN_RECVZ	FIN_WAIT1Z	FIN_WAIT2Z	TIME_WAITZCLOSEZ
CLOSE_WAITZLAST_ACKZLISTEN)
rrr<rr@r=�r�	r>ZIPZTCPZUDPZUDPLITE)rr=r?�)Zfamily�type�state�protocCs(i|] \}}|dd�t|���D��qS)cSsi|]\}}||�qSrr��.0Zk2Zv2rrr�
<dictcomp>�s��<dictcomp>.<dictcomp>��list�items�rH�k�vrrrrI�s�
�rIcCs(i|] \}}|dd�t|���D��qS)cSsi|]\}}||�qSrrrGrrrrI�s�rJrKrNrrrrI�s�
�)�gen�skcsPdd��fdd�|D�D�}�tdd�|D��M��rF|�d��d�|�S)NcSsg|]}|d�qS�rr�rH�xrrr�
<listcomp>��zmap_flags.<locals>.<listcomp>csg|]}�|d@r|�qS�rrrT��valuerrrV�rWcSsg|]}|d�qSrXrrTrrrrV�rW�0x%xz | )�sum�append�join)rZ�	flags_map�bsrrYr�	map_flags�s
racs:|dkrdSt|��t�fdd�dd�|�d�D�D��S)N�rcs"g|]}tt��||��d��qSrS)�int�str�getrT�ZbdrrrV�s�zunmap_flags.<locals>.<listcomp>cSsg|]}|���qSr)�striprTrrrrV�rW�|)rr\�split)rZr_rrfr�unmap_flags�s�rj�cCs@t|�r dt�|�t�|�fSd|t?|dt>d@fSdS)Nz%d:%dr)r�os�major�minor�kern_minorbits)rrZrrr�
decode_dev�s
�rpcCsHdd�|�d�D�}t|�r0t�|d|d�S|dt>|dBSdS)NcSsg|]}t|��qSr)rcrTrrrrV�rWzencode_dev.<locals>.<listcomp>�:rr)rirrl�makedevro)rrZrrrr�
encode_dev�srscCst�|���Sr)�base64r�decoderYrrr�
encode_base64�srvcCst�t�|��Sr)rt�decodebytesrd�encoderYrrr�
decode_base64srycCs
t�|�Sr)�quopri�encodestringrYrrr�encode_unixsr|cCs
t�|�Sr)rz�decodestringrYrrr�decode_unixsr~Z	unix_namecCst|�}|rt|StSdSr)rrxrv�r�crrr�
get_bytes_encsr�cCst|�}|rt|StSdSr)rruryrrrr�
get_bytes_decsr�cCs dtvrt}nttf}t||�S)N�
basestring)�__builtins__r�rd�bytes�
isinstance)rZZstring_typesrrr�	is_string sr�FcCs(|st|�}|jtjkr$t|||�S|jtjkr<t|�|�S|jtjkrZ|jj	�
|d�jS|jtv�rt|j}|�r|t
u�r|r�d|St|�r�t||�St|�}|r�zt|}Wnty�d|YS0t||�St|�}|�rt|d|j�
|||��S||�Std|j|jf��dS)Nr[r�!Field(%s) has unsupported type %d)rrD�FD�TYPE_MESSAGE�pb2dict�
TYPE_BYTESr��	TYPE_ENUM�	enum_typeZvalues_by_numberre�name�_basic_castrcrrpr�
flags_maps�	Exceptionrar�	dict_maps)rrZ�pretty�is_hex�castrr_�dctrrr�
_pb2dict_cast)s:



�r�c	
Cs*|rt��ni}|��D�]
\}}|jtjkr�g}|r�t|�r�t|�dkrbt�	|d�}t
|�}nPdt�	|d�d>t�	|d�d>t�	|d�d>t�	|d�}t|�}|�|j
�q�|D]}|�t||||��q�nt||||�}z|��||j<Wqttf�y"|||j<Yq0q|S)z^
    Convert protobuf msg to dictionary.
    Takes a protobuf message and returns a dict.
    rr�`r"rr r<)�collections�OrderedDictZ
ListFields�labelr��LABEL_REPEATEDr�len�socketZntohlrrr]�
compressedr�rur��UnicodeDecodeError�AttributeError)	�pbr�r��drrZZd_valrP�addrrrrr�Qs2
���r�cCs
|jtjkrt|�|�S|jtjkr6|jj�|d�jS|jt	vr�t	|j}|t
ur�t|�r�t|�rlt
||�St|�}|r�zt|}Wnty�Yn0t||�St|�}|r�t|d|j�|d�}|dur�||d�}|S||d�S||�Sntd|j|jf��dS)Nrrr�)rDr�r�r�r�r�Zvalues_by_namere�numberr�rcr�rrsrr�r�rjrr�r�)rrZr�rr_r��retrrr�
_dict2pb_castss6







�r�cCs�|jjD�]�}|j|vrq||j}|jtjk�rDt||jd�}t|d��rt|��rt	|d�}|j
dkr�|�t�
t|���q|j
dkr�t|�}|�t�
|d?d@��|�t�
|d?d@��|�t�
|d?d@��|�t�
|d?d@��qtd	|j
��q|D]4}|jtjk�r.t||���n|�t||���qq|jtjk�rxt||j���t|t||jd��qt||jt||��q|S)
zd
    Convert dictionary to protobuf msg.
    Takes dict and protobuf message to be merged into.
    Nrrr=r�l��r"r zUnknown IP address version %d)Z
DESCRIPTOR�fieldsr�r�r�r��getattrr�rr�versionr]r�Zhtonlrcr�rDr��dict2pb�addr�ZSetInParent�setattr)r�r�rrZZpb_val�valZivalrPrrrr��s:



�r�)FF)FF)Irtr�rlrzr��	ipaddressrrrZgoogle.protobuf.descriptorrr�r
�dirr{rr}rwZTYPE_FIXED64rcZTYPE_FIXED32Z
TYPE_SFIXED64Z
TYPE_SFIXED32Z
TYPE_INT64ZTYPE_UINT64ZTYPE_SINT64Z
TYPE_INT32ZTYPE_UINT32ZTYPE_SINT32Z	TYPE_BOOL�boolZTYPE_STRINGrdr�rrrrrrrZ
mmap_prot_mapZmmap_flags_mapZmmap_status_mapZrfile_flags_mapZseals_flags_mapZpmap_flags_mapr�Zgen_mapsZsk_mapsrLrMZ	gen_rmapsZsk_rmapsr�rarjrorprsrvryr|r~rxrur�r�r�r�r�r�r�rrrr�<module>s���
��
���
��#
�
��	
(
"(