HOME


Mini Shell 1.0
DIR: /lib/python3/dist-packages/pyasn1/codec/ber/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/pyasn1/codec/ber/__pycache__/decoder.cpython-312.pyc
�

c��]<����ddlmZddlmZddlmZddlmZddlmZm	Z	m
Z
mZddlm
Z
ddlmZddlmZdd	lmZdd
lmZddlmZdgZej(eej,�
�Ze
j0ZGd�de�ZGd�de�ZGd�de�Ze�ZGd�de�ZGd�de�ZGd�de�Z Gd�de�Z!Gd�de�Z"Gd�de�Z#Gd �d!e�Z$Gd"�d#e�Z%Gd$�d%e%�Z&Gd&�d'e&�Z'Gd(�d)e'�Z(Gd*�d+e'�Z)Gd,�d-e&�Z*Gd.�d/e*�Z+Gd0�d1e*�Z,Gd2�d3e%�Z-Gd4�d5e�Z.Gd6�d7e!�Z/Gd8�d9e!�Z0Gd:�d;e!�Z1Gd<�d=e!�Z2Gd>�d?e!�Z3Gd@�dAe!�Z4GdB�dCe!�Z5GdD�dEe!�Z6GdF�dGe!�Z7GdH�dIe!�Z8GdJ�dKe!�Z9GdL�dMe!�Z:GdN�dOe!�Z;GdP�dQe!�Z<iejzj|e��ej~j|e��ej�j|e ��ej�j|e!��ej�j|e"��ej�j|e#��ej�j|e��ej�j|e$��ej�j|e'��ej�j|e*��ej�j|e-��ej�j|e/��ej�j|e0��ej�j|e1��ej�j|e2��ej�j|e3��ej�j|e4��ej�j|e5�ej�j|e6�ej�j|e7�ej�j|e8�ej�j|e9�ej�j|e:�ej�j|e;�ej�j|e<�i�ZWej�j�e+�ej�j�e,�ej�j�e(�ej�j�e)�ej�j�e-�ej�j�e.�iZ\eWj��D]<Z^e^j���e^j�j�j�ZXeX��3eXe\vs�8e^e\eX<�>eadS�D�cgc]}|��c}\
ZbZcZdZeZfZgZhZiZjZkGdT�dUe�ZleleWe\�ZmyRcc}w)V�)�debug)�error)�eoo)�
from_bytes)�oct2int�	octs2ints�	ints2octs�null)�base)�char)�tag)�tagmap)�univ)�useful�decode)�flagsc�(�eZdZdZ		dd�Z		dd�Zy)�AbstractDecoderNc�2�tjd|����)NzDecoder not implemented for �r�PyAsn1Error�	�self�	substrate�asn1Spec�tagSet�length�state�	decodeFun�substrateFun�optionss	         �:/usr/lib/python3/dist-packages/pyasn1/codec/ber/decoder.py�valueDecoderzAbstractDecoder.valueDecoders�����F� L�M�M�c�2�tjd|����)Nz3Indefinite length mode decoder not implemented for rrs	         r"�indefLenValueDecoderz$AbstractDecoder.indefLenValueDecoder#s�����[a� c�d�dr$�NNNNN)�__name__�
__module__�__qualname__�protoComponentr#r&�r$r"rrs$���N�6:�26�N�>B�:>�er$rc�"�eZdZed��Zd�Zy)�AbstractSimpleDecoderc��|d|||dfS�Nr,)�
asn1Objectrrs   r"�substrateCollectorz(AbstractSimpleDecoder.substrateCollector+s����&�!�9�V�W�#5�5�5r$c��|jd�r|S|�|jj||��S|tur|S|j|�S)N�native�r)�getr+�clone�noValue�rrr�valuer!s     r"�_createComponentz&AbstractSimpleDecoder._createComponent/sQ���;�;�x� ��L�
�
��&�&�,�,�U�6�,�B�B�
�g�
��O��>�>�%�(�(r$N)r(r)r*�staticmethodr2r;r,r$r"r.r.*s���6��6�)r$r.c�H�eZdZejd�Z		dd�Z		dd�Zy)�ExplicitTagDecoder�Nc���|r||j||dfi|��||�S|d|||d}
}	||	|||fi|��\}}tr,tdt|�tj|�fz�||
fS)Nr?zPexplicit tag container carries %d octets of trailing payload (will be lost!): %s)r;�LOG�lenr�hexdump)
rrrrrrrr r!�head�tailr:�_s
             r"r#zExplicitTagDecoder.valueDecoder=s�����%��%�%�h���F�g�F��6��
