+
     ]iT	  c                  sV   ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIHt ^RIH	t	H
t
 ]P                  ! R4      ^,          t]P                  ]P                  ]]]	3,          ]
3,          ,          t]P                  ]]P$                  ]]	3,          3,          tR R ltR R	 ltRR
 R lltR# )i    )annotationsN)BytesIO)_TYPE_FIELD_VALUE_TUPLERequestFieldzutf-8c               s    V ^8  d   QhRR/# )   returnstr Zformat   "5/usr/lib/python3.14/site-packages/urllib3/filepost.py__annotate__r      s     5 5 5    c                 sr    \         P                  ! \        P                  ! ^4      4      P	                  4       # )zF
Our embarrassingly-simple replacement for mimetools.choose_boundary.
)binasciiZhexlifyosZurandomZdecoder   r   r
   choose_boundaryr      s&     BJJrN+2244r   c               s     V ^8  d   QhRRRR/# )r   fields_TYPE_FIELDSr   ztyping.Iterable[RequestField]r   r   r	   r
   r   r      s     3 3| 30M 3r   c              #  s   "   \        V \        P                  4      '       d   V P                  4       pMT pV F5  p\        V\        4      '       d   Vx  K  \        P
                  ! V!  x  K7  	  R# 5i)zv
Iterate over fields.

Supports list of (k, v) tuples and dicts, and lists of
:class:`~urllib3.fields.RequestField`.

N)
isinstancetypingMappingZitemsr   Zfrom_tuples)r   Ziterablefields   &  r
   iter_field_objectsr      sU      &&..))<<>e\**K**E22	 s   A1A3c               s$    V ^8  d   QhRRRRRR/# )r   r   r   boundaryz
str | Noner   ztuple[bytes, str]r   r   r	   r
   r   r   3   s$     &) &)&)$.&)&)r   c                sd   \        4       pVf   \        4       p\        V 4       F  pVP                  RV R2P	                  R4      4       \        V4      P                  VP                  4       4       VP                  p\        V\        4      '       d   \        V4      p\        V\        4      '       d   \        V4      P                  V4       MVP                  V4       VP                  R4       K  	  VP                  RV R2P	                  R4      4       RV 2pVP                  4       V3# )a  
Encode a dictionary of ``fields`` using the multipart/form-data MIME format.

:param fields:
    Dictionary of fields or list of (key, :class:`~urllib3.fields.RequestField`).
    Values are processed by :func:`urllib3.fields.RequestField.from_tuples`.

:param boundary:
    If not specified, then a random boundary will be generated using
    :func:`urllib3.filepost.choose_boundary`.
z--z
zlatin-1s   
z--
zmultipart/form-data; boundary=)r   r   r   ZwriteZencodewriterZrender_headersdatar   Zintr   Zgetvalue)r   r   Zbodyr   r   Zcontent_types   &&    r
   encode_multipart_formdatar   3   s     9D"$#F+

Rz&--i89t5//12zzdC  t9DdC  4Lt$JJt

7 ,  	JJH:V$++I673H:>L==?L((r   )N)Z
__future__r    r   Zcodecsr   r   Zior   r   r   r   Zlookupr   ZSequenceZUnionZtupler   Z_TYPE_FIELDS_SEQUENCEr   r   r   r   r   r   r   r
   <module>r      s    "   	   9	w		"
LLs334lBC  ||
NN3//0253,&) &)r   