§
    JŠtj¦­  ã                   ó`  — d Z ddlZddlZddlZddlZdZ G d„ dej        ¦  «        Zdddd	d
œZddddd
œZ	dddœZ
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ fd„Z G d„ dej        ¦  «        Z G d„ d¦  «        Z G d „ d!¦  «        Z G d"„ d#e¦  «        Z G d$„ d%e¦  «        Z G d&„ d'e¦  «        Z G d(„ d)e¦  «        Z G d*„ d+e¦  «        Z G d,„ d-e¦  «        Z G d.„ d/e¦  «        Z G d0„ d1¦  «        Zd2„ Z G d3„ d4¦  «        Z d5„ Z!d6„ Z" G d7„ d8¦  «        Z# G d9„ d:¦  «        Z$d;„ Z%d<„ Z&d=„ Z'dS )>zôImplementation of FlexBuffers binary format.

For more info check https://google.github.io/flatbuffers/flexbuffers.html and
corresponding C++ implementation at
https://github.com/google/flatbuffers/blob/master/include/flatbuffers/flexbuffers.h
é    N)ÚTypeÚBuilderÚGetRootÚDumpsÚLoadsc                   óz   — e Zd ZdZdZdZdZdZed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zd
S )ÚBitWidthz¿Supported bit widths of value types.

  These are used in the lower 2 bits of a type field to determine the size of
  the elements (and or size field) of the item pointed to (e.g. vector).
  r   é   é   é   c                 óÆ   — | dk    sJ ‚| dk     rt           j        S | dk     rt           j        S | dk     rt           j        S | dk     rt           j        S t          d| z  ¦  «        ‚)z@Returns the minimum `BitWidth` to encode unsigned integer value.r   é   i   l        l            zvalue is too big to encode: %s)r	   ÚW8ÚW16ÚW32ÚW64Ú
ValueError©Úvalues    úU/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/flatbuffers/flexbuffers.pyÚUz
BitWidth.U-   sq   € ð �AŠ:ˆ:ˆ:ˆ:à�ÒÐÝŒ[ÐØ	�'Ò	Ð	ÝŒ\ÐØ	�'Ò	Ð	ÝŒ\ÐØ	�'Ò	Ð	ÝŒ\ÐåÐ7¸%Ñ?Ñ@Ô@Ð@ó    c                 óR   — | dz  } t                                | dk    r| n|  ¦  «        S )z>Returns the minimum `BitWidth` to encode signed integer value.r   r   )r	   r   r   s    r   ÚIz
BitWidth.I=   s-   € ð 
ˆQ�J€EÝ�:Š:˜u¨šz˜z�e�e°¨vÑ6Ô6Ð6r   c                 ó–   — t          j        dt          j        d| ¦  «        ¦  «        d         | k    rt          j        S t          j        S )z6Returns the `BitWidth` to encode floating point value.z<fr   )ÚstructÚunpackÚpackr	   r   r   r   s    r   ÚFz
BitWidth.FL   s<   € õ „}�T�6œ; t¨UÑ3Ô3Ñ4Ô4°QÔ7¸5Ò@Ð@ÝŒ\ÐÝŒ<Ðr   c                 ól   — t           j        t           j        t           j        t           j        dœ|          S )N©r
   r   é   é   )r	   r   r   r   r   ©Ú
byte_widths    r   ÚBz
BitWidth.BS   s&   € åŒ{�xœ|µ´ÅÄÐNÐNØôð r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   Ústaticmethodr   r   r   r&   © r   r   r	   r	   !   s¡   € € € € € ðð ð 	€"Ø	€#Ø	€#Ø	€#àðAð Añ „<ðAð ð7ð 7ñ „<ð7ð ðð ñ „<ðð ðð ñ „<ðð ð r   r	   ÚbÚhÚiÚqr!   r&   ÚHr   ÚQÚfÚd)r"   r#   c                 ód   — t          j        d| t          |¦  «                 z  |¦  «        d         S )Nú<%sr   )r   r   Úlen)ÚfmtÚbufs     r   Ú_Unpackr:   _   s(   € Ý	Œ�u˜s¥3 s¡8¤8œ}Ñ,¨cÑ	2Ô	2°1Ô	5Ð5r   c                 óf   — t          |¦  «        |z  }t          j        d|| |         fz  |¦  «        S ©Nz<%d%s)r7   r   r   )r8   r9   Úlengthr%   s       r   Ú_UnpackVectorr>   c   s2   € Ý�3‰xŒx˜6Ñ!€*Ý	Œ�w &¨#¨j¬/Ð!:Ñ:¸CÑ	@Ô	@Ð@r   c                 ó>   — t          j        d| |         z  |¦  «        S )Nr6   )r   r   )r8   r   r%   s      r   Ú_Packr@   h   s   € Ý	Œ�U˜S œ_Ñ,¨eÑ	4Ô	4Ð4r   c                 óV   — t          j        dt          |¦  «        | |         fz  g|¢R Ž S r<   )r   r   r7   )r8   Úvaluesr%   s      r   Ú_PackVectorrC   l   s.   € Ý	Œ�W¥ F¡¤¨S°¬_Ð=Ñ=Ð	GÀÐ	GÐ	GÐ	GÐGr   c                 óH   — d|z  |k    rt          | ||¦  «        |d |…<   dS dS )Nr
   TF)r@   )r8   r9   r   r%   Úvalue_bit_widths        r   Ú_MutaterF   p   s6   € Øˆ?Ñ˜zÒ)Ð)Ý˜S %¨Ñ4Ô4€CˆˆˆÑØˆ4Ø	ˆr   c                 ó   — |  |dz
  z  S ©Nr
   r,   )Úbuf_sizeÚscalar_sizes     r   Ú_PaddingBytesrK   z   s   € à
ˆ�k A‘oÑ	&Ð&r   c                 óz   — || j         €dn| j         z   }|| j        €|n| j        z   }t          ||| j        ¦  «        S ©Nr   )ÚstartÚstopÚsliceÚstep)ÚsÚoffsetr=   rN   rO   s        r   Ú_ShiftSlicerT      sB   € Ø
˜œ˜�A�A¨a¬gÑ
6€%Ø	˜QœV˜^�6�6°´Ñ	8€$Ý	ˆu�d˜AœFÑ	#Ô	#Ð#r   c                 óª   — dt          | ¦  «        }}||z
  }|dk    r6|}|dz  }||z  } || |         |¦  «        r|dz  }|}||dz   z  }n|}|dk    °6|S )z3Implementation of C++ std::lower_bound() algorithm.r   r   r
   )r7   )rB   r   ÚpredÚfirstÚlastÚcountr/   rQ   s           r   Ú_LowerBoundrZ   †   s‡   € à•3�v‘;”;ˆ€%Ø
�‰,€%Ø�Š	ˆ	Ø€AØ�A‰:€DØˆ�I€AØ€tˆF�1ŒI�uÑÔð Øˆ1�f€aØ€eØˆt�a‰xÑ€e€eà€eð 	�Š	ˆ	ð 
€,r   c                 ó   — | |k     S ©Nr,   )ÚxÚys     r   ú<lambda>r_   ˜   s
   € °1°q²5€ r   c                 óv   — t          | ||¦  «        }|t          | ¦  «        k    r ||| |         ¦  «        s|S dS )z5Implementation of C++ std::binary_search() algorithm.éÿÿÿÿ)rZ   r7   )rB   r   rV   Úindexs       r   Ú_BinarySearchrc   ˜   sC   € å
�f˜e TÑ
*Ô
*€%Ø
�c�&‰kŒkÒÐ $ $ u¨f°U¬mÑ"<Ô"<ÐØ€LØ	ˆr   c                   ó`  — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZe d„ ¦   «         Z!e d„ ¦   «         Z"e d „ ¦   «         Z#e d!„ ¦   «         Z$e d"„ ¦   «         Z%e d#„ ¦   «         Z&e d$„ ¦   «         Z'e d%„ ¦   «         Z(e d&„ ¦   «         Z)e d)d'„¦   «         Z*d(S )*r   zxSupported types of encoded data.

  These are used as the upper 6 bits of a type field to indicate the actual
  type.
  r   r
   r   r   r"   é   é   é   r#   é	   é
   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é$   c                 ó,   — t          | ¦  «        dz  |z  S )Nr   )Úint)Útype_Ú	bit_widths     r   ÚPackz	Type.PackÊ   s   € å�‰JŒJ˜!‰O˜yÑ(Ð(r   c                 ó6   — d| dz  z  t          | dz	  ¦  «        fS )Nr
   r   r   )r   ©Úpacked_types    r   ÚUnpackzType.UnpackÎ   s$   € à�˜tÑ#Ñ$¥d¨;¸!Ñ+;Ñ&<Ô&<Ð<Ð<r   c                 óB   — | t           j        k    p| t           j        k    S r\   )r   ÚFLOATÚBOOL©r}   s    r   ÚIsInlinezType.IsInlineÒ   s   € à•D”JÒÐ4 %­4¬9Ò"4Ð4r   c                 ój   — t           j        | cxk    ot           j        k    nc p| t           j        k    S r\   )r   Ú
VECTOR_INTÚVECTOR_STRING_DEPRECATEDÚVECTOR_BOOLr‡   s    r   ÚIsTypedVectorzType.IsTypedVectorÖ   s=   € õ 	Œ˜5ÐAÐAÒAÐA¥DÔ$AÒAÐAÐAÐAð 	%Ø•DÔ$Ò$ðr   c                 ój   — t           j        | cxk    ot           j        k    nc p| t           j        k    S r\   )r   ÚINTÚSTRINGr†   r‡   s    r   ÚIsTypedVectorElementTypezType.IsTypedVectorElementTypeÝ   s4   € åŒ8�uÐ+Ð+Ò+Ð+¥¤Ò+Ð+Ð+Ð+ÐA¨u½¼	Ò/AÐAr   c                 ó¦   — t                                | ¦  «        st          d¦  «        ‚t          | t           j        z
  t           j        z   ¦  «        S )Nzmust be typed vector type)r   r�   r   rŠ   r�   r‡   s    r   ÚToTypedVectorElementTypezType.ToTypedVectorElementTypeá   sC   € å×Ò˜eÑ$Ô$ð 4ÝÐ2Ñ3Ô3Ð3å��œÑ'­$¬(Ñ2Ñ3Ô3Ð3r   c                 óJ   — t           j        | cxk    ot           j        k    nc S r\   )r   ÚVECTOR_INT2ÚVECTOR_FLOAT4r‡   s    r   ÚIsFixedTypedVectorzType.IsFixedTypedVectorè   s*   € åÔ˜uÐ:Ð:Ò:Ð:­Ô(:Ò:Ð:Ð:Ð:Ð:r   c                 óJ   — t           j        | cxk    ot           j        k    nc S r\   )r   r�   r…   r‡   s    r   ÚIsFixedTypedVectorElementTypez"Type.IsFixedTypedVectorElementTypeì   s(   € åŒ8�uÐ*Ð*Ò*Ð*¥¤
Ò*Ð*Ð*Ð*Ð*r   c                 óÀ   — t                                | ¦  «        st          d¦  «        ‚| t           j        z
  }t          |dz  t           j        z   ¦  «        |dz  dz   fS )Nzmust be fixed typed vector typer   r   )r   r—   r   r•   r�   )r}   Ú
fixed_types     r   ÚToFixedTypedVectorElementTypez"Type.ToFixedTypedVectorElementTypeð   s]   € å×"Ò" 5Ñ)Ô)ð :ÝÐ8Ñ9Ô9Ð9ð �Ô)Ñ)€JÝ�
˜Q‘¥¤Ñ)Ñ*Ô*¨J¸!©O¸aÑ,?Ð?Ð?r   c                 ó  — |dk    r*t                                | ¦  «        st          d¦  «        ‚n)t                                | ¦  «        st          d¦  «        ‚| t           j        z
  }|dk    rt          |t           j        z   ¦  «        S |dk    rt          |t           j        z   ¦  «        S |dk    rt          |t           j        z   ¦  «        S |dk    rt          |t           j        z   ¦  «        S t          d|z  ¦  «        ‚)a  Converts element type to corresponding vector type.

    Args:
      element_type: vector element type
      fixed_len: number of elements: 0 for typed vector; 2, 3, or 4 for fixed
        typed vector.

    Returns:
      Typed vector type or fixed typed vector type.
    r   z!must be typed vector element typeú'must be fixed typed vector element typer   r   r"   zunsupported fixed_len: %s)	r   r‘   r   r™   r�   rŠ   r•   ÚVECTOR_INT3ÚVECTOR_INT4)Úelement_typeÚ	fixed_lenrS   s      r   ÚToTypedVectorzType.ToTypedVectorù   sú   € ð �A‚~€~Ý×*Ò*¨<Ñ8Ô8ð >ÝÐ<Ñ=Ô=Ð=ð>õ ×/Ò/°Ñ=Ô=ð DÝÐBÑCÔCÐCà�DœHÑ$€FØ�A‚~€~Ý�&�4œ?Ñ*Ñ+Ô+Ð+Ø	�aŠˆÝ�&�4Ô+Ñ+Ñ,Ô,Ð,Ø	�aŠˆÝ�&�4Ô+Ñ+Ñ,Ô,Ð,Ø	�aŠˆÝ�&�4Ô+Ñ+Ñ,Ô,Ð,åÐ2°YÑ>Ñ?Ô?Ð?r   N©r   )+r'   r(   r)   r*   ÚNULLr�   ÚUINTr…   ÚKEYr�   ÚINDIRECT_INTÚINDIRECT_UINTÚINDIRECT_FLOATÚMAPÚVECTORrŠ   ÚVECTOR_UINTÚVECTOR_FLOATÚ
