a
    kÄ#d†T  ã                	   @   sB  d Z ddlmZ ddlmZ ddlmZmZmZ ddl	m
Z
mZmZ ddlmZmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& G d	d
„ d
e'ƒZ(G dd„ deƒZ)G dd„ deƒZ*G dd„ de*eƒZ+d\dd„Z,dd„ Z-d]dd„Z.d^dd„Z/dd„ Z0dd„ Z1d_d!d"„Z2d`d#d$„Z3G d%d&„ d&e%ƒZ4e#d'ƒZ5e 6e4¡G d(d)„ d)ee5 ƒƒZ7ej8 9e7¡ G d*d+„ d+e7e: ƒZ;G d,d-„ d-e;ƒZ<G d.d/„ d/e7e= ƒZ>G d0d1„ d1e7e= ƒZ?G d2d3„ d3e;ƒZ@G d4d5„ d5e7eA ƒZBG d6d7„ d7e;ƒZCG d8d9„ d9e?ƒZDG d:d;„ d;e?ƒZEG d<d=„ d=e?ƒZFG d>d?„ d?e?ƒZGG d@dA„ dAe?ƒZHG dBdC„ dCe?ƒZIG dDdE„ dEe?ƒZJG dFdG„ dGe?ƒZKG dHdI„ dIe?ƒZLG dJdK„ dKe?ƒZMG dLdM„ dMe?ƒZNG dNdO„ dOe?ƒZOG dPdQ„ dQe7e$eAee7e  f  ƒZPG dRdS„ dSePƒZQG dTdU„ dUe?ƒZRG dVdW„ dWe;ƒZSG dXdY„ dYe;ƒZTG dZd[„ d[e;ƒZUdS )az&
Basic Encoding Rules (BER) for ASN.1
é    )Úabsolute_import)Úwarning)ÚchbÚorbÚbytes_encode)ÚbinreprÚ	inet_atonÚ	inet_ntoa)ÚASN1_BADTAGÚASN1_BadTag_Decoding_ErrorÚ
ASN1_ClassÚASN1_Class_UNIVERSALÚASN1_CodecsÚASN1_DECODING_ERRORÚASN1_Decoding_ErrorÚASN1_Encoding_ErrorÚ
ASN1_ErrorÚASN1_ObjectÚ_ASN1_ERROR)Úsix)ÚAnyÚAnyStrÚDictÚGenericÚListÚOptionalÚTupleÚTypeÚTypeVarÚUnionÚ_Generic_metaclassÚcastc                   @   s   e Zd ZdS )ÚBER_ExceptionN©Ú__name__Ú
__module__Ú__qualname__© r'   r'   úE/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/asn1/ber.pyr"   8   s   r"   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚBER_Encoding_ErrorNó    c                 C   s   t  | |¡ || _|| _d S ©N)Ú	ExceptionÚ__init__Ú	remainingÚencoded)ÚselfÚmsgr/   r.   r'   r'   r(   r-   =   s    zBER_Encoding_Error.__init__c                 C   sJ   t  | ¡}t| jtƒr*|d| j ¡  7 }n|d| j 7 }|d| j 7 }|S )Nz
### Already encoded ###
%sz
### Already encoded ###
%rú
### Remaining ###
%r)r,   Ú__str__Ú
isinstancer/   r   Ústrshowr.   ©r0   Úsr'   r'   r(   r3   G   s    
zBER_Encoding_Error.__str__)Nr*   ©r$   r%   r&   r-   r3   r'   r'   r'   r(   r)   <   s     ý

r)   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚBER_Decoding_ErrorNr*   c                 C   s   t  | |¡ || _|| _d S r+   )r,   r-   r.   Údecoded)r0   r1   r:   r.   r'   r'   r(   r-   S   s    zBER_Decoding_Error.__init__c                 C   sJ   t  | ¡}t| jtƒr*|d| j ¡  7 }n|d| j 7 }|d| j 7 }|S )Nz
### Already decoded ###
%sz
### Already decoded ###
%rr2   )r,   r3   r4   r:   r   r5   r.   r6   r'   r'   r(   r3   ]   s    
zBER_Decoding_Error.__str__)Nr*   r8   r'   r'   r'   r(   r9   R   s     ý

