Files
Trancribe/venv/lib/python3.12/site-packages/websockets/__pycache__/headers.cpython-312.pyc

266 lines
18 KiB
Plaintext
Raw Normal View History

<EFBFBD>
$n!j<>><00><01><00>ddlmZddlZddlZddlZddlZddlmZddlm Z m
Z
m Z ddl m Z mZddlmZmZmZmZmZmZgd<08>Ze
d <09>Zd
d <0B> d-d <0C>Zd.d <0A>Zej2d<0E>Zd/d<0F>Zej2d<10>Zd0d<11>Zej2d<12>Zej2d<13>Zd0d<14>Z ej2d<15>Z!ej2d<16>Z"d1d<17>Z# d2d<18>Z$ d3d<19>Z%d4d<1A>Z&ej2d<1B>Z' d5d<1C>Z(d6d<1D>Z) d7d<1E>Z* d8d<1F>Z+d9d <20>Z,e,Z- d:d!<21>Z.d;d"<22>Z/e/Z0 d<d#<23>Z1d=d$<24>Z2e2Z3d>d%<25>Z4e4Z5d?d&<26>Z6d@d'<27>Z7ej2d(<28>Z8d0d)<29>Z9dAd*<2A>Z:dBd+<2B>Z;dCd,<2C>Z<y)D<>)<01> annotationsN)<01>Sequence)<03>Callable<6C>TypeVar<61>cast<73>)<02>InvalidHeaderFormat<61>InvalidHeaderValue)<06>ConnectionOption<6F>ExtensionHeader<65> ExtensionName<6D>ExtensionParameter<65> Subprotocol<6F>UpgradeProtocol) <0B>
build_host<EFBFBD>parse_connection<6F> parse_upgrade<64>parse_extension<6F>build_extension<6F>parse_subprotocol<6F>build_subprotocol<6F>validate_subprotocols<6C>build_www_authenticate_basic<69>parse_authorization_basic<69>build_authorization_basic<69>TF)<01>always_include_portc<01><><00> tj|<00>}|jdk(rd|<00>d<03>} |s ||rdndk7r|<00>d|<01><00>}|S#t$rY<00>wxYw)z#
Build a ``Host`` header.
<20><00>[<5B>]i<><00>P<00>:)<04> ipaddress<73>
ip_address<EFBFBD>version<6F>
ValueError)<05>host<73>port<72>securer<00>addresss <20>T/home/jean/linux-transcriber/venv/lib/python3.12/site-packages/websockets/headers.pyrr'si<00><00><1F><1B>&<26>&<26>t<EFBFBD>,<2C><07> <13>?<3F>?<3F>a<EFBFBD> <1F><16>t<EFBFBD>f<EFBFBD>A<EFBFBD>;<3B>D<EFBFBD><1A>d<EFBFBD>f<EFBFBD>s<EFBFBD>"<22>=<3D><16><16>q<EFBFBD><14><06><1F><04> <0F>K<EFBFBD><4B> <16> <0A> <0C> <0A>s<00>A<00> A <03> A c<01>,<00>|t|<00>k(rdS||S)z<>
Return the next character from ``header`` at the given position.
Return :obj:`None` at the end of ``header``.
We never need to peek more than one character ahead.
N)<01>len)<02>header<65>poss r,<00>
peek_aheadr1Is<00><00><17>#<23>f<EFBFBD>+<2B>%<25>4<EFBFBD>6<>6<EFBFBD>#<23>;<3B>6<>z[\t ]*c<01>V<00>tj||<01>}|<02>J<00>|j<00>S)z<>
Parse optional whitespace from ``header`` at the given position.
Return the new position.
The whitespace itself isn't returned because it isn't significant.
)<03>_OWS_re<72>match<63>end)r/r0r5s r,<00> parse_OWSr7Xs,<00><00> <14>M<EFBFBD>M<EFBFBD>&<26>#<23> &<26>E<EFBFBD> <10> <1C><1C> <1C> <10>9<EFBFBD>9<EFBFBD>;<3B>r2z[-!#$%&\'*+.^_`|~0-9a-zA-Z]+c<01><><00>tj||<01>}|<03>t|d||<01><00>|j<00>|j <00>fS)z<>
Parse a token from ``header`` at the given position.
Return the token value and the new position.
Raises:
InvalidHeaderFormat: On invalid inputs.
zexpected token)<05> _token_rer5r <00>groupr6<00>r/r0<00> header_namer5s r,<00> parse_tokenr=jsB<00><00> <16>O<EFBFBD>O<EFBFBD>F<EFBFBD>C<EFBFBD> (<28>E<EFBFBD> <0C>}<7D>!<21>+<2B>/?<3F><16><13>M<>M<> <10>;<3B>;<3B>=<3D>%<25>)<29>)<29>+<2B> %<25>%r2zC"(?:[\x09\x20-\x21\x23-\x5b\x5d-\x7e]|\\[\x09\x20-\x7e\x80-\xff])*"z\\([\x09\x20-\x7e\x80-\xff])c<01><><00>tj||<01>}|<03>t|d||<01><00>tj d|j <00>dd<00>|j <00>fS)z<>
Parse a quoted string from ``header`` at the given position.
Return the unquoted value and the new position.
Raises:
InvalidHeaderFormat: On invalid inputs.
zexpected quoted stringz\1r<00><><EFBFBD><EFBFBD><EFBFBD>)<07>_quoted_string_rer5r <00> _unquote_re<72>subr:r6r;s r,<00>parse_quoted_stringrC<00>sW<00><00> <1E> #<23> #<23>F<EFBFBD>C<EFBFBD> 0<>E<EFBFBD> <0C>}<7D>!<21>+<2B>/G<><16>QT<51>U<>U<> <16>?<3F>?<3F>5<EFBFBD>%<25>+<2B>+<2B>-<2D><01>"<22>"5<> 6<><05> <09> <09> <0B> C<>Cr2z[\x09\x20-\x7e\x80-\xff]*z ([\x22\x5c])c<01>~<00>tj|<00>}|<01> td<01><00>dtj d|<00>zdzS)zh
Format ``value`` as a quoted string.
This is the reverse of :func:`parse_quoted_string`.
z-invalid characters for quoted-string encoding<6E>"z\\\1)<05> _quotable_re<72> fullmatchr'<00> _quote_rerB)<02>valuer5s r,<00>build_quoted_stringrJ<00>s@<00><00> <19> "<22> "<22>5<EFBFBD> )<29>E<EFBFBD> <0C>}<7D><18>H<>I<>I<> <0E><19><1D><1D>w<EFBFBD><05>.<2E> .<2E><13> 4<>4r2c<01><><00>t||<02>dk(rt||dz<00>}t||<02>dk(r<01>g} ||||<03>\}}|j|<05>t||<02>}|t|<01>k(rnkt||<02>dk(rt||dz<00>}nt |d||<02><00>t||<02>dk(rt||dz<00>}t||<02>dk(r<01>|t|<01>k(rn<01><>|t|<01>k(sJ<00>|S)a<>
Parse a comma-separated list from ``header`` at the given position.
This is appropriate for parsing values with the following grammar:
1#item
``parse_item`` parses one item.
``header`` is assumed not to start or end with whitespace.
(This function is designed for parsing an entire header value and
:func:`~websockets.http.read_headers` strips whitespace from values.)
Return a list of items.
Raises:
InvalidHeaderFormat: On invalid inputs.
<20>,rzexpected comma)r1r7<00>appendr.r )<06>
parse_itemr/r0r<<00>items<6D>items r,<00>
parse_listrQ<00>s <00><00>> <15>V<EFBFBD>S<EFBFBD>
!<21>S<EFBFBD>
(<28><17><06><03>a<EFBFBD><07>(<28><03> <15>V<EFBFBD>S<EFBFBD>
!<21>S<EFBFBD>
(<28> <0F>E<EFBFBD>
<0E><1E>v<EFBFBD>s<EFBFBD>K<EFBFBD>8<> <09><04>c<EFBFBD> <0A> <0C> <0C>T<EFBFBD><1A><17><06><03>$<24><03> <0F>#<23>f<EFBFBD>+<2B> <1D> <11> <16>f<EFBFBD>c<EFBFBD> "<22>c<EFBFBD> )<29><1B>F<EFBFBD>C<EFBFBD>!<21>G<EFBFBD>,<2C>C<EFBFBD>%<25>k<EFBFBD>3C<33>V<EFBFBD>S<EFBFBD>Q<> Q<><19><16><13>%<25><13>,<2C><1B>F<EFBFBD>C<EFBFBD>!<21>G<EFBFBD>,<2C>C<EFBFBD><19><16><13>%<25><13>,<2C> <0F>#<23>f<EFBFBD>+<2B> <1D> <11>- <0F>4 <0F>#<23>f<EFBFBD>+<2B> <1D><1D> <1D> <10>Lr2c<01>F<00>t|||<02>\}}tt|<03>|fS)z<>
Parse a Connection option from ``header`` at the given position.
Return the protocol value and the new position.
Raises:
InvalidHeaderFormat: On invalid inputs.
)r=rr <00>r/r0r<rPs r,<00>parse_connection_optionrT<00>s)<00><00><1C>F<EFBFBD>C<EFBFBD><1B>5<>I<EFBFBD>D<EFBFBD>#<23> <0F> <20>$<24> '<27><13> ,<2C>,r2c<01>&<00>tt|dd<02>S)z<>
Parse a ``Connection`` header.
Return a list of HTTP connection options.
Args
header: value of the ``Connection`` header.
Raises:
InvalidHeaderFormat: On invalid inputs.
r<00>
Connection)rQrT<00>r/s r,rr<00>s<00><00> <16>-<2D>v<EFBFBD>q<EFBFBD>,<2C> G<>Gr2z>[-!#$%&\'*+.^_`|~0-9a-zA-Z]+(?:/[-!#$%&\'*+.^_`|~0-9a-zA-Z]+)?c<01><><00>tj||<01>}|<03>t|d||<01><00>tt|j <00><00>|j <00>fS)z<>
Parse an Upgrade protocol from ``header`` at the given position.
Return the protocol value and the new position.
Raises:
InvalidHeaderFormat: On invalid inputs.
zexpected protocol)<07> _protocol_rer5r rrr:r6r;s r,<00>parse_upgrade_protocolrZ sK<00><00> <19> <1E> <1E>v<EFBFBD>s<EFBFBD> +<2B>E<EFBFBD> <0C>}<7D>!<21>+<2B>/B<>F<EFBFBD>C<EFBFBD>P<>P<> <0F><0F><15><1B><1B><1D> /<2F><15><19><19><1B> <<3C><r2c<01>&<00>tt|dd<02>S)z<>
Parse an ``Upgrade`` header.
Return a list of HTTP protocols.
Args:
header: Value of the ``Upgrade`` header.
Raises:
InvalidHeaderFormat: On invalid inputs.
r<00>Upgrade)rQrZrWs r,rrs<00><00> <16>,<2C>f<EFBFBD>a<EFBFBD><19> C<>Cr2c<01>F<00>t|||<02>\}}t||<01>}d}t||<01>dk(rot||dz<00>}t||<01>dk(r5|}t|||<02>\}}tj |<04><00>t |d||<05><00>t|||<02>\}}t||<01>}||f|fS)z<>
Parse a single extension parameter from ``header`` at the given position.
Return a ``(name, value)`` pair and the new position.
Raises:
InvalidHeaderFormat: On invalid inputs.
N<>=rrEzinvalid quoted header content)r=r7r1rCr9rGr )r/r0r<<00>namerI<00>
pos_befores r,<00>parse_extension_item_paramra.s<><00><00><1C>F<EFBFBD>C<EFBFBD><1B>5<>I<EFBFBD>D<EFBFBD>#<23>
<13>F<EFBFBD>C<EFBFBD>
<20>C<EFBFBD><1C>E<EFBFBD><11>&<26>#<23><1E>#<23>%<25><17><06><03>a<EFBFBD><07>(<28><03> <15>f<EFBFBD>c<EFBFBD> "<22>c<EFBFBD> )<29><1C>J<EFBFBD>,<2C>V<EFBFBD>S<EFBFBD>+<2B>F<>J<EFBFBD>E<EFBFBD>3<EFBFBD><19>"<22>"<22>5<EFBFBD>)<29>1<>)<29><1F>!@<40>&<26>*<2A><12><12>%<25>V<EFBFBD>S<EFBFBD>+<2B>><3E>J<EFBFBD>E<EFBFBD>3<EFBFBD><17><06><03>$<24><03> <10>%<25>=<3D>#<23> <1D>r2c<01><00>t|||<02>\}}t||<01>}g}t||<01>dk(r@t||dz<00>}t|||<02>\}}|j |<05>t||<01>dk(r<01>@t t |<03>|f|fS)a
Parse an extension definition from ``header`` at the given position.
Return an ``(extension name, parameters)`` pair, where ``parameters`` is a
list of ``(name, value)`` pairs, and the new position.
Raises:
InvalidHeaderFormat: On invalid inputs.
<20>;r)r=r7r1rarMrr )r/r0r<r_<00>
parameters<EFBFBD> parameters r,<00>parse_extension_itemrfRs<><00><00><1C>F<EFBFBD>C<EFBFBD><1B>5<>I<EFBFBD>D<EFBFBD>#<23>
<13>F<EFBFBD>C<EFBFBD>
<20>C<EFBFBD><13>J<EFBFBD>
<14>V<EFBFBD>S<EFBFBD>
!<21>S<EFBFBD>
(<28><17><06><03>a<EFBFBD><07>(<28><03>3<>F<EFBFBD>C<EFBFBD><1B>M<><0E> <09>3<EFBFBD><12><19><19>)<29>$<24> <15>V<EFBFBD>S<EFBFBD>
!<21>S<EFBFBD>
(<28> <11><1D><04> %<25>z<EFBFBD> 2<>C<EFBFBD> 7<>7r2c<01>&<00>tt|dd<02>S)a<>
Parse a ``Sec-WebSocket-Extensions`` header.
Return a list of WebSocket extensions and their parameters in this format::
[
(
'extension name',
[
('parameter name', 'parameter value'),
....
]
),
...
]
Parameter values are :obj:`None` when no value is provided.
Raises:
InvalidHeaderFormat: On invalid inputs.
rzSec-WebSocket-Extensions)rQrfrWs r,rrks<00><00>. <16>*<2A>F<EFBFBD>A<EFBFBD>7Q<37> R<>Rr2c
<01><><00>djtt|<00>g|D<00><00>cgc]\}}|<02>|n|<00>d|<02><00><03><02>c}}z<00>Scc}}w)zc
Build an extension definition.
This is the reverse of :func:`parse_extension_item`.
z; r^)<03>joinr<00>str)r_rdrIs r,<00>build_extension_itemrk<00>s]<00><00> <10>9<EFBFBD>9<EFBFBD> <0A>c<EFBFBD>4<EFBFBD><1F><19> *<2A>
<EFBFBD><1C><04>e<EFBFBD><1A>M<EFBFBD>D<EFBFBD>$<24><16>q<EFBFBD><15><07>'8<> 8<>
<EFBFBD>
<EFBFBD> <06><06><>
s<00>A c<01>2<00>djd<02>|D<00><00>S)zl
Build a ``Sec-WebSocket-Extensions`` header.
This is the reverse of :func:`parse_extension`.
<20>, c3<01>:K<00>|]\}}t||<02><00><01><00>y<00>w)N)rk)<03>.0r_rds r,<00> <genexpr>z"build_extension.<locals>.<genexpr><3E>s!<00><00><><00><06>3C<33>4<EFBFBD><1A><1C>T<EFBFBD>:<3A>.<2E><06>s<00><01>ri)<01>
extensionss r,rr<00>s"<00><00> <10>9<EFBFBD>9<EFBFBD><06>GQ<47><06> <06>r2c<01>F<00>t|||<02>\}}tt|<03>|fS)z<>
Parse a subprotocol from ``header`` at the given position.
Return the subprotocol value and the new position.
Raises:
InvalidHeaderFormat: On invalid inputs.
)r=rrrSs r,<00>parse_subprotocol_itemrt<00>s(<00><00><1C>F<EFBFBD>C<EFBFBD><1B>5<>I<EFBFBD>D<EFBFBD>#<23> <0F> <0B>T<EFBFBD> "<22>C<EFBFBD> '<27>'r2c<01>&<00>tt|dd<02>S)z<>
Parse a ``Sec-WebSocket-Protocol`` header.
Return a list of WebSocket subprotocols.
Raises:
InvalidHeaderFormat: On invalid inputs.
rzSec-WebSocket-Protocol)rQrtrWs r,rr<00>s<00><00> <16>,<2C>f<EFBFBD>a<EFBFBD>9Q<39> R<>Rr2c<01>$<00>dj|<00>S)zl
Build a ``Sec-WebSocket-Protocol`` header.
This is the reverse of :func:`parse_subprotocol`.
rmrq)<01> subprotocolss r,rr<00>s<00><00> <10>9<EFBFBD>9<EFBFBD>\<5C> "<22>"r2c<01><><00>t|t<00>s td<01><00>t|t<00>r td<02><00>|D]%}tj |<01>r<01>t d|<01><00><02><00>y)zT
Validate that ``subprotocols`` is suitable for :func:`build_subprotocol`.
zsubprotocols must be a listz&subprotocols must be a list, not a strzinvalid subprotocol: N)<07>
isinstancer<00> TypeErrorrjr9rGr')rw<00> subprotocols r,rr<00>sb<00><00>
<16>l<EFBFBD>H<EFBFBD> -<2D><17>5<>6<>6<><11>,<2C><03>$<24><17>@<40>A<>A<>#<23>D<01> <0B><18>"<22>"<22>;<3B>/<2F><1C>4<>[<5B>M<EFBFBD>B<>C<> C<>Dr2c<01>><00>t|<00>}td<01>}d|<00>d|<01><00>S)z<>
Build a ``WWW-Authenticate`` header for HTTP Basic Auth.
Args:
realm: Identifier of the protection space.
zUTF-8z Basic realm=z
, charset=)rJ)<02>realm<6C>charsets r,rr<00>s+<00><00> <20><05> &<26>E<EFBFBD>!<21>'<27>*<2A>G<EFBFBD> <19>%<25><17>
<EFBFBD>7<EFBFBD>)<29> 4<>4r2z[A-Za-z0-9-._~+/]+=*c<01><><00>tj||<01>}|<03>t|d||<01><00>|j<00>|j <00>fS)z<>
Parse a token68 from ``header`` at the given position.
Return the token value and the new position.
Raises:
InvalidHeaderFormat: On invalid inputs.
zexpected token68)<05> _token68_rer5r r:r6r;s r,<00> parse_token68r<38><00>sD<00><00> <18> <1D> <1D>f<EFBFBD>c<EFBFBD> *<2A>E<EFBFBD> <0C>}<7D>!<21>+<2B>/A<>6<EFBFBD>3<EFBFBD>O<>O<> <10>;<3B>;<3B>=<3D>%<25>)<29>)<29>+<2B> %<25>%r2c<01><<00>|t|<00>krt|d||<01><00>y)z8
Check that parsing reached the end of header.
z trailing dataN)r.r )r/r0r<s r,<00> parse_endr<64>s&<00><00>
 <0B>S<EFBFBD><16>[<5B><18>!<21>+<2B><EFBFBD><06><03>L<>L<>r2c<01><><00>t|dd<02>\}}|j<00>dk7rtdd|<01><00><02><00>t||<02>dk7rt dd||<02><00>|dz }t ||d<02>\}}t ||d<02> tj|j<00><00>j<00>} |jd