VECTOR_KEYr‹   r•   ÚVECTOR_UINT2ÚVECTOR_FLOAT2rŸ   ÚVECTOR_UINT3ÚVECTOR_FLOAT3r    ÚVECTOR_UINT4r–   ÚBLOBr†   rŒ   r+   r   rƒ   rˆ   r�   r‘   r“   r—   r™   rœ   r£   r,   r   r   r   r       sÌ  € € € € € ðð ð 
€$Ø	€#Ø	
€$Ø
€%à	€#Ø€&Ø€,Ø€-Ø€.Ø	€#Ø€&à€*Ø€+Ø€,Ø€*ð  Ðà€+Ø€,Ø€-Ø€+Ø€,Ø€-Ø€+Ø€,Ø€-à	€$Ø	€$Ø€+àð)ð )ñ „<ð)ð ð=ð =ñ „<ð=ð ð5ð 5ñ „<ð5ð ðð ñ „<ðð ðBð Bñ „<ðBð ð4ð 4ñ „<ð4ð ð;ð ;ñ „<ð;ð ð+ð +ñ „<ð+ð ð@ð @ñ „<ð@ð ð@ð @ð @ñ „<ð@ð @ð @r   r   c                   ó<   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚBufzHClass to access underlying buffer object starting from the given offset.c                 óŠ   — || _         |dk    r|nt          |¦  «        |z   | _        t          |¦  «        | j        z
  | _        d S rM   )Ú_bufr7   Ú_offsetÚ_length)Úselfr9   rS   s      r   Ú__init__zBuf.__init__  s?   € Ø€D„IØ# qš[˜[�6�6­c°#©h¬h¸Ñ.?€D„LÝ�s‘8”8˜dœlÑ*€D„L€L€Lr   c                 óê   — t          |t          ¦  «        r&| j        t          || j        | j        ¦  «                 S t          |t          ¦  «        r| j        | j        |z            S t          d¦  «        ‚©Nzinvalid key type©Ú
isinstancerP   r¹   rT   rº   r»   r|   Ú	TypeError©r¼   Úkeys     r   Ú__getitem__zBuf.__getitem__!  sf   € Ý�#•uÑÔð *ØŒY•{ 3¨¬°d´lÑCÔCÔDÐDÝ	�C�Ñ	Ô	ð *ØŒY�t”| cÑ)Ô*Ð*åÐ(Ñ)Ô)Ð)r   c                 óæ   — t          |t          ¦  «        r%|| j        t          || j        | j        ¦  «        <   d S t          |t          ¦  «        r|| j        | j        |z   <   d S t          d¦  «        ‚r¿   rÀ   )r¼   rÄ   r   s      r   Ú__setitem__zBuf.__setitem__)  sp   € Ý�#•uÑÔð *Ø@E€d„i•˜C ¤¨t¬|Ñ<Ô<Ñ=Ð=Ð=Ý	�C�Ñ	Ô	ð *Ø&)€d„i�”˜sÑ"Ñ#Ð#Ð#åÐ(Ñ)Ô)Ð)r   c                 ó   — d| j         z  S )Nzbuf[%d:])rº   ©r¼   s    r   Ú__repr__zBuf.__repr__1  s   € Ø˜œÑ$Ð$r   c                 óP   — | j         | j        d…                              |¦  «        S )z<Returns the lowest index where the sub subsequence is found.N)r¹   rº   Úfind)r¼   Úsubs     r   ÚFindzBuf.Find4  s#   € àŒ9�T”\�^�^Ô$×)Ò)¨#Ñ.Ô.Ð.r   c                 ó<   — t          | j        | j        |z   ¦  «        S )z5Returns new `Buf` which starts from the given offset.)r·   r¹   rº   )r¼   rS   s     r   ÚSlicez	Buf.Slice8  s   € åˆtŒy˜$œ,¨Ñ/Ñ0Ô0Ð0r   c           
      ón   — |                       |t          t          | |||z   …         ¦  «        z
  ¦  «        S )zAReturn new `Buf` based on the encoded offset (indirect encoding).)rÐ   r:   r   )r¼   rS   r%   s      r   ÚIndirectzBuf.Indirect<  s2   € à�:Š:�f�w¥q¨$¨v¸ÀÑ8KÐ/KÔ*LÑMÔMÑMÑNÔNÐNr   N)r'   r(   r)   r*   r½   rÅ   rÇ   rÊ   rÎ   rÐ   rÒ   r,   r   r   r·   r·     sˆ   € € € € € ØPÐPð+ð +ð +ð
*ð *ð *ð*ð *ð *ð%ð %ð %ð/ð /ð /ð1ð 1ð 1ðOð Oð Oð Oð Or   r·   c                   ó2   — e Zd ZdZdZd„ Zed„ ¦   «         ZdS )ÚObjectz.Base class for all non-trivial data accessors.©r¹   Ú_byte_widthc                 ó"   — || _         || _        d S r\   rÕ   )r¼   r9   r%   s      r   r½   zObject.__init__F  s   € Ø€D„IØ!€DÔÐÐr   c                 ó   — | j         S r\   )rÖ   rÉ   s    r   Ú	ByteWidthzObject.ByteWidthJ  s   € àÔÐr   N)r'   r(   r)   r*   Ú	__slots__r½   ÚpropertyrÙ   r,   r   r   rÔ   rÔ   A  sI   € € € € € Ø6Ð6à#€)ð"ð "ð "ð ðð ñ „8ðð ð r   rÔ   c                   óD   ‡ — e Zd ZdZdZdˆ fd„	Zed„ ¦   «         Zd„ Zˆ xZ	S )ÚSizedzBBase class for all data accessors which need to read encoded size.©Ú_sizer   c                 ó¨   •— t          ¦   «                              ||¦  «         |dk    r!t          t          | j        ¦  «        | _        d S || _        d S rM   )Úsuperr½   r:   r   Ú	SizeBytesrß   )r¼   r9   r%   ÚsizeÚ	__class__s       €r   r½   zSized.__init__T  sH   ø€ Ý	�G„G×Ò�S˜*Ñ%Ô%Ð%Øˆq‚y€yÝ�1˜dœnÑ-Ô-€d„j€j€jà€d„j€j€jr   c                 ó,   — | j         | j         d…         S rM   rÕ   rÉ   s    r   râ   zSized.SizeBytes[  s   € àŒ9�dÔ&Ð&¨Ð*Ô+Ð+r   c                 ó   — | j         S r\   rÞ   rÉ   s    r   Ú__len__zSized.__len___  s
   € ØŒ:Ðr   r¤   )
r'   r(   r)   r*   rÚ   r½   rÛ   râ   rç   Ú__classcell__©rä   s   @r   rÝ   rÝ   O  sr   ø€ € € € € ØJÐJà€)ðð ð ð ð ð ð ð,ð ,ñ „8ð,ðð ð ð ð ð ð r   rÝ   c                   ó2   — e Zd ZdZdZed„ ¦   «         Zd„ ZdS )ÚBlobz)Data accessor for the encoded blob bytes.r,   c                 ó:   — | j         dt          | ¦  «        …         S rM   ©r¹   r7   rÉ   s    r   ÚBytesz
Blob.Bytesh  ó   € àŒ9�Q�˜T™œ�]Ô#Ð#r   c                 ó4   — d| j         t          | ¦  «        fz  S )NzBlob(%s, size=%d)rí   rÉ   s    r   rÊ   zBlob.__repr__l  s   € Ø $¤)­S°©Y¬YÐ!7Ñ7Ð7r   N)r'   r(   r)   r*   rÚ   rÛ   rî   rÊ   r,   r   r   rë   rë   c  sG   € € € € € Ø1Ð1à€)àð$ð $ñ „8ð$ð8ð 8ð 8ð 8ð 8r   rë   c                   ó>   — e Zd ZdZdZed„ ¦   «         Zd„ Zd„ Zd„ Z	dS )ÚStringz+Data accessor for the encoded string bytes.r,   c                 ó:   — | j         dt          | ¦  «        …         S rM   rí   rÉ   s    r   rî   zString.Bytesu  rï   r   c                 óR  — |                      d¦  «        }t          |¦  «        }|t          | ¦  «        k    rot          t          || j        ¦  «        | j        | j         d…<   || j        d|…<   t          t          | ¦  «        |z
  ¦  «        | j        |t          | ¦  «        …<   dS dS )a4  Mutates underlying string bytes in place.

    Args:
      value: New string to replace the existing one. New string must have less
        or equal UTF-8-encoded bytes than the existing one to successfully
        mutate underlying byte buffer.

    Returns:
      Whether the value was mutated or not.
    úutf-8r   TF)Úencoder7   r@   r   rÖ   r¹   Ú	bytearray)r¼   r   ÚencodedÚns       r   ÚMutatezString.Mutatey  s–   € ð �lŠl˜7Ñ#Ô#€GÝˆG‰Œ€AØ�C�‰IŒI‚~€~Ý).­q°!°TÔ5EÑ)FÔ)F€d„i�Ô!Ð! AÐ%Ñ&Ø€d„i��!��nÝ!*­3¨t©9¬9°q©=Ñ!9Ô!9€d„i�•C˜‘I”I�ÑØˆTØˆ5r   c                 ó6   — | j                              d¦  «        S )Nrõ   ©rî   ÚdecoderÉ   s    r   Ú__str__zString.__str__�  ó   € ØŒ:×Ò˜WÑ%Ô%Ð%r   c                 ó4   — d| j         t          | ¦  «        fz  S )NzString(%s, size=%d)rí   rÉ   s    r   rÊ   zString.__repr__�  s   € Ø  D¤I­s°4©y¬yÐ#9Ñ9Ð9r   N)
r'   r(   r)   r*   rÚ   rÛ   rî   rú   rþ   rÊ   r,   r   r   rò   rò   p  se   € € € € € Ø3Ð3à€)àð$ð $ñ „8ð$ðð ð ð(&ð &ð &ð:ð :ð :ð :ð :r   rò   c                   óN   ‡ — e Zd ZdZdZˆ fd„Zed„ ¦   «         Zd„ Zd„ Z	d„ Z
ˆ xZS )ÚKeyz(Data accessor for the encoded key bytes.r,   c                 ó\   •— |dk    sJ ‚t          ¦   «                              ||¦  «         d S rH   )rá   r½   )r¼   r9   r%   rä   s      €r   r½   zKey.__init__™  s0   ø€ Ø˜Š?ˆ?ˆ?ˆ?Ý	�G„G×Ò�S˜*Ñ%Ô%Ð%Ð%Ð%r   c                 ó:   — | j         dt          | ¦  «        …         S rM   rí   rÉ   s    r   rî   z	Key.Bytes�  rï   r   c                 ó6   — | j                              d¦  «        S rM   )r¹   rÎ   rÉ   s    r   rç   zKey.__len__¡  s   € ØŒ9�>Š>˜!ÑÔÐr   c                 ó6   — | j                              d¦  «        S )NÚasciirü   rÉ   s    r   rþ   zKey.__str__¤  rÿ   r   c                 ó4   — d| j         t          | ¦  «        fz  S )NzKey(%s, size=%d)rí   rÉ   s    r   rÊ   zKey.__repr__§  ó   € Ø ¤­C°©I¬IÐ 6Ñ6Ð6r   )r'   r(   r)   r*   rÚ   r½   rÛ   rî   rç   rþ   rÊ   rè   ré   s   @r   r  r  ”  s‹   ø€ € € € € Ø0Ð0à€)ð&ð &ð &ð &ð &ð ð$ð $ñ „8ð$ðð ð ð&ð &ð &ð7ð 7ð 7ð 7ð 7ð 7ð 7r   r  c                   ó8   — e Zd ZdZdZd„ Zed„ ¦   «         Zd„ ZdS )ÚVectorz+Data accessor for the encoded vector bytes.r,   c                 óF  — |dk     s|t          | ¦  «        k    r!t          d|t          | ¦  «        fz  ¦  «        ‚| j        t          | ¦  «        | j        z  |z            }| j                             || j        z  ¦  «        }t
                               || j        |¦  «        S )Nr   ú'vector index %s is out of [0, %d) range)r7   Ú
