§
    1@ÄjÛc  ã                   óø  — d Z ddlZddlZddlZddlmZ ddlZddlm	Z	m
Z
mZmZmZ ddlmZmZmZ ddlmZ  eeg¦  «        Z G d„ d¦  «        Z e¦   «         Zi ej        d	“ej        d
“ej        d“ej        d“ej        d“ej        d“ej        d“ej         d“ej!        d“ej"        d“ej#        d“ej$        d“ej%        d“ej&        d“ej'        d“ej(        d“ej)        d“ej*        dej+        dej,        dej-        dej.        dej/        dej0        d i¥Z1d!e1ej2        <   d"e1ej3        <   ej4        d#ej5        d$ej6        d%ej7        d&ej8        d'ej9        d(ej:        d)ej;        d*ej<        d+i	Z= G d,„ d-e¦  «        Z>dS ).z*
Lowering implementation for object mode.
é    N)Úcached_property)ÚtypesÚutilsÚirÚ
generatorsÚcgutils)ÚForbiddenConstructÚLoweringErrorÚNumbaNotImplementedError)Ú	BaseLowerc                   ó   — e Zd ZdZd„ ZdS )Ú
_UndefinedzH
    A sentinel value for undefined variable created by Expr.undef.
    c                 ó   — dS )Nz<undefined>© ©Úselfs    úFC:\Projects\Historical\venv\Lib\site-packages\numba/core/pylowering.pyÚ__repr__z_Undefined.__repr__   s   € Øˆ}ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r      s-   € € € € € ðð ðð ð ð ð r   r   )Ú