r9   c                   @   s   e Zd ZdS )ÚBER_BadTag_Decoding_ErrorNr#   r'   r'   r'   r(   r;   h   s   r;   c                 C   s~   | dkr|dkrt | ƒS d}| s(|dkrJt | d@ ƒ| }| dL } |d8 }qt|ƒdkrjtdt|ƒ|f ƒ‚t t|ƒdB ƒ| S )	Né   r   r*   éÿ   é   é   z4BER_len_enc: Length too long (%i) to be encoded [%r]é€   )r   Úlenr"   )ÚllÚsizer7   r'   r'   r(   ÚBER_len_encm   s    

ÿÿrD   c                 C   s–   t | d ƒ}|d@ s$|| dd … fS |dM }t| ƒ|krTtdt| ƒd |f | d�‚d}| d|d … D ]}|dK }|t |ƒO }qh|| |d d … fS )Nr   r@   r?   r<   z,BER_len_dec: Got %i bytes while expecting %i©r.   r>   )r   rA   r9   )r7   Ztmp_lenrB   Úcr'   r'   r(   ÚBER_len_dec~   s     ÿýrG   r?   c                 C   sb   g }| s|dkrN|  d| d@ ¡ t|ƒdkr<|d  dO  < | dL } |d8 }qd dd„ |D ƒ¡S )	Nr   r<   r?   r@   é   r*   c                 s   s   | ]}t |ƒV  qd S r+   ©r   ©Ú.0Úkr'   r'   r(   Ú	<genexpr>š   r*   zBER_num_enc.<locals>.<genexpr>)ÚinsertrA   Újoin)rB   rC   Úxr'   r'   r(   ÚBER_num_enc‘   s    
rQ   c                 C   s~   t | ƒdkrtd| d�‚|}t| ƒD ]0\}}t|ƒ}|dK }||d@ O }|d@ s$ qVq$|d@ rjtd| d�‚|| |d d … fS )	Nr   zBER_num_dec: got empty stringrE   rH   r<   r@   z*BER_num_dec: unfinished number descriptionr?   )rA   r9   Ú	enumerater   )r7   Úcls_idrP   ÚirF   r'   r'   r(   ÚBER_num_dec�   s    ÿrU   c                 C   sD   t | d ƒ}|d@ dkr(|| dd … fS t| dd … |d? d�S d S )Nr   é   r?   é   )rS   )r   rU   )r7   rP   r'   r'   r(   Ú
BER_id_dec®   s    rX   c                 C   sT   | dk rt | ƒS t| ƒ}t|d ƒ}|dM }|dK }|dO }t |ƒ|dd …  S d S )Né   r   rH   rW   rV   r?   )r   rQ   r   )Únr7   Útagr'   r'   r(   Ú
BER_id_encÉ   s    r\   NFÚ c           
      C   sÂ   d }t | ƒdkrºd}|d urrt| ƒ\}} ||kr`|s\|d@ |d@ kr\t||||f | d�‚n|}tt|ƒƒ|  } nH|d urºt| ƒ\}} ||kr®|sªt||||f | d�‚n|}t| ƒ\}	} || fS )Nr   zNBER_tagging_dec: observed tag 0x%.02x does not match expected tag 0x%.02x (%s)rV   rE   )rA   rX   r9   r   ÚhashrG   )
r7   Ú
hidden_tagÚimplicit_tagÚexplicit_tagÚsafeZ_fnameZreal_tagÚerr_msgZber_idÚlr'   r'   r(   ÚBER_tagging_decÚ   s4    	ÿÿþþre   c                 C   sZ   t | ƒdkrV|d ur6tt|ƒd@ |B ƒ| dd …  } n |d urVt|ƒtt | ƒƒ |  } | S )Nr   iàÿÿÿr?   )rA   r\   r^   rD   )r7   r_   r`   ra   r'   r'   r(   ÚBER_tagging_enc   s    "rf   c                       s   e Zd Z‡ fdd„Z‡  ZS )ÚBERcodec_metaclassc                    s\   t dtt| ƒ | |||¡ƒ}z|j |j|¡ W n& tyV   td|j|jf ƒ Y n0 |S )NzType[BERcodec_Object[Any]]zError registering %r for %r)	r!   Úsuperrg   Ú__new__r[   ÚregisterÚcodecr,   r   )ÚclsÚnameÚbasesÚdctrF   ©Ú	__class__r'   r(   ri     s    ÿzBERcodec_metaclass.__new__)r$   r%   r&   ri   Ú__classcell__r'   r'   rp   r(   rg     s   rg   Ú_Kc                   @   sŠ   e Zd ZejZejZe	dd„ ƒZ
e	dd„ ƒZe	dd„ ƒZe	dd„ ƒZe	d	d
„ ƒZe	ddd„ƒZe	ddd„ƒZe	ddd„ƒZe	dd„ ƒZdS )ÚBERcodec_Objectc                 C   s   | j  |¡S r+   )r[   Úasn1_object)rl   Úvalr'   r'   r(   ru   $  s    zBERcodec_Object.asn1_objectc                 C   s    |st d| j| jf |d�‚d S )Nz+%s: Got empty object while expecting tag %rrE   )r9   r$   r[   ©rl   r7   r'   r'   r(   Úcheck_string)  s    
ÿþzBERcodec_Object.check_stringc                 C   sJ   |   |¡ t|ƒ\}}t|tƒr*| j|krFtd| j||| jf |d�‚|S )Nz'%s: Got tag [%i/%#x] while expecting %rrE   )rx   rX   r4   Úintr[   r;   r$   )rl   r7   r[   Ú	remainderr'   r'   r(   Ú
check_type2  s    
ÿþzBERcodec_Object.check_typec                 C   s(   |   |¡}|s td| j |d�‚t|ƒS )Nz%%s: No bytes while expecting a lengthrE   )r{   r9   r$   rG   )rl   r7   Ús2r'   r'   r(   Úcheck_type_get_len>  s    
ÿÿz"BERcodec_Object.check_type_get_lenc                 C   sP   |   |¡\}}t|ƒ|k r6td| jt|ƒ|f |d�‚||d |… ||d … fS )Nz#%s: Got %i bytes while expecting %irE   )r}   rA   r9   r$   )rl   r7   rd   Zs3r'   r'   r(   Úcheck_type_check_lenG  s    ÿÿz$BERcodec_Object.check_type_check_lenNFc                 C   sÀ   |d ur|}n| j j}|  |¡ t|ƒ\}}||vrh|}t|ƒdkrT|d d… d }td||f |d�‚|| }td| tj	¡ƒ}	|	t
kr²t|ƒ\}
}t|d |
… ƒ||
d … fS |	 |||¡S )Né   é   s   ...zUnknown prefix [%02x] for [%r]rE   zType[BERcodec_Object[_K]])r[   Úcontextrx   rX   rA   r9   r!   Z	get_codecr   ÚBERrt   rU   r
   Údec)rl   r7   r�   rb   Ú_contextÚprz   Útr[   rk   rd   r'   r'   r(   Údo_decP  s,    
ÿÿ
ÿzBERcodec_Object.do_decc              
   C   sÐ   |s|   |||¡S z|   |||¡W S  tyf } z,t |j||¡\}}t|ƒ|fW  Y d }~S d }~0  ty˜ } zt||d�dfW  Y d }~S d }~0  tyÊ } zt||d�dfW  Y d }~S d }~0 0 d S )N)Úexcr*   )	r‡   r;   rt   rƒ   r.   r
   r9   r   r   )rl   r7   r�   rb   ÚeÚoÚremainr'   r'   r(   rƒ   l  s    ÿ $zBERcodec_Object.decc                 C   s   | j ||dd�S )NT)rb   )rƒ   )rl   r7   r�   r'   r'   r(   Úsafedec�  s    zBERcodec_Object.safedecc                 C   sL   t |tjtf ƒrt |¡S zt t|ƒ¡W S  tyF   tdƒ‚Y n0 d S )Nz#Trying to encode an invalid value !)	r4   r   Ústring_typesÚbytesÚBERcodec_STRINGÚencÚBERcodec_INTEGERry   Ú	TypeErrorrw   r'   r'   r(   r�   ‰  s    
