Ë
    ž…Åj• ã                  óÖ  — d dl m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mZmZ d dlmZ d dlmZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d d
l'm(Z( ddl)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z:m;Z; ddl<m=Z=m>Z>m?Z? ddl@mAZAmBZB ddlCmDZDmEZEmFZF ddlGmHZH ddlImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZR ddl4mSZSmTZTmUZUmVZV ddlWmXZXmYZYmZZZm[Z[m\Z\ ejº                  dk\  r e$deHeH¬«      Z^n
 e$deH¬«      Z^er[ejº                  dk\  rd dlm_Z_ nd dl`m_Z_ dd lambZb  G d!„ d"e#d#¬$«      Zc G d%„ d&e e^   e#d#¬$«      Zd G d'„ d(e#d#¬$«      Ze G d)„ d*eed#¬$«      Zfn G d+„ d,«      Zg eg«       Z_eheieif   Zce#Zde#e#cZeZfe!d-   Zje!d.   Zkd:d/„Zle!d0   Zme G d1„ d2«      «       Znd;d3„Zo G d4„ d5e e^   «      Zp G d6„ d7epe^   «      Zq G d8„ d9epe^   «      Zry)<é    )ÚannotationsN)ÚAsyncGeneratorÚAsyncIterableÚCallableÚ	Generator)ÚThreadPoolExecutor)ÚasynccontextmanagerÚcontextmanagerÚsuppress)Ú	dataclass)Ú	timedelta)ÚBytesIO)	ÚTYPE_CHECKINGÚAnyÚGenericÚLiteralÚOptionalÚ	TypedDictÚTypeVarÚUnionÚcast)Úurlparseé   )Ú	AsyncCurl)Ú
CurlFollowÚCurlHttpVersionÚCurlInfoÚCurlOpt)ÚCurlÚ	CurlErrorÚCurlMime)ÚCurlCffiWarningé   )Ú	CacheSpecÚnormalize_cache_backend)ÚCookiesÚCookieTypes)ÚRequestExceptionÚSessionClosedÚ
code2error)ÚHeadersÚHeaderTypes)ÚBrowserTypeLiteralÚExtraFingerprintsÚExtraFpDict)ÚResponse)	Ú
STREAM_ENDÚRequestContentÚRequestDataÚSyncRequestContentÚ_AsyncIterableReaderÚ_capture_body_positionÚ_peek_aio_queueÚ_peek_queueÚ_rewind_body)ÚNOT_SETÚHttpVersionLiteralÚ
NotSetTypeÚset_curl_options)ÚAsyncWebSocketÚAsyncWebSocketContextÚ	WebSocketÚWebSocketErrorÚWebSocketRetryStrategy)é   é   ÚR)ÚboundÚdefault)rF   )rC   é   )ÚUnpack)ÚFingerprintc                  ó@   — e Zd ZU ded<   ded<   ded<   ded<   ded<   y)Ú	ProxySpecÚstrÚallÚhttpÚhttpsÚwsÚwssN©Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úP/opt/euro-skaner/venv/lib/python3.12/site-packages/curl_cffi/requests/session.pyrL   rL   T   s   … Ø‹Ø‹	Ø‹
Ø‹ØŒrY   rL   F)Útotalc                  óN  — e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   d	ed<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   d	ed<   d	ed<   d	ed<   ded <   ded!<   d"ed#<   ded$<   d%ed&<   d'ed(<   ded)<   d	ed*<   d	ed+<   d,ed-<   d.ed/<   ded0<   ded1<   d2ed3<   y4)5ÚBaseSessionParamsúOptional[HeaderTypes]ÚheadersúOptional[CookieTypes]ÚcookiesúOptional[tuple[str, str]]ÚauthúOptional[ProxySpec]ÚproxiesúOptional[str]ÚproxyÚ
proxy_authÚbase_urlúOptional[dict]ÚparamsÚboolÚverifyú!Union[float, tuple[float, float]]ÚtimeoutÚ	trust_envúUnion[bool, CurlFollow, str]Úallow_redirectsÚintÚmax_redirectszUnion[int, RetryStrategy]Úretryú5Optional[Union[BrowserTypeLiteral, str, Fingerprint]]ÚimpersonateÚja3ÚakamaiÚperkú/Optional[Union[ExtraFingerprints, ExtraFpDict]]Úextra_fpÚdefault_headersú"Union[str, Callable[[bytes], str]]Údefault_encodingÚcurl_optionszOptional[list]Ú
curl_infosú4Optional[Union[CurlHttpVersion, HttpVersionLiteral]]Úhttp_versionÚdebugÚ	interfaceÚdoh_urlú%Optional[Union[str, tuple[str, str]]]ÚcertúOptional[type[R]]Úresponse_classÚdiscard_cookiesÚraise_for_statusúOptional[CacheSpec]ÚcacheNrS   rX   rY   rZ   r]   r]   [   s¿   … Ø&Ó&Ø&Ó&Ø'Ó'Ø$Ó$ØÓØ-Ó-ØÓØÓØ‹Ø2Ó2Ø‹Ø5Ó5ØÓØ(Ó(ØJÓJØÓØÓØÓØAÓAØÓØ<Ó<Ø$Ó$Ø"Ó"ØJÓJØ‹Ø Ó ØÓØ3Ó3Ø)Ó)ØÓØÓØ"Ô"rY   r]   c                  óX  — e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   d ed!<   d"ed#<   ded$<   ded%<   ded&<   d'ed(<   ded)<   d*ed+<   d,ed-<   d.ed/<   ded0<   ded1<   d2ed3<   d4ed5<   d6ed7<   d8ed9<   y:);ÚStreamRequestParamsú"Optional[Union[dict, list, tuple]]rk   úOptional[RequestData]ÚdataúOptional[RequestContent]ÚcontentúOptional[dict | list]Újsonr^   r_   r`   ra   rj   Úfilesrb   rc   ú3Optional[Union[float, tuple[float, float], object]]ro   ú&Optional[Union[bool, CurlFollow, str]]rr   úOptional[int]rt   rd   re   rf   rg   rh   úOptional[bool]rm   ÚrefererÚaccept_encodingúOptional[Callable]Úcontent_callbackrv   rw   rx   ry   rz   r{   r|   r}   r~   r   úUnion[str, Literal[False]]Úquoter‚   rƒ   r…   r†   r‡   rˆ   rs   Úmax_recv_speedúOptional[CurlMime]Ú	multipartrl   r‹   NrS   rX   rY   rZ   r�   r�   }   sÈ   … Ø2Ó2Ø#Ó#Ø)Ó)Ø#Ó#Ø&Ó&Ø&Ó&ØÓØ'Ó'ØDÓDØ?Ó?Ø$Ó$Ø$Ó$ØÓØ-Ó-ØÓØÓØ&Ó&Ø,Ó,ØJÓJØÓØÓØÓØAÓAØ'Ó'Ø<Ó<Ø)Ó)ØJÓJØ Ó ØÓØ3Ó3ØÓØ%Ó%ØÔrY   r�   c                  ó   — e Zd ZU ded<   y)ÚRequestParamsrœ   ÚstreamNrS   rX   rY   rZ   r§   r§       s   … ØÔrY   r§   c                  ó   — e Zd Zed„ «       Zy)Ú_Unpackc                  ó   — y ©NrX   )ÚargsÚkwargss     rZ   Ú__getitem__z_Unpack.__getitem__¦   s   € àrY   N)rT   rU   rV   Ústaticmethodr¯   rX   rY   rZ   rª   rª   ¥   s   „ Ø	ñ	ó 
ñ	rY   rª   )ÚeventletÚgevent)	ÚGETÚPOSTÚPUTÚDELETEÚOPTIONSÚHEADÚTRACEÚPATCHÚQUERYc                ó^   — t        | «      }t        |j                  xr |j                  «      S )z,Check if the provided url is an absolute url)r   rl   ÚschemeÚhostname)ÚurlÚ
parsed_urls     rZ   Ú_is_absolute_urlrÁ   ¶   s'   € ä˜#“€JÜ�
×!Ñ!Ò9 j×&9Ñ&9Ó:Ð:rY   ©ÚlinearÚexponentialc                  óB   — e Zd ZU ded<   dZded<   dZded<   dZded	<   y
)ÚRetryStrategyrs   Úcountç        ÚfloatÚdelayÚjitterrÃ   ÚRetryBackoffÚbackoffN)rT   rU   rV   rW   rÊ   rË   rÍ   rX   rY   rZ   rÆ   rÆ   ¿   s%   … àƒJØ€Eˆ5ÓØ€FˆEÓØ$€Gˆ\Ô$rY   rÆ   c                óR  — | €d} t        | t        «      r| }n(t        | t        «      rt        | ¬«      }nt        d«      ‚|j                  dk  rt        d«      ‚|j                  dk  rt        d«      ‚|j                  dk  rt        d«      ‚|j                  dvrt        d«      ‚|S )	Nr   )rÇ   z%retry must be an int or RetryStrategyzretry.count must be >= 0zretry.delay must be >= 0zretry.jitter must be >= 0rÂ   z/retry.backoff must be 'linear' or 'exponential')	Ú
isinstancerÆ   rs   Ú	TypeErrorrÇ   Ú
ValueErrorrÊ   rË   rÍ   )ru   Ústrategys     rZ   Ú_normalize_retryrÓ   Ç   s£   € Ø€}ØˆÜ�%œÔ'Ø‰Ü	�Eœ3Ô	Ü  uÔ-‰äÐ?Ó@Ð@Ø‡~�~˜ÒÜÐ3Ó4Ð4Ø‡~�~˜ÒÜÐ3Ó4Ð4Ø‡�˜ÒÜÐ4Ó5Ð5Ø×ÑÐ8Ñ8ÜÐJÓKÐKØ€OrY   c            !      óT  — e Zd ZdZdddddddddddddddddddddddddddddddddœ 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	„Z	 	 	 	 	 	 	 	 	 	 	 	 dd
„Zd„ Z	 	 	 	 	 	 dd„Zdd„Ze	dd„«       Z
e
j                  dd„«       Z
y)ÚBaseSessionzMProvide common methods for setting curl options and reading info in sessions.NTé   r   úutf-8F) r_   ra   rc   re   rg   rh   ri   rk   rm   ro   rp   rr   rt   ru   rw   rx   ry   rz   r|   r}   r   r€   r�   rƒ   r„   r…   r†   rˆ   rŠ   r‹   rŒ   rŽ   c                óØ  — t        |«      | _        t        |«      | _        || _        || _        || _        |	| _        |
| _        || _	        || _
        || _        t        |«      | _        || _        || _        || _        || _        || _        || _        || _        |xs i | _        |xs g | _        || _        || _        || _        || _        || _        t9        | «      | _        |�!t=        |t>        «      du rtA        d|› d�«      ‚|xs t>        | _!        || _"        || _#        |r|rtA        d«      ‚|rd|i}|xs i | _$        || _%        | j
                  r tM        | j
                  «      stO        d«      ‚d| _(        | j                  du s| j                  €TtR        jT                  jW                  d«      xs- tR        jT                  jW                  d	«      xs | j                  | _        y y )
