o
    "`^hY                     @   s  d dl mZ d dlmZ dddZG dd deZG dd	 d	eZG d
d deZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZG dd deZG dd deZG dd deejjZG dd deZG dd deejjejjZG d d! d!eejjZG d"d# d#eejjZG d$d% d%eZG d&d' d'eZG d(d) d)eZG d*d+ d+eZG d,d- d-eZG d.d/ d/eZG d0d1 d1eZG d2d3 d3eZ G d4d5 d5eZ!G d6d7 d7e!Z"G d8d9 d9e!Z#G d:d; d;e!e$Z%G d<d= d=e!Z&G d>d? d?eZ'G d@dA dAeZ(G dBdC dCeZ)G dDdE dEeZ*G dFdG dGeZ+G dHdI dIeZ,G dJdK dKe+Z-G dLdM dMe+Z.G dNdO dOe+Z/G dPdQ dQe+e$Z0G dRdS dSe+Z1G dTdU dUeZ2G dVdW dWeZ3G dXdY dYeZ4G dZd[ d[eZ5G d\d] d]eZ6G d^d_ d_eZ7G d`da daeZ8G dbdc dceZ9G ddde deeZ:G dfdg dgeZ;G dhdi dieZ<G djdk dkeZ=G dldm dmeZ>G dndo doe>Z?G dpdq dqe@ZAG drds dse@ZBG dtdu dueZCG dvdw dweZDG dxdy dyeZEG dzd{ d{eZFG d|d} d}eZGG d~d deZHG dd deZIG dd deZJG dd deZKG dd deZLG dd deZMG dd deMZNG dd deMZOG dd deZPG dd deZQG dd deZRG dd deReSZTG dd deRZUG dd deZVG dd deVZWG dd deZXG dd deZYG dd deZZG dd deZ[G dd deZ\G dd de\Z]G dd deZ^G dd de^Z_G dd de^Z`G dd deZaG dd deZbG dd deZcG dd deZdG dd deZeG dd deZfG dd deZgG dd degZhG dd degZidS )    )requests)urllib3Nc                 C   s&   |d u rd}|d u ri }| |i |S N r   )exception_clsargskwargsr   r   Q/home/air/shanriGPT/back/venv/lib/python3.10/site-packages/botocore/exceptions.py_exception_from_packed_args   s
   r
   c                   @   s$   e Zd ZdZdZdd Zdd ZdS )BotoCoreErrorz~
    The base exception class for BotoCore exceptions.

    :ivar msg: The descriptive message associated with the error.
    zAn unspecified error occurredc                 K   (   | j jdi |}t| | || _d S r   fmtformat	Exception__init__r   selfr   msgr   r   r	   r   (      
zBotoCoreError.__init__c                 C   s   t | jd | jffS N)r
   	__class__r   r   r   r   r	   
__reduce__-   s   zBotoCoreError.__reduce__N)__name__
__module____qualname____doc__r   r   r   r   r   r   r	   r      s
    r   c                   @      e Zd ZdZdZdS )DataNotFoundErrorz
    The data associated with a particular path could not be loaded.

    :ivar data_path: The data path that the user attempted to load.
    z$Unable to load data for: {data_path}Nr   r   r   r   r   r   r   r   r	   r   1       r   c                   @   r   )UnknownServiceErrorzwRaised when trying to load data for an unknown service.

    :ivar service_name: The name of the unknown service.

    zQUnknown service: '{service_name}'. Valid service names are: {known_service_names}Nr    r   r   r   r	   r"   ;   s    r"   c                   @   r   )UnknownRegionErrorztRaised when trying to load data for an unknown region.

    :ivar region_name: The name of the unknown region.

    z,Unknown region: '{region_name}'. {error_msg}Nr    r   r   r   r	   r#   H   r!   r#   c                   @   r   )ApiVersionNotFoundErrorz
    The data associated with either the API version or a compatible one
    could not be loaded.

    :ivar data_path: The data path that the user attempted to load.
    :ivar api_version: The API version that the user attempted to load.
    z2Unable to load data {data_path} for: {api_version}Nr    r   r   r   r	   r$   R       r$   c                       s*   e Zd ZdZd fdd	Zdd Z  ZS )HTTPClientErrorz5An HTTP Client raised an unhandled exception: {error}Nc                    s"   || _ || _t jdi | d S r   )requestresponsesuperr   )r   r'   r(   r   r   r   r	   r   a   s   zHTTPClientError.__init__c                 C   s   t | j| j| jf| jffS r   )r
   r   r'   r(   r   r   r   r   r	   r   f   s
   
