§
    ‚Štjç5  ã                   óÞ  — d dl Z d dlmZ d dlZd dlmZ d dlmc mZ d dl	m
Z
 ddlmZ ddlmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZmZmZmZ ddlmZ ddl m!Z!m"Z" ddl#m$Z$ ddl%m&Z&m'Z'm(Z(  ej)        e*¦  «        Z+ ed¬¦  «        e
 G d„ de$¦  «        ¦   «         ¦   «         Z, G d„ de'¦  «        Z-ee G d„ de¦  «        ¦   «         ¦   «         Z. G d„ de(¦  «        Z/ G d„ de!¦  «        Z0 G d„ de"¦  «        Z1 G d„ d ej2        ¦  «        Z3 G d!„ d"ej2        ¦  «        Z4 G d#„ d$ej2        ¦  «        Z5 G d%„ d&e-¦  «        Z6 ed'¬(¦  «         G d)„ d*e&¦  «        ¦   «         Z7g d+¢Z8dS ),é    N)Ú	dataclass)Ústricté   )Úinitialization)Ú%consolidate_backbone_kwargs_to_configÚload_backbone)ÚPreTrainedConfig)ÚBaseModelOutputWithNoAttention)ÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚloggingé   )Ú
AutoConfig)ÚPPLCNetConvLayerÚ"PPLCNetDepthwiseSeparableConvLayer)ÚSLANeXtConfig)ÚSLANeXtForTableRecognitionÚSLANeXtPreTrainedModelÚSLANeXtSLAHeadz$PaddlePaddle/SLANet_plus_safetensors)Ú
checkpointc                   óª   — e Zd ZU dZdeiZ e¦   «         ZdZe	e
z  dz  ed<    e¦   «         ZdZeed<   dZeed<   dZeed	<   d
Zeed<   dZeed<   d„ ZdS )ÚSLANetConfiga™  
    post_conv_out_channels (`int`, *optional*, defaults to 96):
        Number of output channels for the post-encoder convolution layer.
    out_channels (`int`, *optional*, defaults to 50):
        Vocabulary size for the table structure token prediction head, i.e., the number of distinct structure
        tokens the model can predict.
    hidden_size (`int`, *optional*, defaults to 256):
        Dimensionality of the hidden states in the attention GRU cell and the structure/location prediction heads.
    max_text_length (`int`, *optional*, defaults to 500):
        Maximum number of autoregressive decoding steps (tokens) for the structure and location decoder.
    csp_kernel_size (`int`, *optional*, defaults to 5):
        The kernel size of the Cross Stage Partial (CSP) layer.
    csp_num_blocks (`int`, *optional*, defaults to 1):
        Number of blocks within the Cross Stage Partial (CSP) layer.
    Úbackbone_configNé`   Úpost_conv_out_channelsé   Úhidden_sizeÚ	hardswishÚ
hidden_acté   Úcsp_kernel_sizeé   Úcsp_num_blocksc           
      ót   — t          d| j        ddg d¢g d¢ddœdœ|¤Ž\  | _        }t          j        di |¤Ž d S )	NÚpp_lcnetr%   )Ústage2Ústage3Ústage4Ústage5)r   r   é   r#   é   )ÚscaleÚout_featuresÚout_indicesÚdivisor)r   Údefault_config_typeÚdefault_config_kwargs© )r   r   r	   Ú__post_init__)ÚselfÚkwargss     úg/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/slanet/modular_slanet.pyr6   zSLANetConfig.__post_init__L   su   € Ý'Lð 
(
Ø Ô0Ø *àØ HÐ HÐ HØ+˜|˜|Øð	#ð #ð
(
ð 
(
ð ð
(
ð 
(
Ñ$ˆÔ˜fõ 	Ô&Ð0Ð0¨Ð0Ð0Ð0Ð0Ð0ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úsub_configsÚAttributeErrorÚvision_configr   Údictr	   Ú__annotations__Úpost_conv_in_channelsr   Úintr    r"   Ústrr$   r&   r6   r5   r:   r9   r   r   ,   sÂ   € € € € € € ðð ð  % jÐ1€Kà"�NÑ$Ô$€MØ6:€O�TÐ,Ñ,¨tÑ3Ð:Ð:Ñ:à*˜NÑ,Ô,ÐØ"$Ð˜CÐ$Ð$Ñ$Ø€K�ÐÐÑà!€J�Ð!Ð!Ñ!Ø€O�SÐÐÑØ€N�CÐÐÑð1ð 1ð 1ð 1ð 1r:   r   c                   óB   — e Zd Zg Z ej        ¦   «         d„ ¦   «         ZdS )ÚSLANetPreTrainedModelc                 ó  — t          j        |¦  «         t          |t          j        ¦  «        r§|j        dk    rdt          j        |j        ¦  «        z  nd}t          j	        |j
        | |¦  «         t          j	        |j        | |¦  «         |j        �t          j	        |j        | |¦  «         |j        �t          j	        |j        | |¦  «         t          |t          ¦  «        rŸdt          j        | j        j        dz  ¦  «        z  }|j        fD ]t}|                     ¦   «         D ][}t          |t          j        ¦  «        r?t          j	        |j        | |¦  «         |j        �t          j	        |j        | |¦  «         Œ\ŒsdS dS )zInitialize the weightsr   g      ð?N)r   Ú_init_weightsÚ
isinstanceÚnnÚGRUCellr    ÚmathÚsqrtÚinitÚuniform_Ú	weight_ihÚ	weight_hhÚbias_ihÚbias_hhÚSLANetSLAHeadÚconfigÚstructure_generatorÚchildrenÚLinearÚweightÚbias)r7   ÚmoduleÚstdÚ	generatorÚlayers        r9   rJ   z#SLANetPreTrainedModel._init_weights^   sš  € õ 	Ô% fÑ-Ô-Ð-õ �f�bœjÑ)Ô)ð 	9Ø9?Ô9KÈaÒ9OÐ9O�#�œ	 &Ô"4Ñ5Ô5Ñ5Ð5ÐUVˆCÝŒM˜&Ô*¨S¨D°#Ñ6Ô6Ð6ÝŒM˜&Ô*¨S¨D°#Ñ6Ô6Ð6ØŒ~Ð)Ý”˜fœn¨s¨d°CÑ8Ô8Ð8ØŒ~Ð)Ý”˜fœn¨s¨d°CÑ8Ô8Ð8õ �f�mÑ,Ô,ð 	AØ�œ	 $¤+Ô"9¸CÑ"?Ñ@Ô@Ñ@ˆCà$Ô8Ð:ð Að A�	Ø&×/Ò/Ñ1Ô1ð Að A�EÝ! %­¬Ñ3Ô3ð AÝœ e¤l°S°D¸#Ñ>Ô>Ð>Ø œ:Ð1Ý œM¨%¬*°s°d¸CÑ@Ô@Ð@øð	Að		Að 	AðAð Ar:   N)r;   r<   r=   Ú_keep_in_fp32_modules_strictÚtorchÚno_gradrJ   r5   r:   r9   rH   rH   [   s@   € € € € € Ø#%Ð à€U„]�_„_ðAð Añ „_ðAð Að Ar:   rH   c                   óP   — e Zd ZU dZdZej        dz  ed<   dZej        dz  ed<   dS )ÚSLANetForTableRecognitionOutputak  
    head_hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
        Hidden-states of the SLANetSLAHead at each prediction step, varies up to max `self.config.max_text_length` states (depending on early exits).
    head_attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):
        Attentions of the SLANetSLAHead at each prediction step, varies up to max `self.config.max_text_length` attentions (depending on early exits).
    NÚhead_hidden_statesÚhead_attentions)	r;   r<   r=   r>   rf   rb   ÚFloatTensorrC   rg   r5   r:   r9   re   re   y   sO   € € € € € € ðð ð 48Ð˜Ô)¨DÑ0Ð7Ð7Ñ7Ø04€O�UÔ&¨Ñ-Ð4Ð4Ñ4Ð4Ð4r:   re   c                   ó   — e Zd ZdS )rV   N©r;   r<   r=   r5   r:   r9   rV   rV   ‡   ó   € € € € € Ø€Dr:   rV   c                   ó   — e Zd ZdS )ÚSLANetConvLayerNrj   r5   r:   r9   rm   rm   ‹   rk   r:   rm   c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )Ú!SLANetDepthwiseSeparableConvLayerzæ
    Depthwise Separable Convolution Layer: Depthwise Conv -> Pointwise Conv
    Core component of lightweight models (e.g., MobileNet, PP-LCNet) that significantly reduces
    the number of parameters and computational cost.
    c                 óx   •— t          ¦   «                              ¦   «          t          j        ¦   «         | _        d S ©N)ÚsuperÚ__init__rL   ÚIdentityÚsqueeze_excitation_module)r7   Úin_channelsÚout_channelsÚstrideÚkernel_sizerW   Ú	__class__s         €r9   rs   z*SLANetDepthwiseSeparableConvLayer.__init__–   s/   ø€ õ 	‰Œ×ÒÑÔÐÝ)+¬©¬ˆÔ&Ð&Ð&r:   )r;   r<   r=   r>   rs   Ú__classcell__©rz   s   @r9   ro   ro   �   sB   ø€ € € € € ðð ð	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7r:   ro   c                   óB   ‡ — e Zd Zˆ fd„Zdej        dej        fd„Zˆ xZS )ÚSLANetBottleneckc                 óª   •— t          ¦   «                              ¦   «          t          ||d|¬¦  «        | _        t	          |||d|¬¦  «        | _        d S )Nr%   ©rv   rw   ry   Ú
activation)rv   rw   ry   rx   rW   )rr   rs   rm   Úconv1ro   Úconv2)r7   rv   rw   ry   r�   rW   rz   s         €r9   rs   zSLANetBottleneck.__init__£   sf   ø€ õ 	‰Œ×ÒÑÔÐÝ$Ø#°,ÈAÐZdð
ñ 
ô 
ˆŒ
õ 7Ø$Ø%Ø#ØØð
ñ 
ô 
ˆŒ
ˆ
ˆ
r:   Úhidden_statesÚreturnc                 óZ   — |                       |¦  «        }|                      |¦  «        }|S rq   )r‚   rƒ   )r7   r„   s     r9   ÚforwardzSLANetBottleneck.forward·   s*   € ØŸ
š
 =Ñ1Ô1ˆØŸ
š
 =Ñ1Ô1ˆàÐr:   )r;   r<   r=   rs   rb   rh   r‡   r{   r|   s   @r9   r~   r~   ¢   s`   ø€ € € € € ð
