o
    è’Ojð   ã                   @   sð   d Z ddlZddl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 ddlmZ ddlmZ ddlmZ ddlmZmZ dd	lmZmZmZ e e¡Zd
dgZg d¢ZdZdZdZ dZ!G dd„ dƒZ"G dd„ dƒZ#G dd„ de$e#ƒZ%dS )z²Internal module to help with normalizing botocore client args.

This module (and all function/classes within this module) should be
considered internal, and *not* a public API.

é    N)ÚConfig)ÚEndpointCreator)ÚEndpointResolverBuiltins)ÚEndpointRulesetResolver)ÚRequestSigner)ÚUserAgentStringÚregister_feature_id)Ú$PRIORITY_ORDERED_SUPPORTED_PROTOCOLSÚensure_booleanÚis_s3_accelerate_urlÚlegacyÚregional)zap-northeast-1z
ap-south-1zap-southeast-1zap-southeast-2ú
aws-globalzca-central-1zeu-central-1z
eu-north-1z	eu-west-1z	eu-west-2z	eu-west-3z	sa-east-1ú	us-east-1z	us-east-2z	us-west-1z	us-west-2é2   )Úwhen_supportedÚwhen_required)Ú	preferredÚdisabledÚrequiredc                   @   sJ  e Zd Z	dNdd„Z			dOdd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ ZdNd(d)„Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Zd<d=„ Z d>d?„ Z!d@dA„ Z"dBdC„ Z#dDdE„ Z$dFdG„ Z%dHdI„ Z&dJdK„ Z'dLdM„ Z(dS )PÚClientArgsCreatorNc                 C   s>   || _ || _|| _|| _|| _|d u rt ¡ | _d S || _d S ©N)Ú_event_emitterÚ_response_parser_factoryÚ_loaderÚ_exceptions_factoryÚ_config_storer   Úfrom_environmentÚ_session_ua_creator)ÚselfÚevent_emitterÚ
user_agentÚresponse_parser_factoryÚloaderÚexceptions_factoryÚconfig_storeÚuser_agent_creator© r'   úS/var/www/html/pharmsmart-cdr-gen/venv/lib/python3.10/site-packages/botocore/args.pyÚ__init__V   s   

zClientArgsCreator.__init__c           (      C   s¾  |   |||	||||¡}|d }|d }|d }|d }|d }|d }|d  dd ¡}|d	 }|d
 }|d }|d }|d }|d }|d }t | j¡}t|j||d |d |||
