§
    ;xÅjI  ã                   óZ  — U d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZmZ ej        dk    rd dlmZ nd dlmZ eeedd	f         Z	 	 d dlZn# e$ r d dlZY nw xY wd
Zn# e$ r dZY nw xY w	 ej        dk    rd dlmZ nd dlmZ d
Zn# e$ r dZY nw xY wdZd ZdZ dZ!dZ"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d¬¦  «        Z) G d„ d¦  «        Z* e*e¦  «        Z+e*e,d <   d!e(d"dfd#„Z-	 	 d8d$e.dz  d%e/d"e0fd&„Z1 G d'„ d(e¦  «        Z2 ed)e2¬*¦  «        Z3 G d+„ d,e¦  «        Z4 G d-„ d.e4ee3         ¦  «        Z5 G d/„ d0¦  «        Z6 G d1„ d2e5e'         ¦  «        Z7 G d3„ d4e4¦  «        Z8 G d5„ d6e5d7         ¦  «        Z9dS )9é    N)ÚABCÚabstractmethod)ÚExecutor)ÚAnyÚFinalÚGenericÚProtocolÚ	TypedDictÚTypeVarÚcast)é   é   )ÚBuffer)ÚUnionzmemoryview[int]zmemoryview[bytes]TF)r   é   ©ÚZstdDecompressori   éÿÿÿÿé@   i   i   c                   ó   — e Zd ZdZdS )ÚTooManyMembersErrorz:A stream concatenated more members than the caller allows.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úJC:\Projects\Historical\venv\Lib\site-packages\aiohttp/compression_utils.pyr   r   6   s   € € € € € ØDÐDÐDÐDr   r   c                   ó0   — e Zd Zdedefd„Zddedefd„ZdS )	ÚZLibCompressObjProtocolÚdataÚreturnc                 ó   — d S ©Nr   ©Úselfr!   s     r   Úcompressz ZLibCompressObjProtocol.compress;   ó   € € € r   .Úmodec                ó   — d S r$   r   ©r&   r)   s     r   ÚflushzZLibCompressObjProtocol.flush<   r(   r   N©.)r   r   r   r   Úbytesr'   Úintr,   r   r   r   r    r    :   s?   € € € € € Ø2˜VÐ2¨Ð2Ð2Ð2Ð2Ø5Ð5˜#Ð5¨5Ð5Ð5Ð5Ð5Ð5Ð5r   r    c                   óŠ   — e Zd Zddededefd„Zddedefd„Zede	fd„¦   «         Z
edefd	„¦   «         Zedefd
„¦   «         ZdS )ÚZLibDecompressObjProtocol.r!   Ú
max_lengthr"   c                 ó   — d S r$   r   ©r&   r!   r2   s      r   Ú
decompressz$ZLibDecompressObjProtocol.decompress@   r(   r   Úlengthc                ó   — d S r$   r   ©r&   r6   s     r   r,   zZLibDecompressObjProtocol.flushA   r(   r   c                 ó   — d S r$   r   ©r&   s    r   ÚeofzZLibDecompressObjProtocol.eofC   ó   € Ø˜3r   c                 ó   — d S r$   r   r:   s    r   Úunconsumed_tailz)ZLibDecompressObjProtocol.unconsumed_tailF   s   € Ø(+¨r   c                 ó   — d S r$   r   r:   s    r   Úunused_dataz%ZLibDecompressObjProtocol.unused_dataI   ó   € Ø$' Cr   Nr-   )r   r   r   r   r/   r.   r5   r,   ÚpropertyÚboolr;   r>   r@   r   r   r   r1   r1   ?   s˜   € € € € € ØKÐK˜vÐK°3ÐKÀÐKÐKÐKÐKØ7Ð7˜CÐ7¨UÐ7Ð7Ð7Ð7àØ�TÐÐÐñ „XØàØ+ Ð+Ð+Ð+ñ „XØ+àØ'˜UÐ'Ð'Ð'ñ „XØ'Ð'Ð'r   r1   c                   óÊ   — e Zd ZU eed<   eed<   eed<   eed<   eed<   	 	 	 	 	 	 ddeded	ed
edededz  defd„Z	 dd	ededefd„Z		 dded	edede
fd„Z	 dd	ededede
fd„ZdS )ÚZLibBackendProtocolÚ	MAX_WBITSÚZ_FULL_FLUSHÚZ_SYNC_FLUSHÚZ_BEST_SPEEDÚZ_FINISH.ÚlevelÚmethodÚwbitsÚmemLevelÚstrategyÚzdictNr"   c                 ó   — d S r$   r   )r&   rK   rL   rM   rN   rO   rP   s          r   ÚcompressobjzZLibBackendProtocol.compressobjT   s	   € ð #& #r   c                 ó   — d S r$   r   )r&   rM   rP   s      r   Údecompressobjz!ZLibBackendProtocol.decompressobj]   s   € à$' Cr   r!   c                ó   — d S r$   r   )r&   r!   rK   rM   s       r   r'   zZLibBackendProtocol.compressa   ó   € à�r   Úbufsizec                ó   — d S r$   r   )r&   r!   rM   rW   s       r   r5   zZLibBackendProtocol.decompressd   rV   r   )......)..)r   r   r   r/   Ú__annotations__r   r    rR   r1   rT   r.   r'   r5   r   r   r   rE   rE   M   sv  € € € € € € Ø€N€N�NØÐÐÑØÐÐÑØÐÐÑØ€M€M�Mð ØØØØØ"ð&ð &àð&ð ð&ð ð	&ð
 ð&ð ð&ð ˜‰}ð&ð 
