§
    �Ûg®.  ã                   ó²  — d dl Z d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
 d„ Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed	¦  «        Z ed
¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z  ed¦  «        Z! ed¦  «        Z" ed¦  «        Z# ed¦  «        Z$ ed¦  «        Z% G d„ d ¦  «        Z& G d!„ d"¦  «        Z' G d#„ d$e(¦  «        Z) G d%„ d&e(¦  «        Z*d'„ Z+e j,        dd(…         d)k    re+nej-        Z. e)¦   «         Z/d*„ Z0d+„ Z1 G d,„ d-e(¦  «        Z2 G d.„ d/e(¦  «        Z3d0„ Z4d1„ Z5 G d2„ d3e(¦  «        Z6dS )4é    N)Ú_decode_stringÚ_is_shutting_down)Úget_library_namec                 ób   — t          | t          j        fi ¦  «        }t          j        |¦  «        S ©N)ÚtypeÚctypesÚ	StructureÚPOINTER)ÚnameÚnewclss     úJ/granary/edev/quantum/lib/python3.11/site-packages/llvmlite/binding/ffi.pyÚ_make_opaque_refr   
   s)   € Ý�$�Ô)Ð+¨RÑ0Ô0€FÝŒ>˜&Ñ!Ô!Ð!ó    ÚLLVMContextÚ
LLVMModuleÚ	LLVMValueÚLLVMTypeÚLLVMExecutionEngineÚLLVMPassManagerBuilderÚLLVMPassManagerÚLLVMTargetDataÚLLVMTargetLibraryInfoÚ
LLVMTargetÚLLVMTargetMachineÚLLVMMemoryBufferÚLLVMAttributeListIteratorÚLLVMAttributeSetIteratorÚLLVMGlobalsIteratorÚLLVMFunctionsIteratorÚLLVMBlocksIteratorÚLLVMArgumentsIteratorÚLLVMInstructionsIteratorÚLLVMOperandsIteratorÚLLVMTypesIteratorÚLLVMObjectCacheÚLLVMObjectFileÚLLVMSectionIteratorÚLLVMOrcLLJITRefÚLLVMOrcDylibTrackerRefc                   ó0   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú	_LLVMLocka6  A Lock to guarantee thread-safety for the LLVM C-API.

    This class implements __enter__ and __exit__ for acquiring and releasing
    the lock as a context manager.

    Also, callbacks can be attached so that every time the lock is acquired
    and released the corresponding callbacks will be invoked.
    c                 óD   — t          j        ¦   «         | _        g | _        d S r   )Ú	threadingÚRLockÚ_lockÚ_cblist©Úselfs    r   Ú__init__z_LLVMLock.__init__4   s   € õ ”_Ñ&Ô&ˆŒ
ØˆŒˆˆr   c                 ó>   — | j                              ||f¦  «         dS )z®Register callbacks that are invoked immediately after the lock is
        acquired (``acq_fn()``) and immediately before the lock is released
        (``rel_fn()``).
        N)r1   Úappend©r3   Úacq_fnÚrel_fns      r   Úregisterz_LLVMLock.register:   s%   € ð
 	Œ×Ò˜V VÐ,Ñ-Ô-Ð-Ð-Ð-r   c                 ó>   — | j                              ||f¦  «         dS )z)Remove the registered callbacks.
        N)r1   Úremover7   s      r   Ú
