§
    7xÅjôa  ã                   ój  — d dl mZ d dlmZmZmZmZmZmZ d dl	m
Z
mZmZmZmZmZ d dlmZ d dlmZ d dlmZ  G d„ de¦  «        Z G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZeeeeeeedœZdS )é    )ÚBytesIO)ÚSIGNED_HEADERS_BLACKLISTÚ"STREAMING_UNSIGNED_PAYLOAD_TRAILERÚUNSIGNED_PAYLOADÚ
BaseSignerÚ_get_body_as_dictÚ_host_from_url)ÚHTTPHeadersÚawscrtÚget_current_datetimeÚparse_qsÚurlsplitÚ
urlunsplit)ÚNoCredentialsError)Úregister_feature_id)Úpercent_encode_sequencec                   ó€   — e Zd ZdZg d¢Zej        j        j        Z	dZ
dZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ ZdS )ÚCrtSigV4AuthT©ÚAuthorizationz
X-Amz-DateúX-Amz-Content-SHA256zX-Amz-Security-Tokenc                 ó>   — || _         || _        || _        d | _        d S ©N©ÚcredentialsÚ_service_nameÚ_region_nameÚ_expiration_in_seconds©Úselfr   Úservice_nameÚregion_names       úBC:\Projects\Historical\venv\Lib\site-packages\botocore/crt/auth.pyÚ__init__zCrtSigV4Auth.__init__1   ó(   € Ø&ˆÔØ)ˆÔØ'ˆÔØ&*ˆÔ#Ð#Ð#ó    c                 ó¾   — |j                              di ¦  «        }|                     d¦  «        }t          |t          ¦  «        o|                     d¦  «        dk    S ©NÚchecksumÚrequest_algorithmÚinÚtrailer©ÚcontextÚgetÚ
isinstanceÚdict©r    ÚrequestÚchecksum_contextÚ	algorithms       r#   Ú_is_streaming_checksum_payloadz+CrtSigV4Auth._is_streaming_checksum_payload7   óT   € Ø"œ?×.Ò.¨z¸2Ñ>Ô>ÐØ$×(Ò(Ð)<Ñ=Ô=ˆ	Ý˜)¥TÑ*Ô*ÐO¨y¯}ª}¸TÑ/BÔ/BÀiÒ/OÐOr&   c                 ó¶  — | j         €t          ¦   «         ‚t          d¬¦  «        }|                      |¦  «        }|                      |¦  «         t
          j        j                             | j         j	        | j         j
        | j         j        ¬¦  «        }|                      |¦  «        rt          }n$|                      |¦  «        r|r|}n
d }nt          }|                      |¦  «        rt
          j        j        j        }nt
          j        j        j        }t
          j                             t
          j        j        j        | j        || j        | j        || j        | j        | j        ||| j        ¬¦  «        }|                      |¦  «        }t
          j                             ||¦  «        }	|	                      ¦   «          |  !                    ||¦  «         d S )NF©Úremove_tzinfo©Úaccess_key_idÚsecret_access_keyÚsession_token©r5   Úsignature_typeÚcredentials_providerÚregionÚserviceÚdateÚshould_sign_headerÚuse_double_uri_encodeÚshould_normalize_uri_pathÚsigned_body_valueÚsigned_body_header_typeÚexpiration_in_seconds)"r   r   r   Ú_get_existing_sha256Ú_modify_request_before_signingr   ÚauthÚAwsCredentialsProviderÚ
new_staticÚ
access_keyÚ
secret_keyÚtokenr6   r   Ú_should_sha256_sign_payloadr   Ú!_should_add_content_sha256_headerÚAwsSignedBodyHeaderTypeÚX_AMZ_CONTENT_SHA_256ÚNONEÚAwsSigningConfigÚAwsSigningAlgorithmÚV4Ú_SIGNATURE_TYPEr   r   Ú_should_sign_headerÚ_USE_DOUBLE_URI_ENCODEÚ_SHOULD_NORMALIZE_URI_PATHr   Ú_crt_request_from_aws_requestÚaws_sign_requestÚresultÚ_apply_signing_changes©
r    r3   Údatetime_nowÚexisting_sha256rA   Úexplicit_payloadÚbody_headerÚsigning_configÚcrt_requestÚfutures
             r#   Úadd_authzCrtSigV4Auth.add_auth<   sÎ  € ØÔÐ#Ý$Ñ&Ô&Ð&å+¸%Ð@Ñ@Ô@ˆð ×3Ò3°GÑ<Ô<ˆà×+Ò+¨GÑ4Ô4Ð4å%œ{ÔA×LÒLØÔ*Ô5Ø"Ô.Ô9ØÔ*Ô0ð  Mñ  