number_addF)Únumber_subtractF)Únumber_multiplyF)Únumber_truedivideF)Únumber_floordivideF)Únumber_remainderF)Únumber_powerF)Únumber_lshiftF)Únumber_rshiftF)Ú
number_andF)Ú	number_orF)Ú
number_xorF)r   T)r   T)r   T)r   T)r   T)r   T)r    T)r!   T)r"   T)r#   T)r$   T)r%   T)Únumber_matrix_multiplyF)r&   Tú==ú!=ú<z<=ú>z>=Úiszis notÚinc                   óú   ‡ — e Zd Zej        Zd„ Zˆ fd„Zd„ Zd„ Z	d„ Z
e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$d„Zd„ Zd„ Zd„ Zd%d„Zd„ Zd„ Zd#d„Zd„ Z d%d„Z!d„ Z"d „ Z#d!„ Z$d"„ Z%ˆ xZ&S )&ÚPyLowerc                 óR   — t          ¦   «         | _        t          ¦   «         | _        d S ©N)ÚsetÚ_frozen_stringsÚ
_live_varsr   s    r   ÚinitzPyLower.initS   s   € å"™uœuˆÔå™%œ%ˆŒˆˆr   c                 ó~   •— t          t          | ¦  «                             ¦   «          |                      ¦   «          d S r0   )Úsuperr.   Ú	pre_lowerÚ
init_pyapi)r   Ú	__class__s    €r   r7   zPyLower.pre_lowerY   s5   ø€ Ý�g�tÑÔ×&Ò&Ñ(Ô(Ð(Ø�ŠÑÔÐÐÐr   c                 ó   — d S r0   r   r   s    r   Ú
post_lowerzPyLower.post_lower]   s   € Øˆr   c                 ó0   — |                       |¦  «         d S r0   )Ú	init_vars©r   Úblocks     r   Ú	pre_blockzPyLower.pre_block`   s   € Ø�Š�uÑÔÐÐÐr   c                 óh  — t          |t          j        ¦  «        r7|                      |¦  «        }|                      ||j        j        ¦  «         d S t          |t          j        ¦  «        r�|                      |j        j        ¦  «        }|                      |j	        j        ¦  «        }|                      |j
        j        ¦  «        }| j                             |||¦  «        }|                      |¦  «         d S t          |t          j        ¦  «        rp|                      |j        j        ¦  «        }|                      |j	        j        ¦  «        }| j                             ||¦  «        }|                      |¦  «         d S t          |t          j        ¦  «        r‰|                      |j        j        ¦  «        }|                      |j
        j        ¦  «        }| j                             ||                      |j        ¦  «        |¦  «        }|                      |¦  «         d S t          |t          j        ¦  «        ri|                      |j        j        ¦  «        }| j                             ||                      |j        ¦  «        ¦  «        }|                      |¦  «         d S t          |t          j        ¦  «        r�|                      |j        j        ¦  «        }|                      |j        j        ¦  «        }|                      |j
        j        ¦  «        }| j                             |||¦  «        }|                      |¦  «         d S t          |t          j        ¦  «        r~|                      |j
        j        ¦  «        }| j        r6| j                             |¦  «         | j                             | ¦  «         d S | j                              | j!        |¦  «         d S t          |t          j"        ¦  «        rç|                      |j#        j        ¦  «        }	|	j$        tJ          j         &                    d¦  «        k    r|	}
n| j         '                    |	¦  «        }
tJ          j         (                    |
j$        d ¦  «        }| j!         )                    d|
|¦  «        }| j*        |j+                 }| j*        |j,                 }| j!         -                    |||¦  «         d S t          |t          j.        ¦  «        r.| j*        |j                 }| j!         /                    |¦  «         d S t          |t          j0        ¦  «        r|  1                    |j
        ¦  «         d S t          |t          j2        ¦  «        rd S t          |t          j3        ¦  «        rn|j4        �5|                      |j4        j        ¦  «        }|  5                    |¦  «         nd }| j         6                    |¦  «         |  7                    ¦   «          d S tI          |¦  «        › d|› �}tq          |¦  «        ‚)Né   r(   z, )9Ú
isinstancer   ÚAssignÚlower_assignÚstorevarÚtargetÚnameÚSetItemÚloadvarÚindexÚvalueÚpyapiÚobject_setitemÚcheck_int_statusÚDelItemÚobject_delitemÚSetAttrÚobject_setattrÚ_freeze_stringÚattrÚDelAttrÚobject_delattrÚStoreMapÚdctÚkeyÚdict_setitemÚReturnÚgenerator_infoÚdecrefÚgenlowerÚreturn_from_generatorÚ	call_convÚreturn_valueÚbuilderÚBranchÚcondÚtypeÚllvmliteÚIntTypeÚobject_istrueÚConstantÚicmp_unsignedÚblkmapÚtruebrÚfalsebrÚcbranchÚJumpÚbranchÚDelÚdelvarÚPopBlockÚRaiseÚ	exceptionÚincrefÚraise_objectÚreturn_exception_raisedr   )r   ÚinstrL   rG   rK   ÚokrY   rZ   Úretvalre   ÚistrueÚzeroÚpredÚtrÚflÚexcÚmsgs                    r   Ú
lower_instzPyLower.lower_instc   sF  € Ý�d�BœIÑ&Ô&ð U	0Ø×%Ò% dÑ+Ô+ˆEØ�MŠM˜% ¤Ô!1Ñ2Ô2Ð2Ð2Ð2å˜�bœjÑ)Ô)ð Q	0Ø—\’\ $¤+Ô"2Ñ3Ô3ˆFØ—L’L ¤¤Ñ1Ô1ˆEØ—L’L ¤¤Ñ1Ô1ˆEØ”×*Ò*¨6°5¸%Ñ@Ô@ˆBØ×!Ò! "Ñ%Ô%Ð%Ð%Ð%å˜�bœjÑ)Ô)ð J	0Ø—\’\ $¤+Ô"2Ñ3Ô3ˆFØ—L’L ¤¤Ñ1Ô1ˆEØ”×*Ò*¨6°5Ñ9Ô9ˆBØ×!Ò! "Ñ%Ô%Ð%Ð%Ð%å˜�bœjÑ)Ô)ð D	0Ø—\’\ $¤+Ô"2Ñ3Ô3ˆFØ—L’L ¤¤Ñ1Ô1ˆEØ”×*Ò*¨6Ø+/×+>Ò+>¸t¼yÑ+IÔ+IØ+0ñ2ô 2ˆBð ×!Ò! "Ñ%Ô%Ð%Ð%Ð%å˜�bœjÑ)Ô)ð <	0Ø—\’\ $¤+Ô"2Ñ3Ô3ˆFØ”×*Ò*¨6Ø+/×+>Ò+>¸t¼yÑ+IÔ+IñKô KˆBà×!Ò! "Ñ%Ô%Ð%Ð%Ð%å˜�bœkÑ*Ô*ð 6	0Ø—,’,˜tœxœ}Ñ-Ô-ˆCØ—,’,˜tœxœ}Ñ-Ô-ˆCØ—L’L ¤¤Ñ1Ô1ˆEØ”×(Ò(¨¨c°5Ñ9Ô9ˆBØ×!Ò! "Ñ%Ô%Ð%Ð%Ð%å˜�bœiÑ(Ô(ð /	0Ø—\’\ $¤*¤/Ñ2Ô2ˆFØÔ"ð ð ”
×!Ò! &Ñ)Ô)Ð)Ø”×3Ò3°DÑ9Ô9Ð9Ø�àŒN×'Ò'¨¬°fÑ=Ô=Ð=Ð=Ð=å˜�bœiÑ(Ô(ð #	0Ø—<’< ¤	¤Ñ/Ô/ˆDØŒy�HœK×/Ò/°Ñ2Ô2Ò2Ð2Ø��àœ×1Ò1°$Ñ7Ô7�Ý”;×'Ò'¨¬°TÑ:Ô:ˆDØ”<×-Ò-¨d°F¸DÑAÔAˆDØ”˜Tœ[Ô)ˆBØ”˜Tœ\Ô*ˆBØŒL× Ò   r¨2Ñ.Ô.Ð.Ð.Ð.å˜�bœgÑ&Ô&ð 	0Ø”[ ¤Ô-ˆFØŒL×Ò Ñ'Ô'Ð'Ð'Ð'å˜�bœfÑ%Ô%ð 	0Ø�KŠK˜œ
Ñ#Ô#Ð#Ð#Ð#å˜�bœkÑ*Ô*ð 	0ØˆDå˜�bœhÑ'Ô'ð 	0ØŒ~Ð)Ø—l’l 4¤>Ô#6Ñ7Ô7�ð —’˜CÑ Ô Ð Ð à�ØŒJ×#Ò# CÑ(Ô(Ð(Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*õ ˜$‘Z”ZÐ)Ð) 4Ð)Ð)ˆCÝ*¨3Ñ/Ô/Ð/r   c                 ór   — ddl m} | j                             | j                             |¦  «        ¦  «        S )zeReturn a `OmittedArg` type instance as a LLVM value suitable for
        testing at runtime.
        r   )Ú
OmittedArg)Únumba.core.dispatcherr†   rM   ÚunserializeÚserialize_object)r   r†   s     r   Ú_omitted_typobjzPyLower._omitted_typobj»   sC   € ð
 	5Ð4Ð4Ð4Ð4Ð4ØŒz×%Ò%ØŒJ×'Ò'¨
Ñ3Ô3ñ5ô 5ð 	5r   c                 ó^  — |j         }t          |t          j        t          j        f¦  «        r|                      |j         ¦  «        S t          |t          j        ¦  «        r1|                      |j        ¦  «        }|  	                    |¦  «         |S t          |t          j
        ¦  «        r|                      |¦  «        S t          |t          j        ¦  «        r |                      |j        |j         ¦  «        S t          |t          j        ¦  «        r|                      |¦  «        S t          |t          j        ¦  «        �rÌ| j        j        j        j                             |j        ¦  «        }| j        |j                 }t1          j        | j        |¦  «        }|�J|j        t8          j        j        u r2|  	                    |¦  «         | j                             ||¦  «         �n| j          !                    |¦  «        }| j         "                    d|| j#        ¦  «        }| j         $                    |d¬¦  «        5 \  }	}
|
5  |  	                    |¦  «         | j                             ||¦  «         ddd¦  «         n# 1 swxY w Y   |	5  | j          %                    |d¦  «        }| j                             ||¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   | j         &                    |¦  «        S tO          tQ          |¦  «        |¦  «        ‚)z?
        The returned object must have a new reference
        Nr'   F)ÚlikelyrL   ))rL   rC   r   ÚConstÚFreeVarÚlower_constÚVarrJ   rH   rw   ÚExprÚ
lower_exprÚGlobalÚlower_globalÚYieldÚlower_yieldÚArgÚfunc_irÚfunc_idÚpysigÚ
parametersÚgetÚfnargsrK   r   Úalloca_once_valuerc   ÚdefaultÚinspectÚ	ParameterÚemptyÚstorerM   Úget_typerk   rŠ   Úif_elseÚobject_getattr_stringÚloadÚNotImplementedErrorrf   )r   rz   rL   ÚvalÚparamÚobjÚslotÚtypobjÚ
is_omittedÚomittedÚpresents              r   rE   zPyLower.lower_assignÄ   s}  € ð ”
ˆÝ�e�bœh­¬
Ð3Ñ4Ô4ð &	:Ø×#Ò# E¤KÑ0Ô0Ð0Ý˜�rœvÑ&Ô&ð $	:Ø—,’,˜uœzÑ*Ô*ˆCØ�KŠK˜ÑÔÐØˆJÝ˜�rœwÑ'Ô'ð  	:Ø—?’? 5Ñ)Ô)Ð)Ý˜�rœyÑ)Ô)ð 	:Ø×$Ò$ U¤Z°´Ñ=Ô=Ð=Ý˜�rœxÑ(Ô(ð 	:Ø×#Ò# EÑ*Ô*Ð*Ý˜�rœvÑ&Ô&ñ 	:Ø”LÔ(Ô.Ô9×=Ò=¸e¼jÑIÔIˆEà”+˜eœkÔ*ˆCÝÔ,¨T¬\¸3Ñ?Ô?ˆDàÐ  U¤]µgÔ6GÔ6MÐ%MÐ%MØ—’˜CÑ Ô Ð Ø”×"Ò" 3¨Ñ-Ô-Ð-Ñ-ð œ×,Ò,¨SÑ1Ô1�Ø!œ\×7Ò7¸¸fØ8<Ô8LñNô N�
à”\×)Ò)¨*¸UÐ)ÑCÔCð 6ÑGYÈÐQXØ ð 6ð 6ØŸš CÑ(Ô(Ð(Øœ×*Ò*¨3°Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð !ð 6ð 6à"œj×>Ò>¸sÀGÑLÔL˜Øœ×*Ò*¨3°Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð	6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð ”<×$Ò$ TÑ*Ô*Ð*å%¥d¨5¡k¤k°5Ñ9Ô9Ð9sZ   ÉK-É	1JÉ:K-ÊJ
	Ê
K-ÊJ
	ÊK-Ê7KË
K-ËK	ËK-ËK	ËK-Ë-K1Ë4K1c                 óô  — | j         j        |j                 }|j        |u sJ ‚| j                             | ¦  «         t          j        | ||j        |j	        z  ¦  «        }| 
                    ¦   «          |                      |j        j        ¦  «        }| j                             |¦  «         | j                             | j        |¦  «         |                     ¦   «          | j                             ¦   «         S r0   )r]   Úyield_pointsrK   rz   r_   Úinit_generator_stater   Ú
LowerYieldÚ	live_varsÚweak_live_varsÚlower_yield_suspendrJ   rL   rH   rM   rw   ra   rb   rc   Úlower_yield_resumeÚ	make_none)r   rz   ÚypÚyr©   s        r   r–   zPyLower.lower_yieldñ   sØ   € ØÔ Ô-¨d¬jÔ9ˆØŒw˜$ˆˆˆˆØŒ×*Ò*¨4Ñ0Ô0Ð0õ Ô! $¨¨B¬L¸2Ô;LÑ,LÑMÔMˆØ	×ÒÑÔÐà�lŠl˜4œ:œ?Ñ+Ô+ˆàŒ
×Ò˜#ÑÔÐØŒ×#Ò# D¤L°#Ñ6Ô6Ð6ð 	
×ÒÑÔÐàŒz×#Ò#Ñ%Ô%Ð%r   Fc                 óê  — |                       |j        j        ¦  «        }|                       |j        j        ¦  «        }t	          |t
          ¦  «        rJ ‚|t          v r4t          |         \  }}t          | j        |¦  «        } ||||¬¦  «        }nKt           
                    |j        |j        ¦  «        }|dk    r||}}| j                             |||¦  «        }|                      |¦  «         |S )N©Úinplacer,   )rJ   ÚlhsrH   ÚrhsrC   ÚstrÚPYTHON_BINOPMAPÚgetattrrM   ÚPYTHON_COMPAREOPMAPrœ   ÚfnÚobject_richcompareÚcheck_error)	r   ÚexprÚopr¾   r¿   rÀ   ÚfnamerÅ   Úress	            r   Úlower_binopzPyLower.lower_binop  sã   € Ø�lŠl˜4œ8œ=Ñ)Ô)ˆØ�lŠl˜4œ8œ=Ñ)Ô)ˆÝ˜b¥#Ñ&Ô&Ð&Ð&Ð&Ø•Ð Ð Ý,¨RÔ0‰NˆE�7Ý˜œ UÑ+Ô+ˆBØ�"�S˜# wÐ/Ñ/Ô/ˆCˆCõ %×(Ò(¨¬°$´'Ñ:Ô:ˆBØ�TŠzˆzØ �S�Ø”*×/Ò/°°S¸"Ñ=Ô=ˆCØ×Ò˜ÑÔÐØˆ
r   c                 óÚ  ‡ — |j         dk    r‰                      ||j        d¬¦  «        S |j         dk    r‰                      ||j        d¬¦  «        S |j         dk    �r4‰                      |j        j        ¦  «        }|j        t          j        k    r‰ j         	                    |¦  «        }nÎ|j        t          j
        k    r‰ j                             |¦  «        }nž|j        t          j        k    rJ‰ j                             |¦  «        }‰                      |¦  «         ‰ j                             |¦  «        }n?|j        t          j        k    r‰ j                             |¦  «        }nt%          |¦  «        ‚‰                      |¦  «         |S |j         dk    �rˆ fd„|j        D ¦   «         }‰                      |j        j        ¦  «        }‰ j                             |¦  «        }|j        r~‰ j                             ‰                      |j        j        ¦  «        ¦  «        }‰ j                             ||¦  «        }‰                      |¦  «         ‰                      |¦  «         |}|j        s‰ j                             ||d ¦  «        }	n^ˆ fd	„|j        D ¦   «         }
‰ j                             |
¦  «        }‰ j                             |||¦  «        }	‰                      |¦  «         ‰                      |¦  «         ‰                      |	¦  «         |	S |j         d
k    ri‰                      |j        j        ¦  «        }‰ j                             |‰                      |j         ¦  «        ¦  «        }‰                      |¦  «         |S |j         dk    rDˆ fd„|j!        D ¦   «         }‰ j                             |¦  «        }‰                      |¦  «         |S |j         dk    rDˆ fd„|j!        D ¦   «         }‰ j         "                    |¦  «        }‰                      |¦  «         |S |j         dk    r¨‰ j         #                    |j$        ¦  «        }‰                      |¦  «         |j!        D ]j\  }}‰                      |j        ¦  «        }‰                      |j        ¦  «        }‰ j         %                    |||¦  «        }‰                      |¦  «         Œk|S |j         dk    rxˆ fd„|j!        D ¦   «         }‰ j         &                    ¦   «         }‰                      |¦  «         |D ]2}‰ j         '                    ||¦  «        }‰                      |¦  «         Œ3|S |j         dk    rP‰                      |j        j        ¦  «        }‰ j         (                    |¦  «        }‰                      |¦  «         |S |j         dk    �ro‰                      |j        j        ¦  «        }‰ j         )                    |¦  «        }tU          j+        ‰ j,        |¦  «        }‰ j         -                    d¦  «        }‰ j,         .                    |¦  «        5 \  }}|5  ‰ j         /                    |d|¦  «         d d d ¦  «         n# 1 swxY w Y   |5  ‰  0                    ¦   «          ‰ j         /                    |d‰ j         1                    ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ‰ j         /                    |d‰ j                             |¦  «        ¦  «         |S |j         dk    rQ‰                      |j        j        ¦  «        }‰ j         2                    |d¦  «        }‰  3                    |¦  «         |S |j         dk    rQ‰                      |j        j        ¦  «        }‰ j         2                    |d¦  «        }‰  3                    |¦  «         |S |j         dk    rü‰                      |j        j        ¦  «        }‰ j                             |¦  «        }‰                      |¦  «         ‰ j         4                    |¦  «        }‰ j5         6                    tn          j8        |j9        ¦  «        }‰ j,         :                    d||¦  «        }tU          j;        ‰ j,        |¦  «        5  ‰  <                    tz          ¦  «         d d d ¦  «         n# 1 swxY w Y   |S |j         dk    rp‰                      |j        j        ¦  «        }‰                      |j>        j        ¦  «        }‰ j         ?                    ||¦  «        }‰                      |¦  «         |S |j         dk    r¿‰                      |j        j        ¦  «        }‰ j5         6                    tn          j8        |j>        ¦  «        }‰ j         @                    |¦  «        } ‰                      | ¦  «         ‰ j         ?                    || ¦  «        }‰                      | ¦  «         ‰                      |¦  «         |S |j         dk    rë‰                      |jA        j        ¦  «        }!‰                      |jB        j        ¦  «        }"‰                      |jC        j        ¦  «        }#‰  D                    d¦  «        }$‰ j         E                    |$|"|#f¦  «        }%‰                      |$¦  «         ‰                      |%¦  «         ‰ j         ?                    |!|%¦  «        }‰                      |¦  «         |S |j         dk    r6‰                      |j        j        ¦  «        }&‰  3                    |&¦  «         |&S |j         d k    rt�          d!¦  «        ‚|j         d"k    rtU          jG        ‰ j        jH        ¦  «        S |j         d#k    r‰  I                    t”          ¦  «        S t%          |¦  «        ‚)$NÚbinopFr½   Úinplace_binopTÚunaryÚcallc                 óD   •— g | ]}‰                      |j        ¦  «        ‘ŒS r   ©rJ   rH   )Ú.0Úar   s     €r   ú
<listcomp>z&PyLower.lower_expr.<locals>.<listcomp>,  s'   ø€ Ð?Ð?Ð?°�t—|’| A¤FÑ+Ô+Ð?Ð?Ð?r   c                 óN   •— g | ]!\  }}|‰                      |j        ¦  «        f‘Œ"S r   rÓ   )rÔ   ÚkÚvr   s      €r   rÖ   z&PyLower.lower_expr.<locals>.<listcomp><  s0   ø€ ÐLÐLÐL¹4¸1¸a˜a §¢¨a¬fÑ!5Ô!5Ð6ÐLÐLÐLr   rÃ   Úbuild_tuplec                 óD   •— g | ]}‰                      |j        ¦  «        ‘ŒS r   rÓ   ©rÔ   Úitr   s     €r   rÖ   z&PyLower.lower_expr.<locals>.<listcomp>I  ó'   ø€ Ð@Ð@Ð@¨r�T—\’\ "¤'Ñ*Ô*Ð@Ð@Ð@r   Ú
build_listc                 óD   •— g | ]}‰                      |j        ¦  «        ‘ŒS r   rÓ   rÜ   s     €r   rÖ   z&PyLower.lower_expr.<locals>.<listcomp>N  rÞ   r   Ú	build_mapÚ	build_setc                 óD   •— g | ]}‰                      |j        ¦  «        ‘ŒS r   rÓ   rÜ   s     €r   rÖ   z&PyLower.lower_expr.<locals>.<listcomp>\  rÞ   r   ÚgetiterÚiternexté   r   rB   Ú
pair_firstÚpair_secondÚexhaust_iterr(   ÚgetitemÚstatic_getitemÚgetsliceÚsliceÚcastÚphizPHI not strippedÚnullÚundef)KrÉ   rÌ   rÅ   rJ   rL   rH   ÚoperatorÚnegrM   Únumber_negativeÚposÚnumber_positiveÚnot_Ú
object_notrO   Úbool_from_boolÚinvertÚnumber_invertr¨   rÇ   ÚargsÚfuncÚ
tuple_packÚvarargÚsequence_tupleÚsequence_concatr^   ÚkwsrÑ   Ú	dict_packÚobject_getattrrT   rU   ÚitemsÚ	list_packÚdict_newÚsizer[   Úset_newÚset_addÚobject_getiterÚ	iter_nextr   Úis_not_nullrc   Ú	tuple_newr¥   Útuple_setitemÚcheck_occurredr¹   Útuple_getitemrw   Ú
tuple_sizeÚcontextÚget_constantr   ÚintpÚcountrk   Úif_unlikelyÚreturn_exceptionÚ
ValueErrorrK   Úobject_getitemÚlong_from_ssize_trG   ÚstartÚstopÚget_builtin_objÚcall_function_objargsr
   Úget_null_valueÚpyobjr�   Ú
_UNDEFINED)'r   rÈ   rL   rË   ÚargvalsrÅ   rü   ÚvarargsÚnew_argsÚretÚ	keyvaluesr  r«   r  rØ   rÙ   rZ   r{   rÝ   ÚiterobjÚitemÚis_validÚpairÚthenÚ	otherwiseÚfirstÚsecondÚtupÚtup_sizeÚexpected_sizeÚhas_wrong_sizerK   ÚindexobjrG   r  r  ÚslicefnÚsliceobjr©   s'   `                                      r   r’   zPyLower.lower_expr  sÞ  ø€ ØŒ7�gÒÐØ×#Ò# D¨$¬'¸5Ð#ÑAÔAÐAØŒW˜Ò'Ð'Ø×#Ò# D¨$¬'¸4Ð#Ñ@Ô@Ð@ØŒW˜ÒÑØ—L’L ¤¤Ñ1Ô1ˆEØŒw�(œ,Ò&Ð&Ø”j×0Ò0°Ñ7Ô7��Ø”�HœLÒ(Ð(Ø”j×0Ò0°Ñ7Ô7��Ø”�HœMÒ)Ð)Ø”j×+Ò+¨EÑ2Ô2�Ø×%Ò% cÑ*Ô*Ð*Ø”j×/Ò/°Ñ4Ô4��Ø”�HœOÒ+Ð+Ø”j×.Ò.¨uÑ5Ô5��å)¨$Ñ/Ô/Ð/Ø×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜ÒÑØ?Ð?Ð?Ð?°T´YÐ?Ñ?Ô?ˆGØ—’˜dœiœnÑ-Ô-ˆBØ”:×(Ò(¨Ñ1Ô1ˆDØŒ{ð  àœ*×3Ò3Ø $§¢¨T¬[Ô-=Ñ >Ô >ñ@ô @�àœ:×5Ò5°d¸GÑDÔD�Ø—’˜GÑ$Ô$Ð$Ø—’˜DÑ!Ô!Ð!Ø�Ø”8ð !à”j—o’o b¨$°Ñ5Ô5��ð MÐLÐLÐLÀ4Ä8ÐLÑLÔL�	Ø”j×*Ò*¨9Ñ5Ô5�Ø”j—o’o b¨$°Ñ4Ô4�Ø—’˜CÑ Ô Ð Ø�KŠK˜ÑÔÐØ×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜	Ò!Ð!Ø—,’,˜tœzœÑ/Ô/ˆCØ”*×+Ò+¨C°×1DÒ1DÀTÄYÑ1OÔ1OÑPÔPˆCØ×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜Ò%Ð%Ø@Ð@Ð@Ð@°T´ZÐ@Ñ@Ô@ˆEØ”*×'Ò'¨Ñ.Ô.ˆCØ×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜Ò$Ð$Ø@Ð@Ð@Ð@°T´ZÐ@Ñ@Ô@ˆEØ”*×&Ò& uÑ-Ô-ˆCØ×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜Ò#Ð#Ø”*×%Ò% d¤iÑ0Ô0ˆCØ×Ò˜SÑ!Ô!Ð!Øœ
ð *ð *‘��1Ø—l’l 1¤6Ñ*Ô*�ØŸš Q¤VÑ,Ô,�Ø”Z×,Ò,¨S°#°uÑ=Ô=�Ø×%Ò% bÑ)Ô)Ð)Ð)ØˆJØŒW˜Ò#Ð#Ø@Ð@Ð@Ð@°T´ZÐ@Ñ@Ô@ˆEØ”*×$Ò$Ñ&Ô&ˆCØ×Ò˜SÑ!Ô!Ð!Øð *ð *�Ø”Z×'Ò'¨¨RÑ0Ô0�Ø×%Ò% bÑ)Ô)Ð)Ð)ØˆJØŒW˜	Ò!Ð!Ø—,’,˜tœzœÑ/Ô/ˆCØ”*×+Ò+¨CÑ0Ô0ˆCØ×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜
Ò"Ñ"Ø—l’l 4¤:¤?Ñ3Ô3ˆGØ”:×'Ò'¨Ñ0Ô0ˆDÝÔ*¨4¬<¸Ñ>Ô>ˆHØ”:×'Ò'¨Ñ*Ô*ˆDØ”×%Ò% hÑ/Ô/ð NÑ3D°D¸)Øð <ð <Ø”J×,Ò,¨T°1°dÑ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <àð Nð NØ×'Ò'Ñ)Ô)Ð)ð ”J×,Ò,¨T°1°d´j×6JÒ6JÑ6LÔ6LÑMÔMÐMð	Nð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð NðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nð ŒJ×$Ò$ T¨1¨d¬j×.GÒ.GÈÑ.QÔ.QÑRÔRÐRØˆKØŒW˜Ò$Ð$Ø—<’< ¤
¤Ñ0Ô0ˆDØ”J×,Ò,¨T°1Ñ5Ô5ˆEØ�KŠK˜ÑÔÐØˆLØŒW˜Ò%Ð%Ø—<’< ¤
¤Ñ0Ô0ˆDØ”Z×-Ò-¨d°AÑ6Ô6ˆFØ�KŠK˜ÑÔÐØˆMØŒW˜Ò&Ð&Ø—l’l 4¤:¤?Ñ3Ô3ˆGØ”*×+Ò+¨GÑ4Ô4ˆCØ×Ò˜SÑ!Ô!Ð!à”z×,Ò,¨SÑ1Ô1ˆHØ œL×5Ò5µe´jÀ$Ä*ÑMÔMˆMØ!œ\×7Ò7¸Ø/7¸ñHô HˆNåÔ$ T¤\°>ÑBÔBð 2ð 2Ø×%Ò%¥jÑ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2àˆJØŒW˜	Ò!Ð!Ø—L’L ¤¤Ñ1Ô1ˆEØ—L’L ¤¤Ñ1Ô1ˆEØ”*×+Ò+¨E°5Ñ9Ô9ˆCØ×Ò˜SÑ!Ô!Ð!ØˆJØŒWÐ(Ò(Ð(Ø—L’L ¤¤Ñ1Ô1ˆEØ”L×-Ò-­e¬j¸$¼*ÑEÔEˆEØ”z×3Ò3°EÑ:Ô:ˆHØ×Ò˜XÑ&Ô&Ð&Ø”*×+Ò+¨E°8Ñ<Ô<ˆCØ�KŠK˜Ñ!Ô!Ð!Ø×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜
Ò"Ð"Ø—\’\ $¤+Ô"2Ñ3Ô3ˆFØ—L’L ¤¤Ñ1Ô1ˆEØ—<’< ¤	¤Ñ/Ô/ˆDà×*Ò*¨7Ñ3Ô3ˆGØ”z×7Ò7¸À%ÈÀÑOÔOˆHØ�KŠK˜Ñ Ô Ð Ø×Ò˜XÑ&Ô&Ð&à”*×+Ò+¨F°HÑ=Ô=ˆCØ×Ò˜SÑ!Ô!Ð!àˆJàŒW˜ÒÐØ—,’,˜tœzœÑ/Ô/ˆCØ�KŠK˜ÑÔÐØˆJØŒW˜ÒÐÝÐ 2Ñ3Ô3Ð3àŒW˜ÒÐåÔ)¨$¬*Ô*:Ñ;Ô;Ð;àŒW˜ÒÐà×#Ò#¥JÑ/Ô/Ð/õ & dÑ+Ô+Ð+sm   Ù[:ÙZÙ6[:ÚZ	Ú[:Ú	Z	Ú
[:ÚA[#Û[:Û#['	Û'[:Û*['	Û+[:Û:[>Ü[>ãc-ã-c1ã4c1c                 óÂ   — | j                              |¦  «        }| j                              |¦  «        }|                      |¦  «         |                      |¦  «         |S r0   )Úenv_managerÚ	add_constÚ
read_constrÇ   rw   )r   ÚconstrK   r&  s       r   r�   zPyLower.lower_const½  sY   € àÔ ×*Ò*¨5Ñ1Ô1ˆØÔ×)Ò)¨%Ñ0Ô0ˆØ×Ò˜ÑÔÐØ�Š�CÑÔÐØˆ
r   c                 ó  — |                       ¦   «         }| j                             ||                      |¦  «        ¦  «        }|                      |¦  «         	 |t
          v rt          d|z  | j        ¬¦  «        ‚n# t          $ r Y nw xY wt          t          |¦  «        rô|                      |¦  «        }| j        j        }| j                             |¦  «        5  | j                             ||                      d¦  «        ¦  «        }|                      ||¦  «        }| j        j        }	ddd¦  «         n# 1 swxY w Y   | j                             | j        j        ¦  «        }