unregisterz_LLVMLock.unregisterA   s%   € ð 	Œ×Ò˜V VÐ,Ñ-Ô-Ð-Ð-Ð-r   c                 óf   — | j                              ¦   «          | j        D ]\  }} |¦   «          Œd S r   )r0   Úacquirer1   r7   s      r   Ú	__enter__z_LLVMLock.__enter__F   sB   € ØŒ
×ÒÑÔÐà"œlð 	ð 	‰NˆF�FØˆF‰HŒHˆHˆHð	ð 	r   c                 óf   — | j         D ]\  }} |¦   «          Œ| j                             ¦   «          d S r   )r1   r0   Úrelease)r3   Úexc_detailsr8   r9   s       r   Ú__exit__z_LLVMLock.__exit__L   s>   € à"œlð 	ð 	‰NˆF�FØˆF‰HŒHˆHˆHØŒ
×ÒÑÔÐÐÐr   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r4   r:   r=   r@   rD   © r   r   r,   r,   +   si   € € € € € ðð ðð ð ð.ð .ð .ð.ð .ð .ð
ð ð ðð ð ð ð r   r,   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú_suppress_cleanup_errorsc                 ó   — || _         d S r   )Ú_context)r3   Úcontexts     r   r4   z!_suppress_cleanup_errors.__init__T   s   € ØˆŒˆˆr   c                 ó4   — | j                              ¦   «         S r   )rM   r@   r2   s    r   r@   z"_suppress_cleanup_errors.__enter__W   s   € ØŒ}×&Ò&Ñ(Ô(Ð(r   c                 ó^   — 	 | j                              |||¦  «        S # t          $ r Y d S w xY wr   )rM   rD   ÚPermissionError)r3   Úexc_typeÚ	exc_valueÚ	tracebacks       r   rD   z!_suppress_cleanup_errors.__exit__Z   sC   € ð	Ø”=×)Ò)¨(°I¸yÑIÔIÐIøÝð 	ð 	ð 	ØˆDˆDð	øøøs   ‚ ž
,«,N)rE   rF   rG   r4   r@   rD   rI   r   r   rK   rK   S   sA   € € € € € ð ð  ð  ð)ð )ð )ðð ð ð ð r   rK   c                   ón   — e Zd ZdZg d¢Zd„ Zd„ Zed„ ¦   «         Zd„ Z	ed„ ¦   «         Z
ed„ ¦   «         Zd	S )
Ú_lib_wrapperz{Wrap libllvmlite with a lock such that only one thread may access it at
    a time.

    This class duck-types a CDLL.
    )Ú_lib_handleÚ_fntabr0   c                 óH   — d | _         i | _        t          ¦   «         | _        d S r   )rW   rX   r,   r0   r2   s    r   r4   z_lib_wrapper.__init__i   s    € ØˆÔØˆŒÝ‘[”[ˆŒ
ˆ
ˆ
r   c                 ó˜  — 	 t          t          t                               d¦  «        d         t	          ¦   «         ¦  «        ¦  «        5 }t          j        t          |¦  «        ¦  «        | _        | j         	                    ¦   «         }d d d ¦  «         d S # 1 swxY w Y   d S # t          t          f$ r}t          d¦  «        |‚d }~ww xY w)Nú.r   z&Could not find/load shared object file)rK   Ú_importlib_resources_pathrE   Ú
rpartitionr   r	   ÚCDLLÚstrrW   ÚLLVMPY_GetVersionInfoÚOSErrorÚAttributeError)r3   Úlib_pathÚ_Úes       r   Ú	_load_libz_lib_wrapper._load_libn   s  € ð	KÝ)Õ*CÝ×'Ò'¨Ñ,Ô,¨QÔ/Ý$Ñ&Ô&ñ+(ô +(ñ )ô )ð =à,4Ý#)¤;­s°8©}¬}Ñ#=Ô#=�Ô àÔ$×:Ò:Ñ<Ô<�ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =øõ �Ð(ð 	Kð 	Kð 	Kõ
 ÐBÑCÔCÈÐJøøøøð	Køøøs=   ‚AB# Á	A BÂ	B# ÂBÂB# ÂBÂB# Â#C	Â4CÃC	c                 óF   — | j         s|                      ¦   «          | j         S r   )rW   rf   r2   s    r   Ú_libz_lib_wrapper._lib}   s(   € ð Ôð 	Ø�NŠNÑÔÐØÔÐr   c                 óª   — 	 | j         |         S # t          $ r9 t          | j        |¦  «        }t	          | j        |¦  «        }|| j         |<   |cY S w xY wr   )rX   ÚKeyErrorÚgetattrrh   Ú_lib_fn_wrapperr0   )r3   r   ÚcfnÚwrappeds       r   Ú__getattr__z_lib_wrapper.__getattr__„   sf   € ð	Ø”;˜tÔ$Ð$øÝð 	ð 	ð 	å˜$œ) TÑ*Ô*ˆCÝ% d¤j°#Ñ6Ô6ˆGØ 'ˆDŒK˜ÑØˆNˆNˆNð	øøøs   ‚ �A AÁAc                 ó   — | j         j        S )zgThe name of the library passed in the CDLL constructor.

        For duck-typing a ctypes.CDLL
        )rh   Ú_namer2   s    r   rq   z_lib_wrapper._nameŽ   s   € ð ŒyŒÐr   c                 ó   — | j         j        S )z]The system handle used to access the library.

        For duck-typing a ctypes.CDLL
        )rh   Ú_handler2   s    r   rs   z_lib_wrapper._handle–   s   € ð ŒyÔ Ð r   N)rE   rF   rG   rH   Ú	__slots__r4   rf   Úpropertyrh   ro   rq   rs   rI   r   r   rV   rV   a   s¬   € € € € € ðð ð
 3Ð2Ð2€Ið!ð !ð !ð
