Ë
    £ªðiÕì  ã                   ób  — 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Zddl	Z	ddl
mZmZ ddlmZmZ ddlmZmZmZmZmZmZ  ej.                  e«      ZeZ G d„ d«      Zd„ Zd	„ Z G d
„ de«      Z G d„ d«      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&e$«      Z' G d„ de&e!«      Z( G d„ de&e%«      Z) G d „ d!e$«      Z* G d"„ d#e «      Z+ G d$„ d%e «      Z, G d&„ d'e+e$«      Z- G d(„ d)e,e%«      Z. G d*„ d+e+e!«      Z/e#e"e*e-e/e.d,œZ0y)-a»  Response parsers for the various protocol types.

The module contains classes that can take an HTTP response, and given
an output shape, parse the response into a dict according to the
rules in the output shape.

There are many similarities amongst the different protocols with regard
to response parsing, and the code is structured in a way to avoid
code duplication when possible.  The diagram below is a diagram
showing the inheritance hierarchy of the response classes.

::


                                +-------------------+
                                |   ResponseParser  |
                                +-------------------+
                                ^    ^    ^   ^   ^
                                |    |    |   |   |
                                |    |    |   |   +--------------------------------------------+
                                |    |    |   +-----------------------------+                  |
                                |    |    |                                 |                  |
           +--------------------+    |    +----------------+                |                  |
           |                         |                     |                |                  |
+----------+----------+       +------+-------+     +-------+------+  +------+-------+   +------+--------+
|BaseXMLResponseParser|       |BaseRestParser|     |BaseJSONParser|  |BaseCBORParser|   |BaseRpcV2Parser|
+---------------------+       +--------------+     +--------------+  +----------+---+   +-+-------------+
          ^         ^          ^           ^        ^        ^                  ^         ^
          |         |          |           |        |        |                  |         |
          |         |          |           |        |        |                  |         |
          |        ++----------+-+       +-+--------+---+    |              +---+---------+-+
          |        |RestXMLParser|       |RestJSONParser|    |              |RpcV2CBORParser|
    +-----+-----+  +-------------+       +--------------+    |              +---+---------+-+
    |QueryParser|                                            |
    +-----------+                                       +----+-----+
                                                        |JSONParser|
                                                        +----------+

The diagram above shows that there is a base class, ``ResponseParser`` that
contains logic that is similar amongst all the different protocols (``query``,
``json``, ``rest-json``, ``rest-xml``, ``smithy-rpc-v2-cbor``).  Amongst the various services
there is shared logic that can be grouped several ways:

* The ``query`` and ``rest-xml`` both have XML bodies that are parsed in the
  same way.
* The ``json`` and ``rest-json`` protocols both have JSON bodies that are
  parsed in the same way.
* The ``rest-json`` and ``rest-xml`` protocols have additional attributes
  besides body parameters that are parsed the same (headers, query string,
  status code).

This is reflected in the class diagram above.  The ``BaseXMLResponseParser``
and the BaseJSONParser contain logic for parsing the XML/JSON body,
and the BaseRestParser contains logic for parsing out attributes that
come from other parts of the HTTP response.  Classes like the
``RestXMLParser`` inherit from the ``BaseXMLResponseParser`` to get the
XML body parsing logic and the ``BaseRestParser`` to get the HTTP
header/status code/query string parsing.

Additionally, there are event stream parsers that are used by the other parsers
to wrap streaming bodies that represent a stream of events. The
BaseEventStreamParser extends from ResponseParser and defines the logic for
parsing values from the headers and payload of a message from the underlying
binary encoding protocol. Currently, event streams support parsing bodies
encoded as JSON and XML through the following hierarchy.


                                  +--------------+
                                  |ResponseParser|
                                  +--------------+
                                    ^    ^    ^
               +--------------------+    |    +------------------+
               |                         |                       |
    +----------+----------+   +----------+----------+    +-------+------+
    |BaseXMLResponseParser|   |BaseEventStreamParser|    |BaseJSONParser|
    +---------------------+   +---------------------+    +--------------+
                     ^                ^        ^                 ^
                     |                |        |                 |
                     |                |        |                 |
                   +-+----------------+-+    +-+-----------------+-+
                   |EventStreamXMLParser|    |EventStreamJSONParser|
                   +--------------------+    +---------------------+

Return Values
=============

Each call to ``parse()`` returns a dict has this form::

    Standard Response

    {
      "ResponseMetadata": {"RequestId": <requestid>}
      <response keys>
    }

    Error response

    {
      "ResponseMetadata": {"RequestId": <requestid>}
      "Error": {
        "Code": <string>,
        "Message": <string>,
        "Type": <string>,
        <additional keys>
      }
    }

é    N)ÚETreeÚXMLParseError)ÚEventStreamÚNoInitialResponseError)ÚCachedPropertyÚensure_booleanÚis_json_value_headerÚlowercase_dictÚmerge_dictsÚparse_timestampc                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚResponseParserFactoryc                 ó   — i | _         y ©N)Ú	_defaults©Úselfs    úg/var/www/acinvestment.org/public_html/aci/backend/venv/lib/python3.12/site-packages/botocore/parsers.pyÚ__init__zResponseParserFactory.__init__”   s	   € Øˆ�ó    c                 ó:   — | j                   j                  |«       y)aO  Set default arguments when a parser instance is created.

        You can specify any kwargs that are allowed by a ResponseParser
        class.  There are currently two arguments:

            * timestamp_parser - A callable that can parse a timestamp string
            * blob_parser - A callable that can parse a blob type

        N)r   Úupdate)r   Úkwargss     r   Úset_parser_defaultsz)ResponseParserFactory.set_parser_defaults—   s   € ð 	�‰×Ñ˜fÕ%r   c                 ó8   — t         |   } |di | j                  ¤ŽS )N© )ÚPROTOCOL_PARSERSr   )r   Úprotocol_nameÚ
parser_clss      r   Úcreate_parserz#ResponseParserFactory.create_parser£   s   € Ü% mÑ4ˆ
ÙÑ+˜DŸN™NÑ+Ð+r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r    r   r   r   r   r   “   s   „ òò
&ó,r   r   c                 ó4   — t        «       j                  | «      S r   )r   r    )Úprotocols    r   r    r    ¨   s   € Ü Ó"×0Ñ0°Ó:Ð:r   c                 ó   ‡ — ˆ fd„}|S )Nc                 óV   •— t        |d«      r|j                  }|€d}n|} ‰| ||«      S )NÚtextÚ )Úhasattrr(   )r   ÚshapeÚnode_or_stringr(   Úfuncs       €r   Ú_get_text_contentz(_text_content.<locals>._get_text_content²   s8   ø€ Ü�> 6Ô*Ø!×&Ñ&ˆDØˆ|ð ‘à!ˆDÙ�D˜% Ó&Ð&r   r   )r-   r.   s   ` r   Ú_text_contentr/   ¬   s   ø€ ô
'ð Ðr   c                   ó   — e Zd Zy)ÚResponseParserErrorN)r!   r"   r#   r   r   r   r1   r1   Á   s   „ Ør   r1   c                   óŠ   — e Zd ZdZdZdZdZd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„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚResponseParserao  Base class for response parsing.

    This class represents the interface that all ResponseParsers for the
    various protocols must implement.

    This class will take an HTTP response and a model shape and parse the
    HTTP response into a dictionary.

    There is a single public method exposed: ``parse``.  See the ``parse``
    docstring for more info.

    úutf-8N)ÚheaderÚheadersÚ
