Ë
    bQêjg$  ã                  óü   — U d dl mZ d dlZd dlmZ d dl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$                  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d„Zy)é    )ÚannotationsN)ÚNoReturn)ÚHeadersÚMutableHeaders)ÚASGIAppÚMessageÚReceiveÚScopeÚSend)úapplication/grpczapplication/gzipzapplication/x-gzipzapplication/zipzaudio/*z	font/woffz
font/woff2z
image/avifz	image/gifz
image/jpegz	image/pngz
image/webpztext/event-streamzvideo/*Ú_gzip_capacity_limiterz,anyio.lowlevel.RunVar[anyio.CapacityLimiter]c                 ó¢   — 	 t         j                  «       S # t        $ r/ t        j                  d«      } t         j                  | «       | cY S w xY w)zDReturn the capacity limiter used for worker-thread GZip compression.é(   )r   ÚgetÚLookupErrorÚanyioÚCapacityLimiterÚset©Úlimiters    ú^/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/starlette/middleware/gzip.pyÚ_get_gzip_capacity_limiterr   !   sJ   € ðÜ%×)Ñ)Ó+Ð+øÜò ô ×'Ñ'¨Ó+ˆÜ×"Ñ" 7Ô+ØŠðús   ‚ –5AÁAc                  ó@   — e Zd Z	 	 	 dedœ	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zy)ÚGZipMiddleware©Úexclude_content_typesc               ó\   — || _         || _        || _        || _        t	        |«      | _        y ©N)ÚappÚminimum_sizeÚcompresslevelÚthread_minimum_sizeÚ_normalize_content_typesr   )Úselfr   r    r!   r"   r   s         r   Ú__init__zGZipMiddleware.__init__.   s1   € ð ˆŒØ(ˆÔØ*ˆÔØ#6ˆÔ Ü%=Ð>SÓ%TˆÕ"ó    c              ƒ  óž  K  — |d   dk7  r| j                  |||«      ƒ d {  –—†  y t        |¬«      }d|j                  dd«      v rCt        | j                   | j                  | j
                  | j                  | j                  ¬«      }n,t        | j                   | j                  | j                  ¬«      } ||||«      ƒ d {  –—†  y 7 Œ§7 Œ­w)	NÚtypeÚhttp)ÚscopeÚgzipúAccept-EncodingÚ )r!   r"   r   r   )	r   r   r   ÚGZipResponderr    r!   r"   r   ÚIdentityResponder)r$   r*   ÚreceiveÚsendÚheadersÚ	responders         r   Ú__call__zGZipMiddleware.__call__=   s¼   è ø€ Ø�‰=˜FÒ"Ø—(‘(˜5 '¨4Ó0×0Ð0Øä Ô&ˆà�W—[‘[Ð!2°BÓ7Ñ7Ü%Ø—‘Ø×!Ñ!Ø"×0Ñ0Ø$(×$<Ñ$<Ø&*×&@Ñ&@ô‰Iô *¨$¯(©(°D×4EÑ4EÐ]a×]wÑ]wÔxˆIá˜˜w¨Ó-×-Ñ-ð! 1øð  	.ús"   ‚C¡C	¢B!CÃCÃCÃCN)iô  é	   é   ©r   r   r    Úintr!   r8   r"   r8   r   útuple[str, ...]ÚreturnÚNone©r*   r
   r0   r	   r1   r   r:   r;   )Ú__name__Ú
__module__Ú__qualname__ÚDEFAULT_EXCLUDED_CONTENT_TYPESr%   r4   © r&   r   r   r   -   sd   „ ð  ØØ#-ðUð 2PñUàðUð ðUð ð	Uð
 !ðUð  /ðUð 
óUô.r&   r   c                  óL   — e Zd ZU ded<   edœ	 	 	 	 	 	 	 d	d„Zd
d„Zdd„Zdd„Zy)r/   ÚstrÚcontent_encodingr   c               óœ   — || _         || _        t        |«      | _        t        | _        i | _        d| _        d| _        d| _	        d| _
        y )NF)r   r    r#   r   Úunattached_sendr1   Úinitial_messageÚstartedÚcontent_encoding_setÚcontent_type_is_excludedÚpartial_response)r$   r   r    r   s       r   r%   zIdentityResponder.__init__U   sO   € ð ˆŒØ(ˆÔÜ%=Ð>SÓ%TˆÔ"Ü)ˆŒ	Ø(*ˆÔØˆŒØ$)ˆÔ!Ø(-ˆÔ%Ø %ˆÕr&   c              ƒ  óh   K  — || _         | j                  ||| j                  «      ƒ d {  –—†  y 7 Œ­wr   )r1   r   Úsend_with_compression)r$   r*   r0   r1   s       r   r4   zIdentityResponder.__call__f   s)   è ø€ ØˆŒ	Ø�h‰h�u˜g t×'AÑ'AÓB×BÒBús   ‚(2ª0«2c              ƒ  óè  K  — |d   }|dk(  �r-|| _         |j                  dg «       t        | j                   d   ¬«      }d|v | _        |d   dk(  | _        |j                  dd	«      j                  d
«      d   j                  «       j                  «       }||j                  d«      d   dz   h}|j                  d«      r|j                  d«       |j                  | j                  «       | _        | j                  s| j                  s| j                  r$| j                  | j                   «      ƒ d {  –—†  y y |dv r>| j                  s| j                  s| j                  r| j                  |«      ƒ d {  –—†  y |dk(  �r| j                  �súd| _        |j                  dd«      }|j                  dd«      }t!        |«      | j"                  k  r?|s=| j                  | j                   «      ƒ d {  –—†  | j                  |«      ƒ d {  –—†  y |sÕ| j%                  |d¬«      ƒ d {  –—† }t'        | j                   d   ¬«      }|j)                  d«       ||d   k7  rK| j*                  |d<   | j                   j                  dd«      r|d= nt-        t!        |«      «      |d<   ||d<   | j                  | j                   «      ƒ d {  –—†  | j                  |«      ƒ d {  –—†  y | j%                  |d¬«      ƒ d {  –—† }t'        | j                   d   ¬«      }|j)                  d«       ||d   k7  r| j*                  |d<   |d= ||d<   | j                  | j                   «      ƒ d {  –—†  | j                  |«      ƒ d {  –—†  y |dk(  r\|j                  dd«      }|j                  dd«      }| j%                  ||¬«      ƒ d {  –—† |d<   | j                  |«      ƒ d {  –—†  y |dv r| j                  |«      ƒ d {  –—†  y |dk(  r=| j                  | j                   «      ƒ d {  –—†  | j                  |«      ƒ d {  –—†  y y 7 �Œ7 �ŒØ7 �Œ_7 �ŒI7 �Œ.7 �Œ‘7 �Œ{7 �Œb7 Œø7 Œá7 Œž7 Œ„7 Œh7 ŒA7 Œ*­w)Nr(   zhttp.response.startr2   )Úrawzcontent-encodingÚstatuséÎ   zcontent-typer-   ú;r   ú/z/*zapplication/grpc+r   )úhttp.response.bodyúhttp.response.pathsendrT   TÚbodyr&   Ú	more_bodyF)rW   r,   zContent-EncodingÚtrailerszContent-Length)zhttp.response.early_hintzhttp.response.trailersrU   )rG   Ú
setdefaultr   rI   rK   r   Ú	partitionÚstripÚlowerÚ
startswithÚaddÚ
isdisjointr   rJ   r1   rH   Úlenr    Úapply_compressionr   Úadd_vary_headerrD   rC   )r$   ÚmessageÚmessage_typer2   Ú
media_typeÚmedia_typesrV   rW   s           r   rM   z'IdentityResponder.send_with_compressionj   s"  è ø€ Ø˜v‘ˆØÐ0Ó0ð $+ˆDÔ Ø×Ñ˜y¨"Ô-Ü $×"6Ñ"6°yÑ"AÔBˆGØ(:¸gÐ(EˆDÔ%Ø$+¨HÑ$5¸Ñ$<ˆDÔ!Ø Ÿ™ ^°RÓ8×BÑBÀ3ÓGÈÑJ×PÑPÓR×XÑXÓZˆJØ% z×';Ñ';¸CÓ'@ÀÑ'CÀdÑ'JÐKˆKØ×$Ñ$Ð%8Ô9Ø—‘Ð 2Ô3Ø0;×0FÑ0FÀt×GaÑGaÓ0bÐ,bˆDÔ)Ø×(Ò(¨D×,AÒ,AÀT×EbÒEbØ—i‘i × 4Ñ 4Ó5×5Ñ5ð FcàÐMÑMØ×%Ò%¨×)>Ò)>À$×B_ÒB_à—)‘)˜GÓ$×$Ñ$ØÐ1Ó1¸$¿,»,ØˆDŒLØ—;‘;˜v sÓ+ˆDØŸ™ K°Ó7ˆIÜ�4‹y˜4×,Ñ,Ò,±Yà—i‘i × 4Ñ 4Ó5×5Ð5Ø—i‘i Ó(×(Ñ(Ùà!×3Ñ3°DÀEÐ3ÓJ×J�ä(¨T×-AÑ-AÀ)Ñ-LÔM�Ø×'Ñ'Ð(9Ô:Ø˜7 6™?Ò*Ø26×2GÑ2G�GÐ.Ñ/Ø×+Ñ+×/Ñ/°
¸EÔBØ#Ð$4Ñ5ä47¼¸D»	³N˜Ð 0Ñ1Ø&*�G˜F‘Oà—i‘i × 4Ñ 4Ó5×5Ð5Ø—i‘i Ó(×(Ñ(ð "×3Ñ3°DÀDÐ3ÓI×I�ä(¨T×-AÑ-AÀ)Ñ-LÔM�Ø×'Ñ'Ð(9Ô:Ø˜7 6™?Ò*Ø26×2GÑ2G�GÐ.Ñ/ØÐ 0Ð1Ø&*�G˜F‘Oà—i‘i × 4Ñ 4Ó5×5Ð5Ø—i‘i Ó(×(Ñ(ØÐ1Ò1à—;‘;˜v sÓ+ˆDØŸ™ K°Ó7ˆIà$(×$:Ñ$:¸4È9Ð$:Ó$U×UˆG�F‰Oà—)‘)˜GÓ$×$Ñ$ØÐSÑSØ—)‘)˜GÓ$×$Ñ$ØÐ5Ò5à—)‘)˜D×0Ñ0Ó1×1Ð1Ø—)‘)˜GÓ$×$Ñ$ð 6ði 6ùð %ùð 6ùØ(ùð Kùð 6ùØ(ùð Jùð 6øØ(øð Vøà$øà$øð 2øØ$ús  ‚D2Q2Ä4QÄ5AQ2Å7QÅ8A;Q2Ç3QÇ4Q2ÈQÈQ2È*QÈ+BQ2Ë
QËQ2Ë#QË$Q2Ë?Q!Ì A+Q2Í+Q$Í,Q2ÎQ&ÎAQ2Ï	Q(Ï
Q2Ï%Q*Ï&Q2ÐQ,Ð(Q2Ð,Q.Ð-Q2ÑQ0ÑQ2ÑQ2ÑQ2ÑQ2ÑQ2ÑQ2ÑQ2Ñ!Q2Ñ$Q2Ñ&Q2Ñ(Q2Ñ*Q2Ñ,Q2Ñ.Q2Ñ0Q2c             ƒ  ó   K  — |S ­w)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.
        rA   ©r$   rV   rW   s      r   ra   z#IdentityResponder.apply_compression³   s   è ø€ ð ˆùs   ‚N)r   r   r    r8   r   r9   r:   r;   r<   )rc   r   r:   r;   ©rV   ÚbytesrW   Úboolr:   rj   )	r=   r>   r?   Ú__annotations__r@   r%   r4   rM   ra   rA   r&   r   r/   r/   R   sK   … ØÓð 2Pñ&àð&ð ð&ð
  /ð&ð 
ó&ó"CóG%ôRr&   r/   c                  óh   ‡ — e Zd ZdZ	 ddedœ	 	 	 	 	 	 	 	 	 	 	 d	ˆ fd„Zed
d„«       Zdd„Zdd„Z	ˆ xZ
S )r.   r+   r6   )r"   r   c               óT   •— t         ‰| �  |||¬«       || _        || _        d | _        y )Nr   )Úsuperr%   r!   r"   Ú_compressor)r$   r   r    r!   r"   r   Ú	__class__s         €r   r%   zGZipResponder.__init__¿   s2   ø€ ô 	‰Ñ˜˜lÐBWÐÔXà*ˆÔØ#6ˆÔ Ø26ˆÕr&   c                ó¼   — | j                   €Et        j                  | j                  t        j                  dt        j
                  z   «      | _         | j                   S )Né   )rp   ÚzlibÚcompressobjr!   ÚDEFLATEDÚ	MAX_WBITS)r$   s    r   Ú
compressorzGZipResponder.compressorÎ   sH   € à×ÑÐ#Ü#×/Ñ/°×0BÑ0BÄDÇMÁMÐSUÔX\×XfÑXfÑSfÓgˆDÔØ×ÑÐr&   c             ƒ  óà   K  — t        |«      | j                  k\  r?t        «       }t        j                  j                  | j                  |||¬«      ƒ d {  –—† S | j                  ||«      S 7 Œ­w)Nr   )r`   r"   r   r   Ú	to_threadÚrun_syncÚ_compress_body)r$   rV   rW   r   s       r   ra   zGZipResponder.apply_compressionÔ   sa   è ø€ Üˆt‹9˜×0Ñ0Ò0ä0Ó2ˆGÜŸ™×1Ñ1°$×2EÑ2EÀtÈYÐ`gÐ1Óh×hÐhØ×"Ñ" 4¨Ó3Ð3ð iús   ‚AA.ÁA,ÁA.c                óü   — |rE| j                   j                  |«      | j                   j                  t        j                  «      z   S | j                   j                  |«      | j                   j                  «       z   S r   )rx   ÚcompressÚflushrt   ÚZ_SYNC_FLUSHrh   s      r   r|   zGZipResponder._compress_bodyÛ   s[   € ÙØ—?‘?×+Ñ+¨DÓ1°D·O±O×4IÑ4IÌ$×J[ÑJ[Ó4\Ñ\Ð\Ø�‰×'Ñ'¨Ó-°·±×0EÑ0EÓ0GÑGÐGr&   )r5   r7   )r:   zzlib._Compressri   )r=   r>   r?   rD   r@   r%   Úpropertyrx   ra   r|   Ú__classcell__)rq   s   @r   r.   r.   ¼   sy   ø„ ØÐð ð	7ð $.Ø1Oñ7àð7ð ð7ð ð	7ð !ð7ð  /ð7ð 
õ7ð ò ó ð ó
4÷Hr&   r.   c              ƒ  ó    K  — t        d«      ‚­w)Nzsend awaitable not set)ÚRuntimeError)rc   s    r   rF   rF   á   s   è ø€ Ü
Ð/Ó
0Ð0ùs   ‚c                ó&   — t        d„ | D «       «      S )Nc              3  ó|   K  — | ]4  }|j                  d «      d   j                  «       j                  «       –— Œ6 y­w)rR   r   N)rZ   r[   r\   )Ú.0Úcontent_types     r   ú	<genexpr>z+_normalize_content_types.<locals>.<genexpr>æ   s2   è ø€ ÒbÀL�×'Ñ'¨Ó,¨QÑ/×5Ñ5Ó7×=Ñ=×?Ñbùs   ‚:<)Útuple)Úcontent_typess    r   r#   r#   å   s   € ÜÑbÐTaÔbÓbÐbr&   )r:   zanyio.CapacityLimiter)rc   r   r:   r   )r‹   r9   r:   r9   )Ú
__future__r   rt   Útypingr   Úanyio.lowlevelr   Úanyio.to_threadÚstarlette.datastructuresr   r   Ústarlette.typesr   r   r	   r
   r   r@   ÚlowlevelÚRunVarr   rl   r   r   r/   r.   rF   r#   rA   r&   r   ú<module>r”      s}   ðÞ "ã Ý ã Û ç <ß BÕ Bð"Ð ð" HMÇ~Á~×G\ÑG\Ð]uÓGvÐ ÐDÓ vó	÷".ñ ".÷Jgñ gôT"HÐ%ô "HóJ1ôcr&   