�&ǐ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 �%||_d|_d|_d|_||_||_|jf|j|_||_dS)NFr)_fp_eof_pos_size_decomp_factory _decomp_args _decompressor_trailing_error)rfpZdecomp_factoryZtrailing_errorZ decomp_argsrrr__init__'szDecompressReader.__init__csd|_tjS)N)rsuperclose)r) __class__rrr#;szDecompressReader.closecCs |jjS)N)rr)rrrrr?szDecompressReader.seekablecCsPt|:}|jd$}|jt|}||dt|<WdQRXWdQRXt|S)NB) memoryviewcastreadlen)rbZviewZ byte_viewdatarrrreadintoBs$zDecompressReader.readintorc Cs|dkr|jS| s|jr dSd}x|jjr|jjp@|jjt}|sHP|jf|j |_y|jj ||}Wq|j k rPYqXn4|jj r|jjt}|st dnd}|jj ||}|r&Pq&W|sd|_|j|_dS|jt|7_|S)NrzACompressed file ended before the end-of-stream marker was reachedT)readallrreofZ unused_datarr( BUFFER_SIZErrZ decompressrZ needs_inputEOFErrorrrr))rsizer+Zrawblockrrrr(Hs>      zDecompressReader.readcCs,|jjdd|_d|_|jf|j|_dS)NrF)rseekrrrrr)rrrr_rewindrs zDecompressReader._rewindcCs|tjkr nV|tjkr"|j|}n@|tjkrT|jdkrHx|jtjrFq8W|j|}ntdj |||jkrv|j n ||j8}x0|dkr|jt tj|}|sP|t |8}qW|jS)NrzInvalid value for whence: {}) r SEEK_SETSEEK_CURrSEEK_ENDrr(DEFAULT_BUFFER_SIZErformatr4minr))roffsetwhencer+rrrr3xs&          zDecompressReader.seekcCs|jS)z!Return the current file position.)r)rrrrtellszDecompressReader.tellr)r)rrrrr r!r#rr,r(r4r r5r3r= __classcell__rr)r$rr!s   *r)rr r8r0BufferedIOBaser RawIOBaserrrrrs