§
    9ˆtj‚  ã                  óþ   — U d dl mZ d dlZd dlmZ d dlZd dlmZmZ d dl	m
Z
mZmZmZmZ dZej                             d¦  «        Zded<   dd„Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Zdd„ZdS )é    )ÚannotationsN)ÚNoReturn)ÚHeadersÚMutableHeaders)ÚASGIAppÚMessageÚReceiveÚScopeÚSend)ztext/event-streamÚ_gzip_capacity_limiterz,anyio.lowlevel.RunVar[anyio.CapacityLimiter]Úreturnúanyio.CapacityLimiterc                 ó¶   — 	 t                                ¦   «         S # t          $ r3 t          j        d¦  «        } t                                | ¦  «         | cY S w xY w)zDReturn the capacity limiter used for worker-thread GZip compression.é(   )r   ÚgetÚLookupErrorÚanyioÚCapacityLimiterÚset©Úlimiters    úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/starlette/middleware/gzip.pyÚ_get_gzip_capacity_limiterr      sc   € ðÝ%×)Ò)Ñ+Ô+Ð+øÝð ð ð õ Ô'¨Ñ+Ô+ˆÝ×"Ò" 7Ñ+Ô+Ð+Øˆˆˆðøøøs   ‚ ›:AÁAc                  ó&   — e Zd Z	 	 	 ddd„Zdd„ZdS )ÚGZipMiddlewareéô  é	   é   Úappr   Úminimum_sizeÚintÚcompresslevelÚthread_minimum_sizer   ÚNonec                ó>   — || _         || _        || _        || _        d S ©N)r   r    r"   r#   )Úselfr   r    r"   r#   s        r   Ú__init__zGZipMiddleware.__init__   s)   € ð ˆŒØ(ˆÔØ*ˆÔØ#6ˆÔ Ð Ð ó    Úscoper
   Úreceiver	   Úsendr   c              ƒ  óZ  K  — |d         dk    r|                       |||¦  «        ƒ d {V —† d S t          |¬¦  «        }d|                     dd¦  «        v r(t          | j         | j        | j        | j        ¬¦  «        }nt          | j         | j        ¦  «        } ||||¦  «        ƒ d {V —† d S )NÚtypeÚhttp)r*   ÚgzipúAccept-EncodingÚ )r"   r#   )r   r   r   ÚGZipResponderr    r"   r#   ÚIdentityResponder)r'   r*   r+   r,   ÚheadersÚ	responders         r   Ú__call__zGZipMiddleware.__call__)   sÛ   è è € Ø�Œ=˜FÒ"Ð"Ø—(’(˜5 '¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØˆFå Ð&Ñ&Ô&ˆà�W—[’[Ð!2°BÑ7Ô7Ð7Ð7Ý%Ø”ØÔ!Ø"Ô0Ø$(Ô$<ð	ñ ô ˆIˆIõ *¨$¬(°DÔ4EÑFÔFˆIàˆi˜˜w¨Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-r)   N)r   r   r   ©
r   r   r    r!   r"   r!   r#   r!   r   r$   ©r*   r
   r+   r	   r,   r   r   r$   )Ú__name__Ú