zBERcodec_Object.enc)NF)NF)N)r$   r%   r&   r   r‚   rk   r   ÚANYr[   Úclassmethodru   rx   r{   r}   r~   r‡   rƒ   rŒ   r�   r'   r'   r'   r(   rt     s2   




  ý  ý þrt   c                   @   s,   e Zd ZejZedd„ ƒZeddd„ƒZdS )r‘   c                 C   s¤   g }|  |d@ ¡ d|  kr&dk r,q^ nq^d|  kr@dkrNn n
|  d¡ |dL }|sq^qdd„ |D ƒ}|  tt|ƒƒ¡ |  tt| jƒƒ¡ | ¡  d |¡S )	Nr=   i�ÿÿÿr   r@   r>   c                 S   s   g | ]}t t|ƒƒ‘qS r'   )r   r^   )rK   rF   r'   r'   r(   Ú
<listcomp>¬  r*   z(BERcodec_INTEGER.enc.<locals>.<listcomp>r*   )ÚappendrD   rA   r   r^   r[   ÚreverserO   )rl   rT   Zlsr7   r'   r'   r(   r�   Ÿ  s    
zBERcodec_INTEGER.encNFc                 C   sX   |   |¡\}}}d}|rJt|d ƒd@ r,d}|D ]}|dK }|t|ƒO }q0|  |¡|fS )Nr   r@   éÿÿÿÿr>   )r~   r   ru   )rl   r7   r�   rb   rd   r†   rP   rF   r'   r'   r(   r‡   ²  s    zBERcodec_INTEGER.do_dec)NF)	r$   r%   r&   r   ZINTEGERr[   r”   r�   r‡   r'   r'   r'   r(   r‘   œ  s   
  ýr‘   c                   @   s   e Zd ZejZdS )ÚBERcodec_BOOLEANN)r$   r%   r&   r   ZBOOLEANr[   r'   r'   r'   r(   r™   Ä  s   r™   c                   @   s,   e Zd ZejZeddd„ƒZedd„ ƒZdS )ÚBERcodec_BIT_STRINGNFc                 C   s’   |   |¡\}}}t|ƒdkr‚t|d ƒ}|r@|dkr@td|d�‚d dd„ |dd … D ƒ¡}|dkrr|d | … }| j |¡|fS td	|d�‚d S )
Nr   rH   z4BERcodec_BIT_STRING: too many unused_bits advertisedrE   r]   c                 s   s    | ]}t t|ƒƒ d ¡V  qdS )r>   N)r   r   Úzfill©rK   rP   r'   r'   r(   rM   Û  r*   z-BERcodec_BIT_STRING.do_dec.<locals>.<genexpr>r?   z@BERcodec_BIT_STRING found no content (not even unused_bits byte))r~   rA   r   r9   rO   r[   ru   )rl   r7   r�   rb   rd   r†   Úunused_bitsÚfsr'   r'   r(   r‡   Ë  s     þýzBERcodec_BIT_STRING.do_decc                 C   s†   t |ƒ}t|ƒd dkrd}ndt|ƒd  }|d| 7 }d dd„ tt|ƒgd Ž D ƒ¡}t|ƒ| }tt| jƒƒtt|ƒƒ | S )Nr>   r   ó   0r*   c                 s   s,   | ]$}t td  dd„ |D ƒ¡dƒƒV  qdS )r*   c                 s   s   | ]}t |ƒV  qd S r+   rI   )rK   Úyr'   r'   r(   rM   ð  r*   z4BERcodec_BIT_STRING.enc.<locals>.<genexpr>.<genexpr>é   N)r   ry   rO   rœ   r'   r'   r(   rM   ð  s   ÿz*BERcodec_BIT_STRING.enc.<locals>.<genexpr>)	r   rA   rO   ÚzipÚiterr   r^   r[   rD   )rl   Ú_sr7   r�   r'   r'   r(   r�   æ  s    
ÿzBERcodec_BIT_STRING.enc)NF)	r$   r%   r&   r   Z
BIT_STRINGr[   r”   r‡   r�   r'   r'   r'   r(   rš   È  s     ýrš   c                   @   s,   e Zd ZejZedd„ ƒZeddd„ƒZdS )r�   c                 C   s&   t |ƒ}tt| jƒƒtt|ƒƒ | S r+   )r   r   r^   r[   rD   rA   )rl   r¤   r7   r'   r'   r(   r�   ù  s    zBERcodec_STRING.encNFc                 C   s    |   |¡\}}}| j |¡|fS r+   )r~   r[   ru   )rl   r7   r�   rb   rd   r†   r'   r'   r(   r‡      s    zBERcodec_STRING.do_dec)NF)	r$   r%   r&   r   ÚSTRINGr[   r”   r�   r‡   r'   r'   r'   r(   r�   ö  s   
  ýr�   c                       s&   e Zd ZejZe‡ fdd„ƒZ‡  ZS )ÚBERcodec_NULLc                    s.   |dkrt t| jƒƒd S t| | ƒ |¡S d S )Nr   ó    )r   r^   r[   rh   r�   )rl   rT   rp   r'   r(   r�     s    zBERcodec_NULL.enc)	r$   r%   r&   r   ZNULLr[   r”   r�   rr   r'   r'   rp   r(   r¦     s   r¦   c                   @   s,   e Zd ZejZedd„ ƒZeddd„ƒZdS )ÚBERcodec_OIDc                 C   sŠ   t |ƒ}|r(dd„ | d¡ d¡D ƒ}ntƒ }t|ƒdkrX|d  d|d  7  < |d= d d	d
