§
    Ài"ž  ã                   óR  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZmZmZ d dlmZm Z  dd	l!m"Z" dd
l#m$Z$m%Z%m&Z& ddl'm(Z(m)Z)m*Z*m+Z+m,Z, ddl-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z= ddl>m?Z? ej@        dk    rd dlmAZA nd dlmBZB  eBdd¬¦  «        ZAdZCerddlDmEZE  G d„ deF¦  «        ZG G d„ deF¦  «        ZHdeeI         deeeI         eeIeIf         f         fd„ZJ	 d0d!e
eIeIf         d"eIdeeI         fd#„ZK G d$„ d%¦  «        ZL G d&„ d¦  «        ZM e=eMe9jN        ¬'¦  «         G d(„ d)e:¦  «        ¦   «         ZO G d*„ d+¦  «        ZPee:eIeIf         ZQ G d,„ d-e:¦  «        ZR G d.„ d/¦  «        ZSdS )1é    N)Údeque)ÚMappingÚSequence)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚDequeÚDictÚIteratorÚListÚOptionalÚTupleÚTypeÚUnionÚcast)Ú	parse_qslÚunquoteÚ	urlencode)ÚCIMultiDictÚCIMultiDictProxyé   )ÚAbstractStreamWriter)ÚDEFAULT_MAX_DECOMPRESS_SIZEÚZLibCompressorÚZLibDecompressor)ÚCONTENT_DISPOSITIONÚCONTENT_ENCODINGÚCONTENT_LENGTHÚCONTENT_TRANSFER_ENCODINGÚCONTENT_TYPE)ÚCHARÚTOKENÚparse_mimetypeÚreify)ÚHeadersParser)Úinternal_logger)ÚJsonPayloadÚLookupErrorÚOrderÚPayloadÚStringPayloadÚget_payloadÚpayload_type)ÚStreamReader)é   é   )ÚSelf)ÚTypeVarr1   ÚBodyPartReader)Úbound)ÚMultipartReaderÚMultipartWriterr3   ÚBadContentDispositionHeaderÚBadContentDispositionParamÚparse_content_dispositionÚcontent_disposition_filename)ÚClientResponsec                   ó   — e Zd ZdS )r7   N©Ú__name__Ú
__module__Ú__qualname__© ó    úV/home/mmwave/public_html/mmwave/venv/lib/python3.11/site-packages/aiohttp/multipart.pyr7   r7   M   ó   € € € € € Ø€DrB   r7   c                   ó   — e Zd ZdS )r8   Nr=   rA   rB   rC   r8   r8   Q   rD   rB   r8   ÚheaderÚreturnc                 óÀ  ‡— dt           dt          fd„Šdt           dt          fd„}dt           dt          fˆfd„}dt           dt          fd„}dt           dt          fd„}d                     t          t          j        t          ¦  «        ¦  «        d	œd
t           dt           dt           fd„}| sd i fS |                      d¦  «        ^}} ‰|¦  «        s%t          j	        t          | ¦  «        ¦  «         d i fS i }|�rÎ|                     d¦  «        }	|	s"t          j	        t          | ¦  «        ¦  «         Œ<d|	vr%t          j	        t          | ¦  «        ¦  «         d i fS |	                     dd¦  «        \  }
}|
                     ¦   «                              ¦   «         }
|                     ¦   «         }|
|v r%t          j	        t          | ¦  «        ¦  «         d i fS  ‰|
¦  «        s#t          j	        t          |	¦  «        ¦  «         �Œ ||
¦  «        rP ||¦  «        r ||dd…         ¦  «        }�n� ‰|¦  «        s#t          j	        t          |	¦  «        ¦  «         �Œh�n_ ||
¦  «        r’ ||¦  «        r|                     dd¦  «        \  }}}|pd}n#t          j	        t          |	¦  «        ¦  «         �ŒÂ	 t!          ||d¦  «        }nô# t"          $ r% t          j	        t          |	¦  «        ¦  «         Y �Œw xY wd} ||¦  «        r)d} ||dd…                              d¦  «        ¦  «        }ne ‰|¦  «        rd}nW|rU|› d|d         › �} ||¦  «        r=|                     d¦  «          ||dd…                              d¦  «        ¦  «        }d}|r%t          j	        t          | ¦  «        ¦  «         d i fS |||
<   |�°Î|                     ¦   «         |fS )NÚstringrG   c                 óP   — t          | ¦  «        ot          t          | ¦  «        k    S ©N)Úboolr"   Úset©rI   s    rC   Úis_tokenz+parse_content_disposition.<locals>.is_tokenX   s   € Ý�F‰|Œ|Ð4¥­¨V©¬Ò 4Ð4rB   c                 ó:   — | d         | d         cxk    odk    nc S )Nr   éÿÿÿÿú"rA   rN   s    rC   Ú	is_quotedz,parse_content_disposition.<locals>.is_quoted[   s,   € Ø�aŒy˜F 2œJÐ-Ð-Ò-Ð-¨#Ò-Ð-Ð-Ð-Ð-rB   c                 óL   •—  ‰| ¦  «        o|                       d¦  «        dk    S )Nú'é   )Úcount)rI   rO   s    €rC   Ú
is_rfc5987z-parse_content_disposition.<locals>.is_rfc5987^   s)   ø€ Øˆx˜ÑÔÐ: F§L¢L°Ñ$5Ô$5¸Ò$:Ð:rB   c                 ó,   — |                       d¦  «        S )NÚ*)ÚendswithrN   s    rC   Úis_extended_paramz4parse_content_disposition.<locals>.is_extended_parama   s   € Ø�Š˜sÑ#Ô#Ð#rB   c                 ó´   — |                       d¦  «        dz   }|sdS |                      d¦  «        r
| |d…         n	| |d …         }|                     ¦   «         S )NrZ   r   FrQ   )Úfindr[   Úisdigit)rI   ÚposÚ	substrings      rC   Úis_continuous_paramz6parse_content_disposition.<locals>.is_continuous_paramd   sa   € Ø�kŠk˜#ÑÔ Ñ"ˆØð 	Ø�5Ø&,§o¢o°cÑ&:Ô&:ÐL�F˜3˜r˜6”N�NÀÀsÀtÀtÄˆ	Ø× Ò Ñ"Ô"Ð"rB   Ú )ÚcharsÚtextrd   c                ó6   — t          j        d|› d�d| ¦  «        S )Nz\\([z])z\1)ÚreÚsub)re   rd   s     rC   Úunescapez+parse_content_disposition.<locals>.unescapek   s"   € ÝŒvÐ(˜uÐ(Ð(Ð(¨%°Ñ6Ô6Ð6rB   ú;r   Ú=r   rQ   rU   rV   úutf-8ÚstrictTFz\/)ÚstrrL   ÚjoinÚmaprg   Úescaper!   ÚsplitÚwarningsÚwarnr7   ÚpopÚlowerÚstripÚlstripr8   r   ÚUnicodeDecodeError)rF   rS   rX   r\   rb   ri   ÚdisptypeÚpartsÚparamsÚitemÚkeyÚvalueÚencodingÚ_ÚfailedÚ_valuerO   s                   @rC   r9   r9   U   s¬  ø€ ð5�ð 5¥ð 5ð 5ð 5ð 5ð.�#ð .¥$ð .ð .ð .ð .ð;�3ð ;¥4ð ;ð ;ð ;ð ;ð ;ð ;ð$¥#ð $­$ð $ð $ð $ð $ð#¥Cð #­Dð #ð #ð #ð #ð -/¯GªGµC½¼	Å4Ñ4HÔ4HÑ,IÔ,Ið 7ð 7ð 7•sð 7¥cð 7Ícð 7ð 7ð 7ð 7ð ð Ø�Rˆxˆà—|’| CÑ(Ô(Ð€HˆuØˆ8�HÑÔð ÝŒÕ1°&Ñ9Ô9Ñ:Ô:Ð:Ø�Rˆxˆà€FØ
ñ @Ø�yŠy˜‰|Œ|ˆàð 	ÝŒMÕ5°fÑ=Ô=Ñ>Ô>Ð>Øà�dˆ?ˆ?ÝŒMÕ5°fÑ=Ô=Ñ>Ô>Ð>Ø˜�8ˆOà—Z’Z  QÑ'Ô'‰
ˆˆUØ�iŠi‰kŒk×ÒÑ!Ô!ˆØ—’‘”ˆà�&ˆ=ˆ=ÝŒMÕ5°fÑ=Ô=Ñ>Ô>Ð>Ø˜�8ˆOàˆx˜‰}Œ}ð +	 ÝŒMÕ4°TÑ:Ô:Ñ;Ô;Ð;Ùà Ð  Ñ%Ô%ð '	 Øˆy˜ÑÔð Ø ˜  q¨ t¤Ñ-Ô-�‘Ø�X˜e‘_”_ð Ý”Õ8¸Ñ>Ô>Ñ?Ô?Ð?Ùñð Ð˜sÑ#Ô#ð  	 Øˆz˜%Ñ Ô ð Ø%*§[¢[°°aÑ%8Ô%8Ñ"�˜!˜UØ#Ð. w��å”Õ8¸Ñ>Ô>Ñ?Ô?Ð?ÙðÝ  x°Ñ:Ô:��øÝ%ð ð ð Ý”Õ8¸Ñ>Ô>Ñ?Ô?Ð?Ø‘ðøøøð
 ˆFØˆy˜ÑÔð #Ø�Ø ˜  q¨ t¤×!3Ò!3°EÑ!:Ô!:Ñ;Ô;��Ø�˜%‘”ð 	#Ø��Øð #ð "Ð.Ð. E¨!¤HÐ.Ð.�Ø�9˜VÑ$Ô$ð #Ø—I’I˜a‘L”L�LØ$˜H V¨A¨b¨D¤\×%8Ò%8¸Ñ%?Ô%?Ñ@Ô@�EØ"�Fàð  Ý”Õ9¸&ÑAÔAÑBÔBÐBØ˜R�x�àˆˆs‰ðA ñ @ðD �>Š>ÑÔ˜VÐ#Ð#s   Ê<K Ë+K=Ë<K=Úfilenamer|   Únamec                 ó2  ‡