ƒ}||d< tdi |¤Ž}t|ƒ}|j|||d || j	|j
|j|j|jf||j|jd�} d|› �}!dtjji}"|j|!|||"d� tjj|||"d d�}#tj |¡}$|  |||||||| ||	|||||¡}%| j |¡}&|rÉ|jnd }'|'|_|#| |$|||| j||| j|%|&dœS )NÚservice_nameÚparameter_validationÚendpoint_configÚprotocolÚconfig_kwargsÚ	s3_configÚmetadataÚ	partitionÚsocket_optionsÚconfigured_endpoint_urlÚsigning_regionÚregion_nameÚaccount_id_endpoint_modeÚs3_disable_express_session_authÚauth_scheme_preferenceÚsigning_nameÚsignature_versionÚs3Úendpoint_url)
r5   r<   Úverifyr"   Úmax_pool_connectionsÚproxiesÚtimeoutr2   Úclient_certÚproxies_configzcreating-serializer.Útimestamp_precision)Úprotocol_nameÚservice_modelÚserializer_kwargs)rC   )Ú
serializerÚendpointÚresponse_parserr    Úrequest_signerrE   r#   Úclient_configr1   r$   Úendpoint_ruleset_resolverr&   r'   )Úcompute_client_argsÚgetÚcopyr   r   Ú
service_idr   r   Úcreate_endpointr   r>   r?   Úconnect_timeoutÚread_timeoutrA   rB   ÚbotocoreÚ	serializeÚTIMESTAMP_PRECISION_DEFAULTÚemitÚcreate_serializerÚparsersÚcreate_parserÚ_build_endpoint_resolverr   Úwith_client_configr!   Ú_supplied_user_agentr   r   )(r   rE   r5   Ú	is_securer<   r=   ÚcredentialsÚscoped_configrK   Úendpoint_bridgeÚ
auth_tokenÚendpoints_ruleset_dataÚpartition_dataÚ
final_argsr*   r+   r,   r-   r.   r/   r1   r2   r3   r4   Úendpoint_region_namer6   r7   r8   r    ÚsignerÚ
new_configÚendpoint_creatorrH   Ú
event_namerF   rG   rI   Úruleset_resolverÚclient_ua_creatorÚsupplied_uar'   r'   r(   Úget_client_argsj   sÊ   ù
ÿù

õ
ÿüýñÿôz!ClientArgsCreator.get_client_argsc                 C   sn  |j }|j}	d}
|r|jsd}
n|r| d¡}|d urt|ƒ}
|  |¡}| j||d�}|d ur3tdƒ | j||||||d�}|d  dg ¡}| j	 
|¡ ¡ }t|d	 |d
 |d�}d|v rc|jdd� d|v rm|jdd� |d urÑ|jd'i d|j“d|j“d|j“d|j“d|j“d|j“d|j“d|j“d|j“d|j“d|j“d|j“d|j“d|j“d|j“d|j“d |j“d!|j“d"|j “d#|j!d urÍ|j! d$¡nd “Ž |  "|¡ |  #|¡ |  $|¡ |  %|¡ |  &|¡ |  '|¡ |  (|¡ |  )||¡ |  *||¡ |  +||¡ |  ,|¡ |  |¡}|  -|¡}|�r(d|v �r(|d u �r$i }d|d%< ||
|||	|||  .||¡d&œS )(NTFr+   )rK   r<   ÚENDPOINT_OVERRIDE)r*   r5   r<   r^   ra   r/   r0   Útagsr5   r:   )r5   r:   r!   Ú	dualstack)Úuse_dualstack_endpointÚfips)Úuse_fips_endpointrR   rS   r>   r?   rB   ÚretriesrA   Úinject_host_prefixÚtcp_keepaliveÚuser_agent_extraÚuser_agent_appidÚ"request_min_compression_size_bytesÚdisable_request_compressionÚclient_context_paramsÚsigv4a_signing_region_setÚrequest_checksum_calculationÚresponse_checksum_validationr6   r8   r7   Údisable_s3_express_session_authrr   )r*   r+   r3   r,   r-   r.   r/   r2   r'   )/Úendpoint_prefixÚresolved_protocolr+   rN   r
   Úcompute_s3_configÚ _compute_configured_endpoint_urlr   Ú_compute_endpoint_configr   r\   Ú	to_stringÚdictÚupdaterR   rS   r>   r?   rB   ru   rA   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r6   r8   r;   Ú_compute_retry_configÚ_compute_connect_timeoutÚ _compute_user_agent_appid_configÚ#_compute_request_compression_configÚ)_compute_sigv4a_signing_region_set_configÚ_compute_checksum_configÚ(_compute_account_id_endpoint_mode_configÚ_compute_inject_host_prefixÚ&_compute_auth_scheme_preference_configÚ!_compute_signature_version_configÚ(_compute_s3_disable_express_session_authÚ_is_s3_serviceÚ_compute_socket_options)r   rE   rK   ra   r5   r<   r^   r`   r*   r-   r+   Ú	raw_valuer/   r3   r,   Úendpoint_variant_tagsÚpreliminary_ua_stringr.   Úis_s3_servicer'   r'   r(   rM   ì   sä   



þúÿþý
ÿþýüûúùø	÷
öõóðîìéæäã ÿ€ß
$





ÿ



ÿøz%ClientArgsCreator.compute_client_argsc                 C   sD   |d u s	|j dkr | j d¡}|d ur| |d< d S d|d< d S d S )NÚUNSETÚdisable_host_prefix_injectionrv   T)Ú_inject_host_prefixr   Úget_config_variable)r   rK   r.   Ú(configured_disable_host_prefix_injectionr'   r'   r(   r�   p  s   ÿþÿÿþÿòz-ClientArgsCreator._compute_inject_host_prefixc                 C   s0   |d ur|S |   |¡rt d¡ |S | j d¡S )Nz"Ignoring configured endpoint URLs.r<   )Ú _ignore_configured_endpoint_urlsÚloggerÚdebugr   r�   )r   rK   r<   r'   r'   r(   r„   ƒ  s   

z2ClientArgsCreator._compute_configured_endpoint_urlc                 C   s    |r
|j d ur
|j S | j d¡S )NÚignore_configured_endpoint_urls)r¢   r   r�   )r   rK   r'   r'   r(   rŸ   �  s   ÿþÿz2ClientArgsCreator._ignore_configured_endpoint_urlsc                 C   sH   | j  d¡}|d ur"|jd ur"|d u r|j}|S | ¡ }| |j¡ |S )Nr;   )r   r�   r;   rO   rˆ   )r   rK   Ús3_configurationr'   r'   r(   rƒ   ˜  s   
	ýz#ClientArgsCreator.compute_s3_configc                 C   s   |dv S )a,  Whether the service is S3 or S3 Control.

        Note that throughout this class, service_name refers to the endpoint
        prefix, not the folder name of the service in botocore/data. For
        S3 Control, the folder name is 's3control' but the endpoint prefix is
        's3-control'.
        )r;   z