ô  
Ðð ×.Ò.¨wÑ7Ô7ð 	0ÝAÐÐØ×-Ò-¨gÑ6Ô6ð 	0Øð (Ø#2Ð Ð à#'Ð Ð å/Ðà×1Ò1Ð2BÑCÔCð 	Cå”Ô3ÔIð ˆKõ !œ+Ô=ÔBˆKåœ×5Ò5Ý”kÔ5Ô8ØÔ/Ø!5ØÔ$ØÔ&ØØ#Ô7Ø"&Ô"=Ø&*Ô&EØ.Ø$/Ø"&Ô"=ð 6ñ 
ô 
ˆð ×8Ò8¸ÑAÔAˆÝ”×-Ò-¨k¸>ÑJÔJˆØ�Š‰ŒˆØ×#Ò# G¨[Ñ9Ô9Ð9Ð9Ð9r&   c                 ó~  — t          |j        ¦  «        }|j        r|j        nd}|j        rfg }|j                             ¦   «         D ].\  }}t          |¦  «        }|                     |› d|› �¦  «         Œ/|dz   d                     |¦  «        z   }n|j        r|› d|j        › �}t          j
                             |j                             ¦   «         ¦  «        }d }|j        r1t          |j        d¦  «        r|j        }nt          |j        ¦  «        }t          j
                             |j        |||¬¦  «        }	|	S ©Nú/ú=ú?ú&Úseek)ÚmethodÚpathÚheadersÚbody_stream©r   Úurlrt   ÚparamsÚitemsÚstrÚappendÚjoinÚqueryr   ÚhttpÚHttpHeadersru   ÚbodyÚhasattrr   ÚHttpRequestrs   ©
r    Úaws_requestÚ	url_partsÚcrt_pathÚarrayÚparamÚvalueÚcrt_headersÚcrt_body_streamri   s
             r#   r_   z*CrtSigV4Auth._crt_request_from_aws_requestq   óT  € Ý˜[œ_Ñ-Ô-ˆ	Ø%.¤^Ð<�9”>�>¸ˆØÔð 	7ØˆEØ +Ô 2× 8Ò 8Ñ :Ô :ð 1ð 1‘��uÝ˜E™
œ
�Ø—’ Ð/Ð/¨Ð/Ð/Ñ0Ô0Ð0Ð0Ø #‘~¨¯ª°©¬Ñ7ˆHˆHØŒ_ð 	7Ø"Ð6Ð6 Y¤_Ð6Ð6ˆHå”k×-Ò-¨kÔ.A×.GÒ.GÑ.IÔ.IÑJÔJˆð ˆØÔð 	<Ý�{Ô'¨Ñ0Ô0ð <Ø"-Ô"2��å")¨+Ô*:Ñ";Ô";�å”k×-Ò-ØÔ%ØØØ'ð	 .ñ 
ô 
ˆð Ðr&   c                 ó\   — t          j        t          |j        ¦  «        ¦  «        |_        d S r   ©r
   Ú