NFzZ`response_class` must be a subclass of `curl_cffi.requests.models.Response`, not of type `ú`z)Cannot specify both 'proxy' and 'proxies'rN   z2You need to provide an absolute url for 'base_url'TÚREQUESTS_CA_BUNDLEÚCURL_CA_BUNDLE),r+   r_   r&   Ú_cookiesrc   ri   rk   rm   ro   rp   rr   rt   rÓ   ru   rw   rx   ry   rz   r|   r}   r   r€   r�   rƒ   r„   r…   r†   rˆ   r%   Ú_cacheÚ
issubclassr0   rÐ   rŠ   r‹   rŒ   re   rh   rÁ   rÑ   Ú_closedÚosÚenvironÚget)!Úselfr_   ra   rc   re   rg   rh   ri   rk   rm   ro   rp   rr   rt   ru   rw   rx   ry   rz   r|   r}   r   r€   r�   rƒ   r„   r…   r†   rˆ   rŠ   r‹   rŒ   rŽ   s!                                    rZ   Ú__init__zBaseSession.__init__Þ   sÞ  € ôH ˜wÓ'ˆŒÜ Ó(ˆŒØˆŒ	Ø ˆŒØˆŒØˆŒØˆŒØ"ˆŒØ.ˆÔØ*ˆÔÜ% eÓ,ˆŒ
Ø&ˆÔØˆŒØˆŒØˆŒ	Ø ˆŒØ.ˆÔØ 0ˆÔØ(Ò.¨BˆÔØ$Ò*¨ˆŒØ(ˆÔØˆŒ
Ø"ˆŒØˆŒØˆŒ	Ü-¨eÓ4ˆŒàÐ%¬*°^ÄXÓ*NÐRWÑ*WÜð à .Ð/¨qð2óð ð
 -Ò8´ˆÔØ.ˆÔØ 0ˆÔá‘WÜÐGÓHÐHÙØ˜e�nˆGØ")¢-¨RˆŒØ$ˆŒà�=Š=Ô!1°$·-±-Ô!@ÜÐQÓRÐRàˆŒð �;‰;˜$Ñ $§+¡+Ð"5ä—
‘
—‘Ð3Ó4ò Ü—:‘:—>‘>Ð"2Ó3òà—;‘;ð �Kð #6rY   c                ó0  — |}t        t        | j                  |«      «      }t        t        |j	                  t
        j                  «      «      j                  «       |_        |r|j                  «       |_
        t        t        |j	                  t
        j                  «      «      |_        t        t        |j	                  t
        j                  «      «      |_        d|j                  cxk  xr dk  nc |_        |j                  «       j#                  «       }g }	g }
d}d}|D ]¾  }|j%                  «       sŒ|j'                  d«      rY|r|
j)                  |||	f«       	 t        |j+                  d¬«      d   «      }|j1                  |«      j                  d	¬
«      }g }	Œ~|j'                  d«      s|j'                  d«      r|	dxx   |z  cc<   Œ®|	j)                  |«       ŒÀ |r|
j)                  |||	f«       |
r|
d   \  }|_        }	t5        |	«      |_        t        t8        t           |j	                  t
        j:                  «      «      }d}|D ]ï  }	 |j+                  dd«      \  }}t        |«      }|j                  d	¬
