§
    Ètºf)2  ã            
       ó   — d Z ddlmZmZmZ ddlmZmZ ddlm	Z	m
Z
 ddl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mZmZ dd	l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* 	 ddl+m,Z, ddl-m.Z.m/Z/m0Z0 n# e1$ r dZ,Y nw xY w G d„ d¦  «        Z2 G d„ d¦  «        Z3 ee¦  «         G d„ d¦  «        ¦   «         Z4 G d„ dee3¦  «        Z5 G d„ d¦  «        Z6 G d„ de2ee¦  «        Z7 G d„ d ee3¦  «        Z8 G d!„ d"e2ee3ee6¦  «        Z9 G d#„ d$e2e3e6e!e"e¦  «        Z: e;¦   «          <                    e9 =                    ¦   «         ¦  «          e;¦   «          <                    e7 =                    ¦   «         ¦  «          e;¦   «          <                     e:¦   «          =                    ¦   «         ¦  «          G d%„ d&ee e3¦  «        Z> e;¦   «          <                    e> =                    ¦   «         ¦  «         dS )'z0
Tests for implementations of L{ITLSTransport}.
é    )ÚOptionalÚSequenceÚType)Ú	InterfaceÚimplementer)ÚDeferredÚDeferredList)ÚSSL4ClientEndpointÚSSL4ServerEndpointÚTCP4ClientEndpoint)ÚConnectionClosed)ÚIReactorSSLÚIStreamClientEndpointÚITLSTransport)ÚClientFactoryÚProtocolÚServerFactory)ÚBrokenContextFactoryÚConnectionTestsMixinÚEndpointCreator)ÚReactorBuilder)ÚAbortConnectionMixinÚConnectToTCPListenerMixinÚStreamTransportTestsMixin)ÚnetworkString)ÚFilePath)Úplatform)ÚSkipTest)ÚFILETYPE_PEM)ÚClientContextFactoryÚKeyPairÚPrivateCertificateNc                   ót   — e Zd ZU egZeeee                           e	d<    e
j        ¦   «         r	dZeedœZdS dS )ÚTLSMixinÚrequiredInterfaceszcFor some reason, these reactors don't deal with SSL disconnection correctly on Windows.  See #3371.)z*twisted.internet.glib2reactor.Glib2Reactorz(twisted.internet.gtk2reactor.Gtk2ReactorN)Ú__name__Ú
__module__Ú__qualname__r   r%   r   r   r   r   Ú__annotations__r   Ú	isWindowsÚmsgÚskippedReactors© ó    ú]/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/internet/test/test_tls.pyr$   r$   2   sl   € € € € € € Ø?J¸mÐ˜ ¨$¨y¬/Ô!:Ô;ÐKÐKÑKà€xÔÑÔð 
ð>ð 	ð
 ;>Ø8;ð
ð 
ˆˆˆð
ð 
r.   r$   c                   ó¢   — e Zd ZddlZ e eej        ¦  «        ¦  «                             d¦  «                             d¦  «        Z	[d„ Z
d„ ZdS )ÚContextGeneratingMixinr   Ns   tests
   server.pemc                 óÂ   — | j                              ¦   «         }t          j        |t	          j        |t
          ¦  «        t
          ¦  «        }|                     ¦   «         S )zM
        Return a new SSL context suitable for use in a test server.
        )Ú_pemÚ