statusCodec                 ó¢   — |€t         }|| _        |€| j                  }|| _        d | _        | j
                  �| j                  ||«      | _        y y r   )ÚDEFAULT_TIMESTAMP_PARSERÚ_timestamp_parserÚ_default_blob_parserÚ_blob_parserÚ_event_stream_parserÚEVENT_STREAM_PARSER_CLS)r   Útimestamp_parserÚblob_parsers      r   r   zResponseParser.__init__Û   s`   € ØÐ#Ü7ÐØ!1ˆÔØÐØ×3Ñ3ˆKØ'ˆÔØ$(ˆÔ!Ø×'Ñ'Ð3Ø(,×(DÑ(DØ  +ó)ˆDÕ%ð 4r   c                 ó,   — t        j                  |«      S r   )Úbase64Ú	b64decode©r   Úvalues     r   r;   z#ResponseParser._default_blob_parserè   s   € ô ×Ñ Ó&Ð&r   c                 ó:  — t         j                  d|d   «       t         j                  d|d   «       |d   dk\  r[| j                  |«      r| j                  |«      }nJ| j	                  |«      r| j                  ||«      }|S | j                  ||«      }n| j                  ||«      }|r|j                  j                  d«      r|S t        |t        «      rD|j                  di «      }|d   |d	<   |d   }t        |«      |d
<   ||d<   | j                  ||«       |S )a>  Parse the HTTP response given a shape.

        :param response: The HTTP response dictionary.  This is a dictionary
            that represents the HTTP request.  The dictionary must have the
            following keys, ``body``, ``headers``, and ``status_code``.

        :param shape: The model shape describing the expected output.
        :return: Returns a dictionary representing the parsed response
            described by the model.  In addition to the shape described from
            the model, each response will also have a ``ResponseMetadata``
            which contains metadata about the response, which contains at least
            two keys containing ``RequestId`` and ``HTTPStatusCode``.  Some
            responses may populate additional keys, but ``RequestId`` will
            always be present.

        zResponse headers: %rr6   zResponse body:
%rÚbodyÚstatus_codei-  ÚeventstreamÚResponseMetadataÚHTTPStatusCodeÚHTTPHeaders)ÚLOGÚdebugÚ_is_generic_error_responseÚ_do_generic_error_parseÚ_is_modeled_error_shapeÚ_do_modeled_error_parseÚ_do_error_parseÚ	_do_parseÚserializationÚgetÚ
isinstanceÚdictr
   Ú_add_checksum_response_metadata)r   Úresponser+   ÚparsedÚresponse_metadatar6   s         r   ÚparsezResponseParser.parseî   s'  € ô" 	�	‰	Ð(¨(°9Ñ*=Ô>Ü�	‰	Ð&¨°Ñ(8Ô9Ø�MÑ" cÒ)Ø×.Ñ.¨xÔ8Ø×5Ñ5°hÓ?‘Ø×-Ñ-¨eÔ4Ø×5Ñ5°hÀÓF�à�à×-Ñ-¨h¸Ó>‘à—^‘^ H¨eÓ4ˆFñ �U×(Ñ(×,Ñ,¨]Ô;ØˆMô �fœdÔ#Ø &§
¡
Ð+=¸rÓ BÐØ2:¸=Ñ2IÐÐ.Ñ/ð ˜yÑ)ˆGÜ/=¸gÓ/FÐ˜mÑ,Ø):ˆFÐ%Ñ&Ø×0Ñ0°Ð;LÔMØˆr   c                 óz   — |j                  di «      j                  di «      }|j                  d«      }|r||d<   y y )NÚcontextÚchecksumÚresponse_algorithmÚChecksumAlgorithm©rV   )r   rZ   r\   Úchecksum_contextÚ	algorithms        r   rY   z.ResponseParser._add_checksum_response_metadata  sE   € Ø#Ÿ<™<¨	°2Ó6×:Ñ:¸:ÀrÓJÐØ$×(Ñ(Ð)=Ó>ˆ	ÙØ5>ÐÐ1Ò2ð r   c                 óF   — |d uxr |j                   j                  dd«      S )NÚ	exceptionF)ÚmetadatarV   )r   r+   s     r   rQ   z&ResponseParser._is_modeled_error_shape%  s#   € Ø˜DÐ ÒK U§^¡^×%7Ñ%7¸ÀUÓ%KÐKr   c                 óz   — |d   dk\  r3d|vs|d   €y|d   j                  «       }|j                  d«      xs | S y )NrH   iô  rG   Ts   <html>)ÚstripÚ
startswith)r   rZ   rG   s      r   rO   z)ResponseParser._is_generic_error_response(  sT   € ð �MÑ" cÒ)Ø˜XÑ%¨°&Ñ)9Ð)AØà˜FÑ#×)Ñ)Ó+ˆDØ—?‘? 9Ó-Ò9°T°Ð9ð *r   c                 óª   — t         j                  d«       t        |d   «      t        j                  j
                  j                  |d   d«      dœi dœS )NzlReceived a non protocol specific error response from the service, unable to populate error code and message.rH   r)   ©ÚCodeÚMessage©ÚErrorrJ   )rM   rN   ÚstrÚhttpÚclientÚ	responsesrV   ©r   rZ   s     r   rP   z&ResponseParser._do_generic_error_parse;  s[   € ô 	�	‰	ðBô	
ô ˜H ]Ñ3Ó4ÜŸ;™;×0Ñ0×4Ñ4Ø˜]Ñ+¨Róñð !#ñ
ð 	
r   c                 óF   — t        | j                  j                  › d�«      ‚)Nz
._do_parse©ÚNotImplementedErrorÚ	__class__r!   ©r   rZ   r+   s      r   rT   zResponseParser._do_parseL  s   € Ü! T§^¡^×%<Ñ%<Ð$=¸ZÐ"HÓIÐIr   c                 óF   — t        | j                  j                  › d�«      ‚)Nz._do_error_parserx   r{   s      r   rS   zResponseParser._do_error_parseO  s    € Ü! T§^¡^×%<Ñ%<Ð$=Ð=MÐ"NÓOÐOr   c                 óF   — t        | j                  j                  › d�«      ‚)Nz._do_modeled_error_parserx   )r   rZ   r+   r[   s       r   rR   z&ResponseParser._do_modeled_error_parseR  s%   € Ü!Ø�~‰~×&Ñ&Ð'Ð'?Ð@ó
ð 	
r   c                 ó\   — t        | d|j                  › �| j                  «      } |||«      S )NÚ_handle_)ÚgetattrÚ	type_nameÚ_default_handle)r   r+   ÚnodeÚhandlers       r   Ú_parse_shapezResponseParser._parse_shapeW  s4   € ÜØ�H˜UŸ_™_Ð-Ð.°×0DÑ0Dó
ˆñ �u˜dÓ#Ð#r   c                 óš   — g }|j                   }|D ]7  }|€|j                  d «       Œ|j                  | j                  ||«      «       Œ9 |S r   )ÚmemberÚappendr…   )r   r+   rƒ   r[   Úmember_shapeÚitems         r   Ú_handle_listzResponseParser._handle_list]  sV   € ð ˆØ—|‘|ˆØò 	EˆDð ˆ|Ø—‘˜dÕ#à—‘˜d×/Ñ/°¸dÓCÕDð	Eð ˆr   c                 ó   — |S r   r   ©r   r+   rE   s      r   r‚   zResponseParser._default_handlek  s   € Øˆr   c                 ód   — | j                   }|d   j                  d«      }t        |d   |||«      S )Nr_   Úoperation_namerG   )r=   rV   r   )r   rZ   r+   ÚparserÚnames        r   Ú_create_event_streamz#ResponseParser._create_event_streamn  s9   € Ø×*Ñ*ˆØ˜	Ñ"×&Ñ&Ð'7Ó8ˆÜ˜8 FÑ+¨U°F¸DÓAÐAr   c                 ó   — t        |«      d   S ©Nr   )ÚlistrD   s     r   Ú_get_first_keyzResponseParser._get_first_keys  s   € Ü�E‹{˜1‰~Ðr   c                 óê  — |j                   rÜ|j                  «       }|j                  dd «       |j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}t	        |«      dk7  rd}t        ||j                  z  «      ‚| j                  |«      }|j                  D �cg c]+  }|j                  |   j                  j                  d|«      ‘Œ- }	}||	vrt        j                  d|«       yyc c}}w c c}w )NÚ__typeé   úCInvalid service response: %s must have one and only one member set.r‘   zqReceived a tagged union response with member unknown to client: %s. Please upgrade SDK for full response support.TF)Úis_tagged_unionÚcopyÚpopÚitemsÚlenr1   r‘   r–   ÚmembersrU   rV   rM   Úinfo)
r   r+   rE   Úcleaned_valueÚkÚvÚ	error_msgÚtagr‡   Úserialized_member_namess
             r   Ú _has_unknown_tagged_union_memberz/ResponseParser._has_unknown_tagged_union_memberv  s  € Ø× Ò Ø!ŸJ™J›LˆMØ×Ñ˜h¨Ô-à!.×!4Ñ!4Ó!6÷Ù˜˜A¸!¹-��1‘ðˆMñ ô �=Ó! QÒ&ð&ð ô *¨)°e·j±jÑ*@ÓAÐAØ×%Ñ% mÓ4ˆCð $Ÿm™mö'àð —‘˜fÑ%×3Ñ3×7Ñ7¸ÀÕGð'Ð#ð 'ð Ð1Ñ1Ü—‘ðDàôð
 Øùó+ùò's   Á
C*ÁC*Â0C0c                 ó   — dd|iiS )NÚSDK_UNKNOWN_MEMBERr‘   r   )r   r¦   s     r   Ú#_handle_unknown_tagged_union_memberz2ResponseParser._handle_unknown_tagged_union_member‘  s   € Ø$ v¨s mÐ4Ð4r   c                 óˆ   — |d   }|j                  d«      }t        |«      dk(  r|d   r||d   d<   |d   |d   d<   |d   S |S )	zë
        Error response may contain an x-amzn-query-error header to translate
        errors codes from former `query` services into other protocols. We use this
        to do our lookup in the errorfactory for modeled errors.
        úx-amzn-query-errorú;é   r   rq   ÚQueryErrorCoder™   ÚType)ÚsplitrŸ   )r   Úcoder6   ÚerrorÚquery_errorÚquery_error_componentss         r   Ú _do_query_compatible_error_parsez/ResponseParser._do_query_compatible_error_parse”  sh   € ð Ð2Ñ3ˆØ!,×!2Ñ!2°3Ó!7ÐäÐ%Ó&¨!Ò+Ð0FÀqÒ0IØ/3ˆE�'‰NÐ+Ñ,Ø%;¸AÑ%>ˆE�'‰N˜6Ñ"Ø)¨!Ñ,Ð,Øˆr   ©NN)r!   r"   r#   Ú__doc__ÚDEFAULT_ENCODINGr>   ÚKNOWN_LOCATIONSr   r;   r]   rY   rQ   rO   rP   rT   rS   rR   r…   r‹   r‚   r’   r–   r¨   r«   r·   r   r   r   r3   r3   Å   s{   „ ñð ÐØ"Ðð
 :€Oóò'ò/òb?òLò:ò&
ò"JòPò
ò
$òòòBò
òò65ór   r3   c                   óÆ   ‡ — e Zd Zdˆ fd„	Zd„ Zd„ Zˆ fd„Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       ZeZeZeZˆ xZS )ÚBaseXMLResponseParserc                 óZ   •— t         ‰| �  ||«       t        j                  d«      | _        y )Nz{.*})Úsuperr   ÚreÚcompileÚ_namespace_re)r   r?   r@   rz   s      €r   r   zBaseXMLResponseParser.__init__¥  s$   ø€ Ü‰ÑÐ)¨;Ô7ÜŸZ™Z¨Ó/ˆÕr   c                 óÔ  — i }|j                   }|j                  }|j                  j                  d«      xs d}|j                  j                  d«      xs d}|j                  j                  d«      rt	        |t
        «      s|g}|D ]\  }|D ]P  }	| j                  |	«      }
|
|k(  r| j                  ||	«      }Œ,|
|k(  r| j                  ||	«      }ŒDt        d|
› �«      ‚ |<   Œ^ |S )Nr‘   ÚkeyrE   Ú	flattenedzUnknown tag: )	rÄ   rE   rU   rV   rW   r•   Ú	_node_tagr…   r1   )r   r+   rƒ   r[   Ú	key_shapeÚvalue_shapeÚkey_location_nameÚvalue_location_nameÚkeyval_nodeÚsingle_pairÚtag_nameÚkey_nameÚval_names                r   Ú_handle_mapz!BaseXMLResponseParser._handle_map©  sþ   € ØˆØ—I‘Iˆ	Ø—k‘kˆØ%×3Ñ3×7Ñ7¸Ó?ÒHÀ5ÐØ)×7Ñ7×;Ñ;¸FÓCÒNÀwÐØ×Ñ×"Ñ" ;Ô/¼
À4ÌÔ8NØ�6ˆDØò 
	(ˆKØ*ò J�àŸ>™>¨+Ó6�ØÐ0Ò0Ø#×0Ñ0°¸KÓH‘HØÐ!4Ò4Ø#×0Ñ0°¸kÓJ‘Hä-°¸h¸ZÐ.HÓIÐIðJð  (ˆF�8Òð
	(ð ˆr   c                 óN   — | j                   j                  d|j                  «      S ©Nr)   )rÂ   Úsubr¦   )r   rƒ   s     r   rÆ   zBaseXMLResponseParser._node_tag¾  s   € Ø×!Ñ!×%Ñ% b¨$¯(©(Ó3Ð3r   c                 ó€   •— |j                   j                  d«      rt        |t        «      s|g}t        ‰| �  ||«      S )NrÅ   )rU   rV   rW   r•   r¿   r‹   )r   r+   rƒ   rz   s      €r   r‹   z"BaseXMLResponseParser._handle_listÁ  s;   ø€ ð ×Ñ×"Ñ" ;Ô/¼
À4ÌÔ8NØ�6ˆDÜ‰wÑ# E¨4Ó0Ð0r   c                 óH  — i }|j                   }|j                  j                  dd«      r| j                  |«      }| j	                  |«      }| j                  ||«      r"| j                  |«      }| j                  |«      S |D �]  }||   }|j                  j                  d«      }	|	| j                  v s|j                  j                  d«      rŒN| j                  ||«      }
|j                  |
«      }|�| j                  ||«      ||<   Œ‰|j                  j                  d«      sŒ¥i }|j                  d   }|j                  j                  «       D ];  \  }}| j                  j                  |j!                  d«      d   dz   |«      }|||<   Œ= ||v s�Œ||   ||<   �Œ |S )	Nrg   FÚlocationÚeventheaderÚxmlAttributer‘   ú:r   )r    rh   rV   Ú_get_error_rootÚ_build_name_to_xml_noder¨   r–   r«   rU   r»   Ú_member_key_namer…   Úattribrž   rÂ   rÓ   r²   )r   r+   rƒ   r[   r    Úxml_dictr¦   Úmember_namer‰   rÖ   Úxml_nameÚmember_nodeÚattribsÚlocation_namerÄ   rE   Únew_keys                    r   Ú_handle_structurez'BaseXMLResponseParser._handle_structureË  s´  € ØˆØ—-‘-ˆØ�>‰>×Ñ˜k¨5Ô1Ø×'Ñ'¨Ó-ˆDØ×/Ñ/°Ó5ˆØ×0Ñ0°¸ÔAØ×%Ñ% hÓ/ˆCØ×;Ñ;¸CÓ@Ð@Ø"ó 	AˆKØ" ;Ñ/ˆLØ#×1Ñ1×5Ñ5°jÓAˆHà˜D×0Ñ0Ñ0Ø×-Ñ-×1Ñ1°-Ô@ð Ø×,Ñ,¨\¸;ÓGˆHØ"Ÿ,™, xÓ0ˆKØÐ&Ø&*×&7Ñ&7Ø  +ó'��{Ò#ð ×+Ñ+×/Ñ/°Õ?Ø�Ø ,× :Ñ :¸6Ñ B�Ø"&§+¡+×"3Ñ"3Ó"5ò -‘J�C˜Ø"×0Ñ0×4Ñ4Ø%×+Ñ+¨CÓ0°Ñ3°cÑ9¸3ó�Gð (-�G˜GÒ$ð	-ð
 ! GÓ+Ø*1°-Ñ*@�F˜;Ó'ð3	Að4 ˆr   c                 ól   — | j                  |«      dk(  r|D ]  }| j                  |«      dk(  sŒ|c S  |S )NÚErrorResponserq   ©rÆ   )r   Úoriginal_rootÚchilds      r   rÚ   z%BaseXMLResponseParser._get_error_rootð  s@   € Ø�>‰>˜-Ó(¨OÒ;Ø&ò !�Ø—>‘> %Ó(¨GÓ3Ø ’Lð!ð Ðr   c                 óê   — |j                   dk(  rD|j                  j                  d«      r)|j                  j                  j                  d«      }|�|S |j                  j                  d«      }|�|S |S )Nr•   rÅ   r‘   )r�   rU   rV   r‡   )r   r+   rß   Úlist_member_serialized_nameÚserialized_names        r   rÜ   z&BaseXMLResponseParser._member_key_name÷  sw   € ð
 �?‰?˜fÒ$¨×)<Ñ)<×)@Ñ)@ÀÔ)MØ*/¯,©,×*DÑ*D×*HÑ*HØó+Ð'ð +Ð6Ø2Ð2Ø×-Ñ-×1Ñ1°&Ó9ˆØÐ&Ø"Ð"ØÐr   c                 óú   — t        |t        «      r| j                  |d   «      S i }|D ]O  }| j                  |«      }||v r3t        ||   t        «      r||   j	                  |«       Œ@||   |g||<   ŒK|||<   ŒQ |S r”   )rW   r•   rÛ   rÆ   rˆ   )r   Úparent_noderÞ   rŠ   rÄ   s        r   rÛ   z-BaseXMLResponseParser._build_name_to_xml_node  s’   € ô �k¤4Ô(Ø×/Ñ/°¸A±Ó?Ð?ØˆØò 	%ˆDØ—.‘. Ó&ˆCØ�h‰ô
 ˜h s™m¬TÔ2Ø˜S‘M×(Ñ(¨Õ.ð &.¨c¡]°DÐ$9�H˜S’Mà $�˜’ð	%ð ˆr   c                 óô   — 	 t        j                  t        j                  «       | j                  ¬«      }|j	                  |«       |j                  «       }|S # t        $ r}t        d|› d|› �«      ‚d }~ww xY w)N)ÚtargetÚencodingzUnable to parse response (z6), invalid XML received. Further retries may succeed:
)r   Ú	XMLParserÚTreeBuilderrº   ÚfeedÚcloser   r1   )r   Ú
xml_stringr�   ÚrootÚes        r   Ú_parse_xml_string_to_domz.BaseXMLResponseParser._parse_xml_string_to_dom  s€   € ð
	Ü—_‘_Ü×(Ñ(Ó*°T×5JÑ5JôˆFð �K‰K˜
Ô#Ø—<‘<“>ˆDð ˆøô ò 	Ü%Ø,¨Q¨Cð 0GØGQÀlðTóð ûð	ús   ‚AA Á	A7Á!A2Á2A7c                 ó¶   — |j                  «       D ]E  \  }}t        |«      r&| j                  |«      }| j                  |«      ||<   Œ7|j                  ||<   ŒG |S r   )rž   r•   rÛ   Ú_replace_nodesr(   )r   r[   rÄ   rE   Úsub_dicts        r   rü   z$BaseXMLResponseParser._replace_nodes,  sZ   € Ø Ÿ,™,›.ò 	)‰JˆC�Ü�EŒ{Ø×7Ñ7¸Ó>�Ø"×1Ñ1°(Ó;��s’à#Ÿj™j��s’ð	)ð ˆr   c                 ó   — |dk(  ryy)NÚtrueTFr   ©r   r+   r(   s      r   Ú_handle_booleanz%BaseXMLResponseParser._handle_boolean5  s   € à�6Š>Øàr   c                 ó   — t        |«      S r   ©Úfloatr   s      r   Ú_handle_floatz#BaseXMLResponseParser._handle_float<  s   € ä�T‹{Ðr   c                 ó$   — | j                  |«      S r   ©r:   r   s      r   Ú_handle_timestampz'BaseXMLResponseParser._handle_timestamp@  s   € à×%Ñ% dÓ+Ð+r   c                 ó   — t        |«      S r   ©Úintr   s      r   Ú_handle_integerz%BaseXMLResponseParser._handle_integerD  s   € ä�4‹yÐr   c                 ó   — |S r   r   r   s      r   Ú_handle_stringz$BaseXMLResponseParser._handle_stringH  s   € àˆr   c                 ó$   — | j                  |«      S r   ©r<   r   s      r   Ú_handle_blobz"BaseXMLResponseParser._handle_blobL  s   € à× Ñ  Ó&Ð&r   r¸   )r!   r"   r#   r   rÐ   rÆ   r‹   rå   rÚ   rÜ   rÛ   rú   rü   r/   r  r  r  r  r  r  Ú_handle_characterÚ_handle_doubleÚ_handle_longÚ__classcell__©rz   s   @r   r½   r½   ¤  sÀ   ø„ õ0òò*4ô1ò#òJòò ò.òð ñó ðð ñó ðð ñ,ó ð,ð ñó ðð ñó ðð ñ'ó ð'ð 'ÐØ"€NØ"„Lr   r½   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zy)	ÚQueryParserc                 óò   — |d   }| j                  |«      }| j                  |«      }| j                  |«       d|v r |j                  |j	                  d«      «       d|v rd|j	                  d«      i|d<   |S )NrG   ÚErrorsÚ	RequestIdrJ   )rú   rÛ   rü   r   r�   )r   rZ   r+   Úxml_contentsrø   r[   s         r   rS   zQueryParser._do_error_parseV  s   € Ø Ñ'ˆØ×,Ñ,¨\Ó:ˆØ×-Ñ-¨dÓ3ˆØ×Ñ˜FÔ#ð �vÑØ�M‰M˜&Ÿ*™* XÓ.Ô/Ø˜&Ñ Ø*5°v·z±zÀ+Ó7NÐ)OˆFÐ%Ñ&Øˆr   c                 ó*   — | j                  ||d¬«      S )NF©Úinject_metadata©Ú_parse_body_as_xmlr{   s      r   rR   z#QueryParser._do_modeled_error_parsef  s   € Ø×&Ñ& x°ÈÐ&ÓNÐNr   c                 ó*   — | j                  ||d¬«      S )NTr  r   r{   s      r   rT   zQueryParser._do_parsei  s   € Ø×&Ñ& x°ÈÐ&ÓMÐMr   c                 óä   — |d   }| j                  |«      }i }|�A|}d|j                  v r| j                  |j                  d   |«      }| j                  ||«      }|r| j	                  ||«       |S )NrG   ÚresultWrapper)rú   rU   Ú_find_result_wrapped_shaper…   Ú_inject_response_metadata)r   rZ   r+   r  r  rø   r[   Ústarts           r   r!  zQueryParser._parse_body_as_xmll  s†   € Ø Ñ'ˆØ×,Ñ,¨\Ó:ˆØˆØÐØˆEØ %×"5Ñ"5Ñ5Ø×7Ñ7Ø×'Ñ'¨Ñ8¸$ó�ð ×&Ñ& u¨eÓ4ˆFÙØ×*Ñ*¨4°Ô8Øˆr   c                 ó.   — | j                  |«      }||   S r   )rÛ   )r   Úelement_nameÚxml_root_nodeÚmappings       r   r%  z&QueryParser._find_result_wrapped_shape{  s   € Ø×.Ñ.¨}Ó=ˆØ�|Ñ$Ð$r   c                 óÈ   — | j                  |«      }|j                  d«      }|�>| j                  |«      }|j                  «       D ]  \  }}|j                  ||<   Œ ||d<   y y ©NrJ   )rÛ   rV   rž   r(   )r   rƒ   Úinject_intor+  Ú
child_nodeÚsub_mappingrÄ   rE   s           r   r&  z%QueryParser._inject_response_metadata  sq   € Ø×.Ñ.¨tÓ4ˆØ—[‘[Ð!3Ó4ˆ
ØÐ!Ø×6Ñ6°zÓBˆKØ)×/Ñ/Ó1ò .‘
��UØ#(§:¡:�˜CÒ ð.à.9ˆKÐ*Ò+ð	 "r   N)T)	r!   r"   r#   rS   rR   rT   r!  r%  r&  r   r   r   r  r  U  s"   „ òò OòNóò%ó:r   r  c                   ó*   ‡ — e Zd Zd„ Zˆ fd„Zd„ Zˆ xZS )ÚEC2QueryParserc                 óp   — | j                  |«      }|j                  d«      }|�d|j                  i|d<   y y )NÚ	requestIdr  rJ   )rÛ   rV   r(   )r   rƒ   r.  r+  r/  s        r   r&  z(EC2QueryParser._inject_response_metadataŠ  s?   € Ø×.Ñ.¨tÓ4ˆØ—[‘[ Ó-ˆ
ØÐ!Ø/:¸J¿O¹OÐ.LˆKÐ*Ò+ð "r   c                 ó\   •— t         ‰| �  ||«      }d|v rd|j                  d«      i|d<   |S )NÚ	RequestIDr  rJ   )r¿   rS   r�   )r   rZ   r+   Úoriginalrz   s       €r   rS   zEC2QueryParser._do_error_parse�  s@   ø€ ô ‘7Ñ*¨8°UÓ;ˆØ˜(Ñ"à˜XŸ\™\¨+Ó6ð,ˆHÐ'Ñ(ð ˆr   c                 ó€   — |D ]8  }| j                  |«      dk(  sŒ|D ]  }| j                  |«      dk(  sŒ|c c S  Œ: |S )Nr  rq   rè   )r   ré   rê   Úerrors_childs       r   rÚ   zEC2QueryParser._get_error_root¤  sP   € Ø"ò 	,ˆEØ�~‰~˜eÓ$¨Ó0Ø$)ò ,�LØ—~‘~ lÓ3°wÓ>Ø+Ô+ñ,ð	,ð
 Ðr   )r!   r"   r#   r&  rS   rÚ   r  r  s   @r   r2  r2  ‰  s   ø„ òMôö(r   r2  c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚBaseJSONParserc                 ó\  — i }|j                   r|}|S |j                  }|€y i }| j                  ||«      r"| j                  |«      }| j	                  |«      S |D ]O  }||   }|j
                  j                  d|«      }|j                  |«      }	|	€Œ8| j                  ||   |	«      ||<   ŒQ |S )Nr‘   )Úis_document_typer    r¨   r–   r«   rU   rV   r…   )
r   r+   rE   Úfinal_parsedÚmember_shapesr¦   rß   r‰   Ú	json_nameÚ	raw_values
             r   rå   z BaseJSONParser._handle_structure®  sÔ   € ØˆØ×!Ò!Ø ˆLð( Ðð% "ŸM™MˆMØˆ}ð ØˆLØ×4Ñ4°U¸EÔBØ×)Ñ)¨%Ó0�Ø×?Ñ?ÀÓDÐDØ,ò �Ø,¨[Ñ9�Ø(×6Ñ6×:Ñ:¸6À;ÓO�	Ø!ŸI™I iÓ0�	ØÑ(Ø04×0AÑ0AØ% kÑ2°Ió1�L Ò-ðð Ðr   c                 ó¼   — i }|j                   }|j                  }|j                  «       D ].  \  }}| j                  ||«      }| j                  ||«      }|||<   Œ0 |S r   )rÄ   rE   rž   r…   )	r   r+   rE   r[   rÇ   rÈ   rÄ   Ú
actual_keyÚactual_values	            r   rÐ   zBaseJSONParser._handle_mapÇ  sg   € ØˆØ—I‘Iˆ	Ø—k‘kˆØŸ+™+›-ò 	.‰JˆC�Ø×*Ñ*¨9°cÓ:ˆJØ×,Ñ,¨[¸%Ó@ˆLØ!-ˆF�:Òð	.ð ˆr   c                 ó$   — | j                  |«      S r   r  r�   s      r   r  zBaseJSONParser._handle_blobÑ  s   € Ø× Ñ  Ó'Ð'r   c                 ó$   — | j                  |«      S r   r  r�   s      r   r  z BaseJSONParser._handle_timestampÔ  s   € Ø×%Ñ% eÓ,Ð,r   c                 óÈ  — | j                  |d   «      }dddœi dœ}|d   }|j                  d|j                  dd«      «      |d   d<   |j                  d	«      }|j                  d
|xr t        |«      «      }|�Qd|v r|j                  dd«      d   }d|v r|j	                  dd«      d   }d|v r| j                  |||«      }||d   d<   | j                  ||d   «       |S )NrG   r)   ©ro   rn   rp   r6   Úmessagero   rq   rH   r˜   rÙ   r™   r   ú#r­   rn   )Ú_parse_body_as_jsonrV   rr   r²   Úrsplitr·   r&  )r   rZ   r+   rG   r´   r6   Úresponse_coder³   s           r   rS   zBaseJSONParser._do_error_parse×  s  € Ø×'Ñ'¨°Ñ(8Ó9ˆØ&(°"Ñ5È2ÑNˆØ˜9Ñ%ˆð %)§H¡HØ�t—x‘x 	¨2Ó.ó%
ˆˆg‰�yÑ!ð
 !Ÿ™ ]Ó3ˆà�x‰x˜ -Ò"F´C¸Ó4FÓGˆØÐð �d‰{Ø—z‘z # qÓ)¨!Ñ,�Ø�d‰{Ø—{‘{ 3¨Ó*¨1Ñ-�Ø# wÑ.Ø×<Ñ<Ø˜' 5ó�ð &*ˆE�'‰N˜6Ñ"Ø×&Ñ& u¨h°yÑ.AÔBØˆr   c                 ó>   — d|v r|d   |j                  di «      d<   y y )Núx-amzn-requestidrJ   r  )Ú
setdefault)r   r[   r6   s      r   r&  z(BaseJSONParser._inject_response_metadataû  s0   € Ø Ñ(ØELØ"ñFˆF×ÑÐ0°"Ó5°kÒBð )r   c                 ó–   — |si S |j                  | j                  «      }	 t        j                  |«      }|S # t        $ r d|icY S w xY w)NrI  )Údecoderº   ÚjsonÚloadsÚ
ValueError)r   Úbody_contentsrG   Úoriginal_parseds       r   rK  z"BaseJSONParser._parse_body_as_json  sU   € ÙØˆIØ×#Ñ# D×$9Ñ$9Ó:ˆð	%Ü"Ÿj™j¨Ó.ˆOØ"Ð"øÜò 	%ð ˜tÐ$Ò$ð	%ús   ¡8 ¸AÁAN)
r!   r"   r#   rå   rÐ   r  r  rS   r&  rK  r   r   r   r;  r;  ­  s&   „ òò2ò(ò-ò"òHó
%r   r;  c                   ó~   — e Zd ZdZdZe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„ Zd„ Zd„ Zd„ Zy)ÚBaseCBORParseré   éÿ   c           	      ó¸   — | j                   | j                  | j                  | j                  | j                  | j
                  | j                  | j                  dœS )N)r   r™   r¯   é   é   é   é   é   )Ú_parse_unsigned_integerÚ_parse_negative_integerÚ_parse_byte_stringÚ_parse_text_stringÚ_parse_arrayÚ
_parse_mapÚ
_parse_tagÚ_parse_simple_and_floatr   s    r   Ú major_type_to_parsing_method_mapz/BaseCBORParser.major_type_to_parsing_method_map  sR   € ð ×+Ñ+Ø×+Ñ+Ø×&Ñ&Ø×&Ñ&Ø× Ñ Ø�‰Ø�‰Ø×+Ñ+ñ	
ð 		
r   c                 óR   — t        j                  t        j                  |«      «      S r   )ÚioÚBufferedReaderÚBytesIO)r   Úbytess     r   Úget_peekable_stream_from_bytesz-BaseCBORParser.get_peekable_stream_from_bytes  s   € Ü× Ñ ¤§¡¨EÓ!2Ó3Ð3r   c                 ó¨   — | j                  |d«      }|dz	  }|dz  }|| j                  v r| j                  |   } |||«      S t        d|› d|› �«      ‚)Nr™   r_  rZ  z8Unsupported inital byte found for data item- Major type:z, Additional info: )Ú_read_bytes_as_intrj  r1   )r   ÚstreamÚinitial_byteÚ
major_typeÚadditional_infoÚmethods         r   Úparse_data_itemzBaseCBORParser.parse_data_item"  s|   € ð ×.Ñ.¨v°qÓ9ˆà! QÑ&ˆ
ð '¨Ñ3ˆà˜×>Ñ>Ñ>Ø×:Ñ:¸:ÑFˆFÙ˜& /Ó2Ð2ä%ðØ(˜\Ð)<Ø"Ð#ð%óð r   c                 óp   — dddddœ}|dk  r|S ||v r||   }| j                  ||«      S t        d|› �«      ‚)Nr™   r¯   r^  é   )é   é   é   é   r{  zhInvalid CBOR integer returned from the service; unparsable additional info found for major type 0 or 1: )rr  r1   )r   rs  rv  Úadditional_info_to_num_bytesÚ	num_bytess        r   rb  z&BaseCBORParser._parse_unsigned_integer7  sk   € àØØØñ	(
Ð$ð ˜RÒØ"Ð"ØÐ <Ñ<Ø4°_ÑEˆIØ×*Ñ*¨6°9Ó=Ð=ä%ð@Ø@OÐ?PðRóð r   c                 ó,   — d| j                  ||«      z
  S )Néÿÿÿÿ)rb  ©r   rs  rv  s      r   rc  z&BaseCBORParser._parse_negative_integerL  s   € Ø�D×0Ñ0°¸ÓIÑIÐIr   c                 óJ  — || j                   k7  r$| j                  ||«      }| j                  ||«      S g }	 | j                  |«      rnK| j	                  |d«      }|dz  }| j                  ||«      }|j                  | j                  ||«      «       Œ]dj                  |«      S )Nr™   rZ  r   )ÚINDEFINITE_ITEM_ADDITIONAL_INFOrb  Ú_read_from_streamÚ_handle_break_coderr  rˆ   Újoin)r   rs  rv  ÚlengthÚchunksrt  s         r   rd  z!BaseCBORParser._parse_byte_stringP  s«   € Ø˜d×BÑBÒBØ×1Ñ1°&¸/ÓJˆFØ×)Ñ)¨&°&Ó9Ð9àˆFØØ×*Ñ*¨6Ô2ØØ#×6Ñ6°v¸qÓA�Ø".°Ñ";�Ø×5Ñ5°f¸oÓN�Ø—‘˜d×4Ñ4°V¸VÓDÔEð ð —8‘8˜FÓ#Ð#r   c                 óD   — | j                  ||«      j                  d«      S )Nr4   )rd  rR  rƒ  s      r   re  z!BaseCBORParser._parse_text_string`  s    € Ø×&Ñ& v¨Ó?×FÑFÀwÓOÐOr   c                 ó,  — || j                   k7  r:| j                  ||«      }t        |«      D �cg c]  }| j                  |«      ‘Œ c}S g }| j	                  |«      s2|j                  | j                  |«      «       | j	                  |«      sŒ2|S c c}w r   )r…  rb  Úrangerx  r‡  rˆ   )r   rs  rv  r‰  Ú_rž   s         r   rf  zBaseCBORParser._parse_arrayd  s‡   € Ø˜d×BÑBÒBØ×1Ñ1°&¸/ÓJˆFÜ:?À»-ÖH°Q�D×(Ñ(¨Õ0ÒHÐHàˆEØ×-Ñ-¨fÔ5Ø—‘˜T×1Ñ1°&Ó9Ô:ð ×-Ñ-¨fÕ5àˆLùò Is   ¯Bc                 óþ   — i }|| j                   k7  r6| j                  ||«      }t        |«      D ]  }| j                  ||«       Œ |S | j	                  |«      s$| j                  ||«       | j	                  |«      sŒ$|S r   )r…  rb  r�  Ú_parse_key_value_pairr‡  )r   rs  rv  rž   r‰  rŽ  s         r   rg  zBaseCBORParser._parse_mapo  s„   € ØˆØ˜d×BÑBÒBØ×1Ñ1°&¸/ÓJˆFÜ˜6“]ò :�Ø×*Ñ*¨6°5Õ9ð:àˆLð ×-Ñ-¨fÔ5Ø×*Ñ*¨6°5Ô9ð ×-Ñ-¨fÕ5àˆLr   c                 óX   — | j                  |«      }| j                  |«      }|�|||<   y y r   )rx  )r   rs  rž   rÄ   rE   s        r   r�  z$BaseCBORParser._parse_key_value_pair|  s6   € Ø×"Ñ" 6Ó*ˆØ×$Ñ$ VÓ,ˆØÐØˆE�#ŠJð r   c                 ó�   — | j                  ||«      }| j                  |«      }|dk(  r| j                  |«      S t        d|› �«      ‚)Nr™   z*Found CBOR tag not supported by botocore: )rb  rx  Ú_parse_datetimer1   )r   rs  rv  r¦   rE   s        r   rh  zBaseCBORParser._parse_tag„  sS   € Ø×*Ñ*¨6°?ÓCˆØ×$Ñ$ VÓ,ˆØ�!Š8Ø×'Ñ'¨Ó.Ð.ä%Ø<¸S¸EÐBóð r   c                 ól   — t        |t        t        f«      r| j                  |«      S t	        d|› �«      ‚)Nz Unable to parse datetime value: )rW   r  r  r:   r1   rD   s     r   r“  zBaseCBORParser._parse_datetimeŽ  s8   € Ü�eœc¤5˜\Ô*Ø×)Ñ)¨%Ó0Ð0ä%Ø2°5°'Ð:óð r   c                 ó¶   — ddd d dœ}||v r||   S ddddœ}||v r1||   \  }}t        j                  || j                  ||«      «      d   S t        d	|› d