IndexErrorr¹   rÖ   rÐ   ÚRefÚ
PackedType)r¼   rb   r‚   r9   s       r   rÅ   zVector.__getitem__°  s•   € Øˆq‚y€y�E�S ™YœYÒ&Ð&ÝØ
3°u½cÀ$¹i¼iÐ6HÑ
Hñô ð ð ”)�C ™IœI¨Ô(8Ñ8¸5Ñ@ÔA€KØ
Œ)�/Š/˜% $Ô"2Ñ2Ñ
3Ô
3€CÝ�>Š>˜#˜tÔ/°Ñ=Ô=Ð=r   c                 ó   — d„ | D ¦   «         S )z5Returns the underlying encoded data as a list object.c                 ó   — g | ]	}|j         ‘Œ
S r,   ©ÚValue©Ú.0Úes     r   ú
<listcomp>z Vector.Value.<locals>.<listcomp>½  s   € Ð"Ð"Ð"˜ˆAŒGÐ"Ð"Ð"r   r,   rÉ   s    r   r  zVector.Valueº  s   € ð #Ð"˜TÐ"Ñ"Ô"Ð"r   c                 ó0   — d| j         | j        | j        fz  S )Nz"Vector(%s, byte_width=%d, size=%d))r¹   rÖ   rß   rÉ   s    r   rÊ   zVector.__repr__¿  s$   € Ø/ØŒ	ØÔØŒ
ð3ñ ð r   N)	r'   r(   r)   r*   rÚ   rÅ   rÛ   r  rÊ   r,   r   r   r  r  «  sX   € € € € € Ø3Ð3à€)ð>ð >ð >ð ð#ð #ñ „8ð#ðð ð ð ð r   r  c                   óv   ‡ — e Zd ZdZdZd
ˆ fd„	Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	ed„ ¦   «         Z
d	„ Zˆ xZS )ÚTypedVectorzGData accessor for the encoded typed vector or fixed typed vector bytes.)Ú_element_typerß   r   c                 ó”   •— t          ¦   «                              |||¦  «         |t          j        k    rt          j        }|| _        d S r\   )rá   r½   r   r�   r§   r  )r¼   r9   r%   r¡   rã   rä   s        €r   r½   zTypedVector.__init__Ì  sC   ø€ Ý	�G„G×Ò�S˜* dÑ+Ô+Ð+à•t”{Ò"Ð"õ ”X€là%€DÔÐÐr   c                 óJ   — | j         d | j        t          | ¦  «        z  …         S r\   )r¹   rÖ   r7   rÉ   s    r   rî   zTypedVector.BytesÚ  s#   € àŒ9Ð3�tÔ'­#¨d©)¬)Ñ3Ð3Ô4Ð4r   c                 ó   — | j         S r\   )r  rÉ   s    r   ÚElementTypezTypedVector.ElementTypeÞ  s   € àÔÐr   c                 óò   — |dk     s|t          | ¦  «        k    r!t          d|t          | ¦  «        fz  ¦  «        ‚| j                             || j        z  ¦  «        }t          || j        d| j        ¦  «        S )Nr   r  r
   )r7   r  r¹   rÐ   rÖ   r  r  )r¼   rb   r9   s      r   rÅ   zTypedVector.__getitem__â  sw   € Øˆq‚y€y�E�S ™YœYÒ&Ð&ÝØ
3°u½cÀ$¹i¼iÐ6HÑ
Hñô ð ð Œ)�/Š/˜% $Ô"2Ñ2Ñ
3Ô
3€CÝˆs�DÔ$ a¨Ô);Ñ<Ô<Ð<r   c           	      óî  — | sg S | j         t          j        u r2d„ t          t          | j        t          | ¦  «        ¦  «        D ¦   «         S | j         t          j        u r5t          t          t          | j        t          | ¦  «        ¦  «        ¦  «        S | j         t          j
        u r5t          t          t          | j        t          | ¦  «        ¦  «        ¦  «        S | j         t          j        u r5t          t          t          | j        t          | ¦  «        ¦  «        ¦  «        S | j         t          j        u rd„ | D ¦   «         S | j         t          j        u rd„ | D ¦   «         S t          d| j         z  ¦  «        ‚)z'Returns underlying data as list object.c                 ó,   — g | ]}t          |¦  «        ‘ŒS r,   )Úboolr  s     r   r  z%TypedVector.Value.<locals>.<listcomp>ò  s   € ÐGÐGÐG˜!�d�1‰gŒgÐGÐGÐGr   c                 ó   — g | ]	}|j         ‘Œ
S r,   )ÚAsKeyr  s     r   r  z%TypedVector.Value.<locals>.<listcomp>ú  s   € Ð$Ð$Ð$˜!ˆaŒgÐ$Ð$Ð$r   c                 ó   — g | ]	}|j         ‘Œ
S r,   )ÚAsStringr  s     r   r  z%TypedVector.Value.<locals>.<listcomp>ü  s   € Ð'Ð'Ð'˜QˆaŒjÐ'Ð'Ð'r   úunsupported element_type: %s)r  r   r†   r>   r   rî   r7   r�   Úlistr   r¦   r…   r   r§   r�   rÂ   rÉ   s    r   r  zTypedVector.Valueë  s>  € ð ð Ø€iàÔ�TœYÐ&Ð&ØGÐG�}­Q°´
½CÀ¹I¼IÑFÔFÐGÑGÔGÐGØ	Ô	�tœxÐ	'Ð	'Ý•-¥ 4¤:­s°4©y¬yÑ9Ô9Ñ:Ô:Ð:Ø	Ô	�tœyÐ	(Ð	(Ý•-¥ 4¤:­s°4©y¬yÑ9Ô9Ñ:Ô:Ð:Ø	Ô	�tœzÐ	)Ð	)Ý•-¥ 4¤:­s°4©y¬yÑ9Ô9Ñ:Ô:Ð:Ø	Ô	�tœxÐ	'Ð	'Ø$Ð$˜tÐ$Ñ$Ô$Ð$Ø	Ô	�tœ{Ð	*Ð	*Ø'Ð' $Ð'Ñ'Ô'Ð'åÐ4°tÔ7IÑIÑJÔJÐJr   c                 ó<   — d| j         | j        | j        | j        fz  S )Nz8TypedVector(%s, byte_width=%d, element_type=%s, size=%d))r¹   rÖ   r  rß   rÉ   s    r   rÊ   zTypedVector.__repr__   s+   € ØEØŒ	ØÔØÔØŒ
ð	Iñ ð r   r¤   )r'   r(   r)   r*   rÚ   r½   rÛ   rî   r   rÅ   r  rÊ   rè   ré   s   @r   r  r  Ç  sº   ø€ € € € € ØOÐOà&€)ð&ð &ð &ð &ð &ð &ð ð5ð 5ñ „8ð5ð ðð ñ „8ðð=ð =ð =ð ðKð Kñ „8ðKð(ð ð ð ð ð ð r   r  c                   ó€   ‡ — e Zd ZdZed„ ¦   «         Zˆ fd„Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
d„ Zˆ xZS )ÚMapz(Data accessor for the encoded map bytes.c                 ó~   — t          | t          ¦  «        r| j        } t          |t          ¦  «        r|j        }| |k     S r\   )rÁ   r  Ú
AsKeyBytes©Úar-   s     r   ÚCompareKeyszMap.CompareKeys  s=   € å�!•SÑÔð Ø
Œ,€aÝ�!•SÑÔð Ø
Œ,€aØˆqŠ5€Lr   c                 ó8  •— t          |t          ¦  «        r!t          ¦   «                              |¦  «        S t	          | j        |                     d¦  «        | j        ¦  «        }|dk    r!t          ¦   «                              |¦  «        S t          |¦  «        ‚)Nr  ra   )	rÁ   r|   rá   rÅ   rc   ÚKeysrö   r2  ÚKeyError)r¼   rÄ   rb   rä   s      €r   rÅ   zMap.__getitem__  s|   ø€ Ý�#•sÑÔð &Ý‰WŒW× Ò  Ñ%Ô%Ð%å˜$œ) S§Z¢Z°Ñ%8Ô%8¸$Ô:JÑKÔK€EØ�‚{€{Ý‰WŒW× Ò  Ñ'Ô'Ð'å
�3‰-Œ-Ðr   c                 óè   — t          t          | j        d| j        z  | j         …         ¦  «        }| j                             d| j        z  | j        ¦  «        }t          ||t          j        ¦  «        S )Néþÿÿÿéýÿÿÿ)r:   r   r¹   rÖ   rÒ   r  r   r§   )r¼   r%   r9   s      r   r4  zMap.Keys  sh   € åÝ	ˆ4Œ9�R˜$Ô*Ñ*¨dÔ.>Ð->Ð>Ô?ñô €Jð Œ)×
Ò
˜R $Ô"2Ñ2°DÔ4DÑ
EÔ
E€CÝ�s˜J­¬Ñ1Ô1Ð1r   c                 ó6   — t          | j        | j        ¦  «        S r\   )r  r¹   rÖ   rÉ   s    r   ÚValuesz
Map.Values&  s   € å�$”)˜TÔ-Ñ.Ô.Ð.r   c                 óJ   — d„ t          | j        | j        ¦  «        D ¦   «         S )Nc                 ó.   — i | ]\  }}|j         |j         “ŒS r,   r  )r  ÚkÚvs      r   ú
<dictcomp>zMap.Value.<locals>.<dictcomp>,  s"   € ÐEÐEÐE¡  AˆAŒG�Q”WÐEÐEÐEr   )Úzipr4  r:  rÉ   s    r   r  z	Map.Value*  s$   € àEÐE­¨T¬Y¸¼Ñ)DÔ)DÐEÑEÔEÐEr   c                 ó4   — d| j         t          | ¦  «        fz  S )NzMap(%s, size=%d)rí   rÉ   s    r   rÊ   zMap.__repr__.  r	  r   )r'   r(   r)   r*   r+   r2  rÅ   rÛ   r4  r:  r  rÊ   rè   ré   s   @r   r-  r-  	  sº   ø€ € € € € Ø0Ð0àðð ñ „<ððð ð ð ð ð ð2ð 2ñ „8ð2ð ð/ð /ñ „8ð/ð ðFð Fñ „8ðFð7ð 7ð 7ð 7ð 7ð 7ð 7r   r-  c                   ó®  — e Zd ZdZdZed„ ¦   «         Zd„ Zd„ Ze	d„ ¦   «         Z
d„ Zd„ Ze	d	„ ¦   «         Ze	d
„ ¦   «         Ze	d„ ¦   «         Zd„ Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Zd„ Ze	d„ ¦   «         Ze	d„ ¦   «         Zd„ Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Zd„ Ze	d„ ¦   «         Ze	d„ ¦   «         Z e	d„ ¦   «         Z!e	d„ ¦   «         Z"e	d„ ¦   «         Z#e	d „ ¦   «         Z$e	d!„ ¦   «         Z%e	d"„ ¦   «         Z&e	d#„ ¦   «         Z'e	d$„ ¦   «         Z(e	d%„ ¦   «         Z)e	d&„ ¦   «         Z*d'S )(r  z)Data accessor for the encoded data bytes.©r¹   Ú_parent_widthrÖ   Ú_typec                 ó`   — t                                |¦  «        \  }}t          | |||¦  «        S r\   )r   rƒ   r  )r9   Úparent_widthr‚   r%   r}   s        r   r  zRef.PackedType7  s,   € åŸš KÑ0Ô0Ñ€J�Ýˆs�L *¨eÑ4Ô4Ð4r   c                 ó>   — || _         || _        || _        || _        d S r\   rC  )r¼   r9   rG  r%   r}   s        r   r½   zRef.__init__<  s$   € Ø€D„IØ%€DÔØ!€DÔØ€D„J€J€Jr   c                 ó<   — d| j         | j        | j        | j        fz  S )Nz1Ref(%s, parent_width=%d, byte_width=%d, type_=%s)rC  rÉ   s    r   rÊ   zRef.__repr__B  s+   € Ø>ØŒ	ØÔØÔØŒ
ð	Bñ ð r   c                 ó*   — | j         d | j        …         S r\   )r¹   rD  rÉ   s    r   Ú_Bytesz
Ref._BytesJ  s   € àŒ9Ð)�tÔ)Ð)Ô*Ð*r   c                 ó6   — t          d| j        ›d|›�¦  «        ‚)Nzcannot convert z to )rÂ   rE  )r¼   Útarget_types     r   Ú_ConvertErrorzRef._ConvertErrorN  s   € Ý
ˆ)°´°°¸[¸[ÐIÑ
JÔ
JÐJr   c                 óB   — | j                              d| j        ¦  «        S rM   )r¹   rÒ   rD  rÉ   s    r   Ú	_IndirectzRef._IndirectQ  s   € ØŒ9×Ò˜a Ô!3Ñ4Ô4Ð4r   c                 ó(   — | j         t          j        u S r\   )rE  r   r¥   rÉ   s    r   ÚIsNullz
Ref.IsNullT  ó   € àŒ:�œÐ"Ð"r   c                 ó(   — | j         t          j        u S r\   )rE  r   r†   rÉ   s    r   ÚIsBoolz
Ref.IsBoolX  rS  r   c                 óŒ   — | j         t          j        u r't          t	          t
          | j        ¦  «        ¦  «        S | j        dk    S rM   )rE  r   r†   r$  r:   r   rK  ÚAsIntrÉ   s    r   ÚAsBoolz