— d|z  Š
| sd S ‰
| v r| ‰
         S || v r| |         S g }t          ˆ
fd„|                      ¦   «         D ¦   «         ¦  «        }t          |¦  «        D ]i\  }\  }}|                     dd¦  «        \  }}|                     d¦  «        r
|d d…         }|t          |¦  «        k    r|                     |¦  «         Œi |sd S d                     |¦  «        }d|v r/|                     dd¦  «        \  }	}}|	pd	}	t          ||	d
¦  «        S |S )Nz%s*c              3   óP   •K  — | ] \  }}|                      ‰¦  «        ¯||fV — Œ!d S rK   )Ú
startswith)Ú.0r~   r   Úname_sufs      €rC   ú	<genexpr>z/content_disposition_filename.<locals>.<genexpr>È   sP   øè è € ð 
ð 
Ù'˜S %¸S¿^º^ÈHÑ=UÔ=Uð
Ø�%ˆLð
ð 
ð 
ð 
ð 
ð 
rB   rZ   r   rQ   rc   rU   rV   rl   rm   )	ÚsortedÚitemsÚ	enumeraterr   r[   rn   Úappendro   r   )r|   r…   r{   ÚfnparamsÚnumr~   r   r�   Útailr€   rŠ   s             @rC   r:   r:   ¼   si  ø€ ð �t‰|€HØð ØˆtØ	�VÐ	Ð	Ø�hÔÐØ	�ˆˆØ�dŒ|ÐàˆÝð 
ð 
ð 
ð 
Ø+1¯<ª<©>¬>ð
ñ 
ô 
ñ 
ô 
ˆõ "+¨8Ñ!4Ô!4ð 	ð 	ÑˆC‘�#�uØ—i’i  QÑ'Ô'‰GˆAˆtØ�}Š}˜SÑ!Ô!ð !Ø˜C˜R˜C”y�Ø•s˜3‘x”xÒÐØ—’˜UÑ#Ô#Ð#Ð#àØð 	Ø�4Ø—’˜‘”ˆØ�%ˆ<ˆ<Ø!&§¢¨S°!Ñ!4Ô!4ÑˆH�a˜ØÐ* 7ˆHÝ˜5 (¨HÑ5Ô5Ð5ØˆrB   c                   ó~   — e Zd ZdZ	 	 	 	 	 	 dd„Zdd	„Zded
         fd„Zdefd„Z	de
ed
                  fd„Zdd„ZdS )ÚMultipartResponseWrapperzzWrapper around the MultipartReader.

    It takes care about
    underlying connection and close it when it needs in.
    Úrespr;   Ústreamr5   rG   Nc                 ó"   — || _         || _        d S rK   )r•   r–   )Úselfr•   r–   s      rC   Ú__init__z!MultipartResponseWrapper.__init__ä   s   € ð
 ˆŒ	ØˆŒˆˆrB   c                 ó   — | S rK   rA   ©r˜   s    rC   Ú	__aiter__z"MultipartResponseWrapper.__aiter__ì   ó   € ØˆrB   )r5   r3   c              ƒ   óP   K  — |                       ¦   «         ƒ d {V —†}|€t          ‚|S rK   ©ÚnextÚStopAsyncIteration©r˜   Úparts     rC   Ú	__anext__z"MultipartResponseWrapper.__anext__ï   ó7   è è € ð —Y’Y‘[”[Ð Ð Ð Ð Ð Ð ˆØˆ<Ý$Ð$ØˆrB   c                 ó>   — | j         j                             ¦   «         S )z2Returns True when all response data had been read.)r•   ÚcontentÚat_eofr›   s    rC   r¨   zMultipartResponseWrapper.at_eof÷   s   € àŒyÔ ×'Ò'Ñ)Ô)Ð)rB   c              ƒ   ó®   K  — | j                              ¦   «         ƒ d{V —†}| j                              ¦   «         r|                      ¦   «         ƒ d{V —† |S )z#Emits next multipart reader object.N)r–   r    r¨   Úrelease©r˜   r}   s     rC   r    zMultipartResponseWrapper.nextû   sh   è è € ð ”[×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'ˆØŒ;×ÒÑÔð 	!Ø—,’,‘.”.Ð Ð Ð Ð Ð Ð Ð ØˆrB   c              ƒ   óH   K  — | j                              ¦   «         ƒ d{V —† dS )z_Release the connection gracefully.

        All remaining content is read to the void.
        N)r•   rª   r›   s    rC   rª   z MultipartResponseWrapper.release  s4   è è € ð
 Œi×ÒÑ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!rB   )r•   r;   r–   r5   rG   N)rG   r”   ©rG   N)r>   r?   r@   Ú__doc__r™   rœ   r   r¤   rL   r¨   r   r    rª   rA   rB   rC   r”   r”   Ý   sÚ   € € € € € ðð ðàðð "ðð 
ð	ð ð ð ðð ð ð ðà	Ð2Ô	3ðð ð ð ð*˜ð *ð *ð *ð *ðà	�%Ð;Ô<Ô	=ðð ð ð ð"ð "ð "ð "ð "ð "rB   r”   c                   ó  — e Zd ZdZdZddedœdeddd	ed
ede	e         de
ddfd„Zdedefd„Zdefd„Zde	e         fd„Zddœdedefd„Zefde
defd„Zde
defd„Zde
defd„Zdefd„Zd+d„Zddœde	e         defd„Zddœde	e         de	eeef                  fd „Zddœde	e         deeeef                  fd!„Zdefd"„Zd#edefd$„Zd#edefd%„Z d#edefd&„Z!d'edefd(„Z"e#de	e         fd)„¦   «         Z$e#de	e         fd*„¦   «         Z%dS ),r3   z&Multipart reader for single body part.i    ÚmixedN)ÚsubtypeÚdefault_charsetÚmax_decompress_sizeÚboundaryÚheadersúCIMultiDictProxy[str]r§   r±   r²   r³   rG   c                ó~  — || _         || _        t          |¦  «        dz   | _        || _        || _        d| _        |dk    | _        | j        rd n| j                              t          d ¦  «        }|�t          |¦  «        nd | _        d| _        t          ¦   «         | _        d | _        d| _        i | _        || _        d S )NrV   Fú	form-datar   )rµ   Ú	_boundaryÚlenÚ_boundary_lenÚ_contentÚ_default_charsetÚ_at_eofÚ_is_form_dataÚgetr   ÚintÚ_lengthÚ_read_bytesr   Ú_unreadÚ_prev_chunkÚ_content_eofÚ_cacheÚ_max_decompress_size)r˜   r´   rµ   r§   r±   r²   r³   Úlengths           rC   r™   zBodyPartReader.__init__  sº   € ð ˆŒØ!ˆŒÝ  ™]œ]¨QÑ.ˆÔØˆŒØ /ˆÔØˆŒØ$¨Ò3ˆÔàÔ+ÐW��°´×1AÒ1AÅ.ÐRVÑ1WÔ1WˆØ&,Ð&8•s˜6‘{”{�{¸dˆŒØˆÔÝ%*¡W¤WˆŒØ,0ˆÔØˆÔØ&(ˆŒØ$7ˆÔ!Ð!Ð!rB   r˜   c                 ó   — | S rK   rA   r›   s    rC   rœ   zBodyPartReader.__aiter__,  r�   rB   c              ƒ   óP   K  — |                       ¦   «         ƒ d {V —†}|€t          ‚|S rK   rŸ   r¢   s     rC   r¤   zBodyPartReader.__anext__/  s5   è è € Ø—Y’Y‘[”[Ð Ð Ð Ð Ð Ð ˆØˆ<Ý$Ð$ØˆrB   c              ƒ   óF   K  — |                       ¦   «         ƒ d {V —†}|sd S |S rK   )Úreadr«   s     rC   r    zBodyPartReader.next5  s7   è è € Ø—Y’Y‘[”[Ð Ð Ð Ð Ð Ð ˆØð 	Ø�4ØˆrB   F©ÚdecoderÏ   c             ƒ   óô   K  — | j         rdS t          ¦   «         }| j         s:|                     |                      | j        ¦  «        ƒ d{V —†¦  «         | j         ¯:|r|                      |¦  «        ƒ d{V —†S |S )z»Reads body part data.

        decode: Decodes data following by encoding
                method from Content-Encoding header. If it missed
                data remains untouched
        rB   N)r¾   Ú	bytearrayÚextendÚ