ð 
ð 
ð 
ð 
ð( UÔ%6ð ¸5Ô;Lð ð ð ð ð ð ð ð r:   r~   c                   óP   ‡ — e Zd ZdZ	 	 	 	 d
ˆ fd„	Zdej        dej        fd	„Zˆ xZS )ÚSLANetCSPLayerz†
    Cross Stage Partial (CSP) network layer. Similar in structure to DFineCSPRepLayer, but with a different forward computation.
    r   ç      à?r%   r!   c                 ót  •‡‡‡‡— t          ¦   «                              ¦   «          t          ||z  ¦  «        Št          |‰d‰¬¦  «        | _        t          |‰d‰¬¦  «        | _        t          d‰z  |d‰¬¦  «        | _        t          j        ˆˆˆˆfd„t          |¦  «        D ¦   «         ¦  «        | _
        d S )Nr%   )r�   r   c           	      ó6   •— g | ]}t          ‰‰‰‰‰¦  «        ‘ŒS r5   )r~   )Ú.0Ú_r�   rW   Úhidden_channelsry   s     €€€€r9   ú
<listcomp>z+SLANetCSPLayer.__init__.<locals>.<listcomp>Ó   s;   ø€ ð ð ð àõ ! °/À;ÐPZÐ\bÑcÔcðð ð r:   )rr   rs   rE   rm   r‚   rƒ   Úconv3rL   Ú
ModuleListÚrangeÚbottlenecks)
r7   rW   rv   rw   ry   Ú	expansionÚ
num_blocksr�   r�   rz   s
    `  `  `@€r9   rs   zSLANetCSPLayer.__init__Ã   sØ   øøøøø€ õ 	‰Œ×ÒÑÔÐÝ˜l¨YÑ6Ñ7Ô7ˆÝ$ [°/À1ÐQ[Ð\Ñ\Ô\ˆŒ
Ý$ [°/À1ÐQ[Ð\Ñ\Ô\ˆŒ
Ý$ Q¨Ñ%8¸,ÈÐV`ÐaÑaÔaˆŒ
Ýœ=ðð ð ð ð ð ð å˜zÑ*Ô*ðñ ô ñ
ô 
ˆÔÐÐr:   r„   r…   c                 óÞ   — |                       |¦  «        }|                      |¦  «        }| j        D ]} ||¦  «        }Œt          j        ||fd¬¦  «        }|                      |¦  «        }|S )Nr%   ©Údim)r‚   rƒ   r”   rb   Úcatr‘   )r7   r„   ÚresidualÚ
bottlenecks       r9   r‡   zSLANetCSPLayer.forwardÙ   sw   € Ø—:’:˜mÑ,Ô,ˆàŸ
š
 =Ñ1Ô1ˆØÔ*ð 	6ð 	6ˆJØ&˜J }Ñ5Ô5ˆMˆMåœ	 =°(Ð";ÀÐCÑCÔCˆØŸ
š
 =Ñ1Ô1ˆàÐr:   )r   rŠ   r%   r!   ©	r;   r<   r=   r>   rs   rb   rh   r‡   r{   r|   s   @r9   r‰   r‰   ¾   s}   ø€ € € € € ðð ð ØØØð
