Ë
    rR hu-  ã                  ó€  — d dl mZ d dlZd dl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 dd	lmZ  G d
„ d«      Z ed¬«       G d„ de«      «       Z ed¬«       G d„ de«      «       Z ed¬«       G d„ de«      «       Z ed¬«       G d„ de«      «       Z ed¬«       G d„ de«      «       Z G d„ de«      Z e«       Z G d„ de	«      ZdZ ej4                  dej6                  «      Z ej4                  eej6                  «      Z ej4                  dez  ej6                  «      ZdZ G d „ d!«      Z  G d"„ d#«      Z!y)$é    )ÚannotationsN)Ú	dataclass)Úauto)ÚEnumé   )ÚHeaders)ÚRequestEntityTooLarge)Úparse_options_headerc                  ó   — e Zd Zy)ÚEventN©Ú__name__Ú
__module__Ú__qualname__© ó    úQ/var/www/timesheet/venv/lib/python3.12/site-packages/werkzeug/sansio/multipart.pyr   r      ó   „ Ør   r   T)Úfrozenc                  ó   — e Zd ZU ded<   y)ÚPreambleÚbytesÚdataN©r   r   r   Ú__annotations__r   r   r   r   r      ó   … à
„Kr   r   c                  ó"   — e Zd ZU ded<   ded<   y)ÚFieldÚstrÚnamer   ÚheadersNr   r   r   r   r   r      s   … à
ƒIØÔr   r   c                  ó,   — e Zd ZU ded<   ded<   ded<   y)ÚFiler   r    Úfilenamer   r!   Nr   r   r   r   r#   r#      s   … à
ƒIØƒMØÔr   r#   c                  ó"   — e Zd ZU ded<   ded<   y)ÚDatar   r   ÚboolÚ	more_dataNr   r   r   r   r&   r&   $   s   … à
ƒKØ„Or   r&   c                  ó   — e Zd ZU ded<   y)ÚEpiloguer   r   Nr   r   r   r   r*   r*   *   r   r   r*   c                  ó   — e Zd Zy)ÚNeedDataNr   r   r   r   r,   r,   /   r   r   r,   c                  ó`   — e Zd Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z	y)ÚStateN)
r   r   r   r   ÚPREAMBLEÚPARTÚDATAÚ
DATA_STARTÚEPILOGUEÚCOMPLETEr   r   r   r.   r.   6   s,   „ Ù‹v€HÙ‹6€DÙ‹6€DÙ“€JÙ‹v€HÙ‹v�Hr   r.   s
   (?:
|
|)s   (?:

||

)s   %s[ 	]é   c                  óX   — e Zd ZdZ	 d
ddœ	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zdd	„Z	y)ÚMultipartDecoderz³Decodes a multipart message as bytes into Python events.

    The part data is returned as available to allow the caller to save
    the data from memory to disk, if desired.
    N)Ú	max_partsc               óÜ  — t        «       | _        d| _        || _        || _        t
        j                  | _        || _        t        j                  dt        t        j                  |«      t        t        fz  t        j                  «      | _        t        j                  dt        t        j                  |«      t        t        fz  t        j                  «      | _        d| _        d| _        y )NFs%   %s?--%s(--[^\S\n\r]*%s?|[^\S\n\r]*%s)s$   %s--%s(--[^\S\n\r]*%s?|[^\S\n\r]*%s)r   )Ú	bytearrayÚbufferÚcompleteÚmax_form_memory_sizer8   r.   r/   ÚstateÚboundaryÚreÚcompileÚ
LINE_BREAKÚescapeÚ	MULTILINEÚpreamble_reÚboundary_reÚ_search_positionÚ_parts_decoded)Úselfr?   r=   r8   s       r   Ú__init__zMultipartDecoder.__init__T   s·   € ô  “kˆŒØˆŒØ$8ˆÔ!Ø"ˆŒÜ—^‘^ˆŒ
Ø ˆŒô Ÿ:™:Ø5Üœ2Ÿ9™9 XÓ.´
¼JÐGñHä�L‰Ló
ˆÔô Ÿ:™:Ø4Üœ2Ÿ9™9 XÓ.´
¼JÐGñHä�L‰Ló
ˆÔð
 !"ˆÔØˆÕr   c                óÊ   — 	 |j                  d«      }	 |j                  d«      }t        ||«      S # t        $ r t        |«      }Y Œ4w xY w# t        $ r t        |«      }Y Œ<w xY w)Nó   
ó   )ÚrindexÚ
ValueErrorÚlenÚmin)rI   r   Úlast_nlÚlast_crs       r   Úlast_newlinezMultipartDecoder.last_newline|   sj   € ð	 Ø—k‘k %Ó(ˆGð	 Ø—k‘k %Ó(ˆGô �7˜GÓ$Ð$øô ò 	 Ü˜$“iŠGð	 ûô ò 	 Ü˜$“iŠGð	 ús    ‚1 ”A ±AÁAÁA"Á!A"c                óÖ   — |€d| _         y | j                  �8t        | j                  «      t        |«      z   | j                  kD  r
t	        «       ‚| j                  j                  |«       y )NT)r<   r=   rP   r;   r	   Úextend)rI   r   s     r   Úreceive_datazMultipartDecoder.receive_dataˆ   sW   € Øˆ<Ø ˆD�Mà×%Ñ%Ð1Ü�D—K‘KÓ ¤3 t£9Ñ,¨t×/HÑ/HÒHô (Ó)Ð)à�K‰K×Ñ˜tÕ$r   c                óÂ  — t         }| j                  t        j                  k(  �r| j                  j                  | j                  | j                  «      }|�£|j                  d«      j                  d«      rt        j                  | _        nt        j                  | _        t        | j                  d |j                  «        «      }| j                  d |j                  «       …= t        |¬«      }d| _        �n1t!        dt#        | j                  «      t#        | j$                  «      z
  t&        z
  «      | _        �nî| j                  t        j                  k(  �r“t(        j                  | j                  | j                  «      }|��9| j+                  | j                  d |j                  «        «      }|j                  «       |j                  «       z   dz  }| j                  d |…= d|vrt-        d«      ‚t/        |d   «      \  }}t1        j2                  t4        |j7                  d«      «      }|j7                  d	«      }	|	�t9        |	||¬
«      }nt;        ||¬«      }t        j<                  | _        d| _        | xj>                  dz  c_        | j@                  ��Ž| j>                  | j@                  kD  �rttC        «       ‚t!        dt#        | j                  «      t&        z
  «      | _        �n=| j                  t        j<                  k(  rU| jE                  | j                  d¬«      \  }}
}| j                  d |
…= tG        ||¬«      }|rát        jH                  | _        nË| j                  t        jH                  k(  rB| jE                  | j                  d¬«      \  }}
}| j                  d |
…= |s|sztG        ||¬«      }nl| j                  t        j                  k(  rO| jJ                  rCtM        t        | j                  «      ¬«      }| j                  d d …= t        jN                  | _        | jJ                  r(tQ        |tR        «      rt-        d| j                  › �«      ‚|S )Né   ó   --)r   r   r   úcontent-dispositionz"Missing Content-Disposition headerr    r$   )r$   r!   r    )r!   r    T)Ústart)r   r(   Fz&Invalid form-data cannot parse beyond )*Ú	NEED_DATAr>   r.   r/   rE   Úsearchr;   rG   ÚgroupÚ
startswithr3   r0   r   r\   Úendr   ÚmaxrP   r?   ÚSEARCH_EXTRA_LENGTHÚBLANK_LINE_REÚ_parse_headersrO   r
   ÚtÚcastr   Úgetr#   r   r2   rH   r8   r	   Ú_parse_datar&   r1   r<   r*   r4   Ú
isinstancer,   )rI   ÚeventÚmatchr   r!   Úheaders_endÚdispositionÚextrar    r$   Ú	del_indexr(   s               r   Ú
next_eventzMultipartDecoder.next_event•   se  € Ü ˆà�:‰:œŸ™Ó'Ø×$Ñ$×+Ñ+¨D¯K©K¸×9NÑ9NÓOˆEØÐ Ø—;‘;˜q“>×,Ñ,¨UÔ3Ü!&§¡�D•Jä!&§¡�D”JÜ˜TŸ[™[¨¨5¯;©;«=Ð9Ó:�Ø—K‘K  %§)¡)£+ Ð.Ü  dÔ+�Ø()�Ö%ô
 ),Ø”s˜4Ÿ;™;Ó'¬#¨d¯m©mÓ*<Ñ<Ô?RÑRó)�Ö%ð �Z‰Zœ5Ÿ:™:Ó%Ü!×(Ñ(¨¯©°d×6KÑ6KÓLˆEØÑ Ø×-Ñ-¨d¯k©k¸/¸E¿K¹K»MÐ.JÓK�ð  %Ÿ{™{›}¨u¯y©y«{Ñ:¸qÑ@�Ø—K‘K   Ð-à(°Ñ7Ü$Ð%IÓJÐJä%9ØÐ1Ñ2ó&Ñ"�˜Uô —v‘vœc 5§9¡9¨VÓ#4Ó5�Ø Ÿ9™9 ZÓ0�ØÐ'Ü Ø!)Ø 'Ø!ô‘Eô "Ø 'Ø!ô�Eô #×-Ñ-�”
Ø()�Ô%Ø×#Ò# qÑ(Õ#à—>‘>Ñ-°$×2EÑ2EÈÏÉÓ2VÜ/Ó1Ð1ô
 ),¨A¬s°4·;±;Ó/?ÔBUÑ/UÓ(V�Ö%à�Z‰Zœ5×+Ñ+Ò+Ø)-×)9Ñ)9¸$¿+¹+ÈTÐ)9Ó)RÑ&ˆD�)˜YØ—‘˜J˜Y˜JÐ'Ü˜d¨iÔ8ˆEÙÜ"ŸZ™Z�•
à�Z‰Zœ5Ÿ:™:Ò%Ø)-×)9Ñ)9¸$¿+¹+ÈUÐ)9Ó)SÑ&ˆD�)˜YØ—‘˜J˜Y˜JÐ'Ù™9Ü $°)Ô<‘à�Z‰Zœ5Ÿ>™>Ò)¨d¯mªmÜ¤%¨¯©Ó"4Ô5ˆEØ—‘šA�ÜŸ™ˆDŒJà�=Š=œZ¨¬xÔ8ÜÐEÀdÇjÁjÀ\ÐRÓSÐSàˆr   c                óB  — g }t         j                  d|«      }|j                  «       D ]j  }|j                  «       }|dk7  sŒ|j	                  «       j                  d«      \  }}}|j                  |j                  «       |j                  «       f«       Œl t        |«      S )Nó    r   ú:)ÚHEADER_CONTINUATION_REÚsubÚ
splitlinesÚstripÚdecodeÚ	partitionÚappendr   )rI   r   r!   Úliner    Ú_Úvalues          r   re   zMultipartDecoder._parse_headersë   s‡   € Ø)+ˆä%×)Ñ)¨$°Ó5ˆà—O‘OÓ%ò 	>ˆDØ—:‘:“<ˆDà�s‹{Ø!%§¡£×!8Ñ!8¸Ó!=‘��a˜Ø—‘ §
¡
£¨e¯k©k«mÐ<Õ=ð	>ô �wÓÐr   c               óü  — |rOt         j                  |«      }t        j                  t        j                  t
           |«      j                  «       }nd}d| j                  z   }| j                  j                  |«      dk(  rF| j                  ||d  «      |z   x}}t        |«      |z
  t        d|z   «      kD  rt        |«      x}}d}n¦| j                  j                  |«      }|�l|j                  d«      j                  d«      rt         j"                  | _        nt         j&                  | _        |j)                  «       }|j                  «       }n| j                  ||d  «      |z   x}}|d u }t        ||| «      ||fS )Nr   rZ   éÿÿÿÿrL   TrY   )ÚLINE_BREAK_RErl   rf   rg   ÚMatchr   ra   r?   r;   ÚfindrT   rP   rF   r^   r_   r`   r.   r3   r>   r0   r\   )	rI   r   r\   rl   Ú
