bg58UdZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z m Z ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z ddl!Z!ddl"m#Z#m$Z$m%Z%m&Z&ddl'm(Z(dd l)m*Z*m+Z+m,Z,dd l-m.Z.dd l/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>m?Z?m@Z@mAZAmBZBdd lCmDZDmEZEmFZFmGZGmHZHdd lImJZJddlKmLZLmMZMmNZNmOZOddlPmQZQddlRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\ddl+m]Z]m^Z^m_Z_m`Z`ddlambZbmcZcmdZdmeZeddlfmgZgddlhmiZimjZjddlkmlZlmmZmmnZnmoZodZperddlqmrZrndZre!jsdddGddZtetdZueetevd<edZweeEexgeyfZzGd d!Z{Gd"d#eeeewfeewZ|Gd$d%e|eEZ}Gd&d'e|eJZ~Gd(d)Zdddddddd*ddd+dddde[de+jdddd,d,d-d.eyd/eod0eeeyeyfd1ed2ed3eend4eeeyd5eeUd6ed7ed8eeyd9eed:ed;eedeeUd?e etefd@eemdAe^dBeeLdCeedDeejdEedFedGef4dHZdS)IzHTTP Client for asyncio.N)suppress)SimpleNamespace TracebackType) TYPE_CHECKINGAny AwaitableCallable CoroutineFinal FrozenSet GeneratorGenericIterableListMappingOptionalSetTupleTypeTypeVarUnion) CIMultiDict MultiDictMultiDictProxyistr)URL)hdrshttppayload)AbstractCookieJar)ClientConnectionErrorClientConnectorCertificateErrorClientConnectorErrorClientConnectorSSLError ClientErrorClientHttpProxyError ClientOSErrorClientPayloadErrorClientProxyConnectionErrorClientResponseErrorClientSSLErrorContentTypeError InvalidURLServerConnectionErrorServerDisconnectedErrorServerFingerprintMismatchServerTimeoutErrorTooManyRedirectsWSServerHandshakeError) ClientRequestClientResponse Fingerprint RequestInfo_merge_ssl_params)ClientWebSocketResponse) BaseConnectorNamedPipeConnector TCPConnector UnixConnector) CookieJar) _SENTINELDEBUG BasicAuth TimeoutHandle ceil_timeoutget_env_proxy_for_urlget_running_loopmethod_must_be_empty_bodysentinelstrip_auth_from_url)WS_KEY HttpVersionWebSocketReaderWebSocketWriter)WSHandshakeError WSMessage ws_ext_gen ws_ext_parse)FlowControlDataQueue)Trace TraceConfig) JSONEncoder LooseCookies LooseHeadersStrOrURL)r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r;r=r>r<r: ClientSession ClientTimeoutrequest) SSLContextT) auto_attribsfrozenslotsceZdZUdZeeed<dZeeed<dZeeed<dZ eeed<dZ eed<dS)rZNtotalconnect sock_read sock_connectceil_threshold) __name__ __module__ __qualname__rarfloat__annotations__rbrcrdrfE/opt/cloudlinux/venv/lib64/python3.11/site-packages/aiohttp/client.pyrZrZsr!E8E?!!!#GXe_###!%Ix%%%$(L(5/(((NErmrZi,raDEFAULT_TIMEOUT_RetTypec?p eZdZUdZegdZdZeej e d<dZ ee e d< ddddddde jeeeejdddededddddd d d d d eed ee deejdeedeedeeedeededeedeedeededee de!de"e!e#ege$dffde"e%e&fdee%de"e'e(fde!de!d e!d!ee)e*d"e+d#e+d$e+d%e,d&df6d'Z-d(edd&dfd)Z.e/r d*ed+e0d&dffd, Z1e2fd-e0d&dfd.Z3d/ed0ed1e0d&d2fd3Z4d4ed&e5fd5Z6ddddddddd6dddddddedddddddddddd7d/ed4ed8ee7eefd9e0d:e0deedeedeeedeed;e!dee!d?e!de"de!e#ege$dffd@e!dAeedBeede"e(e&fdCee!dDee8dEee9dFe"e9e!e:fdGeedHeedIee;d"ee+dee!d#ee+d$ee+d&ef>dJZdKdLddddddddddddddddMdNdOd0ed/edPeede%dQee%dRe!dSe!dTee%deedUeed8ee7eefdeedAeedBeedFe"e9e!de:fdCee!dDee8dEee9dHeed=e+dVe+d&dWf,dXZ?e=j>dKdLddddddddddddddddMdNdOd0ed/edPeede%dQee%dRe!dSe!dTee%deedUeed8ee7eefdeedAeedBeedFee"e9e!e:fdCee!dDee8dEee9dHeed=e+dVe+d&ef,dYZ@deed&dZfd[ZAdd\d0ed;e!d1e0d&d2fd]ZBdd\d0ed;e!d1e0d&d2fd^ZCdd\d0ed;e!d1e0d&d2fd_ZDdd`d0ed9e0d1e0d&d2fdaZEdd`d0ed9e0d1e0d&d2fdbZFdd`d0ed9e0d1e0d&d2fdcZGd0ed1e0d&d2fddZHddeZIeJd&e!fdfZKeJd&ee fdgZLeJd&e fdhZMeJd&eNe+e+ffdiZOeJd&e!fdjZPePjQd+e!d&dfdkZPeJd&ejfdlZReJd&e(fdmZSeJddnZTeJd&eUeVfdoZWeJd&eefdpZXeJd&efdqZYeJd&e!fdrZZeJd&e"e!e#ege$dfffdsZ[eJd&e!fdtZ\eJd&e!fduZ]eJd&e)e*fdvZ^ddwZ_ddxZ`dyeeeadzeead{eebd&dfd|Zcdd}Zddyeeeadzeead{eebd&dfd~ZexZfS)rYz/First-class interface for making HTTP requests.) _base_url_source_traceback _connectorrequote_redirect_url_loop _cookie_jar_connector_owner _default_auth_version_json_serialize_requote_redirect_url_timeout_raise_for_status_auto_decompress _trust_env_default_headers_skip_auto_headers_request_class_response_class_ws_response_class_trace_configs _read_bufsize_max_line_size_max_field_size_resolve_charsetNrtruTFcdS)Nzutf-8rl)rbs rnzClientSession.s7rm) connectorloopcookiesheadersskip_auto_headersauthjson_serialize request_classresponse_classws_response_classversion cookie_jarconnector_ownerraise_for_status read_timeout conn_timeouttimeoutauto_decompress trust_envrv trace_configs read_bufsize max_line_sizemax_field_sizefallback_charset_resolverbase_urlrrrrrrrrrrrrrrrrrrrrvrrrrrreturnc&| ||j}t|}|t|tr||_n@t||_|j|jks Jd|t |}|j|urtd||_|r+tj tj d|_ | t|} | |_||j|||_||_||_| |_||_|t,us|t.|_|t,urz)ClientSession.__init__..Ds(/S/SAQ/S/S/S/S/S/Srm)2rwrF isinstancerrsoriginr= RuntimeError get_debug traceback extract_stacksys _getframertr?rxupdate_cookiesruryrzr{r|rHrpr~warningswarnDeprecationWarningattrevolverZ ValueErrortyperrrr}rrrrr frozensetrrrrrfreezer)selfrrrrrrrrrrrrrrrrrrrrrvrrrrr real_headers trace_configs rn__init__zClientSession.__init__sc@ <$ %%  z(C88 ,4DNN ]]DN%%''4>999C:99  $$///I ?$ & &QRR R >>   O%.%d7mm>>>$DM8++ # ' & "2 /#%9")+-  )-8-A-ALL&==L2>  (&//S/SAR/S/S/S&S&SD # #&/kkD #+-"3+1r / " "L    ! ! ! ! 9rmclscntjd|jtddS)Nz6Inheritance class {} from ClientSession is discouragedrr)rrformatrgr)rs rn__init_subclass__zClientSession.__init_subclass__Rs?  #VCL11        rmnamevalc||jvr/tjd|tdt ||dS)Nz8Setting custom ClientSession.{} attribute is discouragedrr)ATTRSrrrrsuper __setattr__)rrr __class__s rnrzClientSession.__setattr__\sa4:%% %%+VD\\&  GG  c * * * * *rm _warningsc|jsMd|i}|jd|tfi||dd}|j |j|d<|j|dSdS)NsourcezUnclosed client session zUnclosed client session)client_sessionmessagesource_traceback)closedrResourceWarningrtrwcall_exception_handler)rrkwargscontexts rn__del__zClientSession.__del__fs{ 7%F IN3433_  HN   *.:STTG%1.2.D*+ J - -g 6 6 6 6 6 7 7rmmethodurlr_RequestContextManagerc :t|j||fi|S)zPerform HTTP request.)r_request)rrrrs rnr[zClientSession.requestqs(&mdmFC&J&J6&J&JKKKrm str_or_urlct|}|j|S|s|jdsJ|j|S)N/)rrs is_absolutepath startswithjoin)rrrs rn _build_urlzClientSession._build_urlws[*oo > !J(( ESX-@-@-E-E E EE>&&s++ +rm )paramsdatajsonrrrrallow_redirects max_redirectscompresschunked expect100rread_until_eofproxy proxy_authr verify_ssl fingerprint ssl_contextsslserver_hostname proxy_headerstrace_request_ctxrrrrrrrrrrrrrrrrrrrrrrcKjrtdt||||}||td|t j|j}t| ts| tj dtd}g} j }!|pi} |} |} |}"n"#t$r}#t||#d}#~#wwxYwt!j}$|'|D]$}%|$t'|%%|3 t)|}n"#t$r}#t||#d}#~#wwxYw|t*urj}&n(t|t.st/|}&n|}&t1j|&j|&j}'|'}(|j}|j}|j}|j }fdj!D})|)D]2}*|*"||"#||d{V3|'$}+ |+5 tK|"\}"},| r|,rtd | |,} | j&} || tNj(|vrtd j)*|"}-|OtW}.|.,||.*|"}/|/r|--|/|t)|}nEj.r>t_t`5tc|"\}}dddn #1swxYwY2||"|||$||-| |!| | |jj3|||+||nd |||)j4 }0 tk|&j6|&j4d{Vj7Jj76|0|)|& d{V}1dddd{Vn#1d{VswxYwYn:#tpj9$r(}2tud;|"|2d}2~2wwxYw|1j<J|1j=J|1j=>|+t||||&j@|j7jA||  |0B|1d{V}3 |3|1d{Vn##t$r|3DwxYwn##t$r|1DwxYwnM#t$rt$r6}2|2jGt|2tpj9rt|2jI|2d}2~2wwxYwj),|3jJ|3jK|3jLdvrf| rc|)D]3}*|*M||"#|||3d{V4|dz }| N|3| rB|| kr<|3Dt| djPt| |3jLdkr|3jRtNjSks|3jLdvra|3jRtNjTkrLtNjU}d}|VtNjWr|XtNjW|3jYVtNjZp#|3jYVtNj[}4|4n|3\ t)|4j] }5n"#t$r}#t|4|#d}#~#wwxYw|5j^}6|6dvr#|3Dtd|6s|"_|5}5|"`|5`kr"d} |XtNj(d|5}"i}|3\ dddn #1swxYwY|ja}|n7t|r||3d{Vn|r|3c|(;|3jd |3jde|(jfn|(ft| |3_g|)D]3}*|*h||"#|||3d{V4|3S#t$rh}#|'D|(r|(fd}(|)D]3}*|*i||"#|||#d{V4d}#~#wwxYw)NzSession is closedz9data and json parameters can not be used at the same time)dumpszChunk size is deprecated #1615rro)rfc Zg|]'}t||(S))r)rStrace_config_ctx)rrrrs rn z*ClientSession._request..sP    --@Q-RR     rmTz>>&4&C&CC&H&H &:',,[999( #E K%k22KK0Ec0J0J-E:KKKKKKKKKKKKKKK--% '*6! +! '!) '"+!Z'+';##-# $#&?CC(7&3%"&./.C6 ##/(0+7+F$$$$(?#>#>#>)-)@)@ #FL*A**$$$$$$D #/###0>EEcJJ"##  >555=444M55#%>v%F%F'5(7%1%;%1/3/V&3'56   @ "),$#7#7#7#7#7#7D&&*jj&6&6 6 6 6 6 6 6 6 6#0&&& $ %&!7 -""" JJLLL!" !7'"@@@9,CAU1V1V,!+SX6C?@ $33DL$(KKK{&???O?%+E"'"="= &(8(8(@(@'4##"Q t,,,(Y--G-G JJLLL"2 ' 7w## !K3..4;$.3P3P K:55$+:W:W%)]F#'D&{{4+>??A ' D,? @ @ @ $ 0 0 ? ?!4>> JJLLL",-Q"R"RR!'>),*)=)=J::<<:+<+<+>+>>>#'D#KK(:DAAA(!#  er r r r r r r r r r r r r r r j '#'#9 '*++ (&&t,,,,,,,,,,! (%%'''!?.O00????MMOOO!'NNDM  ,,C,,V44gtK    HHJJJ    22C,,V44gq  sQC C=(C88C=E E/E**E/"d$C-`)M0$ `)0M4 4`)7M4 8A`);!P--P P- P% %P-(P% )P-,`)-Q$<#QQ$$A`):TS21T2 TTT: T66T:9`):V1U??VF2`)7]`) ].]))]..B/`) d)`--d0`-1Cd e2 A#e--e2rlg$@ri@r protocolsrreceive_timeout autocloseautoping heartbeatrrrrrrrrrrrr max_msg_sizerTrUrVrWrXrrY_WSRequestContextManagercpt|||||||||| | | | | ||||||||S)zInitiate websocket connection.rS)rZ _ws_connect)rrrrTrrUrVrWrXrrrrrrrrrrrrrYs rn ws_connectzClientSession.ws_connectsm4(   # /#!#%%''+!)+      rmc K| t}nt| }tjdtjdtjdi}|D]\}}|||tjtj d}| |tj <|r"d ||tj<| | |tj<|rt!|}||tj<|d}t%||||}|||| |d| | ||| d{V} |jd kr(t+|j|jd |j|j |jtjd dkr(t+|j|jd|j|j |jtjd dkr(t+|j|jd|j|j |jtjd }tjt9j|t<z }||kr(t+|j|jd|j|j d}|rTtj|jvrAd|jtj dD} | D] }!|!|vr|!}n d}"|r|jtj}#|#rZ tC|#\}}"nJ#tD$r9}$t+|j|j|$j#d|j|j |$d}$~$wwxYwd}d}"|j$}%|%J|%j%}&|&J|%j&}'|'JtO|&d|j(}(|&)tU|(||(tW|&|'d||"})|,|(|)||||||j(||||" S#tZ$r|.wxYw)N websocketUpgrade13,)rTF)rrrrrrrrezInvalid response status)rr+rrzInvalid upgrade headerupgradezInvalid connection headerzInvalid challenge responsec6g|]}|Srl)strip)rprotos rnrz-ClientSession._ws_connect..ys0"""KKMM"""rmrrr)use_maskr notakeover)rUrXrclient_notakeover)/rrUPGRADE CONNECTIONSEC_WEBSOCKET_VERSIONitems setdefaultbase64 b64encodeosurandomdecodeSEC_WEBSOCKET_KEYrSEC_WEBSOCKET_PROTOCOLORIGINrPSEC_WEBSOCKET_EXTENSIONSr9r[r+r4r.rBrr3lowerSEC_WEBSOCKET_ACCEPThashlibsha1rJdigestsplitrQrNr*r;r"r!rRrw set_parserrLrMrr&r')*rrrrTrrUrVrWrXrrrrrrrrrrrrrYrdefault_headerskeyvaluesec_keyextstrrPr_keymatchr"resp_protocolsrhrj compress_hdrsrOrN conn_protor!readerwriters* rnr\zClientSession._ws_connects;4 ?-8]]LL&w//L L+ OY  &  *//11 0 0JC  # #C / / / /"2:b>>22/6~~/?/? T+,  L8;8K8KL4 5  (.L %  A222F:@L6 7 ;CZkJJ\\    !'"         k {c!!,%L5; L | b117799[HH,%L4; L |44::<< II,%L7; L L$$T%>CCE$W\'F2B%C%C%J%J%L%LMMTTVVE~~,%L8; L H T8DLHH""!%d.I!J!P!PQT!U!U""" ,E ))#(* J ' $ 0 01N O O  ' #/;M/J/J,**+###4 - L$'HQK#';$(L  # ## !H!&J?D###J)))I(((6JE 777F  ! !/&,"G"G P P P$!% F** /#!",+        JJLLL  s2H Q&3NQ& O 4OO  A7Q&& RCIMultiDict[str]cBt|j}|rt|ttfst|}t }|D]:\}}||vr||| |||<||;|S)z3Add default headers and transform it to CIMultiDict)rrrrrrror)rrresult added_namesrrs rnrzClientSession._prepare_headerssT233  )g 'BCC /%g..$'EEK%mmoo ) ) U+%%JJsE****"'F3KOOC(((( rm)rc Rt|jtj|fd|i|S)zPerform HTTP GET request.r)rrrr2rrrrs rnr3zClientSession.gets7& DM$- X Xo XQW X X   rmc Rt|jtj|fd|i|S)zPerform HTTP OPTIONS request.r)rrr METH_OPTIONSrs rnoptionszClientSession.optionssD& DM!3  8G KQ     rmc Rt|jtj|fd|i|S)zPerform HTTP HEAD request.r)rrrr0rs rnheadzClientSession.headsC& DM  5D HN     rm)rc Rt|jtj|fd|i|S)zPerform HTTP POST request.r)rrrr1rrrrs rnpostzClientSession.posts6& DM$.# C CD CF C C   rmc Rt|jtj|fd|i|S)zPerform HTTP PUT request.r)rrrMETH_PUTrs rnputzClientSession.puts6& DM$- B B4 B6 B B   rmc Rt|jtj|fd|i|S)zPerform HTTP PATCH request.r)rrr METH_PATCHrs rnpatchzClientSession.patchs6& DM$/3 D DT DV D D   rmc Nt|jtj|fi|S)zPerform HTTP DELETE request.)rrr METH_DELETE)rrrs rndeletezClientSession.deletes)%mdmD4Dc&T&TV&T&TUUUrmcK|js6|j&|jr|jd{Vd|_dSdS)zMClose underlying connector. Release all acquired resources. N)rruryr'rs rnr'zClientSession.closes] { #*t/D*o++---------"DOOO # #rmc,|jdup |jjS)z@Is client session closed. A readonly property. N)rurrs rnrzClientSession.closed s $&@$/*@@rmc|jS)z(Connector instance used for the session.rurs rnrzClientSession.connectors rmc|jS)zThe session cookies.)rxrs rnrzClientSession.cookie_jars rmc|jS)z"The session HTTP protocol version.)r{rs rnrzClientSession.version }rmc|jS))Do URL requoting on redirection handling.)r}rs rnrvz"ClientSession.requote_redirect_url#s ))rmcLtjdtd||_dS)rz=session.requote_redirect_url modification is deprecated #2778rrN)rrrr})rrs rnrvz"ClientSession.requote_redirect_url(s6  N     &)"""rmcHtjdtd|jS)zSession's loop.z"client.loop property is deprecatedrr)rrrrwrs rnrzClientSession.loop2s0  02DQR    zrmc|jS)zTimeout for the session.)r~rs rnrzClientSession.timeout:rrmc|jS)z*The default headers of the client session.)rrs rnrzClientSession.headers? $$rmc|jS)z2Headers for which autogeneration should be skipped)rrs rnrzClientSession.skip_auto_headersDs &&rmc|jS)z2An object that represents HTTP Basic Authorization)rzrs rnrzClientSession.authIs !!rmc|jS)zJson serializer callable)r|rs rnrzClientSession.json_serializeNs ##rmc|jS)z-Should connector be closed on session closing)ryrs rnrzClientSession.connector_ownerSrrmc|jS)zGShould `ClientResponse.raise_for_status()` be called for each response.)rrs rnrzClientSession.raise_for_statusXs %%rmc|jS)z7Should the body response be automatically decompressed.)rrs rnrzClientSession.auto_decompress_rrmc|jS)z Should proxies information from environment or netrc be trusted. Information is from HTTP_PROXY / HTTPS_PROXY environment variables or ~/.netrc file if present. )rrs rnrzClientSession.trust_envds rmc|jS)z7A list of TraceConfig instances used for client tracing)rrs rnrzClientSession.trace_configsns ""rmcd|_dS)zwDetach connector from session without closing the former. Session is switched to closed state anyway. Nrrs rndetachzClientSession.detachss rmc td)NzUse async with instead) TypeErrorrs rn __enter__zClientSession.__enter__zs0111rmexc_typeexc_valexc_tbcdSrrlrrrrs rn__exit__zClientSession.__exit__}s  rmc K|Srrlrs rn __aenter__zClientSession.__aenter__s  rmc>K|d{VdSr)r'rs rn __aexit__zClientSession.__aexit__s. jjllrmrrN)rr)rrY)grgrhri__doc__rrrtrr StackSummaryrkrur;rrr5r6r:r HttpVersion11rHrXrAbstractEventLooprVrWrstrrBrUrrKr!rrr rrjr@objectrZrrTint_CharsetResolverrrrArrrrr[rrrbytesr\r7rrrr2r]r\rr3rrrrrrr'propertyrrrrrrvsetterrrrr rrrrrrrrrrrr&rrrr __classcell__)rs@rnrYrYs99 I     E<;?x 67>>>*.J'...(,C:.248*.*.59$(&*j-:/=;R#126 $ 08(,08 $%)59!!"6J6J=C:C:C:8$C:M* C: w01 C: ,' C:,'C:$HSM2C:y!C:$C:M*C:^,C: 78C:C:./C: !C:" (N+Yt_<= = #C:(E9,-)C:*uo+C:,v},--C:./C:01C:2#3C:4 [ 125C:67C:89C::;C:<$4=C:> ?C:C:C:C:J tO4      + +C +c +d + + + + + +(0 7 7 7D 7 7 7 7LL (L47L !LLLL ,X,#,,,,/3*.*.59$( $"&"& #$(*.3;%)'+,048)-047;&**.'+(,ERRRRR c*+ R  RR,'R,'R$HSM2Ry!RRR3-R$R !R" $.!19T?!BC C #R()R*!+R,Y'-R.}i/0/R0TN1R2e_3R4j)5R6:t[0 17R8"#9R: -;R<$O4=R>sm?R@"$ARB }CRD! ERF GRRRRp m#%+/%)$( $.2*.$(*.:>%)'+,004+/2 2 2 2  2 C= 2  2 "%2 2 2 E?2 y!2  2 c*+2 ,'2 !2 Y'!2 ":tT;6 7#2 $TN%2 &e_'2 (j))2 * -+2 ,-2 ./2 0 $12 2 2 2 pm#%+/%)$( $.2*.$(*.>B%)'+,004+/qqq q q C= q  q"%qqqE?qy!q qc*+q,'q!q Y'!q"eJk9: ;#q$TN%q&e_'q(j))q* -+q,-q./q0 !1qqqqf(>CU"9=    15 HK !    9=    15 HK !    9>    15 IL !    -1    &) >> import aiohttp >>> resp = await aiohttp.request('GET', 'http://python.org/') >>> resp >>> data = await resp.read() FNT)r force_close)rrrrrr)rrrrrrrrrrrrrrrrrr)r=rYrr)rrrrrrrrrrrrrrrrrrrrrrrrrrr s rnr[r[s@O d===  ' G )  /+'-)!%'))   , /  rm)rrrqr|rrsrrr contextlibrtypesrrtypingrrrr r r r r rrrrrrrrrrr multidictrrrryarlrrrrr abcr!client_exceptionsr"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4 client_reqrepr5r6r7r8r9 client_wsr:rr;r<r=r> cookiejarr?helpersr@rArBrCrDrErFrGrHrIrJrKrLrMhttp_websocketrNrOrPrQstreamsrRtracingrSrTtypedefsrUrVrWrX__all__rr\srZrprkrqrrrrYrrrZrrrrrrr[rlrmrnr s  00000000* BBBBBBBBBBBB!!!!!!!!!!""""""*JIIIII !                         HGGGGGGGGGGGQQQQQQQQQQQQ))))))''''''''GGGGGGGGGGGG% PJT$d33343,)6 F(C(C(C}%CCC 7:  ^U3S89ffffffffR3X+=!>@Q8*****7G***$ ! ! ! ! !9:QR ! ! !$$$$$$$$J+/&*15 $ ""'+ $&*,4&*-)-"&045fff f f WS#X& ' f  f  fl #f  .f 9 fffsmfd^fftnf !f" H #f$#%f&=&( )'f(l #)f*+f, &-f.3-/f0 7, -1f23f45f6#7ffffffrm