Ë
    ‘©j  ã                  óâ   — d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZmZmZmZ dZdZ G d	„ d
«      Z e«       Z G d„ de«      Z G d„ de«      Z G d„ d«      Z G d„ d«      Zdd„Zy)é    )Úannotations)Úcast)ÚHeaders)ÚHTTPException)ÚPlainTextResponse)ÚASGIAppÚMessageÚReceiveÚScopeÚSendzstarlette.max_body_sizezstarlette._body_limit_responderc                  ó   — e Zd ZdZy)Ú_Missing© N)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   ó    úf/var/www/html/streamforge-license/venv/lib/python3.12/site-packages/starlette/middleware/body_limit.pyr   r      s   „ Ø�Ir   r   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )Ú_RequestBodyTooLargec                ó(   •— t         ‰| �  dd¬«       y )Né�  úContent Too Large)Ústatus_codeÚdetail)ÚsuperÚ__init__)ÚselfÚ	__class__s    €r   r   z_RequestBodyTooLarge.__init__   s   ø€ Ü‰Ñ SÐ1DÐÕEr   )ÚreturnÚNone)r   r   r   r   Ú__classcell__)r    s   @r   r   r      s   ø„ ÷Fñ Fr   r   c                  ó   — e Zd Zy)Ú_RequestBodyLimitResponseSentN)r   r   r   r   r   r   r%   r%      s   „ Ør   r%   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚRequestBodyLimitMiddlewarez-Limit the total size of an HTTP request body.c                ó    — || _         || _        y ©N)ÚappÚmax_body_size©r   r*   r+   s      r   r   z#RequestBodyLimitMiddleware.__init__!   s   € ØˆŒØ*ˆÕr   c              ƒ  ó¾   K  — |d   dk7  r| j                  |||«      ƒ d {  –—† S t        | j                   | j                  «      } ||||«      ƒ d {  –—†  y 7 Œ77 Œ­w)NÚtypeÚhttp)r*   ÚRequestBodyLimitResponderr+   )r   ÚscopeÚreceiveÚsendÚ	responders        r   Ú__call__z#RequestBodyLimitMiddleware.__call__%   s[   è ø€ Ø�‰=˜FÒ"ØŸ™ %¨°$Ó7×7Ð7ä-¨d¯h©h¸×8JÑ8JÓKˆ	Ù˜˜w¨Ó-×-Ñ-ð 8øð 	.ús!   ‚A¡A¢1AÁAÁAÁAN©r*   r   r+   Úintr!   r"   ©r1   r   r2   r
   r3   r   r!   r"   )r   r   r   Ú__doc__r   r5   r   r   r   r'   r'      s   „ Ù7ó+ô.r   r'   c                  ób   — e Zd Zd	d„Zed