|
                     ||¦  «         |
                     ||	¦  «         nu|}
t'          j        | j        |                      |
¦  «        ¦  «        5  | j                             |¦  «         |                      ¦   «          ddd¦  «         n# 1 swxY w Y   |
S )zÄ
        1) Check global scope dictionary.
        2) Check __builtins__.
            2a) is it a dictionary (for non __main__ module)
            2b) is it a module (for __main__ module)
        zbuiltins %s() is not supported)ÚlocÚ__builtins__N)Úget_module_dictrM   Údict_getitemrT   rw   Ú_unsupported_builtinsr	   r=  Ú	TypeErrorÚhasattrÚbuiltinsÚis_nullrc   Úbasic_blockÚif_thenÚbuiltin_lookuprï   r!  Úadd_incomingr   r  Úraise_missing_global_errorry   )r   rH   rL   Úmoddictr«   Úobj_is_nullÚbbelseÚmodÚbuiltinÚbbifr|   s              r   r”   zPyLower.lower_globalÅ  s‡  € ð ×&Ò&Ñ(Ô(ˆØŒj×%Ò% g¨t×/BÒ/BÀ4Ñ/HÔ/HÑIÔIˆØ�Š�CÑÔÐð	ØÕ-Ð-Ð-Ý(Ð)IØ+/ñ*0Ø59´Xð?ñ ?ô ?ð ?ð .øõ ð 	ð 	ð 	àˆDð	øøøõ •8˜TÑ"Ô"ð 	/ØŸ,š, sÑ+Ô+ˆKØ”\Ô-ˆFà”×%Ò% kÑ2Ô2ð 0ð 0Ø”j×-Ò-¨gØ*.×*=Ò*=¸nÑ*MÔ*MñOô O�à×-Ò-¨c°4Ñ8Ô8�Ø”|Ô/�ð	0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð ”\×%Ò% d¤jÔ&6Ñ7Ô7ˆFØ×Ò  VÑ,Ô,Ð,Ø×Ò ¨Ñ.Ô.Ð.Ð.ð ˆFÝÔ$ T¤\°4·<²<ÀÑ3GÔ3GÑHÔHð /ð /Ø”
×5Ò5°dÑ;Ô;Ð;Ø×,Ò,Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð ˆs7   Á"A< Á<
B	ÂB	ÃAD9Ä9D=Å D=Ç/G?Ç?HÈHc                 ó   — | j         j        S r0   )Úenv_bodyÚglobalsr   s    r   r?  zPyLower.get_module_dictð  s   € ØŒ}Ô$Ð$r   c                 ó²   — |                       ¦   «         }| j                             ||                      d¦  «        ¦  «        }|                      ||¦  «        S )Nr>  )r?  rM   r@  rT   rH  )r   rH   rK  rN  s       r   r  zPyLower.get_builtin_objó  sU   € à×&Ò&Ñ(Ô(ˆØŒj×%Ò% gØ&*×&9Ò&9¸.Ñ&IÔ&IñKô Kˆà×"Ò" 3¨Ñ-Ô-Ð-r   c                 ó(  — | j                              ||                      |¦  «        ¦  «        }|                      |¦  «         | j        j        }t          j        | j        |                      |¦  «        ¦  «        5  | j          	                    ||                      |¦  «        ¦  «        }t          j        | j        |                      |¦  «        ¦  «        5  | j          
                    |¦  «         |                      ¦   «          ddd¦  «         n# 1 swxY w Y   | j        j        }ddd¦  «         n# 1 swxY w Y   | j                             | j         j        ¦  «        }|                     ||¦  «         |                     ||¦  «         |S )zÆ
        Args
        ----
        mod:
            The __builtins__ dictionary or module, as looked up in
            a module's globals.
        name: str
            The object to lookup
        N)rM   r@  rT   rw   rc   rF  r   r  rE  r  rJ  ry   rï   r!  rI  )r   rN  rH   ÚfromdictÚbbifdictÚfrommodÚbbifmodrO  s           r   rH  zPyLower.builtin_lookupú  s×  € ð ”:×*Ò*¨3°×0CÒ0CÀDÑ0IÔ0IÑJÔJˆØ�Š�HÑÔÐØ”<Ô+ˆåÔ  ¤¨t¯|ª|¸HÑ/EÔ/EÑFÔFð 	/ð 	/à”j×/Ò/°°T×5HÒ5HÈÑ5NÔ5NÑOÔOˆGåÔ$ T¤\°4·<²<ÀÑ3HÔ3HÑIÔIð /ð /Ø”