«      }d}t5        «       }t?        |tA        |
«      «      D ]$  }|
|   \  }}}||k(  sŒ|}t5        |«      }|dz   } n t        t        | j                  d «      «      }||_        ||_        ||_        d|cxk  xr dk  nc |_        ||_        ||_!        |jD                  j)                  |«       Œñ tG        «       |_$        |j6                  jK                  d«      }|D ]¬  }	 tL        jH                  jO                  «       }|jQ                  |«       |jS                  «       D ]g  \  } }!|jH                  jU                  | |!jV                  |!jY                  dd«      |!jY                  dd«      t[        |!jY                  d«      «      ¬«       Œi Œ® |xs | j^                  }|sOt        t8        t           |j	                  t
        j`                  «      «      }"| jb                  je                  |"«       t        t        |j	                  t
        jf                  «      «      j                  «       |_4        t        t        |j	                  t
        jj                  «      «      |_6        t        t        |j	                  t
        jn                  «      «      j                  «       |_8        t        t        |j	                  t
        jr                  «      «      |_:        ||_!        tw        t        tx        |j	                  t
        jz                  «      «      ¬«      |_>        t        t        |j	                  t
        j~                  «      «      |_@        t        t        |j	                  t
        j‚                  «      «      }#	 |#j                  «       |_B        t        t        |j	                  t
        jˆ                  «      «      |_E        t        t        |j	                  t
        jŒ                  «      «      |_G        t        t        |j	                  t
        j�                  «      «      |_I        t        t        |j	                  t
        j”                  «      «      |_K        |jŠ                  |j’                  z   |_L        | jš                  D ]   }$|j	                  |$«      |jœ                  |$<   Œ" |S # t,        t.        f$ r d}Y �ŒÊw xY w# t<        t.        f$ r Y �Œw xY w# t\        $ r Y �Œýw xY w# t†        $ r |#j                  d«      |_B        Y �Œww xY w)NéÈ   i�  r   Ú s   HTTP/r   )Úmaxsplitr#   Úreplace)Úerrorsó    ó   	éÿÿÿÿz
set-cookieÚdomainÚpathú/Úsecure)rî   rï   rñ   )Úsecondszlatin-1)Or   rE   rŠ   ÚbytesÚgetinfor   ÚEFFECTIVE_URLÚdecoder¿   Úgetvaluer•   rs   ÚHTTP_VERSIONrƒ   ÚRESPONSE_CODEÚstatus_codeÚokÚ
splitlinesÚstripÚ
startswithÚappendÚsplitÚ
IndexErrorrÑ   Úget_reason_phraseÚreasonr+   r_   ÚlistÚREDIRECT_HISTORYrÐ   ÚrangeÚlenr   Úhistoryr&   ra   Úget_listrO   ÚSimpleCookieÚloadÚitemsÚsetÚvaluerâ   rl   Ú	Exceptionr‹   ÚCOOKIECHANGESrÜ   Ú update_cookies_from_curl_changesÚ
PRIMARY_IPÚ
primary_ipÚPRIMARY_PORTÚprimary_portÚLOCAL_IPÚlocal_ipÚ
LOCAL_PORTÚ
local_portr   rÉ   Ú
TOTAL_TIMEÚelapsedÚREDIRECT_COUNTÚredirect_countÚREDIRECT_URLÚredirect_urlÚUnicodeDecodeErrorÚSIZE_DOWNLOAD_TÚdownload_sizeÚSIZE_UPLOAD_TÚupload_sizeÚHEADER_SIZEÚheader_sizeÚREQUEST_SIZEÚrequest_sizeÚresponse_sizer�   Úinfos)%rã   ÚcurlÚbufferÚheader_bufferr   r‹   ÚcÚrspÚheader_linesÚheader_listÚheader_blocksÚheader_statusÚheader_reasonÚheader_lineÚ_Úredirect_historyÚblock_indexÚitemÚstatus_bytesÚhistory_url_bytesÚhistory_statusÚhistory_urlÚhistory_reasonÚhistory_headersÚindexÚstatusr  r_   Úhistory_responseÚset_cookie_headersÚ
set_cookieÚcookieÚnameÚmorselÚchangesÚredirect_url_bytesÚinfos%                                        rZ   Ú_parse_responsezBaseSession._parse_response;  s@  € ð ˆÜ”1�d×)Ñ)¨!Ó,Ó-ˆÜ”u˜aŸi™i¬×(>Ñ(>Ó?Ó@×GÑGÓIˆŒÙØ Ÿ/™/Ó+ˆCŒKÜ¤ Q§Y¡Y¬x×/DÑ/DÓ%EÓFˆÔÜœs A§I¡I¬h×.DÑ.DÓ$EÓFˆŒØ˜Ÿ™Ö-¨#Ô-ˆŒØ$×-Ñ-Ó/×:Ñ:Ó<ˆà#%ˆØ<>ˆØˆØˆØ'ò 	,ˆKØ×$Ñ$Ô&ØØ×%Ñ% hÔ/Ù Ø!×(Ñ(¨-¸ÈÐ)TÔUð&Ü$'¨×(9Ñ(9À1Ð(9Ó(EÀaÑ(HÓ$I�Mð !"× 3Ñ 3°KÓ @× GÑ GØ$ð !Hó !�ð !�ØØ×%Ñ% dÔ+¨{×/EÑ/EÀeÔ/LØ˜B“ ;Ñ.“ØØ×Ñ˜{Õ+ð'	,ñ( Ø× Ñ  -°ÀÐ!LÔMÙØ)6°rÑ):Ñ&ˆAˆsŒz˜;Ü˜kÓ*ˆŒä¤¤U¡¨Q¯Y©Y´x×7PÑ7PÓ-QÓRÐØˆØ$ò 	1ˆDðØ26·*±*¸UÀAÓ2FÑ/�Ð/Ü!$ \Ó!2�ð ,×2Ñ2¸)Ð2ÓDˆKØˆNÜ%›iˆOÜ˜{¬C°Ó,>Ó?ò �Ø*7¸Ñ*>Ñ'�˜ Ø˜^Ó+Ø%+�NÜ&-¨gÓ&6�OØ"'¨!¡)�KÙðô  $¤A t×':Ñ':¸4Ó'@ÓAÐØ#.ÐÔ Ø+9ÐÔ(Ø&4ÐÔ#Ø"%¨Ö"=¸#Ô"=ÐÔØ'6ÐÔ$Ø0@ÐÔ-Ø�K‰K×ÑÐ/Õ0ð3	1ô8 “iˆŒØ Ÿ[™[×1Ñ1°,Ó?ÐØ,ò 	ˆJðÜŸ™×2Ñ2Ó4�Ø—‘˜JÔ'Ø$*§L¡L£Nò ‘L�D˜&Ø—K‘K—O‘OØØŸ™Ø%Ÿz™z¨(°BÓ7Ø#ŸZ™Z¨°Ó4Ü# F§J¡J¨xÓ$8Ó9ð $õ ñð		ð  *ÒA¨T×-AÑ-AˆÙÜœ4¤™;¨¯	©	´(×2HÑ2HÓ(IÓJˆGØ�M‰M×:Ñ:¸7ÔCäœe Q§Y¡Y¬x×/BÑ/BÓ%CÓD×KÑKÓMˆŒÜ¤ Q§Y¡Y¬x×/DÑ/DÓ%EÓFˆÔÜœE 1§9¡9¬X×->Ñ->Ó#?Ó@×GÑGÓIˆŒÜœc 1§9¡9¬X×-@Ñ-@Ó#AÓBˆŒØ/ˆÔÜ¬¬U°A·I±I¼h×>QÑ>QÓ4RÓ(SÔTˆŒÜ!¤# q§y¡y´×1HÑ1HÓ'IÓJˆÔÜ!¤%¨¯©´8×3HÑ3HÓ)IÓJÐð	DØ1×8Ñ8Ó:ˆCÔô !¤ a§i¡i´×0HÑ0HÓ&IÓJˆÔÜœs A§I¡I¬h×.DÑ.DÓ$EÓFˆŒÜœs A§I¡I¬h×.BÑ.BÓ$CÓDˆŒÜ¤ Q§Y¡Y¬x×/DÑ/DÓ%EÓFˆÔØ×-Ñ-°·±Ñ?ˆÔð —O‘Oò 	.ˆDØŸi™i¨›oˆC�I‰I�dŠOð	.ð ˆ
øô} #¤JÐ/ò &Ø$%“Mð&ûô0 œzÐ*ò ÚðûôL ò Úðûô& "ò 	DØ1×8Ñ8¸ÓCˆC×ð	DúsI   Å \4É ]Í5B)]"Ø]2 Ü4]	Ý]	Ý]Ý]Ý"	]/Ý.]/Ý2^Þ^c                ó2   — | j                   rt        d«      ‚y )Nz'Session is closed, cannot send request.)rß   r)   ©rã   s    rZ   Ú_check_session_closedz!BaseSession._check_session_closed¹  s   € Ø�<Š<ÜÐ IÓJÐJð rY   c               ó~   — t        | j                  xr' | j                  j                  |t        |«      |¬«      «      S )N©r¨   r    )rl   rÝ   Úshould_cache_request)rã   Úrequestr¨   r    s       rZ   Ú_cache_enabledzBaseSession._cache_enabled½  sA   € ô Ø�K‰Kò Ø—‘×0Ñ0ØÜ˜F“|Ø!1ð 1ó ó
ð 	
rY   c                óä   — | j                   }|j                  dk(  r|j                  d|dz
  z  z  }n|j                  |z  }|j                  r#|t	        j
                  d|j                  «      z  }|S )NrÄ   r   r#   rÈ   )ru   rÍ   rÊ   rË   ÚrandomÚuniform)rã   ÚattemptrÒ   rÊ   s       rZ   Ú_retry_delayzBaseSession._retry_delayÍ  sc   € Ø—:‘:ˆØ×Ñ˜}Ò,Ø—N‘N a¨G°a©KÑ&8Ñ9‰Eà—N‘N WÑ,ˆEØ�?Š?Ø”V—^‘^ C¨¯©Ó9Ñ9ˆEØˆrY   c                ó   — | j                   S r¬   )rÜ   rM  s    rZ   ra   zBaseSession.cookies×  s   € à�}‰}ÐrY   c                ó$   — t        |«      | _        y r¬   )r&   rÜ   )rã   ra   s     rZ   ra   zBaseSession.cookiesÛ  s   € ô   Ó(ˆ�rY   )@r_   r^   ra   r`   rc   rb   re   rd   rg   rf   rh   rb   ri   rf   rk   zOptional[dict[str, object]]rm   rl   ro   rn   rp   rl   rr   rq   rt   rs   ru   ú#Optional[Union[int, RetryStrategy]]rw   rv   rx   rf   ry   rf   rz   rf   r|   r{   r}   rl   r   r~   r€   zOptional[dict[CurlOpt, str]]r�   zOptional[list[object]]rƒ   r‚   r„   rl   r…   rf   r†   rf   rˆ   r‡   rŠ   r‰   r‹   rl   rŒ   rl   rŽ   r�   )r+  r   r,  r   r-  r   r   r~   r‹   rl   ÚreturnrE   )r¨   rœ   r    úOptional[Callable[..., object]]r\  rl   )rW  rs   r\  rÉ   )r\  r&   )ra   r'   r\  ÚNone)rT   rU   rV   Ú__doc__rä   rK  rN  rS  rX  Úpropertyra   ÚsetterrX   rY   rZ   rÕ   rÕ   Û   sy  „ ÙWð
 *.Ø)-Ø*.Ø'+Ø#Ø04Ø"&Ø.2ØØ57ØØ8<ØØ56ØMQØ!Ø $Ø"ØDHØ $Ø?FØ59Ø-1ØMQØØ#'Ø!%Ø6:Ø,0Ø %Ø!&Ø%)ñE[ð 'ð[ð 'ð	[ð
 (ð[ð %ð[ð ð[ð .ð[ð  ð[ð ,ð[ð ð[ð 3ð[ð ð[ð 6ð[ð ð[ð  3ð![ð" Kð#[ð$ ð%[ð& ð'[ð( ð)[ð* Bð+[ð, ð-[ð. =ð/[ð0 3ð1[ð2 +ð3[ð4 Kð5[ð6 ð7[ð8 !ð9[ð: ð;[ð< 4ð=[ð> *ð?[ð@ ðA[ðB ðC[ðD #óE[ðz|àð|ð ð|ð ð	|ð
 =ð|ð ð|ð 
ó|ò|Kð
ð ð	
ð
 :ð
ð 
ó
ó ð òó ðð ‡^�^ò)ó ñ)rY   rÕ   c            "      ó¾  ‡ — e Zd ZdZ	 	 	 d	 	 	 	 	 	 	 	 	 dˆ fd„Zed„ «       Zed„ «       Zd„ Zdd„Z	dd„Z
e	 	 	 	 	 	 	 	 dd	„«       Z	 	 	 	 d 	 	 	 d!d
„Zd"d„Zddddddddedddddddddddddddddddddddddf"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d#d„Zddddddddedddddddddddddddddddddddddf"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d$d„Zd%d„Zd%d„Zd%d„Zd%d„Zd%d„Zd%d„Zd%d„Zd%d„Zd%d„Zˆ xZS )&ÚSessionzšA request session, cookies and connections will be reused. This object is
    thread-safe, but it's recommended to use a separate session for each thread.Nc                ó`  •— t        ‰| �  di |¤Ž || _        || _        d| _        d| _        |rat        j                  «       | _        |rd| _	        || j                  _
        yd| _	        t        | j                  ¬«      | j                  _
        y|r|nt        | j                  ¬«      | _        y)a  
        Parameters set in the ``__init__`` method will be overridden by the same
        parameter in request method.

        Args:
            curl: curl object to use in the session. If not provided, a new one will be
                created. Also, a fresh curl object will always be created when accessed
                from another thread.
            thread: thread engine to use for working with other thread implementations.
                choices: eventlet, gevent.
            headers: headers to use in the session.
            cookies: cookies to add in the session.
            auth: HTTP basic auth, a tuple of (username, password), only basic auth is
                supported.
            proxies: dict of proxies to use, prefer to use proxy if they are the same.
                format: ``{"http": proxy_url, "https": proxy_url}``.
            proxy: proxy to use, format: "http://proxy_url".
                Cannot be used with the above parameter.
            proxy_auth: HTTP basic auth for proxy, a tuple of (username, password).
            base_url: absolute url to use as base for relative urls.
            params: query string for the session.
            verify: whether to verify https certs.
            timeout: how many seconds to wait before giving up.
            trust_env: use http_proxy/https_proxy and other environments, default True.
            allow_redirects: whether to allow redirection. Can be a bool, a
                ``CurlFollow`` value, or the string ``"safe"``. Use
                ``CurlFollow.SAFE`` or ``"safe"`` to reject redirects to
                internal/private IP addresses (SSRF protection).
            max_redirects: max redirect counts, default 30, use -1 for unlimited.
            retry: number of retries or ``RetryStrategy`` for failed requests.
            impersonate: which browser version or fingerprint to impersonate
                in the session.
            ja3: ja3 string to impersonate in the session.
            akamai: akamai string to impersonate in the session.
            perk: perk string to impersonate in the session.
            extra_fp: extra fingerprints options, in complement to ja3 and akamai str.
            interface: interface name or local IP to bind to (bare IP = source address).
            doh_url: DNS-over-HTTPS server url, e.g. https://1.1.1.1/dns-query.
            default_encoding: encoding for decoding response content if charset is not
                found in headers. Defaults to "utf-8". Can be set to a callable for
                automatic detection.
            cert: a tuple of (cert, key) filenames for client cert.
            response_class: A customized subtype of ``Response`` to use.
            raise_for_status: automatically raise an HTTPError for 4xx and 5xx
                status codes.

        Notes:
            This class can be used as a context manager.

        .. code-block:: python

            from curl_cffi.requests import Session

            with Session() as s:
                r = s.get("https://example.com")
        NTF©r„   rX   )Úsuperrä   Ú_threadÚ_use_thread_local_curlÚ_queueÚ	_executorÚ	threadingÚlocalÚ_localÚ_is_customized_curlr+  r   r„   Ú_curl)rã   r+  ÚthreadÚuse_thread_local_curlr®   Ú	__class__s        €rZ   rä   zSession.__init__å  sŒ   ø€ ô~ 	‰ÑÑ"˜6Ò"ØˆŒØ&;ˆÔ#ØˆŒØˆŒÙ Ü#Ÿ/™/Ó+ˆDŒKÙØ+/�Ô(Ø#'�—‘Õ à+0�Ô(Ü#'¨d¯j©jÔ#9�—‘Õ á!%™¬4°d·j±jÔ+AˆD�JrY   c                ó&  — | j                   rz| j                  rt        j                  dt        d¬«       t        | j                  dd «      s%t        | j                  ¬«      | j                  _	        | j                  j                  S | j                  S )Nz/Creating fresh curl handle in different thread.r   )Ú
stacklevelr+  re  )rh  rn  ÚwarningsÚwarnr"   Úgetattrrm  r   r„   r+  ro  rM  s    rZ   r+  zSession.curl4  sj   € à×&Ò&Ø×'Ò'Ü—‘ØEÜ#Ø õô
 ˜4Ÿ;™;¨°Ô5Ü#'¨d¯j©jÔ#9�—‘Ô Ø—;‘;×#Ñ#Ð#à—:‘:ÐrY   c                óP   — | j                   €t        «       | _         | j                   S r¬   )rj  r   rM  s    rZ   ÚexecutorzSession.executorC  s    € à�>‰>Ð!Ü/Ó1ˆDŒNØ�~‰~ÐrY   c                ó   — | S r¬   rX   rM  s    rZ   Ú	__enter__zSession.__enter__I  s   € ØˆrY   c                ó$   — | j                  «        y r¬   ©Úclose©rã   r­   s     rZ   Ú__exit__zSession.__exit__L  s   € Ø�
‰
�rY   c                óF   — d| _         | j                  j                  «        y)úClose the session.TN)rß   r+  r~  rM  s    rZ   r~  zSession.closeO  s   € àˆŒØ�	‰	�‰ÕrY   c              +  ó’   K  —  | j                   d||dœ|¤ddi¤Ž}	 |–— |j                  «        y# |j                  «        w xY w­w)z6Equivalent to ``with request(..., stream=True) as r:``©Úmethodr¿   r¨   TNrX   )rR  r~  ©rã   r…  r¿   r®   r/  s        rZ   r¨   zSession.streamT  sC   è ø€ ð ˆd�l‰lÐI &¨cÑI°VÑIÀDÒIˆð	ØŠIà�I‰I�KøˆC�I‰I�Küs   ‚A�2 ¡A²AÁAc                ó¨  — | j                  «        | j                  j                  «       }| j                  j                  «        t	        |||||| j
                  ¬«      }t        t        dz  |j                  d«      «      }	|	�,t        | j                  «      }
|
j                  |	«       |
|d<   n| j                  |d<    |j                  |fi |¤Ž |S )a"  Connects to a websocket url.

        Note: This method is deprecated, use WebSocket instead.

        Args:
            url: the ws url to connect.
            on_message: message callback, ``def on_message(ws, str)``
            on_error: error callback, ``def on_error(ws, error)``
            on_open: open callback, ``def on_open(ws)``
            on_close: close callback, ``def on_close(ws)``

        Other parameters are the same as ``.request``

        Returns:
            a WebSocket instance to communicate with the server.
        )r+  Ú
on_messageÚon_errorÚon_openÚon_closer„   Nra   )rN  r+  Ú	duphandleÚresetr@   r„   r   r&   râ   ra   ÚupdateÚconnect)rã   r¿   rˆ  r‰  rŠ  r‹  r®   r+  rQ   Úuser_cookiesÚmerged_cookiess              rZ   Ú
ws_connectzSession.ws_connectb  s½   € ð2 	×"Ñ"Ô$à�y‰y×"Ñ"Ó$ˆØ�	‰	�‰Ôä!ØØ!ØØØØ—*‘*ô
ˆô œG d™N¨F¯J©J°yÓ,AÓBˆØÐ#Ü$ T§\¡\Ó2ˆNØ×!Ñ! ,Ô/Ø .ˆF�9Òà $§¡ˆF�9Ñàˆ�
‰
�3Ñ!˜&Ò!Øˆ	rY   c                ó6   — | j                   j                  «       S r¬   )r+  ÚupkeeprM  s    rZ   r”  zSession.upkeep•  s   € Ø�y‰y×ÑÓ!Ð!rY   úgzip, deflate, brr×   rç   r   Fc%           	     ó`
  ‡ ‡‡$‡0‡1‡2‡3‡4‡5— |!r5‰ j                   j                  «       Š1‰ j                   j                  «       }%n‰ j                   Š1t        ‰1fi d|“d|“d‰ j                  |g“d‰ j
                  “d|“d|“d|“d‰ j                  |g“d	‰ j                  |g“d
|	“d|
xs ‰ j                  “d|t        u r‰ j                  n|“d|€‰ j                  n|“d|€‰ j                  n|“d‰ j                  |g“d|“d|xs ‰ j                  “d‰ j                  |g“d|“d|“d|“d|xs ‰ j                   “d|xs ‰ j"                  “d|xs ‰ j$                  “d|xs ‰ j&                  “d|xs ‰ j(                  “d|€‰ j*                  n|“d|“d|xs ‰ j,                  “d|xs ‰ j.                  “d|xs ‰ j0                  “d |!“d!|"“d"|#“d#| xs ‰ j2                  “d$‰ j4                  “d%t6        j8                  “d&t:        j<                  “Ž\  Š5Š0Š2Š4Š3}&‰ j?                  ‰5|!|¬'«      r˜‰ j@                  jC                  ‰5‰ jD                  ¬(«      }'|'�o‰$s1‰ jF                  s%‰ j                  jI                  |'jJ                  «       ‰ jL                  r|'jM                  «        ‰1j                  «        tO        tP        |'«      S |!rÖˆ0ˆ1ˆˆ$ˆ2ˆ3ˆ4ˆ5ˆ f	d)„}(‰ jR                  jU                  |(«      })‰3jW                  «        ‰ jY                  ‰1‰0‰2‰‰$«      }*t[        ‰4«      }+t]        |+t^        «      r4|&r|&ja                  «        |)jc                  «        ‰1je                  «        |+‚‰5|*_3        |)|*_4        |&|*_5        ‰4|*_        ‰ jL                  r|*jM                  «        |*S 	 ‰ jl                  d*k(  r*d+d l7},|,jp                  js                  ‰1jt                  «       ne‰ jl                  d,k(  rFd+d l;}-|-jy                  «       jz                  j}                  ‰1jt                  «      jC                  «        n‰1ju                  «        ‰ jY                  ‰1‰0‰2‰‰$«      }*‰5|*_3        ‰ j?                  ‰5|!|¬'«      r‰ j@                  ja                  ‰5|*«       ‰ jL                  r|*jM                  «        |*‰1j                  «        S # t~        $ r^}.‰ jY                  ‰1‰0‰2‰‰$«      }*‰5|*_3        t�        |.j‚                  t…        |.«      «      }/ |/t…        |.«      |.j‚                  |*«      |.‚d }.~.ww xY w# ‰1j                  «        w xY w)-Nr…  r¿   Úparams_listri   r“   r•   r—   Úheaders_listÚcookies_listr˜   rc   ro   rr   rt   Úproxies_listrg   rh   Úverify_listr�   rž   r    rw   rx   ry   rz   r|   r}   r¢   rƒ   r…   r†   r¨   r£   r¥   rˆ   r€   Úqueue_classÚevent_classrP  )rŠ   c                 óÀ  •	— 	 ‰j                  «        t        t        j                  ‰«      j                  «       s(t        t        j                  ‰«      j                  «        ‰	j                  t        «       y # t        $ rq} ‰j                  ‰‰‰‰‰«      }‰
|_        t	        | j
                  t        | «      «      }‰	j                   |t        | «      | j
                  |«      «       Y d } ~ ŒÛd } ~ ww xY w# t        t        j                  ‰«      j                  «       s(t        t        j                  ‰«      j                  «        ‰	j                  t        «       w xY wr¬   )Úperformr    rK  rR  r*   ÚcoderM   Ú
put_nowaitr   rk  ÚEventÚis_setr  Úputr1   )Úer/  Úerrorr,  r.  r   r‹   r-  Úheader_recvedÚqÚreqrã   s      €€€€€€€€€rZ   rŸ  z&Session._request_once.<locals>.perform  sõ   ø€ ð&Ø—I‘I”Kô  ¤	§¡°Ó?×FÑFÔHÜœYŸ_™_¨mÓ<×@Ñ@ÔBØ—E‘Eœ*Õ%øô !ò =Ø×.Ñ.Ø˜6 =Ð2BÀOó�Cð #&�C”KÜ& q§v¡v¬s°1«vÓ6�EØ—L‘L¡¤s¨1£v¨q¯v©v°sÓ!;×<Ñ<ûð=ûô  ¤	§¡°Ó?×FÑFÔHÜœYŸ_™_¨mÓ<×@Ñ@ÔBØ—E‘Eœ*Õ%ús+   ƒA9 Á9	C3ÂA'C.Ã)C6 Ã.C3Ã3C6 Ã6A'Er±   r   r²   )Cr+  rŒ  r�  r=   rk   ri   r_   rÜ   rc   r:   ro   rr   rt   re   rh   rm   rw   rx   ry   rz   r|   r}   rƒ   r…   r†   rˆ   r€   ÚqueueÚQueuerk  r¢  rS  rÝ   râ   rŠ   r‹   rŽ  ra   rŒ   r   rE   ry  ÚsubmitÚwaitrK  r8   rÏ   r(   r  Úresultr~  rR  Ústream_taskÚquit_nowrg  Úeventlet.tpoolÚtpoolÚexecuterŸ  r²   Úget_hubÚ
threadpoolÚspawnr    r*   r   rM   )6rã   r…  r¿   rk   r“   r•   r—   r_   ra   r˜   rc   ro   rr   rt   re   rg   rh   rm   r�   rž   r    rw   rx   ry   rz   r|   r}   r   r¢   rƒ   r…   r†   rˆ   r¨   r£   r¥   r‹   r6  r°  Úcached_responserŸ  r¯  r/  Úfirst_elementr±   r²   r¥  r¦  r,  r.  r-  r§  r¨  r©  s6   `                          `        `           @@@@@@rZ   Ú_request_oncezSession._request_once˜  s“  ÿø€ ñT Ø—	‘	×#Ñ#Ó%ˆAØ—	‘	—‘Ó!‰Aà—	‘	ˆAäAQØò.B
áð.B
ñ ð.B
ð Ÿ™ fÑ-ð	.B
ð
 —]’]ð.B