from_pairsÚlistru   ©r    r…   Úsigned_crt_requests      r#   rb   z#CrtSigV4Auth._apply_signing_changes�   ó,   € å)Ô4ÝÐ#Ô+Ñ,Ô,ñ
ô 
ˆÔÐÐr&   c                 ó8   — |                      ¦   «         t          vS r   ©Úlowerr   ©r    ÚnameÚkwargss      r#   r\   z CrtSigV4Auth._should_sign_header•   ó   € Ø�zŠz‰|Œ|Õ#;Ð;Ð;r&   c                 óŠ   — | j         D ]}||j        v r|j        |= Œd|j        vrt          |j        ¦  «        |j        d<   d S d S ©NÚhost©Ú_PRESIGNED_HEADERS_BLOCKLISTru   r	   rx   ©r    r3   Úhs      r#   rL   z+CrtSigV4Auth._modify_request_before_signing˜   ó_   € ð Ô2ð 	'ð 	'ˆAØ�G”OÐ#Ð#Ø”O AÐ&øà˜œÐ(Ð(Ý&4°W´[Ñ&AÔ&AˆGŒO˜FÑ#Ð#Ð#ð )Ð(r&   c                 ó6   — |j                              d¦  «        S ©Nr   ©ru   r/   ©r    r3   s     r#   rK   z!CrtSigV4Auth._get_existing_sha256¢   ó   € ØŒ×"Ò"Ð#9Ñ:Ô:Ð:r&   c                 óp   — |j                              d¦  «        sdS |j                             dd¦  «        S ©NÚhttpsTÚpayload_signing_enabled©rx   Ú
startswithr.   r/   r§   s     r#   rS   z(CrtSigV4Auth._should_sha256_sign_payload¥   ó:   € àŒ{×%Ò% gÑ.Ô.ð 	Ø�4ð
 Œ×"Ò"Ð#<¸dÑCÔCÐCr&   c                 ó
   — |d uS r   © ©r    rf   s     r#   rT   z.CrtSigV4Auth._should_add_content_sha256_header¯   ó   € à tÐ+Ð+r&   N)Ú__name__Ú
__module__Ú__qualname__ÚREQUIRES_REGIONr    r   rM   ÚAwsSignatureTypeÚHTTP_REQUEST_HEADERSr[   r]   r^   r$   r6   rk   r_   rb   r\   rL   rK   rS   rT   r±   r&   r#   r   r   %   sæ   € € € € € Ø€Oð$ð $ð $Ð ð ”kÔ2ÔG€OØ!ÐØ!%Ðð+ð +ð +ðPð Pð Pð
3:ð 3:ð 3:ðjð ð ð<
ð 
ð 
ð<ð <ð <ðBð Bð Bð;ð ;ð ;ðDð Dð Dð,ð ,ð ,ð ,ð ,r&   r   c                   ó2   ‡ — e Zd ZdZdZd„ Zˆ fd„Zd„ Zˆ xZS )ÚCrtS3SigV4AuthFc                 ó   — d S r   r±   r§   s     r#   rK   z#CrtS3SigV4Auth._get_existing_sha256¹   ó   € àˆtr&   c                 ó,  •— |j                              d¦  «        }t          |dd ¦  «        }|€i }|                     dd ¦  «        }|�|S d}|j                              di ¦  «        }|                     d¦  «        }t          |t          ¦  «        r!|                     d¦  «        dk    r|d	         }|j                             d
¦  «        r	||j        vrdS |j                              dd¦  «        rdS t          ¦   «          	                    |¦  «        S )NÚclient_configÚs3r¬   úContent-MD5r)   r*   r+   Úheaderr™   r«   TÚhas_streaming_inputF)
r.   r/   Úgetattrr0   r1   rx   r®   ru   ÚsuperrS   )	r    r3   r¿   Ú	s3_configÚsign_payloadÚchecksum_headerr4   r5   Ú	__class__s	           €r#   rS   z*CrtS3SigV4Auth._should_sha256_sign_payload½   s%  ø€ ð  œ×+Ò+¨OÑ<Ô<ˆÝ˜M¨4°Ñ6Ô6ˆ	ð ÐØˆIð !—}’}Ð%>ÀÑEÔEˆØÐ#ØÐð (ˆØ"œ?×.Ò.¨z¸2Ñ>Ô>ÐØ$×(Ò(Ð)<Ñ=Ô=ˆ	Ý�i¥Ñ&Ô&ð 	0¨9¯=ª=¸Ñ+>Ô+>À(Ò+JÐ+JØ'¨Ô/ˆOà”×&Ò& wÑ/Ô/ð	à g¤oÐ5Ð5à�4ð Œ?×ÒÐ4°eÑ<Ô<ð 	Ø�5õ ‰wŒw×2Ò2°7Ñ;Ô;Ð;r&   c                 ó   — dS ©NTr±   r²   s     r#   rT   z0CrtS3SigV4Auth._should_add_content_sha256_headeræ   r½   r&   ©	r´   rµ   r¶   r]   r^   rK   rS   rT   Ú__classcell__©rÉ   s   @r#   r»   r»   ´   sc   ø€ € € € € à"ÐØ!&Ððð ð ð'<ð '<ð '<ð '<ð '<ðRð ð ð ð ð ð r&   r»   c                   ó€   — e Zd ZdZg d¢Zej        j        j        Z	dZ
dZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ ZdS )ÚCrtSigV4AsymAuthTr   c                 ó>   — || _         || _        || _        d | _        d S r   r   r   s       r#   r$   zCrtSigV4AsymAuth.__init__÷   r%   r&   c                 óÔ  — t          d¦  «         | j        €t          ¦   «         ‚t          d¬¦  «        }|                      |¦  «        }|                      |¦  «         t          j        j         	                    | j        j
        | j        j        | j        j        ¬¦  «        }|                      |¦  «        rt          }n$|                      |¦  «        r|r|}n