!ð&ð &ð &ð &ð 14ð(ð (Øð(Ø'-ð(à	"ð(ð (ð (ð (ð
 ?Bðð Ø&)ðØ8;ðØðà	ðð ð ð ð ADðð Ø&)ðØ:=ðØðà	ðð ð ð ð ð r   rE   c                   ó.   — e Zd ZU eed<   eed<   eed<   dS )ÚCompressObjArgsrM   rO   rK   N)r   r   r   r/   rY   r   r   r   r[   r[   i   s+   € € € € € € Ø€J€J�JØ€M€M�MØ€J€J�J€J€Jr   r[   )Útotalc                   ó*  — e Zd Zdefd„Zedefd„¦   «         Zedefd„¦   «         Z	edefd„¦   «         Z
edefd„¦   «         Zedefd„¦   «         Zedefd	„¦   «         Zd
ededefd„Zd
ededefd„Zded
ededefd„Zded
ededefd„Zdedefd„ZdS )ÚZLibBackendWrapperÚ_zlib_backendc                 ó   — || _         d S r$   )r_   )r&   r_   s     r   Ú__init__zZLibBackendWrapper.__init__p   s   € Ø2?ˆÔÐÐr   r"   c                 ó.   — t          | j        dd¦  «        S )Nr   Ú	undefined©Úgetattrr_   r:   s    r   ÚnamezZLibBackendWrapper.names   s   € å�tÔ)¨:°{ÑCÔCÐCr   c                 ó   — | j         j        S r$   )r_   rF   r:   s    r   rF   zZLibBackendWrapper.MAX_WBITSw   s   € àÔ!Ô+Ð+r   c                 ó   — | j         j        S r$   )r_   rG   r:   s    r   rG   zZLibBackendWrapper.Z_FULL_FLUSH{   ó   € àÔ!Ô.Ð.r   c                 ó   — | j         j        S r$   )r_   rH   r:   s    r   rH   zZLibBackendWrapper.Z_SYNC_FLUSH   ri   r   c                 ó   — | j         j        S r$   )r_   rI   r:   s    r   rI   zZLibBackendWrapper.Z_BEST_SPEEDƒ   ri   r   c                 ó   — | j         j        S r$   )r_   rJ   r:   s    r   rJ   zZLibBackendWrapper.Z_FINISH‡   s   € àÔ!Ô*Ð*r   ÚargsÚkwargsc                 ó&   —  | j         j        |i |¤ŽS r$   )r_   rR   ©r&   rm   rn   s      r   rR   zZLibBackendWrapper.compressobj‹   s   € Ø-ˆtÔ!Ô-¨tÐ>°vÐ>Ð>Ð>r   c                 ó&   —  | j         j        |i |¤ŽS r$   )r_   rT   rp   s      r   rT   z ZLibBackendWrapper.decompressobjŽ   s   € Ø/ˆtÔ!Ô/°Ð@¸Ð@Ð@Ð@r   r!   c                 ó.   —  | j         j        |g|¢R i |¤ŽS r$   )r_   r'   ©r&   r!   rm   rn   s       r   r'   zZLibBackendWrapper.compress‘   s(   € Ø*ˆtÔ!Ô*¨4ÐA°$ÐAÐAÐA¸&ÐAÐAÐAr   c                 ó.   —  | j         j        |g|¢R i |¤ŽS r$   )r_   r5   rs   s       r   r5   zZLibBackendWrapper.decompress”   s(   € Ø,ˆtÔ!Ô,¨TÐC°DÐCÐCÐC¸FÐCÐCÐCr   Úattrnamec                 ó,   — t          | j        |¦  «        S r$   rd   )r&   ru   s     r   Ú__getattr__zZLibBackendWrapper.__getattr__˜   s   € Ý�tÔ)¨8Ñ4Ô4Ð4r   N)r   r   r   rE   ra   rB   Ústrrf   r/   rF   rG   rH   rI   rJ   r   r    rR   r1   rT   r   r.   r'   r5   rw   r   r   r   r^   r^   o   s  € € € € € ð@Ð&9ð @ð @ð @ð @ð ðD�cð Dð Dð Dñ „XðDð ð,˜3ð ,ð ,ð ,ñ „Xð,ð ð/˜cð /ð /ð /ñ „Xð/ð ð/˜cð /ð /ð /ñ „Xð/ð ð/˜cð /ð /ð /ñ „Xð/ð ð+˜#ð +ð +ð +ñ „Xð+ð? ð ?°ð ?Ð8Oð ?ð ?ð ?ð ?ðA 3ð A°#ð AÐ:Sð Að Að Að AðB˜Vð B¨Cð B¸3ð BÀ5ð Bð Bð Bð BðD˜vð D¨cð D¸Sð DÀUð Dð Dð Dð Dð5 Cð 5¨Cð 5ð 5ð 5ð 5ð 5ð 5r   r^   ÚZLibBackendÚnew_zlib_backendr"   c                 ó   — | t           _        d S r$   )ry   r_   )rz   s    r   Úset_zlib_backendr|   Ÿ   s   € Ø 0…KÔÐÐr   ÚencodingÚsuppress_deflate_headerc                 ób   — | dk    rdt           j        z   S |rt           j         nt           j        S )NÚgzipé   )ry   rF   )r}   r~   s     r   Úencoding_to_moder‚   £   s6   € ð �6ÒÐØ•KÔ)Ñ)Ð)à%<ÐW�KÔ!Ð!Ð!Å+ÔBWÐWr   c                   ó\   — e Zd Zd	dededefd„Zedefd„¦   «         Z	edefd„¦   «         Z
dS )
ÚMemberDecompressObjProtocol.r!   r2   r"   c                 ó   — d S r$   r   r4   s      r   r5   z&MemberDecompressObjProtocol.decompress®   r(   r   c                 ó   — d S r$   r   r:   s    r   r;   zMemberDecompressObjProtocol.eof°   r<   r   c                 ó   — d S r$   r   r:   s    r   r@   z'MemberDecompressObjProtocol.unused_data³   rA   r   Nr-   )r   r   r   r   r/   r.   r5   rB   rC   r;   r@   r   r   r   r„   r„   ­   sd   € € € € € ØKÐK˜vÐK°3ÐKÀÐKÐKÐKÐKàØ�TÐÐÐñ „XØàØ'˜UÐ'Ð'Ð'ñ „XØ'Ð'Ð'r   r„   Ú_DecompressObjT)Úboundc                   óœ   — e Zd Zdefdedz  dedz  fd„Zeefde	dede
fd„¦   «         Zefde	dede
fd	„Zeedefd
„¦   «         ¦   «         ZdS )ÚDecompressionBaseHandlerNÚexecutorÚmax_sync_chunk_sizec                 ó"   — || _         || _        dS )z&Base class for decompression handlers.N)Ú	_executorÚ_max_sync_chunk_size)r&   rŒ   r�   s      r   ra   z!DecompressionBaseHandler.__init__»   s   € ð "ˆŒØ$7ˆÔ!Ð!Ð!r   r!   r2   r"   c                 ó   — dS ©úDecompress the given data.Nr   r4   s      r   Údecompress_syncz(DecompressionBaseHandler.decompress_syncÄ   r(   r   c              ƒ   óâ   K  — | j         �Qt          |¦  «        | j         k    r9t          j        ¦   «                              | j        | j        ||¦  «        ƒ d{V —†S |                      ||¦  «        S r’   )r�   ÚlenÚasyncioÚget_event_loopÚrun_in_executorr�   r”   r4   s      r   r5   z#DecompressionBaseHandler.decompressÊ   sŠ   è è € ð
 Ô%Ð1Ý�D‘	”	˜DÔ5Ò5Ð5å Ô/Ñ1Ô1×AÒAØ” Ô 4°d¸Jñô ð ð ð ð ð ð ð ð ×#Ò# D¨*Ñ5Ô5Ð5r   c                 ó   — dS )z7Return True if more output is available by passing b"".Nr   r:   s    r   Údata_availablez'DecompressionBaseHandler.data_available×   r(   r   )r   r   r   ÚMAX_SYNC_CHUNK_SIZEr   r/   ra   r   ÚZLIB_MAX_LENGTH_UNLIMITEDr   r.   r”   r5   rB   rC   r›   r   r   r   r‹   r‹   º   sþ   € € € € € ð %)Ø*=ð8ð 8à˜T‘/ð8ð ! 4™Zð8ð 8ð 8ð 8ð à.Gð)ð )Øð)Ø(+ð)à	ð)ð )ð )ñ „^ð)ð /Hð6ð 6Øð6Ø(+ð6à	ð6ð 6ð 6ð 6ð ØðF ð Fð Fð Fñ „^ñ „XðFð Fð Fr   r‹   c                   ól   — e Zd ZU dZeed<   eed<   dZedz  ed<   e	defd„¦   «         Z