×5Ò5°dÑ;Ô;Ð;Ø×,Ò,Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð ”lÔ.ˆGð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð ”,×"Ò" 4¤:Ô#3Ñ4Ô4ˆØ×Ò˜X xÑ0Ô0Ð0Ø×Ò˜W gÑ.Ô.Ð.àˆs7   Á=AD7Ã/DÄD7ÄD	ÄD7ÄD	ÄD7Ä7D;Ä>D;c                 óö   — t          j        | j        | j                             ¦   «         ¦  «        }t          j        | j        |¦  «        5  |                      ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )z2
        Return if an exception occurred.
        N)r   r  rc   rM   Úerr_occurredr  ry   )r   r[  s     r   r  zPyLower.check_occurred  sº   € õ Ô*¨4¬<Ø+/¬:×+BÒ+BÑ+DÔ+DñFô Fˆõ Ô  ¤¨|Ñ<Ô<ð 	+ð 	+Ø×(Ò(Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s   ÁA.Á.A2Á5A2c                 ó¸   — t          j        | j        |                      |¦  «        ¦  «        5  |                      ¦   «          ddd¦  «         n# 1 swxY w Y   |S )z*
        Return if *obj* is NULL.
        N)r   r  rc   rE  ry   ©r   r«   s     r   rÇ   zPyLower.check_error"  s“   € õ Ô  ¤¨t¯|ª|¸CÑ/@Ô/@ÑAÔAð 	+ð 	+Ø×(Ò(Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð ˆ
s   ®AÁAÁAr   c                 ó  — t           j                             |j        |¦  «        }| j                             d||¦  «        }t          j        | j        |¦  «        5  |                      ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )zI
        Raise an exception if *num* is smaller than *ok_value*.
        r)   N)	rg   r   rj   rf   rc   Úicmp_signedr   r  ry   )r   ÚnumÚok_valuer{   r   s        r   rO   zPyLower.check_int_status+  sÁ   € õ Œ[×!Ò! #¤(¨HÑ5Ô5ˆØŒ|×'Ò'¨¨S°"Ñ5Ô5ˆÝÔ  ¤¨tÑ4Ô4ð 	+ð 	+Ø×(Ò(Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s   ÁA>Á>BÂBc                 ó6   — t          j        | j        |¦  «        S r0   )r   rE  rc   r]  s     r   rE  zPyLower.is_null4  s   € ÝŒ˜tœ|¨SÑ1Ô1Ð1r   c                 ól   — |                       ¦   «          | j                             | j        ¦  «         dS )z=
        Return with the currently raised exception.
        N)Úcleanup_varsra   Ú
return_excrc   r   s    r   ry   zPyLower.return_exception_raised7  s4   € ð 	×ÒÑÔÐØŒ×!Ò! $¤,Ñ/Ô/Ð/Ð/Ð/r   c                 ó^   — t          | j                             |¦  «        ¦  «        | _        dS )z8
        Initialize live variables for *block*.
        N)r1   r˜   Úget_block_entry_varsr3   r>   s     r   r=   zPyLower.init_vars>  s'   € õ ˜dœl×?Ò?ÀÑFÔFÑGÔGˆŒˆˆr   Nc                 ól   — || j         vr|                      ||¬¦  «        | j         |<   | j         |         S )N©Últype)ÚvarmapÚalloca)r   rH   rj  s      r   Ú_getvarzPyLower._getvarD  s8   € Ø�t”{Ð"Ð"Ø $§¢¨D¸ Ñ >Ô >ˆDŒK˜ÑØŒ{˜4Ô Ð r   c                 ó`  — || j         v s