s3-controlr'   )r   r*   r'   r'   r(   r”   «  s   z ClientArgsCreator._is_s3_servicec                 C   sT   |||||dœ}|dkr| j dd|i|¤ŽS |dkr"| jdi |¤ŽS | jdi |¤ŽS )N)r*   r5   r<   r^   ra   r;   r/   Ústsr'   )Ú_compute_s3_endpoint_configÚ_compute_sts_endpoint_configÚ_resolve_endpoint)r   r*   r5   r<   r^   ra   r/   Úresolve_endpoint_kwargsr'   r'   r(   r…   µ  s   
ûÿÿz*ClientArgsCreator._compute_endpoint_configc                 K   sX   |   |d |¡}|rd |d< | jdi |¤Ž}|  ||d ¡ |r*|d dkr*d|d< |S )Nr5   ra   r   r   r'   )Ú_should_force_s3_globalr§   Ú!_set_region_if_custom_s3_endpoint)r   r/   r¨   Úforce_s3_globalr,   r'   r'   r(   r¥   Í  s   ÿÿz-ClientArgsCreator._compute_s3_endpoint_configc                 C   s6   d}|rd|v r|d }|   |¡ |dv }|dko|S )Nr   Úus_east_1_regional_endpoint)r   N)Ú_validate_s3_regional_config)r   r5   r/   Ús3_regional_configÚis_global_regionr'   r'   r(   r©   â  s   
z)ClientArgsCreator._should_force_s3_globalc                 C   s   |t vrtjj|d�‚d S )N)Ú%s3_us_east_1_regional_endpoint_config)ÚVALID_REGIONAL_ENDPOINTS_CONFIGrT   Ú
exceptionsÚ+InvalidS3UsEast1RegionalEndpointConfigError)r   Ú
config_valr'   r'   r(   r­   ë  s
   ÿÿz.ClientArgsCreator._validate_s3_regional_configc                 C   sB   t |tƒo
| ¡ dv }t |tƒs|stjjd|› d�d�‚d S d S )N)ÚtrueÚfalseúInvalid value "z>" for s3_disable_express_session_auth. Value must be a boolean©Ú	error_msg)Ú
isinstanceÚstrÚlowerÚboolrT   r²   ÚInvalidConfigError)r   r´   Ústring_boolr'   r'   r(   Ú)_validate_s3_disable_express_session_authñ  s   
þÿz;ClientArgsCreator._validate_s3_disable_express_session_authc                 C   sF   |d d u r|d d u r!|  d¡}|d |d< |d |d< d S d S d S )Nr4   r5   r;   ©Úresolve)r   r,   ra   rH   r'   r'   r(   rª   þ  s   
ÿ
þ
úz3ClientArgsCreator._set_region_if_custom_s3_endpointc                 K   s:   | j di |¤Ž}|  |d |d |¡r|  ||d ¡ |S )Nr5   r<   r^   r'   )r§   Ú_should_set_global_sts_endpointÚ_set_global_sts_endpoint)r   r¨   r,   r'   r'   r(   r¦     s   ýÿz.ClientArgsCreator._compute_sts_endpoint_configc                 C   s6   |o
|  di ¡  d¡}|s|rdS |  ¡ dko|tv S )Nr0   rp   Fr   )rN   Ú"_get_sts_regional_endpoints_configÚLEGACY_GLOBAL_STS_REGIONS)r   r5   r<   r,   Úhas_variant_tagsr'   r'   r(   rÃ     s   ÿþþz1ClientArgsCreator._should_set_global_sts_endpointc                 C   s.   | j  d¡}|s
d}|tvrtjj|d�‚|S )NÚsts_regional_endpointsr   )Ústs_regional_endpoints_config)r   r�   r±   rT   r²   Ú&InvalidSTSRegionalEndpointsConfigError)r   rÉ   r'   r'   r(   rÅ   %  s   ÿÿÿÿz4ClientArgsCreator._get_sts_regional_endpoints_configc                 C   s&   |rdnd}|› d�|d< d|d< d S )NÚhttpsÚhttpz://sts.amazonaws.comr<   r   r4   r'   )r   r,   r^   Úschemer'   r'   r(   rÄ   4  s   z*ClientArgsCreator._set_global_sts_endpointc                 C   s   |  ||||¡S r   rÁ   )r   r*   r5   r<   r^   ra   r'   r'   r(   r§   9  s   ÿz#ClientArgsCreator._resolve_endpointc                 C   sJ   t jt jdfg}|o|j}|d u r| j d¡}|r#| t jt jdf¡ |S )Né   rw   )	ÚsocketÚIPPROTO_TCPÚTCP_NODELAYrw   r   r�   ÚappendÚ
SOL_SOCKETÚSO_KEEPALIVE)r   r`   rK   r2   Úclient_keepaliver'   r'   r(   r•   E  s   
ÿz)ClientArgsCreator._compute_socket_optionsc                 C   s   |   |¡ |  |¡ d S r   )Ú_compute_retry_max_attemptsÚ_compute_retry_mode©r   r.   r'   r'   r(   r‰   T  s   
z'ClientArgsCreator._compute_retry_configc                 C   s„   |  d¡}|d ur&d|v r| dd ¡ d S d|v r&| d¡}|d |d< d S | j d¡}|d ur@|d u r:i }||d< ||d< d S d S )Nru   Útotal_max_attemptsÚmax_attemptsrÎ   )rN   Úpopr   r�   )r   r.   ru   ÚvaluerÚ   r'   r'   r(   rÖ   X  s    


üz-ClientArgsCreator._compute_retry_max_attemptsc                 C   sP   |  d¡}|d u ri }||d< nd|v rd S | j d¡}|d u r"d}||d< d S )Nru   ÚmodeÚ
retry_moder   ©rN   r   r�   )r   r.   ru   rÞ   r'   r'   r(   r×   x  s   

z%ClientArgsCreator._compute_retry_modec                 C   s6   |  d¡}|d urd S | j d¡}|r||d< d S d S )NrR   rß   )r   r.   rR   r'   r'   r(   rŠ   †  s   
ÿÿz*ClientArgsCreator._compute_connect_timeoutc                 C   sd   |  d¡}|  d¡}|d u r| j d¡}|  |¡}||d< |d u r(| j d¡}nt|ƒ}||d< d S )Nrz   r{   )rN   r   r�   Ú_validate_min_compression_sizer
   )r   r.   Úmin_sizer   r'   r'   r(   rŒ   “  s   

ÿ
ÿz5ClientArgsCreator._compute_request_compression_configc                 C   s@   |  d¡}|d u r| j d¡}|d ur|  |¡ t|ƒ|d< d S )Nr7   )rN   r   r�   rÀ   r
   )r   r.   Údisable_expressr'   r'   r(   r“   ©  s   
ÿ
ÿz:ClientArgsCreator._compute_s3_disable_express_session_authc              	   C   s”   d}d}d|› d�}zt |ƒ}W n ttfy*   |› dt|ƒ› d�}tjj|d�‚w ||  kr5|ksHn |› d|› d	|› d
�}tjj|d�‚|S )NrÎ   i   r·   z)" for request_min_compression_size_bytes.z$ Value must be an integer. Received z	 instead.r¸   z Value must be between z and Ú.)ÚintÚ
ValueErrorÚ	TypeErrorÚtyperT   r²   r¾   )r   rá   Úmin_allowed_min_sizeÚmax_allowed_min_sizeÚerror_msg_baseÚmsgr'   r'   r(   rà   ·  s,   
ÿÿÿûÿÿÿz0ClientArgsCreator._validate_min_compression_sizec                 C   s   t |tƒr|S | ¡ dkS )Nrµ   )rº   r½   r¼   )r   Úvalr'   r'   r(   Ú_ensure_booleanÏ  s   
z!ClientArgsCreator._ensure_booleanc                 C   sÀ   |d u rd S |   |¡pi }|j}|dv s|d u r|}n|}| j||||
||j|||d�	}|d ur6|jp4i }ni }|  |¡rJ| |¡ |d urJ||d< |d urQ|jnd }t|||||||	||d�	S )N)r;   r¤   )	r5   r*   r/   ra   Úclient_endpoint_urlÚlegacy_endpoint_urlr_   r6   r7   r€   )	Úendpoint_ruleset_datard   rE   ÚbuiltinsÚclient_contextr    Úuse_sslÚrequested_auth_schemer8   )	rƒ   r�   Ú*compute_endpoint_resolver_builtin_defaultsÚhostr|   r”   rˆ   r:   r   )r   rc   rd   rK   rE   rf   r5   r<   rH   r^   ra   r    r_   r6   r7   r8   Ús3_config_rawÚservice_name_rawÚeprv2_region_nameÚresolver_builtinsrò   Úsig_versionr'   r'   r(   r[   Õ  sR   ÷

ÿÿý÷z*ClientArgsCreator._build_endpoint_resolverc
                 C   s  |r|}
n	|  ¡ s|}
nd }
| dd¡rd}n|d ur't|ƒs'| d¡dk}n| d¡dk}tj|tj|
d u r<| d¡p=dtj|
d u rH| |¡pIdtj	| j
|d d d�tj|  ||¡tj| dd¡tj|tj| dd	¡tj| dd¡tj| d
d¡tj|	tj|
tj|r‡| d¡nd tj|iS )NÚuse_accelerate_endpointFÚaddressing_styleÚvirtualÚpathrt   )r5   r<   r,   Úuse_arn_regionTÚ$s3_disable_multiregion_access_pointsÚ
account_id)Úresolver_uses_builtin_datarN   r   ÚEPRBuiltinsÚ
AWS_REGIONÚAWS_USE_FIPSÚ$_resolve_endpoint_variant_config_varÚAWS_USE_DUALSTACKÚ_resolve_use_dualstack_endpointÚAWS_STS_USE_GLOBAL_ENDPOINTrÃ   ÚAWS_S3_USE_GLOBAL_ENDPOINTr©   ÚAWS_S3_ACCELERATEÚAWS_S3_FORCE_PATH_STYLEÚAWS_S3_USE_ARN_REGIONÚAWS_S3CONTROL_USE_ARN_REGIONÚAWS_S3_DISABLE_MRAPÚ#AWS_S3_DISABLE_EXPRESS_SESSION_AUTHÚSDK_ENDPOINTÚ
ACCOUNT_IDÚget_deferred_propertyÚACCOUNT_ID_ENDPOINT_MODE)r   r5   r*   r/   ra   rî   rï   r_   r6   r7   Úgiven_endpointÚforce_path_styler'   r'   r(   rõ   !  sv   
ÿÿýÿýý
ÿÿÿÿýÿÊz<ClientArgsCreator.compute_endpoint_resolver_builtin_defaultsc                 C   sJ   |  d¡}|d u r| j d¡}|d urt|ƒtkrt dt¡ ||d< d S )Nry   zVThe configured value for user_agent_appid exceeds the maximum length of %d characters.)rN   r   r�   ÚlenÚUSERAGENT_APPID_MAXLENr    Úwarning)r   r.   ry   r'   r'   r(   r‹   �  s   
ÿÿ
þýz2ClientArgsCreator._compute_user_agent_appid_configc                 C   s*   |  d¡}|d u r| j d¡}||d< d S )Nr}   rß   )r   r.   r}   r'   r'   r(   r�   ’  s   ÿÿz;ClientArgsCreator._compute_sigv4a_signing_region_set_configc                 C   s$   | j |dtd� | j |dtd� d S )Nr~   )Ú
config_keyÚvalid_optionsr   )Ú_handle_checksum_configÚ)VALID_REQUEST_CHECKSUM_CALCULATION_CONFIGÚ)VALID_RESPONSE_CHECKSUM_VALIDATION_CONFIGrØ   r'   r'   r(   rŽ   œ  s   ý
ýz*ClientArgsCreator._compute_checksum_configc                 C   sb   |  |¡}|d u r| j |¡}t|tƒr| ¡ }||vr%tjj|||d�‚|  	||¡ |||< d S )N)r  Úconfig_valuer  )
rN   r   r�   rº   r»   r¼   rT   r²   ÚInvalidChecksumConfigErrorÚ%_register_checksum_config_feature_ids)r   r.   r  r  rÜ   r'   r'   r(   r  ¨  s   

ýz)ClientArgsCreator._handle_checksum_configc                 C   sJ   d }|dkrd|  ¡ › �}n|dkrd|  ¡ › �}|d ur#t|ƒ d S d S )Nr~   ÚFLEXIBLE_CHECKSUMS_REQ_r   ÚFLEXIBLE_CHECKSUMS_RES_)Úupperr   )r   rÜ   r  Úchecksum_config_feature_idr'   r'   r(   r"  ¾  s   ÿÿÿz7ClientArgsCreator._register_checksum_config_feature_idsc                 C   sŠ   d}|  d¡}|tju rd||< d S |  |¡}|d u r!| j |¡}t|tƒr*| ¡ }|tvr?tj	j
d|› d|› dt› d�d�‚|||< d S )	Nr6   r:   r   zThe configured value 'z' for 'z ' is invalid. Valid values are: rã   r¸   )rN   rT   ÚUNSIGNEDr   r�   rº   r»   r¼   Ú%VALID_ACCOUNT_ID_ENDPOINT_MODE_CONFIGr²   r¾   )r   r.   r  r:   r6   r'   r'   r(   r�   Ë  s,   


ÿ
ÿÿÿÿz:ClientArgsCreator._compute_account_id_endpoint_mode_configc                 C   sž   d}d}|r|j r|j }d}n| j |¡}|d u rd ||< d S t|tƒs6tjj|› dt|ƒ› d|› d�d�‚d 	d	d
„ | 
d¡D ƒ¡}|rIt|ƒ}|||< d S )Nr8   FTz, must be a comma-delimited string. Received z
 instead: rã   r¸   ú,c                 s   s,   � | ]}|  ¡ r| d d¡ dd¡V  qdS )ú Ú ú	N)ÚstripÚreplace)Ú.0Úitemr'   r'   r(   Ú	<genexpr>  s   € ý
ÿzKClientArgsCreator._compute_auth_scheme_preference_config.<locals>.<genexpr>)r8   r   r�   rº   r»   rT   r²   r¾   rç   ÚjoinÚsplitÚClientConfigString)r   rK   r.   r  Úset_in_config_objectrÜ   r'   r'   r(   r‘   é  s.   

ÿÿþ
þz8ClientArgsCreator._compute_auth_scheme_preference_configc                 C   s6   |r|j r|j }t|tƒrt|ƒ|d< d S d S d S d S )Nr:   )r:   rº   r»   r4  )r   rK   r.   rÜ   r'   r'   r(   r’     s   

ýz3ClientArgsCreator._compute_signature_version_configr   )NNN))Ú__name__Ú
__module__Ú__qualname__r)   rn   rM   r�   r„   rŸ   rƒ   r”   r…   r¥   r©   r­   rÀ   rª   r¦   rÃ   rÅ   rÄ   r§   r•   r‰   rÖ   r×   rŠ   rŒ   r“   rà   rí   r[   rõ   r‹   r�   rŽ   r  r"  r�   r‘   r’   r'   r'   r'   r(   r   U   sZ    	
ø
ó  

	
 L`
#r   c                   @   s   e Zd ZdZdS )ÚConfigObjectWrapperz8Base class to mark values set via in-code Config object.N)r6  r7  r8  Ú__doc__r'   r'   r'   r(   r9    s    r9  c                       s   e Zd Zd‡ fdd„	Z‡  ZS )r4  Nc                    s   t ƒ  | |¡S r   )ÚsuperÚ__new__)ÚclsrÜ   ©Ú	__class__r'   r(   r<    s   zClientConfigString.__new__r   )r6  r7  r8  r<  Ú__classcell__r'   r'   r>  r(   r4    s    r4  )&r:  rO   ÚloggingrÏ   Úbotocore.exceptionsrT   Úbotocore.parsersÚbotocore.serializeÚbotocore.configr   Úbotocore.endpointr   Úbotocore.regionsr   r  r   Úbotocore.signersr   Úbotocore.useragentr   r   Úbotocore.utilsr	   r
   r   Ú	getLoggerr6  r    r±   rÆ   r  r  r  r(  r   r9  r»   r4  r'   r'   r'   r(   Ú<module>   sB   
þ       E