d }nt           }|                      |¦  «        rt          j        j        j        }nt          j        j        j        }t          j                             t          j        j        j        | j        || j        | j        || j        | j        | j        ||| j        ¬¦  «        }|                      |¦  «        }t          j                              ||¦  «        }	|	 !                    ¦   «          |  "                    ||¦  «         d S )NÚSIGV4A_SIGNINGFr9   r;   r?   )#r   r   r   r   rK   rL   r   rM   rN   rO   rP   rQ   rR   r6   r   rS   r   rT   rU   rV   rW   rX   rY   ÚV4_ASYMMETRICr[   r   r   r\   r]   r^   r   r_   r`   ra   rb   rc   s
             r#   rk   zCrtSigV4AsymAuth.add_authý   sÝ  € ÝÐ,Ñ-Ô-Ð-ØÔÐ#Ý$Ñ&Ô&Ð&å+¸%Ð@Ñ@Ô@ˆð ×3Ò3°GÑ<Ô<ˆà×+Ò+¨GÑ4Ô4Ð4å%œ{ÔA×LÒLØÔ*Ô5Ø"Ô.Ô9ØÔ*Ô0ð  Mñ  
ô  
Ðð ×.Ò.¨wÑ7Ô7ð 	0ÝAÐÐØ×-Ò-¨gÑ6Ô6ð 	0Øð (Ø#2Ð Ð à#'Ð Ð å/Ðà×1Ò1Ð2BÑCÔCð 	Cå”Ô3ÔIð ˆKõ !œ+Ô=ÔBˆKåœ×5Ò5Ý”kÔ5ÔCØÔ/Ø!5ØÔ$ØÔ&ØØ#Ô7Ø"&Ô"=Ø&*Ô&EØ.Ø$/Ø"&Ô"=ð 6ñ 
ô 
ˆð ×8Ò8¸ÑAÔAˆÝ”×-Ò-¨k¸>ÑJÔJˆØ�Š‰ŒˆØ×#Ò# G¨[Ñ9Ô9Ð9Ð9Ð9r&   c                 ó~  — t          |j        ¦  «        }|j        r|j        nd}|j        rfg }|j                             ¦   «         D ].\  }}t          |¦  «        }|                     |› d|› �¦  «         Œ/|dz   d                     |¦  «        z   }n|j        r|› d|j        › �}t          j
                             |j                             ¦   «         ¦  «        }d }|j        r1t          |j        d¦  «        r|j        }nt          |j        ¦  «        }t          j
                             |j        |||¬¦  «        }	|	S rm   rw   r„   s
             r#   r_   z.CrtSigV4AsymAuth._crt_request_from_aws_request3  r�   r&   c                 ó\   — t          j        t          |j        ¦  «        ¦  «        |_        d S r   r�   r’   s      r#   rb   z'CrtSigV4AsymAuth._apply_signing_changesQ  r”   r&   c                 ó8   — |                      ¦   «         t          vS r   r–   r˜   s      r#   r\   z$CrtSigV4AsymAuth._should_sign_headerW  r›   r&   c                 óŠ   — | j         D ]}||j        v r|j        |= Œd|j        vrt          |j        ¦  «        |j        d<   d S d S r�   rŸ   r¡   s      r#   rL   z/CrtSigV4AsymAuth._modify_request_before_signingZ  r£   r&   c                 ó6   — |j                              d¦  «        S r¥   r¦   r§   s     r#   rK   z%CrtSigV4AsymAuth._get_existing_sha256d  r¨   r&   c                 ó¾   — |j                              di ¦  «        }|                     d¦  «        }t          |t          ¦  «        o|                     d¦  «        dk    S r(   r-   r2   s       r#   r6   z/CrtSigV4AsymAuth._is_streaming_checksum_payloadg  r7   r&   c                 óp   — |j                              d¦  «        sdS |j                             dd¦  «        S rª   r­   r§   s     r#   rS   z,CrtSigV4AsymAuth._should_sha256_sign_payloadl  r¯   r&   c                 ó
   — |d uS r   r±   r²   s     r#   rT   z2CrtSigV4AsymAuth._should_add_content_sha256_headerv  r³   r&   N)r´   rµ   r¶   r·   r    r   rM   r¸   r¹   r[   r]   r^   r$   rk   r_   rb   r\   rL   rK   r6   rS   rT   r±   r&   r#   rÐ   rÐ   ë   sæ   € € € € € Ø€Oð$ð $ð $Ð ð ”kÔ2ÔG€OØ!ÐØ!%Ðð+ð +ð +ð4:ð 4:ð 4:ðlð ð ð<
