
    i                        d dl Z d dlZd dlmZmZmZ d dlmZmZ  ej                  d      Z
 ed      D  ch c]  } d| dj                  d       c} ZdZd	Zed
z   Zeez   Zeez   dz   Zeez   Z ej&                  d      Z ej&                  d      Z e j,                  d      Z G d d      Z G d d      Zyc c} w )    N)ascii_lettersascii_lowercasedigits)Unionoverloadascii   %02Xz:/?#[]@z!$'()*,+&=;z-._~s   [A-Z0-9][A-Z0-9]z[A-Fa-f0-9][A-Fa-f0-9]zutf-8c                       e Zd Zddddddedededed	d
f
dZeded	efd       Zedd       Zdeed
f   d	eed
f   fdZy
)_Quoter FT)safe	protectedqsrequoter   r   r   r   returnNc                <    || _         || _        || _        || _        y N)_safe
_protected_qs_requote)selfr   r   r   r   s        K/var/www/html/binance/venv/lib/python3.12/site-packages/yarl/_quoting_py.py__init__z_Quoter.__init__   s      
#    valc                      y r    r   r   s     r   __call__z_Quoter.__call__$       ),r   c                      y r   r!   r"   s     r   r#   z_Quoter.__call__&       +.r   c                 *   |y t        |t              st        d      |sy|j                  dd      }t	               }t	               }| j
                  }|t        z  }| j                  s|dz  }|| j                  z  }|j                  d      }d}|t        |      k  r%||   }|d	z  }|r;|t        v r|d
z
  }|j                  |       t        |      dk(  r|d	d  }	t        j                  |	      s'|j                  d       |j                          |dz  }	 t!        t#        |d	d  j%                  d      d            }
|
| j                  v r|j                  |       n0|
|v r|j                  t)        |
             n|j                  |       |j                          nBt        |      dk(  r4|t        |      k(  r&|j                  d       |j                          |d	z  }W|t)        d      k(  rN| j*                  rB|j                          |j                  |       |t        |      k(  r|j                  d       | j                  r*|t)        d      k(  r|j                  t)        d             ||v r|j                  |        |j                  d|dj                  d             |t        |      k  r%|j%                  d      }||k(  r|S |S # t&        $ r* |j                  d       |j                          |dz  }Y w xY w)NArgument should be strr   utf8ignore)errorsr   r   r             s   %25      baser
    +r   )
isinstancestr	TypeErrorencode	bytearrayr   ALLOWEDr   r   lenBASCII_LOWERCASEappend_IS_HEXmatchextendclearchrintdecode
ValueErrorordr   )r   r   bvalretpctr   bsafeidxchbufunquotedret2s               r   r#   z_Quoter.__call__(   s   ;#s#455zz&z2kkzzxxFNDG$CIocB1HC))bB

2s8q=ab'C"==-

6*		q !#&s3qr7>>'+B'L#M  4??2

3!T)

3x=1

3IIK X]sc$i'7JJv&IIK1HCs3xDMM		

2 #d)#JJv&xxB#c(N

3s8$U{

2JJ!Bs8,,W56q CIot zz'"3;JY & !

6*		q 	!s   (K /LLr   Nr   N	__name__
__module____qualname__r6   boolr   r   r#   r   r!   r   r   r   r      s         	 
     
  ,C,C, ,. .NE#t), NsDy1A Nr   r   c                       e Zd Zddddddededededd	f
d
Zededefd       Zedd       Zdeed	f   deed	f   fdZy	)	_Unquoterr   F)r*   unsafer   plusr*   rX   r   rY   r   Nc                |    || _         || _        || _        || _        t	               | _        t	        d      | _        y )NT)r   )_ignore_unsafer   _plusr   _quoter
_qs_quoter)r   r*   rX   r   rY   s        r   r   z_Unquoter.__init__z   s5     
y!T*r   r   c                      y r   r!   r"   s     r   r#   z_Unquoter.__call__   r$   r   c                      y r   r!   r"   s     r   r#   z_Unquoter.__call__   r&   r   c                    |y t        |t              st        d      |syt               }g }d}|t	        |      k  r-||   }|dz  }|dk(  r|t	        |      dz
  k  r|||dz    }t
        j                  |      rt        t        |d      g      }|dz  }	 |j                  |      }|s}| j                  r4|d
v r0| j                  |      }
|
t!        d      |j                  |
       n]|| j"                  v s|| j$                  v r0| j'                  |      }
|
t!        d      |j                  |
       n|j                  |       |j                  rE|dz
  t	        |j                        d	z  z
  }	|j                  ||	|dz
          |j                          |dk(  rK| j                  s| j(                  r|| j"                  v r|j                  d       n|j                  d       || j"                  v rP|j                  d       t+        t-        |            j/                         dd  }|D ]  }|j                  |        |j                  |       |t	        |      k  r-|j                  r+|j                  |t	        |j                         d	z  d         dj1                  |      }||k(  r|S |S # t        $ r |d	z
  t	        |j                        d	z  z
  }	|j                  ||	|d	z
          |j                          	 |j                  |      }n(# t        $ r |j                  ||d	z
  |        Y Y w xY wY w xY w)Nr(   r   r   r,   r
   r/   r0   r1   r.   z+=&;zCannot quote Noner4   r3   )r5   r6   r7   utf8_decoderr;   _IS_HEX_STR	fullmatchbytesrC   rD   UnicodeDecodeErrorbufferr=   resetr   r_   RuntimeErrorr\   r[   r^   r]   hexrF   upperjoin)r   r   decoderrH   rK   rL   rI   brN   	start_pctto_addhrO   s                r   r#   z_Unquoter.__call__   s   ;#s#455.CHnSB1HCSySCHqL0#a(((-s3R012A1HC
%#*>>!#4 $ xxH$6!%!:!>"./B"CC

6*!T\\1X5M!%h!7!>"./B"CC

6*

8,~~!Gc'..&9A&==	

3y3734Sydll8JJJsOJJsOT\\!

3BL&&(, #BJJrN#JJrNm CHnp >>JJsC//!3567wws|3;Ji . %$'!Gc'...AA.E$E	

3y37#;<%'.~~a'8H1 %JJs37S'9:$% %%s7   J= =AM
LM
 M>M
MM
	M
rP   rQ   r!   r   r   rW   rW   y   s     + + 	+
 + + 
+ ,C,C, ,. .HE#t), HsDy1A Hr   rW   )codecsrestringr   r   r   typingr   r   r8   r<   rangeBPCT_ALLOWED
GEN_DELIMSSUB_DELIMS_WITHOUT_QS
SUB_DELIMSRESERVED
UNRESERVEDr:   compiler>   rd   getincrementaldecoderrc   r   rW   )is   0r   <module>r      s     	 9 9 ")?))'2 5:3Z@!Ac7""7+@
! "V+

"V#f,

,
, "**(
)bjj12+v++G4` `F\ \e As   B<