ñ ð.B
ñ ð.B
ñ ð.B
ð Ÿ,™,¨Ñ0ð.B
ð Ÿ-™-¨Ñ1ð.B
ñ ð.B
ð Ò"˜Ÿ™øð.B
ð %,¬wÑ$6�D—L’L¸Gøð.B
ð )8Ð(?�×$Ò$À_øð.B
ð$ '4Ð&;�×"Ò"Àøð%.B
ð( Ÿ,™,¨Ñ0ð).B
ñ* ð+.B
ð, "Ò4 T§_¡_øð-.B
ð. Ÿ™ fÑ-ð/.B
ñ0 ð1.B
ñ2 ,ð3.B
ñ4 .ð5.B
ð6 $Ò7 t×'7Ñ'7øð7.B
ð8 ’�t—x‘xøð9.B
ð: Ò(˜TŸ[™[øð;.B
ð< Ò"˜Ÿ™øð=.B
ð> Ò. §¡øð?.B
ðB )8Ð(?�×$Ò$À_øðC.B
ñF ðG.B
ðH &Ò:¨×):Ñ):øðI.B
ðJ  Ò1 4§>¡>øðK.B
ðL Ò+˜tŸ|™|øðM.B
ñN ðO.B
ñP *ðQ.B
ñR  ðS.B
ðT Ò"˜Ÿ™øðU.B
ðV ×*Ò*ðW.B
ôX ŸšðY.B
ôZ "Ÿšð[.B
Ñ>ˆˆV�] A }°hð` ×Ñ˜s¨6ÐDTÐÔUØ"Ÿk™kŸo™oØØ#×2Ñ2ð .ó ˆOð Ð*Ù'¨4×+?Ò+?Ø—M‘M×(Ñ(¨×)@Ñ)@ÔAØ×(Ò(Ø#×4Ñ4Ô6Ø—‘”	ÜœA˜Ó/Ð/á÷&ô &ð Ÿ-™-×.Ñ.¨wÓ7ˆKð ×ÑÔ Ø×&Ñ&Ø�6˜=Ð*:¸OóˆCô
 (¨›NˆMÜ˜-Ô)9Ô:ÙØ—L‘L”NØ×"Ñ"Ô$Ø—‘”	Ø#Ð#àˆCŒKØ)ˆCŒOØ#ˆCŒLØˆCŒIØ×$Ò$Ø×$Ñ$Ô&ØˆJð!Ø—<‘< :Ò-ã)à—N‘N×*Ñ*¨1¯9©9Õ5Ø—\‘\ XÒ-ã!à—N‘NÓ$×/Ñ/×5Ñ5°a·i±iÓ@×DÑDÕFà—I‘I”Kð ×*Ñ*Ø�v˜}Ð.>Àó�ð "�”Ø×&Ñ&Ø Ð9Ið 'ô ð —K‘K—O‘O C¨Ô-Ø×(Ò(Ø×(Ñ(Ô*Øà—‘•	øô) ò 8Ø×*Ñ*Ø�v˜}Ð.>Àó�ð "�”Ü" 1§6¡6¬3¨q«6Ó2�ÙœC ›F A§F¡F¨CÓ0°aÐ7ûð8ûð( —‘•	ús-   ÎBR1 Ð7A)T Ò1	TÒ:ATÔTÔT ÔT-c%                óL  — | j                  «        |�|n|}%t        ||«      }&| j                  }'t        |'j                  dz   «      D ]‘  }(|(dkD  rt        |%|&«       	  | j                  d(i d|“d|“d|“d|“d|“d	|“d
|“d|“d|	“d|
“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d |“d!|“d"|“d#| “d$|!“d%|"“d&|#“d'|$“Žc S  y# t        $ r> |(|'j                  k(  r‚ | j                  |(dz   «      })|)rt        j                  |)«       Y ŒÛw xY w))zESend the request, see ``requests.request`` for details on parameters.Nr#   r   r…  r¿   rk   r“   r•   r—   r_   ra   r˜   rc   ro   rr   rt   re   rg   rh   rm   r�   rž   r    rw   rx   ry   rz   r|   r}   r   r¢   rƒ   r…   r†   rˆ   r¨   r£   r¥   r‹   rX   )rN  r6   ru   r  rÇ   r9   r¹  r(   rX  ÚtimeÚsleep©*rã   r…  r¿   rk   r“   r•   r—   r_   ra   r˜   rc   ro   rr   rt   re   rg   rh   rm   r�   rž   r    rw   rx   ry   rz   r|   r}   r   r¢   rƒ   r…   r†   rˆ   r¨   r£   r¥   r‹   ÚbodyÚbody_positionrÒ   rW  rÊ   s*                                             rZ   rR  zSession.requestR  s-  € ðR 	×"Ñ"Ô$à!Ð-‰w°4ˆÜ.¨t°WÓ=ˆØ—:‘:ˆÜ˜XŸ^™^¨aÑ/Ó0ò /	&ˆGØ˜Š{Ü˜T =Ô1ð,&Ø)�t×)Ñ)ò %Ù!ð%áð%ñ "ð%ñ ð	%ñ
 $ð%ñ ð%ñ $ð%ñ $ð%ñ  ð%ñ ð%ñ $ð%ñ %4ð%ñ #0ð%ñ $ð%ñ  ð%ñ   *ð!%ñ" "ð#%ñ$ $ð%%ñ& %4ð'%ñ( &6ð)%ñ* !,ð+%ñ, ð-%ñ. "ð/%ñ0 ð1%ñ2 &ð3%ñ4 %4ð5%ñ6 &6ð7%ñ8  ð9%ñ: ".ð;%ñ< (ð=%ñ> $ð?%ñ@ ðA%ñB "ðC%ñD $2ðE%ñF (ðG%ñH %4ðI%ò %ñ	/	&øôT $ò &Ø˜hŸn™nÒ,ØØ×)Ñ)¨'°A©+Ó6�ÙÜ—J‘J˜uÔ%ùð&ús   ÁA;CÃAD#Ä"D#c                ó,   —  | j                   dd|dœ|¤ŽS ©Nr¸   r„  rX   ©rR  ©rã   r¿   r®   s      rZ   ÚheadzSession.head±  ó   € Øˆt�|‰|Ð= 6¨sÑ=°fÑ=Ð=rY   c                ó,   —  | j                   dd|dœ|¤ŽS ©Nr³   r„  rX   rÂ  rÃ  s      rZ   râ   zSession.get´  ó   € Øˆt�|‰|Ð< 5¨cÑ<°VÑ<Ð<rY   c                ó,   —  | j                   dd|dœ|¤ŽS ©Nr´   r„  rX   rÂ  rÃ  s      rZ   ÚpostzSession.post·  rÅ  rY   c                ó,   —  | j                   dd|dœ|¤ŽS ©Nrµ   r„  rX   rÂ  rÃ  s      rZ   r¤  zSession.putº  rÈ  rY   c                ó,   —  | j                   dd|dœ|¤ŽS ©Nrº   r„  rX   rÂ  rÃ  s      rZ   ÚpatchzSession.patch½  ó   € Øˆt�|‰|Ð> 7°Ñ>°vÑ>Ð>rY   c                ó,   —  | j                   dd|dœ|¤ŽS ©Nr¶   r„  rX   rÂ  rÃ  s      rZ   ÚdeletezSession.deleteÀ  s   € Øˆt�|‰|Ð? 8°Ñ?¸Ñ?Ð?rY   c                ó,   —  | j                   dd|dœ|¤ŽS ©Nr·   r„  rX   rÂ  rÃ  s      rZ   ÚoptionszSession.optionsÃ  s   € Øˆt�|‰|Ð@ 9°#Ñ@¸Ñ@Ð@rY   c                ó,   —  | j                   dd|dœ|¤ŽS ©Nr¹   r„  rX   rÂ  rÃ  s      rZ   ÚtracezSession.traceÆ  rÑ  rY   c                ó,   —  | j                   dd|dœ|¤ŽS ©Nr»   r„  rX   rÂ  rÃ  s      rZ   ÚqueryzSession.queryÉ  rÑ  rY   )NNT)
r+  zOptional[Curl]rp  zOptional[ThreadType]rq  rl   r®   úUnpack[BaseSessionParams[R]]r\  r^  ©r\  r^  )r…  Ú
HttpMethodr¿   rM   r®   úUnpack[StreamRequestParams]r\  zGenerator[R, None, None])NNNN)r¿   rM   r\  r@   )r\  rs   )Jr…  rà  r¿   rM   rk   zDOptional[Union[dict[str, object], list[object], tuple[object, ...]]]r“   r’   r•   úOptional[SyncRequestContent]r—   r–   r_   r^   ra   r`   r˜   rj   rc   rb   ro   r™   rr   rš   rt   r›   re   rd   rg   rf   rh   rb   rm   rœ   r�   rf   rž   rf   r    r]  rw   rv   rx   rf   ry   rf   rz   rf   r|   r{   r}   rœ   r   r~   r¢   r¡   rƒ   ú+CurlHttpVersion | HttpVersionLiteral | Noner…   rf   r†   rf   rˆ   r‡   r¨   rœ   r£   rs   r¥   r¤   r‹   rl   r\  rE   )Jr…  rà  r¿   rM   rk   r‘   r“   r’   r•   râ  r—   r–   r_   r^   ra   r`   r˜   rj   rc   rb   ro   r™   rr   rš   rt   r›   re   rd   rg   rf   rh   rb   rm   rœ   r�   rf   rž   rf   r    rŸ   rw   ú0Optional[Union[BrowserTypeLiteral, Fingerprint]]rx   rf   ry   rf   rz   rf   r|   r{   r}   rœ   r   r~   r¢   r¡   rƒ   r‚   r…   rf   r†   rf   rˆ   r‡   r¨   rœ   r£   rs   r¥   r¤   r‹   rl   r\  rE   ©r¿   rM   r®   zUnpack[RequestParams]r\  rE   )rT   rU   rV   r_  rä   r`  r+  ry  r{  r€  r~  r
   r¨   r’  r”  r:   r¹  rR  rÄ  râ   rË  r¤  rÐ  rÔ  r×  rÚ  rÝ  Ú__classcell__©rr  s   @rZ   rc  rc  á  sU  ø„ ñTð
  $Ø'+Ø&*ð	MBàðMBð %ðMBð  $ð	MBð
 /ðMBð 
õMBð^ ñó ðð ñó ðò
óóð
 ðàðð ðð .ð	ð
 
"òó ðð  ØØØð1àð1ð 
ó1óf"ð Ø&*Ø04Ø&*Ø)-Ø)-Ø $Ø*.ØGNØBFØ'+Ø'+Ø#Ø04Ø!%Ø!%Ø)<Ø<@ØMQØ!Ø $Ø"ØDHØ*.Ø?FØ,.ØDHØ#'Ø!%Ø6:Ø!%ØØ(,Ø %ðOxàðxð ðxð
ð	xð $ðxð .ðxð $ðxð 'ðxð 'ðxð ðxð (ðxð Eðxð @ðxð  %ð!xð" %ð#xð$ ð%xð& .ð'xð( ð)xð* ð+xð, 'ð-xð. :ð/xð0 Kð1xð2 ð3xð4 ð5xð6 ð7xð8 Bð9xð: (ð;xð< =ð=xð> *ð?xð@ BðAxðB !ðCxðD ðExðF 4ðGxðH ðIxðJ ðKxðL &ðMxðN ðOxðP 
óQxð| 6:Ø&*Ø04Ø&*Ø)-Ø)-Ø $Ø*.ØGNØBFØ'+Ø'+Ø#Ø04Ø!%Ø!%Ø)<Ø/3ØHLØ!Ø $Ø"ØDHØ*.Ø?FØ,.ØMQØ#'Ø!%Ø6:Ø!%ØØ(,Ø %ðK]&àð]&ð ð]&ð 3ð	]&ð
 $ð]&ð .ð]&ð $ð]&ð 'ð]&ð 'ð]&ð ð]&ð (ð]&ð Eð]&ð @ð]&ð %ð]&ð %ð]&ð  ð!]&ð" .ð#]&ð$ ð%]&ð& ð']&ð( 'ð)]&ð* -ð+]&ð, Fð-]&ð. ð/]&ð0 ð1]&ð2 ð3]&ð4 Bð5]&ð6 (ð7]&ð8 =ð9]&ð: *ð;]&ð< Kð=]&ð> !ð?]&ð@ ðA]&ðB 4ðC]&ðD ðE]&ðF ðG]&ðH &ðI]&ðJ ðK]&ðL 
