Files
pyGoEdge-UserPanel/.venv/Lib/site-packages/dns/__pycache__/asyncresolver.cpython-312.pyc

226 lines
21 KiB
Plaintext
Raw Normal View History

2025-11-18 03:36:49 +08:00
<EFBFBD>
g<> i@E<00><00>r<00>dZddlZddlZddlmZmZmZddlZddl Zddl
Zddl Zddl Zddl ZddlZddlZddlZddlZddlZddlZddlmZmZmZmZej0j2Zej0j6ZGd<05>dej:j<<00>Zda defd<08>Z!d(d <09>Z"ejFjHejJjLd
dd ddddf d ejNjPe)zd ejFjTe)zdejJjVe)zde,de)dzde,de-de.dzde,dzdej^j`dzdej:jbfd<16>Z2de)dededej:jbfd<1A>Z3ejhfdejNjPe)zde-dedej:jjfd<1D>Z6dejNjPe)zdejNjPfd<1E>Z7d)de.ddfd <20>Z8ejJjLd
ddfdejNjPe)zdejJjVde,d!edzdej^j`dzdejNjPf d"<22>Z9d#ejhdfd$ejNjPe)zd%e-de-d!edzdef
d&<26>Z:ejFjHejJjLd
dd ddddd#ejhdf d$ejNjPe)zd ejNjPe)zd ejFjTe)zdejJjVe)zde,de)dzde,de-de.dzde,dzdej^j`dzd%e-de-d!edzdej:jbfd'<27>Z;y)*<2A>Asynchronous DNS stub resolver.<2E>N)<03>Any<6E>Dict<63>List)<04>NXDOMAIN<49>NoAnswer<65> NoRootSOA<4F> NotAbsolutec<00><><00>eZdZdZej
j ejjdddddddf dejje zdej
je zdejje zd ed
e dzd ed ed edzdedzdej"j$dzdej&j(fd<11>Zde dededej&j(fd<15>Zej2fdejje zdededej&j4fd<18>Zdejje zdejjfd<19>Zdd eddfd<1A>Zy)<1C>ResolverrFNTr<00>qname<6D>rdtype<70>rdclass<73>tcp<63>source<63>raise_on_no_answer<65> source_port<72>lifetime<6D>search<63>backend<6E>returnc <00><00>lK<00>tjj||||||| <09>} |
stjj <00>}
t j
<00>} | j <00>\} }|<0E>|S| <0A>J<00>d}|s<>| j<00>\}}}|r|
j|<11><00>d{<00><02><03>|j| || j<00>} |j| |||||
<EFBFBD><03><00>d{<00><03><03>}| j|d<01>\}}|<0E>|S|s<01><><EFBFBD><EFBFBD>7<00>^7<00>##t$r}| jd|<14>\}}Yd}~<14><>d}~wwxYw<01>w)a<>Query nameservers asynchronously to find the answer to the question.
*backend*, a ``dns.asyncbackend.Backend``, or ``None``. If ``None``,
the default, then dnspython will use the default backend.
See :py:func:`dns.resolver.Resolver.resolve()` for the
documentation of the other parameters, exceptions, and return
type of this method.
NF)<05>timeoutrr<00>max_sizer)<0E>dns<6E>resolver<65> _Resolution<6F> asyncbackend<6E>get_default_backend<6E>time<6D> next_request<73>next_nameserver<65>sleep<65>_compute_timeout<75>errors<72> async_query<72> Exception<6F> query_result)<16>selfr rrrrrrrrr<00>
resolution<EFBFBD>start<72>request<73>answer<65>done<6E>
nameserver<EFBFBD>backoffr<00>response<73>ex<65>_s <20>@E:\Project\pygoedge\.venv\Lib\site-packages\dns/asyncresolver.py<70>resolvezResolver.resolve0s`<00><00><><00>.<19>\<5C>\<5C>-<2D>-<2D> <10>%<25><16><17>#<23>/A<>6<EFBFBD>
<EFBFBD>
<EFBFBD><17><19>&<26>&<26>:<3A>:<3A><<3C>G<EFBFBD><14> <09> <09> <0B><05><12> *<2A> 7<> 7<> 9<> <1D>W<EFBFBD>f<EFBFBD>
<16>!<21><1D> <0A><1A>&<26> &<26>&<26><18>D<EFBFBD><1A>-7<>-G<>-G<>-I<>*<2A><1A>S<EFBFBD>'<27><1A>!<21>-<2D>-<2D><07>0<>0<>0<><1E>/<2F>/<2F><05>x<EFBFBD><1A>AR<41>AR<41>S<><07> <1D>%/<2F>%;<3B>%;<3B><1F> '<27>%<25>$/<2F>!$<24> '<27> &<<3C>&<16> <16>H<EFBFBD>",<2C>!8<>!8<><18>4<EFBFBD>!H<><0E><16><14>
<1A>%<25>!<21>M<EFBFBD>/<1B><13>1<><31> <16><>!<21><1D> *<2A> 7<> 7<><04>b<EFBFBD> A<>I<EFBFBD>Q<EFBFBD><04><1C><><1D>sT<00>B$D4<01>&D<04>'!D4<01> D <00>#D<04>$D <00>(D4<01>D4<01>D <00> D1<03>D,<03>'D4<01>,D1<03>1D4<01>ipaddr<64>args<67>kwargsc<00><00>K<00>i}|j|<03>tjj|d<tjj
|d<|j tjj|<01>g|<02><01>i|<04><01><01>d{<00><02><03>S7<00><04>w)a<>Use an asynchronous resolver to run a reverse query for PTR
records.
This utilizes the resolve() method to perform a PTR lookup on the
specified IP address.
*ipaddr*, a ``str``, the IPv4 or IPv6 address you want to get
the PTR record for.
All other arguments that can be passed to the resolve() function
except for rdtype and rdclass are also supported by this
function.
rrN) <09>updater<00> rdatatype<70>PTR<54>
rdataclass<EFBFBD>INr5<00> reversename<6D> from_address)r)r6r7r8<00>modified_kwargss r4<00>resolve_addresszResolver.resolve_addressqs<><00><00><><00>(+-<2D><0F><17><1E><1E>v<EFBFBD>&<26>$'<27>M<EFBFBD>M<EFBFBD>$5<>$5<><0F><08>!<21>%(<28>^<5E>^<5E>%6<>%6<><0F> <09>"<22>!<21>T<EFBFBD>\<5C>\<5C> <0F>O<EFBFBD>O<EFBFBD> (<28> (<28><16> 0<>
<EFBFBD>37<EFBFBD>
<EFBFBD>;J<>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>s<00>BB <01>B <04>B <01>name<6D>familyc<00><00><>K<00>i}|j|<03>|jdd<02>tjj|d<|t
j k(r^|j|tjjfi|<04><01><01>d{<00><02><03>}tjjj|<05><04>S|t
jk(r^|j|tjjfi|<04><01><01>d{<00><02><03>}tjjj|<06><05>S|t
jk7rt!d|<02><00><02><00>|jdd<08>}|jd d<02>}t#j"<00>} |j|tjjfd
|j%| |<08>d <0B>|<04><01><01>d{<00><02><03>}|j&}|j|tjjfd
|j%| |<08>d <0B>|<04><01><01>d{<00><02><03>}tjjj||| <00> <0C>}
|
st)|j*<00> <0A><00>|
S7<00><01><>7<00><01>l7<00><>7<00>S<EFBFBD>w)aUse an asynchronous resolver to query for address records.
This utilizes the resolve() method to perform A and/or AAAA lookups on
the specified name.
*qname*, a ``dns.name.Name`` or ``str``, the name to resolve.
*family*, an ``int``, the address family. If socket.AF_UNSPEC
(the default), both A and AAAA records will be retrieved.
All other arguments that can be passed to the resolve() function
except for rdtype and rdclass are also supported by this
function.
rNr)<01>v4)<01>v6zunknown address family rTrF)rr)rGrF<00> add_empty)r1)r:<00>poprr=r><00>socket<65>AF_INETr5r;<00>Ar<00> HostAnswers<72>make<6B>AF_INET6<54>AAAA<41> AF_UNSPEC<45>NotImplementedErrorr r$r rr1) r)rCrDr8rArFrGrrr+<00>answerss r4<00> resolve_namezResolver.resolve_name<6D>s%<00><00><><00>.+-<2D><0F><17><1E><1E>v<EFBFBD>&<26><17><1B><1B>H<EFBFBD>d<EFBFBD>+<2B>%(<28>^<5E>^<5E>%6<>%6<><0F> <09>"<22> <11>V<EFBFBD>^<5E>^<5E> #<23>#<23>t<EFBFBD>|<7C>|<7C>D<EFBFBD>#<23>-<2D>-<2D>/<2F>/<2F>M<>_<EFBFBD>M<>M<>B<EFBFBD><16><<3C><<3C>+<2B>+<2B>0<>0<>B<EFBFBD>0<>7<> 7<> <13>v<EFBFBD><EFBFBD><EFBFBD> &<26>#<23>t<EFBFBD>|<7C>|<7C>D<EFBFBD>#<23>-<2D>-<2D>*<<3C>*<<3C>P<><0F>P<>P<>B<EFBFBD><16><<3C><<3C>+<2B>+<2B>0<>0<>B<EFBFBD>0<>7<> 7<> <13>v<EFBFBD>'<27>'<27> '<27>%<25>(?<3F><06>x<EFBFBD>&H<>I<> I<>,<2C>0<>0<>1E<31>t<EFBFBD>L<><1A>"<22>&<26>&<26>z<EFBFBD>4<EFBFBD>8<><08><14> <09> <09> <0B><05><1F>4<EFBFBD><<3C><<3C> <10> <0F>M<EFBFBD>M<EFBFBD> <1E> <1E>
<EFBFBD> %<25><19>*<2A>*<2A>5<EFBFBD>(<28>;<3B> 
<EFBFBD>
<1E> 
<EFBFBD>
<EFBFBD><02><12>x<EFBFBD>x<EFBFBD><04><1F>4<EFBFBD><<3C><<3C> <10> <0F>M<EFBFBD>M<EFBFBD>O<EFBFBD>O<EFBFBD>
<EFBFBD> %<25><19>*<2A>*<2A>5<EFBFBD>(<28>;<3B> 
<EFBFBD>
<1E> 
<EFBFBD>
<EFBFBD><02><16>,<2C>,<2C>*<2A>*<2A>/<2F>/<2F><11>b<EFBFBD>(:<3A>$:<3A>0<>
<EFBFBD><07><17><1A>B<EFBFBD>K<EFBFBD>K<EFBFBD>0<> 0<><16><0E>IN<01><>Q<01><>
<EFBFBD><EFBFBD>
<EFBFBD>sL<00>BI+<01>I!<04>A0I+<01>8I$<04>9C I+<01>I'<04>AI+<01>I)<04>A I+<01>$I+<01>'I+<01>)I+c<00><00><>K<00> |j|d<01><02><00>d{<00><03><03>}|j}|S7<00>#tjj$r}|j}Yd}~|Sd}~wwxYw<01>w)a<>Determine the canonical name of *name*.
The canonical name is the name the resolver uses for queries
after all CNAME and DNAME renamings have been applied.
*name*, a ``dns.name.Name`` or ``str``, the query name.
This method can raise any exception that ``resolve()`` can
raise, other than ``dns.resolver.NoAnswer`` and
``dns.resolver.NXDOMAIN``.
Returns a ``dns.name.Name``.
F)rN)r5<00>canonical_namerrr)r)rCr-rV<00>es r4rVzResolver.canonical_name<6D>sc<00><00><><00> .<2E><1F><<3C><<3C><04><15><<3C>G<>G<>F<EFBFBD>#<23>2<>2<>N<EFBFBD><1E><1D> H<01><><12>|<7C>|<7C>$<24>$<24> .<2E><1E>-<2D>-<2D>N<EFBFBD><1D><1D><> .<2E>s7<00>A&<01>/<00>-<04>/<00>A&<01>/<00>A#<03> A<03>A&<01>A#<03>#A&c<00><00><>K<00> tj<00>|z}|jtjjd|<01><02><00>d{<00><03><03>}tj
j |<02>}tjj||<04><00>d{<00><03><03>}t|<05>dkDr||_ yy7<00>b7<00>#t$rYywxYw<01>w)a<>Try to update the resolver's nameservers using Discovery of Designated
Resolvers (DDR). If successful, the resolver will subsequently use
DNS-over-HTTPS or DNS-over-TLS for future queries.
*lifetime*, a float, is the maximum time to spend attempting DDR. The default
is 5 seconds.
If the SVCB query is successful and results in a non-empty list of nameservers,
then the resolver's nameservers are set to the returned servers in priority
order.
The current implementation does not use any address hints from the SVCB record,
nor does it resolve addresses for the SCVB target name, rather it assumes that
the bootstrap nameserver will always be one of the addresses and uses it.
A future revision to the code may offer fuller support. The code verifies that
the bootstrap nameserver is in the Subject Alternative Name field of the
TLS certficate.
<20>svcb)rNr) r r5r<00>_ddr<64>_local_resolver_name<6D>query<72>
_remaining<EFBFBD>_get_nameservers_async<6E>len<65> nameserversr')r)r<00>
expirationr-rr`s r4<00>try_ddrzResolver.try_ddr<64>s<><00><00><><00>&
<11><1D><19><19><1B>x<EFBFBD>/<2F>J<EFBFBD><1F><<3C><<3C><13><08><08>-<2D>-<2D>v<EFBFBD><08>(<28><0E><0E>F<EFBFBD><1A>i<EFBFBD>i<EFBFBD>*<2A>*<2A>:<3A>6<>G<EFBFBD> #<23><08><08> ?<3F> ?<3F><06><07> P<>P<>K<EFBFBD><12>;<3B><1F>!<21>#<23>#.<2E><04> <20>$<24> <0E><>Q<01><><19> <11> <10> <11>sN<00>C<01>AB1<00>
B-<04> AB1<00>B/<04>B1<00>+C<01>-B1<00>/B1<00>1 B=<03>:C<01><B=<03>=C<01>g@)<1E>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__rr;rLr=r>rC<00>Name<6D>str<74> RdataType<70>
RdataClass<EFBFBD>bool<6F>int<6E>floatr<00>Backendr<00>Answerr5rrBrJrQrMrTrVrb<00><00>r4r r -s<><00><00>)<29>
14<31> <0A> <0A><0F><0F>36<33>><3E>><3E>3D<33>3D<33><19>!<21>#'<27><1C>!%<25>"<22>37<33>?"<22><12>x<EFBFBD>x<EFBFBD>}<7D>}<7D>s<EFBFBD>"<22>?"<22><14> <0A> <0A>'<27>'<27>#<23>-<2D>?"<22><15><1E><1E>*<2A>*<2A>S<EFBFBD>0<> ?"<22>
<12> ?"<22> <14>d<EFBFBD>
<EFBFBD> ?"<22>!<21>?"<22><19>?"<22><18>$<24>,<2C>?"<22><15>t<EFBFBD> <0B>?"<22><15>!<21>!<21>)<29>)<29>D<EFBFBD>0<>?"<22>
<0A><1C><1C> <1C> <1C>?"<22>B
<EFBFBD><19>
<EFBFBD>"%<25>
<EFBFBD>14<EFBFBD>
<EFBFBD> <0C><1C><1C> <1C> <1C>
<EFBFBD>><1D>&<26>&<26>A<17><11>h<EFBFBD>h<EFBFBD>m<EFBFBD>m<EFBFBD>c<EFBFBD>!<21>A<17><14>A<17><16> A<17>
<0A><1C><1C> !<21> !<21> A<17>J<1E><13><18><18><1D><1D><13>)<<3C><1E><13><18><18><1D><1D><1E>*<11>e<EFBFBD><11>d<EFBFBD>rrr rc<00>><00>t<00>
t<00>t<00>J<00>tS)zDGet the default asynchronous resolver, initializing it if necessary.)<02>default_resolver<65>reset_default_resolverrqrrr4<00>get_default_resolverrv
s <00><00><17><1F><1E> <20> <1B> '<27>'<27> '<27> <1B>rrc<00><00>t<00>ay)z<>Re-initialize default asynchronous resolver.
Note that the resolver configuration (i.e. /etc/resolv.conf on UNIX
systems) will be re-read immediately.
N)r rtrqrrr4rurus <00><00> <20>z<EFBFBD>rrFTr rrrrrrrrrc
<00><00>bK<00>t<00>j|||||||||| <09>
<00>d{<00><02><03>S7<00><04>w)a Query nameservers asynchronously to find the answer to the question.
This is a convenience function that uses the default resolver
object to make the query.
See :py:func:`dns.asyncresolver.Resolver.resolve` for more
information on the parameters.
N)rvr5)
r rrrrrrrrrs
r4r5r5sF<00><00><><00>*&<26>'<27>/<2F>/<2F> <0A><0E><0F> <0B><0E><1A><13><10><0E><0F> <06> <06> <06> <06>s <00>&/<01>-<04>/r6r7r8c<00><00>ZK<00>t<00>j|g|<01><01>i|<02><01><01>d{<00><02><03>S7<00><04>w)z<>Use a resolver to run a reverse query for PTR records.
See :py:func:`dns.asyncresolver.Resolver.resolve_address` for more
information on the parameters.
N)rvrB)r6r7r8s r4rBrB@s/<00><00><><00>8<>%<25>'<27>7<>7<><06>P<><14>P<><16>P<> P<>P<> P<>s <00>"+<01>)<04>+rCrDc<00><00>VK<00>t<00>j||fi|<02><01><01>d{<00><02><03>S7<00><04>w)z<>Use a resolver to asynchronously query for address records.
See :py:func:`dns.asyncresolver.Resolver.resolve_name` for more
information on the parameters.
N)rvrT)rCrDr8s r4rTrTLs,<00><00><><00>5<>%<25>'<27>4<>4<>T<EFBFBD>6<EFBFBD>L<>V<EFBFBD>L<> L<>L<> L<>s <00> )<01>'<04>)c<00><00>PK<00>t<00>j|<00><00>d{<00><02><03>S7<00><04>w)z<>Determine the canonical name of *name*.
See :py:func:`dns.resolver.Resolver.canonical_name` for more
information on the parameters and possible exceptions.
N)rvrV)rCs r4rVrVXs"<00><00><><00>&<26>'<27>6<>6<>t<EFBFBD><<3C> <<3C><<3C> <<3C><> <00>&<01>$<04>&rc<00><00>PK<00>t<00>j|<00><00>d{<00><02><03>S7<00><04>w)aTry to update the default resolver's nameservers using Discovery of Designated
Resolvers (DDR). If successful, the resolver will subsequently use
DNS-over-HTTPS or DNS-over-TLS for future queries.
See :py:func:`dns.resolver.Resolver.try_ddr` for more information.
N)rvrb)rs r4rbrbbs"<00><00><><00>&<26>'<27>/<2F>/<2F><07>8<> 8<>8<> 8<>r|rc<00><00>LK<00>t|t<00>r8tjj |tjj
<00>}|<03>
t <00>}|j<00>s t|<00><00> |j|tjj|||<04><02><00>d{<00><03><03>}|j<00>J<00>|jj|k(r|S |j<00>}<00>s7<00>@#ttf$rY<00>%wxYw#tjj $rt"<00>wxYw<01>w)z<>Find the name of the zone which contains the specified name.
See :py:func:`dns.resolver.Resolver.zone_for_name` for more
information on the parameters and possible exceptions.
N)r)<12>
isinstancerirrC<00> from_text<78>rootrv<00> is_absoluter
r5r;<00>SOA<4F>rrsetrr<00>parent<6E>NoParentr )rCrrrrr-s r4<00> zone_for_namer<65>ls <00><00><><00><12>$<24><03><1C><12>x<EFBFBD>x<EFBFBD>!<21>!<21>$<24><03><08><08> <0A> <0A>6<><04><0F><17>'<27>)<29><08> <0F> <1B> <1B> <1D><19>$<24><1F><1F>
<0E> <11>#<23>+<2B>+<2B><14>c<EFBFBD>m<EFBFBD>m<EFBFBD>'<27>'<27><17>#<23>w<EFBFBD>,<2C><0E><0E>F<EFBFBD><1A><<3C><<3C>+<2B> +<2B>+<2B><15>|<7C>|<7C> <20> <20>D<EFBFBD>(<28><1B> <0B>)<29>
 <1C><17>;<3B>;<3B>=<3D>D<EFBFBD> <0F><0E><><19>(<28>#<23> <11> <10> <11><><13>x<EFBFBD>x<EFBFBD> <20> <20> <1C><1B>O<EFBFBD> <1C>sT<00>A1D$<01>41C(<00>%C&<04>&,C(<00>D$<01>C=<00>%D$<01>&C(<00>(C:<03>7D$<01>9C:<03>:D$<01>=$D!<03>!D$<01>5<00>where<72>portc<00><00><>K<00>|<03>
t<00>}g}t|t<00>rOtjj |<00>r0|j tjj||<01><00>n^|j||<02><00>d{<00><02><03>}|j<00>D]1}|j tjj||<01><00><00>3td<02><03>}||_ |S7<00>]<5D>w)aMake a stub resolver using the specified destination as the full resolver.
*where*, a ``dns.name.Name`` or ``str`` the domain name or IP address of the
full resolver.
*port*, an ``int``, the port to use. If not specified, the default is 53.
*family*, an ``int``, the address family to use. This parameter is used if
*where* is not an address. The default is ``socket.AF_UNSPEC`` in which case
the first address returned by ``resolve_name()`` will be used, otherwise the
first address of the specified family will be used.
*resolver*, a ``dns.asyncresolver.Resolver`` or ``None``, the resolver to use for
resolution of hostnames. If not specified, the default resolver will be used.
Returns a ``dns.resolver.Resolver`` or raises an exception.
NF)<01> configure) rvrrir<00>inet<65>
is_address<EFBFBD>appendr/<00>Do53NameserverrT<00> addressesr r`)r<>r<>rDrr`rS<00>address<73>ress r4<00>make_resolver_atr<74><00>s<><00><00><><00>.<10><17>'<27>)<29><08>9;<3B>K<EFBFBD><11>%<25><13><1D>#<23>(<28>(<28>"5<>"5<>e<EFBFBD>"<<3C><13><1A><1A>3<EFBFBD>><3E>><3E>8<>8<><15><04>E<>F<> <20>-<2D>-<2D>e<EFBFBD>V<EFBFBD><<3C><<3C><07><1E>(<28>(<28>*<2A>G<EFBFBD> <17> <1E> <1E>s<EFBFBD>~<7E>~<7E><<3C><<3C>W<EFBFBD>d<EFBFBD>K<> L<>+<2B>
<12>U<EFBFBD>
#<23>C<EFBFBD>!<21>C<EFBFBD>O<EFBFBD> <0E>J<EFBFBD> =<3D>s<00>BC%<01>C#<04>AC%c <00><00><>K<00>t|| | | <0A><00>d{<00><02><03>}|j||||||||| |
<EFBFBD>
<00>d{<00><02><03>S7<00>&7<00><06>w)a<>Query nameservers to find the answer to the question.
This is a convenience function that calls ``dns.asyncresolver.make_resolver_at()``
to make a resolver, and then uses it to resolve the query.
See ``dns.asyncresolver.Resolver.resolve`` for more information on the resolution
parameters, and ``dns.asyncresolver.make_resolver_at`` for information about the
resolver parameters *where*, *port*, *family*, and *resolver*.
If making more than one query, it is more efficient to call
``dns.asyncresolver.make_resolver_at()`` and then use that resolver for the queries
instead of calling ``resolve_at()`` multiple times.
N)r<>r5)r<>r rrrrrrrrrr<>rDrr<>s r4<00>
resolve_atr<EFBFBD><00>s[<00><00><><00>:!<21><15><04>f<EFBFBD>h<EFBFBD>?<3F>
?<3F>C<EFBFBD><14><1B><1B> <0A><0E><0F> <0B><0E><1A><13><10><0E><0F> <06> <06> <06> @<01><> <06>s<00>?<01>;<04>!?<01>=<04>?<01>?)rNrc)<rgrJr <00>typingrrr<00>dns._ddrr<00>dns.asyncbackend<6E>dns.asyncquery<72> dns.exception<6F>dns.inet<65>dns.name<6D>dns.nameserver<65> dns.query<72>dns.rdataclass<73> dns.rdatatype<70> dns.resolver<65>dns.reversenamerrr r
<00>
asyncquery<EFBFBD>udp<64>_udpr<00>_tcpr<00> BaseResolverr rtrvrur;rLr=r>rCrhrirjrkrlrmrnrrorpr5rBrQrMrTrVrbr<>r<>r<>rqrrr4<00><module>r<>sY<00><01>$&<26> <0A> <0B>"<22>"<22><0F><17><15><14><0F><0F><15><10><15><14><13><16>D<01>C<> <0B>~<7E>~<7E><19><19><04>
<EFBFBD>~<7E>~<7E><19><19><04>W<11>s<EFBFBD>|<7C>|<7C>(<28>(<28>W<11>t<18><10><1C>h<EFBFBD><1C>"<22>-0<>M<EFBFBD>M<EFBFBD>O<EFBFBD>O<EFBFBD>/2<>~<7E>~<7E>/@<40>/@<40><15><1D>#<23><18>!<21><1E>/3<> <06> <0E>8<EFBFBD>8<EFBFBD>=<3D>=<3D>3<EFBFBD> <1E> <06> <0F>M<EFBFBD>M<EFBFBD> #<23> #<23>c<EFBFBD> )<29> <06><11>^<5E>^<5E> &<26> &<26><13> ,<2C> <06>
<0E> <06>
<10>$<24>J<EFBFBD> <06> <1D> <06><15> <06><14>d<EFBFBD>l<EFBFBD> <06> <11>4<EFBFBD>K<EFBFBD> <06><11> <1D> <1D> %<25> %<25><04> ,<2C> <06> <09>\<5C>\<5C><18><18> <06>F Q<01> <0F> Q<01><1B> Q<01>'*<2A> Q<01><08>\<5C>\<5C><18><18> Q<01>.4<EFBFBD>-=<3D>-=<3D> M<01>
<0A>(<28>(<28>-<2D>-<2D>#<23>
<1D> M<01>'*<2A> M<01>IL<49> M<01><08>\<5C>\<5C><1D><1D> M<01>=<3D>s<EFBFBD>x<EFBFBD>x<EFBFBD>}<7D>}<7D>s<EFBFBD>2<>=<3D>s<EFBFBD>x<EFBFBD>x<EFBFBD>}<7D>}<7D>=<3D>9<>5<EFBFBD>9<>4<EFBFBD>9<>*-<2D><1E><1E>):<3A>):<3A><15> $<24>/3<> !<1C>
<0A>(<28>(<28>-<2D>-<2D>#<23>
<1D>!<1C> <10>^<5E>^<5E> &<26> &<26>!<1C>
<0E>!<1C><17><14>o<EFBFBD> !<1C>
<11> <1D> <1D> %<25> %<25><04> ,<2C> !<1C>  <09>X<EFBFBD>X<EFBFBD>]<5D>]<5D> !<1C>L<13><18>"<22>"<22> $<24> "<0F> <0E>8<EFBFBD>8<EFBFBD>=<3D>=<3D>3<EFBFBD> <1E>"<0F>
<0A>"<0F> <10>"<0F><17><14>o<EFBFBD> "<0F>
<0E> "<0F>P-0<>M<EFBFBD>M<EFBFBD>O<EFBFBD>O<EFBFBD>/2<>~<7E>~<7E>/@<40>/@<40><15><1D>#<23><18>!<21><1E>/3<><12><18>"<22>"<22> $<24>)<06> <0E>8<EFBFBD>8<EFBFBD>=<3D>=<3D>3<EFBFBD> <1E>)<06> <0E>8<EFBFBD>8<EFBFBD>=<3D>=<3D>3<EFBFBD> <1E>)<06> <10>M<EFBFBD>M<EFBFBD> #<23> #<23>c<EFBFBD> )<29>)<06><11>^<5E>^<5E> &<26> &<26><13> ,<2C> )<06>
<0E> )<06> <10>$<24>J<EFBFBD> )<06><1D>)<06><15>)<06><14>d<EFBFBD>l<EFBFBD>)<06> <11>4<EFBFBD>K<EFBFBD>)<06><11> <1D> <1D> %<25> %<25><04> ,<2C>)<06> <0E>)<06> <10>)<06><17><14>o<EFBFBD>)<06> <09>\<5C>\<5C><18><18>)rr