�«      ‚)NFT)é   é   é   é   )z>er¯   )z>fr^  )z>drz  )r|  r}  r~  r   z0Invalid additional info found for major type 7: zI.  This indicates an unsupported simple type or an indefinite float value)ÚstructÚunpackr†  r1   )r   rs  rv  Úadditional_info_simple_valuesÚfloat_formatsÚfloat_formatr€  s          r   ri  z&BaseCBORParser._parse_simple_and_float™  s¨   € ð ØØØñ	)
Ð%ð Ð;Ñ;Ø0°ÑAÐAð
 ØØñ
ˆð ˜mÑ+Ø&3°OÑ&DÑ#ˆL˜)Ü—=‘=Ø˜d×4Ñ4°V¸YÓGóàñð ô "Ø>¸Ð>Oð PUð Vó
ð 	
r   c                 ó°   — t         j                  |j                  d«      d d d«      | j                  k(  r!|j	                  dt
        j                  «       yy )Nr™   ÚbigT)r  Ú
from_bytesÚpeekÚ
BREAK_CODEÚseekÚosÚSEEK_CUR)r   rs  s     r   r‡  z!BaseCBORParser._handle_break_code»  sC   € Ü�>‰>˜&Ÿ+™+ a›.¨¨!Ð,¨eÓ4¸¿¹ÒGØ�K‰K˜œ2Ÿ;™;Ô'Øð Hr   c                 óR   — | j                  ||«      }t        j                  |d«      S )Nr   )r†  r  r¡  )r   rs  r€  Úbytes       r   rr  z!BaseCBORParser._read_bytes_as_intÀ  s%   € Ø×%Ñ% f¨iÓ8ˆÜ�~‰~˜d EÓ*Ð*r   c                 óZ   — |j                  |«      }t        |«      |k7  rt        d«      ‚|S )NzgEnd of stream reached; this indicates a malformed CBOR response from the server or an issue in botocore)ÚreadrŸ   r1   )r   rs  r€  rE   s       r   r†  z BaseCBORParser._read_from_streamÄ  s5   € Ø—‘˜IÓ&ˆÜˆu‹:˜Ò"Ü%ð$óð ð
 ˆr   N)r!   r"   r#   r…  r£  r   rj  rp  rx  rb  rc  rd  re  rf  rg  r�  rh  r“  ri  r‡  rr  r†  r   r   r   rY  rY    sm   „ Ø&(Ð#Ø€Jàñ