óM]&ó~>ó=ó>ó=ó?ó@óAó?÷?rY   rc  c            %      ó¸  ‡ — e Zd ZdZddddœ	 	 	 	 	 	 	 	 	 d(ˆ fd„Zed)d„«       Zed*d„«       Zd„ Zd+d	„Z	d,d
„Z
d„ Zd-d„Zd-d„Zd.d„Zd/d„Ze	 	 	 	 	 	 	 	 d0d„«       Zdddddedddddddddddddddddddddddddddddddf%	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d1d„Zddddddddedddddddddddddddddddddddddf"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2d„Zddddddddedddddddddddddddddddddddddf"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d3d„Zd4d„Zd4d „Zd4d!„Zd4d"„Zd4d#„Zd4d$„Zd4d%„Zd4d&„Zd4d'„Zˆ xZS )5ÚAsyncSessionzAAn async request session, cookies and connections will be reused.Né
   )ÚloopÚ
async_curlÚmax_clientsc               ó¸   •— |j                  d«      �t        d«      ‚t        ‰| �  di |¤Ž || _        || _        |du | _        || _        | j                  «        y)a
  
        Parameters set in the ``__init__`` method are overridden by the same parameter
        in request method.

        Parameters:
            loop: loop to use, if not provided, the running loop will be used.
            async_curl: [AsyncCurl](/api/curl_cffi#curl_cffi.AsyncCurl) object to use.
            max_clients: maxmium curl handle to use in the session,
                this will affect the concurrency ratio.
            headers: headers to use in the session.
            cookies: cookies to add in the session.
            auth: HTTP basic auth, a tuple of (username, password), only basic auth is
                supported.
            proxies: dict of proxies to use, prefer to use ``proxy`` if they are the
                same. format: ``{"http": proxy_url, "https": proxy_url}``.
            proxy: proxy to use, format: "http://proxy_url".
                Cannot be used with the above parameter.
            proxy_auth: HTTP basic auth for proxy, a tuple of (username, password).
            base_url: absolute url to use for relative urls.
            params: query string for the session.
            verify: whether to verify https certs.
            timeout: how many seconds to wait before giving up.
            trust_env: use http_proxy/https_proxy and other environments, default True.
            allow_redirects: whether to allow redirection. Can be a bool, a
                ``CurlFollow`` value, or the string ``"safe"``. Use
                ``CurlFollow.SAFE`` or ``"safe"`` to reject redirects to
                internal/private IP addresses (SSRF protection).
            max_redirects: max redirect counts, default 30, use -1 for unlimited.
            retry: number of retries or ``RetryStrategy`` for failed requests.
            impersonate: which browser version or fingerprint to impersonate
                in the session.
            ja3: ja3 string to impersonate in the session.
            akamai: akamai string to impersonate in the session.
            perk: perk string to impersonate in the session.
            extra_fp: extra fingerprints options, in complement to ja3 and akamai str.
            default_encoding: encoding for decoding response content if charset is not
                found in headers. Defaults to "utf-8". Can be set to a callable for
                automatic detection.
            cert: a tuple of (cert, key) filenames for client cert.
            response_class: A customized subtype of ``Response`` to use.
            raise_for_status: automatically raise an HTTPError for 4xx and 5xx
                status codes.

        Notes:
            This class can be used as a context manager, and it's recommended to use via
            ``async with``.
            However, unlike aiohttp, it is not required to use ``with``.

        .. code-block:: python

            from curl_cffi.requests import AsyncSession

            # recommended.
            async with AsyncSession() as s:
                r = await s.get("https://example.com")

            s = AsyncSession()  # it also works.
        rŽ   NzMAsyncSession does not support cache yet because CacheBackend I/O is blocking.rX   )	râ   ÚNotImplementedErrorrf  rä   Ú_loopÚ_acurlÚ_owns_acurlrí  Ú	init_pool)rã   rë  rì  rí  r®   rr  s        €rZ   rä   zAsyncSession.__init__Ð  sf   ø€ ðD �:‰:�gÓÐ*Ü%ðóð ô
 	‰ÑÑ"˜6Ò"Ø7;ˆŒ
Ø(2ˆŒØ!+¨tÐ!3ˆÔØ +ˆÔØ�‰ÕrY   c                ód   — | j                   €t        j                  «       | _         | j                   S )z"Returns a reference to event loop.)rð  ÚasyncioÚget_running_looprM  s    rZ   rë  zAsyncSession.loop  s(   € ð �:‰:ÐÜ ×1Ñ1Ó3ˆDŒJØ�z‰zÐrY   c                óh   — | j                   €t        | j                  ¬«      | _         | j                   S )N)rë  )rñ  r   rë  rM  s    rZ   ÚacurlzAsyncSession.acurl&  s&   € à�;‰;ÐÜ#¨¯©Ô3ˆDŒKØ�{‰{ÐrY   c                ó¸   — t        j                  | j                  «      | _        	 	 | j                  j	                  d «       Œ# t         j
                  $ r Y y w xY wr¬   )rõ  Ú	LifoQueuerí  Úpoolr¡  Ú	QueueFullrM  s    rZ   ró  zAsyncSession.init_pool,  sS   € Ü4;×4EÑ4EÀd×FVÑFVÓ4WˆŒ	ØðØ—	‘	×$Ñ$ TÔ*ð øô ×$Ñ$ò Ùðús   §A ÁAÁAc              ƒ  ó°   K  — | j                   j                  «       ƒ d {  –—† }|€+t        | j                  j                  | j
                  ¬«      }|S 7 Œ3­w)N)Úcacertr„   )rû  râ   r   rø  Ú_cacertr„   ©rã   r+  s     rZ   Úpop_curlzAsyncSession.pop_curl4  sA   è ø€ Ø"&§)¡)§-¡-£/×1ˆØˆ<Ü˜tŸz™z×1Ñ1¸¿¹ÔDˆDØˆð 2ús   ‚A A¡4Ac                ó–   — t        t        j                  «      5  | j                  j	                  |«       d d d «       y # 1 sw Y   y xY wr¬   )r   rõ  rü  rû  r¡  r   s     rZ   Ú	push_curlzAsyncSession.push_curl:  s7   € Ü”g×'Ñ'Ó(ñ 	'Ø�I‰I× Ñ  Ô&÷	'÷ 	'ñ 	'ús	   š?¿Ac              ƒ  ó   K  — | S ­wr¬   rX   rM  s    rZ   Ú
