§
    2@ÄjêD  ã                   ó°  — d dl Zd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ dddœZd	diZd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd,d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z! G d„ d e
e	¦  «        Z"d!„ Z#d"„ Z$ G d#„ d$e
e	¦  «        Z% G d%„ d&e	¦  «        Z& G d'„ d(e
e	¦  «        Z' G d)„ d* e¦   «         ¦  «        Z(e)d+k    r ej*        ¦   «          dS dS )-é    N)ÚjitÚnjit)Útypes)ÚTestCaseÚMemoryLeakMixin)Útest_factoryFT)ÚnopythonÚforceobjr	   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó2   •— d} ‰| ¦  «        D ]}||z  }Œ|S )Ng        © )ÚxÚresÚyÚgen_funcs      €úLC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_generators.pyÚconsumerzmake_consumer.<locals>.consumer   s/   ø€ ØˆØ�˜!‘”ð 	ð 	ˆAØ�1‰HˆCˆCØˆ
ó    r   )r   r   s   ` r   Úmake_consumerr      s#   ø€ ðð ð ð ð ð €Or   c              #   ó6   K  — t          | ¦  «        D ]}|V — Œd S ©N©Úrange)r   Úis     r   Úgen1r      s0   è è € Ý�1‰XŒXð ð ˆØˆˆˆˆðð r   c              #   ój   K  — t          | ¦  «        D ] }|V — t          dd¦  «        D ]	}||z   V — Œ
Œ!d S )Né   é   r   )r   r   Újs      r   Úgen2r       sY   è è € Ý�1‰XŒXð ð ˆØˆˆˆÝ�q˜!‘”ð 	ð 	ˆAØ�a‘%ˆKˆKˆKˆKð	ðð r   c              #   ó.   K  — | V — | dz   V — | dz   V — d S )Ng      ø?ù              ð?r   ©r   s    r   Úgen3r$   #   s-   è è € à
€G€G€GØ
ˆc‰'€M€M€MØ
ˆb‰&€L€L€L€L€Lr   c              #   óD   K  — t          d¦  «        D ]}|V — ||z   V — Œd S )Nr   r   )r   r   Úzr   s       r   Úgen4r'   *   s8   è è € Ý�1‰XŒXð ð ˆØˆˆˆØ�!‰eˆˆˆˆØ
€Fr   c               #   ó
   K  — d S r   r   r   r   r   Úgen5r)   2   s   è è € ðð r   c              #   ó,   K  — | dz   }	 |dz   }||z   V — Œ)Nr   Té   r   )ÚaÚbr   r   s       r   Úgen6r.   :   s/   è è € à	ˆA‰€AðØ�‰EˆØ�!‰eˆˆˆðr   c              #   óL   K  — t          | j        ¦  «        D ]}| |         V — Œd S r   ©r   Úsize©Úarrr   s     r   Úgen7r4   B   s6   è è € å�3”8‰_Œ_ð ð ˆØ�!Œfˆˆˆˆðð r   r   r+   c              #   ó:   K  — | }| V — |r|V — |r	| |z   V — d S d S r   r   )r   r   r-   Úbbs       r   Úgen8r7   I   sJ   è è € Øˆ€BØ
€G€G€GØ	ð ØˆˆˆØð Ø�!‰eˆˆˆˆˆðð r   c              #   ó.   K  — t          ¦   «          | V — d S r   )Úobjectr#   s    r   Úgenobjr:   R   s   è è € Ý
�H„H€HØ
€G€G€G€G€Gr   c                 ó   — d„ | D ¦   «         S )Nc              3   ó    K  — | ]	}|d z  V — Œ
dS )r+   Nr   )Ú.0r   s     r   ú	<genexpr>z(return_generator_expr.<locals>.<genexpr>X   s&   è è € ÐÐ�aˆA�‰EÐÐÐÐÐÐr   r   r#   s    r   Úreturn_generator_exprr?   W   s   € ØÐ˜1ÐÑÔÐr   c              #   ó@   K  — t          j        | ¦  «        D ]}|V — Œd S r   )ÚnpÚndindex)ÚshapeÚinds     r   Úgen_ndindexrE   [   s4   è è € ÝŒz˜%Ñ Ô ð ð ˆØˆ	ˆ	ˆ	ˆ	ðð r   c              #   ó&   K  — | j         D ]}|V — Œd S r   )Úflat)r3   Úvals     r   Úgen_flatrI   `   s,   è è € ØŒxð ð ˆØˆ	ˆ	ˆ	ˆ	ðð r   c              #   ó@   K  — t          j        | ¦  «        D ]}|V — Œd S r   )rA   Úndenumerate)r3   Útups     r   Úgen_ndenumeraterM   e   s4   è è € ÝŒ~˜cÑ"Ô"ð ð ˆØˆ	ˆ	ˆ	ˆ	ðð r   c               #   ó   K  — dV — d S )NTr   r   r   r   Úgen_boolrO   j   s   è è € Ø
€J€J€J€J€Jr   c               #   ó   K  — d V — dV — d S )Nr"   r   r   r   r   Úgen_unification_errorrQ   n   s   è è € Ø
€J€J€JØ
€H€H€H€H€Hr   c               #   ó   K  — d} dV — 	 | V —} Œ)Nr   r"   r   )r   s    r   Ú'gen_optional_and_type_unification_errorrS   s   s'   è è € à	€AØ
€H€H€HðØˆGˆGˆðr   c               #   ó   K  — dV — dV — d S )N)r   r+   )r   é   r   r   r   r   Úgen_changing_tuple_typerV   {   s   è è € à
€J€J€JØ
€J€J€J€J€Jr   c               #   ó"   K  — dV — dV — dV — d S )Nr   g      @y        33333óP@r   r   r   r   Úgen_changing_number_typerX   �   s%   è è € à
€G€G€GØ
€I€I€IØ
€K€K€K€K€Kr   c                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,S )-ÚTestGeneratorsc                 óF  — |                       t          |¦  «        t          |¦  «        ¦  «         d„ |D ¦   «         }d„ |D ¦   «         }|                       ||¦  «         |                      t          ¦  «        5  t          |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó   — g | ]}|‘ŒS r   r   ©r=   r   s     r   ú
<listcomp>z2TestGenerators.check_generator.<locals>.<listcomp>�   s   € Ð%Ð%Ð%˜!�AÐ%Ð%Ð%r   c                 ó   — g | ]}|‘ŒS r   r   r]   s     r   r^   z2TestGenerators.check_generator.<locals>.<listcomp>Ž   s   € ÐÐÐ�QˆqÐÐÐr   )ÚassertEqualÚnextÚassertRaisesÚStopIteration)ÚselfÚpygenÚcgenÚexpectedÚgots        r   Úcheck_generatorzTestGenerators.check_generator‰   så   € Ø×Ò�˜d™œ¥T¨%¡[¤[Ñ1Ô1Ð1ð &Ð%˜uÐ%Ñ%Ô%ˆØÐ˜$ÐÑÔˆØ×Ò˜ 3Ñ'Ô'Ð'Ø×Ò�}Ñ-Ô-ð 	ð 	Ý�‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á9BÂBÂBc                 ó®   — t           } t          t          j        ffi |¤Ž|¦  «        } |d¦  «        } |d¦  «        }|                      ||¦  «         d S ©Né   )r   r   r   Úint32ri   ©rd   ÚkwargsÚpyfuncÚcrre   rf   s         r   Ú
check_gen1zTestGenerators.check_gen1“   ó`   € ÝˆØ*�S•%”+�Ð*Ð* 6Ð*Ð*¨6Ñ2Ô2ˆØ��q‘	”	ˆØˆr�!‰uŒuˆØ×Ò˜U DÑ)Ô)Ð)Ð)Ð)r   c                 ó*   —  | j         di t          ¤Ž d S ©Nr   )rr   Únopython_flags©rd   s    r   Ú	test_gen1zTestGenerators.test_gen1š   ó    € ØˆŒÐ)Ð)�.Ð)Ð)Ð)Ð)Ð)r   c                 ó*   —  | j         di t          ¤Ž d S ru   )rr   Úforceobj_flagsrw   s    r   Útest_gen1_objmodez TestGenerators.test_gen1_objmode�   ry   r   c                 ó®   — t           } t          t          j        ffi |¤Ž|¦  «        } |d¦  «        } |d¦  «        }|                      ||¦  «         d S rk   )r    r   r   rm   ri   rn   s         r   Ú
check_gen2zTestGenerators.check_gen2    rs   r   c                 ó*   —  | j         di t          ¤Ž d S ru   )r~   rv   rw   s    r   Ú	test_gen2zTestGenerators.test_gen2§   ry   r   c                 ó*   —  | j         di t          ¤Ž d S ru   )r~   r{   rw   s    r   Útest_gen2_objmodez TestGenerators.test_gen2_objmodeª   ry   r   c                 ó®   — t           } t          t          j        ffi |¤Ž|¦  «        } |d¦  «        } |d¦  «        }|                      ||¦  «         d S rk   )r$   r   r   rm   ri   rn   s         r   Ú
check_gen3zTestGenerators.check_gen3­   rs   r   c                 ó*   —  | j         di t          ¤Ž d S ru   )r„   rv   rw   s    r   Ú	test_gen3zTestGenerators.test_gen3´   ry   r   c                 ó*   —  | j         di t          ¤Ž d S ru   )r„   r{   rw   s    r   Útest_gen3_objmodez TestGenerators.test_gen3_objmode·   ry   r   c                 ó¼   — t           } t          t          j        fdz  fi |¤Ž|¦  «        } |ddd¦  «        } |ddd¦  «        }|                      ||¦  «         d S )Nr   é   é   é   )r'   r   r   rm   ri   rn   s         r   Ú
check_gen4zTestGenerators.check_gen4º   sm   € ÝˆØ.�S•%”+� !Ñ#Ð.Ð. vÐ.Ð.¨vÑ6Ô6ˆØ��q˜!˜Q‘”ˆØˆr�!�Q˜‰{Œ{ˆØ×Ò˜U DÑ)Ô)Ð)Ð)Ð)r   c                 ó*   —  | j         di t          ¤Ž d S ru   )r�   rv   rw   s    r   Ú	test_gen4zTestGenerators.test_gen4Á   ry   r   c                 ó*   —  | j         di t          ¤Ž d S ru   )r�   r{   rw   s    r   Útest_gen4_objmodez TestGenerators.test_gen4_objmodeÄ   ry   r   c                 óì   — |                       ¦   «         5 } t          di t          ¤Žt          ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nr   z2Cannot type generator: it does not yield any value©r   )ÚassertTypingErrorr   rv   r)   ÚassertInÚstrÚ	exception)rd   Úraisess     r   Ú	test_gen5zTestGenerators.test_gen5Ç   sµ   € Ø×#Ò#Ñ%Ô%ð 	,¨Ø%�CÐ%Ð%•nÐ%Ð%¥dÑ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,à�ŠÐJÝ˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-s   • AÁAÁAc                 ó  —   t          di t          ¤Žt          ¦  «        ¦   «         }|                      t	          |¦  «        g ¦  «         |                      t          ¦  «        5  t          |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nr   r“   )r   r{   r)   r`   Úlistrb   rc   ra   )rd   rf   s     r   Útest_gen5_objmodez TestGenerators.test_gen5_objmodeÍ   sÇ   € Ø.Ð(�sÐ(Ð(�Ð(Ð(­Ñ.Ô.Ñ0Ô0ˆØ×Ò�˜d™œ RÑ(Ô(Ð(Ø×Ò�}Ñ-Ô-ð 	ð 	Ý�‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á%BÂBÂ	Bc                 ó  —  t          t          j        fdz  fi |¤Žt          ¦  «        } |dd¦  «        }g }t	          d¦  «        D ]$}|                     t          |¦  «        ¦  «         Œ%|                      |dgdz  ¦  «         d S )Nr+   rŠ   r‹   r   é   )r   r   rm   r.   r   Úappendra   r`   )rd   ro   rq   rf   Úlr   s         r   Ú
check_gen6zTestGenerators.check_gen6Ó   s�   € Ø.�S•%”+� !Ñ#Ð.Ð. vÐ.Ð.­tÑ4Ô4ˆØˆr�!�Q‰xŒxˆØˆÝ�q‘”ð 	!ð 	!ˆAØ�HŠH•T˜$‘Z”ZÑ Ô Ð Ð Ø×Ò˜˜R˜D 1™HÑ%Ô%Ð%Ð%Ð%r   c                 ó*   —  | j         di t          ¤Ž d S ru   )r¢   rv   rw   s    r   Ú	test_gen6zTestGenerators.test_gen6Û   ry   r   c                 ó*   —  | j         di t          ¤Ž d S ru   )r¢   r{   rw   s    r   Útest_gen6_objmodez TestGenerators.test_gen6_objmodeÞ   ry   r   c                 ó&  — t           } t          t          j        t          j        dd¦  «        ffi |¤Ž|¦  «        }t          j        ddd¦  «        } ||                     ¦   «         ¦  «        } ||¦  «        }|                      ||¦  «         d S )Nr   ÚCé
   rŒ   )	r4   r   r   ÚArrayÚfloat64rA   ÚlinspaceÚcopyri   )rd   ro   rp   rq   r3   re   rf   s          r   Ú
check_gen7zTestGenerators.check_gen7á   sŒ   € ÝˆØA�S•%”+�eœm¨Q°Ñ4Ô4Ð6ÐAÐA¸&ÐAÐAÀ&ÑIÔIˆÝŒk˜!˜R Ñ#Ô#ˆØ��s—x’x‘z”zÑ"Ô"ˆØˆr�#‰wŒwˆØ×Ò˜U DÑ)Ô)Ð)Ð)Ð)r   c                 ó*   —  | j         di t          ¤Ž d S ru   )r®   rv   rw   s    r   Ú	test_gen7zTestGenerators.test_gen7é   ry   r   c                 ó*   —  | j         di t          ¤Ž d S ru   )r®   r{   rw   s    r   Útest_gen7_objmodez TestGenerators.test_gen7_objmodeì   ry   r   c                 ó²   ‡ ‡‡— t           Š t          d
i |¤Ž‰¦  «        Šˆˆˆ fd„} |dd¦  «          |d¦  «          |d¬¦  «          |dd¬	¦  «         d S )Nc                  óL   •— ‰                       ‰| i |¤Ž ‰| i |¤Ž¦  «         d S r   )ri   )Úargsro   Úcfuncrp   rd   s     €€€r   Úcheckz(TestGenerators.check_gen8.<locals>.checkó   sH   ø€ Ø× Ò   ¨Ð!8°Ð!8Ð!8Ø!& ¨Ð!7°Ð!7Ð!7ñ9ô 9ð 9ð 9ð 9r   r+   r   rU   rŠ   )r   r‹   T)r   r-   r   )r7   r   )rd   Újit_argsr·   r¶   rp   s   `  @@r   Ú
check_gen8zTestGenerators.check_gen8ï   sŽ   øøø€ ÝˆØ•���h�� Ñ'Ô'ˆð	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	ˆˆa�‰ŒˆØˆˆa‰ŒˆØˆ�ˆ
‰
Œ
ˆ
Øˆ��TÐÑÔÐÐÐr   c                 ó2   — |                       d¬¦  «         d S )NT©r	   ©r¹   rw   s    r   Ú	test_gen8zTestGenerators.test_gen8ü   ó   € Ø�Š ˆÑ&Ô&Ð&Ð&Ð&r   c                 ó2   — |                       d¬¦  «         d S )NT)r
   r¼   rw   s    r   Útest_gen8_objmodez TestGenerators.test_gen8_objmodeÿ   r¾   r   c                 ó’   — t           } t          di |¤Ž|¦  «        } |¦   «         } |¦   «         }|                      ||¦  «         d S r›   )rO   r   ri   rn   s         r   Ú