ó ð

ò4òò*ò*Jò$ò Pòòòòòò
òDò
+ór   rY  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚBaseEventStreamParserc                 óH  — i }|j                   j                  d«      rH|d   j                  d«      }|j                  j                  |«      }|r| j                  ||«      ||<   |S | j	                  |||j                  |«       | j                  |||j                  |«       |S )NrI   r6   z:event-type)rU   rV   r    rT   Ú_parse_non_payload_attrsÚ_parse_payload)r   rZ   r+   r>  Ú
event_typeÚevent_shapes         r   rT   zBaseEventStreamParser._do_parseÐ  s¤   € ØˆØ×Ñ×"Ñ" =Ô1Ø! )Ñ,×0Ñ0°Ó?ˆJØŸ-™-×+Ñ+¨JÓ7ˆKÙØ+/¯>©>Ø˜kó,�˜ZÑ(ð Ðð	 ×)Ñ)Ø˜% §¡°ôð ×Ñ ¨%°·±ÀÔMØÐr   c           	      ó`  — |d   j                  d«      }|j                  j                  |«      }|�O| j                  |d   «      }| j                  ||«      }d||j                  d|j                  dd«      «      dœi}|S d|d   j                  d	d«      |d   j                  d
d«      dœi}|S )Nr6   z:exception-typerG   rq   ro   rI  r)   rm   z:error-codez:error-message)rV   r    Ú_initial_body_parser…   )r   rZ   r+   Úexception_typeÚexception_shaperW  rG   r´   s           r   rS   z%BaseEventStreamParser._do_error_parseà  sÎ   € Ø! )Ñ,×0Ñ0Ð1BÓCˆØŸ-™-×+Ñ+¨NÓ;ˆØÐ&Ø"×6Ñ6°xÀÑ7GÓHˆOØ×$Ñ$ _°oÓFˆDàØ*Ø#Ÿx™x¨	°4·8±8¸IÀrÓ3JÓKñðˆEð ˆð Ø$ YÑ/×3Ñ3°MÀ2ÓFØ'¨	Ñ2×6Ñ6Ð7GÈÓLñðˆEð ˆr   c                 óÐ  — |j                   j                  d«      rË|D ]Ž  }||   }|j                   j                  d«      sŒ$|d   }|j                  dk(  r|}nN|j                  dk(  r|j                  | j                  «      }n#| j                  |«      }	| j                  ||	«      }|||<    y  | j                  |d   «      }
| j                  ||
«      }|j                  |«       y y )NÚeventÚeventpayloadrG   ÚblobÚstring)rU   rV   r�   rR  rº   r³  r…   r   )r   rZ   r+   r?  r>  r‘   r‰   rG   Úparsed_bodyÚ	raw_parserW  Úbody_parseds               r   r¯  z$BaseEventStreamParser._parse_payloadõ  sò   € Ø×Ñ×"Ñ" 7Ô+Ø%ò �Ø,¨TÑ2�Ø×-Ñ-×1Ñ1°.ÕAØ# FÑ+�DØ#×-Ñ-°Ò7Ø&*™Ø%×/Ñ/°8Ò;Ø&*§k¡k°$×2GÑ2GÓ&H™à$(×$<Ñ$<¸TÓ$B˜	Ø&*×&7Ñ&7Ø(¨)ó'˜ð *5�L Ñ&Ùðð  #×6Ñ6°xÀÑ7GÓHˆOØ×+Ñ+¨E°?ÓCˆKØ×Ñ Õ,ð' ,r   c                 óÂ   — |d   }|D ]U  }||   }|j                   j                  d«      sŒ$||v sŒ)||   }|j                  dk(  r| j                  |dz  «      }|||<   ŒW y )Nr6   r×   Ú	timestampg     @�@)rU   rV   r�   r:   )	r   rZ   r+   r?  r>  r6   r‘   r‰   rE   s	            r   r®  z.BaseEventStreamParser._parse_non_payload_attrs  sy   € ð ˜9Ñ%ˆØ!ò 		/ˆDØ(¨Ñ.ˆLØ×)Ñ)×-Ñ-¨mÕ<Ø˜7’?Ø# D™M�EØ#×-Ñ-°Ò<ð !%× 6Ñ 6°u¸v±~Ó F˜Ø).�L Ò&ñ		/r   c                 ó   — t        d«      ‚©Nr³  ©ry   ©r   rV  s     r   r³  z)BaseEventStreamParser._initial_body_parse  ó   € ô
 "Ð"7Ó8Ð8r   N)r!   r"   r#   rT   rS   r¯  r®  r³  r   r   r   r¬  r¬  Ï  s   „ òò ò*-ò,/ó9r   r¬  c                   ó   — e Zd Zd„ Zy)ÚEventStreamJSONParserc                 ó$   — | j                  |«      S r   ©rK  rÃ  s     r   r³  z)EventStreamJSONParser._initial_body_parse#  ó   € Ø×'Ñ'¨Ó6Ð6r   N©r!   r"   r#   r³  r   r   r   rÆ  rÆ  "  s   „ ó7r   rÆ  c                   ó   — e Zd Zd„ Zy)ÚEventStreamXMLParserc                 óR   — |st        j                  d«      S | j                  |«      S rÒ   ©r   ÚElementrú   ©r   r÷   s     r   r³  z(EventStreamXMLParser._initial_body_parse(  ó%   € ÙÜ—=‘= Ó$Ð$Ø×,Ñ,¨ZÓ8Ð8r   NrÊ  r   r   r   rÌ  rÌ  '  s   „ ó9r   rÌ  c                   ó   — e Zd Zd„ Zy)ÚEventStreamCBORParserc                 óP   — |dk(  ri S | j                  | j                  |«      «      S ©Nr   )rx  rp  rÃ  s     r   r³  z)EventStreamCBORParser._initial_body_parse/  s0   € Ø˜CÒØˆIØ×#Ñ#Ø×/Ñ/°Ó>ó
ð 	
r   NrÊ  r   r   r   rÓ  rÓ  .  s   „ ó
r   rÓ  c                   ó*   — e Zd ZeZ	 d„ Zd„ Zd„ Zd„ Zy)Ú
JSONParserc                 ó¦   — i }|�7|j                   }|r| j                  |||«      }n| j                  |d   |«      }| j                  ||d   «       |S )NrG   r6   )Úevent_stream_nameÚ_handle_event_streamÚ_handle_json_bodyr&  )r   rZ   r+   r[   Ú
event_names        r   rT   zJSONParser._do_parse<  s`   € ØˆØÐØ×0Ñ0ˆJÙØ×2Ñ2°8¸UÀJÓO‘à×/Ñ/°¸Ñ0@À%ÓH�Ø×&Ñ& v¨x¸	Ñ/BÔCØˆr   c                 ó,   — | j                  |d   |«      S ©NrG   )rÛ  r{   s      r   rR   z"JSONParser._do_modeled_error_parseG  s   € Ø×%Ñ% h¨vÑ&6¸Ó>Ð>r   c                 óà   — |j                   |   }| j                  ||«      }	 |j                  «       }| j                  |j                  |«      }|||<   |S # t        $ r d}t	        |«      ‚w xY w©Nz,First event was not of type initial-response)r    r’   Úget_initial_responser   r1   rÛ  Úpayload©	r   rZ   r+   rÜ  Úevent_stream_shapeÚevent_streamr·  r¥   r[   s	            r   rÚ  zJSONParser._handle_event_streamJ  s   € Ø"Ÿ]™]¨:Ñ6ÐØ×0Ñ0°Ð;MÓNˆð	1Ø ×5Ñ5Ó7ˆEð ×'Ñ'¨¯©°uÓ=ˆØ)ˆˆzÑØˆøô &ò 	1ØFˆIÜ% iÓ0Ð0ð	1ús   £A ÁA-c                 óH   — | j                  |«      }| j                  ||«      S r   )rK  r…   )r   Úraw_bodyr+   Úparsed_jsons       r   rÛ  zJSONParser._handle_json_bodyV  s'   € ð ×.Ñ.¨xÓ8ˆØ× Ñ  ¨Ó4Ð4r   N)	r!   r"   r#   rÆ  r>   rT   rR   rÚ  rÛ  r   r   r   r×  r×  7  s   „ Ø3Ðà2ò	ò?ò
ó5r   r×  c                   óT   ‡ — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zˆ fd
„Zˆ xZS )ÚBaseRestParserc                 óX   — i }| j                  |«      |d<   | j                  |||«       |S r-  )Ú_populate_response_metadataÚ_add_modeled_parse©r   rZ   r+   r>  s       r   rT   zBaseRestParser._do_parse_  s:   € ØˆØ+/×+KÑ+KØó,
ˆÐ'Ñ(ð 	×Ñ ¨%°Ô>ØÐr   c                 ót   — |€|S |j                   }| j                  ||||«       | j                  ||||«       y r   )r    r®  r¯  )r   rZ   r+   r>  r?  s        r   rí  z!BaseRestParser._add_modeled_parseg  sC   € Øˆ=ØÐØŸ™ˆØ×%Ñ%Ø�e˜]¨Lô	
ð 	×Ñ˜H e¨]¸LÕIr   c                 ó0   — i }| j                  |||«       |S r   ©rí  rî  s       r   rR   z&BaseRestParser._do_modeled_error_parsep  ó   € ØˆØ×Ñ ¨%°Ô>ØÐr   c                 ór   — i }|d   }d|v r
|d   |d<   |S d|v r|d   |d<   |j                  dd«      |d<   |S )Nr6   rO  r  úx-amz-request-idú
x-amz-id-2r)   ÚHostIdrc   ©r   rZ   rh   r6   s       r   rì  z*BaseRestParser._populate_response_metadatau  sf   € ØˆØ˜9Ñ%ˆØ Ñ(Ø$+Ð,>Ñ$?ˆH�[Ñ!ð ˆð   7Ñ*Ø$+Ð,>Ñ$?ˆH�[Ñ!ð ")§¡¨\¸2Ó!>ˆH�XÑØˆr   c                 óø  — d|j                   v rµ|j                   d   }||   }|j                   j                  d«      r| j                  ||«      }|||<   y |j                  dv r6|d   }t	        |t
        «      r|j                  | j                  «      }|||<   y | j                  |d   «      }| j                  ||«      ||<   y | j                  |d   «      }| j                  ||«      }	|j                  |	«       y )Nrâ  rI   )rº  r¹  rG   )rU   rV   r’   r�   rW   ro  rR  rº   r³  r…   r   )