getContentr"   Úloadr!   r   Úoptions)ÚselfÚpemÚcerts      r/   ÚgetServerContextz'ContextGeneratingMixin.getServerContextH   sL   € ð Œi×"Ò"Ñ$Ô$ˆÝ!Ô&Ø•”˜c¥<Ñ0Ô0µ,ñ
ô 
ˆð �|Š|‰~Œ~Ðr.   c                 ó   — t          ¦   «         S ©N)r    ©r7   s    r/   ÚgetClientContextz'ContextGeneratingMixin.getClientContextR   s   € Ý#Ñ%Ô%Ð%r.   )r&   r'   r(   Útwistedr   r   Ú__file__ÚsiblingÚchildr3   r:   r>   r-   r.   r/   r1   r1   @   s}   € € € € € Ø€N€N€Nð 	ˆ��˜wÔ/Ñ0Ô0Ñ1Ô1×9Ò9¸'ÑBÔB×HÒHÈÑWÔWð 	ð 	ðð ð ð&ð &ð &ð &ð &r.   r1   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚStartTLSClientEndpointa!  
    An endpoint which wraps another one and adds a TLS layer immediately when
    connections are set up.

    @ivar wrapped: A L{IStreamClientEndpoint} provider which will be used to
        really set up connections.

    @ivar contextFactory: A L{ContextFactory} to use to do TLS.
    c                 ó"   — || _         || _        d S r<   )ÚwrappedÚcontextFactory)r7   rF   rG   s      r/   Ú__init__zStartTLSClientEndpoint.__init__b   s   € ØˆŒØ,ˆÔÐÐr.   c                 óv   ‡ ‡—  G ˆˆ fd„dt           ¦  «        }‰ j                              |¦   «         ¦  «        S )z¼
        Establish a connection using a protocol build by C{factory} and
        immediately start TLS on it.  Return a L{Deferred} which fires with the
        protocol instance.
        c                   ó   •— e Zd Zˆ ˆfd„ZdS )ú6StartTLSClientEndpoint.connect.<locals>.WrapperFactoryc                 ó\   •‡— ‰                      |¦  «        Š‰j        fˆˆfd„	}|‰_        ‰S )Nc                 óZ   •— ‰j                              ‰j        ¦  «          | ¦   «          d S r<   )Ú	transportÚstartTLSrG   )ÚorigÚprotocolr7   s    €€r/   ÚconnectionMadez\StartTLSClientEndpoint.connect.<locals>.WrapperFactory.buildProtocol.<locals>.connectionMades   s,   ø€ ØÔ&×/Ò/°Ô0CÑDÔDÐDØ�D‘F”F�F�F�Fr.   )ÚbuildProtocolrR   )ÚwrapperSelfÚaddrrR   rQ   Úfactoryr7   s      @€€r/   rS   zDStartTLSClientEndpoint.connect.<locals>.WrapperFactory.buildProtocolp   sO   øø€ Ø"×0Ò0°Ñ6Ô6�à(0Ô(?ð ð ð ð ð ð ð ð +9�Ô'Ø�r.   N)r&   r'   r(   rS   )rV   r7   s   €€r/   ÚWrapperFactoryrK   o   s3   ø€ € € € € ð ð  ð  ð  ð  ð  ð  ð  r.   rW   )r   rF   Úconnect)r7   rV   rW   s   `` r/   rX   zStartTLSClientEndpoint.connectf   s]   øø€ ð		 ð 		 ð 		 ð 		 ð 		 ð 		 ð 		 ð 		 �]ñ 		 ô 		 ð 		 ð Œ|×#Ò# N NÑ$4Ô$4Ñ5Ô5Ð5r.   N)r&   r'   r(   Ú__doc__rH   rX   r-   r.   r/   rD   rD   V   s<   € € € € € ðð ð-ð -ð -ð6ð 6ð 6ð 6ð 6r.   rD   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚStartTLSClientCreatorz{
    Create L{ITLSTransport.startTLS} endpoint for the client, and normal SSL
    for server just because it's easier.
    c                 óH   — t          |d|                      ¦   «         ¦  «        S )zµ
        Construct an SSL server endpoint.  This should be constructing a TCP
        server endpoint which immediately calls C{startTLS} instead, but that
        is hard.
        r   ©r   r:   ©r7   Úreactors     r/   ÚserverzStartTLSClientCreator.serverƒ   s"   € õ " '¨1¨d×.CÒ.CÑ.EÔ.EÑFÔFÐFr.   c                 ób   — t          t          |d|j        ¦  «        t          ¦   «         ¦  «        S )zS
        Construct a TCP client endpoint wrapped to immediately start TLS.
        ú	127.0.0.1)rD   r   Úportr    ©r7   r_   ÚserverAddresss      r/   ÚclientzStartTLSClientCreator.client‹   s1   € õ &Ý˜w¨°]Ô5GÑHÔHÝ Ñ"Ô"ñ