ð 
ð 
ð<ð <ð <ðBð Bð Bð;ð ;ð ;ðPð Pð Pð
Dð Dð Dð,ð ,ð ,ð ,ð ,r&   rÐ   c                   ó2   ‡ — e Zd ZdZdZd„ Zˆ fd„Zd„ Zˆ xZS )ÚCrtS3SigV4AsymAuthFc                 ó   — d S r   r±   r§   s     r#   rK   z'CrtS3SigV4AsymAuth._get_existing_sha256€  r½   r&   c                 ó\  •— |j                              d¦  «        }t          |dd ¦  «        }|€i }|                     dd ¦  «        }|�|S |j                             d¦  «        r	d|j        vrdS |j                              dd¦  «        rdS t          ¦   «                              |¦  «        S )	Nr¿   rÀ   r¬   r«   rÁ   TrÃ   F)r.   r/   rÄ   rx   r®   ru   rÅ   rS   )r    r3   r¿   rÆ   rÇ   rÉ   s        €r#   rS   z.CrtS3SigV4AsymAuth._should_sha256_sign_payload„  sÂ   ø€ ð  œ×+Ò+¨OÑ<Ô<ˆÝ˜M¨4°Ñ6Ô6ˆ	ð ÐØˆIð !—}’}Ð%>ÀÑEÔEˆØÐ#ØÐð ”×&Ò& wÑ/Ô/ð	à G¤OÐ3Ð3à�4ð Œ?×ÒÐ4°eÑ<Ô<ð 	Ø�5õ ‰wŒw×2Ò2°7Ñ;Ô;Ð;r&   c                 ó   — dS rË   r±   r²   s     r#   rT   z4CrtS3SigV4AsymAuth._should_add_content_sha256_header¨  r½   r&   rÌ   rÎ   s   @r#   rÞ   rÞ   {  sc   ø€ € € € € à"ÐØ!&Ððð ð ð"<ð "<ð "<ð "<ð "<ðHð ð ð ð ð ð r&   rÞ   c                   ó\   ‡ — e Zd ZdZej        j        j        Zefˆ fd„	Z	ˆ fd„Z
ˆ fd„Zˆ xZS )ÚCrtSigV4AsymQueryAuthé  c                 ó\   •— t          ¦   «                              |||¦  «         || _        d S r   ©rÅ   r$   r   ©r    r   r!   r"   ÚexpiresrÉ   s        €r#   r$   zCrtSigV4AsymQueryAuth.__init__±  ó/   ø€ õ 	‰Œ×Ò˜ l°KÑ@Ô@Ð@Ø&-ˆÔ#Ð#Ð#r&   c                 ó  •— t          ¦   «                              |¦  «         |j                             d¦  «        }|dk    r|j        d= t	          |j        ¦  «        }t          |j        d¬¦  «        }d„ |                     ¦   «         D ¦   «         }|j	        r)| 
                    t          |¦  «        ¦  «         d|_	        t          |¦  «        }|}|d         |d         |d	         ||d
         f}t          |¦  «        |_        d S )Núcontent-typeú0application/x-www-form-urlencoded; charset=utf-8T©Úkeep_blank_valuesc                 ó&   — i | ]\  }}||d          “ŒS ©r   r±   ©Ú.0ÚkÚvs      r#   ú