d<07>\}}||fS#tj$rtdd<08>d <09>wxYw#t$rtdd <0B>d <09>wxYw) a!
Parse an ``Authorization`` header for HTTP Basic Auth.
Return a ``(username, password)`` tuple.
Args:
header: Value of the ``Authorization`` header.
Raises:
InvalidHeaderFormat: On invalid inputs.
InvalidHeaderValue: On unsupported inputs.
r<00> Authorization<6F>basiczunsupported scheme: <20> zexpected space after schemerz#expected base64-encoded credentialsNr#z&expected username:password credentials)r=<00>lowerr
r1r r<>r<><00>base64<36> b64decode<64>encode<64>decode<64>binascii<69>Error<6F>splitr')r/<00>schemer0<00>basic_credentials<6C> user_pass<73>username<6D>passwords r,rrs5<00><00> <1E>f<EFBFBD>a<EFBFBD><1F>9<>K<EFBFBD>F<EFBFBD>C<EFBFBD> <0A>|<7C>|<7C>~<7E><17> <20> <20> <1B>"<22>6<EFBFBD>(<28> +<2B>
<EFBFBD>
<EFBFBD><12>&<26>#<23><1E>#<23>%<25>!<21> <1B>:<3A>F<EFBFBD>C<EFBFBD>
<EFBFBD>
<EFBFBD><08>1<EFBFBD>H<EFBFBD>C<EFBFBD>*<2A>6<EFBFBD>3<EFBFBD><0F>H<><1A><15>s<EFBFBD> <0A>f<EFBFBD>c<EFBFBD>?<3F>+<2B><14><1A>$<24>$<24>%6<>%=<3D>%=<3D>%?<3F>@<40>G<>G<>I<> <09> <14>&<26>_<EFBFBD>_<EFBFBD>S<EFBFBD>!<21>4<><1A><08>(<28> <14>X<EFBFBD> <1D><1D><> <14>><3E>><3E><14> <20> <1B> 1<>
<EFBFBD><14> <14><14><> <16><14> <20> <1B> 4<>
<EFBFBD><14> <14><14>s<00>31B><00>%C"<00>>!C<03>"C9c<01><><00>d|vsJ<00>|<00>d|<01><00>}tj|j<00><00>j<00>}d|zS)z<>
Build an ``Authorization`` header for HTTP Basic Auth.
This is the reverse of :func:`parse_authorization_basic`.
r#zBasic )r<><00> b64encoder<65>r<>)r<>r<>r<>r<>s r,rr?sQ<00><00> <0F>h<EFBFBD> <1E><1E> <1E><1B>*<2A>A<EFBFBD>h<EFBFBD>Z<EFBFBD>(<28>I<EFBFBD><1E>(<28>(<28><19>)9<>)9<>);<3B><<3C>C<>C<>E<><15> <13>'<27> '<27>'r2)
r(rjr)<00>intr*<00>boolrr<><00>returnrj)r/rjr0r<>r<>z
str | None)r/rjr0r<>r<>r<>)r/rjr0r<>r<rjr<>ztuple[str, int])rIrjr<>rj)
rNz(Callable[[str, int, str], tuple[T, int]]r/rjr0r<>r<rjr<>zlist[T])r/rjr0r<>r<rjr<>ztuple[ConnectionOption, int])r/rjr<>zlist[ConnectionOption])r/rjr0r<>r<rjr<>ztuple[UpgradeProtocol, int])r/rjr<>zlist[UpgradeProtocol])r/rjr0r<>r<rjr<>ztuple[ExtensionParameter, int])r/rjr0r<>r<rjr<>ztuple[ExtensionHeader, int])r/rjr<>zlist[ExtensionHeader])r_r rdzSequence[ExtensionParameter]r<>rj)rrzSequence[ExtensionHeader]r<>rj)r/rjr0r<>r<rjr<>ztuple[Subprotocol, int])r/rjr<>zlist[Subprotocol])rw<00>Sequence[Subprotocol]r<>rj)rwr<>r<><00>None)r}rjr<>rj)r/rjr0r<>r<rjr<>r<>)r/rjr<>ztuple[str, str])r<>rjr<>rjr<>rj)=<3D>
__future__rr<>r<>r$<00>re<72>collections.abcr<00>typingrrr<00>
exceptionsr r
r r r rrr<00>__all__rrr1<00>compiler4r7r9r=r@rArCrFrHrJrQrTrrYrZrrarfr<00>parse_extension_listrkr<00>build_extension_listrtr<00>parse_subprotocol_listr<00>build_subprotocol_listrrr<>r<>r<>rr<00>r2r,<00><module>r<>s<><00><01>"<22> <0A><0F><10> <09>$<24>*<2A>*<2A>?<3F><02><02> <02><07> <0C>C<EFBFBD>L<EFBFBD><01>!&<26> <10>
<0A><10>
<0A><10> <11><10>
<1E> <10>  <09> <10>D 7<> <15>"<22>*<2A>*<2A>Y<EFBFBD>
<1F><07> <17> <17>B<EFBFBD>J<EFBFBD>J<EFBFBD>6<> 7<> <09> &<26> <1F>B<EFBFBD>J<EFBFBD>J<EFBFBD>J<><02><11>
<19>b<EFBFBD>j<EFBFBD>j<EFBFBD>8<>9<> <0B> D<01> <1A>r<EFBFBD>z<EFBFBD>z<EFBFBD>6<>7<> <0C> <17>B<EFBFBD>J<EFBFBD>J<EFBFBD><EFBFBD> '<27> <09>
5<>?<11>8<>?<11> <0F>?<11>
<0A>?<11><15> ?<11>
 <0A> ?<11>D -<2D> <0F> -<2D><19> -<2D>(+<2B> -<2D>!<21> -<2D> H<01> <1A>r<EFBFBD>z<EFBFBD>z<EFBFBD>E<><02> <0C>
=<3D> <0F>=<3D><19>=<3D>(+<2B>=<3D> <20>=<3D>$ D<01> !<1E> <0F>!<1E><19>!<1E>(+<2B>!<1E>#<23>!<1E>H8<> <0F>8<><19>8<>(+<2B>8<> <20>8<>2S<01>4'<27><14><06>
<17><06>%A<><06><08><06>& <06>'<27><14> (<28> <0F> (<28><19> (<28>(+<2B> (<28><1C> (<28>
S<01>+<2B><16>#<23>+<2B><16> D<01> 5<><19>b<EFBFBD>j<EFBFBD>j<EFBFBD>0<>1<> <0B> &<26> M<01>-<1E>` (r2