ð 
ð 
ð 
ð 
ð 
ð,
 UÔ%6ð 
¸5Ô;Lð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r:   r‰   c                   óF   ‡ — e Zd ZdZˆ fd„Zdej        dej        fd„Zˆ xZS )ÚSLANetCSPPANz;
    CSP-PAN: Path Aggregation Network with CSP layers
    c                 óè  •‡‡‡‡‡‡— t          ¦   «                              ¦   «          ‰j        Š‰j        Š‰j        Š‰j        Št          j        ˆˆˆfd„t          t          ‰¦  «        ¦  «        D ¦   «         ¦  «        | _
        t          j        dd¬¦  «        | _        t          j        ˆˆˆˆˆfd„t          t          ‰¦  «        dz
  dd¦  «        D ¦   «         ¦  «        | _        t          j        ˆˆˆfd	„t          t          ‰¦  «        dz
  ¦  «        D ¦   «         ¦  «        | _        t          j        ˆˆˆˆˆfd
„t          t          ‰¦  «        dz
  ¦  «        D ¦   «         ¦  «        | _        d S )Nc                 óB   •— g | ]}t          ‰|         ‰d ‰¬¦  «        ‘ŒS )r%   r€   )rm   )r�   Úir�   Úin_channel_listrw   s     €€€r9   r�   z)SLANetCSPPAN.__init__.<locals>.<listcomp>÷   sJ   ø€ ð ð ð ð õ  Ø /°Ô 2ÀÐ[\Ðisðñ ô ðð ð r:   r   Únearest)Úscale_factorÚmodec           
      ó@   •— g | ]}t          ‰‰d z  ‰‰‰‰¬¦  «        ‘ŒS ©r   )ry   r–   r�   ©r‰   ©r�   rŽ   r�   rW   r&   ry   rw   s     €€€€€r9   r�   z)SLANetCSPPAN.__init__.<locals>.<listcomp>  óQ   ø€ ð 