ô 
ð 	
r.   N©r&   r'   r(   rY   r`   rf   r-   r.   r/   r[   r[   }   s?   € € € € € ðð ð
Gð Gð Gð
ð 
ð 
ð 
ð 
r.   r[   c                   ó   — e Zd ZdZd„ ZdS )ÚBadContextTestsMixinz�
    Mixin for L{ReactorBuilder} subclasses which defines a helper for testing
    the handling of broken context factories.
    c                 óÚ   — |                       ¦   «         }|                      t          ||t          ¦   «         ¦  «        }|                      t          j        t          |¦  «        ¦  «         dS )aÐ  
        Assert that the exception raised by a broken context factory's
        C{getContext} method is raised by some reactor method.  If it is not, an
        exception will be raised to fail the test.

        @param useIt: A two-argument callable which will be called with a
            reactor and a broken context factory and which is expected to raise
            the same exception as the broken context factory's C{getContext}
            method.
        N)ÚbuildReactorÚassertRaisesÚ
ValueErrorr   ÚassertEqualÚmessageÚstr)r7   ÚuseItr_   Úexcs       r/   Ú_testBadContextz$BadContextTestsMixin._testBadContext›   s[   € ð ×#Ò#Ñ%Ô%ˆØ×Ò¥
¨E°7Õ<PÑ<RÔ<RÑSÔSˆØ×ÒÕ-Ô5µs¸3±x´xÑ@Ô@Ð@Ð@Ð@r.   N)r&   r'   r(   rY   rs   r-   r.   r/   ri   ri   •   s2   € € € € € ðð ð
Að Að Að Að Ar.   ri   c                   ó&   — e Zd ZdZ e¦   «         ZdS )ÚStartTLSClientTestsMixinzš
    Tests for TLS connections established using L{ITLSTransport.startTLS} (as
    opposed to L{IReactorSSL.connectSSL} or L{IReactorSSL.listenSSL}).
    N)r&   r'   r(   rY   r[   Ú	endpointsr-   r.   r/   ru   ru   «   s(   € € € € € ðð ð
 &Ð%Ñ'Ô'€I€I€Ir.   ru   c                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú
SSLCreatorz
    Create SSL endpoints.
    c                 óH   — t          |d|                      ¦   «         ¦  «        S )zQ
        Create an SSL server endpoint on a TCP/IP-stack allocated port.
        r   r]   r^   s     r/   r`   zSSLCreator.server¹   s"   € õ " '¨1¨d×.CÒ.CÑ.EÔ.EÑFÔFÐFr.   c                 óH   — t          |d|j        t          ¦   «         ¦  «        S )z¨
        Create an SSL client endpoint which will connect localhost on
        the port given by C{serverAddress}.

        @type serverAddress: L{IPv4Address}
        rb   )r
   rc   r    rd   s      r/   rf   zSSLCreator.client¿   s)   € õ "Ø�[ -Ô"4Õ6JÑ6LÔ6Lñ
ô 
ð 	
r.   Nrg   r-   r.   r/   rx   rx   ´   s?   € € € € € ðð ðGð Gð Gð	
ð 	
ð 	
ð 	
ð 	
r.   rx   c                   ó2   — e Zd ZdZ e¦   «         Zd„ Zd„ ZdS )ÚSSLClientTestsMixinz<
    Mixin defining tests relating to L{ITLSTransport}.
    c                 ó6   — d„ }|                       |¦  «         dS )zÆ
        If the context factory passed to L{IReactorSSL.connectSSL} raises an
        exception from its C{getContext} method, that exception is raised by
        L{IReactorSSL.connectSSL}.
        c                 óJ   — |                       ddt          ¦   «         |¦  «        S )Nrb   iÒ  )Ú
connectSSLr   ©r_   rG   s     r/   rq   z2SSLClientTestsMixin.test_badContext.<locals>.useItß   s'   € Ø×%Ò%Ø˜T¥=¡?¤?°Nñô ð r.   N©rs   ©r7   rq   s     r/   Útest_badContextz#SSLClientTestsMixin.test_badContextØ   s-   € ð	ð 	ð 	ð
 	×Ò˜UÑ#Ô#Ð#Ð#Ð#r.   c                 óö  ‡‡	—  G d„ dt           ¦  «        }|                      ¦   «         Š	t          ¦   «         }t          ¦   «         |_        ||_        |                      ¦   «         |_        t          ¦   «         }t          ¦   «         |_        ||_        |  	                    ¦   «         |_        |j        j
        |j        _
        g Št          |j        |j        gd¬¦  «        }ˆfd„}|                     |¦  «         ‰	                     d|d¬¦  «        }|                      |j        ¦  «         ‰	                     |                     ¦   «         j        |                     ¦   «         j        |¦  «        }|                      |j        ¦  «         |                     ˆ	fd	„¦  «         |                      ‰	¦  «         ‰d                              t.          ¦  «         ‰d
                              t.          ¦  «         dS )aO  
        L{ITCPTransport.loseConnection} ends a connection which was set up with
        L{ITLSTransport.startTLS} and which has recently been written to.  This
        is intended to verify that a socket send error masked by the TLS
        implementation doesn't prevent the connection from being reported as
        closed.
        c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )úQSSLClientTestsMixin.test_disconnectAfterWriteAfterStartTLS.<locals>.ShortProtocolc                 ó,  — t          j        | j        ¦  «        s<| j        j        }d | j        _        |                     t          d¦  «        ¦  «         d S | j                             | j        j        ¦  «         | j         	                    d¦  «         d S )NzNo ITLSTransport supportó   x)
r   Ú
providedByrN   rV   ÚfinishedÚerrbackr   rO   ÚcontextÚwrite)r7   rŠ   s     r/   rR   z`SSLClientTestsMixin.test_disconnectAfterWriteAfterStartTLS.<locals>.ShortProtocol.connectionMadeð   sˆ   € Ý$Ô/°´Ñ?Ô?ð à#œ|Ô4�HØ,0�D”LÔ)Ø×$Ò$¥XÐ.HÑ%IÔ%IÑJÔJÐJØ�Fð ”×'Ò'¨¬Ô(<Ñ=Ô=Ð=ð ”×$Ò$ TÑ*Ô*Ð*Ð*Ð*r.   c                 ól   — | j                              d¦  «         | j                              ¦   «          d S )Nó   y)rN   r�   ÚloseConnection)r7   Údatas     r/   ÚdataReceivedz^SSLClientTestsMixin.test_disconnectAfterWriteAfterStartTLS.<locals>.ShortProtocol.dataReceivedþ   s6   € ð
 ”×$Ò$ TÑ*Ô*Ð*ð ”×-Ò-Ñ/Ô/Ð/Ð/Ð/r.   c                 óh   — | j         j        }|�#d | j         _        |                     |¦  «         d S d S r<   )rV   rŠ   Úcallback)r7   ÚreasonrŠ   s      r/   ÚconnectionLostz`SSLClientTestsMixin.test_disconnectAfterWriteAfterStartTLS.<locals>.ShortProtocol.connectionLost  s@   € ð  œ<Ô0�ØÐ'Ø,0�D”LÔ)Ø×%Ò% fÑ-Ô-Ð-Ð-Ð-ð (Ð'r.   N)r&   r'   r(   rR   r’   r–   r-   r.   r/   ÚShortProtocolr†   ï   sA   € € € € € ð+ð +ð +ð0ð 0ð 0ð.ð .ð .ð .ð .r.   r—   T)ÚconsumeErrorsc                 óf   •— ‰                      | d         d         | d         d         g¦  «         d S )Nr   é   )Úextend)ÚresultsÚlostConnectionResultss    €r/   Ú
cbFinishedzNSSLClientTestsMixin.test_disconnectAfterWriteAfterStartTLS.<locals>.cbFinished"  s2   ø€ Ø!×(Ò(¨'°!¬*°Q¬-¸À¼ÀA¼Ð)GÑHÔHÐHÐHÐHr.   r   rb   )Ú	interfacec                 ó,   •— ‰                      ¦   «         S r<   )Ústop)Úignr_   s    €r/   ú<lambda>zLSSLClientTestsMixin.test_disconnectAfterWriteAfterStartTLS.<locals>.<lambda>/  s   ø€ ¨¯ª©¬€ r.   rš   N)r   rk   r   r   rŠ   rQ   r:   rŒ   r   r>   Úmethodr	   ÚaddCallbackÚ	listenTCPÚ
addCleanupÚstopListeningÚ
connectTCPÚgetHostÚhostrc   Ú
disconnectÚ
runReactorÚtrapr   )
r7   r—   ÚserverFactoryÚclientFactoryrŠ   rž   rc   Ú	connectorr�   r_   s
           @@r/   Ú&test_disconnectAfterWriteAfterStartTLSz:SSLClientTestsMixin.test_disconnectAfterWriteAfterStartTLSæ   sõ  øø€ ð	.ð 	.ð 	.ð 	.ð 	.�Hñ 	.ô 	.ð 	.ðB ×#Ò#Ñ%Ô%ˆå%™œˆÝ!)¡¤ˆÔØ!.ˆÔØ $× 5Ò 5Ñ 7Ô 7ˆÔå%™œˆÝ!)¡¤ˆÔØ!.ˆÔØ $× 5Ò 5Ñ 7Ô 7ˆÔØ'4Ô'<Ô'CˆÔÔ$à "ÐÝØÔ# ]Ô%;Ð<ÈDð