Kð Kð Kð ð ð  ñ „Xð ðð ð ð ðð ñ „Xðð ð!ð !ñ „Xð!ð !ð !r   rV   c                   ó’   — e Zd ZdZddgZd„ Zed„ ¦   «         Zej        d„ ¦   «         Zed„ ¦   «         Z	e	j        d„ ¦   «         Z	d	„ Z
d
S )rl   zîWraps and duck-types a ctypes.CFUNCTYPE to provide
    automatic locking when the wrapped function is called.

    TODO: we can add methods to mark the function as threadsafe
          and remove the locking-step on call when marked.
    r0   Ú_cfnc                 ó"   — || _         || _        d S r   ©r0   rw   )r3   Úlockrm   s      r   r4   z_lib_fn_wrapper.__init__¨   s   € ØˆŒ
ØˆŒ	ˆ	ˆ	r   c                 ó   — | j         j        S r   ©rw   Úargtypesr2   s    r   r}   z_lib_fn_wrapper.argtypes¬   s   € àŒyÔ!Ð!r   c                 ó   — || j         _        d S r   r|   )r3   r}   s     r   r}   z_lib_fn_wrapper.argtypes°   s   € à%ˆŒ	ÔÐÐr   c                 ó   — | j         j        S r   ©rw   Úrestyper2   s    r   r�   z_lib_fn_wrapper.restype´   s   € àŒyÔ Ð r   c                 ó   — || j         _        d S r   r€   )r3   r�   s     r   r�   z_lib_fn_wrapper.restype¸   s   € à#ˆŒ	ÔÐÐr   c                 ó^   — | j         5   | j        |i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S r   ry   )r3   ÚargsÚkwargss      r   Ú__call__z_lib_fn_wrapper.__call__¼   s‚   € ØŒZð 	.ð 	.Ø�4”9˜dÐ- fÐ-Ð-ð	.ð 	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.s   ˆ"¢&©&N)rE   rF   rG   rH   rt   r4   ru   r}   Úsetterr�   r†   rI   r   r   rl   rl   Ÿ   s¸   € € € € € ðð ð ˜&Ð!€Iðð ð ð ð"ð "ñ „Xð"ð „_ð&ð &ñ „_ð&ð ð!ð !ñ „Xð!ð „^ð$ð $ñ „^ð$ð.ð .ð .ð .ð .r   rl   c                 óT   — t          j        t          j        | ¦  «        |z  ¦  «        S )a  Replacement implementation of `import.resources.path` to avoid
    deprecation warning following code at importlib_resources/_legacy.py
    as suggested by https://importlib-resources.readthedocs.io/en/latest/using.html#migrating-from-legacy

    Notes on differences from importlib.resources implementation:

    The `_common.normalize_path(resource)` call is skipped because it is an
    internal API and it is unnecessary for the use here. What it does is
    ensuring `resource` is a str and that it does not contain path separators.
    )Ú_impresÚas_fileÚfiles)ÚpackageÚresources     r   Ú_importlib_resources_path_replrŽ   Á   s#   € õ Œ?�7œ=¨Ñ1Ô1°HÑ<Ñ=Ô=Ð=r   é   )é   é	   c                 óF   — t           j                             | |¦  «         dS )z~Register callback functions for lock acquire and release.
    *acq_fn* and *rel_fn* are callables that take no arguments.
    N)Úlibr0   r:   ©r8   r9   s     r   Úregister_lock_callbackr•   ×   s"   € õ „I×Ò�v˜vÑ&Ô&Ð&Ð&Ð&r   c                 óF   — t           j                             | |¦  «         dS )z‘Remove the registered callback functions for lock acquire and release.
    The arguments are the same as used in `register_lock_callback()`.
    N)r“   r0   r=   r”   s     r   Úunregister_lock_callbackr—   Þ   s"   € õ „I×Ò˜ Ñ(Ô(Ð(Ð(Ð(r   c                   ó   — e Zd ZdZdS )Ú_DeadPointerz:
    Dummy class to make error messages more helpful.
    N)rE   rF   rG   rH   rI   r   r   r™   r™   å   s   € € € € € ðð ð ð r   r™   c                   ó†   — e Zd ZdZ e¦   «         Zed„ ¦   «         Zdd„Zd„ Z	d„ Z