ð 
ð 
ð õ ØØ  1Ñ$Ø Ø +Ø-Ø)ðñ ô ð
ð 
ð 
r:   r%   r   éÿÿÿÿc           	      ó8   •— g | ]}t          ‰‰‰d ‰¬¦  «        ‘ŒS )r   )ry   rx   rW   )ro   )r�   rŽ   rW   ry   rw   s     €€€r9   r�   z)SLANetCSPPAN.__init__.<locals>.<listcomp>  sI   ø€ ð 	ð 	ð 	ð õ 2Ø Ø Ø +ØØ!ðñ ô ð	ð 	ð 	r:   c           
      ó@   •— g | ]}t          ‰‰d z  ‰‰‰‰¬¦  «        ‘ŒS r¨   r©   rª   s     €€€€€r9   r�   z)SLANetCSPPAN.__init__.<locals>.<listcomp>  r«   r:   )rr   rs   r   r"   r$   r&   rL   r’   r“   ÚlenÚchannel_projectorÚUpsampleÚupsampleÚtop_down_blocksÚdownsamplesÚbottom_up_blocks)r7   rW   r£   r�   r&   ry   rw   rz   s    ``@@@@€r9   rs   zSLANetCSPPAN.__init__ë   sâ  øøøøøøø€ õ
 	‰Œ×ÒÑÔÐØÔ4ˆØÔ&ˆ