Ref.AsBool\  s7   € à„z•T”YÐÐÝ•'�!˜Tœ[Ñ)Ô)Ñ*Ô*Ð*àŒZ˜1Š_Ðr   c                 óh   — | j         o+t          t          | j        || j        t
          j        ¦  «        S )zšMutates underlying boolean value bytes in place.

    Args:
      value: New boolean value.

    Returns:
      Whether the value was mutated or not.
    )rU  rF   r   r¹   rD  r	   r   ©r¼   r   s     r   Ú
MutateBoolzRef.MutateBoolc  s1   € ð Œ;ð �7Ý	ˆ4Œ9�e˜TÔ/µ´ñô ð r   c                 ó   — | j         p| j        S r\   )ÚIsIntÚIsFloatrÉ   s    r   Ú	IsNumericzRef.IsNumericp  s   € àŒ:Ð%˜œÐ%r   c                 ól   — | j         t          j        t          j        t          j        t          j        fv S r\   )rE  r   r�   r¨   r¦   r©   rÉ   s    r   r]  z	Ref.IsIntt  s,   € àŒ:ÝŒÝÔÝŒ	ÝÔð	ð ð r   c                 óœ  — | j         rdS | j        rt          | j        ¦  «        S | j        t
          j        u rt          t          | j	        ¦  «        S | j        t
          j
        u r4t          t          |                      ¦   «         d| j        …         ¦  «        S | j        t
          j        u rt          t          | j	        ¦  «        S | j        t
          j        u r4t          t          |                      ¦   «         d| j        …         ¦  «        S | j        rt#          | j        ¦  «        S | j        rt#          | j        ¦  «        S | j        rt#          | j        ¦  «        S | j        rt#          | j        ¦  «        S | j        rt#          | j        ¦  «        S | j        rt#          | j        ¦  «        S |                      t
          j        ¦  «        ‚)z+Returns current reference as integer value.r   N)rR  rU  r|   rX  rE  r   r�   r:   r   rK  r¨   rP  rÖ   r¦   r   r©   ÚIsStringr7   r(  ÚIsKeyr&  ÚIsBlobÚAsBlobÚIsVectorÚAsVectorr�   ÚAsTypedVectorr—   ÚAsFixedTypedVectorrN  rÉ   s    r   rW  z	Ref.AsInt}  s“  € ð „{ð >ØˆQØ	Œð >Ý�”ÑÔÐØ	Œ•t”xÐ	Ð	Ý•Q˜œÑ$Ô$Ð$Ø	Œ•tÔ(Ð	(Ð	(Ý•Q˜ŸšÑ(Ô(Ð);¨4Ô+;Ð);Ô<Ñ=Ô=Ð=Ø„z•T”YÐÐÝ•Q˜œÑ$Ô$Ð$Ø	Œ•tÔ)Ð	)Ð	)Ý•Q˜ŸšÑ(Ô(Ð);¨4Ô+;Ð);Ô<Ñ=Ô=Ð=Ø	Œð )Ý�”ÑÔÐØ	Œð )Ý�”‰_Œ_ÐØ	Œð 	)Ý�”ÑÔÐØ	Œð )Ý�”ÑÔÐØ	Ô	ð )Ý�Ô#Ñ$Ô$Ð$Ø	Ô	 ð )Ý�Ô(Ñ)Ô)Ð)à×Ò�tœxÑ(Ô(Ð(r   c           	      ó¢  — | j         t          j        u r:t          t          | j        || j        t                               |¦  «        ¦  «        S | j         t          j        u rGt          t          |  	                    ¦   «         || j
        t                               |¦  «        ¦  «        S | j         t          j        u r:t          t          | j        || j        t                               |¦  «        ¦  «        S | j         t          j        u rGt          t          |  	                    ¦   «         || j
        t                               |¦  «        ¦  «        S dS )zÞMutates underlying integer value bytes in place.

    Args:
      value: New integer value. It must fit to the byte size of the existing
        encoded value.

    Returns:
      Whether the value was mutated or not.
    F)rE  r   r�   rF   r   r¹   rD  r	   r¨   rP  rÖ   r¦   r   r©   rZ  s     r   Ú	MutateIntzRef.MutateInt›  s  € ð „z•T”XÐÐÝ•Q˜œ	 5¨$Ô*<½h¿jºjÈÑ>OÔ>OÑPÔPÐPØ	Œ•tÔ(Ð	(Ð	(ÝÝ
ˆT�^Š^ÑÔ˜u dÔ&6½¿
º
À5Ñ8IÔ8Iñô ð ð 
Œ•t”yÐ	 Ð	 Ý•Q˜œ	 5¨$Ô*<½h¿jºjÈÑ>OÔ>OÑPÔPÐPØ	Œ•tÔ)Ð	)Ð	)ÝÝ
ˆT�^Š^ÑÔ˜u dÔ&6½¿
º
À5Ñ8IÔ8Iñô ð ð ˆUr   c                 ó@   — | j         t          j        t          j        fv S r\   )rE  r   r…   rª   rÉ   s    r   r^  zRef.IsFloat´  s   € àŒ:�$œ*¥dÔ&9Ð:Ð:Ð:r   c                 ó   — | j         rdS | j        rt          | j        ¦  «        S | j        rt          | j        ¦  «        S | j        t          j        u rt          t          | j        ¦  «        S | j        t          j        u r4t          t          |                      ¦   «         d| j        …         ¦  «        S | j        rt          | j        ¦  «        S | j        r!t          t%          | j        ¦  «        ¦  «        S |                      ¦   «         r!t          t%          | j        ¦  «        ¦  «        S |                      ¦   «         r!t          t%          | j        ¦  «        ¦  «        S |                      t          j        ¦  «        ‚)z2Returns current reference as floating point value.g        N)rR  rU  ÚfloatrX  r]  rW  rE  r   r…   r:   r   rK  rª   rP  rÖ   rb  r(  rf  r7   rg  r�   rh  r—   ÚFixedTypedVectorrN  rÉ   s    r   ÚAsFloatzRef.AsFloat¸  sL  € ð „{ð +ØˆSØ	Œð +Ý�4”;ÑÔÐØ	Œð +Ý�4”:ÑÔÐØ	Œ•t”zÐ	!Ð	!Ý•Q˜œÑ$Ô$Ð$Ø	Œ•tÔ*Ð	*Ð	*Ý•Q˜ŸšÑ(Ô(Ð);¨4Ô+;Ð);Ô<Ñ=Ô=Ð=Ø	Œð 	+Ý�4”=Ñ!Ô!Ð!Ø	Œð +Ý•3�t”}Ñ%Ô%Ñ&Ô&Ð&Ø	×	Ò	Ñ	Ô	ð +Ý•3�tÔ)Ñ*Ô*Ñ+Ô+Ð+Ø	×	 Ò	 Ñ	"Ô	"ð +Ý•3�tÔ,Ñ-Ô-Ñ.Ô.Ð.à×Ò�tœzÑ*Ô*Ð*r   c           	      óh  — | j         t          j        u r?t          t          | j        || j        t                               | j        ¦  «        ¦  «        S | j         t          j	        u rLt          t          |  
                    ¦   «         || j        t                               | j        ¦  «        ¦  «        S dS )zãMutates underlying floating point value bytes in place.

    Args:
      value: New float value. It must fit to the byte size of the existing
        encoded value.

    Returns:
      Whether the value was mutated or not.
    F)rE  r   r…   rF   r   r¹   rD  r	   r&   rª   rP  rÖ   rZ  s     r   ÚMutateFloatzRef.MutateFloatÐ  sž   € ð „z•T”ZÐÐÝÝ