check_gen9zTestGenerators.check_gen9  sV   € ÝˆØ�SÐÐ�vÐÐ˜vÑ&Ô&ˆØ�‘”ˆØˆr‰tŒtˆØ×Ò˜U DÑ)Ô)Ð)Ð)Ð)r   c                 ó*   —  | j         di t          ¤Ž d S ru   )rÂ   rv   rw   s    r   Ú	test_gen9zTestGenerators.test_gen9	  ry   r   c                 ó*   —  | j         di t          ¤Ž d S ru   )rÂ   r{   rw   s    r   Útest_gen9_objmodez TestGenerators.test_gen9_objmode  ry   r   c                 óú   —  t          d¬¦  «        |¦  «        } t          d¬¦  «        t          |¦  «        ¦  «        }t          |¦  «        } |d¦  «        } |d¦  «        }|                      ||¦  «         d S )NTr»   rŠ   )r   r   ÚassertPreciseEqual)rd   r   rf   r¶   rp   rg   rh   s          r   Úcheck_consume_generatorz&TestGenerators.check_consume_generator  s�   € Ø!�s˜DÐ!Ñ!Ô! (Ñ+Ô+ˆØ"•˜TÐ"Ñ"Ô"¥=°Ñ#6Ô#6Ñ7Ô7ˆÝ˜xÑ(Ô(ˆØ�6˜!‘9”9ˆØˆe�A‰hŒhˆØ×Ò  XÑ.Ô.Ð.Ð.Ð.r   c                 ó:   — |                       t          ¦  «         d S r   )rÉ   r   rw   s    r   Útest_consume_gen1z TestGenerators.test_consume_gen1  ó   € Ø×$Ò$¥TÑ*Ô*Ð*Ð*Ð*r   c                 ó:   — |                       t          ¦  «         d S r   )rÉ   r    rw   s    r   Útest_consume_gen2z TestGenerators.test_consume_gen2  rÌ   r   c                 ó:   — |                       t          ¦  «         d S r   )rÉ   r$   rw   s    r   Útest_consume_gen3z TestGenerators.test_consume_gen3  rÌ   r   c                 óØ   — t           } t          t          j        t          j        d¦  «        ffi |¤Ž|¦  «        }d} ||¦  «        } ||¦  «        }|                      ||¦  «         d S )Nr+   ©r+   r   )rE   r   r   ÚUniTupleÚintpri   )rd   ro   rp   rq   rC   re   rf   s          r   Úcheck_ndindexzTestGenerators.check_ndindex"  sr   € ÝˆØ<�S•%”.¥¤¨QÑ/Ô/Ð1Ð<Ð<°VÐ<Ð<¸VÑDÔDˆØˆØ��u‘”ˆØˆr�%‰yŒyˆØ×Ò˜U DÑ)Ô)Ð)Ð)Ð)r   c                 ó*   —  | j         di t          ¤Ž d S ru   )rÕ   rv   rw   s    r   Útest_ndindexzTestGenerators.test_ndindex*  ó!   € ØˆÔÐ,Ð,�^Ð,Ð,Ð,Ð,Ð,r   c                 ó*   —  | j         di t          ¤Ž d S ru   )rÕ   r{   rw   s    r   Útest_ndindex_objmodez#TestGenerators.test_ndindex_objmode-  rØ   r   c                 óî  —  t          t          j        t          j        dd¦  «        ffi |¤Ž|¦  «        }t	          j        dt          j        ¬¦  «                             d¦  «        }|                       ||¦  «         ||¦  «        ¦  «          t          t          j        t          j        dd¦  «        ffi |¤Ž|¦  «        }|j        }|                       ||¦  «         ||¦  «        ¦  «         d S )Nr+   r¨   r‹   ©ÚdtyperÒ   ÚA)	r   r   rª   rm   rA   ÚarangeÚreshaperi   ÚT)rd   rp   ro   rq   r3   ÚcrAs         r   Úcheck_np_flatzTestGenerators.check_np_flat0  sã   € Ø?�S•%”+�eœk¨1¨cÑ2Ô2Ð4Ð?Ð?¸Ð?Ð?ÀÑGÔGˆÝŒi˜¥¤Ð*Ñ*Ô*×2Ò2°6Ñ:Ô:ˆØ×Ò˜V˜V C™[œ[¨"¨"¨S©'¬'Ñ2Ô2Ð2Ø@�c•5”;�uœ{¨A¨sÑ3Ô3Ð5Ð@Ð@¸Ð@Ð@ÀÑHÔHˆØŒeˆØ×Ò˜V˜V C™[œ[¨#¨#¨c©(¬(Ñ3Ô3Ð3Ð3Ð3r   c                 ó6   —  | j         t          fi t          ¤Ž d S r   )rã   rI   rv   rw   s    r   Útest_np_flatzTestGenerators.test_np_flat8  ó#   € ØˆÔ�8Ð6Ð6¥~Ð6Ð6Ð6Ð6Ð6r   c                 ó6   —  | j         t          fi t          ¤Ž d S r   )rã   rI   r{   rw   s    r   Útest_np_flat_objmodez#TestGenerators.test_np_flat_objmode;  ræ   r   c                 ó6   —  | j         t          fi t          ¤Ž d S r   )rã   rM   rv   rw   s    r   Útest_ndenumeratezTestGenerators.test_ndenumerate>  ó#   € ØˆÔ�?Ð=Ð=­nÐ=Ð=Ð=Ð=Ð=r   c                 ó6   —  | j         t          fi t          ¤Ž d S r   )rã   rM   r{   rw   s    r   Útest_ndenumerate_objmodez'TestGenerators.test_ndenumerate_objmodeA  rë   r   c                 óô   — t           }|                      ¦   «         5 } t          di t          ¤Ž|¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j        ¦  «        ¦  «         d S )Nr   zACan't unify yield type from the following types: complex128, noner“   )rQ   r”   r   rv   r•   r–   r—   ©rd   rp   r˜   Úmsgs       r   Útest_type_unification_errorz*TestGenerators.test_type_unification_errorD  sµ   € Ý&ˆØ×#Ò#Ñ%Ô%ð 	.¨Ø%�CÐ%Ð%•nÐ%Ð% fÑ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ðˆà�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1ó   œAÁAÁ
Ac                 ó  — t           }|                      ¦   «         5 } t          di t          ¤Ž|¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t
          j        j        z  t          |j	        ¦  «        ¦  «         d S )Nr   zHCan't unify yield type from the following types: complex128, int%s, noner“   )
