Ë
    Û�ðik  ã                   ó|   — d dl Z d dlZd dlmZmZmZmZ  G d„ d«      Z G d„ d«      Z G d„ d«      Z	 G d	„ d
«      Z
y)é    N)Ú
NoMoreDataÚChunkMissingTerminatorÚInvalidChunkSizeÚInvalidChunkExtensionc                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zy)	ÚChunkedReaderc                 óp   — || _         | j                  |«      | _        t        j                  «       | _        y ©N)ÚreqÚparse_chunkedÚparserÚioÚBytesIOÚbuf)Úselfr   Úunreaders      úM/var/www/html/Extract/venv/lib/python3.12/site-packages/gunicorn/http/body.pyÚ__init__zChunkedReader.__init__   s(   € ØˆŒØ×(Ñ(¨Ó2ˆŒÜ—:‘:“<ˆ�ó    c                 ó0  — t        |t        «      st        d«      ‚|dk  rt        d«      ‚|dk(  ry| j                  rj| j
                  j                  «       |k  rM	 | j
                  j                  t        | j                  «      «       | j
                  j                  «       |k  rŒM| j
                  j                  «       }|d | ||d  }}t        j                  «       | _        | j
                  j                  |«       |S # t        $ r
 d | _        Y Œlw xY w)Nzsize must be an integer typer   úSize must be positive.r   )Ú
isinstanceÚintÚ	TypeErrorÚ
ValueErrorr   r   ÚtellÚwriteÚnextÚStopIterationÚgetvaluer   r   ©r   ÚsizeÚdataÚretÚrests        r   ÚreadzChunkedReader.read   sæ   € Ü˜$¤Ô$ÜÐ:Ó;Ð;Ø�!Š8ÜÐ5Ó6Ð6Ø�1Š9Øà�;Š;Ø—(‘(—-‘-“/ DÒ(ðØ—H‘H—N‘N¤4¨¯©Ó#4Ô5ð —(‘(—-‘-“/ DÓ(ð �x‰x× Ñ Ó"ˆØ˜˜$�K  d e ˆTˆÜ—:‘:“<ˆŒØ�‰�‰�tÔØˆ
øô %ò Ø"&�D”KÙðús   Á.D ÄDÄDc                 ór  — t        j                  «       }|j                  |«       |j                  «       j	                  d«      }|j                  «       d d dk(  }|dk  rQ|sO| j                  ||«       |j                  «       j	                  d«      }|j                  «       d d dk(  }|dk  r|sŒO|r#|j                  |j                  «       dd  «       y| j                  j                  |j                  «       d | d¬«      | j                  _	        |j                  |j                  «       |dz   d  «       y )	Ns   

é   ó   
r   r   T)Úfrom_traileré   )
r   r   r   r    ÚfindÚget_dataÚunreadr   Úparse_headersÚtrailers)r   r   r#   r   ÚidxÚdones         r   Úparse_trailerszChunkedReader.parse_trailers(   s   € Ü�j‰j‹lˆØ�	‰	�$Œà�l‰l‹n×!Ñ! +Ó.ˆØ�|‰|‹~˜b˜qÐ! WÑ,ˆØ�AŠg™dØ�M‰M˜( CÔ(Ø—,‘,“.×%Ñ% kÓ2ˆCØ—<‘<“> " 1Ð%¨Ñ0ˆDð �AŠgšdñ Ø�O‰O˜CŸL™L›N¨1¨2Ð.Ô/ØØ ŸH™H×2Ñ2°3·<±<³>À$À3Ð3GÐVZÐ2Ó[ˆ�‰ÔØ�‰˜Ÿ™› s¨Q¡w xÐ0Õ1r   c              #   óÂ  K  — | j                  |«      \  }}|dkD  rÂ|t        |«      kD  r=|t        |«      z  }|–— |j                  «       }|s
t        «       ‚|t        |«      kD  rŒ=|d | –— ||d  }t        |«      dk  r'|j                  «       }|sn||z  }t        |«      dk  rŒ'|d d dk7  rt	        |d d «      ‚| j                  ||dd  ¬«      \  }}|dkD  rŒÁy y ­w)Nr   r(   r)   )r#   )Úparse_chunk_sizeÚlenr&   r   r   )r   r   r"   r%   Únew_datas        r   r   zChunkedReader.parse_chunked8   sù   è ø€ Ø×,Ñ,¨XÓ6‰ˆˆtØ�QŠhØœ˜T›Ò"Øœ˜D›	Ñ!�Ø’
Ø—}‘}“�ÙÜ$›,Ð&ð œ˜T›Ó"ð �u˜�+Òà˜˜�;ˆDÜ�d“)˜a’-Ø#Ÿ=™=›?�ÙØØ˜Ñ �ô	 �d“)˜a“-ð
 �B�Qˆx˜7Ò"Ü,¨T°"°1¨XÓ6Ð6Ø×0Ñ0°ÀÀQÀRÀÐ0ÓI‰LˆT�4ð# �Q�hùs   ‚A$CÁ'A CÂ(4CÃCNc                 óŽ  — t        j                  «       }|�|j                  |«       |j                  «       j	                  d«      }|dk  r7| j                  ||«       |j                  «       j	                  d«      }|dk  rŒ7|j                  «       }|d | ||dz   d  }}|j                  dd«      ^}}|r#d|d   v rt        d«      ‚|j                  d«      }t        d	„ |D «       «      rt        |«      ‚t        |«      dk(  rt        |«      ‚t        |d