data_startr?   Údata_endrp   r(   s	            r   ri   zMultipartDecoder._parse_dataø   sT  € áÜ!×'Ñ'¨Ó-ˆEÜŸ™¤§¡¬¡°Ó6×:Ñ:Ó<‰JàˆJà˜4Ÿ=™=Ñ(ˆà�;‰;×Ñ˜HÓ%¨Ò+ð
 $(×#4Ñ#4°T¸*¸+Ð5FÓ#GÈ*Ñ#TÐTˆH�yô
 �D“	˜HÑ$¬¨E°HÑ,<Ó(=Ò=Ü'*¨4£yÐ0�˜9Ø‰Ià×$Ñ$×+Ñ+¨DÓ1ˆEØÐ Ø—;‘;˜q“>×,Ñ,¨UÔ3Ü!&§¡�D•Jä!&§¡�D”JØ Ÿ;™;›=�Ø!ŸI™I›K‘	à'+×'8Ñ'8¸¸j¸kÐ9JÓ'KÈjÑ'XÐX�˜9Ø ˜ˆIä�T˜* XÐ.Ó/°¸IÐEÐEr   ©N)r?   r   r=   ú
int | Noner8   r‡   ÚreturnÚNone)r   r   rˆ   Úint)r   zbytes | Nonerˆ   r‰   )rˆ   r   )r   r   rˆ   r   )r   r   r\   r'   rˆ   ztuple[bytes, int, bool])
r   r   r   Ú__doc__rJ   rT   rW   rq   re   ri   r   r   r   r7   r7   M   s^   „ ñð ,0ð& ð
 !%ñ& àð& ð )ð& ð
 ð& ð 