�
�w��'��6�7�);�d���T�8�V�V�G�w�G���q���&�),�Q�����q�1A�(B�C�
D��d�{�r$c���|r||j||dfi|��||�S|||||fi|��\}	}||fddi|��\}
}|
tjur|	|fStjd��)Nr?�allowEooTz Missing end-of-octets terminator)r;r�endOfOctetsrr)rrrrrrrr r!r:�	eooMarkers           r"r&z'ExplicitTagDecoder.indefLenValueDecoderQs�����%��%�%�h���F�g�F��6��
�
%�Y��&�&�T�G�T���y�(��M�T�M�W�M��	�9�����'��)�#�#��#�#�$F�G�Gr$r'�r(r)r*r�Anyr+r#r&r,r$r"r>r>:s-���T�X�X�b�\�N�6:�26��*>B�:>�Hr$r>c�<�eZdZejd�Z		dd�Zy)�IntegerDecoderrNc��|djtjk7rtjd��|d|||d}
}	|	s|j
||dfi|��|
fSt
|	d��}|j
|||fi|��|
fS)Nr�Simple tag format expectedT)�signed)�	tagFormatr
�tagFormatSimplerrr;r)rrrrrrrr r!rDrEr:s            r"r#zIntegerDecoder.valueDecoderks���
�!�9���#�"5�"5�5��#�#�$@�A�A��w��'��6�7�);�d���(�4�(�(��6�1�H��H�$�N�N��4��-��$�t�$�$�X�v�u�H��H�$�N�Nr$r')r(r)r*r�Integerr+r#r,r$r"rNrNhs��!�T�\�\�!�_�N�6:�26�Or$rNc�6�eZdZejd�Zd�Zy)�BooleanDecoderrc�D�tj||||xrdxsdfi|��S)N�r)rNr;r9s     r"r;zBooleanDecoder._createComponent�s2���.�.��(�F�E�K�a�$4�1�A�8?�A�	Ar$N)r(r)r*r�Booleanr+r;r,r$r"rVrV}s��!�T�\�\�!�_�N�Ar$rVc�L�eZdZejd�ZdZ		dd�Z		dd�Zy)�BitStringDecoderr,TNc��|d|||d}
}	|r!||j||tfi|��||�S|	stjd��|djt
jk(rct|	d�}|dkDrtjd|z��|jj|	ddd|��}|j|||fi|��|
fS|js,tjd|jjz��trtd	�|j}|jjtd�
�}
|	ri||	|jfd|i|��\}}	t|d�}|dkDrtjd|z��|jj|ddd|
|��}
|	r�i|j|||
fi|��|
fS)
NzEmpty BIT STRING substrater��Trailing bits overflow %srXT)�internalFormat�padding�*Constructed encoding form prohibited at %s�$assembling constructed serialization�r_r �r_�prependr`)r;r8rrrRr
rSrr+�fromOctetString�supportConstructedForm�	__class__r(rAr2r
)rrrrrrrr r!rDrE�trailingBitsr:�	bitString�	components               r"r#zBitStringDecoder.valueDecoder�s!���w��'��6�7�);�d���� 5�� 5� 5��&�'�!6�-4�!6�7@�&�J�
J���#�#�$@�A�A��!�9���#�"5�"5�5�"�4��7�+�L��a���'�'�/�,�>����'�'�7�7��Q�R���|�8�E�E�)�4�(�(��6�5�L�G�L�d�R�R��*�*��#�#�%,�.2�n�n�.E�.E�%F�G�
G���6�7��.�.���'�'�7�7��T�7�R�	��'��d�.A�.A�N�5A�N�EL�N�O�I�t�#�9�Q�<�0�L��a���'�'�/�,�>����+�+�;�;��!�"�
�d�!�<�<��I��%�t�$�$�X�v�y�L�G�L�d�R�Rr$c��|r!||j||tfi|��||�S|j}|jj	t
d��}	|r}|||jf|dd�|��\}
}|
tjurnet|
d�}|dkDrtjd|z��|jj	|
ddd|	|��}	|r�}tjd	��|j|||	fi|��|fS)
NTrc�r rHrr]r^rXrd�!No EOO seen before substrate ends)r;r8r2r+rfr
rrIrrr�SubstrateUnderrunError)rrrrrrrr r!rjrkris            r"r&z%BitStringDecoder.indefLenValueDecoder�s3��
�� 5�� 5� 5�h��� [�SZ� [�]f�hn�o�o��.�.���'�'�7�7��T�7�R�	��#,�Y��8K�8K�$G�:F�6:�$G�>E�$G� �I�y��C�O�O�+��"�9�Q�<�0�L��a���'�'�/�,�>����+�+�;�;��!�"�
�d�!�<�<��I��&�.�.�/R�S�S�$�t�$�$�X�v�y�L�G�L�i�W�Wr$r')	r(r)r*r�	BitStringr+rgr#r&r,r$r"r[r[�s6��#�T�^�^�B�'�N�!��6:�26�5S�p>B�:>�"Xr$r[c�L�eZdZejd�ZdZ		dd�Z		dd�Zy)�OctetStringDecoderr?TNc���|d|||d}
}	|r!||j||tfi|��||�S|djtjk(r|j|||	fi|��|
fS|j
s,t
jd|jjz��trtd�|j}t}|	r!||	|jfd|i|��\}}	||z
}|	r�!|j|||fi|��|
fS)Nrrarbr )r;r8rRr
rSrgrrrhr(rAr2r
r+)
rrrrrrrr r!rDrE�headerrks
             r"r#zOctetStringDecoder.valueDecoder�s/���w��'��6�7�);�d���� 5�� 5� 5�h��� [�SZ� [� )�6�3�
3��!�9���#�"5�"5�5�(�4�(�(��6�4�K�7�K�T�Q�Q��*�*��#�#�$P�SW�Sa�Sa�Sj�Sj�$j�k�k���6�7��.�.�����'��d�.A�.A�3�5A�3�*1�3�O�I�t�
�i��F�	�%�t�$�$�X�v�v�I��I�4�O�Or$c�R�|r1||jur#|j||tfi|��}	||	||�S|j}t}
|r5|||jf|dd�|��\}}|t
jurn|
|z
}
|r�5tjd��|j|||
fi|��|fS)NTrmrn)	r2r;r8r
r+rrIrro)rrrrrrrr r!r1rtrks            r"r&z'OctetStringDecoder.indefLenValueDecoder	s����L��0G�0G�G�.��.�.�x���T�G�T�J��
�I�v�>�>��.�.�����#,�Y�-1�-@�-@�$G�:F�6:�$G�?F�$G� �I�y��C�O�O�+���i��F���.�.�3��
�%�t�$�$�X�v�v�I��I�9�T�Tr$r')	r(r)r*r�OctetStringr+rgr#r&r,r$r"rrrr�s8��%�T�%�%�b�)�N�!��6:�26�P�B>B�:>�Ur$rrc�<�eZdZejd�Z		dd�Zy)�NullDecoderr?Nc���|djtjk7rtjd��|d|||d}
}	|j
||dfi|��}|	rtjd|z��||
fS)NrrPr?z&Unexpected %d-octet substrate for Null)rRr
rSrrr;)rrrrrrrr r!rDrErks            r"r#zNullDecoder.valueDecoder+s���
�!�9���#�"5�"5�5��#�#�$@�A�A��w��'��6�7�);�d��)�D�)�)�(�F�B�J�'�J�	���#�#�$L�v�$U�V�V��$��r$r')r(r)r*r�Nullr+r#r,r$r"rxrx(s���T�Y�Y�r�]�N�6:�26�r$rxc�<�eZdZejd�Z		dd�Zy)�ObjectIdentifierDecoderr,Nc��|djtjk7rtjd��|d|||d}
}	|	stjd��t|	�}	d}d}t
|	�}
||
kr�|	|}|dz
}|dkr||fz
}nm|dkDrN|}d}|dk\r8|dz|dzz}||
k\rtjd	|����|	|}|dz
}|dk\r�8||dz|zfz
}n|dk(rtjd
��||
kr��d|dcxkrdkr	nnd|z}nVd
|dcxkrdkrnnd|dd
z
f|ddz}n4|ddk\rd|ddz
f|ddz}ntjd|	dz��|j|||fi|��|
fS)NrrPzEmpty substrater,rX�r]�z!Short substrate for sub-OID past z"Invalid octet 0x80 in OID encoding�')r�(�O�P�zMalformed first OID octet: %s)	rRr
rSrrrrBror;)rrrrrrrr r!rDrE�oid�index�substrateLen�subId�	nextSubIds                r"r#z$ObjectIdentifierDecoder.valueDecoder@s����!�9���#�"5�"5�5��#�#�$@�A�A��w��'��6�7�);�d����#�#�$5�6�6����������4�y���l�"���K�E��Q�J�E��s�{���x������!�	����3�&�"�a�Z�I��,<�=�E���,�#�:�:�EH�J���!%�U��I��Q�J�E� �3�&���!��y�0�2�2���#��
�'�'�(L�M�M�/�l�"�4
��A���"����*�C�
�3�q�6�
�R�
��c�!�f�r�k�"�S���W�,�C�
��V�r�\��c�!�f�r�k�"�S���W�,�C��#�#�$C�d�1�g�$M�N�N�$�t�$�$�X�v�s�F�g�F��L�Lr$r')r(r)r*r�ObjectIdentifierr+r#r,r$r"r|r|=s"��*�T�*�*�2�.�N�6:�26�3Mr$r|c�:�eZdZej�Z		dd�Zy)�RealDecoderNc��|djtjk7rtjd��|d|||d}
}	|	s|j
||dfi|��|
fSt
|	d�}|	dd}	|dz�r|	stjd��trtd�|dzdz}|d	k(rt
|	d�}|	dd}	|	d||	|d}	}
|
r|	stjd
��t
|
d�dzxrdxsd}|
r|dz}|t
|
d�z}|
dd}
|
r�|d	z	dz}|d
kDrtjd��|dk(r|dz}n
|d
k(r|d	z}d}|	r|dz}|t
|	d�z}|	dd}	|	r�|dzr|}|d
z	dz}|d
|zz}|d
|f}n�|dzrtrtd�|dzxrdxsd}n�|dzdk(r�|	stjd��trtd�	|dzdk(rt|	�ddf}n@|dzd
k(rt|	�}n,|dzdk(rt|	�}ntjd|z��ntjd|z��|j
|||fi|��|
fS#t$rtjd��wxYw)NrrPgrXr~zIncomplete floating-point valuezdecoding binary encoded REAL��zReal exponent screwed����r�zIllegal Real base�@zdecoding infinite REALz-inf�inf�zdecoding character encoded REAL�
zUnknown NR (tag %s)zBad character Real syntaxzUnknown encoding (tag %s))rRr
rSrrr;rrA�int�floatro�
ValueError)rrrrrrrr r!rDrE�fo�n�eo�e�b�p�sfr:s                   r"r#zRealDecoder.valueDecoderys���!�9���#�"5�"5�5��#�#�$@�A�A��w��'��6�7�);�d���(�4�(�(��6�3�J�'�J�D�P�P�
�T�!�W�
���A�B�x��
��9���'�'�(I�J�J���2�3��d��a��A��A�v��D��G�$���A�B�x���B�Q�x��a�b���B��T��'�'�(?�@�@���1����%�,�"�1��A���a����W�R��U�^�#�����V���
�a��$��A��1�u��'�'�(;�<�<��A�v��Q����a���Q����A���a����W�T�!�W�%�%���A�B�x���
�D�y��B���q��4��B�
��b��L�A���1�I�E�
�$�Y���,�-���I�(�&�1�E�E�
�$�Y�!�^���'�'�(I�J�J���5�6�
���8�s�?� ��Y��A�.�E��#�X��_�!�$�K�E��#�X��_�!�$�K�E� �6�6�-��2�����.�.�+�b�0��
�%�t�$�$�X�v�u�H��H�$�N�N���
��2�2�/���
�s
�"AI)�)Jr')r(r)r*r�Realr+r#r,r$r"r�r�vs���T�Y�Y�[�N�6:�26�eOr$r�c��eZdZdZy)�AbstractConstructedDecoderN)r(r)r*r+r,r$r"r�r��s���Nr$r�c�@�eZdZdZdZd�Zd�Zdd�Z		dd�Z		dd�Z	y)	�UniversalConstructedTypeDecoderNc��t��r0��NotImplementedError)rr1�idxs   r"�_getComponentTagMapz3UniversalConstructedTypeDecoder._getComponentTagMap����!�#�#r$c��t��r0r�)rr1rr�s    r"�_getComponentPositionByTypez;UniversalConstructedTypeDecoder._getComponentPositionByType�r�r$c��g}t�}|rN||fi|��\}}|tjurn/|j|�|j	|j
�|r�Nt
|�dkDr
|j}n|j}|jtj|j
jg|j�����}	trtd|	z�t|�D]\}
}|	j!|
|ddd���|	|fS)NrXr5z@guessed %r container type (pass `asn1Spec` to guide the decoder)F��verifyConstraints�	matchTags�matchConstraints)�setrrI�append�addrrB�protoRecordComponent�protoSequenceComponentr7r
�TagSet�baseTag�	superTagsrA�	enumerate�setComponentByPosition)rrrrr!�
components�componentTypesrkr+r1r�s           r"�_decodeComponentsz1UniversalConstructedTypeDecoder._decodeComponents�s���
�����#,�Y�#B�'�#B� �I�y��C�O�O�+�����i�(����y�/�/�0�
��~���"�!�6�6�N�"�8�8�N�#�)�)��:�:�n�3�3�;�;�O�f�>N�>N�O�*�
�
����'�(�
)�(�
�3�	�N�C���-�-��Y�"'��%�
.�
�	��9�$�$r$c
�

�|djtjk7rtjd��|d|||d}
}	|�^|�|j�}nA|j�|jj|��}n|j|jf}||||�S|�Q|j|	f||d�|��\}}|r2tr,tdt|�tj|�fz�||
fS|j�}|j�|jt j"jt j$jfv�r�|j&}
|jt j$jk(}|xr
|
j(}tr&td|xrdxsd�d	|xrd
xsd�d|�d��t+�}d}|	r�|
sd}na|r
|
j,}nR	|r|
|j.}n?|
|j0s|
|j2r|
j5|�}n|
|j.}||	|fi|��\}}	|sZ|
rX|r|
j9|j:�}n:|
|j0s|
|j2r|
j=|j:|�}|j?||ddd��|jA|�|dz
}|	r��trtd|z�|
�r|
jBjE|�s,tjd|jFjHz��|
jJ�r�|jMdi�}tr3td�|jO�D]\}}t|�d|����|s|jMdd��rqtQ|
jR�D�]D\}}|jTs�|j0r|jW|�jXs�<|j[|jTj\�}	||}trtd|�d|���|jW|�}|jt j`jt jbjfvr9tQ|�D])\}}|||je�fd|i|��\}}|||<�+��||jW|�je�fd|i|��\}}|j?||���G||
fS|jf}|r|�||
fS|j�}|j�|j&}trtd|z�d}|	r+||	|fi|��\}}	|j?||ddd��|dz
}|	r�+||
fS#t6$rtjd
|����wxYw#t^$r�tr�td|jFjH�d|j\�d|jFjH�d|jTj\�d�	�|jTjO�D]\}}t|�d|����	|jT|}n%#t^$rtrtd|���YY���wxYwY��iwxYw) Nr�Constructed tag format expectedr5�rrz)Unused trailing %d octets encountered: %s�	decoding �non-r?�deterministic �SET� type � chosen by type ID� Excessive components decoded at Fr�rX�seen component indices %s�,ASN.1 object %s has uninitialized components�	openTypes�user-specified open types map:� -> �decodeOpenTypes�%default open types map of component "�.�" governed by component "�":�/failed to resolve open type by governing value �resolved open type � by governing value r�+decoding type %r chosen by given `asn1Spec`)4rRr
�tagFormatConstructedrrr7r+r�r�r�rArBrrC�clear�typeIdr�Sequence�Set�
componentType�hasOptionalOrDefaultr��tagMapUniquer1�
isOptional�isDefaulted�getTagMapNearPosition�
IndexError�getPositionByType�effectiveTagSet�getPositionNearTyper�r��requiredComponents�issubsetrhr(�hasOpenTypesr6�itemsr��
namedTypes�openType�getComponentByPosition�isValue�getComponentByName�name�KeyError�SetOf�
SequenceOf�asOctets�isInconsistent)rrrrrrrr r!rDrEr1�trailingr��	isSetType�isDeterministic�seenIndicesr�r�rkr��k�v�	namedType�governingValuer��containerValue�pos�containerElement�rest�
inconsistencys                               r"r#z,UniversalConstructedTypeDecoder.valueDecoders����!�9���#�":�":�:��#�#�$E�F�F��w��'��6�7�);�d���#��#�%�^�^�-�
��$�$�0�!�0�0�6�6�f�6�E�
�"�6�6��8S�8S�S�
��
�I�v�>�>���#9�4�#9�#9��$�#�y�$�<C�$� �J�����C��H�
�u�}�}�X�'>�G@�@�A��t�#�#��^�^�%�
������?�?�t�}�}�3�3�T�X�X�_�_�E�E�!�/�/�J� ���4�8�8�?�?�:�I�"+�m�S�J�4S�4S�0S�O���'�'�2�F�8�b�8�)�:M��:S�QS�:S�����%�K��C��!�$(�M��$.�$;�$;�M�
�*�,6�s�O�,F�,F�M�'��_�7�7�:�c�?�;V�;V�,6�,L�,L�S�,Q�M�-7�s�O�,F�,F�M�#,�D�-�"K�7�"K��	�4�&�:� �(�:�:�9�;T�;T�U��#�C��3�3�z�#��7R�7R�(�<�<�Y�=V�=V�X[�\���1�1���&+�#�e�2������$��q���O�R��/�+�=�>��!�4�4�=�=�k�J��+�+�%�'1�';�';�'D�'D�E�F�F��+�+� '���K�� <�I���<�=�$-�O�O�$5�5�D�A�q��a�� 3�4�5�!�G�K�K�0A�5�$I�.7�
�8M�8M�.N�=R�N�C��#,�#5�#5� (�(�3�3�J�<]�<]�^a�<b�<j�<j� (�-7�-J�-J� )� 2� 2� 7� 7�.�N�-�+4�^�+D��0 #� #�2:�N�%L�!M�.8�-N�-N�s�-S�N�-�4�4�$(�J�J�$5�$5�t���7M�7M�9O� O�>G�(6�>8�!D�$9�C�)9�7@�(6�s�(;�(D�(D�(F�7&�19�7&�=D�7&�O�I�t�
;D�N�3�$7�!D�3<�$.�$E�$E�c�$J�$S�$S�$U�3"�-5�3"�9@�3"��	�4�
!+� A� A�#�y� Q�{=R�r�4���3!+� 9� 9�
� �'�'�.�4���)"���)�J�����$�2�2�M���A�M�Q�R��C��"+�D�-�"K�7�"K��	�4��1�1���&+�#�e�2���q�����4����K&��#�/�/�DL�N�����t$,�-�#&�$'�/9�/C�/C�/L�/L�/8�~�~�/9�/C�/C�/L�/L�/8�/A�/A�/F�/F�)H�%I�1:�0B�0B�0H�0H�0J�%A���1�(+�!�Q�,?�(@�%A�!-�/8�/A�/A�.�/Q�H��'/�!-�'*�(+�:H�-K�)L�$,�	!-��%-�-�sD�(AV�V)�"V&�)BZ�	Y�Z�Y;�6Z�:Y;�;Z�Zc
�
�|djtjk7rtjd��|�^|�|j�}	nA|j�|jj|��}	n|j|jf}	||	||�S|�!|j|f||d�t|d����S|j�}	|	j�|jtjjtjjfv�r|	j }
|	jtjjk(}|xr
|
j"}t$r&t%d|xrdxsd	�d
|xrdxsd	�d|�d
��t'�}
d}|�r t)|
�|krd}na|r
|
j*}nR	|r|
|j,}n?|
|j.s|
|j0r|
j3|�}n|
|j,}|||fddi|��\}}|t6j8urn�|sZ|
rX|r|
j;|j<�}n:|
|j.s|
|j0r|
j?|j<|�}|	jA||ddd��|
jC|�|dz
}|r�� tjDd��t$rt%d|
z�|
�rO|
jFjI|
�s,tjd|	jJjLz��|
jN�r�|jQdi�}t$r3t%d�|jS�D]\}}t%|�d|����|s|jQdd��r�tU|
jV�D�]n\}}|jXs�|j.r|	j[|�j\s�<|	j_|jXj`�}	||}t$rt%d|�d |���|	j[|�}|jtjdjtjfjfvrDtU|�D]4\}}|||ji�fd!|it|d����\}}|||<�6��||	j[|�ji�fd!|it|d����\}}|t6j8us��]|	jA||���q|	|fS|	jj}|r|�|	|fS|j�}	|	j�|j }t$rt%d"|z�d}|rD|||fddi|��\}}|t6j8ur	|	|fS|	jA||ddd��|dz
}|r�DtjDd��#t4$rtjd|	����wxYw#tb$r�t$r�t%d|	jJjL�d|j`�d|	jJjL�d|jXj`�d�	�|jXjS�D]\}}t%|�d|����	|jX|}n%#tb$rt$rt%d|���YY��wxYwY���wxYw)#Nrr�r5r�T)rHr�r�r?r�r�r�r�r�rHFr�rXrnr�r�r�r�r�r�r�r�r�r�r�r�r�rr�)6rRr
r�rrr7r+r�r�r��dictr�r�rr�r�r�r�rAr�rBr�r1r�r�r�r�rrIr�r�r�r�r�ror�r�rhr(r�r6r�r�r�r�r�r�r�r�r�r�r�r�r�)rrrrrrrr r!r1r�r�r�r�r�rkr�r�r�r�r�r�r�r�r�rrr�s                            r"r&z4UniversalConstructedTypeDecoder.indefLenValueDecoder�s����!�9���#�":�":�:��#�#�$E�F�F��#��#�%�^�^�-�
��$�$�0�!�0�0�6�6�f�6�E�
�"�6�6��8S�8S�S�
��
�I�v�>�>���)�4�)�)���"(�I���w��.��
�
�^�^�%�
������?�?�t�}�}�3�3�T�X�X�_�_�E�E�#�1�1�J�"�)�)�T�X�X�_�_�<�I�"+�m�S�J�4S�4S�0S�O���'�'�2�F�8�b�8�)�:M��:S�QS�:S�����%�K��C���z�?�c�)�#�H��)�6�6�H�
�*�'1�#��'A�'A�H�'��_�7�7�:�c�?�;V�;V�'1�'G�'G��'L�H�(2�#��'A�'A�H�(1��H�'_�t�'_�W^�'_�$�	�9�����/��&�:� �(�:�:�9�;T�;T�U��#�C��3�3�z�#��7R�7R�(�<�<�Y�=V�=V�X[�\���1�1���&+�#�e�2������$��q���Q�V�2�2�7�����/�+�=�>��!�4�4�=�=�k�J��+�+�,Z�]g�]q�]q�]z�]z�,z�{�{��*�*� '���K�� <�I���<�=�$-�O�O�$5�5�D�A�q��a�� 3�4�5�!�G�K�K�0A�5�$I�.7�
�8M�8M�.N�>V�N�C��#,�#5�#5� (�(�3�3�J�<]�<]�^a�<b�<j�<j� (�-7�-J�-J� )� 2� 2� 7� 7�.�N�-�+4�^�+D��0 #� #�2:�N�%L�!M�.8�-N�-N�s�-S�N�-�4�4�$(�J�J�$5�$5�t���7M�7M�9O� O�>G�(6�>8�!D�$9�C�)9�7@�(6�s�(;�(D�(D�(F�7&�19�7&�=A�'�TX�=Y�7&�O�I�t�
;D�N�3�$7�!D�3<�$.�$E�$E�c�$J�$S�$S�$U�3"�-5�3"�9=�g�PT�9U�3"��	�4�
$-�C�O�O�#C�$.�$E�$E�c�9�$U�}>V�F�9�$�$�E%/�$=�$=�M�$�+�+�@�9�$�$�;"���)�J�����$�2�2�M���A�M�Q�R��C��'0��M�'d�TX�'d�\c�'d�$�	�9�����/���9�$�$��1�1���&+�#�e�2���q�����2�2�7����_&��#�/�/�DN�P�����|$,�-�#&�$'�/9�/C�/C�/L�/L�/8�~�~�/9�/C�/C�/L�/L�/8�/A�/A�/F�/F�)H�%I�1:�0B�0B�0H�0H�0J�%A���1�(+�!�Q�,?�(@�%A�!-�/8�/A�/A�.�/Q�H��'/�!-�'*�(+�:H�-K�)L�$,�	!-��%-�-�sD�;AW�W;�"W8�;B[�Z+�*[�+[
�[�[
�
[�[)NNr')
r(r)r*r�r�r�r�r�r#r&r,r$r"r�r��s<����!��$�$�'%�T6:�26�I �X>B�:>�O%r$r�c�P�eZdZej�Zej�Zy)�SequenceOrSequenceOfDecoderN)r(r)r*rr�r�r�r�r,r$r"rr�s��(�4�=�=�?��,�T�_�_�.�r$rc�.�eZdZej�Zy)�SequenceDecoderN)r(r)r*rr�r+r,r$r"rr�s��"�T�]�]�_�Nr$rc�.�eZdZej�Zy)�SequenceOfDecoderN)r(r)r*rr�r+r,r$r"r	r	����$�T�_�_�&�Nr$r	c�P�eZdZej�Zej�Zy)�SetOrSetOfDecoderN)r(r)r*rr�r�r�r�r,r$r"rr�s��#�4�8�8�:��'�T�Z�Z�\�r$rc�.�eZdZej�Zy)�
SetDecoderN)r(r)r*rr�r+r,r$r"rr�s���T�X�X�Z�Nr$rc�.�eZdZej�Zy)�SetOfDecoderN)r(r)r*rr�r+r,r$r"rr�s���T�Z�Z�\�Nr$rc�F�eZdZej�Z		dd�Z		dd�Zy)�
ChoiceDecoderNc���|d|||d}
}	|�|jj|��}n|j�}|r
||||�S|j|k(r-trtd|�d��||	|jfi|��\}}	n/trtd|�d��||	|j|||fi|��\}}	|j
}
trtd|�d|
���|j
|
|dddd��||
fS)	Nr5r�� as explicitly tagged CHOICE� as untagged CHOICE�decoded component �, effective tag set F�r�r�r��	innerFlag)r+r7rrA�componentTagMapr��setComponentByType)rrrrrrrr r!rDrEr1rkr�s              r"r#zChoiceDecoder.valueDecoder�s���w��'��6�7�);�d�����,�,�2�2�&�2�A�J�"���)�J���
�I�v�>�>�����&����I�J�'��j�0�0��4;��O�I�t�
���@�A�'��j�0�0�����)0��O�I�t�
$�3�3����	�?�[�\��%�%��Y�#��e��		&�	
��4��r$c�Z�|�|jj|��}	n|j�}	|r
||	||�S|	j|k(rktrtd|�d��|||	jj
fi|��\}
}||fddi|��\}}|tjurNtjd��trtd|�d��|||	jj
|||fi|��\}
}|
j}trtd|
�d	|���|	j||
d
d
d
d
��|	|fS)Nr5r�rrHTrnrrrFr)r+r7rrAr�r�rrIrrr�r)
rrrrrrrr r!r1rkrJr�s
             r"r&z"ChoiceDecoder.indefLenValueDecodersU�����,�,�2�2�&�2�A�J�!���)�J���
�I�v�>�>�����&����I�J�#,��:�3�3�@�@�$�DK�$� �I�y�
$-��$�$(�$�,3�$� �I�y�����/��'�'�(K�L�L����@�A�#,��:�3�3�@�@����$�)0�$� �I�y�
$�3�3����	�?�[�\��%�%��Y�#��e��		&�	
��9�$�$r$r')r(r)r*r�Choicer+r#r&r,r$r"rr�s+�� �T�[�[�]�N�6:�26�, �^>B�:>�1%r$rc�F�eZdZej�Z		dd�Z		dd�Zy)�
AnyDecoderNc��|�d}	n:|jtjur||jv}	n||jk7}	|	rH|d}
|t|
�t|�z
z
}|
}tr!t
dtj|�z�|r!||j||tfi|��||�S|d|||d}}|j|||fi|��|fS)NT�
fullSubstratez&decoding as untagged ANY, substrate %s)rhr�TagMap�tagMaprrBrArrCr;r8)
rrrrrrrr r!�
isUntaggedr!rDrEs
             r"r#zAnyDecoder.valueDecoder8s������J�
�
�
�6�=�=�
0��x���6�J� �8�?�?�2�J��#�O�4�M�
�c�-�(�3�y�>�9�9�F�%�I���<�u�}�}�Y�?W�W�X��� 5�� 5� 5�h��� [�SZ� [� )�6�3�
3��w��'��6�7�);�d��$�t�$�$�X�v�t�G�w�G��M�Mr$c��|�d}	n:|jtjur||jv}	n||jk(}	|	rt
}
trGt
d�n;|d}|dt|�}
tr!t
dtj|
�z�|j}|r@||jur2|j||tfi|��}|||
|z|t|
�z�Strt
d�|j}|r+|||f|dd�|��\}
}|
tjurn|
|
z
}
|r�+t!j"d��|r|
|fS|j|||
fi|��|fS)	NFzdecoding as tagged ANYr!z-decoding as untagged ANY, header substrate %srbTrmrn)rhrr"r#rr
rArBrrCr+r2r;r8rrIrro)rrrrrrrr r!�isTaggedrtr!r1rks              r"r&zAnyDecoder.indefLenValueDecoderWs������H�
�
�
�6�=�=�
0�����0�H�����0�H���F���,�-�$�O�4�M�#�#3�S��^�O�4�F���C�e�m�m�TZ�F[�[�\��&�&���L��0G�0G�G�.��.�.�x���T�G�T�J��
�F�Y�,>���V��@T�U�U���6�7��.�.���#,�Y��$G�:F�6:�$G�>E�$G� �I�y��C�O�O�+���i��F���.�.�3��
���9�$�$�)�4�(�(��6�6�M�W�M�y�X�Xr$r'rKr,r$r"rr5s-���T�X�X�Z�N�6:�26�N�@>B�:>�<Yr$rc�.�eZdZej�Zy)�UTF8StringDecoderN)r(r)r*r�
UTF8Stringr+r,r$r"r(r(�r
r$r(c�.�eZdZej�Zy)�NumericStringDecoderN)r(r)r*r�
NumericStringr+r,r$r"r+r+����'�T�'�'�)�Nr$r+c�.�eZdZej�Zy)�PrintableStringDecoderN)r(r)r*r�PrintableStringr+r,r$r"r/r/����)�T�)�)�+�Nr$r/c�.�eZdZej�Zy)�TeletexStringDecoderN)r(r)r*r�
TeletexStringr+r,r$r"r3r3�r-r$r3c�.�eZdZej�Zy)�VideotexStringDecoderN)r(r)r*r�VideotexStringr+r,r$r"r6r6�s��(�T�(�(�*�Nr$r6c�.�eZdZej�Zy)�IA5StringDecoderN)r(r)r*r�	IA5Stringr+r,r$r"r9r9����#�T�^�^�%�Nr$r9c�.�eZdZej�Zy)�GraphicStringDecoderN)r(r)r*r�
GraphicStringr+r,r$r"r=r=�r-r$r=c�.�eZdZej�Zy)�VisibleStringDecoderN)r(r)r*r�
VisibleStringr+r,r$r"r@r@�r-r$r@c�.�eZdZej�Zy)�GeneralStringDecoderN)r(r)r*r�
GeneralStringr+r,r$r"rCrC�r-r$rCc�.�eZdZej�Zy)�UniversalStringDecoderN)r(r)r*r�UniversalStringr+r,r$r"rFrF�r1r$rFc�.�eZdZej�Zy)�BMPStringDecoderN)r(r)r*r�	BMPStringr+r,r$r"rIrI�r;r$rIc�.�eZdZej�Zy)�ObjectDescriptorDecoderN)r(r)r*r�ObjectDescriptorr+r,r$r"rLrL�s��,�V�,�,�.�Nr$rLc�.�eZdZej�Zy)�GeneralizedTimeDecoderN)r(r)r*r�GeneralizedTimer+r,r$r"rOrO�s��+�V�+�+�-�Nr$rOc�.�eZdZej�Zy)�UTCTimeDecoderN)r(r)r*r�UTCTimer+r,r$r"rRrR�s��#�V�^�^�%�Nr$rRNr�c�@�eZdZeZe�ZdZifd�Zddde	ddfd�Z
y)�DecoderTc�\�||_||_i|_i|_t	d�|_y)N)rr)�_Decoder__tagMap�_Decoder__typeMap�_Decoder__tagCache�_Decoder__tagSetCacher	�_Decoder__eooSentinel)rr#�typeMaps   r"�__init__zDecoder.__init__s,����
� ���������&�v�.��r$Nc���tr<tdtj|t|�tj|�fz�|jdd�}	|	rD|jr8|dd|jk(r&trtd�tj|ddfSt}
|j}|j}|j}
|j}|}|tu�r�|t urj|st#j$d��d}|d}|d	d}	|
|}|� |r	||}nt-j0d|�}n||z}t2}trtd|z�|t2u�r5|st#j$d��t)|d�}|dkrd	}|}nl|dkDrc|dz}t5|d	|d	z�}t|�|k7r&t#j$|�dt|��d|����d}|D]}|dz}||z}�|d	z
}nd	}d}||d}|dk(r!|jsGt#j6d��t|�|kr$t#j$d|t|�z
z��t8}tr1td|tj|dk(xr|xs|d|�fz�|t8ur|�t:}nt<}|t:ur�	||}|rt>}n	||dd	}|rt>}nt@}tr�td|xr|jBjDxsd�d|t>uxrdxsd ���tjjG|duxrd!xs |jHjBjD�|t<u�r|jBtJjLur�	||}t�r$td"�|jNjQ�D]*\}}td#|�d$|jBjD����,|jRrRtd%�|jRjQ�D]*\}}td#|�d$|jBjD����,td&|duxrdxs|jU��d'|���nJ||jVk(s||jXvr+|}tr%td(|jBjDz�nd}|�@	||jZ}trtd)|jZ���|r	|}t>}nt@}nd}t@}tr~td|t>uxr|jBjDxsd�d+|t>uxrdxsd ���tjjG|duxrd!xs|jBjD�|t>u�r|j_d,d�s|sd-�}|ja|�.�|dk(r!jb||||t8||fi|��\}
}n jd||||t8||fi|��\}
}tr�td|jBjD�d/|
jBjD�d0tg|
thjj�xr|
jm�xs|
�d1|xrtj|�xsd���t}�n|t@ur�|rM|djnt,jpk(r-|djrt,jtk7r
tv}t>}nd}|jx}tr;td|xr|jBjDxsd�d2|t>uxrdxsd3���|tzur:|j|}tr"td4|jBjDz�t>}|t~urt#j6|�d5|����|tur���tr:tjj�td6tjz�|
|fS#t&$r�t)|�}|d
z}|dz}|dz}|dk(rWd}d}d}		t)||�}|d	z
}|d
z}||dzz}|dzsn�'||d}n"#t*$rt#j$d��wxYwt-j.|||��}|r||
|<Y��xwxYw#t&$rt-j0d|�}|||<Y��|wxYw#t&$rd}Y��wxYw#t&$rd}Y��wxYw#t&$rd}Y��awxYw#t&$rnt-j0|jVj\|jVj\�}	||}trtd*|���n#t&$rd}YnwxYwY���wxYw)7NzWdecoder called at scope %s with state %d, working with up to %d octets of substrate: %srHFr�zend-of-octets sentinel foundz"Short octet stream on tag decodingTrrXr�� �r]rr~z'Short octet stream on long tag decoding)�tagClassrR�tagIdr,z$tag decoded into %s, decoding lengthz%Short octet stream on length decoding�<z at r�r�z6Indefinite length encoding not supported by this codecz%d-octet shortz6value length decoded into %d, payload substrate is: %szcodec z<none>z% chosen by a built-in type, decoding r:zas explicit tag�?z!candidate ASN.1 spec is a map of:z  r�zbut neither of: znew candidate ASN.1 spec is z, chosen by zcandidate ASN.1 spec is %sz6value decoder chosen for an ambiguous type by type ID zvalue decoder chosen by base z  chosen by ASN.1 spec, decoding �
recursiveFlagc��||d|fSr0r,)�ar��cs   r"�<lambda>z"Decoder.__call__.<locals>.<lambda> s��A�q��!�u�:�r$)r!z
 yields type z	, value:
z
...remaining substrate is: z chosen, decoding z
as failurezcodec %s chosen, decoding valuez not in asn1Spec: z%decoder left scope %s, call completed)@rAr�scoperBrC�pop�supportIndefLengthr[rrIr8rWrXrYrZ�stStop�stDecodeTagrror�rr�r
�Tagr��stDecodeLengthrr�stGetValueDecoder�stGetValueDecoderByTag�stGetValueDecoderByAsn1Spec�
stDecodeValue�stTryAsExplicitTagrhr(�pushr+rr"�presentTypesr��	skipTypes�prettyPrintTyperr#r�r�r6�updater&r#�
isinstancer�Asn1Item�prettyPrintrRr�ra�tagClassUniversal�explicitTagDecoder�defaultErrorState�stDumpRawValue�defaultRawDecoder�stErrorCondition)rrrrrrrr r!rHr:r#r\�tagCache�tagSetCacher!�
isShortTag�
firstOctet�lastTag�
integerTagrarRrb�lengthOctetIdx�size�
encodedLength�lengthOctet�concreteDecoder�
chosenSpecr��
baseTagSets                               r"�__call__zDecoder.__call__sG��
��i�mr�mx�mx�z�BE�FO�BP�RW�R_�R_�`i�Rj�mk�k�
l��;�;�z�5�1����/�/���!�}�� 2� 2�2���6�7����	�!�"�
�5�5��������.�.���?�?���(�(��!�
��6�!���#� ��6�6�<���
"�
�&�q�\�
�%�a�b�M�	�$7�&�z�2�G�J�>�!�=�%0��%<�F�"%���B��!8��%�v�-�F�&����>��G�H���&� ��6�6�?���%�Y�q�\�2�
���#��D�'�F��#�%�%��,�D�$-�i��$��(�.C�$D�M��=�)�T�1�#�:�:�-1�3�}�3E�v�N����F�'4�.���1����+�-��.��A�I�D��D��F�%�d�e�,�	��R�<��2�2�#�/�/�0h�i�i��9�~��.�#�:�:�;K�v�X[�\e�Xf�Of�;g�h�h�)����P�TZ�\a�\i�\i�jp�tv�jv�kE�|E�k[�IR�SZ�TZ�I[�]\�T]�]�^��)�)��#�2�E�8�E�"�.�.�+�&,�V�n�O�
#�)�E�/�*0�����*<��
'� -�� 2����_�ND�ap�az�az�bD�bD�NP�HP�NP�RW�[h�Rh�Rt�mt�RI�xI�RI�J�K��K�K�$�$�_��%<�%D��%y��Hf�Hf�Hp�Hp�Hy�Hy�z��3�3��%�%����6�*�%-�f�%5�
�
��?�@�-5�-B�-B�-H�-H�-J�S�M�J���
�A�K�K�<P�<P� Q�R�S�$�-�-�� 2�3�19�1C�1C�1I�1I�1K�W�
�
�A� #�J����@T�@T�$U� V�W��j�\`�N`�Nm�em�ON�q{�rL�rL�rN�ON�PV�W�X��x���.�&�H�O�O�2K�!)�J���8�8�;M�;M�;V�;V�V�W�"&�J��)�3�*1�*�2C�2C�*D����^h�^o�^o� q�r�'�#-�� -��!3��'+�O�.�E����Q^�H^�IF�cr�c|�c|�dF�dF�IR�JR�IR�TY�]j�Tj�Tv�ov�TK�zK�TK�L�M��K�K�$�$�Z�4�%7�%?�C�%`�:�CW�CW�C`�C`�a��
�%��{�{�?�D�9�,�#=�L����]��;��R�<�'K��'K�'K�!�8���(9��l�(�"�	(�$�E�9�(D��'C�'C�!�8���(9��l�(�"�	(�$�E�9���`o�`y�`y�aC�aC�EJ�ET�ET�E]�E]�_i�jo�qu�q~�q~�_�_W�DI�DU�DU�DW�_`�[`�_`�bk�bH�pu�p}�p}�~G�pH�bT�LT�bT�U�V�����*�*���q�	�+�+�s�/G�/G�G��q�	�*�*�c�.C�.C�C�&8�O�)�E�'+�O� �2�2�E���/�:p�o�Ng�Ng�Np�Np�:|�t|�:|�D�HU�U�a�Za�q�eq�q�r�s���&�"&�"8�"8����9�O�<U�<U�<^�<^�^�_�%���(�(��'�'�06��A���{�6�!�B	��K�K�O�O���7�%�+�+�E�F��i����k �!7�!(��!4�J�)�D�0�H� *�T� 1�I�&��-�E���}�%*�
�)*�� !���"&�-4�Y�~�5N�-O�
� .�!� 3�� %�!��� %�*�t�*;� <��'1�D�'8�$)�
#'�)2�.�/�(B�I��)��"'�">�">� I�#����
"�g�g�!)�Y�e��G�"�/6���,��C!7��P (�=�%(�Z�Z��G�%<�F�6<�K�
�3�=��t �+�&*�O�+��$�/�*.��/��$$�*�%)�
�*��>$�3�%(�Z�Z�
�0A�0A�0I�0I�J�L]�L]�Le�Le�%f�
�3�.4�Z�.@�O�"� #��$U� V��'�3�.2�O�3��3�s��_$�b	�,b4�;c�c�3-c*�$.b�-a�b�a � "b�b�	$b1�0b1�4c�c�c�c�c'�&c'�*Ae!�2e�e!�e�e!�e�e!� e!)r(r)r*r�r�rr�rlr]rnr�r,r$r"rUrUs7��(��"�����(*�/�,0��T���d� r$rU)n�pyasn1rr�pyasn1.codec.berr�pyasn1.compat.integerr�pyasn1.compat.octetsrrr	r
�pyasn1.typerrr
rrr�__all__�registerLoggeer(�
DEBUG_DECODERrAr8�objectrr.r>rrNrVr[rrrxr|r�r�r�rrr	rrrrrr(r+r/r3r6r9r=r@rCrFrIrLrOrRrTrrYrprvrzr��
Enumeratedr�r�r�rr)r,r0r4r7r:r>rArDrGrJrMrPrSr#r�r�r�rLr\�values�typeDecoderr+rh�rangernrprqrsrrrurtr�r�rmrUr)�xs0r"�<module>r�s����� �,�D�D��������*���e���8�5�+>�+>�?��
�,�,��
e�f�
e� 
)�O�
)� (H�.�(H�V(�)��O�*�O�*A�^�A�]X�,�]X�@@U�.�@U�F�'��*6M�3�6M�rhO�'�hO�V���M%�&@�M%�`/�"A�/�
%�1�%�'�3�'�*�7�*�
 �"� �
"�$�"�b%�.�b%�J^Y�&�^Y�D'�*�'�*�-�*�,�/�,�*�-�*�+�.�+�&�)�&�*�-�*�*�-�*�*�-�*�,�/�,�&�)�&�
/�0�/�.�/�.�&�'�&�
��L�L����)�
��L�L����)�
�	�N�N���+�-�
�	�����/�1�	
�
	�I�I���k�m�
�	��� � �"9�";�

�	�O�O���N�,�
�	�I�I���k�m�
�	�M�M���5�7�
�	�H�H�O�O�&�(�
�	�K�K���
��
�	�O�O���-�/�
�	�����3�5�
�	�����!7�!9�
� 	�����3�5�!
�"	����� 5� 7�#
�$	�N�N���+�-�%
�&	�����3�5������3�5������3�5������!7�!9��N�N���+�-�
���"�"�$;�$=�
���!�!�#9�#;�
�N�N���>�+�7
��@	�H�H�O�O�Z�\��J�J���|�~��M�M���/�+��O�O���-�/��K�K���
���H�H�O�O�Z�\�
���=�=�?�*�K��!�!�-��+�+�5�5�<�<����&��"7�)�G�F�O�	*� �R�y�!�!�A�!�		�����������N �f�N �F
���	!���M"s�(	W