read_chunkÚ
chunk_sizerÏ   )r˜   rÏ   Údatas      rC   rÍ   zBodyPartReader.read;  s›   è è € ð Œ<ð 	Ø�3Ý‰{Œ{ˆØ”,ð 	@Ø�KŠK˜dŸošo¨d¬oÑ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ñ?Ô?Ð?ð ”,ð 	@àð 	+ØŸš TÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØˆrB   Úsizec              ƒ   ó^  K  — | j         rdS | j        r|                      |¦  «        ƒ d{V —†}n|                      |¦  «        ƒ d{V —†}| j                             t          ¦  «        }|�rT|                     ¦   «         dk    �r;d                     | 	                    ¦   «         ¦  «        }t          |¦  «        dz  }|dk    rü|                      ¦   «         sèd|z
  }d}| j        r0| j        d|…         }| j        t          |¦  «        d…         | _        t          |¦  «        |k    r3|| j                             dt          |¦  «        z
  ¦  «        ƒ d{V —†z  }|sd| _         |d                     | 	                    ¦   «         ¦  «        z  }||z  }t          |¦  «        dz  }|dk    r|                      ¦   «         ¯è| xj        t          |¦  «        z  c_        | j        | j        k    rd| _         | j         r2| j                             ¦   «         ƒ d{V —†dk    rt#          d¦  «        ‚|S )	zWReads body part content chunk of the specified size.

        size: chunk size
        rB   NÚbase64é   r   Tó   
z3Reader did not read all the data or it is malformed)r¾   rÂ   Ú_read_chunk_from_lengthÚ_read_chunk_from_streamrµ   rÀ   r   rv   ro   rr   rº   r¨   rÅ   r¼   rÍ   rÃ   ÚreadlineÚ
ValueError)r˜   rÖ   Úchunkr€   Ústripped_chunkÚ	remainderÚover_chunk_sizeÚ
over_chunks           rC   rÓ   zBodyPartReader.read_chunkK  sR  è è € ð
 Œ<ð 	Ø�3ØŒ<ð 	=Ø×6Ò6°tÑ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<ˆEˆEà×6Ò6°tÑ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<ˆEð ”<×#Ò#Õ$=Ñ>Ô>ˆØñ 	4˜ŸšÑ(Ô(¨HÒ4Ñ4Ø ŸXšX e§k¢k¡m¤mÑ4Ô4ˆNÝ˜NÑ+Ô+¨aÑ/ˆIà˜q’.�.¨¯ª©¬�.Ø"# i¡-�Ø �
àÔ#ð KØ!%Ô!1Ð2B°?Ð2BÔ!C�JØ'+Ô'7½¸J¹¼Ð8IÐ8IÔ'J�DÔ$å�z‘?”? oÒ5Ð5Ø¨¬×(:Ò(:¸1½sÀ:¹¼Ñ;NÑ(OÔ(OÐ"OÐ"OÐ"OÐ"OÐ"OÐ"OÑO�Jà!ð (Ø#'�D”Là #§(¢(¨:×+;Ò+;Ñ+=Ô+=Ñ">Ô">Ñ>�Ø˜Ñ#�Ý Ñ/Ô/°!Ñ3�	ð! ˜q’.�.¨¯ª©¬�.ð$ 	ÐÔ�C ™JœJÑ&ÐÔØÔ˜tœ|Ò+Ð+ØˆDŒLØŒ<ð 	T $¤-×"8Ò"8Ñ":Ô":Ð:Ð:Ð:Ð:Ð:Ð:¸gÒEÐEÝÐRÑSÔSÐSØˆrB   c              ƒ   óæ   K  — | j         €
J d¦   «         ‚t          || j         | j        z
  ¦  «        }| j                             |¦  «        ƒ d {V —†}| j                             ¦   «         rd| _        |S )Nz(Content-Length required for chunked readT)rÂ   ÚminrÃ   r¼   rÍ   r¨   r¾   )r˜   rÖ   rÔ   rß   s       rC   rÛ   z&BodyPartReader._read_chunk_from_lengthw  s�   è è € ð Œ|Ð'Ð'Ð)SÑ'Ô'Ð'Ý˜˜tœ|¨dÔ.>Ñ>Ñ?Ô?ˆ
Ø”m×(Ò(¨Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4ˆØŒ=×ÒÑ!Ô!ð 	 ØˆDŒLØˆrB   c           
   ƒ   óæ  K  — || j         k    s
J d¦   «         ‚| j        d u }|r(d| j                             |¦  «        ƒ d {V —†z   | _        d}t	          |¦  «        | j         k     r‘|| j                             |¦  «        ƒ d {V —†z  }| xj        t          | j                             ¦   «         ¦  «        z  c_        | j        dk    rt          d¦  «        ‚| j        rnt	          |¦  «        | j         k     °‘t	          |¦  «        |k    r,| j         	                    ||d …         ¦  «         |d |…         }| j        €J ‚| j        |z   }d| j
        z   }|r|                     |¦  «        }nF|                     |t          dt	          | j        ¦  «        t	          |¦  «        z
  ¦  «        ¦  «        }|dk    r¡t          j        ¦   «         5  t          j        dt           ¬¦  «         | j         	                    ||d …         ¦  «         d d d ¦  «         n# 1 swxY w Y   | j        d |…         | _        |t	          | j        ¦  «        |…         }|sd	| _        | j        |rdndd …         }|| _        |S )
Nz<Chunk size must be greater or equal than boundary length + 2rÚ   rB   rV   zReading after EOFr   Úignore)ÚcategoryT)r»   rÅ   r¼   rÍ   rº   rÆ   rÁ   r¨   rÞ   Úunread_datar¹   r^   Úmaxrs   Úcatch_warningsÚfilterwarningsÚDeprecationWarningr¾   )r˜   rÖ   Úfirst_chunkrß   Úwindowrh   ÚidxÚresults           rC   rÜ   z&BodyPartReader._read_chunk_from_stream�  sÝ  è è € ð �DÔ&Ò&Ð&Ð&ØIñ 'Ô&Ð&àÔ&¨$Ð.ˆØð 	Hà&¨t¬}×/AÒ/AÀ$Ñ/GÔ/GÐ)GÐ)GÐ)GÐ)GÐ)GÐ)GÑGˆDÔàˆõ �%‰jŒj˜4Ô-Ò-Ð-Ø˜4œ=×-Ò-¨dÑ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ñ3ˆEØÐÔ¥ T¤]×%9Ò%9Ñ%;Ô%;Ñ!<Ô!<Ñ<ÐÔØÔ  1Ò$Ð$Ý Ð!4Ñ5Ô5Ð5ØÔ ð Øõ �%‰jŒj˜4Ô-Ò-Ð-õ ˆu‰:Œ:˜ÒÐØŒM×%Ò% e¨D¨E¨E¤lÑ3Ô3Ð3Ø˜%˜4˜%”LˆEàÔÐ+Ð+Ð+ØÔ! EÑ)ˆØ˜œÑ&ˆØð 	MØ—+’+˜cÑ"Ô"ˆCˆCà—+’+˜c¥3 q­#¨dÔ.>Ñ*?Ô*?Å#ÀcÁ(Ä(Ñ*JÑ#KÔ#KÑLÔLˆCØ�!Š8ˆ8åÔ(Ñ*Ô*ð 8ð 8ÝÔ'¨Õ;MÐNÑNÔNÐNØ”×)Ò)¨&°°°¬,Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð  $Ô/°°°Ô5ˆDÔØ�3˜tÔ/Ñ0Ô0°3Ð6Ô7ˆEØð $Ø#�”ØÔ! {Ð"9 ! !¸Ð";Ð";Ô<ˆØ ˆÔØˆs   Ç	>HÈHÈHc              ƒ   ó6  K  — | j         rdS | j        r| j                             ¦   «         }n| j                             ¦   «         ƒ d{V —†}|                     | j        ¦  «        rV|                     d¦  «        }| j        }| j        dz   }||k    s||k    r#d| _         | j                             |¦  «         dS n]| j                             ¦   «         ƒ d{V —†}|                     | j        ¦  «        r
|dd…         }| j                             |¦  «         |S )z Reads body part by line by line.rB   NrÚ   ó   --Téþÿÿÿ)	r¾   rÄ   Úpopleftr¼   rÝ   rˆ   r¹   Úrstripr�   )r˜   ÚlineÚsliner´   Úlast_boundaryÚ	next_lines         rC   rÝ   zBodyPartReader.readline®  s8  è è € àŒ<ð 	Ø�3àŒ<ð 	2Ø”<×'Ò'Ñ)Ô)ˆDˆDàœ×/Ò/Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1ˆDà�?Š?˜4œ>Ñ*Ô*ð 	+ð —K’K Ñ(Ô(ˆEØ”~ˆHØ œN¨UÑ2ˆMà˜Ò Ð  E¨]Ò$:Ð$:Ø#�”Ø”×#Ò# DÑ)Ô)Ð)Ø�sð %;ð
 #œm×4Ò4Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6ˆIØ×#Ò# D¤NÑ3Ô3ð !Ø˜C˜R˜C”y�ØŒL×Ò 	Ñ*Ô*Ð*àˆrB   c              ƒ   ó|   K  — | j         rdS | j         s)|                      | j        ¦  «        ƒ d{V —† | j         ¯'dS dS )z0Like read(), but reads all the data to the void.N)r¾   rÓ   rÔ   r›   s    rC   rª   zBodyPartReader.releaseË  se   è è € àŒ<ð 	ØˆFØ”,ð 	3Ø—/’/ $¤/Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ð ”,ð 	3ð 	3ð 	3ð 	3ð 	3rB   )r€   r€   c             ƒ   ó˜   K  — |                       d¬¦  «        ƒ d{V —†}|p|                      d¬¦  «        }|                     |¦  «        S )z;Like read(), but assumes that body part contains text data.TrÎ   Nrl   ©Údefault)rÍ   Úget_charsetrÏ   ©r˜   r€   rÕ   s      rC   re   zBodyPartReader.textÒ  sZ   è è € à—Y’Y d�YÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ˆð Ð@˜t×/Ò/¸Ð/Ñ@Ô@ˆØ�{Š{˜8Ñ$Ô$Ð$rB   c             ƒ   ó  K  — |                       d¬¦  «        ƒ d{V —†}|sdS |p|                      d¬¦  «        }t          t          t          t
          f         t          j        |                     |¦  «        ¦  «        ¦  «        S )z<Like read(), but assumes that body parts contains JSON data.TrÎ   Nrl   rý   )	rÍ   rÿ   r   r
   rn   r   ÚjsonÚloadsrÏ   r   s      rC   r  zBodyPartReader.jsonÚ  s�   è è € à—Y’Y d�YÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ˆØð 	Ø�4ØÐ@˜t×/Ò/¸Ð/Ñ@Ô@ˆÝ•D��c˜”N¥D¤J¨t¯{ª{¸8Ñ/DÔ/DÑ$EÔ$EÑFÔFÐFrB   c             ƒ   ó2  K  — |                       d¬¦  «        ƒ d{V —†}|sg S |�|}n|                      d¬¦  «        }	 |                     ¦   «                              |¦  «        }n # t          $ r t          d|z  ¦  «        ‚w xY wt          |d|¬¦  «        S )zFLike read(), but assumes that body parts contain form urlencoded data.TrÎ   Nrl   rý   z'data cannot be decoded with %s encoding)Úkeep_blank_valuesr€   )rÍ   rÿ   rö   rÏ   ry   rÞ   r   )r˜   r€   rÕ   Úreal_encodingÚdecoded_datas        rC   ÚformzBodyPartReader.formâ  sÓ   è è € à—Y’Y d�YÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ˆØð 	ØˆIØÐØ$ˆMˆMà ×,Ò,°WÐ,Ñ=Ô=ˆMð	XØŸ;š;™=œ=×/Ò/°Ñ>Ô>ˆLˆLøÝ!ð 	Xð 	Xð 	XÝÐFÈÑVÑWÔWÐWð	Xøøøõ ØØ"Ø"ð