ØÔ,ˆØÔ.ˆå!#¤ðð ð ð ð ð õ �s ?Ñ3Ô3Ñ4Ô4ð	ñ ô ñ"
ô "
ˆÔõ œ°¸ÐCÑCÔCˆŒÝ!œ}ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
õ �s ?Ñ3Ô3°aÑ7¸¸BÑ?Ô?ð
ñ 
ô 
ñ 
ô  
ˆÔõ œ=ð	ð 	ð 	ð 	ð 	ð 	õ �s ?Ñ3Ô3°aÑ7Ñ8Ô8ð	ñ 	ô 	ñ
ô 
ˆÔõ !#¤ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
õ �s ?Ñ3Ô3°aÑ7Ñ8Ô8ð
ñ 
ô 
ñ!
ô !
ˆÔÐÐr:   r„   r…   c                 ó,  — g }t          t          | j        ¦  «        ¦  «        D ]1}|                      | j        |         ||         ¦  «        ¦  «         Œ2|d         g}t	          | j        t          |d d…         ¦  «        ¦  «        D ]g\  }}|d         }t          j        ||j	        dd …         d¬¦  «        } |t          j        ||gd¬¦  «        ¦  «        }	|                     |	¦  «         Œht          t          |¦  «        ¦  «        }
|
d         }t	          | j        | j        |
dd …         ¦  «        D ]2\  }}} ||¦  «        } |t          j        ||gd¬¦  «        ¦  «        }Œ3|                     d¦  «                             dd¦  «        }|S )	Nr¬   éþÿÿÿr¤   )Úsizer¦   r%   r˜   r   r   )r“   r¯   r°   ÚappendÚzipr³   ÚreversedÚFÚinterpolateÚshaperb   rš   Úlistr´   rµ   ÚflattenÚ	transpose)r7   r„   Úprojected_featuresÚidxÚtop_down_featuresÚtop_down_blockÚlow_level_featureÚhigh_level_featureÚupsampled_featureÚfused_featureÚpyramid_featuresÚoutput_featureÚdownsample_layerÚbottom_up_blockÚdownsampled_features                  r9   r‡   zSLANetCSPPAN.forward*  sÙ  € ØÐÝ�˜TÔ3Ñ4Ô4Ñ5Ô5ð 	Wð 	WˆCØ×%Ò%Ð&A dÔ&<¸SÔ&AÀ-ÐPSÔBTÑ&UÔ&UÑVÔVÐVÐVà/°Ô3Ð4ÐÝ14°TÔ5IÍ8ÐTfÐgjÐhjÐgjÔTkÑKlÔKlÑ1mÔ1mð 	4ð 	4Ñ-ˆNÐ-Ø!2°2Ô!6ÐÝ !¤Ø"Ø&Ô,¨R¨S¨SÔ1Øð!ñ !ô !Ðð
 +˜N­5¬9Ð6GÐIZÐ5[ÐabÐ+cÑ+cÔ+cÑdÔdˆMØ×$Ò$ ]Ñ3Ô3Ð3Ð3å¥Ð):Ñ ;Ô ;Ñ<Ô<ÐØ)¨!Ô,ˆÝEHØÔ˜dÔ3Ð5EÀaÀbÀbÔ5IñF
ô F
ð 	jð 	jÑAÐ˜oÐ/Að #3Ð"2°>Ñ"BÔ"BÐØ,˜_­U¬YÐ8KÐM_Ð7`ÐfgÐ-hÑ-hÔ-hÑiÔiˆNˆNà&×.Ò.¨qÑ1Ô1×;Ò;¸A¸qÑAÔAˆØÐr:   r�   r|   s   @r9   rŸ   rŸ   æ   sk   ø€ € € € € ðð ð=
ð =
ð =
ð =
ð =
ð~ UÔ%6ð ¸5Ô;Lð ð ð ð ð ð ð ð r:   rŸ   c            	       óŠ   ‡ — e Zd Zdefˆ fd„Zeedej        de	e
         deej                 ez  fd„¦   «         ¦   «         Zˆ xZS )ÚSLANetBackbonerW   c                 óè   •— t          ¦   «                              |¦  «         t          |¦  «        | _        t	          || j        j        dd …         ¦  «        | _        |                      ¦   «          d S )Nr   )rr   rs   r   Úvision_backbonerŸ   Únum_featuresÚpost_csp_panÚ	post_init)r7   rW   rz   s     €r9   rs   zSLANetBackbone.__init__G  se   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý,¨VÑ4Ô4ˆÔÝ(¨°Ô1EÔ1RÐSTÐSUÐSUÔ1VÑWÔWˆÔà�ŠÑÔÐÐÐr:   r„   r8   r…   c                 ó~   —  | j         |fi |¤Ž}|                      |j        ¦  «        }t          ||j        ¬¦  «        S )N)Úlast_hidden_stater„   )rÒ   rÔ   Úfeature_mapsr
   r„   )r7   r„   r8   Úoutputss       r9   r‡   zSLANetBackbone.forwardN  sT   € ð
 '�$Ô& }Ð?Ð?¸Ð?Ð?ˆØ×)Ò)¨'Ô*>Ñ?Ô?ˆÝ-Ø+Ø!Ô/ð