zHTTPClientError.__reduce__NN)r   r   r   r   r   r   __classcell__r   r   r*   r	   r&   ^   s    r&   c                   @      e Zd ZdZdS )ConnectionErrorz8An HTTP Client failed to establish a connection: {error}Nr   r   r   r   r   r   r   r	   r.   n       r.   c                   @   r-   )InvalidIMDSEndpointErrorz;Invalid endpoint EC2 Instance Metadata endpoint: {endpoint}Nr/   r   r   r   r	   r1   r   r0   r1   c                   @   r-   )InvalidIMDSEndpointModeErrorzkInvalid EC2 Instance Metadata endpoint mode: {mode} Valid endpoint modes (case-insensitive): {valid_modes}.Nr/   r   r   r   r	   r2   v       r2   c                   @   r-   )EndpointConnectionErrorz7Could not connect to the endpoint URL: "{endpoint_url}"Nr/   r   r   r   r	   r4   }   r0   r4   c                   @   r-   )SSLErrorz0SSL validation failed for {endpoint_url} {error}Nr/   r   r   r   r	   r5      r0   r5   c                   @   r-   )ConnectionClosedErrorz^Connection was closed before we received a valid response from endpoint URL: "{endpoint_url}".Nr/   r   r   r   r	   r6      r3   r6   c                   @   r-   )ReadTimeoutErrorz.Read timeout on endpoint URL: "{endpoint_url}"Nr/   r   r   r   r	   r7      s    r7   c                   @   r-   )ConnectTimeoutErrorz1Connect timeout on endpoint URL: "{endpoint_url}"Nr/   r   r   r   r	   r8      r0   r8   c                   @   r-   )ProxyConnectionErrorz-Failed to connect to proxy URL: "{proxy_url}"Nr/   r   r   r   r	   r9      r0   r9   c                   @   r-   )ResponseStreamingErrorz=An error occurred while reading from response stream: {error}Nr/   r   r   r   r	   r:      r0   r:   c                   @   r   )NoCredentialsErrorz(
    No credentials could be found.
    zUnable to locate credentialsNr    r   r   r   r	   r;          r;   c                   @   r   )NoAuthTokenErrorz0
    No authorization token could be found.
    z$Unable to locate authorization tokenNr    r   r   r   r	   r=      r<   r=   c                   @   r   )TokenRetrievalErrorz
    Error attempting to retrieve a token from a remote source.

    :ivar provider: The name of the token provider.
    :ivar error_msg: The msg explaining why the token could not be retrieved.

    z8Error when retrieving token from {provider}: {error_msg}Nr    r   r   r   r	   r>      r%   r>   c                   @   r   )PartialCredentialsErrorzj
    Only partial credentials were found.

    :ivar cred_var: The missing credential variable name.

    z<Partial credentials found in {provider}, missing: {cred_var}Nr    r   r   r   r	   r?          r?   c                   @   r   )CredentialRetrievalErrorz
    Error attempting to retrieve credentials from a remote source.

    :ivar provider: The name of the credential provider.
    :ivar error_msg: The msg explaining why credentials could not be
        retrieved.

    z>Error when retrieving credentials from {provider}: {error_msg}Nr    r   r   r   r	   rA      s    	rA   c                   @   r   )UnknownSignatureVersionErrorz~
    Requested Signature Version is not known.

    :ivar signature_version: The name of the requested signature version.
    z/Unknown Signature Version: {signature_version}.Nr    r   r   r   r	   rB      r!   rB   c                   @   r   )ServiceNotInRegionErrorz
    The service is not available in requested region.

    :ivar service_name: The name of the service.
    :ivar region_name: The name of the region.
    z<Service {service_name} not available in region {region_name}Nr    r   r   r   r	   rC      r@   rC   c                   @   r-   )BaseEndpointResolverErrorzBase error for endpoint resolving errors.

    Should never be raised directly, but clients can catch
    this exception if they want to generically handle any errors
    during the endpoint resolution process.

    Nr   r   r   r   r   r   r   r	   rD      r0   rD   c                   @   r   )NoRegionErrorzNo region was specified.zYou must specify a region.Nr    r   r   r   r	   rF          rF   c                   @   r   )EndpointVariantErrorz
    Could not construct modeled endpoint variant.

    :ivar error_msg: The message explaining why the modeled endpoint variant
        is unable to be constructed.

    zMUnable to construct a modeled endpoint with the following variant(s) {tags}: Nr    r   r   r   r	   rH          	rH   c                   @   r   )UnknownEndpointErrorz
    Could not construct an endpoint.

    :ivar service_name: The name of the service.
    :ivar region_name: The name of the region.
    zJUnable to construct an endpoint for {service_name} in region {region_name}Nr    r   r   r   r	   rJ         rJ   c                   @   r   )UnknownFIPSEndpointErrorz
    Could not construct a FIPS endpoint.

    :ivar service_name: The name of the service.
    :ivar region_name: The name of the region.
    zThe provided FIPS pseudo-region "{region_name}" is not known for the service "{service_name}". A FIPS compliant endpoint cannot be constructed.Nr    r   r   r   r	   rL     rK   rL   c                   @   r   )ProfileNotFoundz
    The specified configuration profile was not found in the
    configuration file.

    :ivar profile: The name of the profile the user attempted to load.
    z1The config profile ({profile}) could not be foundNr    r   r   r   r	   rM   %  r@   rM   c                   @   r   )ConfigParseErrorzj
    The configuration file could not be parsed.

    :ivar path: The path to the configuration file.
    z#Unable to parse config file: {path}Nr    r   r   r   r	   rN   0  r!   rN   c                   @   r   )ConfigNotFoundzs
    The specified configuration file could not be found.

    :ivar path: The path to the configuration file.
    z6The specified config file ({path}) could not be found.Nr    r   r   r   r	   rO   :  r!   rO   c                   @   r   )MissingParametersErrorax  
    One or more required parameters were not supplied.

    :ivar object: The object that has missing parameters.
        This can be an operation or a parameter (in the
        case of inner params).  The str() of this object
        will be used so it doesn't need to implement anything
        other than str().
    :ivar missing: The names of the missing parameters.
    zJThe following required parameters are missing for {object_name}: {missing}Nr    r   r   r   r	   rP   D  s    rP   c                   @   r   )ValidationErrora3  
    An exception occurred validating parameters.

    Subclasses must accept a ``value`` and ``param``
    argument in their ``__init__``.

    :ivar value: The value that was being validated.
    :ivar param: The parameter that failed validation.
    :ivar type_name: The name of the underlying type.
    z@Invalid value ('{value}') for param {param} of type {type_name} Nr    r   r   r   r	   rQ   V  s    rQ   c                   @   r-   )ParamValidationErrorz%Parameter validation failed:
{report}Nr/   r   r   r   r	   rR   e  r0   rR   c                   @   r   )UnknownKeyErrorz
    Unknown key in a struct parameter.

    :ivar value: The value that was being checked.
    :ivar param: The name of the parameter.
    :ivar choices: The valid choices the value can be.
    zEUnknown key '{value}' for param '{param}'.  Must be one of: {choices}Nr    r   r   r   r	   rS   l  rI   rS   c                   @   r   )