Ø
Œ)Ø
Ø
Ô
Ý
�*Š*�TÔ'Ñ
(Ô
(ñô ð ð 
Œ•tÔ*Ð	*Ð	*ÝÝ
Ø
�.Š.Ñ
Ô
Ø
Ø
Ô
Ý
�*Š*�TÔ%Ñ
&Ô
&ñô ð ð ˆUr   c                 ó(   — | j         t          j        u S r\   )rE  r   r§   rÉ   s    r   rc  z	Ref.IsKeyí  ó   € àŒ:�œÐ!Ð!r   c                 ó¦   — | j         r,t          |                      ¦   «         | j        ¦  «        j        S |                      t          j        ¦  «        ‚r\   )rc  r  rP  rÖ   rî   rN  r   r§   rÉ   s    r   r/  zRef.AsKeyBytesñ  sB   € à„zð )Ý�—’Ñ!Ô! 4Ô#3Ñ4Ô4Ô:Ð:à×Ò�tœxÑ(Ô(Ð(r   c                 ó¶   — | j         r4t          t          |                      ¦   «         | j        ¦  «        ¦  «        S |                      t          j        ¦  «        ‚r\   )rc  Ústrr  rP  rÖ   rN  r   r§   rÉ   s    r   r&  z	Ref.AsKeyø  sG   € à„zð )Ý•�T—^’^Ñ%Ô% tÔ'7Ñ8Ô8Ñ9Ô9Ð9à×Ò�tœxÑ(Ô(Ð(r   c                 ó(   — | j         t          j        u S r\   )rE  r   r�   rÉ   s    r   rb  zRef.IsStringÿ  s   € àŒ:�œÐ$Ð$r   c                 óÂ   — | j         r,t          |                      ¦   «         | j        ¦  «        j        S | j        r| j        S |                      t          j	        ¦  «        ‚r\   )
rb  rò   rP  rÖ   rî   rc  r/  rN  r   r�   rÉ   s    r   ÚAsStringByteszRef.AsStringBytes  sT   € à„}ð ,Ý�D—N’NÑ$Ô$ dÔ&6Ñ7Ô7Ô=Ð=Ø	Œð ,ØŒ_Ðà×Ò�tœ{Ñ+Ô+Ð+r   c                 óÒ   — | j         r4t          t          |                      ¦   «         | j        ¦  «        ¦  «        S | j        r| j        S |                      t          j	        ¦  «        ‚r\   )
rb  rw  rò   rP  rÖ   rc  r&  rN  r   r�   rÉ   s    r   r(  zRef.AsString  sY   € à„}ð ,Ý•˜ŸšÑ(Ô(¨$Ô*:Ñ;Ô;Ñ<Ô<Ð<Ø	Œð ,ØŒZÐà×Ò�tœ{Ñ+Ô+Ð+r   c                 óv   — t          |                      ¦   «         | j        ¦  «                             |¦  «        S r\   )rò   rP  rÖ   rú   rZ  s     r   ÚMutateStringzRef.MutateString  s-   € Ý�$—.’.Ñ"Ô" DÔ$4Ñ5Ô5×<Ò<¸UÑCÔCÐCr   c                 ó(   — | j         t          j        u S r\   )rE  r   rµ   rÉ   s    r   rd  z
Ref.IsBlob  rS  r   c                 ó¦   — | j         r,t          |                      ¦   «         | j        ¦  «        j        S |                      t          j        ¦  «        ‚r\   )rd  rë   rP  rÖ   rî   rN  r   rµ   rÉ   s    r   re  z
Ref.AsBlob  sB   € à„{ð *Ý�$—.’.Ñ"Ô" DÔ$4Ñ5Ô5Ô;Ð;à×Ò�tœyÑ)Ô)Ð)r   c                 óF   — | j         p| j        p|                      ¦   «         S r\   )rf  r�   r—   rÉ   s    r   ÚIsAnyVectorzRef.IsAnyVector#  s#   € àŒ=ÐK˜DÔ.ÐK°$×2IÒ2IÑ2KÔ2KÐKr   c                 ó@   — | j         t          j        t          j        fv S r\   )rE  r   r¬   r«   rÉ   s    r   rf  zRef.IsVector'  s   € àŒ:�$œ+¥t¤xÐ0Ð0Ð0r   c                 óœ   — | j         r't          |                      ¦   «         | j        ¦  «        S |                      t
          j        ¦  «        ‚r\   )rf  r  rP  rÖ   rN  r   r¬   rÉ   s    r   rg  zRef.AsVector+  s?   € à„}ð ,Ý�D—N’NÑ$Ô$ dÔ&6Ñ7Ô7Ð7à×Ò�tœ{Ñ+Ô+Ð+r   c                 ó@   — t                                | j        ¦  «        S r\   )r   r�   rE  rÉ   s    r   r�   zRef.IsTypedVector2  s   € å×Ò˜dœjÑ)Ô)Ð)r   c                 óÄ   — | j         rEt          |                      ¦   «         | j        t                               | j        ¦  «        ¦  «        S |                      d¦  «        ‚)NÚTYPED_VECTOR)r�   r  rP  rÖ   r   r“   rE  rN  rÉ   s    r   rh  zRef.AsTypedVector6  s[   € àÔð /ÝØ
�.Š.Ñ
Ô
Ø
Ô
Ý
×
'Ò
'¨¬
Ñ
3Ô
3ñô ð ð ×Ò˜~Ñ.Ô.Ð.r   c                 ó@   — t                                | j        ¦  «        S r\   )r   r—   rE  rÉ   s    r   r—   zRef.IsFixedTypedVectorA  s   € å×"Ò" 4¤:Ñ.Ô.Ð.r   c                 óÐ   — | j         rKt                               | j        ¦  «        \  }}t	          |                      ¦   «         | j        ||¦  «        S |                      d¦  «        ‚)NÚFIXED_TYPED_VECTOR)r—   r   rœ   rE  r  rP  rÖ   rN  )r¼   r¡   rã   s      r   ri  zRef.AsFixedTypedVectorE  s]   € àÔð 5Ý×=Ò=¸d¼jÑIÔIÑ€l�DÝ˜ŸšÑ)Ô)¨4Ô+;¸\È4ÑPÔPÐPà×ÒÐ3Ñ4Ô4Ð4r   c                 ó(   — | j         t          j        u S r\   )rE  r   r«   rÉ   s    r   ÚIsMapz	Ref.IsMapM  rt  r   c                 óœ   — | j         r't          |                      ¦   «         | j        ¦  «        S |                      t
          j        ¦  «        ‚r\   )r‹  r-  rP  rÖ   rN  r   r«   rÉ   s    r   ÚAsMapz	Ref.AsMapQ  s?   € à„zð )Ý�—’Ñ!Ô! 4Ô#3Ñ4Ô4Ð4à×Ò�tœxÑ(Ô(Ð(r   c                 óx  — | j         rdS | j        r| j        S | j        r| j        S | j        r| j        S | j        r| j        S | j	        r| j
        S | j        r| j        S | j        r| j        j        S | j        r| j        j        S | j        r| j        j        S | j        r| j        j        S t-          d| z  ¦  «        ‚)zÝConverts current reference to value of corresponding type.

    This is equivalent to calling `AsInt` for integer values, `AsFloat` for
    floating point values, etc.

    Returns:
      Value of corresponding type.
    Nzcannot convert %r to value)rR  rU  rX  r]  rW  r^  rp  rb  r(  rc  r&  rd  re  r‹  r�  r  rf  rg  r�   rh  r—   ri  rÂ   rÉ   s    r   r  z	Ref.ValueX  së   € ð „{ð ;ØˆTØ	Œð ;ØŒ[ÐØ	Œð ;ØŒZÐØ	Œð ;ØŒ\ÐØ	Œð ;ØŒ]ÐØ	Œð ;ØŒZÐØ	Œð ;ØŒ[ÐØ	Œð 	;ØŒZÔÐØ	Œð ;ØŒ]Ô Ð Ø	Ô	ð ;ØÔÔ%Ð%Ø	Ô	 ð ;ØÔ$Ô*Ð*åÐ2°TÑ9Ñ:Ô:Ð:r   N)+r'   r(   r)   r*   rÚ   r+   r  r½   rÊ   rÛ   rK  rN  rP  rR  rU  rX  r[  r_  r]  rW  rk  r^  rp  rr  rc  r/  r&  rb  rz  r(  r}  rd  re  r�  rf  rg  r�   rh  r—   ri  r‹  r�  r  r,   r   r   r  r  2  s’  € € € € € Ø1Ð1à=€)àð5ð 5ñ „<ð5ðð ð ðð ð ð ð+ð +ñ „8ð+ðKð Kð Kð5ð 5ð 5ð ð#ð #ñ „8ð#ð ð#ð #ñ „8ð#ð ðð ñ „8ððð ð ð ð&ð &ñ „8ð&ð ðð ñ „8ðð ð)ð )ñ „8ð)ð:ð ð ð2 ð;ð ;ñ „8ð;ð ð+ð +ñ „8ð+ð.ð ð ð: ð"ð "ñ „8ð"ð ð)ð )ñ „8ð)ð ð)ð )ñ „8ð)ð ð%ð %ñ „8ð%ð ð,ð ,ñ „8ð,ð ð,ð ,ñ „8ð,ðDð Dð Dð ð#ð #ñ „8ð#ð ð*ð *ñ „8ð*ð ðLð Lñ „8ðLð ð1ð 1ñ „8ð1ð ð,ð ,ñ „8ð,ð ð*ð *ñ „8ð*ð ð/ð /ñ „8ð/ð ð/ð /ñ „8ð/ð ð5ð 5ñ „8ð5ð ð"ð "ñ „8ð"ð ð)ð )ñ „8ð)ð ð ;ð  ;ñ „8ð ;ð  ;ð  ;r   r  c                 óH   — 	 t          | ¦  «         dS # t          $ r Y dS w xY w)NTF)ÚiterrÂ   )Úobjs    r   Ú_IsIterabler’  |  s9   € ðÝˆ�I„I€IØˆ4øÝ	ð ð ð Øˆ5ˆ5ðøøøs   ‚ “
! !c                   ó  — e Zd ZdZed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
d„ Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zej        fd„Zdd„Zej        fd„Zd„ Zd„ ZdS )r  z;Class to represent given value during the encoding process.c                  óL   — t          dt          j        t          j        ¦  «        S rM   )r  r   r¥   r	   r   r,   r   r   ÚNullz
Value.Null‡  s   € å�•D”I�xœ{Ñ+Ô+Ð+r   c                 óL   — t          | t          j        t          j        ¦  «        S r\   )r  r   r†   r	   r   r   s    r   ÚBoolz
Value.Bool‹  s   € å��œ	¥8¤;Ñ/Ô/Ð/r   c                 ó8   — t          | t          j        |¦  «        S r\   )r  r   r�   ©r   r~   s     r   ÚIntz	Value.Int�  s   € å��œ )Ñ,Ô,Ð,r   c                 ó8   — t          | t          j        |¦  «        S r\   )r  r   r¦   r™  s     r   ÚUIntz
Value.UInt“  s   € å��œ	 9Ñ-Ô-Ð-r   c                 ó8   — t          | t          j        |¦  «        S r\   )r  r   r…   r™  s     r   ÚFloatzValue.Float—  s   € å��œ
 IÑ.Ô.Ð.r   c                 óL   — t          | t          j        t          j        ¦  «        S r\   )r  r   r§   r	   r   )rS   s    r   r  z	Value.Key›  s   € å��œ¥8¤;Ñ/Ô/Ð/r   c                 ó0   — || _         || _        || _        d S r\   ©Ú_valuerE  Ú_min_bit_width)r¼   r   r}   Úmin_bit_widths       r   r½   zValue.__init__Ÿ  s    € Ø€D„KØ€D„Jð (€DÔÐÐr   c                 ó   — | j         S r\   )r¢  rÉ   s    r   r  zValue.Value¦  s
   € àŒ;Ðr   c                 ó   — | j         S r\   )rE  rÉ   s    r   r   z
Value.Typeª  s
   € àŒ:Ðr   c                 ó   — | j         S r\   )r£  rÉ   s    r   ÚMinBitWidthzValue.MinBitWidth®  s   € àÔÐr   c                 óh   — t                                | j        |                      |¦  «        ¦  «        S r\   )r   r   rE  ÚStoredWidth©r¼   Úparent_bit_widths     r   ÚStoredPackedTypezValue.StoredPackedType²  s'   € Ý�9Š9�T”Z ×!1Ò!1Ð2BÑ!CÔ!CÑDÔDÐDr   r   c                 ó  — t                                | j        ¦  «        r| j        S dD ]J}|t	          ||¦  «        z   ||z  z   }t
                               || j        z
  ¦  «        }|d|z  k    r|c S ŒKt          d¦  «        ‚)Nr!   r
   zrelative offset is too big)	r   rˆ   rE  r£  rK   r	   r   r¢  r   )r¼   rI   Ú
elem_indexr%   Ú
offset_locr~   s         r   Ú	ElemWidthzValue.ElemWidthº  s    € Ý‡}‚}�T”ZÑ Ô ð !ØÔ Ð Ø ð ð ˆ
à
Ý˜( JÑ/Ô/ñ0à˜Ñ#ñ$ð õ
 —*’*˜Z¨$¬+Ñ5Ñ6Ô6€iØ	˜˜Y™Ò	'Ð	'ØÐÐÐð 
(å
Ð1Ñ
2Ô
2Ð2r   c                 óx   — t                                | j        ¦  «        rt          | j        |¦  «        S | j        S r\   )r   rˆ   rE  Úmaxr£  r«  s     r   rª  zValue.StoredWidthÈ  s5   € Ý‡}‚}�T”ZÑ Ô ð 8Ý�Ô$Ð&6Ñ7Ô7Ð7ØÔÐr   c                 ó8   — d| j         ›d| j        ›d| j        ›d�S )NzValue(z, ú)r¡  rÉ   s    r   rÊ   zValue.__repr__Í  s&   € € Ø"&¤+ + +¨t¬z¨z¨z¸4Ô;NÐ;NÐ;NÐOÐOr   c                 ó*   — t          | j        ¦  «        S r\   )rw  r¢  rÉ   s    r   rþ   zValue.__str__Ð  s   € ÝˆtŒ{ÑÔÐr   Nr¤   )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  „  s‰  € € € € € ØCÐCàð,ð ,ñ „<ð,ð ð0ð 0ñ „<ð0ð ð-ð -ñ „<ð-ð ð.ð .ñ „<ð.ð ð/ð /ñ „<ð/ð ð0ð 0ñ „<ð0ð(ð (ð (ð ðð ñ „8ðð ðð ñ „8ðð ðð ñ „8ðð /7¬kð Eð Eð Eð Eð3ð 3ð 3ð 3ð *2¬ð ð ð ð ð
Pð Pð Pðð ð ð ð r   r  c                 ó   ‡ — ˆ fd„}|S )Nc                 ó¸   •— t          |d         t          ¦  «        r1|                      |d         ¦  «          ‰| g|dd …         ¢R i |¤Ž d S  ‰| g|¢R i |¤Ž d S )Nr   r
   )rÁ   rw  r  )r¼   ÚargsÚkwargsÚfuncs      €r   ÚwrapperzInMap.<locals>.wrapperÕ  sƒ   ø€ Ý�$�q”'�3ÑÔð "Ø