ñ 
ô 
ð 	
r:   )r;   r<   r=   r   rs   r   r   rb   rh   r   r   Útupler
   r‡   r{   r|   s   @r9   rÐ   rÐ   F  sž   ø€ € € € € ð˜|ð ð ð ð ð ð ð Øð
Ø"Ô.ð
Ø:@ÐASÔ:Tð
à	ˆuÔ Ô	!Ð$BÑ	Bð
ð 
ð 
ñ „^ñ Ôð
ð 
ð 
ð 
ð 
r:   rÐ   zº
    SLANet Table Recognition model for table recognition tasks. Wraps the core SLANetPreTrainedModel
    and returns outputs compatible with the Transformers table recognition API.
    )Úcustom_introc            	       óz   — e Zd ZdgZeedej        dee	         de
ej                 ez  fd„¦   «         ¦   «         ZdS )ÚSLANetForTableRecognitionÚnum_batches_trackedÚpixel_valuesr8   r…   c                 ó’   —  | j         |fi |¤Ž} | j        |j        fi |¤Ž}t          |j        |j        |j        |j        ¬¦  «        S )N)r×   r„   rf   rg   )ÚbackboneÚheadr×   re   r„   Ú
attentions)r7   rß   r8   rÙ   Úhead_outputss        r9   r‡   z!SLANetForTableRecognition.forwardd  sh   € ð
  �$”- Ð7Ð7°Ð7Ð7ˆØ �t”y Ô!:ÐEÐE¸fÐEÐEˆå.Ø*Ô<Ø!Ô/Ø+Ô9Ø(Ô3ð	
ñ 
ô 
ð 	
r:   N)r;   r<   r=   Ú_keys_to_ignore_on_load_missingr   r   rb   rh   r   r   rÚ   re   r‡   r5   r:   r9   rÝ   rÝ   [  sw   € € € € € ð (=Ð&=Ð#àØð
Ø!Ô-ð
Ø9?Ð@RÔ9Sð
à	ˆuÔ Ô	!Ð$CÑ	Cð
ð 
ð 
ñ „^ñ Ôð
ð 
ð 
r:   rÝ   )r   rÝ   rH   rV   rÐ   )9rN   Údataclassesr   rb   Útorch.nnrL   Útorch.nn.functionalÚ
functionalr¼   Úhuggingface_hub.dataclassesr   Ú r   rP   Úbackbone_utilsr   r   Úconfiguration_utilsr	   Úmodeling_outputsr
   Úmodeling_utilsr   Úprocessing_utilsr   Úutilsr   r   r   r   Úautor   Úpp_lcnet.modeling_pp_lcnetr   r   Úslanext.configuration_slanextr   Úslanext.modeling_slanextr   r   r   Ú
get_loggerr;   Úloggerr   rH   re   rV   rm   ro   ÚModuler~   r‰   rŸ   rÐ   rÝ   Ú__all__r5   r:   r9   ú<module>rú      sâ  ðð  €€€Ø !Ð !Ð !Ð !Ð !Ð !à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .à &Ð &Ð &Ð &Ð &Ð &Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø >Ð >Ð >Ð >Ð >Ð >Ø -Ð -Ð -Ð -Ð -Ð -Ø &Ð &Ð &Ð &Ð &Ð &Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ Ð Ð Ð Ð Ð Ø ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð 
ˆÔ	˜HÑ	%Ô	%€ð €ÐAÐBÑBÔBØð*1ð *1ð *1ð *1ð *1�=ñ *1ô *1ñ „ñ CÔBð*1ðZAð Að Að Að AÐ2ñ Aô Að Að< Ø
ð	5ð 	5ð 	5ð 	5ð 	5Ð&Dñ 	5ô 	5ñ „ñ „ð	5ð	ð 	ð 	ð 	ð 	�Nñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð&ñ 	ô 	ð 	ð7ð 7ð 7ð 7ð 7Ð(Jñ 7ô 7ð 7ð&ð ð ð ð �r”yñ ô ð ð8%ð %ð %ð %ð %�R”Yñ %ô %ð %ðP]ð ]ð ]ð ]ð ]�2”9ñ ]ô ]ð ]ð@
ð 
ð 
ð 
ð 
Ð*ñ 
ô 
ð 
ð* €ððñ ô ð
ð 
ð 
ð 
ð 
Ð :ñ 
ô 
ñô ð
ð& tÐ
sÐ
s€€€r:   