d„«       Zedd„«       Zedd„«       Zdd„Zdd„Z	dd„Z
y)r0   c                ót   — || _         || _        d | _        d | _        d | _        d | _        d| _        d| _        y )Nr   F)r*   r+   Ú_scopeÚ_receiveÚ_sendÚcontent_lengthÚ
total_sizeÚresponse_startedr,   s      r   r   z"RequestBodyLimitResponder.__init__.   s=   € ØˆŒØ*ˆÔØ$(ˆŒØ(,ˆŒØ"&ˆŒ
Ø*.ˆÔØˆŒØ %ˆÕr   c                ó6   — | j                   €J ‚| j                   S r)   )r<   ©r   s    r   r1   zRequestBodyLimitResponder.scope8   s   € à�{‰{Ð&Ð&Ð&Ø�{‰{Ðr   c                ó6   — | j                   €J ‚| j                   S r)   )r=   rC   s    r   r2   z!RequestBodyLimitResponder.receive=   s   € à�}‰}Ð(Ð(Ð(Ø�}‰}Ðr   c                ó6   — | j                   €J ‚| j                   S r)   )r>   rC   s    r   r3   zRequestBodyLimitResponder.sendB   s   € à�z‰zÐ%Ð%Ð%Ø�z‰zÐr   c              ƒ  óè  K  — t        t        t        z  |j                  t        t
        «      «      }| j                  |t        <   t        t        d z  |j                  t        «      «      }|�K| j                  |_        |j                  |j                  kD  rt        ‚| j                  |||«      ƒ d {  –—† S || _        || _        || _        t        |«      | _        | |t        <   	 | j                  || j"                  | j$                  «      ƒ d {  –—†  |j-                  t        d «       t/        |t        «      r|j-                  t        d «       y ||t        <   y 7 Œ©7 ŒM# t        $ r0 | j&                  r‚ t)        dd¬«      } ||||«      ƒ d {  –—†7   Y Œƒt*        $ r Y Œ�w xY w# |j-                  t        d «       t/        |t        «      r|j-                  t        d «       w ||t        <   w xY w­w)Nr   r   ©r   )r   r7   r   ÚgetÚMAX_BODY_SIZE_SCOPE_KEYÚ_MISSINGr+   r0   Ú_BODY_LIMIT_RESPONDER_SCOPE_KEYr@   r   r*   r<   r=   r>   Ú_get_content_lengthr?   Úreceive_with_limitÚsend_with_limitrA   r   r%   ÚpopÚ
isinstance)r   r1   r2   r3   Úprevious_scope_limitÚactive_responderÚresponses          r   r5   z"RequestBodyLimitResponder.__call__G   sª  è ø€ Ü#¤C¬(¡N°E·I±IÔ>UÔW_Ó4`ÓaÐØ)-×);Ñ);ˆÔ%Ñ&äÔ 9¸DÑ @À%Ç)Á)ÔLkÓBlÓmÐØÐ'Ø-1×-?Ñ-?ÐÔ*Ø×*Ñ*Ð-=×-KÑ-KÒKÜ*Ð*ØŸ™ %¨°$Ó7×7Ð7àˆŒØˆŒØˆŒ
Ü1°%Ó8ˆÔØ15ˆÔ-Ñ.ð	FØ—(‘(˜5 $×"9Ñ"9¸4×;OÑ;OÓP×PÐPð �I‰IÔ5°tÔ<ÜÐ.´Ô9Ø—	‘	Ô1°4Õ8à1E�Ô-Ò.ð- 8øð QùÜ#ò 	1Ø×$Ò$ØÜ(Ð)<È#ÔNˆHÙ˜5 '¨4Ó0×0Ó0Ü,ò 	Ùð	ûð �I‰IÔ5°tÔ<ÜÐ.´Ô9Ø—	‘	Ô1°4Õ8à1E�Ô-Ò.üsn   ‚B1G2Â3EÂ42G2Ã'*E! ÄEÄE! ÄAG2ÅE! Å!0F$ÆFÆF$ÆF' ÆF$Æ!F' Æ#F$Æ$F' Æ'AG/Ç/G2c              ƒ  óB  K  — | j                   �| j                   | j                  kD  rt        ‚| j                  «       ƒ d {  –—† }|d   dk(  rM| xj                  t        |j                  dd«      «      z  c_        | j                  | j                  kD  rt        ‚|S 7 Œ[­w)Nr.   zhttp.requestÚbodyr   )r?   r+   r   r2   r@   ÚlenrH   )r   Úmessages     r   rM   z,RequestBodyLimitResponder.receive_with_limith   s…   è ø€ Ø×ÑÐ*¨t×/BÑ/BÀT×EWÑEWÒ/WÜ&Ð&àŸ™›×&ˆØ�6‰?˜nÒ,Ø�OŠOœs 7§;¡;¨v°sÓ#;Ó<Ñ<�OØ�‰ ×!3Ñ!3Ò3Ü*Ð*Øˆð 'ús   ‚?BÁBÁABc              ƒ  ó4  K  — |d   dk(  rod| _         | j                  �\| j                  | j                  kD  rCt        dd¬«      } || j                  | j
                  | j                  «      ƒ d {  –—†  t        ‚| j                  |«      ƒ d {  –—†  y 7 Œ$7 Œ­w)Nr.   zhttp.response.startTr   r   rG   )rA   r?   r+   r   r1   r2   r3   r%   )r   rW   rS   s      r   rN   z)RequestBodyLimitResponder.send_with_limits   s‡   è ø€ Ø�6‰?Ð3Ò3Ø$(ˆDÔ!Ø×"Ñ"Ð.°4×3FÑ3FÈ×I[ÑI[Ò3[Ü,Ð-@ÈcÔR�Ù˜tŸz™z¨4¯<©<¸¿¹ÓC×CÐCÜ3Ð3Ø�i‰i˜Ó × Ñ ð Døà ús$   ‚A-BÁ/BÁ0BÂBÂBÂBNr6   )r!   r   )r!   r
   )r!   r   r8   )r!   r	   )rW   r	   r!   r"   )r   r   r   r   Úpropertyr1   r2   r3   r5   rM   rN   r   r   r   r0   r0   -   sT   „ ó&ð òó ðð òó ðð òó ðóFóB	ô!r   r0   c                ót   — t        | ¬«      j                  d«      }|€y 	 t        |«      S # t        $ r Y y w xY w)N)r1   zcontent-length)r   rH   r7   Ú
ValueError)r1   r?   s     r   rL   rL   }   sC   € Ü 5Ô)×-Ñ-Ð.>Ó?€NØÐØðÜ�>Ó"Ð"øÜò Ùðús    
+ «	7¶7N)r1   r   r!   z
int | None)Ú
__future__r   Útypingr   Ústarlette.datastructuresr   Ústarlette.exceptionsr   Ústarlette.responsesr   Ústarlette.typesr   r	   r
   r   r   rI   rK   r   rJ   r   Ú	Exceptionr%   r'   r0   rL   r   r   r   ú<module>rc      so   ðÝ "å å ,Ý .Ý 1ß BÕ Bà3Ð Ø"CÐ ÷ñ ñ ‹:€ôF˜=ô Fô
	 Iô 	÷.ñ .÷M!ñ M!ô`r   