§
    ~ŠtjD`  ã                    ó  — 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	Z	ddl
mZmZ ddlmZmZ ddlmZ ddlmZmZmZmZmZmZmZ ddlmZmZ ddlmZ dd	lm Z m!Z! dd
l"m#Z# ddl$Z$ddl%m&Z&m'Z'm(Z(m)Z) ddl*m+Z+m,Z, ddl
m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZE ddlFmGZG erddlHmIZI neZIejJ        dk    rerddlmKZK ejJ        dk    rddlmLZL neZL ede=d¦  «        ZM ede?¬¦  «        ZNejO        dk    o
ejP        dk    ZQejR        fd eSd!ejT        d"ej        fd#„ZUd eSd$eVd!ejT        d"ej        fd%„ZWd"eVfd&„ZX G d'„ d(e¦  «        ZY G d)„ d*eY¦  «        ZZ G d+„ d,eY¦  «        Z[ G d-„ d.eeNeMf         ¦  «        Z\ G d/„ d0e¦  «        Z]d1ed2ed3ed"efd4„Z^eg ej_        f         Z`eja        ejb        d5fd6e`d7ecd"eej_                 fd8„¦   «         Zdejb        fd6e`d"ej_        fd9„ZedRd:ej_        d7ecd"dfd;„Zfd"ejg        fd<„ZhdSd=eIdz  d"eji        fd>„Zj	 dSe3 e5dd¦  «        d5de3e3e3e8dd?d@dAœdBeSdCeSdDedEedFe5dGecdHedIedJedKedLe9d=eIdz  dMeVd:ed"eAfdN„Zke3e3fdOedPed"efdQ„ZldS )TzUtilities shared by tests.é    N)ÚABCÚabstractmethod)ÚCallableÚIterator)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚGenericÚLiteralÚTypeVarÚcastÚoverload)ÚIsolatedAsyncioTestCaseÚmock)ÚSignal)ÚCIMultiDictÚCIMultiDictProxy)ÚURL)Ú_BaseRequestContextManagerÚ_RequestContextManagerÚ_RequestOptionsÚ_WSRequestContextManageré   )ÚClientSessionÚhdrs)ÚAbstractCookieJar)ÚClientResponse)ÚClientWebSocketResponse)Úsentinel)ÚHttpVersionÚRawRequestMessage)ÚEMPTY_PAYLOADÚStreamReader)ÚStrOrURL)	ÚApplicationÚ	AppRunnerÚBaseRequestÚ
BaseRunnerÚRequestÚServerÚServerRunnerÚSockSiteÚUrlMappingMatchInfo)Ú_RequestHandler)Ú
SSLContext©é   é   )ÚUnpack)ÚSelfÚ_ApplicationNoneÚ_Request)ÚboundÚposixÚcygwinÚhostÚfamilyÚreturnc                 ó$   — t          | d|¦  «        S )Nr   )Úget_port_socket)r:   r;   s     úP/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/aiohttp/test_utils.pyÚget_unused_port_socketr@   F   s   € õ ˜4  FÑ+Ô+Ð+ó    Úportc                 óÖ   — t          j         |t           j        ¦  «        }t          r+|                     t           j        t           j        d¦  «         |                     | |f¦  «         |S )Nr   )ÚsocketÚSOCK_STREAMÚREUSE_ADDRESSÚ
setsockoptÚ
SOL_SOCKETÚSO_REUSEADDRÚbind)r:   rB   r;   Úss       r?   r>   r>   L   sZ   € õ 	Œ�f�fÔ0Ñ1Ô1€AÝð @ð 	
�Š•VÔ&­Ô(;¸QÑ?Ô?Ð?Ø‡F‚FˆD�$ˆ<ÑÔÐØ€HrA   c                  ó  — t          j         t           j        t           j        ¦  «        5 } |                      d¦  «         t	          t
          |                      ¦   «         d         ¦  «        cddd¦  «         S # 1 swxY w Y   dS )z1Return a port that is unused on the current host.)ú	127.0.0.1r   r   N)rD   ÚAF_INETrE   rJ   r   ÚintÚgetsockname)rK   s    r?   Úunused_portrQ   Y   s§   € å	Œ•v”~¥vÔ'9Ñ	:Ô	:ð -¸aØ	�ŠÐÑ Ô Ð Ý•C˜Ÿš™œ¨Ô+Ñ,Ô,ð-ð -ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -s   ªAA9Á9A=Â A=c                   óº  — e Zd ZdZdddddedœdedej        dz  ded	edz  d
e	de
eeej        gej        f         deddfd„Z	 ddej        dz  deddfd„Zededefd„¦   «         Zdedefd„Zede	fd„¦   «         Zede	fd„¦   «         Zedefd„¦   «         Zdd„Zdd„Zdee         dz  dedz  dedz  ddfd„Z d d„Z!dee         dz  dedz  dedz  ddfd„Z"dS )!ÚBaseTestServerFÚ NrM   )ÚschemeÚloopr:   rB   Úskip_url_assertsÚsocket_factoryrU   rV   r:   rB   rW   rX   Úkwargsr<   c                ó„   — || _         d | _        d | _        || _        || _        d| _        || _        || _        || _        d S )NF)	Ú_loopÚrunnerÚ_rootr:   rB   Ú_closedrU   rW   rX   )ÚselfrU   rV   r:   rB   rW   rX   rY   s           r?   Ú__init__zBaseTestServer.__init__c   sK   € ð ˆŒ
Ø)-ˆŒØ!%ˆŒ
ØˆŒ	ØˆŒ	ØˆŒØˆŒØ 0ˆÔØ,ˆÔÐÐrA   c              ‹   ó®  K  — | j         rd S || _        |                     dd ¦  «        | _         | j        dddi|¤Žƒ d {V —†| _         | j                              ¦   «         ƒ d {V —† | j        sd| _        | j        }	 t          j	        | j        ¦  «        j
        }n# t          $ r d}Y nw xY w|dk    rd| j        › d�}|dk    rt          j        nt          j        }|                      | j        | j        |¦  «        }|                     ¦   «         d d	…         \  | _        | _        t#          | j         || j        ¬