r   rZ   r+   r?  r>  Úpayload_member_nameÚ
body_shaperG   rW  r½  s
             r   r¯  zBaseRestParser._parse_payload‚  s  € Ø˜×+Ñ+Ñ+ð #(×"5Ñ"5°iÑ"@ÐØ&Ð':Ñ;ˆJØ×'Ñ'×+Ñ+¨MÔ:Ø×0Ñ0°¸:ÓF�Ø48�Ð0Ò1Ø×%Ñ%Ð);Ñ;à Ñ'�Ü˜d¤EÔ*ØŸ;™; t×'<Ñ'<Ó=�DØ48�Ð0Ò1à"&×":Ñ":¸8ÀFÑ;KÓ"L�Ø48×4EÑ4EØ ó5�Ð0Ò1ð #×6Ñ6°xÀÑ7GÓHˆOØ×+Ñ+¨E°?ÓCˆKØ×Ñ Õ,r   c                 óR  — |d   }|D ]�  }||   }|j                   j                  d«      }|€Œ&|dk(  r| j                  ||d   «      ||<   ŒD|dk(  r| j                  ||«      ||<   Œ_|dk(  sŒe|j                   j                  d|«      }	|	|v sŒ†| j                  |||	   «      ||<   ŒŸ y )Nr6   rÖ   r7   rH   r5   r‘   )rU   rV   r…   Ú_parse_header_map)