ñ 
ô 
ˆð	Ið 	Ið 	Ið 	Ið 	Ið 	×Ò˜ZÑ(Ô(Ð(à× Ò   M¸[Ð ÑIÔIˆØ�Š˜Ô*Ñ+Ô+Ð+à×&Ò&Ø�LŠL‰NŒNÔ §¢¡¤Ô!4°mñ
ô 
ˆ	ð 	�Š˜	Ô,Ñ-Ô-Ð-à×ÒÐ7Ð7Ð7Ð7Ñ8Ô8Ð8Ø�Š˜Ñ Ô Ð Ø˜aÔ ×%Ò%Õ&6Ñ7Ô7Ð7Ø˜aÔ ×%Ò%Õ&6Ñ7Ô7Ð7Ð7Ð7r.   N)r&   r'   r(   rY   rx   rv   rƒ   r²   r-   r.   r/   r|   r|   Ë   sN   € € € € € ðð ð �
‘”€Ið$ð $ð $ðL8ð L8ð L8ð L8ð L8r.   r|   c                   ó0   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTLSPortTestsBuilderz,
    Tests for L{IReactorSSL.listenSSL}
    c                 óT   — |                      d||                      ¦   «         ¦  «        S )z0
        Get a TLS port from a reactor.
        r   )Ú	listenSSLr:   )r7   r_   rV   s      r/   ÚgetListeningPortz$TLSPortTestsBuilder.getListeningPortA  s(   € ð × Ò   G¨T×-BÒ-BÑ-DÔ-DÑEÔEÐEr.   c                 ó>   — d||                      ¦   «         j        fz  S )zY
        Get the message expected to be logged when a TLS port starts listening.
        z%s (TLS) starting on %d©rª   rc   )r7   rc   rV   s      r/   Ú#getExpectedStartListeningLogMessagez7TLSPortTestsBuilder.getExpectedStartListeningLogMessageG  s   € ð )¨G°T·\²\±^´^Ô5HÐ+IÑIÐIr.   c                 ó<   — d|                      ¦   «         j        › d�S )zJ
        Get the expected connection lost message for a TLS port.
        z
(TLS Port z Closed)r¹   )r7   rc   s     r/   ÚgetExpectedConnectionLostLogMsgz3TLSPortTestsBuilder.getExpectedConnectionLostLogMsgM  s    € ð :˜DŸLšL™NœNÔ/Ð9Ð9Ð9Ð9r.   c                 ó6   — d„ }|                       |¦  «         dS )zÄ
        If the context factory passed to L{IReactorSSL.listenSSL} raises an
        exception from its C{getContext} method, that exception is raised by
        L{IReactorSSL.listenSSL}.
        c                 óH   — |                       dt          ¦   «         |¦  «        S )Nr   )r¶   r   r€   s     r/   rq   z2TLSPortTestsBuilder.test_badContext.<locals>.useItZ  s   € Ø×$Ò$ Q­©¬¸ÑHÔHÐHr.   Nr�   r‚   s     r/   rƒ   z#TLSPortTestsBuilder.test_badContextS  s0   € ð	Ið 	Ið 	Ið 	×Ò˜UÑ#Ô#Ð#Ð#Ð#r.   c                 ój   — |                      | j        |j        ||                      ¦   «         ¦  «        S )a  
        Connect to the given listening TLS port, assuming the
        underlying transport is TCP.

        @param reactor: The reactor under test.
        @type reactor: L{IReactorSSL}

        @param address: The listening's address.  Only the C{port}
            component is used; see
            L{ConnectToTCPListenerMixin.LISTENER_HOST}.
        @type address: L{IPv4Address} or L{IPv6Address}

        @param factory: The client factory.
        @type factory: L{ClientFactory}

        @return: The connector
        )r   ÚLISTENER_HOSTrc   r>   )r7   r_   ÚaddressrV   s       r/   ÚconnectToListenerz%TLSPortTestsBuilder.connectToListener_  s9   € ð$ ×!Ò!ØÔØŒLØØ×!Ò!Ñ#Ô#ñ	