RangeErrora  
    A parameter value was out of the valid range.

    :ivar value: The value that was being checked.
    :ivar param: The parameter that failed validation.
    :ivar min_value: The specified minimum value.
    :ivar max_value: The specified maximum value.
    zKValue out of range for param {param}: {min_value} <= {value} <= {max_value}Nr    r   r   r   r	   rT   {  s    
rT   c                   @   r   )UnknownParameterErrorz
    Unknown top level parameter.

    :ivar name: The name of the unknown parameter.
    :ivar operation: The name of the operation.
    :ivar choices: The valid choices the parameter name can be.
    zPUnknown parameter '{name}' for operation {operation}.  Must be one of: {choices}Nr    r   r   r   r	   rU     rI   rU   c                   @   r   )InvalidRegionErrorz{
    Invalid region_name provided to client or resource.

    :ivar region_name: region_name that was being validated.
    zFProvided region_name '{region_name}' doesn't match a supported format.Nr    r   r   r   r	   rV     r!   rV   c                   @   r   )AliasConflictParameterErrorz
    Error when an alias is provided for a parameter as well as the original.

    :ivar original: The name of the original parameter.
    :ivar alias: The name of the alias
    :ivar operation: The name of the operation.
    zvParameter '{original}' and its alias '{alias}' were provided for operation {operation}.  Only one of them may be used.Nr    r   r   r   r	   rW     rI   rW   c                   @   r   )UnknownServiceStylez]
    Unknown style of service invocation.

    :ivar service_style: The style requested.
    z6The service style ({service_style}) is not understood.Nr    r   r   r   r	   rX     r!   rX   c                   @   r-   )PaginationErrorz"Error during pagination: {message}Nr/   r   r   r   r	   rY     r0   rY   c                   @   r-   )OperationNotPageableErrorz/Operation cannot be paginated: {operation_name}Nr/   r   r   r   r	   rZ     r0   rZ   c                   @   r   )ChecksumErrorz<The expected checksum did not match the calculated checksum.z{Checksum {checksum_type} failed, expected checksum {expected_checksum} did not match calculated checksum {actual_checksum}.Nr    r   r   r   r	   r[         r[   c                   @   r   )UnseekableStreamErrorz;Need to seek a stream, but stream does not support seeking.zFNeed to rewind the stream {stream_object}, but stream is not seekable.Nr    r   r   r   r	   r]     r\   r]   c                       s$   e Zd ZdZdZ fddZ  ZS )WaiterErrorz%Waiter failed to reach desired state.zWaiter {name} failed: {reason}c                    s   t  j||d || _d S )N)namereason)r)   r   last_response)r   r_   r`   ra   r*   r   r	   r     s   
