o
    5h                  	   @   s   d dl Z z
d dlZe ZW n eefy   dZY nw d dlmZmZm	Z	 e j
d d dk s3edkrTd dlmZmZ e j
d  dkrDeZddd	Zdd
dZdd ZdS ddd	ZdddZdd ZdS )    NCPython)oct2intnullensureString   )   r   )a2b_hexb2a_hexFc                 C   sF   | sdS t tt| d}|r!t| d d@ r!|dt| d >  S |S )Nr               )longr	   r   r   len)octetssignedvalue r   i/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/pyasn1/compat/integer.py
from_bytes   s   r   c                 C   s4  | dk r|rt | }d|> }| | | }ntd| dkr#|dkr#tS d}| }t|dd  }|dr:|d d }t|d@ rDd| }| |ksJ|rtt|d }t||}||krhd	|| d d
 d  | }n|rt|| dkrttdt|d d d}	|r|	d@ r| dkrd	| }n| dk rd| }t|}
|
S )Nr   r   z&can't convert negative int to unsignedr   L0   00r      zint too big to convertr
   r   ff)		bitLengthOverflowErrorr   hexendswithr   maxintr   )r   r   lengthbitsmaxValuevalueToEncodehexValue	hexLength	padLength
firstOctetoctets_valuer   r   r   to_bytes$   s@   

r,   c                 C   sF   t t| }t|d }|dr|d8 }|d@ r|d7 }|d9 }|S )Nr   r   r   r   )r   absr   r    )numberr'   r$   r   r   r   r   T   s   
r   c                 C   s   t jt| d|dS )Nbigr   )r"   r   bytes)r   r   r   r   r   r   b   s   c                 C   sJ   t |  |}|r|d dkr|d7 }| j|d |d rdpd d|dS )Nr   r   r   r/   r0   )r!   
bit_lengthr,   )r   r   r#   r   r   r   r,   e   s   $c                 C   s   t |  S )N)r"   r2   )r.   r   r   r   r   m   s   )F)Fr   )sysplatformpython_implementationimplementationImportErrorAttributeErrorpyasn1.compat.octetsr   r   r   version_infobinasciir   r	   r"   r   r   r,   r   r   r   r   r   <module>   s$   

0

