
    ,hT	                    "   d dl m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
  ej                  d      d   Zej                  ej                  eee	f   e
f      Zej                  eej$                  ee	f   f   ZddZdd	Z	 d	 	 	 	 	 dd
Zy)    )annotationsN)BytesIO   )_TYPE_FIELD_VALUE_TUPLERequestFieldzutf-8   c                 n    t        j                  t        j                  d            j	                         S )zN
    Our embarrassingly-simple replacement for mimetools.choose_boundary.
       )binasciihexlifyosurandomdecode     R/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/urllib3/filepost.pychoose_boundaryr      s&     BJJrN+2244r   c              #     K   t        | t        j                        r| j                         }n| }|D ]+  }t        |t              r| t	        j
                  |  - yw)z
    Iterate over fields.

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

    N)
isinstancetypingMappingitemsr   from_tuples)fieldsiterablefields      r   iter_field_objectsr      sU      &&..)<<> 3e\*K**E22	3s   AA!c                D   t               }|
t               }t        |       D ]  }|j                  d| dj	                  d             t        |      j                  |j                                |j                  }t        |t              rt        |      }t        |t              rt        |      j                  |       n|j                  |       |j                  d        |j                  d| dj	                  d             d| }|j                         |fS )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   writeencodewriterrender_headersdatar   intstrgetvalue)r   boundarybodyr   r#   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   )returnr%   )r   _TYPE_FIELDSr+   ztyping.Iterable[RequestField])N)r   r,   r'   z
str | Noner+   ztuple[bytes, str])
__future__r   r   codecsr   r   ior   r   r   r   lookupr!   SequenceUniontupler%   _TYPE_FIELDS_SEQUENCEr   r,   r   r   r*   r   r   r   <module>r5      s    "   	   9	w		"
LLs334lBC  ||
NN3//0253. 26&)&)$.&)&)r   