rS   r”   r   rv   r•   r   rÔ   Úbitwidthr–   r—   rï   s       r   Ú.test_optional_expansion_type_unification_errorz=TestGenerators.test_optional_expansion_type_unification_errorM  s¿   € Ý8ˆØ×#Ò#Ñ%Ô%ð 	.¨Ø%�CÐ%Ð%•nÐ%Ð% fÑ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ðˆà�Š�c�EœJÔ/Ñ/µ°VÔ5EÑ1FÔ1FÑGÔGÐGÐGÐGrò   c                 ó¶   — t           }t           |¦   «         ¦  «        }t           t          |¦  «        ¦   «         ¦  «        }|                      ||¦  «         d S r   )rV   rœ   r   r`   ©rd   rp   rg   rh   s       r   Útest_changing_tuple_typez'TestGenerators.test_changing_tuple_typeV  sM   € å(ˆÝ˜˜™œ‘>”>ˆÝ�<•4˜‘<”<‘>”>Ñ"Ô"ˆØ×Ò˜ 3Ñ'Ô'Ð'Ð'Ð'r   c                 ó¶   — t           }t           |¦   «         ¦  «        }t           t          |¦  «        ¦   «         ¦  «        }|                      ||¦  «         d S r   )rX   rœ   r   r`   r÷   s       r   Útest_changing_number_typez(TestGenerators.test_changing_number_type]  sM   € å)ˆÝ˜˜™œ‘>”>ˆÝ�<•4˜‘<”<‘>”>Ñ"Ô"ˆØ×Ò˜ 3Ñ'Ô'Ð'Ð'Ð'r   N).Ú__name__Ú
__module__Ú__qualname__ri   rr   rx   r|   r~   r€   r‚   r„   r†   rˆ   r�   r�   r‘   r™   r�   r¢   r¤   r¦   r®   r°   r²   r¹   r½   rÀ   rÂ   rÄ   rÆ   rÉ   rË   rÎ   rÐ   rÕ   r×   rÚ   rã   rå   rè   rê   rí   rñ   rõ   rø   rú   r   r   r   rZ   rZ   ˆ   sœ  € € € € € ðð ð ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð-ð -ð -ðð ð ð&ð &ð &ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ðð ð ð'ð 'ð 'ð'ð 'ð 'ð*ð *ð *ð*ð *ð *ð*ð *ð *ð/ð /ð /ð+ð +ð +ð+ð +ð +ð+ð +ð +ð
*ð *ð *ð-ð -ð -ð-ð -ð -ð4ð 4ð 4ð7ð 7ð 7ð7ð 7ð 7ð>ð >ð >ð>ð >ð >ð2ð 2ð 2ðHð Hð Hð(ð (ð (ð(ð (ð (ð (ð (r   rZ   c              #   ó   K  — | D ]}|V — Œd S r   r   )ÚaryÚelems     r   Únrt_gen0r  e  s*   è è € Øð ð ˆØˆ
ˆ
ˆ
ˆ
ðð r   c              #   óF   K  — t          | |¦  «        D ]\  }}|V — |V — Œd S r   )Úzip)Úary1Úary2Úe1Úe2s       r   Únrt_gen1r  j  s?   è è € Ý�d˜D‘/”/ð ð ‰ˆˆBØˆˆˆØˆˆˆˆðð r   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestNrtArrayGenc                 óŽ  — t           } t          d¬¦  «        |¦  «        }t          j        d¦  «        }|                     ¦   «         }t           ||¦  «        ¦  «        }t           ||¦  «        ¦  «        }t          j                             ||¦  «         |                      ||¦  «         |  	                    ||¦  «         d S )NTr»   r©   )
r  r   rA   rß   r­   rœ   ÚtestingÚassert_equalr`   ÚassertRefCountEqual)rd   re   rf   Úpy_aryÚc_aryÚpy_resÚc_ress          r   Útest_nrt_gen0zTestNrtArrayGen.test_nrt_gen0q  s¯   € ÝˆØ!�s˜DÐ!Ñ!Ô! %Ñ(Ô(ˆå”˜2‘”ˆØ—’‘”ˆå�e�e˜F‘m”mÑ$Ô$ˆÝ�T�T˜%‘[”[Ñ!Ô!ˆå
Œ
×Ò ¨Ñ.Ô.Ð.Ø×Ò˜ Ñ'Ô'Ð'à× Ò  ¨Ñ/Ô/Ð/Ð/Ð/r   c                 ó0  — t           } t          d¬¦  «        |¦  «        }t          j        d¦  «        }|dz   }|                     ¦   «         }|                     ¦   «         }t           |||¦  «        ¦  «        }t           |||¦  «        ¦  «        }t          j                             ||¦  «         t          j                             ||¦  «         |                      ||¦  «         |  	                    ||¦  «         |  	                    ||¦  «         d S )NTr»   r©   éd   )
r  r   rA   rß   r­   rœ   r  r  r`   r  )	rd   re   rf   Úpy_ary1Úpy_ary2Úc_ary1Úc_ary2r  r  s	            r   Útest_nrt_gen1zTestNrtArrayGen.test_nrt_gen1€  sû   € ÝˆØ!�s˜DÐ!Ñ!Ô! %Ñ(Ô(ˆå”)˜B‘-”-ˆØ˜C‘-ˆà—’‘”ˆØ—’‘”ˆå�e�e˜G WÑ-Ô-Ñ.Ô.ˆÝ�T�T˜& &Ñ)Ô)Ñ*Ô*ˆå
Œ
×Ò ¨Ñ0Ô0Ð0Ý
Œ
×Ò ¨Ñ0Ô0Ð0Ø×Ò˜ Ñ'Ô'Ð'à× Ò  ¨&Ñ1Ô1Ð1Ø× Ò  ¨&Ñ1Ô1Ð1Ð1Ð1r   c                 óV   — |                       ¦   «          |                      ¦   «          dS )a2  
        Issue #1163 is observed when two generator with NRT object arguments
        is ran in sequence.  The first one does a invalid free and corrupts
        the NRT memory subsystem.  The second generator is likely to segfault
        due to corrupted NRT data structure (an invalid MemInfo).
        N)r  r  rw   s    r   Útest_combine_gen0_gen1z&TestNrtArrayGen.test_combine_gen0_gen1”  s.   € ð 	×ÒÑÔÐØ×ÒÑÔÐÐÐr   c                 óž  — t           } t          d¬¦  «        |¦  «        }t          j        d¦  «        }|                     ¦   «         } ||¦  «        } ||¦  «        }t          |¦  «        }t          |¦  «        }|                      t          ¦  «        5  t          |¦  «        }ddd¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  t          |¦  «        }ddd¦  «         n# 1 swxY w Y   ~~t          j         	                    ||¦  «         |  
                    ||¦  «         |                      ||¦  «         dS )z/
        Test cleanup on StopIteration
        Tr»   r   N)r  r   rA   rß   r­   ra   rb   rc   r  r  r`   r  )	rd   re   rf   r  r  Úpy_iterÚc_iterr  r  s	            r   Útest_nrt_gen0_stop_iterationz,TestNrtArrayGen.test_nrt_gen0_stop_iterationž  s©  € õ ˆØ!�s˜DÐ!Ñ!Ô! %Ñ(Ô(ˆå”˜1‘”ˆØ—’‘”ˆà�%˜‘-”-ˆØ��e‘”ˆå�g‘”ˆÝ�V‘”ˆà×Ò�}Ñ-Ô-ð 	#ð 	#Ý˜'‘]”]ˆFð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð ×Ò�}Ñ-Ô-ð 	!ð 	!Ý˜‘L”LˆEð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð Øå
Œ
×Ò ¨Ñ.Ô.Ð.Ø×Ò˜ Ñ'Ô'Ð'à× Ò  ¨Ñ/Ô/Ð/Ð/Ð/s$   ÂB3Â3B7Â:B7ÃC4Ã4C8Ã;C8c                 ó2  — t           } t          d¬¦  «        |¦  «        }t          j        d¦  «        }|                     ¦   «         } ||¦  «        } ||¦  «        }~~t          j                             ||¦  «         |                      ||¦  «         dS )zj
        Test cleanup for a initialized but never iterated (never call next())
        generator.
        Tr»   r   N)r  r   rA   rß   r­   r  r  r  )rd   re   rf   r  r  r  r  s          r   Útest_nrt_gen0_no_iterz%TestNrtArrayGen.test_nrt_gen0_no_iter¼  s“   € õ
 ˆØ!�s˜DÐ!Ñ!Ô! %Ñ(Ô(ˆå”˜1‘”ˆØ—’‘”ˆà�%˜‘-”-ˆØ��e‘”ˆàØå
Œ
×Ò ¨Ñ.Ô.Ð.ð 	× Ò  ¨Ñ/Ô/Ð/Ð/Ð/r   N)rû   rü   rý   r  r  r  r   r"  r   r   r   r
  r
  p  s_   € € € € € ð0ð 0ð 0ð2ð 2ð 2ð(ð ð ð0ð 0ð 0ð<0ð 0ð 0ð 0ð 0r   r
  c                   ó:   — e Zd Zd„ Zej        d„ ¦   «         Zd„ ZdS )ÚTestNrtNestedGenc                 ó  — d„ }d„ }t          j        d¦  «        }|                     ¦   «         }  ||¦  «        |¦  «        \  }} t          d¬¦  «         | t          d¬¦  «        |¦  «        ¦  «        ¦  «        } ||¦  «        \  }}	|                      ||¦  «         |                      ||¦  «         |                      |	|¦  «         t           j                             ||¦  «         |                      ||¦  «         d S )Nc              3   ó@   K  — t          | j        ¦  «        D ]}| V — Œd S r   r0   r2   s     r   Úgen0z2TestNrtNestedGen.test_nrt_nested_gen.<locals>.gen0×  s2   è è € Ý˜3œ8‘_”_ð ð �Ø�	�	�	�	ðð r   c                 ó   ‡ — ˆ fd„}|S )Nc                 óZ   •— t          j        | ¦  «        } ‰| ¦  «        D ]}||z   }Œ|| fS r   )rA   Ú
zeros_like)r3   Úoutr   r'  s      €r   r   zCTestNrtNestedGen.test_nrt_nested_gen.<locals>.factory.<locals>.gen1Ü  s=   ø€ Ý”m CÑ(Ô(�Ø˜˜c™œð "ð "�AØ ™'�C�CØ˜C�x�r   r   ©r'  r   s   ` r   Úfactoryz5TestNrtNestedGen.test_nrt_nested_gen.<locals>.factoryÛ  s#   ø€ ð ð  ð  ð  ð  ð ˆKr   r©   Tr»   )	rA   rß   r­   r   ÚassertIsNotÚassertIsr  r  r  )
rd   r'  r-  Úpy_arrÚc_arrr  Úpy_oldÚc_genr  Úc_olds
             r   Útest_nrt_nested_genz$TestNrtNestedGen.test_nrt_nested_genÕ  s  € ð	ð 	ð 	ð	ð 	ð 	õ ”˜2‘”ˆØ—’‘”ˆØ&˜˜ ™œ vÑ.Ô.‰ˆ�Ø"•˜TÐ"Ñ"Ô" 7 7Ð+=­3¸Ð+=Ñ+=Ô+=¸dÑ+CÔ+CÑ#DÔ#DÑEÔEˆØ�u˜U‘|”|‰ˆˆuà×Ò˜ Ñ'Ô'Ð'Ø�Š�f˜fÑ%Ô%Ð%Ø�Š�e˜UÑ#Ô#Ð#å