zWaiterError.__init__)r   r   r   r   r   r   r,   r   r   r*   r	   r^     s    r^   c                   @   r   )IncompleteReadErrorz6HTTP response did not return expected number of bytes.zB{actual_bytes} read, but total bytes expected is {expected_bytes}.Nr    r   r   r   r	   rb     r\   rb   c                   @   r   )InvalidExpressionErrorz,Expression is either invalid or too complex.zCInvalid expression {expression}: Only dotted lookups are supported.Nr    r   r   r   r	   rc     rG   rc   c                   @   r   )UnknownCredentialErrorz=Tried to insert before/after an unregistered credential type.z"Credential named {name} not found.Nr    r   r   r   r	   rd     rG   rd   c                   @   r   )WaiterConfigErrorz+Error when processing waiter configuration.z+Error processing waiter config: {error_msg}Nr    r   r   r   r	   re     rG   re   c                   @   r   )UnknownClientMethodErrorzEError when trying to access a method on a client that does not exist.z*Client does not have method: {method_name}Nr    r   r   r   r	   rf     rG   rf   c                   @   r   ) UnsupportedSignatureVersionErrorz:Error when trying to use an unsupported Signature Version.z;Signature version(s) are not supported: {signature_version}Nr    r   r   r   r	   rg     rG   rg   c                       s0   e Zd ZdZ fddZdd Zdd Z  ZS )ClientErrorziAn error occurred ({error_code}) when calling the {operation_name} operation{retry_info}: {error_message}c                    sV   |  |}|di }| jj|dd|dd||d}t | || _|| _d S )NErrorCodeUnknownMessage)
error_codeerror_messageoperation_name
retry_info)_get_retry_infogetMSG_TEMPLATEr   r)   r   r(   ro   )r   error_responsero   rp   errorr   r*   r   r	   r     s   



