ó
    Þ jˆ	  ã                   óž   • S SK Jr  S SKrS SKrS SKrS SKJr  SSKJr  SSK	J
r
  SSKJr  \R                  " S5      S	   rS
 rS rS rSS jrg)é    )Úabsolute_importN)ÚBytesIOé   )ÚRequestField)Úsix)Úbzutf-8é   c                  ó¦   • [         R                  " [        R                  " S5      5      n [        R
                  (       d  U R                  S5      n U $ )zF
Our embarrassingly-simple replacement for mimetools.choose_boundary.
é   Úascii)ÚbinasciiÚhexlifyÚosÚurandomr   ÚPY2Údecode)Úboundarys    ÚV/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_vendor/urllib3/filepost.pyÚchoose_boundaryr      s6   € ô ×Ò¤§
¢
¨2£Ó/€HÜ�7�7Ø—?‘? 7Ó+ˆØ€Oó    c              #   óì   #   • [        U [        5      (       a  [        R                  " U 5      nO[	        U 5      nU H3  n[        U[
        5      (       a  Uv •  M  [
        R                  " U6 v •  M5     g7f)zv
Iterate over fields.

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

N)Ú
isinstanceÚdictr   Ú	iteritemsÚiterr   Úfrom_tuples)ÚfieldsÚiÚfields      r   Úiter_field_objectsr       sX   é € ô �&œ$×ÑÜ�MŠM˜&Ó!‰ä�‹LˆãˆÜ�eœ\×*Ñ*ØŒKä×*Ò*¨EÐ2Ô2ò	 ùs   ‚A2A4c                 óx   • [        U [        5      (       a  S [        R                  " U 5       5       $ S U  5       $ )a  
.. deprecated:: 1.6

Iterate over fields.

The addition of :class:`~urllib3.fields.RequestField` makes this function
obsolete. Instead, use :func:`iter_field_objects`, which returns
:class:`~urllib3.fields.RequestField` objects.

Supports list of (k, v) tuples and dicts.
c              3   ó*   #   • U H
  u  pX4v •  M     g 7f©N© ©Ú.0ÚkÚvs      r   Ú	<genexpr>Úiter_fields.<locals>.<genexpr>:   s   é € Ð9Ñ#8™4˜1�•Ò#8ùó   ‚c              3   ó*   #   • U H
  u  pX4v •  M     g 7fr#   r$   r%   s      r   r)   r*   <   s   é € Ð&™v‘t�qˆQ�Fšvùr+   )r   r   r   r   )r   s    r   Úiter_fieldsr-   -   s0   € ô �&œ$×ÑÙ9¤3§=¢=°Ô#8Ó9Ð9á&™vÓ&Ð&r   c                 óh  • [        5       nUc
  [        5       n[        U 5       HÐ  nUR                  [	        SU-  5      5        [        U5      R                  UR                  5       5        UR                  n[        U[        5      (       a  [        U5      n[        U[        R                  5      (       a  [        U5      R                  U5        OUR                  U5        UR                  S5        MÒ     UR                  [	        SU-  5      5        [        SU-  5      nUR                  5       U4$ )a5  
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`).

:param boundary:
    If not specified, then a random boundary will be generated using
    :func:`urllib3.filepost.choose_boundary`.
z--%s
s   
z--%s--
z multipart/form-data; boundary=%s)r   r   r    Úwriter   ÚwriterÚrender_headersÚdatar   ÚintÚstrr   Ú	text_typeÚgetvalue)r   r   Úbodyr   r2   Úcontent_types         r   Úencode_multipart_formdatar9   ?   sì   € ô ‹9€DØÑÜ"Ó$ˆä# FÖ+ˆØ�
‰
”1�Z 8Ñ,Ó-Ô.äˆt‹×Ñ˜5×/Ñ/Ó1Ô2Ø�z‰zˆä�dœC× Ñ Ü�t“9ˆDä�dœCŸM™M×*Ñ*Ü�4‹L×Ñ˜tÕ$à�J‰J�tÔà�
‰
�7Öñ ,ð  	‡J�JŒq� Ñ*Ó+Ô,äÐ9¸HÑDÓE€Là�=‰=‹?˜LÐ(Ð(r   r#   )Ú
__future__r   r   Úcodecsr   Úior   r   r   Úpackagesr   Úpackages.sixr   Úlookupr0   r   r    r-   r9   r$   r   r   Ú<module>r@      sD   ðÝ &ã Û Û 	Ý å  Ý Ý à	�Š�wÓ	 Ñ	"€òò3ò('õ$#)r   