__aenter__zAsyncSession.__aenter__>  s   è ø€ Øˆùs   ‚c              ‡  ó@   K  — | j                  «       ƒ d {  –—†  y 7 Œ­wr¬   r}  r  s     rZ   Ú	__aexit__zAsyncSession.__aexit__A  s   è ø€ Ø�j‰j‹l×ÐØð 	ús   ‚–—c              ƒ  ó  K  — | j                   r"| j                  j                  «       ƒ d{  –—†  d| _        	 	 | j                  j                  «       }|r|j                  «        Œ.7 Œ:# t        j                  $ r Y yw xY w­w)r‚  NT)rò  rø  r~  rß   rû  Ú
get_nowaitrõ  Ú
QueueEmptyr   s     rZ   r~  zAsyncSession.closeE  su   è ø€ à×ÒØ—*‘*×"Ñ"Ó$×$Ð$ØˆŒØðØ—y‘y×+Ñ+Ó-�ÙØ—J‘J”Lð	 ð %ùô ×%Ñ%ò Ùðüs2   ‚*B¬A'­Bº,A) Á&BÁ)A?Á<BÁ>A?Á?Bc              ƒ  óâ  K  — | j                  «        g }g }	 	 | j                  j                  «       }|j                  |«       |r5|j                  | j                  j                  d|j                  «      «       Œd# t        j                  $ r Y nw xY w	 t        t        j                  |Ž ƒ d{  –—†7  «      |D ]  }| j                  |«       Œ S # |D ]  }| j                  |«       Œ w xY w­w)aˆ  
        Performs connection upkeep for all idle connections in the pool.

        This is done by calling `curl_easy_upkeep` on each underlying curl handle.
        This function can be used to keep connections alive. For example, HTTP/2
        connections can be kept alive by sending PING frames.

        Returns:
            A list of curl return codes from `curl_easy_upkeep`.
        N)rN  rû  r	  rõ  r
  rÿ   rë  Úrun_in_executorr”  r  Úgatherr  )rã   Úpooled_curlsÚtasksr+  s       rZ   r”  zAsyncSession.upkeepR  sÝ   è ø€ ð 	×"Ñ"Ô$àˆØˆØðØ—y‘y×+Ñ+Ó-�ð ×Ñ Ô%ÙØ—‘˜TŸY™Y×6Ñ6°t¸T¿[¹[ÓIÔJð øô ×%Ñ%ò Ùðúð	%ÜœgŸn™n¨eÐ4×4Ð4Ó5à$ò %�Ø—‘˜tÕ$ñ%ø˜ò %�Ø—‘˜tÕ$ñ%üsL   ‚C/™A< ³A	C/Á<BÂC/ÂBÂC/ÂC Â0B3Â1C Â9C/ÃC,Ã,C/c                óÖ   — |j                  «        | j                  s=| j                  j                  |«       |j	                  «        | j                  |«       y |j                  «        y r¬   )Úclean_handles_and_buffersrß   rø  Úremove_handler�  r  r~  r   s     rZ   Úrelease_curlzAsyncSession.release_curlp  sE   € Ø×&Ñ&Ô(Ø�|Š|Ø�J‰J×$Ñ$ TÔ*Ø�J‰JŒLØ�N‰N˜4Õ à�J‰J�LrY   c               óÎ   K  —  | j                   d||dœ|¤ddi¤Žƒ d{  –—† }	 |­–— |j                  «       ƒ d{  –—†  y7 Œ#7 Œ# |j                  «       ƒ d{  –—†7   w xY w­w)z<Equivalent to ``async with request(..., stream=True) as r:``r„  r¨   TNrX   )rR  Úacloser†  s        rZ   r¨   zAsyncSession.streamy  s^   è ø€ ð !�D—L‘LÐO¨°CÑO¸6ÑOÈ$ÒO×Oˆð	Ø‹Ià—*‘*“,×Ñð	 Pøð ù�#—*‘*“,×ÒüsA   ‚A%ŸA A%¥A ªA%½A¾A%ÁA%ÁA"ÁAÁA"Á"A%Tr•  rç   r   é€   é@   Fg{®Gáz„?g{®Gázt?i  @ c'           (     óÈ   ‡ ‡‡‡‡‡‡‡‡‡	‡
‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡ ‡!‡"‡#‡$‡%‡&— dˆˆˆˆˆˆ%ˆˆˆˆ&ˆˆˆ$ˆˆˆˆˆˆˆ#ˆˆ	ˆˆˆˆ
ˆˆˆˆˆ!ˆˆ ˆˆ"ˆˆˆˆ f'd„}'t         |'«       «      S )a”  Connects to a WebSocket.

        Args:
            url: url for the requests.
            autoclose: whether to close the WebSocket after receiving a close frame.
            params: query string for the requests.
            headers: headers to send.
            cookies: cookies to use.
            auth: HTTP basic auth, a tuple of (username, password), only basic auth is
                supported.
            timeout: how many seconds to wait before giving up.
            allow_redirects: whether to allow redirection. Can be a bool, a
                ``CurlFollow`` value, or the string ``"safe"``. Use
                ``CurlFollow.SAFE`` or ``"safe"`` to reject redirects to
                internal/private IP addresses (SSRF protection).
            max_redirects: max redirect counts, default 30, use -1 for unlimited.
            proxies: dict of proxies to use, prefer to use ``proxy`` if they are the
                same. format: ``{"http": proxy_url, "https": proxy_url}``.
            proxy: proxy to use, format: "http://user@pass:proxy_url".
                Can't be used with `proxies` parameter.
            proxy_auth: HTTP basic auth for proxy, a tuple of (username, password).
            verify: whether to verify https certs.
            referer: shortcut for setting referer header.
            accept_encoding: shortcut for setting accept-encoding header.
            impersonate: which browser version or fingerprint to impersonate.
            ja3: ja3 string to impersonate.
            akamai: akamai string to impersonate.
            perk: perk string to impersonate.
            extra_fp: extra fingerprints options, in complement to ja3 and akamai str.
            default_headers: whether to set default browser headers.
            quote: Set characters to be quoted, i.e. percent-encoded. Default safe
                string is ``!#$%&'()*+,/:;=?@[]~``. If set to a string, the character
                will be removed from the safe string, thus quoted. If set to False, the
                url will be kept as is, without any automatic percent-encoding, you must
                encode the URL yourself.
            http_version: limiting http version, defaults to http2.
            interface: interface name or local IP to bind to (bare IP = source address).
            doh_url: DNS-over-HTTPS server url, e.g. https://1.1.1.1/dns-query.
            cert: a tuple of (cert, key) filenames for client cert.
            max_recv_speed: maximum receive speed, bytes per second.
            recv_queue_size: The maximum number of incoming WebSocket
                messages to buffer internally. This queue stores messages received by
                the Curl socket that are waiting to be consumed on calling ``recv()``.
            send_queue_size: The maximum number of outgoing WebSocket
                messages to buffer before applying network backpressure. When you call
                ``send()`` the message is placed in this queue and transmitted when
                the Curl socket is next available for sending.
            max_send_batch_size: The max batch size for sent frames.
            coalesce_frames: When set, multiple pending messages in the send queue
                may be merged into a single WebSocket frame for improved throughput.
                **Warning:** This breaks the one-to-one mapping of ``send()`` calls
                to frames and should only be used when the application protocol is
                designed to handle concatenated data streams. Defaults to ``False``.
            ws_retry (WebSocketRetryStrategy): Retry policy for WebSocket messages.
            recv_time_slice: The maximum duration (in seconds) to process incoming
                messages before yielding to the event loop.
                Defaults to ``0.01`` (10ms).
            send_time_slice: The maximum duration (in seconds) to process outgoing
                messages before yielding to the event loop.
                Defaults to ``0.005`` (5ms).
            max_message_size: Maximum allowed size for a complete received
                WebSocket message (default: ``4 MiB``).
            drain_on_error: If ``True``, when a connection error occurs,
            attempt to consume all the buffered received messages first,
            before raising the error. Otherwise, raise it immediately (default).
            block_on_recv_queue_full (bool, optional): If ``False``, the connection
                is failed immediately when the receive queue is full. The message that
                caused the overflow is not delivered; any messages already buffered may
                still be drained if ``drain_on_error=True``.
            curl_options: extra curl options to use.
        c               “  óž  •'K  — ‰#j                  «        ‰#j                  «       ƒ d {  –—† } t        d%i d| “dd“d‰'“d‰#j                  “d‰#j                  ‰g“d‰#j
                  ‰g“d‰#j                  ‰g“d	‰xs ‰#j                  “d
‰&t        u r‰#j                  n‰&“d‰€‰#j                  n‰“d‰€‰#j                  n‰“d‰#j                  ‰g“d‰“d‰xs ‰#j                  “d‰#j                  ‰(g“d‰"“d‰“d‰xs ‰#j                  “d‰xs ‰#j                   “d‰xs ‰#j"                  “d‰xs ‰#j$                  “d‰€‰#j&                  n‰“d‰“d‰xs ‰#j(                  “d‰xs ‰#j*                  “d‰xs ‰#j,                  “d‰“d‰	xs ‰#j.                  “dt0        j2                  “dt0        j4                  “d ‰“d!‰“Ž}| j7                  t8        j:                  d"«      }| j7                  t8        j<                  d#«      }	 ‰#j>                  jA                  d | jB                  «      ƒ d {  –—† }tK        tM        tN        tP           ‰#«      | ‰‰ ‰$‰‰
‰)‰!‰%‰‰‰‰#jR                  ¬$«      }	 |jU                  «        |S 7 �ŒT7 ŒR# tD        $ r# | jG                  «        ‰#jI                  d «       ‚ w xY w# tV        $ r |jY                  «        ‚ w xY w­w)&Nr+  r…  r³   r¿   ri   r—  r˜  r™  rc   ro   rr   rt   rš  rg   rh   r›  r�   rž   rw   rx   ry   r|   r}   r¢   rƒ   r…   r†   r£   rˆ   rœ  r�  r€   rz   r#   r   )Ú	autocloseÚrecv_queue_sizeÚsend_queue_sizeÚmax_send_batch_sizeÚcoalesce_framesÚws_retryÚrecv_time_sliceÚsend_time_sliceÚmax_message_sizeÚdrain_on_errorÚblock_on_recv_queue_fullr„   rX   )-rN  r  r=   ri   rk   r_   ra   rc   r:   ro   rr   rt   re   rh   rm   rw   rx   ry   r|   r}   rƒ   r…   r†   rˆ   rõ  r«  r¢  Úsetoptr   ÚTCP_NODELAYÚCONNECT_ONLYrë  r  rŸ  r  r~  r  r>   r   ré  r0   r„   Ú_start_io_tasksrA   Ú	terminate)*r+  r6  rQ   rž   ry   rr   rc   r  r$  rˆ   r  ra   r€   r}   r†   r#  r|   r_   rƒ   rw   r…   rx   r"  r£   rt   r  rk   rz   re   rg   rh   r¢   r  r   r�   rã   r  r!  ro   r¿   rm   r  s*      €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€rZ   Ú_connect_coroz.AsyncSession.ws_connect.<locals>._connect_coroø  sP  øè ø€ Ø×&Ñ&Ô(à#Ÿ}™}›×.ˆDÜ ò 'Ùð'áð'ñ ð'ð Ÿšð	'ð
 "Ÿ[™[¨&Ñ1ð'ð #Ÿl™l¨GÑ4ð'ð #Ÿl™l¨GÑ4ð'ð Ò&˜TŸY™Yøð'ð )0´7Ñ(:˜ŸšÀøð'ð -<Ð,C�D×(Ò(Èøð'ð +8Ð*?�D×&Ò&À]øð'ð  #Ÿl™l¨GÑ4ð!'ñ" ð#'ð$ &Ò8¨¯©øð%'ð& "Ÿ[™[¨&Ñ1ð''ñ(  ð)'ñ* !0ð+'ð, (Ò;¨4×+;Ñ+;øð-'ð. ’O˜4Ÿ8™8øð/'ð0 Ò, §¡øð1'ð2 "Ò2 T§]¡]øð3'ð6 -<Ð,C�D×(Ò(Èøð7'ñ: ð;'ð< *Ò>¨T×->Ñ->øð='ð> $Ò5 t§~¡~øð?'ð@  Ò/ 4§<¡<øðA'ñB  .ðC'ðD Ò&˜TŸY™YøðE'ôF $ŸMšMðG'ôH $ŸMšMðI'ñJ *ðK'ñL ðM'ˆAðP —‘œG×/Ñ/°Ó3ˆAØ—‘Ü×$Ñ$ØóˆAð
ØŸ)™)×3Ñ3°D¸$¿,¹,ÓG×G�ô "0Ü”\¤(Ñ+¨TÓ2ØØ#Ø /Ø /Ø$7Ø /Ø!Ø /Ø /Ø!1Ø-Ø)AØ—j‘jô"ˆBð"Ø×"Ñ"Ô$ð
 ˆIð[ /ùð` HùÜò Ø—
‘
”Ø—‘˜tÔ$Øðûô0 "ò Ø—‘”ØðüsR   ƒ$K§I;¨GKÈ)J  È+I>È,J  È08KÉ)J/ É9KÉ>J  Ê ,J,Ê,KÊ/K
Ë
K)r\  r>   )r?   )(rã   r¿   r  rk   r_   ra   rc   ro   rr   rt   re   rg   rh   rm   r�   rž   rw   rx   ry   rz   r|   r}   r¢   rƒ   r…   r†   rˆ   r£   r  r  r  r  r  r   r!  r"  r#  r$  r€   r*  s(   ``````````````````````````````````````` rZ   r’  zAsyncSession.ws_connect‡  s<   ÿÿÿÿþ€ ÷bP	÷ P	÷ P	÷ P	÷ P	ó P	ôd %¡]£_Ó5Ð5rY   r×   c%              ƒ  ó.	  ‡ ‡‡$‡.‡/‡0‡1‡2‡3‡4‡5‡6K  — ‰ j                  «       ƒ d {  –—† Š0d Š.|}%t        |t        «      rt        |‰0«      Š.t	        t
        ‰.«      }%	 t        d,i d‰0“d|“d|“d‰ j                  |g“d‰ j                  “d|“d|%“d|“d	‰ j                  |g“d
