o
    Zh                  
   @   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    Z
referencesZinline_definitionsZ
definition)idtitleurllabel)r   hrefmapZduplicate_refs)r   r   r   r   )(LOGGERdebugZbMarksZtShiftZeMarksZis_code_blocksrcZlineMaxmdblockZrulerZgetRulesZ
parentTypeZisEmptyZsCountZ	blkIndentZgetLinesstriplenr   r   helpersZparseLinkDestinationokZnormalizeLinkstrZvalidateLinkposlinesZparseLinkTitler   envlineoptionsgetpushmetar   
setdefaultappend)r   r	   r
   r   r*   r)   maximumZnextLineZendLineZterminatorRulesZoldParentType	terminateZterminatorRulestringZlabelEndchresr   Z
destEndPosZdestEndLineNostartr   r   token r:   X/var/www/html/lang_env/lib/python3.10/site-packages/markdown_it/rules_block/reference.pyr   	   s(  


 



(
















 





	r   )loggingZcommon.utilsr   r   r   Zstate_blockr   	getLogger__name__r   intboolr   r:   r:   r:   r;   <module>   s
    
"