r   rZ   r+   r?  r>  r6   r‘   r‰   rÖ   Úheader_names
             r   r®  z'BaseRestParser._parse_non_payload_attrs›  sÚ   € ð ˜9Ñ%ˆØ!ò 	ˆDØ(¨Ñ.ˆLØ#×1Ñ1×5Ñ5°jÓAˆHØÐØØ˜\Ò)Ø%)×%6Ñ%6Ø  (¨=Ñ"9ó&�˜TÒ"ð ˜YÒ&Ø%)×%;Ñ%;Ø  'ó&�˜TÒ"ð ˜XÓ%Ø*×8Ñ8×<Ñ<¸VÀTÓJ�Ø 'Ò)Ø)-×):Ñ):Ø$ g¨kÑ&:ó*�L Ò&ñ!	r   c                 óØ   — i }|j                   j                  dd«      j                  «       }|D ]8  }|j                  «       j                  |«      sŒ#|t	        |«      d  }||   ||<   Œ: |S )Nr‘   r)   )rU   rV   Úlowerrk   rŸ   )r   r+   r6   r[   Úprefixrý  r‘   s          r   rü  z BaseRestParser._parse_header_map³  sw   € ð ˆØ×$Ñ$×(Ñ(¨°Ó4×:Ñ:Ó<ˆØ"ò 	4ˆKØ× Ñ Ó"×-Ñ-¨fÕ5ð #¤3 v£; =Ð1�Ø& {Ñ3��t’ð	4ð ˆr   c                 ó   — t        d«      ‚rÁ  rÂ  rÃ  s     r   r³  z"BaseRestParser._initial_body_parseÀ  rÄ  r   c                 ó¦   — |}t        |«      rCt        j                  |«      j                  | j                  «      }t        j                  |«      }|S r   )r	   rB   rC   rR  rº   rS  rT  )r   r+   rE   r[   Údecodeds        r   r  zBaseRestParser._handle_stringÇ  sC   € ØˆÜ Ô&Ü×&Ñ& uÓ-×4Ñ4°T×5JÑ5JÓKˆGÜ—Z‘Z Ó(ˆFØˆr   c                 óæ   •— |j                   j                  d«      }|dk(  r<t        |t        «      s,|j	                  d«      D �cg c]  }|j                  «       ‘Œ }}t        ‰| �  ||«      S c c}w )NrÖ   r5   ú,)rU   rV   rW   r•   r²   rj   r¿   r‹   )r   r+   rƒ   rÖ   rù   rz   s        €r   r‹   zBaseRestParser._handle_listÎ  sb   ø€ Ø×&Ñ&×*Ñ*¨:Ó6ˆØ�xÒ¬
