
    /h                         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 ddlm	Z	m
Z
mZ d Zd Z e            Z G d d	e          ZdS )
    N)msgpack)CaseInsensitiveDict   )HTTPResponsepickle	text_typec                 P    t          j        |                     d                    S )Nascii)base64	b64decodeencode)bs    U/var/www/html/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/serialize.py_b64_decode_bytesr      s    AHHW--...    c                 F    t          |                               d          S )Nutf8)r   decode)ss    r   _b64_decode_strr      s    Q&&v...r   c                   L    e Zd Zd
dZd
dZd
dZd
dZd
dZd
dZd Z	d
d	Z
dS )
SerializerNc           	         t          |j                  }|/|                    d          }t          j        |          |_        d|t          d |j                                        D                       |j        |j	        t          |j                  |j        |j        di}i |d<   d|v rx|d                             d          }|D ]Z}t          |                                          }|j                            |d           }|t          |          }||d         |<   [d                    d	t%          j        |d
          g          S )NF)decode_contentresponsec              3   X   K   | ]%\  }}t          |          t          |          fV  &d S N)r   .0kvs      r   	<genexpr>z#Serializer.dumps.<locals>.<genexpr>0   sH       ! !59QYq\\9Q<<0! ! ! ! ! !r   )bodyheadersstatusversionreasonstrictr   vary,   ,s   cc=4T)use_bin_type)r   r$   readioBytesIO_fpdictitemsr%   r&   r   r'   r(   r   splitstripgetjoinr   dumps)	selfrequestr   r#   response_headersdatavaried_headersheaderheader_values	            r   r7   zSerializer.dumps   sl   .x/?@@< ===66D:d++HL   ! !=E=M=S=S=U=U! ! !   $?$,$X_55#?#+#:
 

 W&&&-g6<<SAAN( 5 5"6**0022&2264@@+#,\#:#:L(4Wf%%yy'7=D#I#I#IJKKKr   c                 l   |sd S 	 |                     dd          \  }}n# t          $ r d}Y nw xY w|d d         dk    r||z   }d}|                     dd          d                             d          }	  t          | d	                    |                    |||          S # t
          $ r Y d S w xY w)
Nr+   r   s   cc=0   s   cc=   =r
   z
_loads_v{})r3   
ValueErrorr   getattrformatAttributeError)r8   r9   r;   	body_filevers        r   loadszSerializer.loadsH   s     	F	

4++IC 	 	 	CCC	
 rr7f:DC iia  $++G44	:74!4!4S!9!9::7D)TTT 	 	 	 FF	s     //7-B% %
B32B3c                    d|                     di           v rdS |                     di                                           D ]'\  }}|j                             |d          |k    r dS (|d                             d          }t	          |d         d                   }|                     dd	          d
k    r|                    d           ||d         d<   	 |t          j        |          }n|}n7# t          $ r* t          j        |                    d                    }Y nw xY wt          d|dd|d         S )z`Verify our vary headers match and construct a real urllib3
        HTTPResponse object.
        *r)   Nr   r#   r$   )r;   ztransfer-encoding chunkedr   F)r#   preload_content )
r5   r2   r$   popr   r.   r/   	TypeErrorr   r   )	r8   r9   cachedrG   r=   valuebody_rawr$   r#   s	            r   prepare_responsezSerializer.prepare_responsef   sj    &**VR((((F $ZZ3399;; 	 	MFE""6400E99 : *%))&11%6*+=i+HIII;;*B//9<<KK+,,,(/z9%	7 z(++  	7 	7 	7 :hoof5566DDD	7 SuSSz@RSSSs   C7 71D+*D+c                     d S r   rO   r8   r9   r;   rG   s       r   	_loads_v0zSerializer._loads_v0   	     	r   c                 ~    	 t          j        |          }n# t          $ r Y d S w xY w|                     |||          S r   )r   rI   rC   rU   r8   r9   r;   rG   rR   s        r   	_loads_v1zSerializer._loads_v1   sT    	\$''FF 	 	 	FF	 $$Wfi@@@s    
%%c                 `   |J 	 t          j        t          j        |                              d                    }n# t
          t          j        f$ r Y d S w xY wt          |d         d                   |d         d<   t          d |d         d         	                                D                       |d         d<   t          |d         d                   |d         d<   t          d |d         	                                D                       |d<   |                     |||          S )	Nr   r   r#   c              3   X   K   | ]%\  }}t          |          t          |          fV  &d S r   r   r   s      r   r"   z'Serializer._loads_v2.<locals>.<genexpr>   sO       -
 -
1 Q!3!34-
 -
 -
 -
 -
 -
r   r$   r'   c              3   `   K   | ])\  }}t          |          |t          |          n|fV  *d S r   r_   r   s      r   r"   z'Serializer._loads_v2.<locals>.<genexpr>   sX       
 
1 Qq}!3!3!3!L
 
 
 
 
 
r   r)   )jsonrI   zlib
decompressr   rC   errorr   r1   r2   r   rU   r[   s        r   	_loads_v2zSerializer._loads_v2   sO      	Z 5 5 < <V D DEEFFDJ' 	 	 	FF	 &7vj7I&7Q%R%Rz6"(, -
 -
z*95;;==-
 -
 -
 )
 )
z9% (7vj7I(7S'T'Tz8$ 
 
v,,..
 
 
 
 
v
 $$Wfi@@@s   9A   AAc                     d S r   rO   rW   s       r   	_loads_v3zSerializer._loads_v3   rY   r   c                     	 t          j        |d          }n# t          $ r Y d S w xY w|                     |||          S )NF)raw)r   rI   rC   rU   r[   s        r   	_loads_v4zSerializer._loads_v4   sY    	]4U333FF 	 	 	FF	 $$Wfi@@@s    
''r   )__name__
__module____qualname__r7   rI   rU   rX   r\   re   rg   rj   rO   r   r   r   r      s        *L *L *L *LX   <'T 'T 'T 'TR   A A A AA A A A*  A A A A A Ar   r   )r   r.   ra   rb   pip._vendorr   pip._vendor.requests.structuresr   compatr   r   r   r   r   object_default_body_readr   rO   r   r   <module>rs      s   
  				         ? ? ? ? ? ? 3 3 3 3 3 3 3 3 3 3/ / // / / VXX cA cA cA cA cA cA cA cA cA cAr   