ded	edefd
„ZdS )ÚConcatDecompressionHandleray  Handler for a codec whose streams may concatenate independent members.

    Concatenated gzip/deflate members and multi-frame zstd
    (https://datatracker.ietf.org/doc/html/rfc8878#section-3.1.1) decode the
    same way: a decompressor handles one member, then flags eof and leaves the
    rest of the input in unused_data, so every member after it needs a fresh
    one.
    Ú
_unlimitedÚ_decompressorNÚ_pending_unused_datar"   c                 ó   — dS )z*Return a decompressor for the next member.Nr   r:   s    r   Ú_new_decompressorz,ConcatDecompressionHandler._new_decompressorí   r(   r   Úfirstr2   c                 óX  — t          | j        j        ¦  «        }|g}t          |¦  «        }d}t          }|}d}	|t          |¦  «        k     �rJ| j        j        rH|	dz  }	|	t          k    rt          dt          › d�¦  «        ‚|                      ¦   «         | _        t          }|| j	        k    r(||z
  }|dk    rt          ||d…         ¦  «        | _        nÃt          ||z   t          |¦  «        ¦  «        }
| j                             |||
…         |¦  «        }|r'|                     |¦  «         |t          |¦  «        z  }| j        j        r|
t          | j        j        ¦  «        z
  }n|
}t          |dz  t          ¦  «        }|t          |¦  «        k     �°Jd                     |¦  «        S )z9Decode the members following the one ``first`` came from.r   é   z Compressed stream has more than z membersNé   r   )Ú
memoryviewr¡   r@   r–   ÚMEMBER_WINDOW_MINr;   ÚMAX_DECOMPRESS_MEMBERSr   r¤   r    r.   r¢   Úminr5   ÚappendÚMEMBER_WINDOW_MAXÚjoin)r&   r¥   r2   Ú	remainingÚpartsÚproducedÚposÚwindowÚbudgetÚmembersÚendÚchunks               r   Ú_decompress_membersz.ConcatDecompressionHandler._decompress_membersñ   s¼  € å˜tÔ1Ô=Ñ>Ô>ˆ	Ø�ˆÝ�u‘:”:ˆØˆÝ"ˆØˆØˆà•C˜	‘N”NÒ"Ñ"ØÔ!Ô%ð +Ø˜1‘�ØÕ3Ò3Ð3Ý-ð<Ý1ð<ð <ð <ñô ð ð &*×%;Ò%;Ñ%=Ô%=�Ô"Ý*�Ø˜Tœ_Ò,Ð,Ø# hÑ.�Ø˜Q’;�;Ý05°iÀÀÀ´oÑ0FÔ0F�DÔ-Øå�c˜F‘l¥C¨	¡N¤NÑ3Ô3ˆCØÔ&×1Ò1°)¸CÀ¸GÔ2DÀfÑMÔMˆEØð 'Ø—’˜UÑ#Ô#Ð#Ø�C ™JœJÑ&�àÔ!Ô%ð <Ø�C Ô 2Ô >Ñ?Ô?Ñ?��à�õ ˜V a™ZÕ):Ñ;Ô;�ðA •C˜	‘N”NÒ"Ñ"ðD �xŠx˜‰ŒÐr   )r   r   r   r   r/   rY   rˆ   r¢   r.   r   r¤   r¹   r   r   r   rŸ   rŸ   Ý   sš   € € € € € € ðð ð €O€O�OØ"Ð"Ð"Ñ"à)-Ð˜% $™,Ð-Ð-Ñ-àð9 ?ð 9ð 9ð 9ñ „^ð9ð,¨ð ,¸Cð ,ÀEð ,ð ,ð ,ð ,ð ,ð ,r   rŸ   c                   óž   — e Zd Zddddddefdedz  dededz  dedz  dedz  dedz  d	edz  fd
„Zde	de
fd„Zde	de
fd„Zddedz  de
fd„ZdS )ÚZLibCompressorNFr}   r~   rK   rM   rO   rŒ   r�   c                 óò   — || _         || _        |€t          ||¦  «        n|| _        t	          t
          j        ¦  «        | _        i }| j        |d<   |�||d<   |�||d<    | j        j        di |¤Ž| _        d S )NrM   rO   rK   r   )	r�   r�   r‚   Ú_moder^   ry   r_   rR   Ú_compressor)	r&   r}   r~   rK   rM   rO   rŒ   r�   rn   s	            r   ra   zZLibCompressor.__init__!  sŸ   € ð "ˆŒØ$7ˆÔ!ð ˆ}õ ˜XÐ'>Ñ?Ô?Ð?àð 	Œ