zClientError.__init__c                 C   s<   d}d|v r|d }| ddrd|v rd|d  d}|S )N ResponseMetadataMaxAttemptsReachedFRetryAttemptsz (reached max retries: ))rr   )r   r(   rp   metadatar   r   r	   rq     s   zClientError._get_retry_infoc                 C   s   t | j| jffS r   )rh   r(   ro   r   r   r   r	   r   &  s   zClientError.__reduce__)r   r   r   rs   r   rq   r   r,   r   r   r*   r	   rh     s    rh   c                   @      e Zd ZdS )EventStreamErrorNr   r   r   r   r   r   r	   r}   -      r}   c                   @   r-   )UnsupportedTLSVersionWarningz:Warn when an openssl version that uses TLS 1.2 is requiredNrE   r   r   r   r	   r   1  s    r   c                   @   r|   )ImminentRemovalWarningNr~   r   r   r   r	   r   7  r   r   c                   @   r   )InvalidDNSNameErrorzEError when virtual host path is forced on a non-DNS compatible bucketa  Bucket named {bucket_name} is not DNS compatible. Virtual hosted-style addressing cannot be used. The addressing style can be configured by removing the addressing_style value or setting that value to 'path' or 'auto' in the AWS Config file or in the botocore.client.Config object.Nr    r   r   r   r	   r   ;  r\   r   c                   @   r   )InvalidS3AddressingStyleErrorz-Error when an invalid path style is specifiedzfS3 addressing style {s3_addressing_style} is invalid. Valid options are: 'auto', 'virtual', and 'path'Nr    r   r   r   r	   r   G  r\   r   c                   @   r   )UnsupportedS3ArnErrorz?Error when S3 ARN provided to Bucket parameter is not supportedzeS3 ARN {arn} provided to "Bucket" parameter is invalid. Only ARNs for S3 access-points are supported.Nr    r   r   r   r	   r   P  r\   r   c                   @   r   )UnsupportedS3ControlArnErrorzCError when S3 ARN provided to S3 control parameter is not supportedz<S3 ARN "{arn}" provided is invalid for this operation. {msg}Nr    r   r   r   r	   r   Y  rG   r   c                   @   r   )InvalidHostLabelErrorz>Error when an invalid host label would be bound to an endpointzJInvalid host label to be bound to the hostname of the endpoint: "{label}".Nr    r   r   r   r	   r   _  r\   r   c                   @   r   )UnsupportedOutpostResourceErrorzDError when S3 Outpost ARN provided to Bucket parameter is incompletezS3 Outpost ARN resource "{resource_name}" provided to "Bucket" parameter is invalid. Only ARNs for S3 Outpost arns with an access-point sub-resource are supported.Nr    r   r   r   r	   r   h  r\   r   c                   @   r   )UnsupportedS3ConfigurationErrorBError when an unsupported configuration is used with access-pointsz.Unsupported configuration when using S3: {msg}Nr    r   r   r   r	   r   r  rG   r   c                   @   r   )*UnsupportedS3AccesspointConfigurationErrorr   z<Unsupported configuration when using S3 access-points: {msg}Nr    r   r   r   r	   r   x  rG   r   c                   @   r   )*InvalidEndpointDiscoveryConfigurationErrorz@Error when invalid value supplied for endpoint_discovery_enabledzUnsupported configuration value for endpoint_discovery_enabled. Expected one of ("true", "false", "auto") but got {config_value}.Nr    r   r   r   r	   r   ~  r\   r   c                   @   r   )&UnsupportedS3ControlConfigurationErrorz?Error when an unsupported configuration is used with S3 Controlz6Unsupported configuration when using S3 Control: {msg}Nr    r   r   r   r	   r     rG   r   c                   @   r   )InvalidRetryConfigurationError3Error when invalid retry configuration is specifiedzvCannot provide retry configuration for "{retry_config_option}". Valid retry configuration options are: {valid_options}Nr    r   r   r   r	   r     r\   r   c                   @   r   )InvalidMaxRetryAttemptsErrorr   zrValue provided to "max_attempts": {provided_max_attempts} must be an integer greater than or equal to {min_value}.Nr    r   r   r   r	   r     r\   r   c                   @   r   )InvalidRetryModeErrorz8Error when invalid retry mode configuration is specifiedzWInvalid value provided to "mode": "{provided_retry_mode}" must be one of: {valid_modes}Nr    r   r   r   r	   r     r\   r   c                   @   r   )+InvalidS3UsEast1RegionalEndpointConfigErrorz?Error for invalid s3 us-east-1 regional endpoints configurationzS3 us-east-1 regional endpoint option {s3_us_east_1_regional_endpoint_config} is invalid. Valid options are: "legacy", "regional"Nr    r   r   r   r	   r     r\   r   c                   @   r   )&InvalidSTSRegionalEndpointsConfigErrorzDError when invalid sts regional endpoints configuration is specifiedzqSTS regional endpoints option {sts_regional_endpoints_config} is invalid. Valid options are: "legacy", "regional"Nr    r   r   r   r	   r     r\   r   c                   @   r-   )StubResponseErrorzDError getting response stub for operation {operation_name}: {reason}Nr/   r   r   r   r	   r     r3   r   c                   @   r|   )StubAssertionErrorNr~   r   r   r   r	   r     r   r   c                   @   r|   )UnStubbedResponseErrorNr~   r   r   r   r	   r     r   r   c                   @   r-   )InvalidConfigError{error_msg}Nr/   r   r   r   r	   r     r0   r   c                   @   r-   )InfiniteLoopConfigErrorzInfinite loop in credential configuration detected. Attempting to load from profile {source_profile} which has already been visited. Visited profiles: {visited_profiles}Nr/   r   r   r   r	   r     r3   r   c                   @   r-   )RefreshWithMFAUnsupportedErrorz/Cannot refresh credentials: MFA token required.Nr/   r   r   r   r	   r     r0   r   c                   @   r-   )MD5UnavailableErrorz,This system does not support MD5 generation.Nr/   r   r   r   r	   r     r0   r   c                   @   r-   )MissingDependencyExceptionzMissing Dependency: {msg}Nr/   r   r   r   r	   r     r0   r   c                   @   r-   )MetadataRetrievalErrorz&Error retrieving metadata: {error_msg}Nr/   r   r   r   r	   r     r0   r   c                   @   r|   )UndefinedModelAttributeErrorNr~   r   r   r   r	   r     r   r   c                   @   s   e Zd ZdZdd ZdS )MissingServiceIdErrorzrThe model being used for the service {service_name} is missing the serviceId metadata property, which is required.c                 K   r   r   r   r   r   r   r	   r     r   zMissingServiceIdError.__init__N)r   r   r   r   r   r   r   r   r	   r     s    r   c                   @   r-   )SSOErrorzYAn unspecified error happened when resolving AWS credentials or an access token from SSO.Nr/   r   r   r   r	   r     r3   r   c                   @   r-   )SSOTokenLoadErrorz$Error loading SSO Token: {error_msg}Nr/   r   r   r   r	   r     r0   r   c                   @   r-   )UnauthorizedSSOTokenErrorzThe SSO session associated with this profile has expired or is otherwise invalid. To refresh this SSO session run aws sso login with the corresponding profile.Nr/   r   r   r   r	   r      r3   r   c                   @   r-   )CapacityNotAvailableErrorz(Insufficient request capacity available.Nr/   r   r   r   r	   r     r0   r   c                   @   r-   )InvalidProxiesConfigErrorz;Invalid configuration value(s) provided for proxies_config.Nr/   r   r   r   r	   r     r0   r   c                   @   r-   )InvalidDefaultsModezbClient configured with invalid defaults mode: {mode}. Valid defaults modes include: {valid_modes}.Nr/   r   r   r   r	   r     r3   r   c                   @   r-   )AwsChunkedWrapperErrorr   Nr/   r   r   r   r	   r     r0   r   c                   @   r-   )FlexibleChecksumErrorr   Nr/   r   r   r   r	   r     r0   r   c                   @   r-   )!InvalidEndpointConfigurationErrorz%Invalid endpoint configuration: {msg}Nr/   r   r   r   r	   r     r0   r   c                   @   r   )EndpointProviderErrorz)Base error for the EndpointProvider class{msg}Nr    r   r   r   r	   r   #  rG   r   c                   @   r   )EndpointResolutionErrorz4Error when input parameters resolve to an error ruler   Nr    r   r   r   r	   r   )  rG   r   c                   @   r-   )$UnknownEndpointResolutionBuiltInNamez%Unknown builtin variable name: {name}Nr/   r   r   r   r	   r   /  r0   r   r+   )jbotocore.vendoredr   #botocore.vendored.requests.packagesr   r
   r   r   r   r"   r#   r$   r&   r.   r1   r2   r4   
exceptionsr5   r6   ReadTimeoutr7   ConnectTimeoutr8   
ProxyErrorr9   r:   r;   r=   r>   r?   rA   rB   rC   rD   rF   rH   
ValueErrorrJ   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r]   r^   rb   rc   rd   re   rf   rg   rh   r}   Warningr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   AssertionErrorr   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	   <module>   s   










	
%			
				
	