§
    �Štj™  ã                  ó�   — d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZmZmZmZmZ dZd d
„Zd!d„Zddœd"d„Zd#d„Zd$d„Zd%d„ZdS )&é    )Úannotations)Úcpp)ÚBindingÚCppSignatureGroupÚCType)ÚArgumentÚBaseTyÚBaseTypeÚListTypeÚNativeFunctionÚOptionalTypeÚTypez
	Úfr   ÚreturnÚstrc                ó>   — | j         j                             ¦   «         S )N)ÚfuncÚnameÚunambiguous_name)r   s    úS/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torchgen/api/unboxing.pyr   r   M   s   € ØŒ6Œ;×'Ò'Ñ)Ô)Ð)ó    útuple[list[Binding], list[str]]c                ó<  ‡	— t          j        | d¬¦  «                             ¦   «                              ¦   «         Š	ˆ	fd„t	          t          ‰	¦  «        ¦  «        D ¦   «         dgz   }g }‰	D ]­}t          |j        t          ¦  «        st          d|› �¦  «        ‚|j        }t          |j        |j        |j        ¬¦  «        \  }}}}|                     |¦  «         |                     |¦  «         |                     |                     |¦  «        ¦  «         Œ®||fS )NF)Úmethodc           
     óX   •— g | ]&}d ‰|         j         › d|› dt          ‰¦  «        › d�‘Œ'S )zc10::IValue z = std::move(peek(stack, ú, z));)r   Úlen)Ú.0ÚiÚargss     €r   ú
<listcomp>z%convert_arguments.<locals>.<listcomp>Y   sQ   ø€ ð ð ð àð 	R�t˜A”w”|ÐQÐQ¸aÐQÐQÅ3ÀtÁ9Ä9ÐQÐQÐQðð ð r   Ú z7Unexpected argument type, expecting `Argument` but got ©Úmutable)r   Úfrom_native_functionÚmost_faithful_signatureÚ	argumentsÚranger   Ú
isinstanceÚargumentr   Ú	ExceptionÚargumenttype_ivalue_convertÚtyper   Úis_writeÚextendÚappendÚ	with_name)
r   Ú	code_listÚbinding_listÚargr*   Úunboxed_nameÚ_ÚcodeÚdeclr    s
            @r   Úconvert_argumentsr9   R   sI  ø€ õ 	Ô.¨q¸Ð?Ñ?Ô?ß	 Ò	 Ñ	"Ô	"ß	Š‰Œð 	ð
ð ð ð å•s˜4‘y”yÑ!Ô!ðñ ô ð 
ˆñ€Ið €LØð 9ð 9ˆå˜#œ,­Ñ1Ô1ð 	ÝØOÈ#ÐOÐOñô ð ð !œ\ˆÝ&AØŒMØŒMØÔ%ð'
ñ '
ô '
Ñ#ˆ�a˜˜tð
 	×Ò˜ÑÔÐØ×Ò˜ÑÔÐØ×Ò˜CŸMšM¨,Ñ7Ô7Ñ8Ô8Ð8Ð8Ø˜Ð"Ð"r   Fr#   Útr   Úarg_namer$   Úboolú'tuple[str, CType, list[str], list[str]]c               ó–  — t          j        | ||d¬¦  «        j        }t          | t          ¦  «        r|› d�}t          |||¬¦  «        \  }}nwt          | t          ¦  «        r|› d�}t          ||| |¬¦  «        \  }}nFt          | t          ¦  «        r|› d�}t          ||| |¬¦  «        \  }}nt          d| › d	|› �¦  «        ‚||||fS )
NF)r:   r$   ÚbindsÚsymintÚ_base©r;   Úout_nameÚctypeÚ_opt_out)r;   rC   r:   rD   Ú	_list_outzCannot handle type z. arg_name: )r   Úargumenttype_typer-   r)   r
   Ú_gen_code_base_typer   Ú_gen_code_optional_typer   Ú_gen_code_list_typer+   )r:   r;   r$   rD   rC   r7   r8   s          r   r,   r,   s   s0  € õ Ô!Ø