ó& óP
%ó%óTól ô$Fr   r7   c                  ó   — e Zd Zdd„Zdd„Zy)ÚMultipartEncoderc                ó<   — || _         t        j                  | _        y r†   )r?   r.   r/   r>   )rI   r?   s     r   rJ   zMultipartEncoder.__init__   s   € Ø ˆŒÜ—^‘^ˆ�
r   c                ó
  — t        |t        «      r>| j                  t        j                  k(  r!t        j
                  | _        |j                  S t        |t        t        f«      �r| j                  t        j                  t        j
                  t        j                  hv r×d| j                  z   dz   }|d|j                  j                  «       z  z  }t        |t        «      r |d|j                  j                  «       z  z  }|dz  }t        j                  t        |«      j                   D ]2  \  }}|j#                  «       dk7  sŒ||› d|› d�j                  «       z  }Œ4 t        j$                  | _        |S t        |t&        «      re| j                  t        j$                  k(  rHt        j                  | _        t)        |j                  «      dkD  rd|j                  z   S |j                  S t        |t&        «      r)| j                  t        j                  k(  r|j                  S t        |t*        «      r4t        j,                  | _        d| j                  z   d	z   |j                  z   S t/        d
|› d| j                  › �«      ‚)Ns   
--s   
s)   Content-Disposition: form-data; name="%s"s   ; filename="%s"r[   z: z
r   s   --
zCannot generate z in state: )rj   r   r>   r.   r/   r0   r   r   r#   r1   r?   r    Úencoder$   rf   rg   r!   Úlowerr2   r&   rP   r*   r4   rO   )rI   rk   r   r    r~   s        r   Ú
send_eventzMultipartEncoder.send_event$  sî  € Ü�eœXÔ&¨4¯:©:¼¿¹Ò+GÜŸ™ˆDŒJØ—:‘:ÐÜ˜¤¤t˜}Õ-°$·*±*Ü�N‰NÜ�J‰JÜ�J‰JðA
ñ 3
ð
 ˜tŸ}™}Ñ,¨wÑ6ˆDØÐ@À5Ç:Á:×CTÑCTÓCVÑVÑVˆDÜ˜%¤Ô&ØÐ*¨U¯^©^×-BÑ-BÓ-DÑDÑD�Ø�G‰OˆDÜ Ÿv™v¤e¨UÓ3×;Ñ;ò <‘��eØ—:‘:“<Ð#8Ó8Ø˜t˜f B u g¨TÐ2×9Ñ9Ó;Ñ;‘Dð<ô ×)Ñ)ˆDŒJØˆKÜ˜œtÔ$¨¯©´u×7GÑ7GÒ)GÜŸ™ˆDŒJÜ�5—:‘:‹ Ò"Ø §¡Ñ+Ð+à—z‘zÐ!Ü˜œtÔ$¨¯©´u·z±zÒ)AØ—:‘:ÐÜ˜œxÔ(ÜŸ™ˆDŒJØ˜tŸ}™}Ñ,¨yÑ8¸5¿:¹:ÑEÐEäÐ/°¨w°kÀ$Ç*Á*ÀÐNÓOÐOr   N)r?   r   rˆ   r‰   )rk   r   rˆ   r   )r   r   r   rJ   r’   r   r   r   r�   r�     s   „ ó$ôPr   r�   )"Ú
__future__r   r@   Útypingrf   Údataclassesr   Úenumr   r   Údatastructuresr   Ú
exceptionsr	   Úhttpr
   r   r   r   r#   r&   r*   r,   r]   r.   rB   rA   rD   rd   r�   ru   rc   r7   r�   r   r   r   ú<module>rš      s`  ðÝ "ã 	Û Ý !Ý Ý å $Ý .Ý '÷	ñ 	ñ �$Ôôˆuó ó ðñ �$ÔôˆEó ó ðñ
 �$Ôôˆ5ó ó ðñ �$Ôôˆ5ó ó ðñ
 �$Ôôˆuó ó ðô	ˆuô 	ñ ‹J€	ôˆDô ð €
Ø�—
‘
Ð4°b·l±lÓC€Ø�—
‘
˜: r§|¡|Ó4€ð $˜Ÿ™ J°Ñ$;¸R¿\¹\ÓJÐ ð Ð ÷OFñ OF÷d$Pò $Pr   