File: //home/arjun/projects/env/lib/python3.10/site-packages/botocore/__pycache__/utils.cpython-310.pyc
o
*we:� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlZd dlZd dl
Z
d dlZd dlZd dlmZ d dlmZ d dlmZmZ d dlZd dlmZ d dlmZ d dlZd dlZd dlZd dl m!Z! d dl m"Z" d d l m#Z# d d
l m$Z$ d dl m%Z% d dl m&Z& d d
l m'Z' d dl m(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZM e�NeO�ZPdZQdZRdZSdZTdZUe�Vd�ZWeFe;e9e:fZXdgZYi dd�dd�dd�dd�dd�d d!�d"d#�d$d%�d&d'�d(d)�d*d+�d,d-�d.d/�d0d1�d2d3�d4d5�d6d7�i d8d9�d:d;�d<d=�d>d?�d@dA�dBdC�dDdE�dFdG�dHdI�dJdK�dLdM�dNdO�dPdQ�dRdS�dTdU�dVdQ�dWdX��i dYdZ�d[d\�d]d^�d_d`�dad`�dbd7�dcd9�dddA�dedf�dgdh�didj�dkdl�dmdn�dodp�dqdr�dsd\�dtdu��i dvdw�dxdw�dydz�d{dl�d|d}�d~d�d�d��d�df�d�d��d�d��d�d��d�dn�d�d��d�d��d�d��d�d��d�d���d�d�d�dKd�d���ZZejVd�ej[d��Z\d�d�� Z]d�d�� Z^d�d�� Z_d�d�� Z`d�d�� Zad�d�� Zbd�d�� Zcd�d�� Zdd�d�� Ze�dDd�d��Zfd�d�� ZgG d�d�� d�eh�ZiG d�d�� d�eh�ZjG d�d�� d��ZkG d�d�� d�ek�ZlG d�d�� d��ZmG d�d�� d�ek�Zn�dEd�d��Zod�d�� Zpeqfd�dZrd�dĄ ZseUfd�dƄZteUfd�dȄZud�dʄ Zvd�d̄ Zwd�d΄ Zxd�dЄ Zy�dFd�d҄Zz�dEd�dԄZ{d�dք Z|d�d Z}G d�dڄ dڃZ~G d�d܄ d܃Zd�dބ Z�d�d� Z�d�d� Z�d�d� Z�d�d� Z�d�d� Z� �dFd�d�Z� �dFd�d�Z�d�d� Z�d�d� Z�d�d� Z�d�d� Z�d�d�� Z��dDd�d��Z��dDd�d��Z�d�d�� Z�d�d�� Z�G d��d � �d �Z�G �d�d� �d�Z�G �d�d� �de��Z�G �d�d� �d�Z�G �d�d� �d�Z�G �d �d
� �d
�Z�G �d�d� �d�Z�G �d
�d� �d�Z�G �d�d� �de��Z�G �d�d� �d�Z��d�d� Z��d�d� Z��d�d� Z��dG�d�d�Z��d�d� Z��d�d� Z��d �d!� Z��d"�d#� Z�G �d$�d%� �d%�Z�G �d&�d'� �d'�Z�G �d(�d)� �d)�Z��d*�d+� Z�G �d,�d-� �d-�Z�d�d�iZ�i dd�d d!�d"d#��d.�d/�d&d'�d(d)�d*d+�d,d-�d.d/�d0d1�d2d3�d4d5�d<d=�dBdC�d>d?�dDdE�dFdG�i dHdI�dJdK�dLdM�dTdU�dVdQ�dWdX�d]d^�d_d`��d0�d1�dbd7�dcd9�dddA�dedf��d2�d3��d4�d5��d6�d7�dgdh��i �d8�d9�didj�dkdl��d:�d;�dmdn��d<�d=�dodp�dqdr�dtdu�dsd\�dxdw�dydz��d>�d?�d�d��d�d��d�d���d@�dA��d�d�d�d��dBd�d��dC��Z�dS (H � N)�
ip_address)�Path)�
getproxies�proxy_bypass)�tzutc)�LocationParseError)�HEX_PAT)�IPV4_PAT)�IPV6_ADDRZ_PAT)�IPV6_PAT)�LS32_PAT)�UNRESERVED_PAT)�ZONE_ID_PAT)�HAS_CRT�IPV4_RE�
IPV6_ADDRZ_RE�
MD5_AVAILABLE�UNSAFE_URL_CHARS�OrderedDict�get_md5�get_tzinfo_options�json�quote�urlparse�urlsplit�
urlunsplit�zip_longest)�ClientError�ConfigNotFound�ConnectionClosedError�ConnectTimeoutError�EndpointConnectionError�HTTPClientError�InvalidDNSNameError�!InvalidEndpointConfigurationError�InvalidExpressionError�InvalidHostLabelError�InvalidIMDSEndpointError�InvalidIMDSEndpointModeError�InvalidRegionError�MetadataRetrievalError�MissingDependencyException�ReadTimeoutError�SSOTokenLoadError�UnsupportedOutpostResourceError�*UnsupportedS3AccesspointConfigurationError�UnsupportedS3ArnError�UnsupportedS3ConfigurationError�UnsupportedS3ControlArnError�&UnsupportedS3ControlConfigurationError� zhttp://169.254.169.254/zhttp://[fd00:ec2::254]/)�ipv4�ipv6z-._~z[a-z0-9][a-z0-9\-]*[a-z0-9]� dualstack�a4bzalexa-for-business�alexaforbusinesszapi.mediatailor�mediatailorzapi.pricing�pricingz
api.sagemaker� sagemaker�
apigatewayzapi-gatewayzapplication-autoscalingzapplication-auto-scaling�
appstream2� appstream�autoscalingzauto-scalingzautoscaling-planszauto-scaling-plans�cez
cost-explorer�
cloudhsmv2zcloudhsm-v2�cloudsearchdomainzcloudsearch-domainzcognito-idpzcognito-identity-provider�configzconfig-service�curzcost-and-usage-report-servicezdata.iotziot-data-planez
data.jobs.iotziot-jobs-data-planezdata.mediastorezmediastore-data�datapipelinez
data-pipeline�
devicefarmzdevice-farmzdevices.iot1clickziot-1click-devices-service�
directconnectzdirect-connect� discoveryzapplication-discovery-service�dmszdatabase-migration-service�dszdirectory-service�dynamodbstreamszdynamodb-streams�elasticbeanstalkzelastic-beanstalk�elasticfilesystem�efs�elasticloadbalancingzelastic-load-balancing�elasticmapreduce�emr�elastictranscoderzelastic-transcoder�elb�elbv2zelastic-load-balancing-v2�email�seszentitlement.marketplacezmarketplace-entitlement-service�eszelasticsearch-service�events�eventbridgezcloudwatch-eventsziot-dataz
iot-jobs-dataziot1click-devicesziot1click-projectsziot-1click-projects�kinesisanalyticszkinesis-analytics�kinesisvideoz
kinesis-videoz
lex-modelszlex-model-building-servicezlex-runtimezlex-runtime-service�logszcloudwatch-logs�machinelearningzmachine-learningzmarketplace-entitlement�marketplacecommerceanalyticszmarketplace-commerce-analyticszmetering.marketplacezmarketplace-metering�meteringmarketplace�mghz
migration-hubz
models.lex�
monitoring�
cloudwatchzmturk-requester�mturkzopsworks-cm�
opsworkscmzprojects.iot1click�resourcegroupstaggingapizresource-groups-tagging-api�route53zroute-53�route53domainszroute-53-domainszruntime.lexzruntime.sagemakerzsagemaker-runtime�sdb�simpledb�secretsmanagerzsecrets-manager�serverlessrepo�serverlessapplicationrepository�servicecatalogzservice-catalog�sfnzstorage-gateway)�states�
stepfunctions�storagegatewayzstreams.dynamodb�taggingz^X-Amz-Checksum-([a-z0-9]*)$)�flagsc C s( t | t�r| S t | t�r| �� dkS dS )z~Ensures a boolean value if a string or boolean is provided
For strings, the value for True/False is case insensitive
�trueF)�
isinstance�bool�str�lower��val� r| �G/home/arjun/projects/env/lib/python3.10/site-packages/botocore/utils.py�ensure_boolean� s
r~ c C sP | � d�}|dur|�� }|tvr|td�}tdi |���|S | � d�r&dS dS )z�Resolving IMDS endpoint mode to either IPv6 or IPv4.
ec2_metadata_service_endpoint_mode takes precedence over imds_use_ipv6.
�"ec2_metadata_service_endpoint_modeN)�mode�valid_modes�
imds_use_ipv6r6 r5 r| )�get_config_variablery �METADATA_ENDPOINT_MODESr( )�session�
endpoint_mode�lendpoint_mode�error_msg_kwargsr| r| r} �resolve_imds_endpoint_mode� s ��
r� c C s2 t | d�o| j�dd�o| j�d�dko| jdkS )z�Determines if the provided shape is the special header type jsonvalue.
:type shape: botocore.shape
:param shape: Shape to be inspected for the jsonvalue trait.
:return: True if this type is a jsonvalue, False otherwise
:rtype: Bool
�
serialization� jsonvalueF�location�header�string)�hasattrr� �get� type_name)�shaper| r| r} �is_json_value_header� s
���r� c C s<