J |¦   «         ‚| j        |         }| j                             |¦  «        }t	          j        | j        |                      |¦  «        ¦  «        5  | j                             |¦  «         |  	                    ¦   «          ddd¦  «         n# 1 swxY w Y   |S )zC
        Load the llvm value of the variable named *name*.
        N)
r3   rk  rc   r§   r   r  rE  rM   Úraise_missing_name_errorry   )r   rH   Úptrr©   s       r   rJ   zPyLower.loadvarI  så   € ð
 �t”Ð&Ð&Ð&¨Ñ&Ô&Ð&ØŒk˜$ÔˆØŒl×Ò Ñ$Ô$ˆÝÔ  ¤¨t¯|ª|¸CÑ/@Ô/@ÑAÔAð 	+ð 	+ØŒJ×/Ò/°Ñ5Ô5Ð5Ø×(Ò(Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð ˆ
s   Á(/B#Â#B'Â*B'c                 ó,  — | j                              |¦  «         |                      |¦  «        }|                      | j                             |¦  «        ¦  «         | j                             t          j        |j	        j
        ¦  «        |¦  «         dS )zy
        Delete the variable slot with the given name. This will decref
        the corresponding Python object.
        N)r3   Úremoverm  r^   rc   r§   r£   r   r   rf   Úpointee©r   rH   rp  s      r   rs   zPyLower.delvarV  s}   € ð 	Œ×Ò˜tÑ$Ô$Ð$Ø�lŠl˜4Ñ Ô ˆØ�Š�D”L×%Ò% cÑ*Ô*Ñ+Ô+Ð+ð 	Œ×Ò�7Ô1°#´(Ô2BÑCÔCÀSÑIÔIÐIÐIÐIr   c                 óÀ  — || j         v o| }|                      ||j        ¬¦  «        }|r| j                             |¦  «        }n| j                              |¦  «         |j        |j        j        k    s5J t          |j        ¦  «        t          |j        j        ¦  «        f¦   «         ‚| j                             ||¦  «         |r|  	                    |¦  «         dS dS )z|
        Stores a llvm value and allocate stack slot if necessary.
        The llvm value can be of arbitrary type.
        ri  N)
