
                            S SK r S SKrS SKrSSK7  \R
                  " S5      rS rS\R                  -   \R                  -   r
\R                  " \
5      R                  S5      r\R                  " \R                  " S\R                  -   \R                  -   5      \R                  " S	5      -   5      R                  S
5      r\R"                  R%                  5       R                  S5      R'                  \5      r\R%                  5       R                  S5      R+                  \R,                  5      r\\R0                  " S	5      -   \\-  -   r\R4                  " \R6                  " \R8                  " \5      5      5      r\" S5      r\\" S5      \" S5      -  -   r\R%                  5       r \R6                  " \R8                  " \5      5      r!SS jr"SS jr#g)    N   )*z\\(.)c                 :    [         R                  SUS   SS 5      $ )Nz\1r   r   )UNQUOTE_PAIRSsub)slts      0platform/bq/third_party/httplib2/python3/auth.py<lambda>r   	   s    -++E1Q4":>    z!#$%&'*+-.^_`|~tokenz-._~+/=token68zquoted-stringzauth-param-nameschemeparamsc                     U R                  US5      R                  5       nU(       d  0 $  [        R                  U5      nUR                  5       $ ! [        R
                   a  n[        U5      eSnAff = f)z(https://tools.ietf.org/html/rfc7615
     N)getstripauthentication_infoparseStringppParseExceptionMalformedHeaderasDict)headers
headernameheaderparsedexs        r   _parse_authentication_infor#      sk     [[R(..0F	*$008
 ==?	  *j))*s   A A4$A//A4c                 x   U R                  US5      R                  5       nU(       d  0 $  [        R                  U5      nU Vs0 s HA  nUS   R                  5       SU;   a  US   R                  5       OSUR                  S5      0_MC     nnU$ ! [        R
                   a  n[        U5      eSnAff = fs  snf )z?Returns a dictionary of dictionaries, one dict per auth_scheme.r   Nr   r   r   )	r   r   www_authenticater   r   r   r   lowerr   )r   r   r    r!   r"   	challengeretvals          r   _parse_www_authenticater)   ,   s    [[R(..0F	*!--f5  	  I 	(!!#y  &/x%8%?%?%Ay}}W-.	/  	   M  *j))*s   B AB7B4$B//B4)zauthentication-info)zwww-authenticate)$base64re	pyparsingr   errorcompiler   unquotenumsalphastcharWordsetNamer   Combine
ZeroOrMorer   dblQuotedStringcopysetParseActionquoted_stringaddParseActiondowncaseTokensauth_param_nameSuppress
auth_paramDictdelimitedListGroupr   r   r'   r   r%   r#   r)    r   r   <module>rD      s|    	  

8$
> 	BGG#bii/
w'
**RWWX/"));<r}}S?QQ
R
Z
Z[d
e""'')11/BQQRYZ**,&&'89HHIZIZ[r{{3//5=3HI
	!!"((:"67	8	xgg&)99:	kkm ##BHHY$78 r   