
    q"h	                         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    N/var/www/html/env/lib/python3.13/site-packages/pip/_vendor/urllib3/filepost.pychoose_boundaryr      s6     

2/H77??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      &$MM&!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#841#8   c              3   ,   #    U  H
  u  pX4v   M     g 7fr#   r$   r%   s      r   r)   r*   <   s     &vtqQFvr+   )r   r   r   r   )r   s    r   iter_fieldsr-   -   s0     &$93==#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     9D"$#F+

1Z8,-.t5//12zzdC  t9DdCMM**4Lt$JJt

7 ,  	JJq*+,9HDEL==?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   