¦  «        }|                     ¦   «         ƒ d {V —† |j        }|€J ‚|j        }	|	€J ‚|	d                              ¦   «         d         | _        | j        s| j        rdnd| _        t-          | j        › d|› d| j        › �¦  «        | _        d S )NÚsslÚhandler_cancellationTr   é   é   ú[ú]é   )ÚsockÚssl_contextr   ÚhttpsÚhttpz://ú:© )r\   r[   ÚpopÚ_sslÚ_make_runnerÚsetuprB   r:   Ú	ipaddressÚ
ip_addressÚversionÚ
ValueErrorrD   ÚAF_INET6rN   rX   rP   r,   ÚstartÚ_serverÚsocketsrU   r   r]   )
r_   rV   rY   Úabsolute_hostru   r;   Ú_sockÚsiteÚserverrz   s
             r?   Ústart_serverzBaseTestServer.start_serverz   s  è è € ð Œ;ð 	ØˆFØˆŒ
Ø—J’J˜u dÑ+Ô+ˆŒ	Ø-˜DÔ-ÐRÐRÀ4ÐRÈ6ÐRÐRÐRÐRÐRÐRÐRÐRˆŒØŒk×ÒÑ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒyð 	ØˆDŒIØœ	ˆð	ÝÔ*¨4¬9Ñ5Ô5Ô=ˆGˆGøÝð 	ð 	ð 	ØˆGˆGˆGð	øøøà�aŠ<ˆ<Ø, ¤	Ð,Ð,Ð,ˆMØ$+¨q¢L L•”�µf´nˆØ×#Ò# D¤I¨t¬y¸&ÑAÔAˆØ$×0Ò0Ñ2Ô2°2°A°2Ô6ÑˆŒ	�4”9Ý˜œ¨%¸T¼YÐGÑGÔGˆØ�jŠj‰lŒlÐÐÐÐÐÐÐØ”ˆØÐ!Ð!Ð!Ø”.ˆØÐ"Ð"Ð"Ø˜A”J×*Ò*Ñ,Ô,¨QÔ/ˆŒ	ØŒ{ð 	;Ø%)¤YÐ:˜'˜'°FˆDŒKÝ˜DœKÐGÐG¨MÐGÐG¸D¼IÐGÐGÑHÔHˆŒ
ˆ
ˆ
s   Á=B ÂB+Â*B+c              ‹   ó
   K  — d S ©Nrn   ©r_   rY   s     r?   rq   zBaseTestServer._make_runnerš   s   è è € àˆrA   Úpathc                 óè   — | j         €J ‚t          |¦  «        }| j        s#|j        rJ ‚| j                              |¦  «        S t          t          | j         ¦  «        t          |¦  «        z   ¦  «        S r�   )r]   r   rW   ÚabsoluteÚjoinÚstr)r_   rƒ   Úurls      r?   Úmake_urlzBaseTestServer.make_urlž   si   € ØŒzÐ%Ð%Ð%Ý�$‰iŒiˆØÔ$ð 	4Ø”|Ð#Ð#Ð#Ø”:—?’? 3Ñ'Ô'Ð'å•s˜4œ:‘”­¨T©¬Ñ2Ñ3Ô3Ð3rA   c                 ó   — | j         d uS r�   )r\   ©r_   s    r?   ÚstartedzBaseTestServer.started§   s   € àŒ{ $Ð&Ð&rA   c                 ó   — | j         S r�   )r^   r‹   s    r?   ÚclosedzBaseTestServer.closed«   ó
   € àŒ|ÐrA   c                 ó8   — | j         }|€J ‚|j        €J ‚|j        S r�   )r\   r~   )r_   r\   s     r?   ÚhandlerzBaseTestServer.handler¯   s-   € ð ”ˆØÐ!Ð!Ð!ØŒ}Ð(Ð(Ð(ØŒ}ÐrA   c              ƒ   ó¨   K  — | j         rF| j        sA| j        €J ‚| j                             ¦   «         ƒ d{V —† d| _        d| _        d| _        dS dS dS )a`  Close all fixtures created by the test client.

        After that point, the TestClient is no longer usable.

        This is an idempotent function: running close multiple times
        will not have any additional effects.

        close is also run when the object is garbage collected, and on
        exit when used as a context manager.

        NT)rŒ   rŽ   r\   Úcleanupr]   rB   r^   r‹   s    r?   ÚclosezBaseTestServer.close¸   s|   è è € ð Œ<ð 	  ¤ð 	 Ø”;Ð*Ð*Ð*Ø”+×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØˆDŒJØˆDŒIØˆDŒLˆLˆLð	 ð 	 ð 	 ð 	 rA   c                 ó    — t          d¦  «        ‚©NzUse async with instead©Ú	TypeErrorr‹   s    r?   Ú	__enter__zBaseTestServer.__enter__Ë   ó   € ÝÐ0Ñ1Ô1Ð1rA   Úexc_typeÚ	exc_valueÚ	tracebackc                 ó   — d S r�   rn   ©r_   r›   rœ   r�   s       r?   Ú__exit__zBaseTestServer.__exit__Î   ó	   € ð 	ˆrA   c              ƒ   óL   K  — |                       | j        ¬¦  «        ƒ d {V —† | S ©N©rV   )r   r[   r‹   s    r?   Ú
__aenter__zBaseTestServer.__aenter__×   s6   è è € Ø×Ò T¤ZÐÑ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØˆrA   c              ƒ   ó>   K  — |                       ¦   «         ƒ d {V —† d S r�   ©r”   rŸ   s       r?   Ú	__aexit__zBaseTestServer.__aexit__Û   ó.   è è € ð �jŠj‰lŒlÐÐÐÐÐÐÐÐÐrA   r�   ©r<   N)r<   rS   )#Ú__name__Ú
__module__Ú__qualname__Ú__test__r>   r‡   ÚasyncioÚAbstractEventLooprO   Úboolr   rD   ÚAddressFamilyr	   r`   r   r   r(   rq   r$   r   r‰   ÚpropertyrŒ   rŽ   r*   r‘   r”   r™   ÚtypeÚBaseExceptionr   r    r¥   r¨   rn   rA   r?   rS   rS   `   s¦  € € € € € Ø€Hð
 Ø15ØØØ!&ð ð-ð -ð -ð ð-ð Ô'¨$Ñ.ð	-ð
 ð-ð �D‰jð-ð ð-ð !Ø�#�vÔ+Ð,¨f¬mÐ;ô
ð-ð ð-ð 
ð-ð -ð -ð -ð0 8<ðIð IØÔ-°Ñ4ðIØGJðIà	ðIð Ið Ið Ið@ ð¨3ð °:ð ð ð ñ „^ðð4˜Xð 4¨#ð 4ð 4ð 4ð 4ð ð'˜ð 'ð 'ð 'ñ „Xð'ð ð˜ð ð ð ñ „Xðð ð˜ð ð ð ñ „Xðð ð  ð  ð  ð&2ð 2ð 2ð 2ðà�}Ô%¨Ñ,ðð ! 4Ñ'ðð ! 4Ñ'ð	ð
 
ðð ð ð ðð ð ð ðà�}Ô%¨Ñ,ðð ! 4Ñ'ðð ! 4Ñ'ð	ð
 
ðð ð ð ð ð rA   rS   c                   óT   ‡ — e Zd Zddddœdededededz  d	ef
ˆ fd
„Zd	edefd„Z	ˆ xZ
S )Ú
TestServerrT   rM   N©rU   r:   rB   ÚapprU   r:   rB   rY   c                óP   •— || _          t          ¦   «         j        d|||dœ|¤Ž d S ©Nr¸   rn   )r¹   Úsuperr`   )r_   r¹   rU   r:   rB   rY   Ú	__class__s         €r?   r`   zTestServer.__init__å   s8   ø€ ð ˆŒØ�‰ŒÔÐG ¨T¸ÐGÐGÀÐGÐGÐGÐGÐGrA   r<   c              ‹   ó*   K  — t          | j        fi |¤ŽS r�   )r&   r¹   r‚   s     r?   rq   zTestServer._make_runnerñ   s   è è € Ý˜œÐ,Ð, VÐ,Ð,Ð,rA   )r«   r¬   r­   r%   r‡   rO   r	   r`   r(   rq   Ú__classcell__©r½   s   @r?   r·   r·   ä   sµ   ø€ € € € € ð
 ØØð
Hð 
Hð 
Hàð
Hð ð	
Hð
 ð
Hð �D‰jð
Hð ð
Hð 
Hð 
Hð 
Hð 
Hð 
Hð-¨3ð -°:ð -ð -ð -ð -ð -ð -ð -ð -rA   r·   c                   ó^   ‡ — e Zd Zddddœdededededz  d	ed
dfˆ fd„Zdded	ed
e	fd„Z
ˆ xZS )ÚRawTestServerrT   rM   Nr¸   r‘   rU   r:   rB   rY   r<   c                óP   •— || _          t          ¦   «         j        d|||dœ|¤Ž d S r»   )Ú_handlerr¼   r`   )r_   r‘   rU   r:   rB   rY   r½   s         €r?   r`   zRawTestServer.__init__ö   s8   ø€ ð  ˆŒØ�‰ŒÔÐG ¨T¸ÐGÐGÀÐGÐGÐGÐGÐGrA   TÚdebugc              ‹   óX   K  — t          | j        f| j        |dœ|¤Ž}t          |fd|i|¤ŽS )N)rV   rÅ   rÅ   )r*   rÄ   r[   r+   )r_   rÅ   rY   Úsrvs       r?   rq   zRawTestServer._make_runner  sA   è è € Ý�T”]ÐK¨¬¸5ÐKÐKÀFÐKÐKˆÝ˜CÐ7Ð7 uÐ7°Ð7Ð7Ð7rA   )T)r«   r¬   r­   r.   r‡   rO   r	   r`   r±   r+   rq   r¿   rÀ   s   @r?   rÂ   rÂ   õ   sÌ   ø€ € € € € ð
 ØØð
Hð 
Hð 
Hà ð
Hð ð	
Hð
 ð
Hð �D‰jð
Hð ð
Hð 
ð
Hð 
Hð 
Hð 
Hð 
Hð 
Hð8ð 8¨ð 8¸sð 8À|ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8rA   rÂ   c                   óB  — e Zd ZdZdZeddœdddededz  d	ed
df
d„¦   «         Z	eddœddde
dedz  d	ed
df
d„¦   «         Z	dddœde
dedz  dej        dz  d	ed
df
d„Z	dFd„Zed
efd„¦   «         Zed
edz  fd„¦   «         Zed
e
fd„¦   «         Zed
efd„¦   «         Zed
efd„¦   «         Zded
efd„Zdeded	ed
efd„Zej        dk    r…erƒdeded	e e!         d
e"fd„Z#ded	e e!         d
e"fd„Z$ded	e e!         d
e"fd„Z%ded	e e!         d
e"fd„Z&ded	e e!         d
e"fd „Z'ded	e e!         d
e"fd!„Z(ded	e e!         d
e"fd"„Z)ded	e e!         d
e"fd#„Z*nRdeded	ed
e"fd$„Z#ded	ed
e"fd%„Z$ded	ed
e"fd&„Z'ded	ed
e"fd'„Z%ded	ed
e"fd(„Z&ded	ed
e"fd)„Z(ded	ed
e"fd*„Z)ded	ed
e"fd+„Z*ed,d-œded.e+d/         d	ed
d0fd1„¦   «         Z,eded.e+d         d	ed
d2fd3„¦   «         Z,ed,d-œded.e-d	ed
d4fd5„¦   «         Z,d/d-œded.e-d	ed
d4fd6„Z,ed,d-œded.e+d/         d	ed
d7fd8„¦   «         Z.eded.e+d         d	ed
d9fd:„¦   «         Z.ed,d-œded.e-d	ed
d;fd<„¦   «         Z.d/d-œded.e-d	ed
d;fd=„Z.dFd>„Z/dFd?„Z0d@e1e2         dz  dAe2dz  dBe3dz  d
dfdC„Z4d
e5fdD„Z6d@e1e2         dz  dAe2dz  dBe3dz  d
dfdE„Z7dS )GÚ
TestClientzb
    A test client implementation.

    To write functional tests for aiohttp based servers.

    FN)Ú
cookie_jarr_   z TestClient[Request, Application]r~   rÊ   rY   r<   c                ó   — d S r�   rn   ©r_   r~   rÊ   rY   s       r?   r`   zTestClient.__init__  ó	   € ð ˆsrA   zTestClient[_Request, None]c                ó   — d S r�   rn   rÌ   s       r?   r`   zTestClient.__init__  rÍ   rA   )rÊ   rV   rV   c                ó$  — t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚|| _        || _        |€t          j        d|¬¦  «        }t          d||dœ|¤Ž| _	        d| j	        _
        d| _        g | _        g | _        d S )Nz2server must be TestServer instance, found type: %rT)ÚunsaferV   )rV   rÊ   Frn   )Ú
isinstancerS   r˜   r´   ry   r[   ÚaiohttpÚ	CookieJarr   Ú_sessionÚ_retry_connectionr^   Ú
_responsesÚ_websockets)r_   r~   rÊ   rV   rY   s        r?   r`   zTestClient.__init__!  s£   € õ ˜&¥.Ñ1Ô1ð 	ÝØDÅtÈFÁ|Ä|ÑSñô ð ð ˆŒØˆŒ
ØÐÝ Ô*°$¸TÐBÑBÔBˆJÝ%ÐQ¨4¸JÐQÐQÈ&ÐQÐQˆŒØ*/ˆŒÔ'ØˆŒØ02ˆŒØ@BˆÔÐÐrA   c              ƒ   óV   K  — | j                              | j        ¬¦  «        ƒ d {V —† d S r£   )ry   r   r[   r‹   s    r?   r   zTestClient.start_server7  s9   è è € ØŒl×'Ò'¨T¬ZÐ'Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8rA   c                 ó   — | j         j        S r�   )ry   r:   r‹   s    r?   r:   zTestClient.host:  ó   € àŒ|Ô Ð rA   c                 ó   — | j         j        S r�   )ry   rB   r‹   s    r?   rB   zTestClient.port>  rÚ   rA   c                 ó   — | j         S r�   )ry   r‹   s    r?   r~   zTestClient.serverB  r�   rA   c                 ó.   — t          | j        dd ¦  «        S )Nr¹   )Úgetattrry   r‹   s    r?   r¹   zTestClient.appF  s   € å�t”| U¨DÑ1Ô1Ð1rA   c                 ó   — | j         S )zðAn internal aiohttp.ClientSession.

        Unlike the methods on the TestClient, client session requests
        do not automatically include the host in the url queried, and
        will require an absolute path to the resource.

        )rÔ   r‹   s    r?   ÚsessionzTestClient.sessionJ  s   € ð Œ}ÐrA   rƒ   c                 ó6   — | j                              |¦  «        S r�   )ry   r‰   )r_   rƒ   s     r?   r‰   zTestClient.make_urlU  s   € ØŒ|×$Ò$ TÑ*Ô*Ð*rA   Úmethodc              ‹   ó˜   K  —  | j         j        ||                      |¦  «        fi |¤Žƒ d {V —†}| j                             |¦  «         |S r�   )rÔ   Úrequestr‰   rÖ   Úappend)r_   râ   rƒ   rY   Úresps        r?   Ú_requestzTestClient._requestX  s_   è è € ð +�T”]Ô*¨6°4·=²=ÀÑ3FÔ3FÐQÐQÈ&ÐQÐQÐQÐQÐQÐQÐQÐQˆàŒ×Ò˜tÑ$Ô$Ð$ØˆrA   r0   c                 ó   — d S r�   rn   ©r_   râ   rƒ   rY   s       r?   rä   zTestClient.requestb  s   € à%( SrA   c                 ó   — d S r�   rn   ©r_   rƒ   rY   s      r?   ÚgetzTestClient.getf  ó	   € ð &) SrA   c                 ó   — d S r�   rn   rë   s      r?   ÚoptionszTestClient.optionsl  rí   rA   c                 ó   — d S r�   rn   rë   s      r?   ÚheadzTestClient.headr  rí   rA   c                 ó   — d S r�   rn   rë   s      r?   ÚpostzTestClient.postx  rí   rA   c                 ó   — d S r�   rn   rë   s      r?   ÚputzTestClient.put~  rí   rA   c                 ó   — d S r�   rn   rë   s      r?   ÚpatchzTestClient.patch„  rí   rA   c                 ó   — d S r�   rn   rë   s      r?   ÚdeletezTestClient.deleteŠ  rí   rA   c                 ó:   — t           | j        ||fi |¤Ž¦  «        S )zäRoutes a request to tested http server.

            The interface is identical to aiohttp.ClientSession.request,
            except the loop kwarg is overridden by the instance used by the
            test server.

            )r   rç   ré   s       r?   rä   zTestClient.request’  s(   € õ *¨-¨$¬-¸ÀÐ*OÐ*OÈÐ*OÐ*OÑPÔPÐPrA   c                 óN   — t           | j        t          j        |fi |¤Ž¦  «        S )zPerform an HTTP GET request.)r   rç   r   ÚMETH_GETrë   s      r?   rì   zTestClient.getž  ó(   € å)¨-¨$¬-½¼ÀtÐ*VÐ*VÈvÐ*VÐ*VÑWÔWÐWrA   c                 óN   — t           | j        t          j        |fi |¤Ž¦  «        S )zPerform an HTTP POST request.)r   rç   r   Ú	METH_POSTrë   s      r?   ró   zTestClient.post¢  ó)   € å)¨-¨$¬-½¼ÈÐ*WÐ*WÐPVÐ*WÐ*WÑXÔXÐXrA   c                 óN   — t           | j        t          j        |fi |¤Ž¦  «        S )z Perform an HTTP OPTIONS request.)r   rç   r   ÚMETH_OPTIONSrë   s      r?   rï   zTestClient.options¦  s0   € å)Ø�”�dÔ/°Ð@Ð@¸Ð@Ð@ñô ð rA   c                 óN   — t           | j        t          j        |fi |¤Ž¦  «        S )zPerform an HTTP HEAD request.)r   rç   r   Ú	METH_HEADrë   s      r?   rñ   zTestClient.head¬  r   rA   c                 óN   — t           | j        t          j        |fi |¤Ž¦  «        S )zPerform an HTTP PUT request.)r   rç   r   ÚMETH_PUTrë   s      r?   rõ   zTestClient.put°  rý   rA   c                 óN   — t           | j        t          j        |fi |¤Ž¦  «        S ©zPerform an HTTP PATCH request.)r   rç   r   Ú