ñ 
ô 
ð 	
s   ¿'A' Á'Bc                 ó   — | j         S )z<Returns True if the boundary was reached or False otherwise.©r¾   r›   s    rC   r¨   zBodyPartReader.at_eofö  ó
   € àŒ|ÐrB   rÕ   c              ƒ   ó°   K  — t           | j        v r|                      |¦  «        }| j        s)t          | j        v r|                      |¦  «        ƒ d{V —†S |S )z�Decodes data.

        Decoding is done according the specified Content-Encoding
        or Content-Transfer-Encoding headers value.
        N)r   rµ   Ú_decode_content_transferr¿   r   Ú_decode_content)r˜   rÕ   s     rC   rÏ   zBodyPartReader.decodeú  sk   è è € õ %¨¬Ð4Ð4Ø×0Ò0°Ñ6Ô6ˆDàÔ!ð 	4Õ&6¸$¼,Ð&FÐ&FØ×-Ò-¨dÑ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ØˆrB   c              ƒ   ó  K  — | j                              t          d¦  «                             ¦   «         }|dk    r|S |dv r1t	          |d¬¦  «                             || j        ¬¦  «        ƒ d {V —†S t          d|› �¦  «        ‚)Nrc   Úidentity>   ÚgzipÚdeflateT)r€   Úsuppress_deflate_header)Ú
max_lengthúunknown content encoding: )rµ   rÀ   r   rv   r   Ú
decompressrÈ   ÚRuntimeError©r˜   rÕ   r€   s      rC   r  zBodyPartReader._decode_content  s·   è è € Ø”<×#Ò#Õ$4°bÑ9Ô9×?Ò?ÑAÔAˆØ�zÒ!Ð!ØˆKØÐ*Ð*Ð*Ý)Ø!Ø(,ðñ ô ÷ Šj˜¨$Ô*CˆjÑDÔDðEð Eð Eð Eð Eð Eð Eõ
 ÐB¸ÐBÐBÑCÔCÐCrB   c                 óþ   — | j                              t          d¦  «                             ¦   «         }|dk    rt	          j        |¦  «        S |dk    rt          j        |¦  «        S |dv r|S t          d|› �¦  «        ‚)Nrc   rØ   úquoted-printable)ÚbinaryÚ8bitÚ7bitú#unknown content transfer encoding: )	rµ   rÀ   r   rv   rØ   Ú	b64decodeÚbinasciiÚa2b_qpr  r  s      rC   r  z'BodyPartReader._decode_content_transfer  s†   € Ø”<×#Ò#Õ$=¸rÑBÔB×HÒHÑJÔJˆà�xÒÐÝÔ# DÑ)Ô)Ð)ØÐ+Ò+Ð+Ý”? 4Ñ(Ô(Ð(ØÐ3Ð3Ð3ØˆKåÐOÀXÐOÐOÑPÔPÐPrB   rþ   c                 ó¤   — | j                              t          d¦  «        }t          |¦  «        }|j                             d| j        p|¦  «        S )z>Returns charset parameter from Content-Type header or default.rc   Úcharset)rµ   rÀ   r    r#   Ú
parametersr½   )r˜   rþ   ÚctypeÚmimetypes       rC   rÿ   zBodyPartReader.get_charset  sG   € à”× Ò ¥¨rÑ2Ô2ˆÝ! %Ñ(Ô(ˆØÔ"×&Ò& y°$Ô2GÐ2RÈ7ÑSÔSÐSrB   c                 ó€   — t          | j                             t          ¦  «        ¦  «        \  }}t	          |d¦  «        S )z|Returns name specified in Content-Disposition header.

        If the header is missing or malformed, returns None.
        r…   ©r9   rµ   rÀ   r   r:   ©r˜   r�   r|   s      rC   r…   zBodyPartReader.name%  s6   € õ .¨d¬l×.>Ò.>Õ?RÑ.SÔ.SÑTÔT‰	ˆˆ6Ý+¨F°FÑ;Ô;Ð;rB   c                 ó€   — t          | j                             t          ¦  «        ¦  «        \  }}t	          |d¦  «        S )zReturns filename specified in Content-Disposition header.

        Returns None if the header is missing or malformed.
        r„   r(  r)  s      rC   r„   zBodyPartReader.filename.  s6   € õ .¨d¬l×.>Ò.>Õ?RÑ.SÔ.SÑTÔT‰	ˆˆ6Ý+¨F°JÑ?Ô?Ð?rB   r­   )&r>   r?   r@   r®   rÔ   r   Úbytesr.   rn   r   rÁ   r™   r1   rœ   r¤   r    rL   rÍ   rÓ   rÛ   rÜ   rÝ   rª   re   r
   r   r  r   r   r  r¨   rÏ   r  r  rÿ   r$   r…   r„   rA   rB   rC   r3   r3     s’  € € € € € Ø0Ð0à€Jð Ø)-Ø#>ð8ð 8ð 8àð8ð )ð8ð ð	8ð ð8ð " #œð8ð !ð8ð 
ð8ð 8ð 8ð 8ð6˜ð  ð ð ð ð ð ð ð ð ð ð˜H UœOð ð ð ð ð ,1ð ð ð  Dð °Uð ð ð ð ð  ,6ð *ð * Sð *¸%ð *ð *ð *ð *ðX°#ð ¸%ð ð ð ð ð+°#ð +¸%ð +ð +ð +ð +ðZ ð ð ð ð ð:3ð 3ð 3ð 3ð 7;ð %ð %ð % h¨s¤mð %¸sð %ð %ð %ð %ð 7;ð Gð Gð G h¨s¤mð G¸xÈÈSÐRUÈXÌÔ?Wð Gð Gð Gð Gð 7;ð 
ð 
ð 
 h¨s¤mð 
¸tÀEÈ#ÈsÈ(ÄOÔ?Tð 
ð 
ð 
ð 
ð(˜ð ð ð ð ð ð ¨5ð ð ð ð ð
D¨%ð 
D°Eð 
Dð 
Dð 
Dð 
Dð
Q¨Uð 
Q°uð 
Qð 
Qð 
Qð 
QðT 3ð T¨3ð Tð Tð Tð Tð ð<�h˜s”mð <ð <ð <ñ „Uð<ð ð@˜( 3œ-ð @ð @ð @ñ „Uð@ð @ð @rB   )Úorderc                   óx   ‡ — e Zd ZU eed<   dedededdfˆ fd„Zdd
ededefd„Zdd
edede	fd„Z
deddfd„Zˆ xZS )ÚBodyPartReaderPayloadrƒ   r   ÚargsÚkwargsrG   Nc                 ó¬   •—  t          ¦   «         j        |g|¢R i |¤Ž i }|j        �
|j        |d<   |j        �
|j        |d<   |r | j        di |¤Ž d S d S )Nr…   r„   Ú
attachmentT)r2  T)Úsuperr™   r…   r„   Úset_content_disposition)r˜   r   r/  r0  r|   Ú	__class__s        €rC   r™   zBodyPartReaderPayload.__init__=  sŠ   ø€ Ø�‰ŒÔ˜Ð0 Ð0Ð0Ð0¨Ð0Ð0Ð0à!#ˆØŒ:Ð!Ø"œZˆF�6‰NØŒ>Ð%Ø!&¤ˆF�:Ñàð 	GØ(ˆDÔ(ÐFÐF¸vÐFÐFÐFÐFÐFð	Gð 	GrB   rl   rm   r€   Úerrorsc                 ó    — t          d¦  «        ‚)NzUnable to decode.©Ú	TypeError©r˜   r€   r6  s      rC   rÏ   zBodyPartReaderPayload.decodeI  s   € ÝÐ+Ñ,Ô,Ð,rB   c              ƒ   ó$   K  — t          d¦  «        ‚)aR  Raises TypeError as body parts should be consumed via write().

        This is intentional: BodyPartReader payloads are designed for streaming
        large data (potentially gigabytes) and must be consumed only once via
        the write() method to avoid memory exhaustion. They cannot be buffered
        in memory for reuse.
        z:Unable to read body part as bytes. Use write() to consume.r8  r:  s      rC   Úas_byteszBodyPartReaderPayload.as_bytesL  s   è è € õ ÐTÑUÔUÐUrB   Úwriterc              ƒ   óü   K  — | j         }|                     d¬¦  «        ƒ d {V —†}|rT|                     |                     |¦  «        ƒ d {V —†¦  «        ƒ d {V —† |                     d¬¦  «        ƒ d {V —†}|°Rd S d S )Ni   )rÖ   )rƒ   rÓ   ÚwriterÏ   )r˜   r=  Úfieldrß   s       rC   r?  zBodyPartReaderPayload.writeV  sÅ   è è € Ø”ˆØ×&Ò&¨EÐ&Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2ˆØð 	7Ø—,’, U§\¢\°%Ñ%8Ô%8Ð8Ð8Ð8Ð8Ð8Ð8Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø×*Ò*°Ð*Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6ˆEð ð 	7ð 	7ð 	7ð 	7ð 	7rB   ©rl   rm   )r>   r?   r@   r3   Ú__annotations__r   r™   rn   rÏ   r+  r<  r   r?  Ú__classcell__©r5  s   @rC   r.  r.  8  sù   ø€ € € € € € àÐÐÑð