õ
 %7µ{Ô7PÑ$QÔ$QˆÔà"$ˆØœ*ˆˆw‰ØÐØ!)ˆF�:ÑØÐØ#ˆF�7‰OØ9˜4Ô-Ô9ÐCÐC¸FÐCÐCˆÔÐÐr   r!   r"   c                 ó6   — | j                              |¦  «        S r$   )r¾   r'   r%   s     r   Úcompress_synczZLibCompressor.compress_sync<  s   € ØÔ×(Ò(¨Ñ.Ô.Ð.r   c              ƒ   óð   K  — | j         duot          |¦  «        | j         k    }|r=t          j        ¦   «                              | j        | j        j        |¦  «        ƒ d{V —†S |                      |¦  «        S )a  Compress the data and returned the compressed bytes.

        Note that flush() must be called after the last call to compress()

        If the data size is large than the max_sync_chunk_size, the compression
        will be done in the executor. Otherwise, the compression will be done
        in the event loop.

        **WARNING: This method is NOT cancellation-safe when used with flush().**
        If this operation is cancelled, the compressor state may be corrupted.
        The connection MUST be closed after cancellation to avoid data corruption
        in subsequent compress operations.

        For cancellation-safe compression (e.g., WebSocket), the caller MUST wrap
        compress() + flush() + send operations in a shield and lock to ensure atomicity.
        N)	r�   r–   r—   Úget_running_loopr™   r�   r¾   r'   rÀ   )r&   r!   Úshould_use_executors      r   r'   zZLibCompressor.compress?  sœ   è è € ð& Ô%¨TÐ1ð 6Ý�D‘	”	˜DÔ5Ò5ð 	ð ð 	Ý Ô1Ñ3Ô3×CÒCØ” Ô 0Ô 9¸4ñô ð ð ð ð ð ð ð ð ×!Ò! $Ñ'Ô'Ð'r   r)   c                 óR   — | j                              |�|n| j        j        ¦  «        S )a	  Flush the compressor synchronously.

        **WARNING: This method is NOT cancellation-safe when called after compress().**
        The flush() operation accesses shared compressor state. If compress() was
        cancelled, calling flush() may result in corrupted data. The connection MUST
        be closed after compress() cancellation.

        For cancellation-safe compression (e.g., WebSocket), the caller MUST wrap
        compress() + flush() + send operations in a shield and lock to ensure atomicity.
        )r¾   r,   r_   rJ   r+   s     r   r,   zZLibCompressor.flush[  s1   € ð Ô×%Ò%ØÐ$ˆDˆD¨$Ô*<Ô*Eñ
ô 
ð 	
r   r$   )r   r   r   rœ   rx   rC   r/   r   ra   r   r.   rÀ   r'   r,   r   r   r   r»   r»      s  € € € € € ð  $Ø(-Ø Ø Ø#Ø$(Ø*=ðDð Dà˜‘*ðDð "&ðDð �T‰zð	Dð
 �T‰zðDð ˜‘*ðDð ˜T‘/ðDð ! 4™ZðDð Dð Dð Dð6/ &ð /¨Uð /ð /ð /ð /ð( 6ð (¨eð (ð (ð (ð (ð8
ð 
˜# ™*ð 
°ð 
ð 
ð 
ð 
ð 
ð 
r   r»   c            
       ó¾   ‡ — e Zd ZeZdddefdedz  dededz  de	dz  fˆ fd„Z
defd	„Zefd
ede	defd„Zdde	defd„Zedefd„¦   «         Zedefd„¦   «         Zˆ xZS )ÚZLibDecompressorNFr}   r~   rŒ   r�   c                 óô   •— t          ¦   «                              ||¬¦  «         t          ||¦  «        | _        t	          t
          j        ¦  «        | _        |                      ¦   «         | _        d| _	        d S )N©rŒ   r�   F)
Úsuperra   r‚   r½   r^   ry   r_   r¤   r¡   Ú_last_empty)r&   r}   r~   rŒ   r�   Ú	__class__s        €r   ra   zZLibDecompressor.__init__n  sj   ø€ õ 	‰Œ×Ò (Ð@SÐÑTÔTÐTÝ% hÐ0GÑHÔHˆŒ
Ý$6µ{Ô7PÑ$QÔ$QˆÔØ!×3Ò3Ñ5Ô5ˆÔØ ˆÔÐÐr   r"   c                 óB   — | j                              | j        ¬¦  «        S )N)rM   )r_   rT   r½   r:   s    r   r¤   z"ZLibDecompressor._new_decompressor{  s   € ØÔ!×/Ò/°d´jÐ/ÑAÔAÐAr   r!   r2   c                 ó†  — | j         �| j         t          |¦  «        z   }d | _         | j                             | j        j        |z   |¦  «        }| j        j        r"| j        j        r|                      ||¦  «        }|dk    | _        | j        j        r.| j	        | j
        j        k    r|                      ¦   «         | _        |S ©Nr   )r¢   r.   r¡   r5   r>   r;   r@   r¹   rÊ   r½   r_   rF   r¤   ©r&   r!   r2   Úresults       r   r”   z ZLibDecompressor.decompress_sync~  sÍ   € ð Ô$Ð0ØÔ,­u°T©{¬{Ñ:ˆDØ(,ˆDÔ%ØÔ#×.Ò.ØÔÔ.°Ñ5°zñ
ô 
ˆð
 ÔÔ!ð 	B dÔ&8Ô&Dð 	BØ×-Ò-¨f°jÑAÔAˆFð " Sš=ˆÔð ÔÔ!ð 	: d¤j°4Ô3EÔ3OÒ&OÐ&OØ!%×!7Ò!7Ñ!9Ô!9ˆDÔàˆr   r   r6   c                 ót   — |dk    r| j                              |¦  «        n| j                              ¦   «         S )Nr   )r¡   r,   r8   s     r   r,   zZLibDecompressor.flush˜  s=   € ð ˜Šzˆzð Ô×$Ò$ VÑ,Ô,Ð,àÔ#×)Ò)Ñ+Ô+ð	
r   c                 óV   — t          | j        j        ¦  «        p| j         p| j        d uS r$   )rC   r¡   r>   rÊ   r¢   r:   s    r   r›   zZLibDecompressor.data_availableŸ  s8   € õ �Ô#Ô3Ñ4Ô4ð 5ØÔ#Ð#ð5àÔ(°Ð4ð	
r   c                 ó   — | j         j        S r$   )r¡   r;   r:   s    r   r;   zZLibDecompressor.eof§  s   € àÔ!Ô%Ð%r   )r   )r   r   r   r�   r    rœ   rx   rC   r   r/   ra   r1   r¤   r   r.   r”   r,   rB   r›   r;   Ú__classcell__©rË   s   @r   rÆ   rÆ   k  sT  ø€ € € € € Ø*€Jð  $Ø(-Ø$(Ø*=ð!ð !à˜‘*ð!ð "&ð!ð ˜T‘/ð	!ð
 ! 4™Zð!ð !ð !ð !ð !ð !ðBÐ#<ð Bð Bð Bð Bð /Hðð ØðØ(+ðà	ðð ð ð ð4
ð 
˜Cð 
¨ð 
ð 
ð 
ð 
ð ð
 ð 
ð 
ð 
ñ „Xð
ð ð&�Tð &ð &ð &ñ „Xð&ð &ð &ð &ð &r   rÆ   c                   ó~   ‡ — e Zd Zdefdedz  dedz  ddfˆ fd„Zefdedede	fd„Z
de	fd	„Zedefd
„¦   «         Zˆ xZS )ÚBrotliDecompressorNrŒ   r�   r"   c                 ó¸   •— t           st          d¦  «        ‚t          j        ¦   «         | _        d| _        t          ¦   «                              ||¬¦  «         dS )z)Decompress data using the Brotli library.zIThe brotli decompression is not available. Please install `Brotli` moduleFrÈ   N)Ú
HAS_BROTLIÚRuntimeErrorÚbrotliÚDecompressorÚ_objrÊ   rÉ   ra   ©r&   rŒ   r�   rË   s      €r   ra   zBrotliDecompressor.__init__°  sb   ø€ õ ð 	Ýð1ñô ð õ Ô'Ñ)Ô)ˆŒ	Ø ˆÔÝ‰Œ×Ò (Ð@SÐÑTÔTÐTÐTÐTr   r!   r2   c                 óä  — t          | j        d¦  «        rh|t          k    r.t          t          | j                             |¦  «        ¦  «        }n–t          t          | j                             ||¦  «        ¦  «        }ng|t          k    r.t          t          | j                             |¦  «        ¦  «        }n.t          t          | j                             ||¦  «        ¦  «        }|dk    | _        |S )r“   r5   r   )ÚhasattrrÝ   r�   r   r.   r5   ÚprocessrÊ   rÏ   s       r   r”   z"BrotliDecompressor.decompress_sync¿  sÈ   € õ �4”9˜lÑ+Ô+ð 		JØÕ6Ò6Ð6Ý�e T¤Y×%9Ò%9¸$Ñ%?Ô%?Ñ@Ô@��å�e T¤Y×%9Ò%9¸$À
Ñ%KÔ%KÑLÔL��àÕ6Ò6Ð6Ý�e T¤Y×%6Ò%6°tÑ%<Ô%<Ñ=Ô=��å�e T¤Y×%6Ò%6°t¸ZÑ%HÔ%HÑIÔI�à! Sš=ˆÔØˆr   c                 óˆ   — t          | j        d¦  «        r,t          t          | j                             ¦   «         ¦  «        S dS )zFlush the decompressor.r,   r   )rà   rÝ   r   r.   r,   r:   s    r   r,   zBrotliDecompressor.flushÑ  s7   € å�4”9˜gÑ&Ô&ð 	2Ý�˜tœyŸšÑ0Ô0Ñ1Ô1Ð1Øˆsr   c                 óF   — | j                              ¦   «          o| j         S r$   )rÝ   Úis_finishedrÊ   r:   s    r   r›   z!BrotliDecompressor.data_available×  s$   € à”9×(Ò(Ñ*Ô*Ð*ÐC°4Ô3CÐ/CÐCr   )r   r   r   rœ   r   r/   ra   r�   r   r.   r”   r,   rB   rC   r›   rÔ   rÕ   s   @r   r×   r×   ¬  sú   ø€ € € € € ð %)Ø*=ðUð Uà˜T‘/ðUð ! 4™ZðUð 
ð	Uð Uð Uð Uð Uð Uð  /Hðð ØðØ(+ðà	ðð ð ð ð$�uð ð ð ð ð ðD ð Dð Dð Dñ „XðDð Dð Dð Dð Dr   r×   c                   óŠ   ‡ — e Zd ZeZdefdedz  dedz  ddfˆ fd„Zdd„Z	e
fded	edefd
„Zdefd„Zedefd„¦   «         Zˆ xZS )ÚZSTDDecompressorNrŒ   r�   r"   c                 ó¬   •— t           st          d¦  «        ‚t          ¦   «                              ||¬¦  «         |                      ¦   «         | _        d S )NzOThe zstd decompression is not available. Please install `backports.zstd` modulerÈ   )ÚHAS_ZSTDrÚ   rÉ   ra   r¤   r¡   rÞ   s      €r   ra   zZSTDDecompressor.__init__ß  s^   ø€ õ
 ð 	Ýð9ñô ð õ 	‰Œ×Ò (Ð@SÐÑTÔTÐTØ!×3Ò3Ñ5Ô5ˆÔÐÐr   r   c                 ó   — t          ¦   «         S r$   r   r:   s    r   r¤   z"ZSTDDecompressor._new_decompressorì  s   € ÝÑ!Ô!Ð!r   r!   r2   c                 ó:  — |t           k    rt          n|}| j        �| j        |z   }d | _        | j                             ||¦  «        }| j        j        r"| j        j        r|                      ||¦  «        }| j        j        r|                      ¦   «         | _        |S r$   )	r�   ÚZSTD_MAX_LENGTH_UNLIMITEDr¢   r¡   r5   r;   r@   r¹   r¤   )r&   r!   r2   Úzstd_max_lengthrÐ   s        r   r”   z ZSTDDecompressor.decompress_syncï  sµ   € ð Õ6Ò6Ð6õ &Ð%àð 	ð
 Ô$Ð0ØÔ,¨tÑ3ˆDØ(,ˆDÔ%ØÔ#×.Ò.¨t°_ÑEÔEˆð ÔÔ!ð 	G dÔ&8Ô&Dð 	GØ×-Ò-¨f°oÑFÔFˆFð
 ÔÔ!ð 	:Ø!%×!7Ò!7Ñ!9Ô!9ˆDÔàˆr   c                 ó   — dS rÎ   r   r:   s    r   r,   zZSTDDecompressor.flush
  s   € Øˆsr   c                 óH   — | j         j         o| j         j         p| j        d uS r$   )r¡   Úneeds_inputr;   r¢   r:   s    r   r›   zZSTDDecompressor.data_available  s3   € ð Ô"Ô.Ð.ÐM°tÔ7IÔ7MÐ3Mð3àÔ&¨dÐ2ð	3r   )r"   r   )r   r   r   rë   r    rœ   r   r/   ra   r¤   r�   r   r.   r”   r,   rB   rC   r›   rÔ   rÕ   s   @r   ræ   ræ   Ü  s   ø€ € € € € Ø*€Jð %)Ø*=ð6ð 6à˜T‘/ð6ð ! 4™Zð6ð 
