o
    "“i  ã                   @  sÜ   d dl mZ d dlZd dlZd dlZejdk r(d dlZejdk r$ejZnejZnejZd dlm	Z	 ej
ddd�Ze 
d	¡Ze	jZd dd„Zd!dd„Zd"dd„Zejdk raejdd�d#dd„ƒZdS ejdd�d#dd„ƒZdS )$é    )ÚannotationsN)é   é   )r   é	   )Údeclarative_asn1ÚTT)Ú	covariantÚUÚ
field_typeú
typing.AnyÚ
field_nameÚstrÚreturnúdeclarative_asn1.AnnotatedTypec                 C  sL   t  ¡ }t| dƒr| j}t|t jƒstd|› �ƒ‚|S t  | ¡}t  ||¡S )NÚ__asn1_root__zunsupported root type: )r   Ú
AnnotationÚhasattrr   Ú
isinstanceÚAnnotatedTypeÚ	TypeErrorÚnon_root_python_to_rust)r
   r   Ú
annotationÚannotated_rootÚrust_field_type© r   ú]/var/www/html/premium_crap/venv/lib/python3.10/site-packages/cryptography/hazmat/asn1/asn1.pyÚ_normalize_field_type!   s   

r   Ú
raw_fieldsúdict[str, type]ú)dict[str, declarative_asn1.AnnotatedType]c                 C  s,   i }|   ¡ D ]\}}t||ƒ}|||< q|S )N)Úitemsr   )r   Úfieldsr   r
   Úannotated_field_typer   r   r   Ú_annotate_fields1   s
   

r#   Úclsútype[U]ÚNonec                 C  s:   t | dd�}t tj | t|ƒ¡t ¡ ¡}t| d|ƒ d S )NT)Úinclude_extrasr   )Úget_type_hintsr   r   ÚTypeÚSequencer#   r   Úsetattr)r$   r   Úrootr   r   r   Ú_register_asn1_sequence>   s   þr-   )Úkw_only_defaultc                 C  s@   t jdkrtjddddd�| ƒ}n	tjddd�| ƒ}t|ƒ |S )N)r   é
   FT©ÚreprÚeqÚ
match_argsÚkw_only)r1   r2   )ÚsysÚversion_infoÚdataclassesÚ	dataclassr-   ©r$   Údataclass_clsr   r   r   ÚsequenceP   s"   
ø	÷þýr;   c                 C  s"   t jddddd�| ƒ}t|ƒ |S )NFTr0   )r7   r8   r-   r9   r   r   r   r;   i   s   üû)r
   r   r   r   r   r   )r   r   r   r   )r$   r%   r   r&   )r$   r%   r   r%   )Ú
__future__r   r7   r5   Útypingr6   Útyping_extensionsr(   Ú"cryptography.hazmat.bindings._rustr   ÚTypeVarr   r	   Ú
encode_derr   r#   r-   Údataclass_transformr;   r   r   r   r   Ú<module>   s,   