<dictcomp>zHCrtSigV4AsymQueryAuth._modify_request_before_signing.<locals>.<dictcomp>Ç  s"   € ÐEÐEÐE¡$ ! Q�a˜˜1œÐEÐEÐEr&   Ú r   é   é   é   )rÅ   rL   ru   r/   r   rx   r   r~   rz   ÚdataÚupdater   r   r   )
r    r3   Úcontent_typer†   Úquery_string_partsÚ
query_dictÚnew_query_stringÚpÚnew_url_partsrÉ   s
            €r#   rL   z4CrtSigV4AsymQueryAuth._modify_request_before_signing·  s  ø€ Ý‰Œ×.Ò.¨wÑ7Ô7Ð7ð ”×*Ò*¨>Ñ:Ô:ˆØÐMÒMÐMØ” Ð/õ ˜Wœ[Ñ)Ô)ˆ	õ & i¤oÈÐNÑNÔNÐØEÐEÐ*<×*BÒ*BÑ*DÔ*DÐEÑEÔEˆ
ð Œ<ð 	ð ×ÒÕ/°Ñ8Ô8Ñ9Ô9Ð9ØˆGŒLÝ2°:Ñ>Ô>Ðð ˆØ˜1œ˜q œt Q q¤TÐ+;¸Q¸q¼TÐBˆÝ  Ñ/Ô/ˆŒˆˆr&   c                 ó  •— t          ¦   «                              ||¦  «         t          |j        ¦  «        j        }t          |j        ¦  «        }t          |d         |d         |d         ||d         f¦  «        |_        d S ©Nr   r÷   rø   rù   ©rÅ   rb   r   rt   r~   rx   r   ©r    r…   r“   Úsigned_queryr   rÉ   s        €r#   rb   z,CrtSigV4AsymQueryAuth._apply_signing_changesá  óq   ø€ å‰Œ×&Ò& {Ð4FÑGÔGÐGåÐ 2Ô 7Ñ8Ô8Ô>ˆÝ�[”_Ñ%Ô%ˆõ % a¨¤d¨A¨a¬D°!°A´$¸ÀaÈÄdÐ%KÑLÔLˆŒˆˆr&   ©r´   rµ   r¶   ÚDEFAULT_EXPIRESr   rM   r¸   ÚHTTP_REQUEST_QUERY_PARAMSr[   r$   rL   rb   rÍ   rÎ   s   @r#   rã   rã   ­  s‘   ø€ € € € € Ø€OØ”kÔ2ÔL€Oð ?Nð.ð .ð .ð .ð .ð .ð(0ð (0ð (0ð (0ð (0ðTMð Mð Mð Mð Mð Mð Mð Mð Mr&   rã   c                   ó&   — e Zd ZdZdZdZd„ Zd„ ZdS )ÚCrtS3SigV4AsymQueryAuthz¢S3 SigV4A auth using query parameters.
    This signer will sign a request using query parameters and signature
    version 4A, i.e a "presigned url" signer.
    Fc                 ó   — dS ©NFr±   r§   s     r#   rS   z3CrtS3SigV4AsymQueryAuth._should_sha256_sign_payloadü  ó	   € ð
 ˆur&   c                 ó   — dS r  r±   r²   s     r#   rT   z9CrtS3SigV4AsymQueryAuth._should_add_content_sha256_header  ó   € àˆur&   N©r´   rµ   r¶   Ú__doc__r]   r^   rS   rT   r±   r&   r#   r  r  ò  sJ   € € € € € ðð ð #ÐØ!&Ððð ð ðð ð ð ð r&   r  c                   ó\   ‡ — e Zd ZdZej        j        j        Zefˆ fd„	Z	ˆ fd„Z
ˆ fd„Zˆ xZS )ÚCrtSigV4QueryAuthrä   c                 ó\   •— t          ¦   «                              |||¦  «         || _        d S r   ræ   rç   s        €r#   r$   zCrtSigV4QueryAuth.__init__  ré   r&   c                 ó^  •— t          ¦   «                              |¦  «         |j                             d¦  «        }|dk    r|j        d= t	          |j        ¦  «        }d„ t          |j        d¬¦  «                             ¦   «         D ¦   «         }|j	        r!| 
                    |j	        ¦  «         i |_	        |j        r)| 
                    t          |¦  «        ¦  «         d|_        t          |¦  «        }|}|d         |d         |d	         ||d
         f}t          |¦  «        |_        d S )Nrë   rì   c                 ó&   — i | ]\  }}||d          “ŒS rð   r±   rñ   s      r#   rõ   zDCrtSigV4QueryAuth._modify_request_before_signing.<locals>.<dictcomp>!  s2   € ð 