‰ j                  |g“d|	“d|
xs ‰ j                  “d|t        u r‰ j                  n|“d|€‰ j                  n|“d|€‰ j                  n|“d‰ j                   |g“d|“d|xs ‰ j"                  “d‰ j$                  |g“d|“d|“d|“d|xs ‰ j&                  “d|xs ‰ j(                  “d|xs ‰ j*                  “d|xs ‰ j,                  “d|xs ‰ j.                  “d|€‰ j0                  n|“d|“d|xs ‰ j2                  “d|xs ‰ j4                  “d |xs ‰ j6                  “d!|!“d"|"“d#|#“d$| xs ‰ j8                  “d%‰ j:                  “d&t<        j>                  “d't<        j@                  “Ž\  Š5Š/Š2Š4Š3}&‰.�‰.jG                  «        |!�r‰ jH                  jK                  ‰0«      Š6d(Š1d-ˆ.ˆ/ˆ0ˆˆ$ˆ2ˆ3ˆ4ˆ5ˆ ˆ6fd)„}'ˆ0ˆ1ˆ fd*„}(t=        jL                   |'«       «      })|)jO                  |(«       t	        t<        j@                  ‰3«      jQ                  «       ƒ d {  –—†  ‰ jS                  ‰0‰/‰2‰‰$«      }*tU        ‰4«      }+t        |+tV        «      r‰1s‰ jE                  ‰0«       d+Š1|+‚‰5|*_,        |)|*_-        |&|*_.        ‰4|*_/        ‰ j`                  r|*ja                  «        |*S 	 ‰ jH                  jK                  ‰0«      Š6‰6ƒ d {  –—†  ‰ jS                  ‰0‰/‰2‰‰$«      }*‰5|*_,        ‰ j`                  r|*ja                  «        |*‰.�‰.jc                  «       ƒ d {  –—†  ‰ jE                  ‰0«       S 7 �Œ¯# tB        $ r ‰ jE                  ‰0«       ‚ w xY w7 �Œ37 ŒŽ7 Œ=# td        $ r^},‰ jS                  ‰0‰/‰2‰‰$«      }*‰5|*_,        tg        |,jh                  tk        |,«      «      }- |-tk        |,«      |,jh                  |*«      |,‚d },~,ww xY w# ‰.�‰.jc                  «       ƒ d {  –—†7   ‰ jE                  ‰0«       w xY w­w).Nr+  r…  r¿   r—  ri   r“   r•   r—   r˜  r™  r˜   rc   ro   rr   rt   rš  rg   rh   r›  r�   rž   r    rw   rx   ry   rz   r|   r}   r¢   rƒ   r…   r†   r¨   r£   r¥   rˆ   r€   rœ  r�  Fc               “  óT  •K  — 	 ‰ƒ d {  –—†  ‰�‰j                  «       ƒ d {  –—†  t        t        j                  ‰	«      j                  «       s(t        t        j                  ‰	«      j                  «        ‰
j                  t        «      ƒ d {  –—†  y 7 ŒŒ# t         $ rq} ‰j                  ‰‰‰‰‰«      }‰|_        t        | j                  t        | «      «      }‰
j                   |t        | «      | j                  |«      «       Y d } ~ Œÿd } ~ ww xY w7 Œñ7 Œ†# ‰�‰j                  «       ƒ d {  –—†7   t        t        j                  ‰	«      j                  «       s(t        t        j                  ‰	«      j                  «        ‰
j                  t        «      ƒ d {  –—†7   w xY w­wr¬   )r    rK  rR  r*   r   rM   r¡  r~  r   rõ  r¢  r£  r  r¤  r1   )r¥  r/  r¦  Úasync_readerr,  r+  r   r‹   r-  r§  r¨  r©  rã   Útasks      €€€€€€€€€€€rZ   rŸ  z+AsyncSession._request_once.<locals>.perform³  sA  øè ø€ ð,Ø—J�Jð $Ð/Ø*×0Ñ0Ó2×2Ð2Ü¤§¡¨}Ó=×DÑDÔFÜœWŸ]™]¨MÓ:×>Ñ>Ô@ØŸ%™%¤
Ó+×+Ñ+ð ùÜ ò =Ø×.Ñ.Ø˜f mÐ5EÀó�Cð #&�C”KÜ& q§v¡v¬s°1«vÓ6�EØ—L‘L¡¤s¨1£v¨q¯v©v°sÓ!;×<Ñ<ûð=úð 3øð ,ùð	 $Ð/Ø*×0Ñ0Ó2×2Ñ2Ü¤§¡¨}Ó=×DÑDÔFÜœWŸ]™]¨MÓ:×>Ñ>Ô@ØŸ%™%¤
Ó+×+Ò+üs†   ƒF(…B ŠB‹B �F(¤D¥A,F(ÂDÂF(ÂB Â	DÂ"A'DÄ	D ÄDÄD ÄF(ÄF(ÄF%Ä0D3Ä1A-F%ÆF!ÆF%Æ%F(c                ó0   •— ‰s‰j                  ‰«       dŠy )NT)r  )Úfutr+  Úcurl_releasedrã   s    €€€rZ   Úcleanupz+AsyncSession._request_once.<locals>.cleanupÄ  s   ø€ á$Ø×%Ñ% dÔ+Ø $‘rY   TrX   rß  )6r  rÏ   r   r5   r   r4   r=   rk   ri   r_   ra   rc   r:   ro   rr   rt   re   rh   rm   rw   rx   ry   rz   r|   r}   rƒ   r…   r†   rˆ   r€   rõ  r«  r¢  ÚBaseExceptionr  Ústartrø  Ú
add_handleÚcreate_taskÚadd_done_callbackr­  rK  r7   r(   rR  Úastream_taskr°  rª  rŒ   r~  r    r*   r   rM   )7rã   r…  r¿   rk   r“   r•   r—   r_   ra   r˜   rc   ro   rr   rt   re   rg   rh   rm   r�   rž   r    rw   rx   ry   rz   r|   r}   r   r¢   rƒ   r…   r†   rˆ   r¨   r£   r¥   r‹   Úrequest_contentr°  rŸ  r2  r¯  r/  r¸  r¥  r¦  r-  r,  r+  r1  r-  r§  r¨  r©  r.  s7   `                          `        `         @@@@@@@@@rZ   r¹  zAsyncSession._request_onceL  s_  ÿûè ø€ ðN —]‘]“_×$ˆØ48ˆØ!ˆÜ�gœ}Ô-Ü/°¸Ó>ˆLÜ"Ô#5°|ÓDˆOð3	ÜEUò .FÙð.Fáð.Fñ ð.Fð "Ÿ[™[¨&Ñ1ð	.Fð
 Ÿšð.Fñ ð.Fñ (ð.Fñ ð.Fð #Ÿl™l¨GÑ4ð.Fð #Ÿl™l¨GÑ4ð.Fñ ð.Fð Ò&˜TŸY™Yøð.Fð )0´7Ñ(:˜ŸšÀøð.Fð -<Ð,C�D×(Ò(Èøð.Fð$ +8Ð*?�D×&Ò&À]øð%.Fð( #Ÿl™l¨GÑ4ð).Fñ* ð+.Fð, &Ò8¨¯©øð-.Fð. "Ÿ[™[¨&Ñ1ð/.Fñ0  ð1.Fñ2 !0ð3.Fñ4 "2ð5.Fð6 (Ò;¨4×+;Ñ+;øð7.Fð8 ’O˜4Ÿ8™8øð9.Fð: Ò, §¡øð;.Fð< Ò&˜TŸY™Yøð=.Fð> "Ò2 T§]¡]øð?.FðB -<Ð,C�D×(Ò(ÈøðC.FñF ðG.FðH *Ò>¨T×->Ñ->øðI.FðJ $Ò5 t§~¡~øðK.FðL  Ò/ 4§<¡<øðM.FñN ðO.FñP  .ðQ.FñR $ðS.FðT Ò&˜TŸY™YøðU.FðV "×.Ò.ðW.FôX $ŸMšMðY.FôZ $ŸMšMð[.FÑBˆC�˜¨¨=¸(ðf Ð#Ø×ÑÔ ÚØ—:‘:×(Ñ(¨Ó.ˆDØ!ˆM÷,÷ ,ö"%ô "×-Ñ-©g«iÓ8ˆKØ×)Ñ)¨'Ô2ä”w—}‘} mÓ4×9Ñ9Ó;×;Ð;ð ×&Ñ&Ø�f˜mÐ-=¸óˆCô ,¨AÓ.ˆMÜ˜-Ô)9Ô:Ù$Ø×%Ñ% dÔ+Ø $�Ø#Ð#àˆCŒKØ*ˆCÔØ#ˆCŒLØˆCŒIØ×$Ò$Ø×$Ñ$Ô&ØˆJð(Ø—z‘z×,Ñ,¨TÓ2�Ø—
�
ð ×*Ñ*Ø˜& -Ð1AÀ?ó�ð "�”Ø×(Ò(Ø×(Ñ(Ô*ØàÐ+Ø&×,Ñ,Ó.×.Ð.Ø×!Ñ! $Õ'ðQ %úôn ò 	Ø×Ñ˜dÔ#Øð	úðF <ùð6 øð$ /ùô# ò 8Ø×*Ñ*Ø˜& -Ð1AÀ?ó�ð "�”Ü" 1§6¡6¬3¨q«6Ó2�ÙœC ›F A§F¡F¨CÓ0°aÐ7ûð8ûð   Ð+Ø&×,Ñ,Ó.×.Ñ.Ø×!Ñ! $Õ'üs�   ŽR¢O£4RÁG	O È!BRË O3ËBRÍ O: Í'O6Í(O: Í,9Q$ Î%RÎ:O8Î;RÏO0Ï0RÏ6O: Ï8RÏ:	Q!ÐAQÑQ!Ñ!Q$ Ñ$RÑ:Q=Ñ;RÒRc%              ƒ  ót  K  — | j                  «        |�|n|}%t        ||«      }&| j                  }'t        |'j                  dz   «      D ]–  }(|(rt        |%|&«       	  | j                  d'i d|“d|“d|“d|“d|“d|“d	|“d
|“d|	“d|
“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d |“d!|“d"| “d#|!“d$|"“d%|#“d&|$“Žƒ d{  –—† c S  y7 Œ# t        $ rG |(|'j                  k(  r‚ | j                  |(dz   «      })|)rt        j                  |)«      ƒ d{  –—†7   Y Œëw xY w­w)(zISend the request, see ``curl_cffi.requests.request`` for details on args.Nr#   r…  r¿   rk   r“   r•   r—   r_   ra   r˜   rc   ro   rr   rt   re   rg   rh   rm   r�   rž   r    rw   rx   ry   rz   r|   r}   r   r¢   rƒ   r…   r†   rˆ   r¨   r£   r¥   r‹   rX   )rN  r6   ru   r  rÇ   r9   r¹  r(   rX  rõ  r¼  r½  s*                                             rZ   rR  zAsyncSession.requestý  s<  è ø€ ðV 	×"Ñ"Ô$à!Ð-‰w°4ˆÜ.¨t°WÓ=ˆØ—:‘:ˆÜ˜XŸ^™^¨aÑ/Ó0ò /	/ˆGÙÜ˜T =Ô1ð,/Ø/˜T×/Ñ/ò %Ù!ð%áð%ñ "ð%ñ ð	%ñ
 $ð%ñ ð%ñ $ð%ñ $ð%ñ  ð%ñ ð%ñ $ð%ñ %4ð%ñ #0ð%ñ $ð%ñ  ð%ñ   *ð!%ñ" "ð#%ñ$ $ð%%ñ& %4ð'%ñ( &6ð)%ñ* !,ð+%ñ, ð-%ñ. "ð/%ñ0 ð1%ñ2 &ð3%ñ4 %4ð5%ñ6 &6ð7%ñ8  ð9%ñ: ".ð;%ñ< (ð=%ñ> $ð?%ñ@ ðA%ñB "ðC%ñD $2ðE%ñF (ðG%ñH %4ðI%÷ %ò %ñ	/	/ð%ùôL $ò /Ø˜hŸn™nÒ,ØØ×)Ñ)¨'°A©+Ó6�ÙÜ!Ÿ-™-¨Ó.×.Ñ.ùð/üsJ   ‚AD8ÁA?C%ÃC#ÃC%ÃD8Ã#C%Ã%AD5Ä,D/Ä-D5Ä2D8Ä4D5Ä5D8c              ‹  óH   K  —  | j                   dd|dœ|¤Žƒ d {  –—† S 7 Œ­wrÁ  rÂ  rÃ  s      rZ   rÄ  zAsyncSession.head^  ó'   è ø€ Ø!�T—\‘\ÐC¨°SÑC¸FÑC×CÐCÐCúó   ‚"› œ"c              ‹  óH   K  —  | j                   dd|dœ|¤Žƒ d {  –—† S 7 Œ­wrÇ  rÂ  rÃ  s      rZ   râ   zAsyncSession.geta  ó'   è ø€ Ø!�T—\‘\ÐB¨°CÑB¸6ÑB×BÐBÐBúr=  c              ‹  óH   K  —  | j                   dd|dœ|¤Žƒ d {  –—† S 7 Œ­wrÊ  rÂ  rÃ  s      rZ   rË  zAsyncSession.postd  r<  r=  c              ‹  óH   K  —  | j                   dd|dœ|¤Žƒ d {  –—† S 7 Œ­wrÍ  rÂ  rÃ  s      rZ   r¤  zAsyncSession.putg  r?  r=  c              ‹  óH   K  —  | j                   dd|dœ|¤Žƒ d {  –—† S 7 Œ­wrÏ  rÂ  rÃ  s      rZ   rÐ  zAsyncSession.patchj  ó'   è ø€ Ø!�T—\‘\ÐD¨°cÑD¸VÑD×DÐDÐDúr=  c              ‹  óH   K  —  | j                   dd|dœ|¤Žƒ d {  –—† S 7 Œ­wrÓ  rÂ  rÃ  s      rZ   rÔ  zAsyncSession.deletem  s'   è ø€ Ø!�T—\‘\ÐE¨°sÑE¸fÑE×EÐEÐEúr=  c              ‹  óH   K  —  | j                   dd|dœ|¤Žƒ d {  –—† S 7 Œ­wrÖ  rÂ  rÃ  s      rZ   r×  zAsyncSession.optionsp  s'   è ø€ Ø!�T—\‘\ÐF¨¸ÑF¸vÑF×FÐFÐFúr=  c              ‹  óH   K  —  | j                   dd|dœ|¤Žƒ d {  –—† S 7 Œ­wrÙ  rÂ  rÃ  s      rZ   rÚ  zAsyncSession.traces  rC  r=  c              ‹  óH   K  —  | j                   dd|dœ|¤Žƒ d {  –—† S 7 Œ­wrÜ  rÂ  rÃ  s      rZ   rÝ  zAsyncSession.queryv  rC  r=  )
rë  z asyncio.AbstractEventLoop | Nonerì  zAsyncCurl | Nonerí  rs   r®   rÞ  r\  r^  )r\  zasyncio.AbstractEventLoop)r\  r   )r\  r   )r+  zCurl | Noner\  r^  rß  )r\  z	list[int])r+  r   r\  r^  )r…  rà  r¿   rM   r®   rá  r\  zAsyncGenerator[R, None, None])Nr¿   rM   r  rl   rk   z<dict[str, object] | list[object] | tuple[object, ...] | Noner_   zHeaderTypes | Nonera   zCookieTypes | Nonerc   útuple[str, str] | Nonero   z/float | tuple[float, float] | NotSetType | Nonerr   zbool | CurlFollow | str | Nonert   z
int | Nonere   zProxySpec | Nonerg   ú
str | Nonerh   rH  rm   úbool | Noner�   rI  rž   rI  rw   z-BrowserTypeLiteral | str | Fingerprint | Nonerx   rI  ry   rI  rz   rI  r|   z&ExtraFingerprints | ExtraFpDict | Noner}   rJ  r¢   zstr | Literal[False]rƒ   rã  r…   rI  r†   rI  rˆ   zstr | tuple[str, str] | Noner£   rs   r  rs   r  rs   r  rs   r  rl   r  zWebSocketRetryStrategy | Noner   rÉ   r!  rÉ   r"  rs   r#  rl   r$  rl   r€   zdict[CurlOpt, str] | Noner\  r?   )Jr…  rà  r¿   rM   rk   r‘   r“   r’   r•   r”   r—   r–   r_   r^   ra   r`   r˜   rj   rc   rb   ro   r™   rr   rš   rt   r›   re   rd   rg   rf   rh   rb   rm   rœ   r�   rf   rž   rf   r    rŸ   rw   rv   rx   rf   ry   rf   rz   rf   r|   r{   r}   rœ   r   r~   r¢   r¡   rƒ   r‚   r…   rf   r†   rf   rˆ   r‡   r¨   rœ   r£   rs   r¥   r¤   r‹   rl   r\  rE   )Jr…  rà  r¿   rM   rk   zSOptional[Union[dict[str, str], list[tuple[str, str]], tuple[tuple[str, str], ...]]]r“   r’   r•   r”   r—   z*Optional[Union[dict[str, Any], list[Any]]]r_   r^   ra   r`   r˜   zOptional[dict[str, Any]]rc   rb   ro   r™   rr   rš   rt   r›   re   rd   rg   rf   rh   rb   rm   rœ   r�   rf   rž   rf   r    zOptional[Callable[..., Any]]rw   rä  rx   rf   ry   rf   rz   rf   r|   r{   r}   rœ   r   r~   r¢   r¡   rƒ   r‚   r…   rf   r†   rf   rˆ   r‡   r¨   rœ   r£   rs   r¥   r¤   r‹   rl   r\  rE   rå  ) rT   rU   rV   r_  rä   r`  rë  rø  ró  r  r  r  r  r~  r”  r  r	   r¨   r:   r’  r¹  rR  rÄ  râ   rË  r¤  rÐ  rÔ  r×  rÚ  rÝ  ræ  rç  s   @rZ   ré  ré  Í  s}  ø„ ÙKð
 26Ø'+ØñMð /ðMð %ð	Mð
 ðMð /ðMð 
õMð^ òó ðð òó ðò
óó'òóóó%ó<ð ðàðð ðð .ð	ð
 
'òó ðð  ØOSØ&*Ø&*Ø'+ØCJØ:>Ø$(Ø$(Ø Ø-1Ø"Ø"Ø&9ØEIØØ!ØØ;?Ø'+Ø&(ØDHØ $Ø"Ø-1ØØ"Ø"Ø#%Ø %Ø26Ø!%Ø!&Ø /Ø$Ø)-Ø26ðOC6àðC6ð ðC6ð Mð	C6ð
 $ðC6ð $ðC6ð %ðC6ð AðC6ð 8ðC6ð "ðC6ð "ðC6ð ðC6ð +ðC6ð ðC6ð ðC6ð  $ð!C6ð" Cð#C6ð$ ð%C6ð& ð'C6ð( ð)C6ð* 9ð+C6ð, %ð-C6ð. $ð/C6ð0 Bð1C6ð2 ð3C6ð4 ð5C6ð6 +ð7C6ð8 ð9C6ð: ð;C6ð< ð=C6ð> !ð?C6ð@ ðAC6ðB 0ðCC6ðD ðEC6ðF ðGC6ðH ðIC6ðJ ðKC6ðL #'ðMC6ðN 0ðOC6ðP 
óQC6ðR 6:Ø&*Ø,0Ø&*Ø)-Ø)-Ø $Ø*.ØGNØBFØ'+Ø'+Ø#Ø04Ø!%Ø!%Ø)<Ø/3ØMQØ!Ø $Ø"ØDHØ*.Ø?FØ,.ØMQØ#'Ø!%Ø6:Ø!%ØØ(,Ø %ðKo(àðo(ð ðo(ð 3ð	o(ð
 $ðo(ð *ðo(ð $ðo(ð 'ðo(ð 'ðo(ð ðo(ð (ðo(ð Eðo(ð @ðo(ð %ðo(ð %ðo(ð  ð!o(ð" .ð#o(ð$ ð%o(ð& ð'o(ð( 'ð)o(ð* -ð+o(ð, Kð-o(ð. ð/o(ð0 ð1o(ð2 ð3o(ð4 Bð5o(ð6 (ð7o(ð8 =ð9o(ð: *ð;o(ð< Kð=o(ð> !ð?o(ð@ ðAo(ðB 4ðCo(ðD ðEo(ðF ðGo(ðH &ðIo(ðJ ðKo(ðL 
óMo(ðn Ø&*Ø,0Ø;?Ø)-Ø)-Ø*.Ø*.ØGNØBFØ'+Ø'+Ø#Ø04Ø!%Ø!%Ø)<Ø9=ØHLØ!Ø $Ø"ØDHØ*.Ø?FØ,.ØMQØ#'Ø!%Ø6:Ø!%ØØ(,Ø %ðO_/àð_/ð ð_/ð
ð	_/ð $ð_/ð *ð_/ð 9ð_/ð 'ð_/ð 'ð_/ð (ð_/ð (ð_/ð Eð_/ð @ð_/ð  %ð!_/ð" %ð#_/ð$ ð%_/ð& .ð'_/ð( ð)_/ð* ð+_/ð, 'ð-_/ð. 7ð/_/ð0 Fð1_/ð2 ð3_/ð4 ð5_/ð6 ð7_/ð8 Bð9_/ð: (ð;_/ð< =ð=_/ð> *ð?_/ð@ KðA_/ðB !ðC_/ðD ðE_/ðF 4ðG_/ðH ðI_/ðJ ðK_/ðL &ðM_/ðN ðO_/ðP 
óQ_/óBDóCóDóCóEóFóGóE÷ErY   ré  )r¿   rM   r\  rl   )ru   r[  r\  rÆ   )sÚ
__future__r   rõ  Úhttp.cookiesrO   rà   rª  rU  Úsysrk  r»  ru  Úcollections.abcr   r   r   r   Úconcurrent.futuresr   Ú
contextlibr	   r
   r   Údataclassesr   Údatetimer   Úior   Útypingr   r   r   r   r   r   r   r   r   Úurllib.parser   Úaior   Úconstr   r   r   r   r+  r   r    r!   Úutilsr"   rŽ   r$   r%   ra   r&   r'   Ú
exceptionsr(   r)   r*   r_   r+   r,   rw   r-   r.   r/   Úmodelsr0   Ústreamsr1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   Ú
websocketsr>   r?   r@   rA   rB   Úversion_inforE   rI   Útyping_extensionsÚfingerprintsrJ   rL   r]   r�   r§   rª   ÚdictrM   Ú
ThreadTyperà  rÁ   rÌ   rÆ   rÓ   rÕ   rc  ré  rX   rY   rZ   ú<module>rb     sá  ðÝ "ã Û Û 	Û Û Û 
Û Û Û ÷ó õ 2ß DÑ DÝ !Ý Ý ÷
÷ 
õ 
õ "å ß BÓ Bß ,Ñ ,Ý #ß 5ß )÷ñ ÷
 *ß KÑ KÝ ÷
÷ 
õ 
÷ MÓ L÷õ ð ×Ñ�wÒÙ�˜8¨XÔ6�Aá�˜8Ô$€AáØ
×Ñ˜7Ò"Þ!å,å*ô�I Uõ ô #˜G A™J¨	¸õ  #ôD!˜i¨uõ !ôFÐ+°5ö ÷
ñ ñ
 ‹Y€Fà�S˜#�X‘€IØ!ÐØ)2°IÐ&Ð˜àÐ)Ñ*€
ØØPñ€
ó
;ð Ð.Ñ/€ð ÷%ð %ó ð%óô(C)�'˜!‘*ô C)ôLi?ˆk˜!‰nô i?ôXj
E�;˜q‘>õ j
ErY   