‡h‚hˆt�AŒwÑÔÐØ
€dˆ4Ð%�$�q�r�r”(Ð%Ð%Ð%˜fÐ%Ð%Ð%Ð%Ð%à
€dˆ4Ð!�$Ð!Ð!Ð!˜&Ð!Ð!Ð!Ð!Ð!r   r,   ©r»  r¼  s   ` r   ÚInMapr¾  Ô  s#   ø€ ð"ð "ð "ð "ð "ð 
€.r   c                 ó   ‡ — ˆ fd„}|S )Nc                 óô   •— t          |¦  «        dk    r ‰| |d         ¦  «         d S t          |¦  «        dk    r/|                      |d         ¦  «          ‰| |d         ¦  «         d S t          d¦  «        ‚)Nr
   r   r   zinvalid number of arguments)r7   r  r   )r¼   r¹  r»  s     €r   r¼  zInMapForString.<locals>.wrapperà  s~   ø€ Ý
ˆ4�y„y�A‚~€~Ø
€dˆ4��a”ÑÔÐÐÐÝ	ˆT‰Œ�aŠˆØ
‡h‚hˆt�AŒwÑÔÐØ
€dˆ4��a”ÑÔÐÐÐåÐ4Ñ5Ô5Ð5r   r,   r½  s   ` r   ÚInMapForStringrÁ  ß  s#   ø€ ð6ð 6ð 6ð 6ð 6ð 
€.r   c                   ó:   — e Zd ZdZd„ Zd„ Zd„ Zed„ ¦   «         ZdS )ÚPoolzCCollection of (data, offset) pairs sorted by data for quick access.c                 ó   — g | _         d S r\   ©Ú_poolrÉ   s    r   r½   zPool.__init__ï  ó   € Ø€D„J€J€Jr   c                 ó¢   — ||f}t          | j        |d„ ¦  «        }|dk    r| j        |         \  }}|S | j                             ||¦  «         d S )Nc                 ó&   — | d         |d         k     S rM   r,   r0  s     r   r_   z#Pool.FindOrInsert.<locals>.<lambda>ô  s   € °q¸´t¸aÀ¼d²{€ r   ra   )rc   rÆ  Úinsert)r¼   ÚdatarS   Údorb   Ú_s         r   ÚFindOrInsertzPool.FindOrInsertò  s]   € Ø	ˆvˆ€BÝ˜$œ* bÐ*BÐ*BÑCÔC€EØ�‚{€{Ø”*˜UÔ#�i€aˆØ€mØ„J×Ò�e˜RÑ Ô Ð Øˆ4r   c                 ó   — g | _         d S r\   rÅ  rÉ   s    r   ÚClearz
Pool.Clearû  rÇ  r   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó   — g | ]\  }}|‘ŒS r,   r,   )r  rË  rÍ  s      r   r  z!Pool.Elements.<locals>.<listcomp>   s   € Ð+Ð+Ð+‘W�T˜1ˆDÐ+Ð+Ð+r   rÅ  rÉ   s    r   ÚElementszPool.Elementsþ  s   € à+Ð+ ¤
Ð+Ñ+Ô+Ð+r   N)	r'   r(   r)   r*   r½   rÎ  rÐ  rÛ   rÓ  r,   r   r   rÃ  rÃ  ì  sb   € € € € € ØKÐKðð ð ðð ð ðð ð ð ð,ð ,ñ „8ð,ð ,ð ,r   rÃ  c                   óš  — e Zd ZdZddej        fd„Zd„ Zed„ ¦   «         Z	ed„ ¦   «         Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd0d„Zd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd0d„Zed„ ¦   «         Zed1d„¦   «         Zed1d„¦   «         Zed1d„¦   «         Z ed1d„¦   «         Z!ed1d„¦   «         Z"ed1d „¦   «         Z#d!„ Z$d"„ Z%e&j'        d0d#„¦   «         Z(ed$„ ¦   «         Z)e&j'        d0d%„¦   «         Z*ed0d&„¦   «         Z+e	 d2d'„¦   «         Z,d(„ Z-d)„ Z.e&j'        d0d*„¦   «         Z/d+„ Z0d,„ Z1ed-„ ¦   «         Z2ed.„ ¦   «         Z3ed/„ ¦   «         Z4dS )3r   z?Helper class to encode structural data into flexbuffers format.FTc                 ó¾   — || _         || _        || _        t          ¦   «         | _        t          ¦   «         | _        d| _        t          ¦   «         | _        g | _	        d S ©NF)
Ú_share_stringsÚ_share_keysÚ_force_min_bit_widthrÃ  Ú_string_poolÚ	_key_poolÚ	_finishedr÷   r¹   Ú_stack)r¼   Úshare_stringsÚ
share_keysÚforce_min_bit_widths       r   r½   zBuilder.__init__  sP   € ð (€DÔØ!€DÔØ 3€DÔå™œ€DÔÝ‘V”V€D„Nà€D„NÝ‘”€D„IØ€D„K€K€Kr   c                 ó*   — t          | j        ¦  «        S r\   )r7   r¹   rÉ   s    r   rç   zBuilder.__len__  s   € ÝˆtŒy‰>Œ>Ðr   c                 ó   — | j         S r\   )rÚ  rÉ   s    r   Ú
StringPoolzBuilder.StringPool  s   € àÔÐr   c                 ó   — | j         S r\   )rÛ  rÉ   s    r   ÚKeyPoolzBuilder.KeyPool  s
   € àŒ>Ðr   c                 ó¬   — | j                              ¦   «          | j                             ¦   «          d| _        t	          ¦   «         | _        g | _        d S rÖ  )rÚ  rÐ  rÛ  rÜ  r÷   r¹   rÝ  rÉ   s    r   rÐ  zBuilder.Clear"  sH   € ØÔ×ÒÑÔÐØ„N×ÒÑÔÐØ€D„NÝ‘”€D„IØ€D„K€K€Kr   c                 óì  — | j         rt          d¦  «        ‚t          | j        ¦  «        dk    rt          d¦  «        ‚| j        d         }|                      |                     t          | j        ¦  «        ¦  «        ¦  «        }|                      ||¬¦  «         |                      t          | 
                    ¦   «         d¬¦  «         |                      t          |d¬¦  «         d| _        | j        S )z8Finishes encoding process and returns underlying buffer.z!builder has been already finishedr
   zinternal stack size must be oner   r$   T)rÜ  ÚRuntimeErrorr7   rÝ  Ú_Alignr±  r¹   Ú	_WriteAnyÚ_Writer   r­  Úfinished)r¼   r   r%   s      r   ÚFinishzBuilder.Finish)  sÒ   € à„~ð >ÝÐ<Ñ=Ô=Ð=õ ˆ4Œ;ÑÔ˜1ÒÐÝÐ:Ñ;Ô;Ð;àŒK˜ŒN€EØ—’˜UŸ_š_­S°´©^¬^Ñ<Ô<Ñ=Ô=€JØ‡N‚N�5 Z€NÑ0Ô0Ð0Ø‡K‚K•�5×)Ò)Ñ+Ô+¸€KÑ:Ô:Ð:Ø‡K‚K•�:¨!€KÑ,Ô,Ð,à€D„MØŒ9Ðr   c                 óZ   — | j         |d …         }|d |                     d¦  «        …         S rM   )r¹   rÌ   )r¼   rS   rÄ   s      r   Ú_ReadKeyzBuilder._ReadKey>  s+   € Ø
Œ)�F�G�GÔ
€CØˆ}�—’˜!‘”ˆ}ÔÐr   c                 óŠ   — d|z  }| j                              dt          t          | j         ¦  «        |¦  «        z  ¦  «         |S )Nr
   ó    )r¹   ÚextendrK   r7   )r¼   Ú	alignmentr%   s      r   ré  zBuilder._AlignB  s>   € Ø�i‘€JØ„I×Ò�W�}­S°´©^¬^¸ZÑHÔHÑHÑIÔIÐIØÐr   c                 óX   — | j                              t          |||¦  «        ¦  «         d S r\   )r¹   rò  r@   )r¼   r8   r   r%   s       r   rë  zBuilder._WriteG  s*   € Ø„I×Ò•U˜3  zÑ2Ô2Ñ3Ô3Ð3Ð3Ð3r   c                 óX   — | j                              t          |||¦  «        ¦  «         d S r\   )r¹   rò  rC   )r¼   r8   rB   r%   s       r   Ú_WriteVectorzBuilder._WriteVectorJ  s*   € Ø„I×Ò•[  f¨jÑ9Ô9Ñ:Ô:Ð:Ð:Ð:r   c                 ó”   — t          | j        ¦  «        |z
  }|dk    s|dd|z  z  k     sJ ‚|                      t          ||¦  «         d S )Nr#   r
   )r7   r¹   rë  r   )r¼   rS   r%   Úrelative_offsets       r   Ú_WriteOffsetzBuilder._WriteOffsetM  sR   € Ý˜$œ)‘n”n vÑ-€OØ˜Š?ˆ?˜o°°q¸:±~Ñ1FÒGÐGÐGÐGØ‡K‚K•�? JÑ/Ô/Ð/Ð/Ð/r   c           
      óZ  — t           j        t          t           j        t          t           j        t
          t           j        t          t           j        t          i 	                    |j         ¦  «        }|r|  
                    ||j        |¦  «         d S |                      |j        |¦  «         d S r\   )r   r¥   r   r†   r�   r   r¦   r…   r   Úgetrë  r  rù  )r¼   r   r%   r8   s       r   rê  zBuilder._WriteAnyR  s„   € åŒ	•1ÝŒ	•1ÝŒ•!ÝŒ	•1ÝŒ
•Að÷ 
‚cˆ%Œ*�o„oð ð ð 1Ø
‡k‚k�#�u”{ JÑ/Ô/Ð/Ð/Ð/à
×Ò˜œ ZÑ0Ô0Ð0Ð0Ð0r   c                 ó¶  — t                                t          |¦  «        ¦  «        }|                      |¦  «        }|                      t          t          |¦  «        |¦  «         t          | j        ¦  «        }| j                             |¦  «         |r| j                             d¦  «         | j                             t          |||¦  «        ¦  «         |S rM   )
r	   r   r7   ré  rë  r¹   rò  ÚappendrÝ  r  )r¼   rË  Úappend_zeror}   r~   r%   Úlocs          r   Ú
_WriteBlobzBuilder._WriteBlob_  s®   € Ý—
’
�3˜t™9œ9Ñ%Ô%€IØ—’˜YÑ'Ô'€JØ‡K‚K••3�t‘9”9˜jÑ)Ô)Ð)Ý
ˆdŒi‰.Œ.€CØ„I×Ò�TÑÔÐØð Ø
„i×Ò�qÑÔÐØ„K×Ò•u˜S %¨Ñ3Ô3Ñ4Ô4Ð4Ø€Jr   c                 óà  — t                                |¦  «        }t                                t          |¦  «        ¦  «        |k    rt	          d¦  «        ‚|                      |¦  «         |s)|                      t          t          |¦  «        |¦  «         t          | j        ¦  «        }t          j	        t          t          j        t          t          j        t          i                     |¦  «        }|st          d¦  «        ‚|                      |||¦  «         t                               ||rt          |¦  «        nd¦  «        }| j                             t)          |||¦  «        ¦  «         |S )z7Writes scalar vector elements to the underlying buffer.z*too many elements for the given byte_widthzunsupported element_typer   )r	   r&   r   r7   r   ré  rë  r¹   r   r�   r   r¦   r…   r   rû  rÂ   rö  r£   rÝ  rý  r  )	r¼   r¡   r%   ÚelementsÚfixedr~   rÿ  r8   r}   s	            r   Ú_WriteScalarVectorzBuilder._WriteScalarVectorj  s$  € å—
’
˜:Ñ&Ô&€Iõ ‡z‚z•#�h‘-”-Ñ Ô  9Ò,Ð,ÝÐCÑDÔDÐDà‡K‚K�	ÑÔÐØð 0Ø
‡k‚k•!•S˜‘]”] JÑ/Ô/Ð/å
ˆdŒi‰.Œ.€CåŒ8•Q�œ	¥1¥d¤jµ!Ð
4×
8Ò
8¸Ñ
FÔ
F€CØð 2ÝÐ0Ñ1Ô1Ð1Ø×Ò�c˜8 ZÑ0Ô0Ð0å×Ò˜|¸eÐ-J­S°©]¬]¨]ÈÑKÔK€EØ„K×Ò•u˜S %¨Ñ3Ô3Ñ4Ô4Ð4Ø€Jr   Nc           	      óÄ  — t          |¦  «        }|r|st          d¦  «        ‚t          | j        t                               |¦  «        ¦  «        }d}|r:t          ||                     t          | j        ¦  «        ¦  «        ¦  «        }|dz  }t          j	        }t          |¦  «        D ]h\  }	}
t          ||
                     t          | j        ¦  «        ||	z   ¦  «        ¦  «        }|r(|	dk    r|
j        }ŒN||
j        k    rt          d¦  «        ‚Œi|r)t                               |¦  «        st          d¦  «        ‚|                      |¦  «        }|r?|                      |j        |¦  «         |                      t
          d|j        z  |¦  «         |s|                      t
          ||¦  «         t          | j        ¦  «        }|D ]}
|                      |
|¦  «         Œ|s2|D ]/}
| j                             |
                     |¦  «        ¦  «         Œ0|rt          j        }n.|r t                               ||r|nd¦  «        }nt          j        }t          |||¦  «        S )z0Writes vector elements to the underlying buffer.zfixed vector must be typedr
   r   r   z.typed vector elements must be of the same typerž   )r7   r   r³  rÙ  r	   r   r±  r¹   r   r§   Ú	enumeraterè  r™   ré  rù  r  rë  r¨  rê  rý  r­  r«   r£   r¬   )r¼   r  Útypedr  Úkeysr=   r~   Úprefix_elemsÚvector_typer/   r  r%   rÿ  r}   s                 r   Ú_CreateVectorzBuilder._CreateVector‚  sm  € å�‰]Œ]€Fàð 5�Uð 5ÝÐ3Ñ4Ô4Ð4õ �DÔ-­x¯zªz¸&Ñ/AÔ/AÑBÔB€IØ€LØð Ý�i §¢µ°D´I±´Ñ!?Ô!?Ñ@Ô@€iØ�aÑ€lå”(€Kå˜(Ñ#Ô#ð Qð Q‰ˆˆ1Ý�i §¢­S°´©^¬^¸\ÈAÑ=MÑ!NÔ!NÑOÔO€ià	ð QØ�Š6ˆ6Øœˆ+ˆ+à˜AœFÒ"Ð"ÝÐOÑPÔPÐPøàð D•T×7Ò7¸ÑDÔDð DÝÐBÑCÔCÐCà—’˜YÑ'Ô'€Jàð 8Ø
×Ò˜œ
 JÑ/Ô/Ð/Ø
‡k‚k•!�Q˜$Ô*Ñ*¨JÑ7Ô7Ð7àð )Ø
‡k‚k•!�V˜ZÑ(Ô(Ð(õ ˆdŒi‰.Œ.€CØð $ð $ˆØ
‡n‚n�Q˜
Ñ#Ô#Ð#Ð#ð ð 8Øð 8ð 8ˆ!ØŒ	×Ò˜×+Ò+¨IÑ6Ô6Ñ7Ô7Ð7Ð7àð ÝŒh€e€eà	ð Ý×"Ò" ;¸%Ð0F°°ÀQÑGÔGˆˆå”ˆå��e˜YÑ'Ô'Ð'r   c                 óN  — |                       |¦  «        }t          | j        ¦  «        }t          j        t
          t          j        t          t          j        t          i|         }|  
                    |||¦  «         | j                             t          |||¦  «        ¦  «         d S r\   )ré  r7   r¹   r   r¨   r   r©   r   rª   r   rë  rÝ  rý  r  )r¼   r   r}   r~   r%   rÿ  r8   s          r   Ú_PushIndirectzBuilder._PushIndirect¼  sƒ   € Ø—’˜YÑ'Ô'€JÝ
ˆdŒi‰.Œ.€CÝÔ�a¥Ô!3µQ½Ô8KÍQÐ
OØô€Cð 	‡K‚K��U˜JÑ'Ô'Ð'Ø„K×Ò•u˜S %¨Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4r   c                 ó   — t          | j        ¦  «        }|                     d¦  «        }|                      |dt          j        ¬¦  «        }| j        r;| j                             ||¦  «        }|�| j        |d…= |x| j	        d         _
        }|S )zEncodes string value.rõ   T©rþ  r}   Nra   )r7   r¹   rö   r   r   r�   r×  rÚ  rÎ  rÝ  r¢  )r¼   r   Úreset_torø   rÿ  Úprev_locs         r   rò   zBuilder.StringÅ  sŠ   € õ �4”9‰~Œ~€HØ�lŠl˜7Ñ#Ô#€GØ