Œ
×Ò ¨Ñ.Ô.Ð.à× Ò  ¨Ñ/Ô/Ð/Ð/Ð/r   c                 óÂ  — d„ }d„ }t          j        d¦  «        }|                     ¦   «         }  ||¦  «        |¦  «        } t          d¬¦  «         | t          d¬¦  «        |¦  «        ¦  «        ¦  «        } ||¦  «        }|                      ||¦  «         |                      ||¦  «         |                      ||¦  «         |                      ||¦  «         d S )Nc              3   ó   K  — | V — d S r   r   )r3   s    r   r'  z8TestNrtNestedGen.test_nrt_nested_gen_refct.<locals>.gen0ú  s   è è € ØˆIˆIˆIˆIˆIr   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó*   •—  ‰| ¦  «        D ]}|c S d S r   r   )r3   r+  r'  s     €r   r   zITestNrtNestedGen.test_nrt_nested_gen_refct.<locals>.factory.<locals>.gen1þ  s-   ø€ Ø˜4 ™9œ9ð ð �CØ�J�J�Jðð r   r   r,  s   ` r   r-  z;TestNrtNestedGen.test_nrt_nested_gen_refct.<locals>.factoryý  s#   ø€ ðð ð ð ð ð ˆKr   r©   Tr»   )rA   rß   r­   r   r.  r/  r  )rd   r'  r-  r0  r1  r2  r3  r4  s           r   Útest_nrt_nested_gen_refctz*TestNrtNestedGen.test_nrt_nested_gen_refctø  sô   € ð	ð 	ð 	ð	ð 	ð 	õ ”˜2‘”ˆØ—’‘”ˆØ��˜‘”˜vÑ&Ô&ˆØ"•˜TÐ"Ñ"Ô" 7 7Ð+=­3¸Ð+=Ñ+=Ô+=¸dÑ+CÔ+CÑ#DÔ#DÑEÔEˆØ��e‘”ˆà×Ò˜ Ñ'Ô'Ð'Ø�Š�f˜fÑ%Ô%Ð%Ø�Š�e˜UÑ#Ô#Ð#à× Ò  ¨Ñ/Ô/Ð/Ð/Ð/r   c                 óä   — d„ fd„} |¦   «         } |t          d¬¦  «        ¦  «        }t           |d¦  «        ¦  «        }t           |d¦  «        ¦  «        }|                      ||¦  «         dS )z/
        Test nesting three generators
        c                 ó   — | S r   r   r#   s    r   ú<lambda>z?TestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.<lambda>  s   €  A€ r   c                 óT   ‡‡— | d„ ¦   «         Š| ˆfd„¦   «         Š| ˆfd„¦   «         }|S )Nc              3   ób   K  — t          |¦  «        D ]}| |         V — | |xx         |z  cc<   Œd S r   r   )r,   Únr   s      r   ÚfoozKTestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.factory.<locals>.foo  sI   è è € å˜q™œð ð �AØ˜Aœ$�J�J�JØ�a�D�D”D˜A‘I�D�D‘D�Dðð r   c              3   ó¢   •K  — t          j        | ¦  «        } ‰|| ¦  «        D ]	}|dz  V — Œ
t          |j        ¦  «        D ]}||         V — Œd S )Nr+   )rA   rß   r   r1   )r@  r,   r   rA  s      €r   ÚbarzKTestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.factory.<locals>.bar  sl   øè è € å”I˜a‘L”L�Ø˜˜Q ™œð  ð  �AØ˜a™%�K�K�K�KÝ˜qœv™œð ð �AØ˜Aœ$�J�J�J�Jðð r   c              3   ó6   •K  —  ‰| ¦  «        D ]	}||z   V — Œ
d S r   r   )r@  r   rC  s     €r   ÚcatzKTestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.factory.<locals>.cat$  s7   øè è € à˜˜Q™œð  ð  �AØ˜a™%�K�K�K�Kð ð  r   r   )ÚdecorrE  rC  rA  s     @@r   r-  z>TestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.factory  sn   øø€ Øðð ñ ŒUðð
 ðð ð ð ñ ŒUðð ð ð  ð  ð  ñ ŒUð ð ˆJr   Tr»   r©   N)r   rœ   r`   )rd   r-  Úpy_genr3  r  r  s         r   Útest_nrt_nested_nopython_genz-TestNrtNestedGen.test_nrt_nested_nopython_gen  sˆ   € ð
 &˜+ð 	ð 	ð 	ð 	ð, �‘”ˆØ�� TÐ*Ñ*Ô*Ñ+Ô+ˆå�f�f˜R‘j”jÑ!Ô!ˆÝ�U�U˜2‘Y”Y‘”ˆà×Ò˜ Ñ'Ô'Ð'Ð'Ð'r   N)rû   rü   rý   r5  ÚunittestÚexpectedFailurer:  rH  r   r   r   r$  r$  Ô  sR   € € € € € ð0ð 0ð 0ðF Ôð0ð 0ñ Ôð0ð.!(ð !(ð !(ð !(ð !(r   r$  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestGeneratorWithNRTc                 ó.  — t          d¬¦  «        d„ ¦   «         }t           |d¦  «        ¦  «        }|                      t          |¦  «        d¦  «         t	          j        d¦  «        }d|dd…<   |D ]"}t          j                             ||¦  «         Œ#dS )z9
        Missing environment for returning array
        Tr»   c              3   ól   K  — t          | ¦  «        D ]!}t          j        d¦  «        }d|d d …<   |V — Œ"d S )Nr   é   )r   rA   Úempty)r@  r   Úvecs      r   Úrandom_directionsz?TestGeneratorWithNRT.test_issue_1254.<locals>.random_directions:  sJ   è è € å˜1‘X”Xð ð �Ý”h˜q‘k”k�Ø��A�A�A‘Ø�	�	�	�	ðð r   rŠ   r   rO  N)r   rœ   r`   ÚlenrA   rP  r  r  )rd   rR  ÚoutputsÚexpectrh   s        r   Útest_issue_1254z$TestGeneratorWithNRT.test_issue_12545  s®   € õ
 
�dÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	õ Ð(Ð(¨Ñ+Ô+Ñ,Ô,ˆØ×Ò�˜W™œ qÑ)Ô)Ð)å”˜!‘”ˆØˆˆqˆqˆq‰	Øð 	1ð 	1ˆCÝŒJ×#Ò# F¨CÑ0Ô0Ð0Ð0ð	1ð 	1r   c                 ó�  ‡‡— d„ Š t          d¬¦  «        ‰¦  «        Št           ‰ddd¦  «        ¦  «        }t           ‰ddd¦  «        ¦  «        }|                      ||¦  «         ˆfd„}t          d¬¦  «        ˆfd„¦   «         }d}dd	|f} ||¦  «        } ||¦  «        }t          j                             ||¦  «         d
S )zM
        Double-free for locally allocated, non escaping NRT objects
        c              3   ó^   K  — t          j        | ||¦  «        }|d         V — |d         V — d S )Nr   r   )rA   r¬   )ÚrminÚrmaxÚnrr,   s       r   rG  z4TestGeneratorWithNRT.test_issue_1265.<locals>.py_genN  s7   è è € Ý”˜D $¨Ñ+Ô+ˆAØ�A”$ˆJˆJˆJØ�A”$ˆJˆJˆJˆJˆJr   Tr»   éþÿÿÿr+   r  c                 óž   •— | \  }}}t          j        |t           j        ¬¦  «        }t           ‰|||¦  «        ¦  «        D ]