ô 
ð 	
r.   N)	r&   r'   r(   rY   r·   rº   r¼   rƒ   rÂ   r-   r.   r/   r´   r´   5  so   € € € € € ðð ðFð Fð FðJð Jð Jð:ð :ð :ð
$ð 
$ð 
$ð
ð 
ð 
ð 
ð 
r.   r´   c                   ó2   — e Zd ZdZefZ e¦   «         Zd„ ZdS )ÚAbortSSLConnectionTestsz-
    C{abortConnection} tests using SSL.
    c                 ó2   — t           €t          d¦  «        ‚d S )NzOpenSSL not available.)r   r   r=   s    r/   ÚsetUpzAbortSSLConnectionTests.setUpˆ  s   € ÝÐÝÐ3Ñ4Ô4Ð4ð  Ðr.   N)	r&   r'   r(   rY   r   r%   rx   rv   rÆ   r-   r.   r/   rÄ   rÄ   ~  sB   € € € € € ðð ð &˜ÐØ�
‘”€Ið5ð 5ð 5ð 5ð 5r.   rÄ   )?rY   Útypingr   r   r   Úzope.interfacer   r   Útwisted.internet.deferr   r	   Útwisted.internet.endpointsr
   r   r   Útwisted.internet.errorr   Útwisted.internet.interfacesr   r   r   Útwisted.internet.protocolr   r   r   Ú&twisted.internet.test.connectionmixinsr   r   r   Ú#twisted.internet.test.reactormixinsr   Útwisted.internet.test.test_tcpr   r   r   Útwisted.python.compatr   Útwisted.python.filepathr   Útwisted.python.runtimer   Útwisted.trial.unittestr   ÚOpenSSL.cryptor   Útwisted.internet.sslr    r!   r"   ÚImportErrorr$   r1   rD   r[   ri   ru   rx   r|   r´   ÚglobalsÚupdateÚmakeTestCaseClassesrÄ   r-   r.   r/   ú<module>rÛ      sÉ  ððð ð
 ,Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð
 4Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð ð ð
 MÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Lðð ð ð ð ð ð ð ð ð ð
 ?Ð >Ð >Ð >Ð >Ð >ðð ð ð ð ð ð ð ð ð ð
 0Ð /Ð /Ð /Ð /Ð /Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø +Ð +Ð +Ð +Ð +Ð +Ø +Ð +Ð +Ð +Ð +Ð +ðWØ+Ð+Ð+Ð+Ð+Ð+ð WÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVøð ð ð ð Ø€L€L€Lðøøøð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð&ð &ð &ð &ð &ñ &ô &ð &ð, €Ð"Ñ#Ô#ð#6ð #6ð #6ð #6ð #6ñ #6ô #6ñ $Ô#ð#6ðL
ð 
ð 
ð 
ð 
˜OÐ-Cñ 
ô 
ð 
ð0Að Að Að Að Añ Aô Að Að,(ð (ð (ð (ð (˜x¨Ð9Mñ (ô (ð (ð
ð 
ð 
ð 
ð 
�Ð"8ñ 
ô 
ð 
ð.g8ð g8ð g8ð g8ð g8ØØØØØñg8ô g8ð g8ðTA
ð A
ð A
ð A
ð A
ØØØØØØñA
ô A
ð A
ðH €�	„	× Ò Ð$×8Ò8Ñ:Ô:Ñ ;Ô ;Ð ;Ø €�	„	× Ò Ð)×=Ò=Ñ?Ô?Ñ @Ô @Ð @Ø €�	„	× Ò Ð$Ð$Ñ&Ô&×:Ò:Ñ<Ô<Ñ =Ô =Ð =ð5ð 5ð 5ð 5ð 5ØÐ(Ð*@ñ5ô 5ð 5ð €�	„	× Ò Ð(×<Ò<Ñ>Ô>Ñ ?Ô ?Ð ?Ð ?Ð ?s   Á4B ÂBÂB