__module__Ú__qualname__r(   r7   © r)   r   r   r      sL   € € € € € ð  ØØ#-ð
7ð 
7ð 
7ð 
7ð 
7ð.ð .ð .ð .ð .ð .r)   r   c                  ó:   — e Zd ZU ded<   dd	„Zdd„Zdd„Zdd„ZdS )r4   ÚstrÚcontent_encodingr   r   r    r!   r   r$   c                ór   — || _         || _        t          | _        i | _        d| _        d| _        d| _        d S )NF)r   r    Úunattached_sendr,   Úinitial_messageÚstartedÚcontent_encoding_setÚcontent_type_is_excluded)r'   r   r    s      r   r(   zIdentityResponder.__init__@   s=   € ØˆŒØ(ˆÔÝ)ˆŒ	Ø(*ˆÔØˆŒØ$)ˆÔ!Ø(-ˆÔ%Ð%Ð%r)   r*   r
   r+   r	   r,   r   c              ƒ  ó\   K  — || _         |                      ||| j        ¦  «        ƒ d {V —† d S r&   )r,   r   Úsend_with_compression)r'   r*   r+   r,   s       r   r7   zIdentityResponder.__call__I   s>   è è € ØˆŒ	Ø�hŠh�u˜g tÔ'AÑBÔBÐBÐBÐBÐBÐBÐBÐBÐBÐBr)   Úmessager   c              ƒ  ó  K  — |d         }|dk    r`|| _         t          | j         d         ¬¦  «        }d|v | _        |                     dd¦  «                             t
          ¦  «        | _        d S |dk    rY| j        s| j        rK| j        s'd	| _        |                      | j         ¦  «        ƒ d {V —† |                      |¦  «        ƒ d {V —† d S |dk    �r | j        �sød	| _        |                     d
d¦  «        }|                     dd¦  «        }t          |¦  «        | j
        k     r?|s=|                      | j         ¦  «        ƒ d {V —† |                      |¦  «        ƒ d {V —† d S |sÄ|                      |d¬¦  «        ƒ d {V —†}t          | j         d         ¬¦  «        }|                     d¦  «         ||d
         k    r.| j        |d<   t          t          |¦  «        ¦  «        |d<   ||d
<   |                      | j         ¦  «        ƒ d {V —† |                      |¦  «        ƒ d {V —† d S |                      |d	¬¦  «        ƒ d {V —†}t          | j         d         ¬¦  «        }|                     d¦  «         ||d
         k    r| j        |d<   |d= ||d
<   |                      | j         ¦  «        ƒ d {V —† |                      |¦  «        ƒ d {V —† d S |dk    ri|                     d
d¦  «        }|                     dd¦  «        }|                      ||¬¦  «        ƒ d {V —†|d
<   |                      |¦  «        ƒ d {V —† d S |dk    r=|                      | j         ¦  «        ƒ d {V —† |                      |¦  «        ƒ d {V —† d S d S )Nr.   zhttp.response.startr5   )Úrawzcontent-encodingzcontent-typer2   zhttp.response.bodyTÚbodyr)   Ú	more_bodyF)rM   r1   zContent-EncodingzContent-Lengthzhttp.response.pathsend)rC   r   rE   r   Ú
startswithÚDEFAULT_EXCLUDED_CONTENT_TYPESrF   rD   r,   Úlenr    Úapply_compressionr   Úadd_vary_headerr@   r?   )r'   rI   Úmessage_typer5   rL   rM   s         r   rH   z'IdentityResponder.send_with_compressionM   sS  è è € Ø˜v”ˆØÐ0Ò0Ð0ð $+ˆDÔ Ý $Ô"6°yÔ"AÐBÑBÔBˆGØ(:¸gÐ(EˆDÔ%Ø,3¯KªK¸ÈÑ,KÔ,K×,VÒ,VÕWuÑ,vÔ,vˆDÔ)Ð)Ð)ØÐ1Ò1Ð1°tÔ7PÐ1ÐTXÔTqÐ1Ø”<ð 6Ø#�”Ø—i’i Ô 4Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø—)’)˜GÑ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ØÐ1Ò1Ñ1¸$¼,Ñ1ØˆDŒLØ—;’;˜v sÑ+Ô+ˆDØŸš K°Ñ7Ô7ˆIÝ�4‰yŒy˜4Ô,Ò,Ð,°YÐ,à—i’i Ô 4Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø—i’i Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Øð )à!×3Ò3°DÀEÐ3ÑJÔJÐJÐJÐJÐJÐJÐJ�å(¨TÔ-AÀ)Ô-LÐMÑMÔM�Ø×'Ò'Ð(9Ñ:Ô:Ð:Ø˜7 6œ?Ò*Ð*Ø26Ô2G�GÐ.Ñ/Ý03µC¸±I´I±´�GÐ,Ñ-Ø&*�G˜F‘Oà—i’i Ô 4Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø—i’i Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ð "×3Ò3°DÀDÐ3ÑIÔIÐIÐIÐIÐIÐIÐI�å(¨TÔ-AÀ)Ô-LÐMÑMÔM�Ø×'Ò'Ð(9Ñ:Ô:Ð:Ø˜7 6œ?Ò*Ð*Ø26Ô2G�GÐ.Ñ/ØÐ 0Ð1Ø&*�G˜F‘Oà—i’i Ô 4Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø—i’i Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ØÐ1Ò1Ð1à—;’;˜v sÑ+Ô+ˆDØŸš K°Ñ7Ô7ˆIà$(×$:Ò$:¸4È9Ð$:Ñ$UÔ$UÐUÐUÐUÐUÐUÐUˆG�F‰Oà—)’)˜GÑ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ØÐ5Ò5Ð5à—)’)˜DÔ0Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ø—)’)˜GÑ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ð 6Ð5r)   rL   ÚbytesrM   Úboolc             ƒ  ó
   K  — |S )zÊApply compression on the response body.

        If more_body is False, the compression stream is finalized. Compression
        resources are only allocated once a body is actually compressed.
        r=   ©r'   rL   rM   s      r   rQ   z#IdentityResponder.apply_compressionŠ   s   è è € ð ˆr)   N)r   r   r    r!   r   r$   r9   )rI   r   r   r$   ©rL   rT   rM   rU   r   rT   )r:   r;   r<   Ú__annotations__r(   r7   rH   rQ   r=   r)   r   r4   r4   =   sw   € € € € € € ØÐÐÑð.ð .ð .ð .ðCð Cð Cð Cð;%ð ;%ð ;%ð ;%ðzð ð ð ð ð r)   r4   c                  óV   ‡ — e Zd ZdZ	 dddœdˆ fd„Zedd„¦   «         Zdd„Zdd„Zˆ xZ	S )r3   r0   r   r   )r#   r   r   r    r!   r"   r#   r   r$   c               óv   •— t          ¦   «                              ||¦  «         || _        || _        d | _        d S r&   )Úsuperr(   r"   r#   Ú_compressor)r'   r   r    r"   r#   Ú	__class__s        €r   r(   zGZipResponder.__init__–   s=   ø€ õ 	‰Œ×Ò˜˜lÑ+Ô+Ð+à*ˆÔØ#6ˆÔ Ø26ˆÔÐÐr)   úzlib._Compressc                óŒ   — | j         €7t          j        | j        t          j        dt          j        z   ¦  «        | _         | j         S )Né   )r]   ÚzlibÚcompressobjr"   ÚDEFLATEDÚ	MAX_WBITS)r'   s    r   Ú
compressorzGZipResponder.compressor¤   s:   € àÔÐ#Ý#Ô/°Ô0BÅDÄMÐSUÕX\ÔXfÑSfÑgÔgˆDÔØÔÐr)   rL   rT   rM   rU   c             ƒ  óÚ   K  — t          |¦  «        | j        k    r<t          ¦   «         }t          j                             | j        |||¬¦  «        ƒ d {V —†S |                      ||¦  «        S )Nr   )rP   r#   r   r   Ú	to_threadÚrun_syncÚ_compress_body)r'   rL   rM   r   s       r   rQ   zGZipResponder.apply_compressionª   sp   è è € Ýˆt‰9Œ9˜Ô0Ò0Ð0å0Ñ2Ô2ˆGÝœ×1Ò1°$Ô2EÀtÈYÐ`gÐ1ÑhÔhÐhÐhÐhÐhÐhÐhÐhØ×"Ò" 4¨Ñ3Ô3Ð3r)   c                ó¢   — |r| j                              |¦  «        S | j                              |¦  «        | j                              ¦   «         z   S r&   )rf   ÚcompressÚflushrW   s      r   rj   zGZipResponder._compress_body±   sI   € Øð 	2Ø”?×+Ò+¨DÑ1Ô1Ð1ØŒ×'Ò'¨Ñ-Ô-°´×0EÒ0EÑ0GÔ0GÑGÐGr)   )r   r8   )r   r_   rX   )
r:   r;   r<   r@   r(   Úpropertyrf   rQ   rj   Ú__classcell__)r^   s   @r   r3   r3   “   s¬   ø€ € € € € ØÐð ð	7ð $.ð7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð ð ð  ð  ñ „Xð ð
4ð 4ð 4ð 4ðHð Hð Hð Hð Hð Hð Hð Hr)   r3   rI   r   r   c              ƒ  ó$   K  — t          d¦  «        ‚)Nzsend awaitable not set)ÚRuntimeError)rI   s    r   rB   rB   ·   s   è è € Ý
Ð/Ñ
0Ô
0Ð0r)   )r   r   )rI   r   r   r   )Ú
__future__r   rb   Útypingr   r   Ústarlette.datastructuresr   r   Ústarlette.typesr   r   r	   r
   r   rO   ÚlowlevelÚRunVarr   rY   r   r   r4   r3   rB   r=   r)   r   ú<module>rx      si  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð à €€€à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà!7Ð àGLÄ~×G\ÒG\Ð]uÑGvÔGvÐ Ð vÐ vÐ vÑ vð	ð 	ð 	ð 	ð.ð .ð .ð .ð .ñ .ô .ð .ðBSð Sð Sð Sð Sñ Sô Sð Sðl!Hð !Hð !Hð !Hð !HÐ%ñ !Hô !Hð !HðH1ð 1ð 1ð 1ð 1ð 1r)   