ð	6ð 6ð 6ð 6ð 6ð 6ð"ð "ð "ð "ð /Hðð ØðØ(+ðà	ðð ð ð ð6�uð ð ð ð ð ð3 ð 3ð 3ð 3ñ „Xð3ð 3ð 3ð 3ð 3r   ræ   r   )NF):r—   ÚsysÚzlibÚabcr   r   Úconcurrent.futuresr   Útypingr   r   r   r	   r
   r   r   Úversion_infoÚcollections.abcr   r   r.   Ú	bytearrayÚ
brotlicffirÛ   ÚImportErrorrÙ   Úcompression.zstdr   Úbackports.zstdrè   rœ   r�   rë   rª   r®   r«   Ú
ValueErrorr   r    r1   rE   r[   r^   ry   rY   r|   rx   rC   r/   r‚   r„   rˆ   r‹   rŸ   r»   rÆ   r×   ræ   r   r   r   ú<module>rý      sß  ðØ €€€€Ø 
€
€
€
Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JàÔ�wÒÐØ&Ð&Ð&Ð&Ð&Ð&Ð&àÐÐÐÐÐà�5˜)Ð%6Ð8KÐKÔL€FððØ#Ð#Ð#Ð#Ð#øØð ð ð Øˆˆˆˆˆðøøøð €J€JøØð ð ð Ø€J€J€JðøøøðØ
Ô˜7Ò"Ð"Ø5Ð5Ð5Ð5Ð5Ð5Ð5à3Ð3Ð3Ð3Ð3Ð3à€H€HøØð ð ð Ø€H€H€Hðøøøð Ð ð Ð ØÐ ð Ð ØÐ ð Ð ðEð Eð Eð Eð E˜*ñ Eô Eð Eð6ð 6ð 6ð 6ð 6˜hñ 6ô 6ð 6ð
(ð (ð (ð (ð ( ñ (ô (ð (ðð ð ð ð ˜(ñ ô ð ð8ð ð ð ð �i uð ñ ô ð ð*5ð *5ð *5ð *5ð *5ñ *5ô *5ð *5ðZ #5Ð"4°TÑ":Ô":€ÐÐ :Ð :Ñ :ð1Ð':ð 1¸tð 1ð 1ð 1ð 1ð
  Ø$)ðXð XØ�D‰jðXà!ðXð 	ðXð Xð Xð Xð(ð (ð (ð (ð ( (ñ (ô (ð (ð �'Ð+Ð3NÐOÑOÔO€ð Fð  Fð  Fð  Fð  F˜sñ  Fô  Fð  FðF@ð @ð @ð @ð @Ð!9¸7À?Ô;Sñ @ô @ð @ðFH
ð H
ð H
ð H
ð H
ñ H
ô H
ð H
ðV>&ð >&ð >&ð >&ð >&Ð1Ð2KÔLñ >&ô >&ð >&ðB-Dð -Dð -Dð -Dð -DÐ1ñ -Dô -Dð -Dð`53ð 53ð 53ð 53ð 53Ð1Ð2DÔEñ 53ô 53ð 53ð 53ð 53sB   ÁA ÁA+ Á	A%Á"A+ Á$A%Á%A+ Á+A5Á4A5Á9B ÂBÂB