�W H°Uðñ ô ä
ð 
õ �!•XÑÔð IØÐ%Ð%Ð%ˆÝ(Ø¨¸ð
ñ 
ô 
‰
ˆˆdˆdõ 
�A•|Ñ	$Ô	$ð IØÐ(Ð(Ð(ˆÝ,ØØØØð	
ñ 
ô 
‰
ˆˆdˆdõ 
�A•xÑ	 Ô	 ð 	IØÐ)Ð)Ð)ˆÝ(ØØØØð	
ñ 
ô 
‰
ˆˆdˆdõ ÐG¨aÐGÐG¸XÐGÐGÑHÔHÐHØ�U˜D $Ð&Ð&r   rC   rD   r   útuple[list[str], list[str]]c           	     ót   — |                      d¬¦  «        › d|› d| › d|                      d¬¦  «        › d�gg fS )NT©Ú	strip_refú ú = z.to<z>();)Úcpp_typerB   s      r   rH   rH   •   sW   € ð �>Š> Dˆ>Ñ)Ô)ÐkÐk¨HÐkÐk¸ÐkÐkÀuÇ~Â~Ð`dÀ~ÑGeÔGeÐkÐkÐkðà	ð
ð 
r   r   c                óf  — | › d�}t          |j        |¦  «        \  }}}}d| › d| › d|                     d¬¦  «        › d|› d| › d	|› d
| › dt                               |¦  «        › d|› d
|                     d¬¦  «        › d|› d|› d
|                     d¬¦  «        › d�                     d¦  «        |fS )NÚ_opt_inz
auto z_opt = z.toOptional<c10::IValue>();
TrM   rO   z;
if (z*_opt.has_value()) {
    const c10::IValue rP   z_opt.value();
    ú
    ú(z);
} else {
    z();
}
        ú
)r,   ÚelemrQ   Ú	connectorÚjoinÚsplit)	r;   rC   r:   rD   Úin_nameÚres_namer6   Úres_coder8   s	            r   rI   rI   �   sA  € ð Ð"Ð"Ð"€GÝ"=¸a¼fÀgÑ"NÔ"NÑ€Hˆa�˜4ð
	Øð
	ð 
	Øð
	ð 
	à‡‚˜$€ÑÔð
	ð 
	à"*ð
	ð 
	ð ð
	ð 
	ð ð	
	ð 
	ð $,ð	
	ð 
	õ
 ‡^‚^�HÑÔð
	ð 
	ð ð
	ð 
	ð —.’.¨4�.Ñ0Ô0ð
	ð 
	ð 4<ð
	ð 
	ð ð
	ð 
	ð —.’.¨4�.Ñ0Ô0ð
	ð 
	ð 
	÷ ŠE�$‰KŒKØðð r   r   c                óø  — | › d�}| › d�}d|› d| › d�g}t          |j        |¦  «        \  }}}	}
t          |j        t          ¦  «        rˆ|j        j        t
          j        k    rn|j        rg|                     d| 	                    d¬¦  «        › d	|› d
| 	                    d¬¦  «        › d|j        › d|› d� 
                    d¦  «        ¦  «         �n't          |j        t          ¦  «        rk|                     d| 	                    d¬¦  «        › d	|› d|› d|› dt                               |	¦  «        › d|› d|› d� 
                    d¦  «        ¦  «         n¢| dz   }|
                     d| 	                    d¬¦  «        › d|› d�¦  «         |                     d|› d|› dt                               |	¦  «        › d|› d|› d| 	                    d¬¦  «        › d	|› d|› d� 
                    d¦  «        ¦  «         ||
fS )NÚ_list_inÚ_elemzconst c10::List<c10::IValue> rP   z
.toList();rV   TrM   rO   z = as_array<r   z>(z);
            z;
for (c10::IValue z: z) {
    rT   z.push_back(z);
}
            Ú_veczstd::vector<z> ú;z
for (c10::IValue z);
}
rU   )r,   rW   r)   r
   r   r	   r<   Úsizer/   rQ   rZ   r   rX   rY   r0   )r;   rC   r:   rD   r[   Ú	elem_namer7   r\   Ú	res_ctyper]   r8   Úvec_names               r   rJ   rJ   ²   sß  € ð Ð#Ð#Ð#€GØÐ"Ð"Ð"€IØL¨GÐLÐL¸ÐLÐLÐLÐM€DÝ*EÀaÄfÈiÑ*XÔ*XÑ'€Hˆi˜ 4å�!”&�(Ñ#Ô#ð 
¨¬¬µv´{Ò(BÐ(BÀqÄvÐ(BØ�ŠðØ‡‚˜$€ÑÔðð Ø"*ðð Ø8A×8JÒ8JÐUYÐ8JÑ8ZÔ8Zðð Ø^_Ô^dðð Øhoðð ð ç’�d‘”ñ	
ô 	
ð 	
ñ 	
õ 
�A”F�LÑ	)Ô	)ð 
Ø�ŠðØ‡‚˜$€ÑÔðð Ø"*ðð àðð à&ðð õ ‡^‚^�HÑÔðð ð ð	ð ð #ð	ð ð ÷ ’�d‘”ñ	
ô 	
ð 	
ð 	
ð ˜fÑ$ˆà�ŠÐT 9×#5Ò#5ÀÐ#5Ñ#EÔ#EÐTÐTÈÐTÐTÐTÑUÔUÐUØ�ŠðØðð Ø&ðð å‡^‚^�HÑÔðð ð ðð ð #ðð ð
 ‡‚˜$€ÑÔðð ð
 #+ðð ð
 .6ðð ð ÷ ’�d‘”ñ	
ô 	
ð 	
ð �ˆ:Ðr   N)r   r   r   r   )r   r   r   r   )r:   r   r;   r   r$   r<   r   r=   )r;   r   rC   r   rD   r   r   rK   )
r;   r   rC   r   r:   r   rD   r   r   rK   )
r;   r   rC   r   r:   r   rD   r   r   rK   )Ú
__future__r   Útorchgen.apir   Útorchgen.api.typesr   r   r   Útorchgen.modelr   r	   r
   r   r   r   r   rX   r   r9   r,   rH   rI   rJ   © r   r   ú<module>rl      s<  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðH €	ð*ð *ð *ð *ð
#ð #ð #ð #ðD 05ð'ð 'ð 'ð 'ð 'ð 'ðD
ð 
ð 
ð 
ðð ð ð ð*'ð 'ð 'ð 'ð 'ð 'r   