ð 
ð 
á��1ð ˆq�Œtð
ð 
ð 
r&   Trí   rö   r   r÷   rø   rù   )rÅ   rL   ru   r/   r   rx   r   r~   rz   ry   rû   rú   r   r   r   )	r    r3   rü   r†   rþ   rÿ   r   r  rÉ   s	           €r#   rL   z0CrtSigV4QueryAuth._modify_request_before_signing  s:  ø€ Ý‰Œ×.Ò.¨wÑ7Ô7Ð7ð ”×*Ò*¨>Ñ:Ô:ˆØÐMÒMÐMØ” Ð/õ ˜Wœ[Ñ)Ô)ˆ	ð
ð 
å Ø”°4ðñ ô çŠe‰gŒgð	
ñ 
ô 
ˆ
ð Œ>ð 	 Ø×Ò˜gœnÑ-Ô-Ð-ØˆGŒNð Œ<ð 	ð ×ÒÕ/°Ñ8Ô8Ñ9Ô9Ð9ØˆGŒLÝ2°:Ñ>Ô>Ðð ˆØ˜1œ˜q œt Q q¤TÐ+;¸Q¸q¼TÐBˆÝ  Ñ/Ô/ˆŒˆˆr&   c                 ó  •— t          ¦   «                              ||¦  «         t          |j        ¦  «        j        }t          |j        ¦  «        }t          |d         |d         |d         ||d         f¦  «        |_        d S r  r  r  s        €r#   rb   z(CrtSigV4QueryAuth._apply_signing_changesB  r  r&   r  rÎ   s   @r#   r  r    s‘   ø€ € € € € Ø€OØ”kÔ2ÔL€Oð ?Nð.ð .ð .ð .ð .ð .ð.0ð .0ð .0ð .0ð .0ð`Mð Mð Mð Mð Mð Mð Mð Mð Mr&   r  c                   ó&   — e Zd ZdZdZdZd„ Zd„ ZdS )ÚCrtS3SigV4QueryAutha  S3 SigV4 auth using query parameters.
    This signer will sign a request using query parameters and signature
    version 4, i.e a "presigned url" signer.
    Based off of:
    http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html
    Fc                 ó   — dS r  r±   r§   s     r#   rS   z/CrtS3SigV4QueryAuth._should_sha256_sign_payload_  r  r&   c                 ó   — dS r  r±   r²   s     r#   rT   z5CrtS3SigV4QueryAuth._should_add_content_sha256_headerf  r  r&   Nr  r±   r&   r#   r  r  S  sJ   € € € € € ðð ð #ÐØ!&Ððð ð ðð ð ð ð r&   r  )Úv4zv4-queryÚv4aÚs3v4z
s3v4-queryÚs3v4azs3v4a-queryN)Úior   Úbotocore.authr   r   r   r   r   r	   Úbotocore.compatr
   r   r   r   r   r   Úbotocore.exceptionsr   Úbotocore.useragentr   Úbotocore.utilsr   r   r»   rÐ   rÞ   rã   r  r  r  ÚCRT_AUTH_TYPE_MAPSr±   r&   r#   ú<module>r)     s¥  ðð Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 3Ð 2Ð 2Ð 2Ð 2Ð 2Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ðL,ð L,ð L,ð L,ð L,�:ñ L,ô L,ð L,ð^4ð 4ð 4ð 4ð 4�\ñ 4ô 4ð 4ðnM,ð M,ð M,ð M,ð M,�zñ M,ô M,ð M,ð`/ð /ð /ð /ð /Ð)ñ /ô /ð /ðdBMð BMð BMð BMð BMÐ,ñ BMô BMð BMðJð ð ð ð Ð3ñ ô ð ð,HMð HMð HMð HMð HM˜ñ HMô HMð HMðVð ð ð ð Ð+ñ ô ð ð6 Ø!ØØØ%ØØ*ðð Ð Ð Ð r&   