o
    3Ih                  
   @   sT   d dl Z ddlmZmZmZ ddlmZ e eZ	dede
de
d	ed
ef
ddZdS )    N   )
charCodeAtisSpacenormalizeReference   )
StateBlockstate	startLine_endLinesilentreturnc                 C   s  t d| ||| d}| j| | j|  }| j| }|d }| |r%dS | j| dkr.dS ||k r^| j| dkrV| j|d  dkrV|d |krJdS | j|d  dkrUdS n|d7 }||k s2| j}| jj	j
d	}	| j}
d	| _||k r| |s| j| | j d
kr|d7 }qo| j| dk r|d7 }qod}|	D ]}|| ||drd} nq|rn|d7 }||k r| |rx| ||| jd }t|}d }d}||k rt||}|dkrdS |dkr|}n(|dkr|d7 }n|dkr|d7 }||k rt||dkr|d7 }|d7 }||k s|d u s|dk st||d dkrdS |d }||k rEt||}|dkr5|d7 }nt|r;nn	|d7 }||k s&| jj|||}|jsTdS | j|j}| j|sddS |j}||j7 }|}|}|}||k rt||}|dkr|d7 }nt|rnn	|d7 }||k sw| jj|||}||k r||kr|jr|j}|j}||j7 }nd}|}|}||k rt||}t|sn	|d7 }||k s||k rt||dkr|rd}|}|}||k rt||}t|sn	|d7 }||k s||k rt||dkrdS t|d| }|s#dS |r(dS d| jvr3i | jd< || d | _ | jj!"ddr\| #ddd}||||d| d|_$|| j g|_%|| jd vrs|||| j gd| jd |< n| j&dg '||||| j gd |
| _dS )Nz"entering reference: %s, %s, %s, %sr   r   F[]\:	reference   T[   ]   
   \   :   r    
referencesinline_definitions
definition)idtitleurllabel)r   hrefmapduplicate_refs)r   r    r   r!   )(LOGGERdebugbMarkstShifteMarksis_code_blocksrclineMaxmdblockrulergetRules
parentTypeisEmptysCount	blkIndentgetLinesstriplenr   r   helpersparseLinkDestinationoknormalizeLinkstrvalidateLinkposlinesparseLinkTitler   envlineoptionsgetpushmetar!   
setdefaultappend)r   r	   r
   r   r=   r<   maximumnextLineendLineterminatorRulesoldParentType	terminateterminatorRulestringlabelEndchresr    
destEndPosdestEndLineNostartr   r   token rV   a/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/markdown_it/rules_block/reference.pyr   	   s(  


 



(
















 





	r   )loggingcommon.utilsr   r   r   state_blockr   	getLogger__name__r#   intboolr   rV   rV   rV   rW   <module>   s
    
"