METH_PATCHrë   s      r?   r÷   zTestClient.patch´  s/   € å)Ø�”�dœo¨tÐ>Ð>°vÐ>Ð>ñô ð rA   c                 óN   — t           | j        t          j        |fi |¤Ž¦  «        S r  )r   rç   r   ÚMETH_DELETErë   s      r?   rù   zTestClient.deleteº  s0   € å)Ø�”�dÔ.°Ð?Ð?¸Ð?Ð?ñô ð rA   .)Údecode_textr  TzB_BaseRequestContextManager[ClientWebSocketResponse[Literal[True]]]c                ó   — d S r�   rn   ©r_   rƒ   r  rY   s       r?   Ú
ws_connectzTestClient.ws_connectÀ  s   € ð PSÈsrA   zC_BaseRequestContextManager[ClientWebSocketResponse[Literal[False]]]c                ó   — d S r�   rn   r  s       r?   r  zTestClient.ws_connectÅ  s   € ð QTÐPSrA   z9_BaseRequestContextManager[ClientWebSocketResponse[bool]]c                ó   — d S r�   rn   r  s       r?   r  zTestClient.ws_connectÊ  s   € ð GJÀcrA   c                ó<   — t           | j        |fd|i|¤Ž¦  «        S )zjInitiate websocket connection.

        The api corresponds to aiohttp.ClientSession.ws_connect.

        r  )r   Ú_ws_connectr  s       r?   r  zTestClient.ws_connectÏ  s3   € õ (ØˆDÔ˜TÐEÐE¨{ÐE¸fÐEÐEñ
ô 
ð 	
rA   z&ClientWebSocketResponse[Literal[True]]c             ‹   ó
   K  — d S r�   rn   r  s       r?   r  zTestClient._ws_connectÛ  s   è è € ð 47°3rA   z'ClientWebSocketResponse[Literal[False]]c             ‹   ó
   K  — d S r�   rn   r  s       r?   r  zTestClient._ws_connectà  s   è è € ð 58°CrA   zClientWebSocketResponse[bool]c             ‹   ó
   K  — d S r�   rn   r  s       r?   r  zTestClient._ws_connectå  s   è è € ð +.¨#rA   c             ‹   óš   K  —  | j         j        |                      |¦  «        fd|i|¤Žƒ d {V —†}| j                             |¦  «         |S )Nr  )rÔ   r  r‰   r×   rå   )r_   rƒ   r  rY   Úwss        r?   r  zTestClient._ws_connectê  s~   è è € ð ,�4”=Ô+Ø�MŠM˜$ÑÔð
ð 
Ø-8ð
Ø<Bð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð 	Ô×Ò Ñ#Ô#Ð#Øˆ	rA   c              ƒ   ó*  K  — | j         s‰| j        D ]}|                     ¦   «          Œ| j        D ]}|                     ¦   «         ƒ d{V —† Œ| j                             ¦   «         ƒ d{V —† | j                             ¦   «         ƒ d{V —† d| _         dS dS )aH  Close all fixtures created by the test client.

        After that point, the TestClient is no longer usable.

        This is an idempotent function: running close multiple times
        will not have any additional effects.

        close is also run on exit when used as a(n) (asynchronous)
        context manager.

        NT)r^   rÖ   r”   r×   rÔ   ry   )r_   ræ   r  s      r?   r”   zTestClient.closeó  sÈ   è è € ð Œ|ð 	 Øœð ð �Ø—