°4¼Ô(>à'+§z¡z°#£Ö7 !�A—G‘G•IÐ7ˆDÐ7Ü‰wÑ# E¨4Ó0Ð0ùò 8s   ÁA.)r!   r"   r#   rT   rí  rR   rì  r¯  r®  rü  r³  r  r‹   r  r  s   @r   rê  rê  ^  s;   ø„ òòJòò
ò-ò2ò0ò9ò÷1ð 1r   rê  c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚBaseRpcV2Parserc                 ó¤   — i }|�K|j                   }|r| j                  |||«      }ni }| j                  |||«       | j                  |«      |d<   |S r-  )rÙ  rÚ  r¯  rì  )r   rZ   r+   r[   rÙ  s        r   rT   zBaseRpcV2Parser._do_parse×  sm   € ØˆØÐØ %× 7Ñ 7ÐÙ Ø×2Ñ2Ø˜eÐ%6ó‘ð �Ø×#Ñ# H¨e°VÔ<Ø)-×)IÑ)IØó*ˆFÐ%Ñ&ð ˆr   c                 ó2   — |€|S | j                  |||«       y r   )r¯  rî  s       r   rí  z"BaseRpcV2Parser._add_modeled_parseç  s   € Øˆ=ØÐØ×Ñ˜H e¨\Õ:r   c                 ó0   — i }| j                  |||«       |S r   rñ  rî  s       r   rR   z'BaseRpcV2Parser._do_modeled_error_parseì  rò  r   c                 ó,   — i }|d   }d|v r|d   |d<   |S )Nr6   rO  r  r   r÷  s       r   rì  z+BaseRpcV2Parser._populate_response_metadatañ  s.   € ØˆØ˜9Ñ%ˆØ Ñ(Ø$+Ð,>Ñ$?ˆH�[Ñ!Øˆr   c                 ó�  — i }|j                   }|j                  rp|j                  «       }|j                  dd «       |j	                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}t        |«      dk7  rd}t        ||j                  z  «      ‚|D ]0  }	||	   }
|j                  |	«      }|€Œ| j                  |
|«      ||	<   Œ2 |S c c}}w )Nr˜   r™   rš   )
r    r›   rœ   r�   rž   rŸ   r1   r‘   rV   r…   )r   r+   rƒ   r[   r    r¢   r£   r¤   r¥   rß   r‰   rá   s               r   rå   z!BaseRpcV2Parser._handle_structureø  så   € ØˆØ—-‘-ˆØ× Ò Ø ŸI™I›KˆMØ×Ñ˜h¨Ô-à!.×!4Ñ!4Ó!6÷Ù˜˜A¸!¹-��1‘ðˆMñ ô �=Ó! QÒ&ð&ð ô *¨)°e·j±jÑ*@ÓAÐAØ"ò 	ˆKØ" ;Ñ/ˆLØŸ(™( ;Ó/ˆKØÑ&Ø&*×&7Ñ&7Ø  +ó'��{Ò#ð		ð ˆùó!s   Á
CÁCc                 ór   — | j                  |d   «      }| j                  ||«      }|j                  |«       y rÞ  )r³  r…   r   )r   rZ   r+   r>  rW  r½  s         r   r¯  zBaseRpcV2Parser._parse_payload  s7   € Ø×2Ñ2°8¸FÑ3CÓDˆØ×'Ñ'¨¨Ó?ˆØ×Ñ˜KÕ(r   c                 ó   — t        d«      ‚rÁ  rÂ  rÃ  s     r   r³  z#BaseRpcV2Parser._initial_body_parse  rÄ  r   N)
r!   r"   r#   rT   rí  rR   rì  rå   r¯  r³  r   r   r   r  r  Ö  s%   „ òò ;ò
ò
òò0)ó
9r   r  c                   óH   ‡ — e Zd ZeZd„ Zˆ fd„Zd„ Zd„ Zd„ Z	d„ Z
e	Ze
Zˆ xZS )ÚRestJSONParserc                 ó$   — | j                  |«      S r   rÈ  rÃ  s     r   r³  z"RestJSONParser._initial_body_parse   rÉ  r   c                 óL   •— t         ‰| �  ||«      }| j                  ||«       |S r   )r¿   rS   Ú_inject_error_code)r   rZ   r+   r´   rz   s       €r   rS   zRestJSONParser._do_error_parse#  s)   ø€ Ü‘Ñ'¨°%Ó8ˆØ×Ñ  xÔ0Øˆr   c                 ó*  — | j                  |d   «      }d }d|d   v r	|d   d   }n*d|v sd|v r"|j                  d|j                  dd«      «      }|€y t        |t        «      r(|j	                  dd«      d	   j                  d
d«      d   }||d   d<   y )NrG   zx-amzn-errortyper6   r³   rn   r)   rÙ   r™   r   rJ  r‚  rq   )r³  rV   rW   rr   r²   rL  )r   r´   rZ   rG   r³   s        r   r  z!RestJSONParser._inject_error_code(  sª   € ð ×'Ñ'¨°Ñ(8Ó9ˆØˆØ ¨)Ñ!4Ñ4Ø˜IÑ&Ð'9Ñ:‰DØ�t‰^˜v¨™~Ø—8‘8˜F D§H¡H¨V°RÓ$8Ó9ˆDØˆ<ØÜ�dœCÔ Ø—:‘:˜c 1Ó% aÑ(×/Ñ/°°QÓ7¸Ñ;ˆDØ!%ˆˆg‰�vÒr   c                 ó   — t        |«      S r   )r   r�   s      r   r  zRestJSONParser._handle_boolean7  s   € Ü˜eÓ$Ð$r   c                 ó   — t        |«      S r   r
  r�   s      r   r  zRestJSONParser._handle_integer:  s   € Ü�5‹zÐr   c                 ó   — t        |«      S r   r  r�   s      r   r  zRestJSONParser._handle_float=  s   € Ü�U‹|Ðr   )r!   r"   r#   rÆ  r>   r³  rS   r  r  r  r  r  r  r  r  s   @r   r  r    s3   ø„ Ø3Ðò7ôò