d„ Zefd	„Zd
„ Zd„ ZeZed„ ¦   «         ZdS )ÚOutputStringz<
    Object for managing the char* output of LLVM APIs.
    c                 óT   —  | t          j        |t           j        ¦  «        ¬¦  «        S )a%  Constructing from a pointer returned from the C-API.
        The pointer must be allocated with LLVMPY_CreateString.

        Note
        ----
        Because ctypes auto-converts *restype* of *c_char_p* into a python
        string, we must use *c_void_p* to obtain the raw pointer.
        )Úinit)r	   ÚcastÚc_char_p)ÚclsÚptrs     r   Úfrom_returnzOutputString.from_returnñ   s%   € ð ˆs�œ C­¬Ñ9Ô9Ð:Ñ:Ô:Ð:r   TNc                 óŠ   — |�|nt          j        d ¦  «        | _        t          j        | j        ¦  «        | _        || _        d S r   )r	   rŸ   Ú_ptrÚbyrefÚ_as_parameter_Ú_owned)r3   Úownedr�   s      r   r4   zOutputString.__init__ý   s;   € Ø Ð,�D�Dµ&´/À$Ñ2GÔ2GˆŒ	Ý$œl¨4¬9Ñ5Ô5ˆÔØˆŒˆˆr   c                 óv   — | j         �1| j        rt                               | j         ¦  «         d | _         | `d S d S r   )r¤   r§   r“   ÚLLVMPY_DisposeStringr¦   r2   s    r   ÚclosezOutputString.close  sE   € ØŒ9Ð ØŒ{ð 4Ý×(Ò(¨¬Ñ3Ô3Ð3ØˆDŒIØÐ#Ð#Ð#ð	 !Ð r   c                 ó   — | S r   rI   r2   s    r   r@   zOutputString.__enter__	  s   € Øˆr   c                 ó.   — |                       ¦   «          d S r   ©r«   ©r3   rR   Úexc_valÚexc_tbs       r   rD   zOutputString.__exit__  ó   € Ø�
Š
‰Œˆˆˆr   c                 óX   —  |¦   «         s| j         �|                       ¦   «          d S d S d S r   r®   ©r3   r   s     r   Ú__del__zOutputString.__del__  s>   € ð !Ð Ñ"Ô"ð 	ØŒzÐ%Ø—
’
‘”���ð	ð 	Ø%Ð%r   c                 óR   — | j         €dS | j         j        }|€J ‚t          |¦  «        S )Nz<dead OutputString>)r¤   Úvaluer   )r3   Úss     r   Ú__str__zOutputString.__str__  s0   € ØŒ9ÐØ(Ð(ØŒIŒOˆØˆ}ˆ}ˆ}Ý˜aÑ Ô Ð r   c                 ó*   — t          | j        ¦  «        S r   ©Úboolr¤   r2   s    r   Ú__bool__zOutputString.__bool__  ó   € Ý�D”I‰ŒÐr   c                 ó   — | j         j        S )z:Get the raw bytes of content of the char pointer.
        )r¤   r·   r2   s    r   ÚbyteszOutputString.bytes"  s   € ð ŒyŒÐr   )TN)rE   rF   rG   rH   r™   r¦   Úclassmethodr¢   r4   r«   r@   rD   r   rµ   r¹   r½   Ú__nonzero__ru   rÀ   rI   r   r   r›   r›   ë   sÜ   € € € € € ðð ð "�\‘^”^€Nàð	;ð 	;ñ „[ð	;ðð ð ð ð
$ð $ð $ðð ð ðð ð ð ):ð ð ð ð ð!ð !ð !ðð ð ð €Kàðð ñ „Xðð ð r   r›   c                 óX   — | �'t          t                               | ¦  «        ¦  «        S dS )z,To wrap string return-value from C-API.
    N)r_   r›   r¢   ©r¡   s    r   Ú
ret_stringrÅ   )  s,   € ð €Ý•<×+Ò+¨CÑ0Ô0Ñ1Ô1Ð1ð €r   c                 óH   — | �t                                | ¦  «        j        S dS )z+To wrap bytes return-value from C-API.
    N)r›   r¢   rÀ   rÄ   s    r   Ú	ret_bytesrÇ   0  s'   € ð €Ý×'Ò'¨Ñ,Ô,Ô2Ð2ð €r   c                   óˆ   — e Zd ZdZdZ e¦   «         ZdZd„ Zd„ Z	d„ Z
d„ Zed„ ¦   «         Zd„ Zd	„ Zefd
„Zd„ Zd„ ZeZd„ ZdS )Ú	ObjectRefzJ
    A wrapper around a ctypes pointer to a LLVM object ("resource").
    Fc                 ó\   — |€t          d¦  «        ‚|| _        || _        t          | _        d S )NzNULL pointer)Ú
ValueErrorr¤   r¦   r“   Ú_capi)r3   r¡   s     r   r4   zObjectRef.__init__@  s/   € Øˆ;Ý˜^Ñ,Ô,Ð,ØˆŒ	Ø!ˆÔÝˆŒ
ˆ
ˆ
r   c                 ó¦   — 	 | j         s| j        s|                      ¦   «          |                      ¦   «          dS # |                      ¦   «          w xY w)zI
        Close this object and do any required clean-up actions.
        N)Ú_closedr§   Ú_disposeÚdetachr2   s    r   r«   zObjectRef.closeG  sJ   € ð	Ø”<ð  ¨¬ð  Ø—’‘”�à�KŠK‰MŒMˆMˆMˆMøˆD�KŠK‰MŒMˆMˆMøøøs	   ‚": ºAc                 ó8   — | j         s| `d| _         d| _        dS dS )zN
        Detach the underlying LLVM resource without disposing of it.
        TN)rÎ   r¦   r¤   r2   s    r   rÐ   zObjectRef.detachQ  s0   € ð Œ|ð 	ØÐ#ØˆDŒLØˆDŒIˆIˆIð	ð 	r   c                 ó   — dS )zÒ
        Dispose of the underlying LLVM resource.  Should be overriden
        by subclasses.  Automatically called by close(), __del__() and
        __exit__() (unless the resource has been detached).
        NrI   r2   s    r   rÏ   zObjectRef._disposeZ  s   € € € r   c                 ó   — | j         S )zf
        Whether this object has been closed.  A closed object can't
        be used anymore.
        )rÎ   r2   s    r   ÚclosedzObjectRef.closeda  s   € ð Œ|Ðr   c                 óf   — t          | d¦  «        sJ ‚| j        rt          | j        ›d�¦  «        ‚| S )Nr«   z instance already closed)ÚhasattrrÎ   ÚRuntimeErrorÚ	__class__r2   s    r   r@   zObjectRef.__enter__i  s?   € Ý�t˜WÑ%Ô%Ð%Ð%Ð%ØŒ<ð 	QÝ¸t¼~¸~¸~ÐOÑPÔPÐPØˆr   c                 ó.   — |                       ¦   «          d S r   r®   r¯   s       r   rD   zObjectRef.__exit__o  r²   r   c                 óX   —  |¦   «         s| j         �|                       ¦   «          d S d S d S r   r®   r´   s     r   rµ   zObjectRef.__del__r  s<   € Ø Ð Ñ"Ô"ð 	ØŒzÐ%Ø—