’
‘”��ØÔ&ð !ð !�Ø—h’h‘j”jÐ Ð Ð Ð Ð Ð Ð Ð Ø”-×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ø”,×$Ò$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ØˆDŒLˆLˆLð	 ð 	 rA   c                 ó    — t          d¦  «        ‚r–   r—   r‹   s    r?   r™   zTestClient.__enter__  rš   rA   r›   ÚexcÚtbc                 ó   — d S r�   rn   ©r_   r›   r  r  s       r?   r    zTestClient.__exit__  r¡   rA   c              ƒ   ó>   K  — |                       ¦   «         ƒ d {V —† | S r�   )r   r‹   s    r?   r¥   zTestClient.__aenter__  s/   è è € Ø×ÒÑ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØˆrA   c              ƒ   ó>   K  — |                       ¦   «         ƒ d {V —† d S r�   r§   r  s       r?   r¨   zTestClient.__aexit__  r©   rA   rª   )8r«   r¬   r­   Ú__doc__r®   r   r·   r   r	   r`   rS   r¯   r°   r   r³   r‡   r:   rO   rB   r~   r5   r¹   r   rà   r$   r   r‰   r   rç   ÚsysÚversion_infor   r3   r   r   rä   rì   rï   rñ   ró   rõ   r÷   rù   r   r  r±   r  r”   r™   r´   rµ   r   r    r4   r¥   r¨   rn   rA   r?   rÉ   rÉ     s	  € € € € € ðð ð €Hàð
 04ð	ð ð Ø0ðàðð &¨Ñ,ð	ð
 ðð 
ðð ð ñ „Xðð ð
 04ð	ð ð Ø*ðàðð &¨Ñ,ð	ð
 ðð 
ðð ð ñ „Xðð 04Ø15ðCð Cð CàðCð &¨Ñ,ð	Cð
 Ô'¨$Ñ.ðCð ðCð 
ðCð Cð Cð Cð,9ð 9ð 9ð 9ð ð!�cð !ð !ð !ñ „Xð!ð ð!�c˜D‘jð !ð !ð !ñ „Xð!ð ð˜ð ð ð ñ „Xðð ð2Ð%ð 2ð 2ð 2ñ „Xð2ð ð˜ð ð ð ñ „Xðð+˜Xð +¨#ð +ð +ð +ð +ðØðØ!)ðØ58ðà	ðð ð ð ð Ô˜7Ò"Ð" }Ð"ð	)Øð	)Ø%-ð	)Ø9?ÀÔ9Pð	)à#ð	)ð 	)ð 	)ð 	)ð	)àð	)ð ˜_Ô-ð	)ð $ð		)ð 	)ð 	)ð 	)ð	)àð	)ð ˜_Ô-ð	)ð $ð		)ð 	)ð 	)ð 	)ð	)àð	)ð ˜_Ô-ð	)ð $ð		)ð 	)ð 	)ð 	)ð	)àð	)ð ˜_Ô-ð	)ð $ð		)ð 	)ð 	)ð 	)ð	)àð	)ð ˜_Ô-ð	)ð $ð		)ð 	)ð 	)ð 	)ð	)àð	)ð ˜_Ô-ð	)ð $ð		)ð 	)ð 	)ð 	)ð	)àð	)ð ˜_Ô-ð	)ð $ð		)ð 	)ð 	)ð 	)ð 	)ð
	QØð
	QØ%-ð
	QØ9<ð
	Qà#ð
	Qð 
	Qð 
	Qð 
	Qð	X˜Hð 	X°ð 	XÐ8Nð 	Xð 	Xð 	Xð 	Xð	Y˜Xð 	Y°ð 	YÐ9Oð 	Yð 	Yð 	Yð 	Yð	 ð 	°Cð 	Ð<Rð 	ð 	ð 	ð 	ð	Y˜Xð 	Y°ð 	YÐ9Oð 	Yð 	Yð 	Yð 	Yð	X˜Hð 	X°ð 	XÐ8Nð 	Xð 	Xð 	Xð 	Xð	˜hð 	°#ð 	Ð:Pð 	ð 	ð 	ð 	ð	˜xð 	°3ð 	Ð;Qð 	ð 	ð 	ð 	ð à>AðSð Sð SØðSØ.5°d¬mðSØMPðSà	MðSð Sð Sñ „XðSð ðTØðTØ.5°e¬nðTØHKðTà	NðTð Tð Tñ „XðTð à58ðJð Jð JØðJØ.2ðJØDGðJà	DðJð Jð Jñ „XðJð
 6:ð

ð 

ð 

Øð

Ø.2ð

ØEHð

à	Dð

ð 

ð 

ð 

ð à>Að7ð 7ð 7Øð7Ø.5°d¬mð7ØMPð7à	1ð7ð 7ð 7ñ „Xð7ð ð8Øð8Ø.5°e¬nð8ØHKð8à	2ð8ð 8ð 8ñ „Xð8ð à58ð.ð .ð .Øð.Ø.2ð.ØDGð.à	(ð.ð .ð .ñ „Xð.ð
 6:ðð ð ØðØ.2ðØEHðà	(ðð ð ð ð ð  ð  ð  ð*2ð 2ð 2ð 2ðà�}Ô%¨Ñ,ðð ˜TÑ!ðð ˜DÑ ð	ð
 
ðð ð ð ð $ð ð ð ð ðà�}Ô%¨Ñ,ðð ˜TÑ!ðð ˜DÑ ð	ð
 
ðð ð ð ð ð rA   rÉ   c                   óz   — e Zd ZdZdefd„Zdefd„Zdd„Zdd„Zdd„Z	dd	„Z
d
edefd„Zdedeeef         fd„ZdS )ÚAioHTTPTestCasea  A base class to allow for unittest web applications using aiohttp.

    Provides the following:

    * self.client (aiohttp.test_utils.TestClient): an aiohttp test client.
    * self.loop (asyncio.BaseEventLoop): the event loop in which the
        application and server are running.
    * self.app (aiohttp.web.Application): the application returned by
        self.get_application()

    Note that the TestClient's methods are asynchronous: you have to
    execute function on the test client using asynchronous methods.
    r<   c              ƒ   ó.   K  — |                       ¦   «         S )z‰Get application.

        This method should be overridden
        to return the aiohttp.web.Application
        object to test.
        )Úget_appr‹   s    r?   Úget_applicationzAioHTTPTestCase.get_application0  s   è è € ð �|Š|‰~Œ~ÐrA   c                 ó    — t          d¦  «        ‚)zqObsolete method used to constructing web application.

        Use .get_application() coroutine instead.
        z+Did you forget to define get_application()?)ÚRuntimeErrorr‹   s    r?   r'  zAioHTTPTestCase.get_app9  s   € õ
 ÐHÑIÔIÐIrA   Nc              ƒ   ój   K  — t          j        ¦   «         | _        |                      ¦   «         ƒ d {V —†S r�   )r¯   Úget_running_looprV   Ú
setUpAsyncr‹   s    r?   Ú
asyncSetUpzAioHTTPTestCase.asyncSetUp@  s8   è è € ÝÔ,Ñ.Ô.ˆŒ	Ø—_’_Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&rA   c              ƒ   ó  K  — |                       ¦   «         ƒ d {V —†| _        |                      | j        ¦  «        ƒ d {V —†| _        |                      | j        ¦  «        ƒ d {V —†| _        | j                             ¦   «         ƒ d {V —† d S r�   )r(  r¹   Ú
get_serverr~   Ú
get_clientÚclientr   r‹   s    r?   r-  zAioHTTPTestCase.setUpAsyncD  s¥   è è € Ø×-Ò-Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/ˆŒØ ŸOšO¨D¬HÑ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5ˆŒØ ŸOšO¨D¬KÑ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8ˆŒàŒk×&Ò&Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(rA   c              ƒ   ó:   K  — |                       ¦   «         ƒ d {V —†S r�   )ÚtearDownAsyncr‹   s    r?   ÚasyncTearDownzAioHTTPTestCase.asyncTearDownK  s*   è è € Ø×'Ò'Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)rA   c              ƒ   óH   K  — | j                              ¦   «         ƒ d {V —† d S r�   )r2  r”   r‹   s    r?   r4  zAioHTTPTestCase.tearDownAsyncN  s2   è è € ØŒk×ÒÑ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!rA   r¹   c              ƒ   ó2   K  — t          || j        ¬¦  «        S )zReturn a TestServer instance.r¤   )r·   rV   )r_   r¹   s     r?   r0  zAioHTTPTestCase.get_serverQ  s   è è € å˜# D¤IÐ.Ñ.Ô.Ð.rA   r~   c              ƒ   ó2   K  — t          || j        ¬¦  «        S )zReturn a TestClient instance.r¤   )rÉ   rV   )r_   r~   s     r?   r1  zAioHTTPTestCase.get_clientU  s   è è € å˜& t¤yÐ1Ñ1Ô1Ð1rA   rª   )r«   r¬   r­   r!  r%   r(  r'  r.  r-  r5  r4  r·   r0  rÉ   r)   r1  rn   rA   r?   r%  r%  !  s÷   € € € € € ðð ð {ð ð ð ð ðJ˜ð Jð Jð Jð Jð'ð 'ð 'ð 'ð)ð )ð )ð )ð*ð *ð *ð *ð"ð "ð "ð "ð/ Kð /°Jð /ð /ð /ð /ð2 zð 2°jÀÈ+ÐAUÔ6Vð 2ð 2ð 2ð 2ð 2ð 2rA   r%  ÚfuncÚargsrY   c                 ó>   — t          j        dt          d¬¦  «         | S )zw
    A decorator dedicated to use with asynchronous AioHTTPTestCase test methods.

    In 3.8+, this does nothing.
    zBDecorator `@unittest_run_loop` is no longer needed in aiohttp 3.8+rh   )Ú
stacklevel)ÚwarningsÚwarnÚDeprecationWarning)r9  r:  rY   s      r?   Úunittest_run_loopr@  Z  s-   € õ „MØLÝØðñ ô ð ð
 €KrA   FÚloop_factoryÚfastc              #   óR   K  — t          | ¦  «        }|V — t          ||¬¦  «         dS )zzA contextmanager that creates an event_loop, for test purposes.

    Handles the creation and cleanup of a test loop.
    )rB  N)Úsetup_test_loopÚteardown_test_loop)rA  rB  rV   s      r?   Úloop_contextrF  k  s7   è è € õ ˜<Ñ(Ô(€DØ
€J€J€JÝ�t $Ð'Ñ'Ô'Ð'Ð'Ð'rA   c                 óB   —  | ¦   «         }t          j        |¦  «         |S )z”Create and return an asyncio.BaseEventLoop instance.

    The caller should also call teardown_test_loop,
    once they are done with the loop.
    )r¯   Úset_event_loop)rA  rV   s     r?   rD  rD  x  s%   € ð ˆ<‰>Œ>€DÝÔ˜4Ñ Ô Ð Ø€KrA   rV   c                 ó  — |                       ¦   «         }|sB|                      | j        ¦  «         |                      ¦   «          |                      ¦   «          |st          j        ¦   «          t          j        d¦  «         dS )z>Teardown and cleanup an event_loop created by setup_test_loop.N)	Ú	is_closedÚ	call_soonÚstopÚrun_foreverr”   ÚgcÚcollectr¯   rH  )rV   rB  rŽ   s      r?   rE  rE  …  sv   € à�^Š^ÑÔ€FØð Ø�Š�t”yÑ!Ô!Ð!Ø×ÒÑÔÐØ�
Š
‰Œˆàð Ý
Œ
‰ŒˆåÔ˜4Ñ Ô Ð Ð Ð rA   c                  ó4  — dt           dt          dt           fd„} dt           dt          dt           dd fd„}t          j        t          ¬¦  «        }i |_        | |_        ||_        d|_        t          |¦  «        |_
        |j
                             ¦   «          |S )	Nr¹   Úkeyr<   c                 ó   — | j         |         S r�   ©Ú
__app_dict)r¹   rQ  s     r?   Úget_dictz"_create_app_mock.<locals>.get_dict”  s   € ØŒ~˜cÔ"Ð"rA   Úvaluec                 ó   — || j         |<   d S r�   rS  )r¹   rQ  rV  s      r?   Úset_dictz"_create_app_mock.<locals>.set_dict—  s   € Ø#ˆŒ�sÑÐÐrA   )ÚspecF)r	   r‡   r   Ú	MagicMockr%   rT  Ú__getitem__Ú__setitem__Ú_debugr   Úon_response_prepareÚfreeze)rU  rX  r¹   s      r?   Ú_create_app_mockr`  “  s³   € ð#•cð #¥ð #­ð #ð #ð #ð #ð$•cð $¥ð $­Cð $°Dð $ð $ð $ð $õ Œ.�kÐ
*Ñ
*Ô
*€CØ€C„NØ€C„OØ€C„Oà€C„JÝ$ S™kœk€CÔØÔ×"Ò"Ñ$Ô$Ð$Ø€JrA   Ú
sslcontextc                 ó¨   ‡ — t          j        ¦   «         }dt          dt          t          t          t
          f         z  d z  fˆ fd„}||j        _        |S )NrQ  r<   c                 ó(   •— | dk    r‰S | dk    rdnd S )Nra  Úsockname)rM   éP   rn   )rQ  ra  s    €r?   Úget_extra_infoz)_create_transport.<locals>.get_extra_info¨  s*   ø€ Ø�,ÒÐØÐØ$'¨:Ò$5Ð$5Ð Ð ¸4Ð?rA   )r   ÚMockr‡   r/   ÚtuplerO   rf  Úside_effect)ra  Ú	transportrf  s   `  r?   Ú_create_transportrk  ¥  sg   ø€ Ý”	‘”€Ið@�Cð @¥Jµµs½C°x´Ñ$@À4Ñ$Gð @ð @ð @ð @ð @ð @ð
 ,:€IÔÔ(ØÐrA   i   .)Ú