r3   rm  rf   rc   r§   Úaddrs  rÁ   r£   r^   )r   rL   rH   ÚclobberÚis_redefinerp  Úolds          r   rF   zPyLower.storevard  sã   € ð
 ˜dœoÐ-Ð=°g°+ˆØ�lŠl˜4 u¤zˆlÑ2Ô2ˆØð 	&Ø”,×#Ò# CÑ(Ô(ˆCˆCàŒO×Ò Ñ%Ô%Ð%ØŒz˜SœXÔ-Ò-Ð-Ð-µ°E´J±´Ý03°C´HÔ4DÑ0EÔ0Eð0GÑ-Ô-Ð-àŒ×Ò˜5 #Ñ&Ô&Ð&àð 	Ø�KŠK˜ÑÔÐÐÐð	ð 	r   c                 óž   — | j         D ]D}|                      |¦  «        }|                      | j                             |¦  «        ¦  «         ŒEdS )z)
        Cleanup live variables.
        N)r3   rm  r^   rc   r§   rt  s      r   rd  zPyLower.cleanup_varsv  sU   € ð ”Oð 	0ð 	0ˆDØ—,’,˜tÑ$Ô$ˆCØ�KŠK˜œ×)Ò)¨#Ñ.Ô.Ñ/Ô/Ð/Ð/ð	0ð 	0r   c                 óR  — |€$| j                              t          j        ¦  «        }| j                             | j        ¦  «        5  | j                             ||¬¦  «        }| j                             t          j
        |¦  «        |¦  «         ddd¦  «         n# 1 swxY w Y   |S )zœ
        Allocate a stack slot and initialize it to NULL.
        The default is to allocate a pyobject pointer.
        Use ``ltype`` to override.
        N)rH   )r  Úget_value_typer   Úpyobjectrc   Ú