&ò%òòð #€LØ"„Nr   r  c                   ó"   — e Zd ZeZd„ Zd„ Zd„ Zy)ÚRpcV2CBORParserc                 óT   — |dk(  r|S | j                  |«      }| j                  |«      S rÕ  )rp  rx  )r   rV  Úbody_contents_streams      r   r³  z#RpcV2CBORParser._initial_body_parseG  s8   € Ø˜CÒØ Ð Ø#×BÑBØó 
Ðð ×#Ñ#Ð$8Ó9Ð9r   c                 óÈ  — | j                  |d   «      }|j                  d|j                  dd«      «      ddœi dœ}|d   }|j                  d«      }|€|j                  d	«      }|�t        |«      }|�Qd
|v r|j                  d
d«      d   }d|v r|j	                  dd«      d   }d|v r| j                  |||«      }||d   d<   d|v r|d   |j                  di «      d<   |S )NrG   rI  ro   r)   rH  rp   r6   r˜   rH   rÙ   r™   r   rJ  r­   rq   rn   rO  rJ   r  )r³  rV   rr   r²   rL  r·   rP  )r   rZ   r+   rG   r´   r6   r³   rM  s           r   rS   zRpcV2CBORParser._do_error_parseO  s   € Ø×'Ñ'¨°Ñ(8Ó9ˆð  Ÿ8™8 I¨t¯x©x¸	À2Ó/FÓGØñð !#ñ
ˆð ˜9Ñ%ˆà�x‰x˜Ó!ˆØˆ<Ø$ŸL™L¨Ó7ˆMØÐ(Ü˜=Ó)�ØÐØ�d‰{Ø—z‘z # qÓ)¨!Ñ,�Ø�d‰{Ø—{‘{ 3¨Ó*¨1Ñ-�Ø# wÑ.Ø×<Ñ<Ø˜' 5ó�ð &*ˆE�'‰N˜6Ñ"Ø Ñ(ØDKØ"ñEˆE×ÑÐ/°Ó4°[ÑAð ˆr   c                 óÞ   — |j                   |   }| j                  ||«      }	 |j                  «       }| j                  |j                  «      }|||<   |S # t        $ r d}t	        |«      ‚w xY wrà  )r    r’   rá  r   r1   r³  râ  rã  s	            r   rÚ  z$RpcV2CBORParser._handle_event_streamo  s}   € Ø"Ÿ]™]¨:Ñ6ÐØ×0Ñ0°Ð;MÓNˆð	1Ø ×5Ñ5Ó7ˆEð ×)Ñ)¨%¯-©-Ó8ˆØ)ˆˆzÑØˆøô &ò 	1ØFˆIÜ% iÓ0Ð0ð	1ús   £A ÁA,N)r!   r"   r#   rÓ  r>   r³  rS   rÚ  r   r   r   r  r  D  s   „ Ø3Ðò:òó@
r   r  c                   óD   ‡ — e Zd ZeZd„ Zd„ Zd„ Zd„ Ze	ˆ fd„«       Z
ˆ xZS )ÚRestXMLParserc                 óR   — |st        j                  d«      S | j                  |«      S rÒ   rÎ  rÐ  s     r   r³  z!RestXMLParser._initial_body_parse  rÑ  r   c                 óž   — |d   r	 | j                  |«      S | j	                  |«      S # t        $ r t        j                  dd¬«       Y Œ3w xY w)NrG   z2Exception caught when parsing error response body:T)Úexc_info)Ú_parse_error_from_bodyr1   rM   rN   Ú_parse_error_from_http_statusr{   s      r   rS   zRestXMLParser._do_error_parse„  s]   € ð �FÒðØ×2Ñ2°8Ó<Ð<ð ×1Ñ1°(Ó;Ð;øô 'ò Ü—	‘	ØHØ!ð ö ðús   ‡) © AÁAc                 óÒ   — t        |d   «      t        j                  j                  j	                  |d   d«      dœ|d   j	                  dd«      |d   j	                  dd«      dœdœS )	NrH   r)   rm   r6   rô  rõ  )r  rö  rp   )rr   rs   rt   ru   rV   rv   s     r   r$  z+RestXMLParser._parse_error_from_http_statusŸ  st   € ô ˜H ]Ñ3Ó4ÜŸ;™;×0Ñ0×4Ñ4Ø˜]Ñ+¨Róñð & iÑ0×4Ñ4Ð5GÈÓLØ" 9Ñ-×1Ñ1°,ÀÓCñ!ñ
ð 	
r   c                 ób  — |d   }| j                  |«      }| j                  |«      }| j                  |«       |j                  dk(  r:| j	                  |«      }|j                  dd«       |j                  dd«       ||dœS d|v rd|j                  d«      i|d<   ddddœi}t        ||«       |S )	NrG   rq   r  r)   rö  rp   rJ   rH  )rú   rÛ   rü   r¦   rì  r�   r   )r   rZ   r  rø   r[   rh   Údefaults          r   r#  z$RestXMLParser._parse_error_from_body­  sÀ   € Ø Ñ'ˆØ×,Ñ,¨\Ó:ˆØ×-Ñ-¨dÓ3ˆØ×Ñ˜FÔ#Ø�8‰8�wÒð ×7Ñ7¸ÓAˆHð
 �J‰J�{ BÔ'Ø�J‰J�x Ô$Ø#¸ÑBÐBØ˜FÑ"à*5°v·z±zÀ+Ó7NÐ)OˆFÐ%Ñ&Ø¨°BÑ7Ð8ˆÜ�G˜VÔ$Øˆr   c                 ó(   •— t         ‰| �  ||«      }|S r   )r¿   r  )r   r+   r(   rz   s      €r   r  zRestXMLParser._handle_stringÄ  s   ø€ ä‰wÑ% e¨TÓ2ˆØˆr   )r!   r"   r#   rÌ  r>   r³  rS   r$  r#  r/   r  r  r  s   @r   r  r  |  s1   ø„ Ø2Ðò9ò
<ò6
òð. óó ôr   r  )Úec2ÚqueryrS  z	rest-jsonzrest-xmlzsmithy-rpc-v2-cbor)1r¹   rB   Úhttp.clientrs   rl  rS  Úloggingr¥  rÀ   rš  Úbotocore.compatr   r   Úbotocore.eventstreamr   r   Úbotocore.utilsr   r   r	   r
   r   r   Ú	getLoggerr!   rM   r9   r   r    r/   Ú	Exceptionr1   r3   r½   r  r2  r;  rY  r¬  rÆ  rÌ  rÓ  r×  rê  r  r  r  r  r   r   r   r   ú<module>r2     sy  ðñkóZ Û Û 	Û Û Û 	Û 	Û ç 0ß D÷÷ ð €g×Ñ˜Ó!€à*Ð ÷,ñ ,ò*;òô*	˜)ô 	÷\ñ \ô~n#˜Nô n#ôb1:Ð'ô 1:ôh!�[ô !ôH^%�^ô ^%ôB~�^ô ~ôBP9˜Nô P9ôf7Ð1°>ô 7ô
9Ð0Ð2Gô 9ô
Ð1°>ô 
ô$5�ô $5ôNu1�^ô u1ôpD9�nô D9ôN$#�^ ^ô $#ôN5�o ~ô 5ôpK�NÐ$9ô Kð^ ØØØØØ)ñÑ r   