match_inforu   Úclosingr¹   ÚwriterÚprotocolrj  Úpayloadra  Úclient_max_sizerV   râ   rƒ   Úheadersrl  ru   rm  r¹   rn  ro  rj  rp  rq  c                ó  — t          j        ¦   «         }|du rD	 t          j        ¦   «         }n/# t          $ r" t          j        ¦   «         }d|j        _        Y nw xY w|t          dd¦  «        k     rd}|rHt          t          |¦  «        ¦  «        }t          d„ |                     ¦   «         D ¦   «         ¦  «        }nt          t          ¦   «         ¦  «        }d}d|                     t          j        d¦  «                             ¦   «         v }|                     t          j        d¦  «                             ¦   «         dk    o+t#          |                     t          j        ¦  «        ¦  «        }t'          |                      ¦   «         |||||d	||t+          |¦  «        ¦
  «
        }|€t-          ¦   «         }|	t.          u rt1          |¦  «        }	|t.          u rÊt          j        ¦   «         }d
|_        d
|_        d|_        |	|_        t          j        |	                     d¦  «        ¬¦  «        t?          |¦  «        _         t          j        |	                     d¦  «        ¬¦  «        t?          |¦  «        _!        t          j        |¬¦  «        t?          |¦  «        _"        |t.          u rjt          j        ¦   «         }tG          d	¦  «        |_$        tG          d	¦  «        |_%        tG          d	¦  «        |_&        tG          d	¦  «        |_'        |	|_        |	|_        ||_(        tS          ||
|||||¬¦  «        }tU          |t.          u ri n|t          j        ¦   «         ¦  «        }| +                    |¦  «         ||_,        |S )z±Creates mocked web.Request testing purposes.

    Useful in unit tests, when spinning full web server is overkill or
    specific conditions and errors are hard to trigger.
    .rn   r   Tc              3   óp   K  — | ]1\  }}|                      d ¦  «        |                      d ¦  «        fV — Œ2dS )zutf-8N)Úencode)Ú.0ÚkÚvs      r?   ú	<genexpr>z&make_mocked_request.<locals>.<genexpr>Ø  sT   è è € ð 