G˜nð 
G°Sð 
GÀCð 
GÈDð 
Gð 
Gð 
Gð 
Gð 
Gð 
Gð-ð -˜sð -°cð -Èð -ð -ð -ð -ðVð V sð V¸cð VÐQVð Vð Vð Vð Vð7Ð"6ð 7¸4ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7rB   r.  c                   ón  — e Zd ZU dZeZdZeed                   e	d<   e
Zdeeef         deddfd„Zdedefd	„Zdeed e
f                  fd
„Zedddefd„¦   «         Zdefd„Zdeed e
f                  fd„Zdd„Zded e
f         fd„Zddded e
f         fd„Zdefd„Zdefd„Zdd„Zdd„Z dd„Z!dd„Z"dS )r5   zMultipart body reader.NÚmultipart_reader_clsrµ   r§   rG   c                 óŒ  — t          |t                   ¦  «        | _        | j        j        dk    s
J d¦   «         ‚d| j        j        vrt          d|t                   z  ¦  «        ‚|| _        d|                      ¦   «         z                        ¦   «         | _	        || _
        d | _        d | _        d| _        d| _        g | _        d S )NÚ	multipartz!multipart/* content type expectedr´   z$boundary missed for Content-Type: %sú--FT)r#   r    Ú	_mimetypeÚtyper$  rÞ   rµ   Ú_get_boundaryÚencoder¹   r¼   r½   Ú
_last_partr¾   Ú_at_bofrÄ   )r˜   rµ   r§   s      rC   r™   zMultipartReader.__init__i  sÀ   € Ý'¨µÔ(=Ñ>Ô>ˆŒØŒ~Ô" kÒ1Ð1Ð1Ð3VÑ1Ô1Ð1Ø˜Tœ^Ô6Ð6Ð6ÝØ6¸ÅÔ9NÑNñô ð ð ˆŒØ ×!3Ò!3Ñ!5Ô!5Ñ5×=Ò=Ñ?Ô?ˆŒØˆŒØ/3ˆÔØNRˆŒØˆŒØˆŒØ$&ˆŒˆˆrB   r˜   c                 ó   — | S rK   rA   r›   s    rC   rœ   zMultipartReader.__aiter__z  r�   rB   c              ƒ   óP   K  — |                       ¦   «         ƒ d {V —†}|€t          ‚|S rK   rŸ   r¢   s     rC   r¤   zMultipartReader.__anext__}  r¥   rB   Úresponser;   c                 óZ   — |                       | | |j        |j        ¦  «        ¦  «        }|S )z‚Constructs reader instance from HTTP response.

        :param response: :class:`~aiohttp.client.ClientResponse` instance
        )Úresponse_wrapper_clsrµ   r§   )ÚclsrR  Úobjs      rC   Úfrom_responsezMultipartReader.from_response…  s7   € ð ×&Ò&Ø�c�c˜(Ô*¨HÔ,<Ñ=Ô=ñ
ô 
ˆð ˆ
rB   c                 ó   — | j         S )z@Returns True if the final boundary was reached, false otherwise.r
  r›   s    rC   r¨   zMultipartReader.at_eof“  r  rB   c              ƒ   ó   K  — | j         rdS |                      ¦   «         ƒ d{V —† | j        r"|                      ¦   «         ƒ d{V —† d| _        n|                      ¦   «         ƒ d{V —† | j         rdS |                      ¦   «         ƒ d{V —†}| j        €ï| j        j        dk    rßt          |t          ¦  «        rÊt          |j                             t          ¦  «        ¦  «        \  }}|                     d¦  «        dk    r‚|                     d¦  «        ƒ d{V —†}t!          |¦  «        dk    rt#          d¦  «        ‚|                     ¦   «                              ¦   «         | _        |                      ¦   «         ƒ d{V —†}|| _        | j        S )	z#Emits the next multipart body part.NFr¸   r…   Ú	_charset_é    é   zInvalid default charset)r¾   Ú_maybe_release_last_partrO  Ú_read_until_first_boundaryÚ_read_boundaryÚfetch_next_partrN  rJ  r±   Ú
isinstancer3   r9   rµ   rÀ   r   rÓ   rº   r  rw   rÏ   r½   )r˜   r£   r�   r|   r#  s        rC   r    zMultipartReader.next—  sÂ  è è € ð
 Œ<ð 	Ø�4Ø×+Ò+Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ØŒ<ð 	(Ø×1Ò1Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ø ˆDŒLˆLà×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØŒ<ð 	Ø�4à×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ˆð ŒOÐ#Ø”Ô&¨+Ò5Ð5Ý˜4¥Ñ0Ô0ð 6õ 2°$´,×2BÒ2BÕCVÑ2WÔ2WÑXÔX‰IˆAˆvØ�zŠz˜&Ñ!Ô! [Ò0Ð0ð !%§¢°Ñ 3Ô 3Ð3Ð3Ð3Ð3Ð3Ð3�Ý�w‘<”< "Ò$Ð$Ý&Ð'@ÑAÔAÐAØ(/¯ª©¬×(>Ò(>Ñ(@Ô(@�Ô%Ø!×1Ò1Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3�ØˆŒØŒÐrB   c              ƒ   óš   K  — | j         sA|                      ¦   «         ƒ d{V —†}|€dS |                     ¦   «         ƒ d{V —† | j         ¯?dS dS )z=Reads all the body parts to the void till the final boundary.N)r¾   r    rª   r«   s     rC   rª   zMultipartReader.releaseº  sy   è è € à”,ð 	!ØŸš™œÐ$Ð$Ð$Ð$Ð$Ð$ˆDØˆ|Ø�Ø—,’,‘.”.Ð Ð Ð Ð Ð Ð Ð ð	 ”,ð 	!ð 	!ð 	!ð 	!ð 	!rB   c              ƒ   ód   K  — |                       ¦   «         ƒ d{V —†}|                      |¦  «        S )z"Returns the next body part reader.N)Ú_read_headersÚ_get_part_reader)r˜   rµ   s     rC   r`  zMultipartReader.fetch_next_partÂ  s?   è è € ð ×*Ò*Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,ˆØ×$Ò$ WÑ-Ô-Ð-rB   r¶   c                 óR  — |                      t          d¦  «        }t          |¦  «        }|j        dk    r@| j        € t          | ¦  «        || j        ¦  «        S |                      || j        ¦  «        S |                      | j        || j        | j        j	        | j
        ¬¦  «        S )zšDispatches the response by the `Content-Type` header.

        Returns a suitable reader instance.

        :param dict headers: Response headers
        rc   rH  N)r±   r²   )rÀ   r    r#   rK  rF  r¼   Úpart_reader_clsr¹   rJ  r±   r½   )r˜   rµ   r%  r&  s       rC   re  z MultipartReader._get_part_readerÉ  s¤   € ð —’�L¨"Ñ-Ô-ˆÝ! %Ñ(Ô(ˆàŒ=˜KÒ'Ð'ØÔ(Ð0Ø!•t˜D‘z”z '¨4¬=Ñ9Ô9Ð9Ø×,Ò,¨W°d´mÑDÔDÐDà×'Ò'Ø”ØØ”ØœÔ.Ø $Ô 5ð (ñ ô ð rB   c                 ót   — | j         j        d         }t          |¦  «        dk    rt          d|z  ¦  «        ‚|S )Nr´   éF   z&boundary %r is too long (70 chars max))rJ  r$  rº   rÞ   )r˜   r´   s     rC   rL  zMultipartReader._get_boundaryã  s;   € Ø”>Ô,¨ZÔ8ˆÝˆx‰=Œ=˜2ÒÐÝÐEÈÑPÑQÔQÐQàˆrB   c              ƒ   ó„   K  — | j         r| j                              ¦   «         S | j                             ¦   «         ƒ d {V —†S rK   )rÄ   ru   r¼   rÝ   r›   s    rC   Ú	_readlinezMultipartReader._readlineê  sJ   è è € ØŒ<ð 	&Ø”<×#Ò#Ñ%Ô%Ð%Ø”]×+Ò+Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-rB   c              ƒ   óè   K  — 	 |                       ¦   «         ƒ d {V —†}|dk    rt          d| j        z  ¦  «        ‚|                     ¦   «         }|| j        k    rd S || j        dz   k    r	d| _        d S Œp)NTrB   z#Could not find starting boundary %rró   )rk  rÞ   r¹   rö   r¾   ©r˜   rß   s     rC   r^  z*MultipartReader._read_until_first_boundaryï  s•   è è € ð	ØŸ.š.Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*ˆEØ˜Š|ˆ|Ý Ø9¸T¼^ÑLñô ð ð —L’L‘N”NˆEØ˜œÒ&Ð&Ø�Ø˜$œ.¨5Ñ0Ò0Ð0Ø#�”Ø�ð	rB   c              ƒ   óÎ  K  — |                       ¦   «         ƒ d {V —†                     ¦   «         }|| j        k    rd S || j        dz   k    rƒd| _        |                       ¦   «         ƒ d {V —†}|                       ¦   «         ƒ d {V —†}|d d…         dk    r| j                             |¦  «         d S | j                             ||g¦  «         d S t          d|›d| j        ›�¦  «        ‚)Nró   TrV   zInvalid boundary z, expected )rk  rö   r¹   r¾   rÄ   r�   rÒ   rÞ   )r˜   rß   Úepiloguerú   s       rC   r_  zMultipartReader._read_boundaryý  s  è è € Ø—~’~Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'×/Ò/Ñ1Ô1ˆØ�D”NÒ"Ð"ØˆDØ�d”n uÑ,Ò,Ð,ØˆDŒLØ!Ÿ^š^Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-ˆHØ"ŸnšnÑ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.ˆIð ˜˜!˜Œ} Ò%Ð%Ø”×#Ò# IÑ.Ô.Ð.Ð.Ð.ð
 ”×#Ò# Y°Ð$9Ñ:Ô:Ð:Ð:Ð:åÐW°ÐWÐWÀTÄ^ÐWÐWÑXÔXÐXrB   c              ƒ   óö   K  — g }	 | j                              ¦   «         ƒ d {V —†}|                     d¦  «        }|                     |¦  «         |snŒMt	          ¦   «         }|                     |¦  «        \  }}|S )NTrÚ   )r¼   rÝ   rö   r�   r%   Úparse_headers)r˜   Úlinesrß   Úparserrµ   Úraw_headerss         rC   rd  zMultipartReader._read_headers  s�   è è € Øˆð	Øœ-×0Ò0Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2ˆEØ—L’L Ñ)Ô)ˆEØ�LŠL˜ÑÔÐØð Øð	õ ‘”ˆØ%×3Ò3°EÑ:Ô:Ñˆ�ØˆrB   c              ƒ   óâ   K  — | j         �e| j                              ¦   «         s| j                              ¦   «         ƒ d{V —† | j                             | j         j        ¦  «         d| _         dS dS )z8Ensures that the last read body part is read completely.N)rN  r¨   rª   rÄ   rÒ   r›   s    rC   r]  z(MultipartReader._maybe_release_last_part   sx   è è € àŒ?Ð&Ø”?×)Ò)Ñ+Ô+ð 0Ø”o×-Ò-Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ØŒL×Ò ¤Ô 7Ñ8Ô8Ð8Ø"ˆDŒOˆOˆOð	 'Ð&rB   r­   )rG   r¶   )#r>   r?   r@   r®   r”   rT  rF  r   r   rB  r3   rg  r   rn   r.   r™   r1   rœ   r   r¤   ÚclassmethodrW  rL   r¨   r    rª   r`  re  rL  r+  rk  r^  r_  rd  r]  rA   rB   rC   r5   r5   ^  s8  € € € € € € Ø Ð ð 4Ðð ?CÐ˜( 4Ð(9Ô#:Ô;ÐBÐBÑBà$€Oð' ¨¨S¨Ô 1ð '¸Lð 'ÈTð 'ð 'ð 'ð 'ð"˜ð  ð ð ð ð ðà	�%Ð)¨>Ð9Ô:Ô	;ðð ð ð ð ðà"ðð 
"ðð ð ñ „[ðð˜ð ð ð ð ð!à	�%Ð)¨>Ð9Ô:Ô	;ð!ð !ð !ð !ðF!ð !ð !ð !ð.à	Ð  .Ð0Ô	1ð.ð .ð .ð .ðà(ðð 
Ð  .Ð0Ô	1ðð ð ð ð4˜sð ð ð ð ð. ð .ð .ð .ð .ð
ð ð ð ðYð Yð Yð Yð.
ð 
ð 
ð 
ð#ð #ð #ð #ð #ð #rB   r5   c                   ó   ‡ — e Zd ZU dZded<   dZd(dedee         ddfˆ fd	„Zd)d
„Z	dee
e                  dee         dee         ddfd„Zdee         fd„Zdefd„Zdefd„Z ej        d¦  «        Z ej        d¦  «        Zedefd„¦   «         Zedefd„¦   «         Zd*dedeeeef                  defd„Zdedefd„Z 	 d*dedeeeef                  defd„Z!	 d*de"e#e$eef                  eeef         f         deeeef                  defd„Z%edee         fd„¦   «         Z&d+d ed!edefd"„Z'd+d ed!ede(fd#„Z)	 d,d$e*d%eddfd&„Z+d-d'„Z,ˆ xZ-S ).r6   zMultipart body writer.Nrƒ   Tr°   r±   r´   rG   c                 ó8  •— |�|nt          j        ¦   «         j        }	 |                     d¦  «        | _        n# t
          $ r t          d¦  «        d ‚w xY wd|› d| j        › �}t          ¦   «          	                    d |¬¦  «         g | _
        |dk    | _        d S )NÚasciiz(boundary should contain ASCII only charsz
multipart/z; boundary=)Úcontent_typer¸   )ÚuuidÚuuid4ÚhexrM  r¹   ÚUnicodeEncodeErrorrÞ   Ú_boundary_valuer3  r™   Ú_partsr¿   )r˜   r±   r´   r%  r5  s       €rC   r™   zMultipartWriter.__init__3  s´   ø€ Ø'Ð3�8�8½¼¹¼Ô9Iˆð	SØ%Ÿ_š_¨WÑ5Ô5ˆDŒNˆNøÝ!ð 	Sð 	Sð 	SÝÐGÑHÔHÈdÐRð	SøøøàG˜WÐGÐG°Ô1EÐGÐGˆå‰Œ×Ò˜¨EÐÑ2Ô2Ð2à#%ˆŒØ$¨Ò3ˆÔÐÐs	   Ÿ: ºAc                 ó   — | S rK   rA   r›   s    rC   Ú	__enter__zMultipartWriter.__enter__E  r�   rB   Úexc_typeÚexc_valÚexc_tbc                 ó   — d S rK   rA   )r˜   rƒ  r„  r…  s       rC   Ú__exit__zMultipartWriter.__exit__H  s	   € ð 	ˆrB   c                 ó*   — t          | j        ¦  «        S rK   )Úiterr€  r›   s    rC   Ú__iter__zMultipartWriter.__iter__P  s   € Ý�D”KÑ Ô Ð rB   c                 ó*   — t          | j        ¦  «        S rK   )rº   r€  r›   s    rC   Ú__len__zMultipartWriter.__len__S  s   € Ý�4”;ÑÔÐrB   c                 ó   — dS )NTrA   r›   s    rC   Ú__bool__zMultipartWriter.__bool__V  s   € ØˆtrB   s   \A[!#$%&'*+\-.^_`|~\w]+\Zs   [\x00-\x08\x0A-\x1F\x7F]c                 óN  — | j         }t          j        | j        |¦  «        r|                     d¦  «        S t          j        | j        |¦  «        rt          d¦  «        ‚|                     dd¦  «        }|                     dd¦  «        }d|                     d¦  «        z   dz   S )zzWrap boundary parameter value in quotes, if necessary.

        Reads self.boundary and returns a unicode string.
        ry  z*boundary value contains invalid charactersó   \s   \\ó   "s   \"rR   )	r¹   rg   ÚmatchÚ_valid_tchar_regexrÏ   ÚsearchÚ_invalid_qdtext_char_regexrÞ   Úreplace)r˜   r   Úquoted_value_contents      rC   r  zMultipartWriter._boundary_value\  s¦   € ð& ”ˆÝŒ8�DÔ+¨UÑ3Ô3ð 	)Ø—<’< Ñ(Ô(Ð(åŒ9�TÔ4°eÑ<Ô<ð 	KÝÐIÑJÔJÐJð  %Ÿ}š}¨U°GÑ<Ô<ÐØ3×;Ò;¸DÀ&ÑIÔIÐàÐ)×0Ò0°Ñ9Ô9Ñ9¸CÑ?Ð?rB   c                 ó6   — | j                              d¦  «        S )Nry  )r¹   rÏ   r›   s    rC   r´   zMultipartWriter.boundary|  s   € àŒ~×$Ò$ WÑ-Ô-Ð-rB   rV  rµ   c                 ó8  — |€t          ¦   «         }t          |t          ¦  «        r/|j                             |¦  «         |                      |¦  «        S 	 t          ||¬¦  «        }|                      |¦  «        S # t          $ r t          d|z  ¦  «        ‚w xY w)N©rµ   zCannot create payload from %r)	r   ra  r*   rµ   ÚupdateÚappend_payloadr,   r(   r9  )r˜   rV  rµ   Úpayloads       rC   r�   zMultipartWriter.append€  s®   € Øˆ?Ý!‘m”mˆGå�c�7Ñ#Ô#ð 		4ØŒK×Ò˜wÑ'Ô'Ð'Ø×&Ò& sÑ+Ô+Ð+ð4Ý% c°7Ð;Ñ;Ô;�ð ×*Ò*¨7Ñ3Ô3Ð3øõ ð Gð Gð GÝÐ ?À#Ñ EÑFÔFÐFðGøøøs   ÁA< Á<Br�  c                 óÆ  — d}d}| j         rmt          t          t          h|j                             ¦   «         z  rJ ‚t          |j        vr.dt          | j        ¦  «        › �}| 	                    d|¬¦  «         nË|j         
                    t          d¦  «                             ¦   «         }|r|dvrt          d|› �¦  «        ‚|dk    rd}|j         
                    t          d¦  «                             ¦   «         }|d	vrt          d
|› �¦  «        ‚|dk    rd}|j        }|� |s|st          |¦  «        |j        t          <   | j                             |||f¦  «         |S )z)Adds a new body part to multipart writer.Nzsection-r¸   )r…   rc   )r  r  r  r  r  )rc   rØ   r  r  r  r  )r¿   r   r   r   rµ   Úkeysr   rº   r€  r4  rÀ   rv   r  rÖ   rn   r�   )r˜   r�  r€   Úte_encodingr…   rÖ   s         rC   rœ  zMultipartWriter.append_payload�  s�  € à"&ˆØ%)ˆØÔð 	<õ &¥~Õ7PÐQØ”/×&Ò&Ñ(Ô(ñ)ðð ð õ
 #¨'¬/Ð9Ð9Ø4¥# d¤kÑ"2Ô"2Ð4Ð4�Ø×/Ò/°À$Ð/ÑGÔGÐGøð ”×*Ò*Õ+;¸RÑ@Ô@×FÒFÑHÔHˆHØð L˜HÐ,KÐKÐKÝ"Ð#JÀÐ#JÐ#JÑKÔKÐKØ˜:Ò%Ð%Ø�ð "œ/×-Ò-Õ.GÈÑLÔL×RÒRÑTÔTˆKØÐ"NÐNÐNÝ"Ð#VÈÐ#VÐ#VÑWÔWÐWØ˜hÒ&Ð&Ø"�ð ”<ˆDØÐ¨Ð°[ÐÝ25°d±)´)�”¥Ñ/àŒ×Ò˜G X¨{Ð;Ñ<Ô<Ð<ØˆrB   c                 ój   — |€t          ¦   «         }|                      t          ||¬¦  «        ¦  «        S )zHelper to append JSON part.Nrš  )r   rœ  r'   )r˜   rV  rµ   s      rC   Úappend_jsonzMultipartWriter.append_jsonµ  s3   € ð ˆ?Ý!‘m”mˆGà×"Ò"¥;¨s¸GÐ#DÑ#DÔ#DÑEÔEÐErB   c                 ó6  — t          |t          t          f¦  «        sJ ‚|€t          ¦   «         }t          |t          ¦  «        r!t	          |                     ¦   «         ¦  «        }t          |d¬¦  «        }|                      t          ||d¬¦  «        ¦  «        S )z&Helper to append form urlencoded part.NT)Údoseqz!application/x-www-form-urlencoded)rµ   rz  )	ra  r   r   r   Úlistr�   r   rœ  r+   )r˜   rV  rµ   rÕ   s       rC   Úappend_formzMultipartWriter.append_form¾  s˜   € õ ˜#¥­'Ð2Ñ3Ô3Ð3Ð3Ð3àˆ?Ý!‘m”mˆGå�c�7Ñ#Ô#ð 	$Ý�s—y’y‘{”{Ñ#Ô#ˆCÝ˜ DÐ)Ñ)Ô)ˆà×"Ò"ÝØ˜gÐ4Wðñ ô ñ
ô 
ð 	
rB   c                 ó
  — d}| j         D ][\  }}}|j        }|s|s|€ dS |t          dt          | j        ¦  «        z   dz   |z   t          |j        ¦  «        z   dz   ¦  «        z  }Œ\|dt          | j        ¦  «        z   dz   z  }|S )zSize of the payload.r   NrV   rÙ   )r€  rÖ   rÁ   rº   r¹   Ú_binary_headers)r˜   Útotalr£   r€   r   Ú	part_sizes         rC   rÖ   zMultipartWriter.sizeÓ  sÆ   € ð ˆØ+/¬;ð 	ð 	Ñ'ˆD�(˜KØœ	ˆIØð ˜;ð ¨)Ð*;Ø�t�tà•SØÝ�d”nÑ%Ô%ñ&àñð ñõ �dÔ*Ñ+Ô+ñ	,ð
 ññô ñ ˆEˆEð 	�•S˜œÑ(Ô(Ñ(¨1Ñ,Ñ,ˆØˆrB   rl   rm   r€   r6  c                 óX   ‡ ‡‡— d                      ˆˆˆ fd„‰ j        D ¦   «         ¦  «        S )zâReturn string representation of the multipart data.

        WARNING: This method may do blocking I/O if parts contain file payloads.
        It should not be called in the event loop. Use as_bytes().decode() instead.
        rc   c              3   óœ   •K  — | ]F\  }}}d ‰j         z   dz   |j                             ‰‰¦  «        z   |                     ¦   «         z   V — ŒGdS )rI  z
N)r´   r¨  rÏ   )r‰   r£   Ú_eÚ_ter€   r6  r˜   s       €€€rC   r‹   z)MultipartWriter.decode.<locals>.<genexpr>î  s€   øè è € ð 
ð 
ñ ��b˜#ð ØŒmñàñð Ô"×)Ò)¨(°FÑ;Ô;ñ<ð �kŠk‰mŒmñ	ð
ð 
ð 
ð 
ð 
ð 
rB   )ro   r€  r:  s   ```rC   rÏ   zMultipartWriter.decodeè  sQ   øøø€ ð �wŠwð 
ð 
ð 
ð 
ð 
ð 
ð "&¤ð
ñ 
ô 
ñ 
ô 
ð 	
rB   c              ƒ   ó�  K  — g }| j         D ]†\  }}}|                     d| j        z   dz   ¦  «         |                     |j        ¦  «         |                     ||¦  «        ƒ d{V —†}|                     |¦  «         |                     d¦  «         Œ‡|                     d| j        z   dz   ¦  «         d                     |¦  «        S )z‰Return bytes representation of the multipart data.

        This method is async-safe and calls as_bytes on underlying payloads.
        ró   rÚ   Nó   --
rB   )r€  r�   r¹   r¨  r<  ro   )r˜   r€   r6  r{   r£   r­  r®  Ú
part_bytess           rC   r<  zMultipartWriter.as_bytes÷  sÛ   è è € ð
  ˆð "œ[ð 	"ð 	"‰MˆD�"�cà�LŠL˜ ¤Ñ/°'Ñ9Ñ:Ô:Ð:ð �LŠL˜Ô-Ñ.Ô.Ð.ð  $Ÿ}š}¨X°vÑ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>ˆJØ�LŠL˜Ñ$Ô$Ð$ð �LŠL˜Ñ!Ô!Ð!Ð!ð 	�Š�U˜Tœ^Ñ+¨iÑ7Ñ8Ô8Ð8à�xŠx˜‰ŒÐrB   r=  Úclose_boundaryc              ƒ   ó¾  K  — | j         D �]'\  }}}| j        r&t          |j        v sJ ‚d|j        t                   v sJ ‚|                     d| j        z   dz   ¦  «        ƒ d{V —† |                     |j        ¦  «        ƒ d{V —† |s|rst          |¦  «        }|r|                     |¦  «         |r| 	                    |¦  «         |                     |¦  «        ƒ d{V —† | 
                    ¦   «         ƒ d{V —† n|                     |¦  «        ƒ d{V —† |                     d¦  «        ƒ d{V —† �Œ)|r(|                     d| j        z   dz   ¦  «        ƒ d{V —† dS dS )zWrite body.zname=ró   rÚ   Nr°  )r€  r¿   r   rµ   r?  r¹   r¨  ÚMultipartPayloadWriterÚenable_compressionÚenable_encodingÚ	write_eof)r˜   r=  r²  r£   r€   r   Úws          rC   r?  zMultipartWriter.write  sÞ  è è € ð ,0¬;ð 	(ñ 	(Ñ'ˆD�(˜KØÔ!ð Då*¨d¬lÐ:Ð:Ð:Ð:Ø $¤,Õ/BÔ"CÐCÐCÐCÐCà—,’,˜u t¤~Ñ5¸Ñ?Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ø—,’,˜tÔ3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4àð 	)˜;ð 	)Ý*¨6Ñ2Ô2�Øð 3Ø×(Ò(¨Ñ2Ô2Ð2Øð 3Ø×%Ò% kÑ2Ô2Ð2Ø—j’j ‘m”mÐ#Ð#Ð#Ð#Ð#Ð#Ð#Ø—k’k‘m”mÐ#Ð#Ð#Ð#Ð#Ð#Ð#Ð#à—j’j Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(à—,’,˜wÑ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ñ'àð 	CØ—,’,˜u t¤~Ñ5¸	ÑAÑBÔBÐBÐBÐBÐBÐBÐBÐBÐBÐBð	Cð 	CrB   c              ƒ   ó  K  — | j         rdS d| _         t          | j        ¦  «        D ]b\  }\  }}}|j        sR|j        sK	 |                     ¦   «         ƒ d{V —† Œ3# t          $ r"}t          j        d||d¬¦  «         Y d}~ŒZd}~ww xY wŒcdS )a  
        Close all part payloads that need explicit closing.

        IMPORTANT: This method must not await anything that might not finish
        immediately, as it may be called during cleanup/cancellation. Schedule
        any long-running operations without awaiting them.
        NTz%Failed to close multipart part %d: %s)Úexc_info)	Ú	_consumedrŽ   r€  Ú	autocloseÚconsumedÚcloseÚ	Exceptionr&   Úerror)r˜   rð   r£   r�   Úexcs        rC   r¾  zMultipartWriter.close/  sæ   è è € ð Œ>ð 	ØˆFØˆŒõ "+¨4¬;Ñ!7Ô!7ð 	ð 	ÑˆC‘�$˜˜1Ø”>ð ¨$¬-ð ðØŸ*š*™,œ,Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&øÝ ð ð ð Ý#Ô)Ø?ÀÀcÐTXðñ ô ð ð ð ð ð ð øøøøðøøøøð		ð 	s   ¿AÁ
BÁ$BÂB)r°   N)rG   r6   rK   rA  )Tr­   ).r>   r?   r@   r®   rB  Ú
_autoclosern   r   r™   r‚  r   ÚBaseExceptionr   r‡  r   Ú_PartrŠ  rÁ   rŒ  rL   rŽ  rg   Úcompiler“  r•  Úpropertyr  r´   r   r   r*   r�   rœ  r¢  r   r   r   r¦  rÖ   rÏ   r+  r<  r   r?  r¾  rC  rD  s   @rC   r6   r6   ,  s“  ø€ € € € € € Ø Ð à€L€L�Là€Jð4ð 4 ð 4¸À#¼ð 4ÐRVð 4ð 4ð 4ð 4ð 4ð 4ð$ð ð ð ðà˜4 Ô.Ô/ðð ˜-Ô(ðð ˜Ô'ð	ð
 
ðð ð ð ð!˜( 5œ/ð !ð !ð !ð !ð ˜ð  ð  ð  ð  ð˜$ð ð ð ð ð $˜œÐ$AÑBÔBÐØ!+ ¤Ð,HÑ!IÔ!IÐàð@ ð @ð @ð @ñ „Xð@ð> ð.˜#ð .ð .ð .ñ „Xð.ð4ð 4˜#ð 4¨°¸¸c¸Ô1BÔ(Cð 4Èwð 4ð 4ð 4ð 4ð$ gð $°'ð $ð $ð $ð $ðN @DðFð FØðFØ!)¨'°#°s°(Ô*;Ô!<ðFà	ðFð Fð Fð Fð 04ð
ð 
à�8˜E # s (œOÔ,¨g°c¸3°hÔ.?Ð?Ô@ð
ð ˜' # s (Ô+Ô,ð
ð 
ð	
ð 
ð 
ð 
ð* ð�h˜s”mð ð ð ñ „Xðð(
ð 
˜sð 
°cð 
Èð 
ð 
ð 
ð 
ðð  sð ¸cð ÐQVð ð ð ð ð8 DHðCð CØ*ðCØ<@ðCà	ðCð Cð Cð Cð:ð ð ð ð ð ð ð rB   r6   c                   ój   — e Zd Zdeddfd„Zdeddfd„Z	 ddedee         ddfd	„Z	dd
„Z
deddfd„ZdS )r´  r=  rG   Nc                 ó>   — || _         d | _        d | _        d | _        d S rK   )Ú_writerÚ	_encodingÚ	_compressÚ_encoding_buffer)r˜   r=  s     rC   r™   zMultipartPayloadWriter.__init__J  s%   € ØˆŒØ(,ˆŒØ37ˆŒØ59ˆÔÐÐrB   r€   c                 óh   — |dk    r|| _         t          ¦   «         | _        d S |dk    r	d| _         d S d S )NrØ   r  )rÊ  rÑ   rÌ  )r˜   r€   s     rC   r¶  z&MultipartPayloadWriter.enable_encodingP  sE   € Ø�xÒÐØ%ˆDŒNÝ$-¡K¤KˆDÔ!Ð!Ð!ØÐ+Ò+Ð+Ø/ˆDŒNˆNˆNð ,Ð+rB   r  Ústrategyc                 ó4   — t          |d|¬¦  «        | _        d S )NT)r€   r  rÎ  )r   rË  )r˜   r€   rÎ  s      rC   rµ  z)MultipartPayloadWriter.enable_compressionW  s'   € õ (ØØ$(Øð
ñ 
ô 
ˆŒˆˆrB   c              ƒ   ó,  K  — | j         �=| j                              ¦   «         }|r"d | _         |                      |¦  «        ƒ d {V —† | j        dk    r@| j        r;| j                             t          j        | j        ¦  «        ¦  «        ƒ d {V —† d S d S d S )NrØ   )rË  Úflushr?  rÊ  rÌ  rÉ  rØ   Ú	b64encoderm  s     rC   r·  z MultipartPayloadWriter.write_eof`  s½   è è € ØŒ>Ð%Ø”N×(Ò(Ñ*Ô*ˆEØð (Ø!%�”Ø—j’j Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'àŒ>˜XÒ%Ð%ØÔ$ð RØ”l×(Ò(­Ô)9¸$Ô:OÑ)PÔ)PÑQÔQÐQÐQÐQÐQÐQÐQÐQÐQÐQð &Ð%ðRð RrB   rß   c              ƒ   ót  K  — | j         �&|r$| j                              |¦  «        ƒ d {V —†}|sd S | j        dk    rž| j        }|€J ‚|                     |¦  «         |rxt          t          |¦  «        d¦  «        \  }}|d |dz  …         ||dz  d …         c}| _        |r8t          j        |¦  «        }| j	         
                    |¦  «        ƒ d {V —† d S d S d S | j        dk    r4| j	         
                    t          j        |¦  «        ¦  «        ƒ d {V —† d S | j	         
                    |¦  «        ƒ d {V —† d S )NrØ   r/   r  )rË  ÚcompressrÊ  rÌ  rÒ   Údivmodrº   rØ   rÒ  rÉ  r?  r   Úb2a_qp)r˜   rß   ÚbufÚdivÚmodÚ	enc_chunkÚb64chunks          rC   r?  zMultipartPayloadWriter.writek  s’  è è € ØŒ>Ð%Øð Ø"œn×5Ò5°eÑ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<�Øð Ø�FàŒ>˜XÒ%Ð%ØÔ'ˆCØ�?�?�?Ø�JŠJ�uÑÔÐàð 7Ý!¥# c¡(¤(¨AÑ.Ô.‘��SØ47¸	¸#À¹'¸	´NÀCÈÈaÉÈ	È	ÄNÐ0�	˜4Ô0Øð 7Ý%Ô/°	Ñ:Ô:�HØœ,×,Ò,¨XÑ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ð7ð 7ð7ð 7ð Œ^Ð1Ò1Ð1Ø”,×$Ò$¥X¤_°UÑ%;Ô%;Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<à”,×$Ò$ UÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+rB   )r  Nr­   )r>   r?   r@   r   r™   rn   r¶  r   rÁ   rµ  r·  r+  r?  rA   rB   rC   r´  r´  I  sÏ   € € € € € ð:Ð3ð :¸ð :ð :ð :ð :ð0¨ð 0°ð 0ð 0ð 0ð 0ð DHð
ð 
Øð
Ø3;¸C´=ð
à	ð
ð 
ð 
ð 
ð	Rð 	Rð 	Rð 	Rð, ð ,¨4ð ,ð ,ð ,ð ,ð ,ð ,rB   r´  )r„   )TrØ   r   r  rg   Úsysr{  rs   Úcollectionsr   Úcollections.abcr   r   Útypesr   Útypingr   r   r	   r
   r   r   r   r   r   r   r   Úurllib.parser   r   r   Ú	multidictr   r   Úabcr   Úcompression_utilsr   r   r   Úhdrsr   r   r   r   r    Úhelpersr!   r"   r#   r$   Úhttpr%   Úlogr&   r�  r'   r(   r)   r*   r+   r,   r-   Ústreamsr.   Úversion_infor1   r2   Ú__all__Úclient_reqrepr;   ÚRuntimeWarningr7   r8   rn   r9   r:   r”   r3   Ú	try_firstr.  r5   rÄ  r6   r´  rA   rB   rC   ú<module>rï     s  ðØ €€€Ø €€€Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 7Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3à %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ð ð ð 8Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð "Ð !Ð !Ð !Ð !Ð !àÔ�wÒÐØÐÐÐÐÐÐàÐÐÐÐÐàˆ7�6Ð!1Ð2Ñ2Ô2€Dð€ð ð .Ø-Ð-Ð-Ð-Ð-Ð-ð	ð 	ð 	ð 	ð 	 .ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	 ñ 	ô 	ð 	ðd$Ø�SŒMðd$à
ˆ8�CŒ=˜$˜s C˜xœ.Ð(Ô)ðd$ð d$ð d$ð d$ðP ,6ðð Ø�C˜�HÔðØ%(ðàˆc„]ðð ð ð ðB,"ð ,"ð ,"ð ,"ð ,"ñ ,"ô ,"ð ,"ð^i@ð i@ð i@ð i@ð i@ñ i@ô i@ð i@ðX	 €ˆn E¤OÐ4Ñ4Ô4ð"7ð "7ð "7ð "7ð "7˜Gñ "7ô "7ñ 5Ô4ð"7ðJH#ð H#ð H#ð H#ð H#ñ H#ô H#ð H#ðV 	ˆg�s˜CÐÔ €ðZð Zð Zð Zð Z�gñ Zô Zð Zðz7,ð 7,ð 7,ð 7,ð 7,ñ 7,ô 7,ð 7,ð 7,ð 7,rB   