«      }|dk(  r	 | j                  ||«       y||fS # t        $ r Y yw xY w)Nr)   r   r(   ó   ;é   ó   zbare CR not alloweds    	c              3   ó$   K  — | ]  }|d v–— Œ
 y­w)s   0123456789abcdefABCDEFN© )Ú.0Úns     r   ú	<genexpr>z1ChunkedReader.parse_chunk_size.<locals>.<genexpr>a   s   è ø€ ÒF°aˆqÐ1Ô1ÑFùs   ‚é   )r   N)r   r   r   r    r,   r-   Úsplitr   ÚrstripÚanyr   r6   r   r3   r   )	r   r   r#   r   r1   ÚlineÚ
rest_chunkÚ
chunk_sizeÚ	chunk_exts	            r   r5   zChunkedReader.parse_chunk_sizeM   sO  € Ü�j‰j‹lˆØÐØ�I‰I�dŒOà�l‰l‹n×!Ñ! 'Ó*ˆØ�AŠgØ�M‰M˜( CÔ(Ø—,‘,“.×%Ñ% gÓ.ˆCð �A‹gð �|‰|‹~ˆØ  ˜: t¨C°!©G¨H ~ˆjˆð "&§¡¨D°!Ó!4Ðˆ
�YÙà˜	 !™Ñ$Ü+Ð,AÓBÐBØ#×*Ñ*¨6Ó2ˆJÜÑF¸:ÔFÔFÜ" :Ó.Ð.Üˆz‹?˜aÒÜ" :Ó.Ð.Ü˜ RÓ(ˆ
à˜Š?ðØ×#Ñ# H¨jÔ9ð Ø˜JÐ'Ð'øô ò ØØðús   Ä!D8 Ä8	EÅEc                 ó^   — |j                  «       }|s
t        «       ‚|j                  |«       y r
   )r&   r   r   )r   r   r   r#   s       r   r-   zChunkedReader.get_datao   s#   € Ø�}‰}‹ˆÙÜ“,ÐØ�	‰	�$�r   r
   )	Ú__name__Ú
