Ë
    pPêjÚ	  ã                  óÊ   — d dl mZ d dlmZ d dlmZmZmZmZm	Z	 d dl
mZmZmZmZ d dlmZ d dlmZ  ed«      dd„«       Z ed	«      dd
„«       Zdd„Z ed«      dd„«       Zy)é    )Úannotations)ÚPLATFORM_SIZE)ÚGetElementPtrÚIntegerÚIntOpÚSetMemÚValue)ÚPyListObjectÚc_pyssize_t_rprimitiveÚobject_rprimitiveÚpointer_rprimitive)ÚLowLevelIRBuilder)Úlower_primitive_opÚbuf_init_itemc           
     óJ  — |d   }|d   }|d   }t        |t        «      sJ |«       ‚|j                  «       }|dk(  r|}nE| j                  t	        t
        |t        |t        z  t        «      t        j                  |«      «      }| j                  t        t        |||«      «      S )z¦Initialize an item in a buffer of "PyObject *" values at given index.

    This can be used to initialize the data buffer of a freshly allocated list
    object.
    r   é   é   )Ú
isinstancer   Únumeric_valueÚaddr   r   r   r   ÚADDr   r   )ÚbuilderÚargsÚlineÚbaseÚindex_valueÚvalueÚindexÚptrs           úY/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/lower/list_ops.pyr   r      s¡   € ð �‰7€DØ�q‘'€KØ�‰G€EÜ�k¤7Ô+Ð8¨[Ó8Ð+Ø×%Ñ%Ó'€EØ�‚zØ‰à�k‰kÜÜ"ØÜ˜¤Ñ-Ô/EÓFÜ—	‘	Øóó
ˆð �;‰;”vÔ/°°e¸TÓBÓCÐCó    Ú
list_itemsc                óv   — | j                  t        |d   t        d|«      «      }| j                  |t        «      S )Nr   Úob_item)r   r   r
   Úload_memr   )r   r   r   Úob_item_ptrs       r    r"   r"   *   s3   € à—+‘+œm¨D°©G´\À9ÈdÓSÓT€KØ×Ñ˜KÔ);Ó<Ð<r!   c           
     óþ   — t        | |g|«      }| j                  t        t        |t	        t
        t        «      t        j                  «      «      }| j                  t        t        ||t        j                  «      «      S )z¡Get a pointer to a list item (index must be valid and non-negative).

    Type of index must be c_pyssize_t_rprimitive, and obj must refer to a list object.
    )	r"   r   r   r   r   r   ÚMULr   r   )r   Úobjr   r   ÚitemsÚdeltas         r    Úlist_item_ptrr,   0   sc   € ô �w   tÓ,€EØ�K‰KÜÜ"ØÜ”MÔ#9Ó:Ü�I‰Ió		
ó€Eð �;‰;”uÔ/°¸¼u¿y¹yÓIÓJÐJr!   Úlist_get_item_unsafec                ó„   — | j                  |d   t        |«      }t        | |d   ||«      }| j                  |t        «      S )Nr   r   )Úcoercer   r,   r%   r   )r   r   r   r   Úitem_ptrs        r    r-   r-   C   sA   € à�N‰N˜4 ™7Ô$:¸DÓA€EÜ˜W d¨1¡g¨u°dÓ;€HØ×Ñ˜HÔ&7Ó8Ð8r!   N)r   r   r   zlist[Value]r   ÚintÚreturnr	   )
r   r   r)   r	   r   r	   r   r1   r2   r	   )Ú
__future__r   Úmypyc.commonr   Úmypyc.ir.opsr   r   r   r   r	   Úmypyc.ir.rtypesr
   r   r   r   Úmypyc.irbuild.ll_builderr   Úmypyc.lower.registryr   r   r"   r,   r-   © r!   r    ú<module>r:      sw   ðÝ "å &ß EÕ E÷ó õ 7Ý 3ñ �OÓ$òDó %ðDñ4 �LÓ!ò=ó "ð=ó
Kñ& Ð*Ó+ò9ó ,ñ9r!   