goto_blockÚentry_blockrl  r£   r   r   )r   rH   rj  rp  s       r   rl  zPyLower.alloca~  sã   € ð ˆ=Ø”L×/Ò/µ´Ñ?Ô?ˆEØŒ\×$Ò$ TÔ%5Ñ6Ô6ð 	Cð 	CØ”,×%Ò% e°$Ð%Ñ7Ô7ˆCØŒL×Ò�wÔ5°eÑ<Ô<¸cÑBÔBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð ˆ
s   ÁA
BÂB Â#B c                 ó,   — |                       |¦  «        S r0   )rl  )r   rH   Úfetypes      r   Ú_alloca_varzPyLower._alloca_var‹  s   € ð �{Š{˜4Ñ Ô Ð r   c                 ó:   — | j                              |¦  «         d S r0   )rM   rw   )r   rL   s     r   rw   zPyLower.incref�  s   € ØŒ
×Ò˜%Ñ Ô Ð Ð Ð r   c                 óœ   — | j                              t          j        ¦  «        }|j        |k    r| j                             |¦  «         dS dS )zp
        This is allow to be called on non pyobject pointer, in which case
        no code is inserted.
        N)r  r|  r   r}  rf   rM   r^   )r   rL   Úlpyobjs      r   r^   zPyLower.decref“  sL   € ð
 ”×,Ò,­U¬^Ñ<Ô<ˆØŒ:˜ÒÐØŒJ×Ò˜eÑ$Ô$Ð$Ð$Ð$ð  Ðr   c                 ó,   — |                       |¦  «        S )z>
        Freeze a Python string object into the code.
        )r�   )r   Ústrings     r   rT   zPyLower._freeze_stringœ  s   € ð ×Ò Ñ'Ô'Ð'r   )F)r   r0   )'r   r   r   r   ÚPyGeneratorLowerÚGeneratorLowerr4   r7   r;   r@   r„   r   rŠ   rE   r–   rÌ   r’   r�   r”   r?  r  rH  r  rÇ   rO   rE  ry   r=   rm  rJ   rs   rF   rd  rl  r‚  rw   r^   rT   Ú__classcell__)r9   s   @r   r.   r.   O   s7  ø€ € € € € àÔ0€Nð ð  ð  ðð ð ð ð ðð ð ðð ð ðV0ð V0ð V0ðp ð5ð 5ñ „_ð5ð+:ð +:ð +:ðZ&ð &ð &ð(ð ð ð ð"e,ð e,ð e,ðNð ð ð'ð 'ð 'ðV%ð %ð %ð.ð .ð .ðð ð ð<+ð +ð +ðð ð ð+ð +ð +ð +ð2ð 2ð 2ð0ð 0ð 0ðHð Hð Hð!ð !ð !ð !ð
ð ð ðJð Jð Jðð ð ð ð$0ð 0ð 0ðð ð ð ð!ð !ð !ð
!ð !ð !ð%ð %ð %ð(ð (ð (ð (ð (ð (ð (r   r.   )?r   rD  rò   r    Ú	functoolsr   Úllvmlite.irrg   Ú
numba.corer   r   r   r   r   Únumba.core.errorsr	   r
   r   Únumba.core.loweringr   r1   ÚlocalsrA  r   r"  rv  ÚsubÚmulÚtruedivÚfloordivrN  ÚpowÚlshiftÚrshiftÚand_Úor_ÚxorÚiaddÚisubÚimulÚitruedivÚ	ifloordivÚimodÚipowÚilshiftÚirshiftÚiandÚiorÚixorrÂ   ÚmatmulÚimatmulÚeqÚneÚltÚleÚgtÚgeÚis_Úis_notÚcontainsrÄ   r.   r   r   r   ú<module>r²     sï  ððð ð
 €€€Ø €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ð9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9à )Ð )Ð )Ð )Ð )Ð )ð
 ˜˜V˜H™œÐ ðð ð ð ð ñ ô ð ð ˆZ‰\Œ\€
ðØ„LÐ'ðà„LÐ,ðð „LÐ,ðð ÔÐ2ð	ð
 ÔÐ4ðð „LÐ-ðð „LÐ)ðð „OÐ-ðð „OÐ-ðð „MÐ(ðð „LÐ&ðð „LÐ'ðð „MÐ'ðð „MÐ,ðð  „MÐ,ð!ð" ÔÐ2ð#ð$ ÔÐ4ð%ð& „MÐ-Ø„MÐ)ØÔÐ-ØÔÐ-Ø„MÐ'Ø„LÐ%Ø„MÐ'ð3ð €ð8 $E€�”Ñ  Ø$D€�Ô Ñ !ð „K�Ø„K�Ø„K�Ø„K�Ø„K�Ø„K�Ø„L�$Ø„O�XØÔ�tð
Ð ðQ	(ð Q	(ð Q	(ð Q	(ð Q	(ˆiñ Q	(ô Q	(ð Q	(ð Q	(ð Q	(r   