�/Š/˜'¨t½4¼;ˆ/Ñ
GÔ
G€CØÔð 0ØÔ"×/Ò/°¸Ñ=Ô=€hØ	Ð	ØŒI�h�i�iÐ Ø'/Ð/ˆŒ�BŒÔ à€Jr   c                 óF   — |                       |dt          j        ¬¦  «        S )z§Encodes binary blob value.

    Args:
      value: A byte/bytearray value to encode

    Returns:
      Offset of the encoded value in underlying the byte buffer.
    Fr  )r   r   rµ   rZ  s     r   rë   zBuilder.BlobÓ  s   € ð �?Š?˜5¨e½4¼9ˆ?ÑEÔEÐEr   c                 óè  — t          |t          t          f¦  «        r|}n|                     d¦  «        }d|v rt	          d¦  «        ‚t          | j        ¦  «        }| j                             |¦  «         | j                             d¦  «         | j	        r)| j
                             ||¦  «        }|�| j        |d…= |}| j                             t                               |¦  «        ¦  «         |S )a  Encodes key value.

    Args:
      value: A byte/bytearray/str value to encode. Byte object must not contain
        zero bytes. String object must be convertible to ASCII.

    Returns:
      Offset of the encoded value in the underlying byte buffer.
    r  r   zkey contains zero byteN)rÁ   Úbytesr÷   rö   r   r7   r¹   rò  rý  rØ  rÛ  rÎ  rÝ  r  r  )r¼   r   rø   rÿ  r  s        r   r  zBuilder.Keyß  sã   € õ �%�%¥Ð+Ñ,Ô,ð &Ø€g€gà—’˜WÑ%Ô%€gàˆG€|€|ÝÐ/Ñ0Ô0Ð0å
ˆdŒi‰.Œ.€CØ„I×Ò�WÑÔÐØ„I×Ò�QÑÔÐØÔð Ø”×,Ò,¨W°cÑ:Ô:€hØ	Ð	ØŒI�c�d�dˆOØˆà„K×Ò•u—y’y ‘~”~Ñ&Ô&Ð&Ø€Jr   c                 ó–   — |r|                       |¦  «         | j                             t                               ¦   «         ¦  «         dS )zEncodes None value.N)r  rÝ  rý  r  r•  rÃ   s     r   r•  zBuilder.Nullý  s=   € à
ð Ø
‡h‚hˆs�m„m€mØ„K×Ò•u—z’z‘|”|Ñ$Ô$Ð$Ð$Ð$r   c                 ój   — | j                              t                               |¦  «        ¦  «         dS )zDEncodes boolean value.

    Args:
      value: A boolean value.
    N)rÝ  rý  r  r—  rZ  s     r   r—  zBuilder.Bool  s,   € ð 	„K×Ò•u—z’z %Ñ(Ô(Ñ)Ô)Ð)Ð)Ð)r   r   c                 óà   — |dk    rt                                |¦  «        nt                                |¦  «        }| j                             t
                               ||¦  «        ¦  «         dS )z‹Encodes signed integer value.

    Args:
      value: A signed integer value.
      byte_width: Number of bytes to use: 1, 2, 4, or 8.
    r   N)r	   r   r&   rÝ  rý  r  rš  ©r¼   r   r%   r~   s       r   rš  zBuilder.Int  sX   € ð &0°1¢_ _•—
’
˜5Ñ!Ô!Ð!½(¿*º*ÀZÑ:PÔ:P€IØ„K×Ò•u—y’y ¨	Ñ2Ô2Ñ3Ô3Ð3Ð3Ð3r   c                 ó¼   — |dk    rt                                |¦  «        nt                                |¦  «        }|                      |t          j        |¦  «         dS )z–Encodes signed integer value indirectly.

    Args:
      value: A signed integer value.
      byte_width: Number of bytes to use: 1, 2, 4, or 8.
    r   N)r	   r   r&   r  r   r¨   r  s       r   ÚIndirectIntzBuilder.IndirectInt  sO   € ð &0°1¢_ _•—
’
˜5Ñ!Ô!Ð!½(¿*º*ÀZÑ:PÔ:P€IØ×Ò�u�dÔ/°Ñ;Ô;Ð;Ð;Ð;r   c                 óà   — |dk    rt                                |¦  «        nt                                |¦  «        }| j                             t
                               ||¦  «        ¦  «         dS )z�Encodes unsigned integer value.

    Args:
      value: An unsigned integer value.
      byte_width: Number of bytes to use: 1, 2, 4, or 8.
    r   N)r	   r   r&   rÝ  rý  r  rœ  r  s       r   rœ  zBuilder.UInt"  sX   € ð &0°1¢_ _•—
’
˜5Ñ!Ô!Ð!½(¿*º*ÀZÑ:PÔ:P€IØ„K×Ò•u—z’z %¨Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4r   c                 ó¼   — |dk    rt                                |¦  «        nt                                |¦  «        }|                      |t          j        |¦  «         dS )z›Encodes unsigned integer value indirectly.

    Args:
      value: An unsigned integer value.
      byte_width: Number of bytes to use: 1, 2, 4, or 8.
    r   N)r	   r   r&   r  r   r©   r  s       r   ÚIndirectUIntzBuilder.IndirectUInt-  sO   € ð &0°1¢_ _•—
’
˜5Ñ!Ô!Ð!½(¿*º*ÀZÑ:PÔ:P€IØ×Ò�u�dÔ0°)Ñ<Ô<Ð<Ð<Ð<r   c                 óà   — |dk    rt                                |¦  «        nt                                |¦  «        }| j                             t
                               ||¦  «        ¦  «         dS )z„Encodes floating point value.

    Args:
      value: A floating point value.
      byte_width: Number of bytes to use: 4 or 8.
    r   N)r	   r   r&   rÝ  rý  r  rž  r  s       r   rž  zBuilder.Float8  sX   € ð &0°1¢_ _•—
’
˜5Ñ!Ô!Ð!½(¿*º*ÀZÑ:PÔ:P€IØ„K×Ò•u—{’{ 5¨)Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5r   c                 ó¼   — |dk    rt                                |¦  «        nt                                |¦  «        }|                      |t          j        |¦  «         dS )z�Encodes floating point value indirectly.

    Args:
      value: A floating point value.
      byte_width: Number of bytes to use: 4 or 8.
    r   N)r	   r   r&   r  r   rª   r  s       r   ÚIndirectFloatzBuilder.IndirectFloatC  sO   € ð &0°1¢_ _•—
’
˜5Ñ!Ô!Ð!½(¿*º*ÀZÑ:PÔ:P€IØ×Ò�u�dÔ1°9Ñ=Ô=Ð=Ð=Ð=r   c                 ó*   — t          | j        ¦  «        S )zStarts vector construction.©r7   rÝ  rÉ   s    r   Ú_StartVectorzBuilder._StartVectorN  ó   € åˆtŒ{ÑÔÐr   c                 ó    — |                       | j        |d…         ||¦  «        }| j        |d…= | j                             |¦  «         |j        S )z6Finishes vector construction by encodung its elements.N)r  rÝ  rý  r  )r¼   rN   r  r  Úvecs        r   Ú
_EndVectorzBuilder._EndVectorR  sP   € à
×
Ò
˜Tœ[¨¨¨Ô0°%¸Ñ
?Ô
?€CØŒ�E�F�FÐØ„K×Ò�sÑÔÐØŒ9Ðr   c              #   óÔ   K  — |r|                       |¦  «         	 |                      ¦   «         }| V — |                      |dd¬¦  «         d S # |                      |dd¬¦  «         w xY w)NF©r  r  ©r  r#  r'  ©r¼   rÄ   rN   s      r   r  zBuilder.VectorY  sx   è è € à
ð Ø
‡h‚hˆs�m„m€mð7Ø×ÒÑ!Ô!€eØ€j€j€jà
‡o‚o�e 5°€oÑ6Ô6Ð6Ð6Ð6ø€d‡o‚o�e 5°€oÑ6Ô6Ð6Ð6øøøó   ›A ÁA'c                 ó–   — |                       ¦   «         5  |D ]}|                      |¦  «         Œ	 ddd¦  «         dS # 1 swxY w Y   dS )z‚Encodes sequence of any elements as a vector.

    Args:
      elements: sequence of elements, they may have different types.
    N)r  ÚAdd)r¼   r  r  s      r   ÚVectorFromElementszBuilder.VectorFromElementsd  s›   € ð 
�Š‰Œð ð Øð ð ˆ!Ø�Š�‰Œˆˆððð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   •>¾AÁAc              #   óÔ   K  — |r|                       |¦  «         	 |                      ¦   «         }| V — |                      |dd¬¦  «         d S # |                      |dd¬¦  «         w xY w)NTFr)  r*  r+  s      r   r  zBuilder.TypedVectoro  sx   è è € à
ð Ø
‡h‚hˆs�m„m€mð6Ø×ÒÑ!Ô!€eØ€j€j€jà
‡o‚o�e 4¨u€oÑ5Ô5Ð5Ð5Ð5ø€d‡o‚o�e 4¨u€oÑ5Ô5Ð5Ð5øøør,  c                 ó¬  — t          |t          j        ¦  «        rÝ|j        dk    r%|                      t          j        d|d¬¦  «         d
S |j        dk    r%|                      t          j        d|d¬¦  «         d
S |j        dv r*|                      t          j        |j        |d¬¦  «         d
S |j        dv r*|                      t          j        |j        |d¬¦  «         d
S t          d	|j        z  ¦  «        ‚|€| j
        n|                      |¦  «        }|                      ¦   «         5  |D ]} ||¦  «         Œ	 d
d
d
¦  «         d
S # 1 swxY w Y   d
S )a%  Encodes sequence of elements of the same type as typed vector.

    Args:
      elements: Sequence of elements, they must be of the same type.
      element_type: Suggested element type. Setting it to None means determining
        correct value automatically based on the given elements.
    r3   r"   F©r  r4   r#   )r-   r.   r/   Úlr0   )r&   r1   r   ÚLr2   zunsupported array typecode: %sN)rÁ   ÚarrayÚtypecoder  r   r…   r�   Úitemsizer¦   r   r.  ÚAdderr  )r¼   r  r¡   Úaddr  s        r   ÚTypedVectorFromElementszBuilder.TypedVectorFromElementsz  sÖ  € õ �(�EœKÑ(Ô(ð Ø	Ô	˜cÒ	!Ð	!Ø×Ò¥¤
¨A¨x¸uÐÑEÔEÐEÐEÐEØÔ Ò#Ð#Ø×Ò¥¤
¨A¨x¸uÐÑEÔEÐEÐEÐEØÔÐ 9Ð9Ð9Ø×ÒÝŒH�hÔ'¨¸ð 	 ñ 	
ô 	
ð 	
ð 	
ð 	
ð ÔÐ 9Ð9Ð9Ø×ÒÝŒI�xÔ(¨(¸%ð 	 ñ 	
ô 	
ð 	
ð 	
ð 	
õ Ð9¸HÔ<MÑMÑNÔNÐNà$Ð,ˆDŒHˆH°$·*²*¸\Ñ2JÔ2J€cØ×ÒÑÔð ð Øð 	ð 	ˆAØ
ˆ#ˆa‰&Œ&ˆ&ˆ&ð	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ä*E	Å	EÅEc                 ój  ‡— dt          |¦  «        cxk    rdk    sn t          d¦  «        ‚d„ |D ¦   «         }t          |¦  «        dk    rt          d¦  «        ‚|\  }|€Kt          t          j        t          t          j        i                     |¦  «        }|st          d|z  ¦  «        ‚|d	k    rht          j	        t          j        t          j        t          j        t          j        t          j        i|         Šdt          ˆfd
„|D ¦   «         ¦  «        z  }|                      |||d¬¦  «         dS )a‘  Encodes sequence of elements of the same type as fixed typed vector.

    Args:
      elements: Sequence of elements, they must be of the same type. Allowed
        types are `Type.INT`, `Type.UINT`, `Type.FLOAT`. Allowed number of
        elements are 2, 3, or 4.
      element_type: Suggested element type. Setting it to None means determining
        correct value automatically based on the given elements.
      byte_width: Number of bytes to use per element. For `Type.INT` and
        `Type.UINT`: 1, 2, 4, or 8. For `Type.FLOAT`: 4 or 8. Setting it to 0
        means determining correct value automatically based on the given
        elements.
    r   r"   z&only 2, 3, or 4 elements are supportedc                 ó,   — h | ]}t          |¦  «        ’ŒS r,   )Útyper  s     r   ú	<setcomp>z7Builder.FixedTypedVectorFromElements.<locals>.<setcomp>¬  s   € Ð'Ð'Ð'˜�T�!‰WŒWÐ'Ð'Ð'r   r
   z%all elements must be of the same typeNr)  r   c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r\   r,   )r  r  Úwidths     €r   ú	<genexpr>z7Builder.FixedTypedVectorFromElements.<locals>.<genexpr>½  s+   øè è € Ð7Ð7¨˜E˜E !™HœHÐ7Ð7Ð7Ð7Ð7Ð7r   Tr2  )r7   r   rÂ   r|   r   r�   rn  r…   rû  r¦   r	   r   r   r   r³  r  )r¼   r  r¡   r%   Útypesr}   r@  s         @r   ÚFixedTypedVectorFromElementsz$Builder.FixedTypedVectorFromElements˜  s5  ø€ ð" •�H‘”Ð"Ð"Ò"Ð" Ò"Ð"Ð"Ð"ÝÐ?Ñ@Ô@Ð@à'Ð'˜hÐ'Ñ'Ô'€EÝ