„ |D ƒ¡}tt| jƒƒt	t|ƒƒ | S )Nc                 S   s   g | ]}t |ƒ‘qS r'   )ry   rœ   r'   r'   r(   r•     r*   z$BERcodec_OID.enc.<locals>.<listcomp>ó   .r¡   r?   é(   r   r*   c                 s   s   | ]}t |ƒV  qd S r+   )rQ   rJ   r'   r'   r(   rM   %  r*   z#BERcodec_OID.enc.<locals>.<genexpr>)
r   ÚstripÚsplitÚlistrA   rO   r   r^   r[   rD   )rl   Z_oidÚoidÚlstr7   r'   r'   r(   r�     s    zBERcodec_OID.encNFc                 C   s~   |   |¡\}}}g }|r0t|ƒ\}}| |¡ qt|ƒdkr`| d|d d ¡ |d  d;  < |  d dd„ |D ƒ¡¡|fS )Nr   rª   r?   r©   c                 s   s   | ]}t |ƒ d ¡V  qdS )ÚasciiN)ÚstrÚencoderJ   r'   r'   r(   rM   8  r*   z&BERcodec_OID.do_dec.<locals>.<genexpr>)r~   rU   r–   rA   rN   ru   rO   )rl   r7   r�   rb   rd   r†   r¯   r'   r'   r(   r‡   (  s    þzBERcodec_OID.do_dec)NF)	r$   r%   r&   r   ZOIDr[   r”   r�   r‡   r'   r'   r'   r(   r¨     s   
  ýr¨   c                   @   s   e Zd ZejZdS )ÚBERcodec_ENUMERATEDN)r$   r%   r&   r   Z
ENUMERATEDr[   r'   r'   r'   r(   r³   =  s   r³   c                   @   s   e Zd ZejZdS )ÚBERcodec_UTF8_STRINGN)r$   r%   r&   r   ZUTF8_STRINGr[   r'   r'   r'   r(   r´   A  s   r´   c                   @   s   e Zd ZejZdS )ÚBERcodec_NUMERIC_STRINGN)r$   r%   r&   r   ZNUMERIC_STRINGr[   r'   r'   r'   r(   rµ   E  s   rµ   c                   @   s   e Zd ZejZdS )ÚBERcodec_PRINTABLE_STRINGN)r$   r%   r&   r   ZPRINTABLE_STRINGr[   r'   r'   r'   r(   r¶   I  s   r¶   c                   @   s   e Zd ZejZdS )ÚBERcodec_T61_STRINGN)r$   r%   r&   r   Z
T61_STRINGr[   r'   r'   r'   r(   r·   M  s   r·   c                   @   s   e Zd ZejZdS )ÚBERcodec_VIDEOTEX_STRINGN)r$   r%   r&   r   ZVIDEOTEX_STRINGr[   r'   r'   r'   r(   r¸   Q  s   r¸   c                   @   s   e Zd ZejZdS )ÚBERcodec_IA5_STRINGN)r$   r%   r&   r   Z
IA5_STRINGr[   r'   r'   r'   r(   r¹   U  s   r¹   c                   @   s   e Zd ZejZdS )ÚBERcodec_GENERAL_STRINGN)r$   r%   r&   r   ZGENERAL_STRINGr[   r'   r'   r'   r(   rº   Y  s   rº   c                   @   s   e Zd ZejZdS )ÚBERcodec_UTC_TIMEN)r$   r%   r&   r   ZUTC_TIMEr[   r'   r'   r'   r(   r»   ]  s   r»   c                   @   s   e Zd ZejZdS )ÚBERcodec_GENERALIZED_TIMEN)r$   r%   r&   r   ZGENERALIZED_TIMEr[   r'   r'   r'   r(   r¼   a  s   r¼   c                   @   s   e Zd ZejZdS )ÚBERcodec_ISO646_STRINGN)r$   r%   r&   r   ZISO646_STRINGr[   r'   r'   r'   r(   r½   e  s   r½   c                   @   s   e Zd ZejZdS )ÚBERcodec_UNIVERSAL_STRINGN)r$   r%   r&   r   ZUNIVERSAL_STRINGr[   r'   r'   r'   r(   r¾   i  s   r¾   c                   @   s   e Zd ZejZdS )ÚBERcodec_BMP_STRINGN)r$   r%   r&   r   Z
BMP_STRINGr[   r'   r'   r'   r(   r¿   m  s   r¿   c                   @   s,   e Zd ZejZedd„ ƒZeddd„ƒZdS )ÚBERcodec_SEQUENCEc                    sF   t |tƒr|}nd ‡ fdd„|D ƒ¡}ttˆ jƒƒtt|ƒƒ | S )Nr*   c                 3   s   | ]}|  ˆ j¡V  qd S r+   )r�   rk   rœ   ©rl   r'   r(   rM   z  r*   z(BERcodec_SEQUENCE.enc.<locals>.<genexpr>)r4   rŽ   rO   r   r^   r[   rD   rA   )rl   Z_llrB   r'   rÁ   r(   r�   t  s    
zBERcodec_SEQUENCE.encNFc              
   C   sÞ   |d u r| j j}|  |¡\}}|d |… ||d …  }}g }|r¸zt |||¡\}}	|	}W nP tyª }
 z8|
 j|7  _|
jd urŽ| |
j¡ ||
_‚ W Y d }
~
n
d }
~
0 0 | |¡ q<t	|ƒ|k rÐtd|d�‚|  
|¡|fS )Nz#Not enough bytes to decode sequence)r:   )r[   r�   r}   rt   rƒ   r9   r.   r:   r–   rA   ru   )rl   r7   r�   rb   rB   Ústr†   ÚobjrŠ   r‹   Úerrr'   r'   r(   r‡   }  s.    ÿ
ÿzBERcodec_SEQUENCE.do_dec)NF)	r$   r%   r&   r   ZSEQUENCEr[   r”   r�   r‡   r'   r'   r'   r(   rÀ   q  s   
  ýrÀ   c                   @   s   e Zd ZejZdS )ÚBERcodec_SETN)r$   r%   r&   r   ZSETr[   r'   r'   r'   r(   rÅ   œ  s   rÅ   c                   @   s,   e Zd ZejZedd„ ƒZeddd„ƒZdS )ÚBERcodec_IPADDRESSc                 C   sF   zt |ƒ}W n ty&   tdƒ‚Y n0 tt| jƒƒtt|ƒƒ | S )Nz!IPv4 address could not be encoded)r   r,   r)   r   r^   r[   rD   rA   )rl   Úipaddr_asciir7   r'   r'   r(   r�   £  s
    zBERcodec_IPADDRESS.encNFc                 C   sJ   |   |¡\}}}zt|ƒ}W n ty:   td|d�‚Y n0 |  |¡|fS )NzIP address could not be decodedrE   )r~   r	   r,   r9   ru   )rl   r7   r�   rb   rd   r†   rÇ   r'   r'   r(   r‡   ¬  s    ÿzBERcodec_IPADDRESS.do_dec)NF)	r$   r%   r&   r   Z	IPADDRESSr[   r”   r�   r‡   r'   r'   r'   r(   rÆ      s
   
rÆ   c                   @   s   e Zd ZejZdS )ÚBERcodec_COUNTER32N)r$   r%   r&   r   Z	COUNTER32r[   r'   r'   r'   r(   rÈ   ¸  s   rÈ   c                   @   s   e Zd ZejZdS )ÚBERcodec_GAUGE32N)r$   r%   r&   r   ZGAUGE32r[   r'   r'   r'   r(   rÉ   ¼  s   rÉ   c                   @   s   e Zd ZejZdS )ÚBERcodec_TIME_TICKSN)r$   r%   r&   r   Z
TIME_TICKSr[   r'   r'   r'   r(   rÊ   À  s   rÊ   )r   )r?   )r   )NNNFr]   )NNN)VÚ__doc__Ú
__future__r   Zscapy.errorr   Zscapy.compatr   r   r   Zscapy.utilsr   r   r	   Zscapy.asn1.asn1r
   r   r   r   r   r   r   r   r   r   r   Z
scapy.libsr   r   r   r   r   r   r   r   r   r   r   r    r!   r,   r"   r)   r9   r;   rD   rG   rQ   rU   rX   r\   re   rf   rg   rs   Úadd_metaclassrt   r‚   Zregister_stemry   r‘   r™   r±   rš   r�   r¦   rŽ   r¨   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   r¾   r¿   rÀ   rÅ   rÆ   rÈ   rÉ   rÊ   r'   r'   r'   r(   Ú<module>   sp   48ÿ


     û
&
u(.&$+