\  }}|||<   Œ|S ©NrÜ   ©rA   rP  Ú
complex128Ú	enumerate)rµ   rY  rZ  r[  Úpointsr   ÚcrG  s          €r   Ú	py_driverz7TestGeneratorWithNRT.test_issue_1265.<locals>.py_driverZ  s]   ø€ Ø!‰NˆD�$˜Ý”X˜b­¬Ð6Ñ6Ô6ˆFÝ! & &¨¨t°RÑ"8Ô"8Ñ9Ô9ð ð ‘��1Ø��q‘	�	àˆMr   c                 óž   •— | \  }}}t          j        |t           j        ¬¦  «        }t           ‰|||¦  «        ¦  «        D ]
\  }}|||<   Œ|S r^  r_  )rµ   rY  rZ  r[  rb  r   rc  r3  s          €r   Úc_driverz6TestGeneratorWithNRT.test_issue_1265.<locals>.c_driverb  s]   ø€ à!‰NˆD�$˜Ý”X˜b­¬Ð6Ñ6Ô6ˆFÝ! % %¨¨d°BÑ"7Ô"7Ñ8Ô8ð ð ‘��1Ø��q‘	�	àˆMr   éÿÿÿÿN)r   rœ   r`   rA   r  r  )	rd   r  r  rd  rf  r@  Úpatchesr3  rG  s	          @@r   Útest_issue_1265z$TestGeneratorWithNRT.test_issue_1265I  s  øø€ ð
	ð 	ð 	ð
 #•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆå�f�f˜R  CÑ(Ô(Ñ)Ô)ˆÝ�U�U˜2˜q #Ñ&Ô&Ñ'Ô'ˆà×Ò˜ Ñ'Ô'Ð'ð	ð 	ð 	ð 	ð 	õ 
�dÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	ð ˆØ�r˜1�+ˆà�˜7Ñ#Ô#ˆà�˜Ñ!Ô!ˆå
Œ
×Ò ¨Ñ.Ô.Ð.Ð.Ð.r   c                 ó¸   ‡‡‡— dŠt           ˆfd„¦   «         Št           ˆfd„¦   «         Št           ˆfd„¦   «         }|                       |¦   «         ‰¦  «         dS )z-
        Incorrect return data model
        l   ï>[= c               3   ó   •K  — ‰ V — d S r   r   )Úmagics   €r   Ú	generatorz7TestGeneratorWithNRT.test_issue_1808.<locals>.generatorz  s   øè è € àˆKˆKˆKˆKˆKr   c                  ó   •—  ‰ ¦   «         S r   r   )rm  s   €r   Úget_generatorz;TestGeneratorWithNRT.test_issue_1808.<locals>.get_generator~  s   ø€ à�9‘;”;Ðr   c                  ó0   •— d}  ‰¦   «         D ]}| |z  } Œ| S )Nr   r   )r+  r   ro  s     €r   Úmainz2TestGeneratorWithNRT.test_issue_1808.<locals>.main‚  s-   ø€ àˆCØ"�]‘_”_ð ð �Ø�q‘��àˆJr   N)r   r`   )rd   rq  rm  ro  rl  s     @@@r   Útest_issue_1808z$TestGeneratorWithNRT.test_issue_1808t  s�   øøø€ ð ˆå	ð	ð 	ð 	ð 	ñ 
