�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �%.resultr)rr r rr raise_conversion_error#sr!c@seZdZdZddZddZddZeZedd Z ed d Z e Z d d Z ddZ e ZeddZeddZddZeZddZeZeZddZddZddZdS)rz0Pack various data representations into a buffer.cCs |dSr resetrr r r r2szPacker.__init__cCs t|_dSr )r _Packer__bufrr r r r#5sz Packer.resetcCs |jSr )r$getvaluerr r r get_buffer8szPacker.get_buffercCs|jtd|dS)N>Lr$writerZpackr xr r r pack_uint=szPacker.pack_uintcCs|jtd|dS)N>lr(r*r r r pack_intAszPacker.pack_intcCs"|r|jdn |jddS)Nss)r$r)r*r r r pack_boolGszPacker.pack_boolc Csz||d?d@Wn8ttjfk rN}zt|jddW5d}~XYnXz||d@Wn8ttjfk r}zt|jddW5d}~XYnXdS)N lr)r, TypeErrorrrrr)r r+rr r r pack_uhyperKs"zPacker.pack_uhypercCs|jtd|dS)N>fr(r*r r r pack_floatWszPacker.pack_floatcCs|jtd|dS)N>dr(r*r r r pack_double[szPacker.pack_doublecCsP|dkrtd|d|}|ddd}||t|d}|j|dS)Nr fstring size must be nonnegative) ValueErrorlenr$r))r nsdatar r r pack_fstring_s  zPacker.pack_fstringcCs"t|}|||||dSr )r<r,r@)r r>r=r r r pack_stringis zPacker.pack_stringcCs*|D]}|d||q|ddS)Nr)r,)r list pack_itemitemr r r pack_listqs  zPacker.pack_listcCs*t||krtd|D] }||qdS)Nzwrong array size)r<r;)r r=rCrDrEr r r pack_farrayws zPacker.pack_farraycCs$t|}||||||dSr )r<r,rG)r rCrDr=r r r pack_array}s zPacker.pack_arrayN)rrrrrr#r&Zget_bufr!r,r.Z pack_enumr/r2Z pack_hyperr4r6r@Z pack_fopaquerAZ pack_opaqueZ pack_bytesrFrGrHr r r r r/s2     c@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ e Z ddZ ddZddZddZddZddZeZddZeZeZd d!Zd"d#Zd$d%Zd&S)'rz;Unpacks various data representations from the given buffer.cCs||dSr r"r r?r r r rszUnpacker.__init__cCs||_d|_dSr)_Unpacker__buf_Unpacker__posrIr r r r#szUnpacker.resetcCs|jSr rKrr r r get_positionszUnpacker.get_positioncCs ||_dSr rL)r Zpositionr r r set_positionszUnpacker.set_positioncCs|jSr )rJrr r r r&szUnpacker.get_buffercCs|jt|jkrtddS)Nzunextracted data remains)rKr<rJrrr r r donesz Unpacker.donecCsB|j}|d|_}|j||}t|dkr2ttd|dS)Nr9r'rrKrJr<EOFErrorrZunpackr ijr?r r r unpack_uints  zUnpacker.unpack_uintcCsB|j}|d|_}|j||}t|dkr2ttd|dS)Nr9r-rrPrRr r r unpack_ints  zUnpacker.unpack_intcCs t|Sr )boolrVrr r r unpack_boolszUnpacker.unpack_boolcCs |}|}t|d>|BS)Nr0)rUint)r hilor r r unpack_uhyperszUnpacker.unpack_uhypercCs|}|dkr|d}|S)Nll)r\r*r r r unpack_hyperszUnpacker.unpack_hypercCsB|j}|d|_}|j||}t|dkr2ttd|dS)Nr9r3rrPrRr r r unpack_floats  zUnpacker.unpack_floatcCsB|j}|d|_}|j||}t|dkr2ttd|dS)Nr5rrPrRr r r unpack_doubles  zUnpacker.unpack_doublecCsT|dkrtd|j}||ddd}|t|jkr|dkr,td|f|}||q|S)NrrBz0 or 1 expected, got %r)rUrappend)r unpack_itemrCr+rEr r r unpack_lists zUnpacker.unpack_listcCs"g}t|D]}||q |Sr )rangerc)r r=rdrCrSr r r unpack_farrays zUnpacker.unpack_farraycCs|}|||Sr )rUrg)r rdr=r r r unpack_arrayszUnpacker.unpack_arrayN)rrrrrr#rMrNr&rOrUrVZ unpack_enumrXr\r]r^r`raZunpack_fopaquerbZ unpack_opaqueZ unpack_bytesrergrhr r r r rs.  ) rrior functoolsr__all__ Exceptionrrr!rrr r r r s    U