§
    �Štjœ  ã                   ó`   — d Z ddlZda G d„ d¦  «        Zdedefd„Zdedefd„Zdedefd	„ZdS )
z.Import mangling.
See mangling.md for details.
é    Nc                   ó<   — e Zd ZdZd	d„Zdefd„Zdedefd„Zd„ ZdS )
ÚPackageManglerzZ
    Used on import, to ensure that all modules imported have a shared mangle parent.
    ÚreturnNc                 óR   — t           | _         t           dz  a d| j         › d�| _        d S )Né   z<torch_package_ú>)Ú_mangle_indexÚ_mangle_parent©Úselfs    úU/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/package/_mangling.pyÚ__init__zPackageMangler.__init__   s3   € å*ˆÔå˜Ñˆð F°Ô0BÐEÐEÐEˆÔÐÐó    c                 ó`   — t          |¦  «        dk    rt          d¦  «        ‚| j        dz   |z   S )Nr   zname must not be emptyú.)ÚlenÚAssertionErrorr
   )r   Únames     r   ÚmanglezPackageMangler.mangle   s3   € Ýˆt‰9Œ9˜Š>ˆ>Ý Ð!9Ñ:Ô:Ð:ØÔ" SÑ(¨4Ñ/Ð/r   Úmangledc                 óv   — |                      | j        dz   ¦  «        r|                     d¦  «        d         S |S )z¿
        Note: This only demangles names that were mangled by this specific
        PackageMangler. It will pass through names created by a different
        PackageMangler instance.
        r   é   )Ú
startswithr
   Ú	partition)r   r   s     r   ÚdemanglezPackageMangler.demangle    sB   € ð ×Ò˜dÔ1°CÑ7Ñ8Ô8ð 	-Ø×$Ò$ SÑ)Ô)¨!Ô,Ð,ð ˆr   c                 ó   — | j         S )N)r
   r   s    r   Úparent_namezPackageMangler.parent_name,   s   € ØÔ"Ð"r   )r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústrr   r   r   © r   r   r   r      s‚   € € € € € ðð ðFð Fð Fð Fð0˜cð 0ð 0ð 0ð 0ð

 ð 
¨ð 
ð 
ð 
ð 
ð#ð #ð #ð #ð #r   r   r   r   c                 óF   — t          t          j        d| ¦  «        ¦  «        S )Nz<torch_package_\d+>)ÚboolÚreÚmatch©r   s    r   Ú
is_mangledr)   0   s   € Ý•”Ð/°Ñ6Ô6Ñ7Ô7Ð7r   c                 ó„   — t          | ¦  «        r0|                      d¦  «        \  }}}t          |¦  «        dk    r|ndS | S )zŒ
    Note: Unlike PackageMangler.demangle, this version works on any
    mangled name, irrespective of which PackageMangler created it.
    r   r   Ú )r)   r   r   )r   Ú_firstÚsepÚlasts       r   r   r   4   sK   € õ
 �$ÑÔð -Ø ŸNšN¨3Ñ/Ô/Ñˆ��Tõ ˜3‘x”x 1’}�}ˆtˆt¨"Ð,Ø€Kr   c                 óZ   — t          | ¦  «        r|                      d¦  «        d         n| S )Nr   r   )r)   r   r(   s    r   Úget_mangle_prefixr0   A   s+   € Ý%/°Ñ%5Ô%5Ð?ˆ4�>Š>˜#ÑÔ˜qÔ!Ð!¸4Ð?r   )	r!   r&   r	   r   r"   r%   r)   r   r0   r#   r   r   ú<module>r1      sÂ   ððð ð 
€	€	€	ð €ð!#ð !#ð !#ð !#ð !#ñ !#ô !#ð !#ðH8�Sð 8˜Tð 8ð 8ð 8ð 8ð
�3ð 
˜3ð 
ð 
ð 
ð 
ð@˜Cð @ Cð @ð @ð @ð @ð @ð @r   