__module__Ú__qualname__r   r&   r3   r   r5   r-   r=   r   r   r   r      s"   „ ò ò
ò,2ò Jó* (óDr   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚLengthReaderc                 ó    — || _         || _        y r
   )r   Úlength)r   r   rP   s      r   r   zLengthReader.__init__w   s   € Ø ˆŒØˆ�r   c                 ó  — t        |t        «      st        d«      ‚t        | j                  |«      }|dk  rt        d«      ‚|dk(  ryt        j                  «       }| j                  j                  «       }|rB|j                  |«       |j                  «       |k\  rn| j                  j                  «       }|rŒB|j                  «       }|d | ||d  }}| j                  j                  |«       | xj                  |z  c_        |S )Núsize must be an integral typer   r   r   )r   r   r   ÚminrP   r   r   r   r   r&   r   r   r    r.   )r   r"   r   r#   r$   r%   s         r   r&   zLengthReader.read{   sß   € Ü˜$¤Ô$ÜÐ;Ó<Ð<ä�4—;‘; Ó%ˆØ�!Š8ÜÐ5Ó6Ð6Ø�1Š9Øä�j‰j‹lˆØ�}‰}×!Ñ!Ó#ˆÙØ�I‰I�dŒOØ�x‰x‹z˜TÒ!ØØ—=‘=×%Ñ%Ó'ˆDò	 ð �l‰l‹nˆØ˜˜�J  D E 
ˆTˆØ�‰×Ñ˜TÔ"Ø�Š�tÑ�Øˆ
r   N©rJ   rK   rL   r   r&   r=   r   r   rN   rN   v   s   „ òór   rN   c                   ó   — e Zd Zd„ Zd„ Zy)Ú	EOFReaderc                 óR   — || _         t        j                  «       | _        d| _        y )NF)r   r   r   r   Úfinished)r   r   s     r   r   zEOFReader.__init__•   s   € Ø ˆŒÜ—:‘:“<ˆŒØˆ�r   c                 óÚ  — t        |t        «      st        d«      ‚|dk  rt        d«      ‚|dk(  ry| j                  rZ| j
                  j                  «       }|d | ||d  }}t        j                  «       | _        | j
                  j                  |«       |S | j                  j                  «       }|rV| j
                  j                  |«       | j
                  j                  «       |kD  rn| j                  j                  «       }|rŒV|sd| _        | j
                  j                  «       }|d | ||d  }}t        j                  «       | _        | j
                  j                  |«       |S )NrR   r   r   r   T)r   r   r   r   rX   r   r    r   r   r   r   r&   r   r!   s        r   r&   zEOFReader.readš   s+  € Ü˜$¤Ô$ÜÐ;Ó<Ð<Ø�!Š8ÜÐ5Ó6Ð6Ø�1Š9Øà�=Š=Ø—8‘8×$Ñ$Ó&ˆDØ˜U˜d˜ T¨$¨% [�ˆCÜ—z‘z“|ˆDŒHØ�H‰H�N‰N˜4Ô ØˆJà�}‰}×!Ñ!Ó#ˆÙØ�H‰H�N‰N˜4Ô Ø�x‰x�}‰}‹ Ò%ØØ—=‘=×%Ñ%Ó'ˆDò	 ñ Ø ˆDŒMà�x‰x× Ñ Ó"ˆØ˜˜$�K  d e ˆTˆÜ—:‘:“<ˆŒØ�‰�‰�tÔØˆ
r   NrT   r=   r   r   rV   rV   ”   s   „ òó
r   rV   c                   ó@   — e Zd Zd„ Zd„ Zd„ ZeZd„ Zd	d„Zd	d„Z	d	d„Z
y)
ÚBodyc                 óD   — || _         t        j                  «       | _        y r
   )Úreaderr   r   r   )r   r]   s     r   r   zBody.__init__»   s   € ØˆŒÜ—:‘:“<ˆ�r   c                 ó   — | S r
   r=   )r   s    r   Ú__iter__zBody.__iter__¿   s   € Øˆr   c                 ó>   — | j                  «       }|s
t        «       ‚|S r
   )Úreadliner   )r   r$   s     r   Ú__next__zBody.__next__Â   s   € Ø�m‰m‹oˆÙÜ“/Ð!Øˆ