ð 
Ù7;°q¸!ˆQ�XŠX�gÑÔ §¢¨Ñ 1Ô 1Ð2ð
ð 
ð 
ð 
ð 
ð 
rA   ÚchunkedrT   ÚupgradeNiþ  é€   Úpeername)Úreturn_valuerd  )rq  )-r   rg  r¯   r,  r*  Úcreate_futurer~  r    r   r   rh  Úitemsrì   r   ÚTRANSFER_ENCODINGÚlowerÚ
CONNECTIONr±   ÚUPGRADEr!   Úupperr   r`  r   rk  Úmax_field_sizeÚmax_line_lengthÚmax_headersrj  ÚPropertyMockrf  r´   r}  rd  rj   Úmake_mocked_coroÚwrite_headersÚwriteÚ	write_eofÚdrainrn  r)   r-   Úadd_appÚ_match_info)râ   rƒ   rr  rl  ru   rm  r¹   rn  ro  rj  rp  ra  rq  rV   ÚtaskÚraw_hdrsrz  r{  ÚmessageÚreqs                       r?   Úmake_mocked_requestr•  ±  sT  € õ, Œ9‰;Œ;€DØˆs€{€{ð
	1ÝÔ+Ñ-Ô-ˆDˆDøÝð 	1ð 	1ð 	1Ý”9‘;”;ˆDØ.0ˆDÔÔ+Ð+Ð+ð	1øøøð •˜Q Ñ"Ô"Ò"Ð"Øˆàð Ý"¥;¨wÑ#7Ô#7Ñ8Ô8ˆÝð 
ð 
Ø?F¿}º}¹¼ð
ñ 
ô 
ñ 
ô 
ˆˆõ #¥;¡=¤=Ñ1Ô1ˆØˆà˜7Ÿ;š;¥tÔ'=¸rÑBÔB×HÒHÑJÔJÐJ€GØ�kŠk�$œ/¨2Ñ.Ô.×4Ò4Ñ6Ô6¸)ÒCð ÍØ�Š•D”LÑ!Ô!ñIô I€Gõ  Ø�Š‰ŒØØØØØØØØÝˆD‰	Œ	ñô €Gð €{ÝÑ Ô ˆà•HÐÐÝ% jÑ1Ô1ˆ	à•8ÐÐÝ”9‘;”;ˆØ"&ˆÔØ#'ˆÔ Ø"ˆÔØ&ˆÔÝ"&Ô"3Ø"×1Ò1°*Ñ=Ô=ð#
ñ #
ô #
�ˆX‰ŒÔõ #'Ô"3Ø"×1Ò1°*Ñ=Ô=ð#
ñ #
ô #
�ˆX‰ŒÔõ &*Ô%6ÀJÐ%OÑ%OÔ%O�ˆX‰ŒÔ"à•ÐÐÝ”‘”ˆÝ/°Ñ5Ô5ˆÔÝ'¨Ñ-Ô-ˆŒÝ+¨DÑ1Ô1ˆÔÝ'¨Ñ-Ô-ˆŒØ$ˆÔà"€HÔØ€H„Oå
Ø�˜( F¨D°$Èðñ ô €Cõ %Ø�HÐ$Ð$ˆˆ¨*µd´i±k´kñô €Jð ×Ò�sÑÔÐØ €C„Oà€Js   ™- ­)AÁAr~  Úraise_exceptionc                 óh   ‡ ‡— dt           dt           dt           fˆˆ fd„}t          j        |¬¦  «        S )zCreates a coroutine mock.r:  rY   r<   c               Ÿ   ó^   •K  — ‰t           ur‰‚t          j        ‰¦  «        s‰S ‰ƒ d {V —† d S r�   )r   ÚinspectÚisawaitable)r:  rY   r–  r~  s     €€r?   Ú	mock_coroz#make_mocked_coro.<locals>.mock_coro!  sO   øè è € Ø¥(Ð*Ð*Ø!Ð!ÝÔ" <Ñ0Ô0ð 	 ØÐØÐÐÐÐÐÐÐÐÐrA   )Úwraps)r	   r   rg  )r~  r–  r›  s   `` r?   rŠ  rŠ    sQ   øø€ ð
�sð ­cð µcð ð ð ð ð ð ð õ Œ9˜9Ð%Ñ%Ô%Ð%rA   )Fr�   )mr!  r¯   Ú
contextlibrN  r™  rs   ÚosrD   r"  r=  Úabcr   r   Úcollections.abcr   r   Útypesr   Útypingr   r	   r
   r   r   r   r   Úunittestr   r   Ú	aiosignalr   Ú	multidictr   r   Úyarlr   rÒ   Úaiohttp.clientr   r   r   r   rT   r   r   r   Úclient_reqrepr   Ú	client_wsr   Úhelpersr   rl   r    r!   Ústreamsr"   r#   Útypedefsr$   Úwebr%   r&   r'   r(   r)   r*   r+   r,   r-   Úweb_protocolr.   rb   r/   r#  r3   r4   r5   r6   ÚnameÚplatformrF   rN   r‡   r²   r@   rO   r>   rQ   rS   r·   rÂ   rÉ   r%  r@  r°   Ú_LOOP_FACTORYÚcontextmanagerÚnew_event_loopr±   rF  rD  rE  rZ  r`  rg  rk  r•  rŠ  rn   rA   r?   ú<module>r´     sW  ðØ  Ð  à €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PØ 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð à €€€ðð ð ð ð ð ð ð ð ð ð ð ð "Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "Ø )Ð )Ð )Ð )Ð )Ð )Ø .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð *Ð )Ð )Ð )Ð )Ð )àð ØÐÐÐÐÐÐà€JàÔ�wÒÐ =ÐØÐÐÐÐÐàÔ�wÒÐØÐÐÐÐÐÐà€Dà�7Ð-¨{¸DÑAÔAÐ Øˆ7�: [Ð1Ñ1Ô1€à”˜7Ò"Ð? s¤|°xÒ'?€ð /5¬nð,ð ,Ø
ð,ØÔ+ð,à„]ð,ð ,ð ,ð ,ð
Ø
ð
Øð
Ø"(Ô"6ð
à„]ð
ð 
ð 
ð 
ð-�Sð -ð -ð -ð -ðAð Að Að Að A�Sñ Aô Að AðH-ð -ð -ð -ð -�ñ -ô -ð -ð"8ð 8ð 8ð 8ð 8�Nñ 8ô 8ð 8ð$Wð Wð Wð Wð W�˜Ð#3Ð3Ô4ñ Wô Wð Wðt62ð 62ð 62ð 62ð 62Ð-ñ 62ô 62ð 62ðr˜Cð ¨ð °sð ¸sð ð ð ð ð ˜˜WÔ6Ð6Ô7€ð Ôà")Ô"8Àuð	(ð 	(Øð	(Ø@Dð	(àˆgÔ'Ô(ð	(ð 	(ð 	(ñ Ôð	(ð #*Ô"8ð
ð 
Øð
àÔð
ð 
ð 
ð 
ð!ð !˜WÔ6ð !¸dð !Ètð !ð !ð !ð !ð˜$œ.ð ð ð ð ð$	ð 	 *¨tÑ"3ð 	¸t¼yð 	ð 	ð 	ð 	ð ðhð
 Ø&˜; q¨!Ñ,Ô,ØØØØØØ)Ø$(Ø"Øðhð hð hØðhà
ðhð ðhð
 ðhð ðhð ðhð 
ðhð ðhð ðhð ðhð ðhð ˜TÑ!ðhð ðhð ðhð  ð!hð hð hð hðX !¸ð&ð &Øð&Ø36ð&àð&ð &ð &ð &ð &ð &rA   