’
‘”���ð	ð 	Ø%Ð%r   c                 ó*   — t          | j        ¦  «        S r   r»   r2   s    r   r½   zObjectRef.__bool__w  r¾   r   c                 ó¦   — t          |d¦  «        sdS t          j        | j        d         ¦  «        t          j        |j        d         ¦  «        k    S )Nr¤   Fr   )rÖ   r	   Ú	addressofr¤   )r3   Úothers     r   Ú__eq__zObjectRef.__eq__z  sK   € Ý�u˜fÑ%Ô%ð 	Ø�5ÝÔ ¤	¨!¤Ñ-Ô-ÝÔ˜UœZ¨œ]Ñ+Ô+ò,ð 	,r   c                 ón   — t          t          j        | j        t          j        ¦  «        j        ¦  «        S r   )Úhashr	   rž   r¤   Úc_void_pr·   r2   s    r   Ú__hash__zObjectRef.__hash__ƒ  s#   € Ý•F”K ¤	­6¬?Ñ;Ô;ÔAÑBÔBÐBr   N)rE   rF   rG   rH   rÎ   r™   r¦   r§   r4   r«   rÐ   rÏ   ru   rÔ   r@   rD   r   rµ   r½   rß   rÂ   rã   rI   r   r   rÉ   rÉ   7  sü   € € € € € ðð ð €GØ!�\‘^”^€Nà€Fðð ð ðð ð ðð ð ðð ð ð ðð ñ „Xððð ð ðð ð ð ):ð ð ð ð ð
ð ð ð,ð ,ð ,ð €KðCð Cð Cð Cð Cr   rÉ   )7Úsysr	   r.   Úimportlib.resourcesÚ	resourcesr‰   Úllvmlite.binding.commonr   r   Úllvmlite.utilsr   r   ÚLLVMContextRefÚLLVMModuleRefÚLLVMValueRefÚLLVMTypeRefÚLLVMExecutionEngineRefÚLLVMPassManagerBuilderRefÚLLVMPassManagerRefÚLLVMTargetDataRefÚLLVMTargetLibraryInfoRefÚLLVMTargetRefÚLLVMTargetMachineRefÚLLVMMemoryBufferRefr   r   r   r    r!   r"   r#   r$   r%   ÚLLVMObjectCacheRefÚLLVMObjectFileRefÚLLVMSectionIteratorRefr)   r*   r,   rK   ÚobjectrV   rl   rŽ   Úversion_infoÚpathr\   r“   r•   r—   r™   r›   rÅ   rÇ   rÉ   rI   r   r   ú<module>rû      s   ðØ 
€
€
€
Ø €€€Ø Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %à EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ +Ð +Ð +Ð +Ð +Ð +ð"ð "ð "ð
 "Ð! -Ñ0Ô0€Ø Ð  Ñ.Ô.€ØÐ Ñ,Ô,€ØÐ˜zÑ*Ô*€Ø)Ð)Ð*?Ñ@Ô@Ð Ø,Ð,Ð-EÑFÔFÐ Ø%Ð%Ð&7Ñ8Ô8Ð Ø$Ð$Ð%5Ñ6Ô6Ð Ø+Ð+Ð,CÑDÔDÐ Ø Ð  Ñ.Ô.€Ø'Ð'Ð(;Ñ<Ô<Ð Ø&Ð&Ð'9Ñ:Ô:Ð Ø,Ð,Ð-HÑIÔIÐ Ø+Ð+Ð,FÑGÔGÐ Ø&Ð&Ð'<Ñ=Ô=Ð Ø(Ð(Ð)@ÑAÔAÐ Ø%Ð%Ð&:Ñ;Ô;Ð Ø(Ð(Ð)@ÑAÔAÐ Ø+Ð+Ð,FÑGÔGÐ Ø'Ð'Ð(>Ñ?Ô?Ð Ø$Ð$Ð%8Ñ9Ô9Ð Ø%Ð%Ð&7Ñ8Ô8Ð Ø$Ð$Ð%5Ñ6Ô6Ð Ø)Ð)Ð*?Ñ@Ô@Ð Ø"Ð"Ð#4Ñ5Ô5€Ø)Ð)Ð*BÑCÔCÐ ð%ð %ð %ð %ð %ñ %ô %ð %ðPð ð ð ð ñ ô ð ð;!ð ;!ð ;!ð ;!ð ;!�6ñ ;!ô ;!ð ;!ð|.ð .ð .ð .ð .�fñ .ô .ð .ðD>ð >ð >ð !$Ô 0°°!°Ô 4¸Ò >Ð >ð <Ð;à")¤,ð ð
 €l�n„n€ð'ð 'ð 'ð)ð )ð )ðð ð ð ð �6ñ ô ð ð;ð ;ð ;ð ;ð ;�6ñ ;ô ;ð ;ð|2ð 2ð 2ð3ð 3ð 3ðMCð MCð MCð MCð MC�ñ MCô MCð MCð MCð MCr   