r   c                 óŠ   — |€t         j                  S t        |t        «      st	        d«      ‚|dk  rt         j                  S |S )NrR   r   )ÚsysÚmaxsizer   r   r   )r   r"   s     r   ÚgetsizezBody.getsizeÊ   s=   € Øˆ<Ü—;‘;ÐÜ˜D¤#Ô&ÜÐ;Ó<Ð<Ø�AŠXÜ—;‘;ÐØˆr   Nc                 óº  — | j                  |«      }|dk(  ry|| j                  j                  «       k  rZ| j                  j                  «       }|d | ||d  }}t	        j
                  «       | _        | j                  j                  |«       |S || j                  j                  «       kD  rW| j                  j                  d«      }|sn9| j                  j                  |«       || j                  j                  «       kD  rŒW| j                  j                  «       }|d | ||d  }}t	        j
                  «       | _        | j                  j                  |«       |S )Nr   r   é   )	rf   r   r   r    r   r   r   r]   r&   r!   s        r   r&   z	Body.readÓ   s  € Ø�|‰|˜DÓ!ˆØ�1Š9Øà�$—(‘(—-‘-“/Ò!Ø—8‘8×$Ñ$Ó&ˆDØ˜U˜d˜ T¨$¨% [�ˆCÜ—z‘z“|ˆDŒHØ�H‰H�N‰N˜4Ô ØˆJà�T—X‘X—]‘]“_Ò$Ø—;‘;×#Ñ# DÓ)ˆDÙØØ�H‰H�N‰N˜4Ô ð	 �T—X‘X—]‘]“_Ó$ð �x‰x× Ñ Ó"ˆØ˜˜$�K  d e ˆTˆÜ—:‘:“<ˆŒØ�‰�‰�tÔØˆ
r   c                 ó  — | j                  |«      }|dk(  ry| j                  j                  «       }t        j                  «       | _        g }	 |j                  dd|«      }|dk\  r|dz   nt        |«      |k\  r|nd}|r3|j                  |d | «       | j                  j                  ||d  «       nH|j                  |«       |t        |«      z  }| j                  j                  t        d|«      «      }|snŒ¬dj                  |«      S )Nr   r   r:   ó   
rh   )rf   r   r    r   r   r,   r6   Úappendr   r]   r&   rS   Újoin)r   r"   r#   r$   r1   s        r   ra   zBody.readlineë   sî   € Ø�|‰|˜DÓ!ˆØ�1Š9Øà�x‰x× Ñ Ó"ˆÜ—:‘:“<ˆŒàˆØØ—)‘)˜E 1 dÓ+ˆCØ  AšX�#˜’'´3°t³9ÀÒ3D©4È!ˆCÙØ—
‘
˜4  ˜:Ô&Ø—‘—‘˜t C D˜zÔ*Øà�J‰J�tÔØ”C˜“IÑˆDØ—;‘;×#Ñ#¤C¨¨d£OÓ4ˆDÙØð ð �x‰x˜‹}Ðr   c                 óÊ   — g }| j                  «       }|rN|j                  d«      }|dk  r|j                  |«       d}n!|d |dz    ||dz   d  }}|j                  |«       |rŒN|S )Nrj   r   r   r:   )r&   r,   rk   )r   r"   r$   r#   ÚposrE   s         r   Ú	readlineszBody.readlines  sp   € ØˆØ�y‰y‹{ˆÙØ—)‘)˜EÓ"ˆCØ�QŠwØ—
‘
˜4Ô Ø‘à! ( 3¨¡7˜^¨T°#¸±'°(¨^�d�Ø—
‘
˜4Ô ò ð ˆ
r   r
   )rJ   rK   rL   r   r_   rb   r   rf   r&   ra   ro   r=   r   r   r[   r[   º   s,   „ ò òòð €Dòóó0ô2r   r[   )r   rd   Úgunicorn.http.errorsr   r   r   r   r   rN   rV   r[   r=   r   r   ú<module>rq      sG   ðó
 
Û 
÷Kó K÷gñ g÷Tñ ÷<#ñ #÷LUò Ur   