ˆ5�z„z�Q‚€ÝÐ=Ñ>Ô>Ð>à�H€UàÐÝ�4œ8¥U­D¬JÐ7×;Ò;¸EÑBÔB€lØð @ÝÐ6¸Ñ>Ñ?Ô?Ð?à�Q‚€å
Œ)•X”ZÝ
Œ(•H”JÝ
Œ*•h”jðð 	ô	€eð
 �Ð7Ð7Ð7Ð7¨hÐ7Ñ7Ô7Ñ7Ô7Ñ7€jà×Ò˜L¨*°hÀdÐÑKÔKÐKÐKÐKr   c                 ó*   — t          | j        ¦  «        S )zStarts map construction.r"  rÉ   s    r   Ú	_StartMapzBuilder._StartMapÁ  r$  r   c                 óš  ‡ — ‰ j         |d…         }t          |¦  «        dz  dk    rt          d¦  «        ‚|ddd…         D ]1}|j        t          j        urt          dt          j        z  ¦  «        ‚Œ2t          |ddd…         |ddd…         ¦  «        }t          |ˆ fd„¬¦  «        }‰ j         |d…= |D ]}‰ j                              |¦  «         Œ‰                      ‰ j         |dd…         d	d
¬¦  «        }‰                      ‰ j         |dz   dd…         d
d
|¬¦  «        }‰ j         |d…= ‰ j          	                    |¦  «         |j
        S )z3Finishes map construction by encodung its elements.Nr   r   z&must be even number of keys and valueszall map keys must be of %s typer
   c                 óD   •— ‰                      | d         j        ¦  «        S rM   )rï  r  )Úpairr¼   s    €r   r_   z!Builder._EndMap.<locals>.<lambda>Ò  s   ø€ ¨4¯=ª=¸¸a¼¼Ñ+GÔ+G€ r   )rÄ   TFr)  )r  r  r  )rÝ  r7   rè  r   r§   r@  Úsortedrò  r  rý  r  )r¼   rN   ÚstackrÄ   ÚpairsrH  r  rB   s   `       r   Ú_EndMapzBuilder._EndMapÅ  s~  ø€ ð ŒK˜˜˜Ô€Eå
ˆ5�z„z�A�~˜ÒÐÝÐAÑBÔBÐBà�S�S�q�SŒzð Ið IˆØ	Œ�œÐ	!Ð	!ÝÐ<½t¼xÑGÑHÔHÐHð 
"õ ��c�c˜�c”
˜E ! $ Q $œKÑ(Ô(€EÝ�5ÐGÐGÐGÐGÐHÑHÔH€EàŒ�E�F�FÐØð ð ˆØ
„k×Ò˜ÑÔÐÐà×Ò˜dœk¨%¨(°¨(Ô3¸4ÀuÐÑMÔM€DØ×ÒØŒ�E˜A‘I�N �NÔ#¨5¸ÀDð  ñ ô €Fð 	Œ�E�F�FÐØ„K×Ò�vÑÔÐØŒ<Ðr   c              #   óÈ   K  — |r|                       |¦  «         	 |                      ¦   «         }| V — |                      |¦  «         d S # |                      |¦  «         w xY wr\   )r  rE  rL  r+  s      r   r-  zBuilder.Mapá  sj   è è € à
ð Ø
‡h‚hˆs�m„m€mðØ�nŠnÑÔ€eØ€j€j€jà
‡l‚l�5ÑÔÐÐÐø€d‡l‚l�5ÑÔÐÐøøøs   ›A
 Á
A!c                 óà   — |                       ¦   «         }|                     ¦   «         D ]/\  }}|                      |¦  «         |                      |¦  «         Œ0|                      |¦  «         d S r\   )rE  Úitemsr  r.  rL  )r¼   r  rN   r=  r>  s        r   ÚMapFromElementszBuilder.MapFromElementsì  sf   € Ø�NŠNÑÔ€EØ—’Ñ Ô ð ð ‰ˆˆ1Ø
‡h‚hˆq�k„k€kØ
‡h‚hˆq�k„k€k€kØ‡L‚L�ÑÔÐÐÐr   c                 óf  — t           j        | j        t           j        | j        t           j        | j        t           j        | j        t           j	        | j
        t           j        | j        t           j        | j        t           j        | j        t           j        | j        t           j        | j        i
|         S r\   )r   r†   r—  r�   rš  r¨   r  r¦   rœ  r©   r  r…   rž  rª   r   r§   r  rµ   rë   r�   rò   )r¼   r}   s     r   r8  zBuilder.Adderó  sv   € åŒ	�4”9ÝŒ�$”(ÝÔ˜4Ô+ÝŒ	�4”9ÝÔ˜DÔ-ÝŒ
�D”JÝÔ˜TÔ/ÝŒ�$”(ÝŒ	�4”9ÝŒ�T”[ðð ôð r   c                 óö  — |€|                       ¦   «          dS t          |t          ¦  «        r|                      |¦  «         dS t          |t          ¦  «        r|                      |¦  «         dS t          |t          ¦  «        r|                      |¦  «         dS t          |t          ¦  «        r|  	                    |¦  «         dS t          |t          t          f¦  «        r|                      |¦  «         dS t          |t          ¦  «        rt|                      ¦   «         5  |                     ¦   «         D ]/\  }}|                      |¦  «         |                      |¦  «         Œ0	 ddd¦  «         dS # 1 swxY w Y   dS t          |t$          j        ¦  «        r|                      |¦  «         dS t)          |¦  «        r|                      |¦  «         dS t-          dt/          |¦  «        z  ¦  «        ‚)z$Encodes value of any supported type.Nzunsupported python type: %s)r•  rÁ   r$  r—  r|   rš  rn  rž  rw  rò   r  r÷   rë   Údictr-  rO  r  r.  r5  r:  r’  r/  rÂ   r=  )r¼   r   r=  r>  s       r   r.  zBuilder.Add  s,  € ð €}Ø
‡i‚i�k„k€k€k€kÝ	�E�4Ñ	 Ô	 ð CØ
‡i‚i�ÑÔÐÐÐÝ	�E�3Ñ	Ô	ð CØ
‡h‚hˆu�o„o€o€o€oÝ	�E�5Ñ	!Ô	!ð CØ
‡j‚j�ÑÔÐÐÐÝ	�E�3Ñ	Ô	ð CØ
‡k‚k�%ÑÔÐÐÐÝ	�E�E¥9Ð-Ñ	.Ô	.ð CØ
‡i‚i�ÑÔÐÐÐÝ	�E�4Ñ	 Ô	 ð 
CØ�8Š8‰:Œ:ð ð Ø—K’K‘M”Mð 	ð 	‰DˆAˆqØ
�(Š(�1‰+Œ+ˆ+Ø
�(Š(�1‰+Œ+ˆ+ˆ+ð	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð õ 
�E�5œ;Ñ	'Ô	'ð CØ
×"Ò" 5Ñ)Ô)Ð)Ð)Ð)Ý	�UÑ	Ô	ð CØ
×Ò˜eÑ$Ô$Ð$Ð$Ð$åÐ3µd¸5±k´kÑAÑBÔBÐBs   Ä%AE8Å8E<Å?E<c                 ó   — | j         d         S )Nra   )rÝ  rÉ   s    r   Ú	LastValuezBuilder.LastValue  s   € àŒ;�rŒ?Ðr   c                 ó:   — | j                              |¦  «         d S r\   )rÝ  rý  rZ  s     r   Ú
ReuseValuezBuilder.ReuseValue   s   € à„K×Ò�uÑÔÐÐÐr   r\   r¤   rM   )5r'   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  rœ  r  rž  r   r#  r'  Ú
contextlibÚcontextmanagerr  r/  r  r:  rC  rE  rL  r-  rP  r8  r.  rU  rW  r,   r   r   r   r     sî  € € € € € ØGÐGð ØØ"œ+ð	ð ð ð ð"ð ð ð ðð ñ „8ðð ðð ñ „8ððð ð ðð ð ð*ð ð ðð ð ð
4ð 4ð 4ð;ð ;ð ;ð0ð 0ð 0ð
1ð 1ð 1ð	ð 	ð 	ðð ð ð08(ð 8(ð 8(ð 8(ðt5ð 5ð 5ð ðð ñ „>ðð 	ð	Fð 	Fñ 	„5ð	Fðð ð ð<%ð %ð %ð %ð 	ð*ð *ñ 	„5ð*ð 	ð4ð 4ð 4ñ 	„5ð4ð 	ð<ð <ð <ñ 	„5ð<ð 	ð5ð 5ð 5ñ 	„5ð5ð 	ð=ð =ð =ñ 	„5ð=ð 	ð6ð 6ð 6ñ 	„5ð6ð 	ð>ð >ð >ñ 	„5ð>ðð ð ðð ð ð Ôð7ð 7ð 7ñ Ôð7ð 	ðð ñ 	„5ðð Ôð6ð 6ð 6ñ Ôð6ð 	ðð ð ñ 	„5ðð: 	à45ð&Lð &Lð &Lñ 	„5ð&LðPð ð ðð ð ð8 Ôðð ð ñ Ôððð ð ðð ð ð ðCð Cñ „>ðCð4 ðð ñ „8ðð 	ðð ñ 	„5ðð ð r   r   c                 óÀ   — t          | ¦  «        dk     rt          d¦  «        ‚| d         }t                               t	          | d|z    ¦  «        || d         ¬¦  «        S )z/Returns root `Ref` object for the given buffer.r   zbuffer is too smallra   r   r7  r�   )r7   r   r  r  r·   )r9   r%   s     r   r   r   %  s`   € åˆ�X„X�‚\€\Ý
Ð*Ñ
+Ô
+Ð+Ø�2Œw€*Ý	�ŠÝ	ˆ#��Z‘Ð Ñ!Ô! :¸3¸r¼7ð 
ñ 
ô 
ð r   c                 óp   — t          ¦   «         }|                     | ¦  «         |                     ¦   «         S )z1Returns bytearray with the encoded python object.)r   r.  rí  )r‘  Úfbbs     r   r   r   /  s(   € å‰	Œ	€#Ø‡'‚'ˆ#�,„,€,Ø	�Š‰ŒÐr   c                 ó*   — t          | ¦  «        j        S )z.Returns python object decoded from the buffer.)r   r  )r9   s    r   r   r   6  s   € å	�‰ŒÔ	Ðr   )(r*   r5  rX  Úenumr   Ú__all__ÚIntEnumr	   r   r   r   r:   r>   r@   rC   rF   rK   rT   rZ   rc   r   r·   rÔ   rÝ   rë   rò   r  r  r  r-  r  r’  r  r¾  rÁ  rÃ  r   r   r   r   r,   r   r   ú<module>ra     s  ððð ð €€€Ø Ð Ð Ð Ø €€€Ø €€€à
:€ð6ð 6ð 6ð 6ð 6ˆtŒ|ñ 6ô 6ð 6ðr 	�˜ Ð$Ð$€Ø�˜ Ð$Ð$€Ø�ÐÐ€ð6ð 6ð 6ðAð Að Að
5ð 5ð 5ðHð Hð Hðð ð ð'ð 'ð 'ð
$ð $ð $ðð ð ð$ '9Ð&8ð ð ð ð ðv@ð v@ð v@ð v@ð v@ˆ4Œ<ñ v@ô v@ð v@ðr%Oð %Oð %Oð %Oð %Oñ %Oô %Oð %OðPð ð ð ð ñ ô ð ðð ð ð ð ˆFñ ô ð ð(
8ð 
8ð 
8ð 
8ð 
8ˆ5ñ 
8ô 
8ð 
8ð!:ð !:ð !:ð !:ð !:ˆUñ !:ô !:ð !:ðH7ð 7ð 7ð 7ð 7ˆ&ñ 7ô 7ð 7ð.ð ð ð ð ˆUñ ô ð ð8?ð ?ð ?ð ?ð ?�%ñ ?ô ?ð ?ðD&7ð &7ð &7ð &7ð &7ˆ&ñ &7ô &7ð &7ðRG;ð G;ð G;ð G;ð G;ñ G;ô G;ð G;ðT
ð ð ðMð Mð Mð Mð Mñ Mô Mð Mð`ð ð ð
ð 
ð 
ð,ð ,ð ,ð ,ð ,ñ ,ô ,ð ,ð._ð _ð _ð _ð _ñ _ô _ð _ðDð ð ðð ð ðð ð ð ð r   