Œð	õ 
ð	ð 	ð 	ð 	ñ 
Œð	õ 
ð	ð 	ð 	ð 	ñ 
Œð	ð 	×Ò˜˜™œ Ñ'Ô'Ð'Ð'Ð'r   N)rû   rü   rý   rV  ri  rr  r   r   r   rL  rL  4  sB   € € € € € ð1ð 1ð 1ð()/ð )/ð )/ðV(ð (ð (ð (ð (r   rL  c            
       ó„   — e Zd Z ej        dej        ej        ej        gej        ej        ddd…         gd¬¦  «        Z	dS )ÚTestGeneratorModelNr   F)r   Ú
yield_typeÚ	arg_typesÚstate_typesÚhas_finalizer)
rû   rü   rý   r   Ú	Generatorrm   Úint64Úfloat32rÔ   Úfe_typer   r   r   rt  rt  �  sQ   € € € € € ØˆeŒo t¸¼Ø).¬°e´mÐ(DØ+0¬:°u´zÀ#À#ÀAÀ#´Ð*GØ,1ð3ñ 3ô 3€G€G€Gr   rt  Ú__main__)r   r+   F)+ÚnumpyrA   rI  Únumbar   r   Ú
numba.corer   Únumba.tests.supportr   r   Únumba.core.datamodel.testingr   r{   rv   r   r   r    r$   r'   r)   r.   r4   r7   r:   r?   rE   rI   rM   rO   rQ   rS   rV   rX   rZ   r  r  r
  r$  rL  rt  rû   rq  r   r   r   ú<module>rƒ     sí  ðØ Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5à#°Ð6Ð6€Ø˜dÐ#€ðð ð ðð ð ð
ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ðð ð ð
ð ð ðð ð ð
ð ð ð
ð ð ð
ð ð ðð ð ð
ð ð ðð ð ðð ð ðZ(ð Z(ð Z(ð Z(ð Z(�_ hñ Z(ô Z(ð Z(ðzð ð ð
ð ð ð`0ð `0ð `0ð `0ð `0�o xñ `0ô `0ð `0ðH](ð ](ð ](ð ](ð ](�xñ ](ô ](ð ](ð@V(ð V(ð V(ð V(ð V(˜?¨Hñ V(ô V(ð V(ðr3ð 3ð 3ð 3ð 3˜˜™œñ 3ô 3ð 3ð ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   