
    Mh~1              	          d dl Z d dlmZmZmZmZmZmZ ddlm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZ ddlmZmZ  e j        d          ZdZd	ez   ez   d
z   ez   dz   Z e j        dez   dz              e j        dez   dz              e j        dez   dz              e j        dez   dz              e j        dez   dz              e j        dez   dz             dZ G d de
e	                   ZdS )    N)AnyDictListMatchMutableMappingOptional   )InlineStateParser)HTML_ATTRIBUTESHTML_TAGNAMEPREVENT_BACKSLASHPUNCTUATION
parse_linkparse_link_labelparse_link_textunescape_char)
escape_urlunikeyz\s*\)z<[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*><z	\s*/?>|</zc\s*>|<!--(?!>|->)(?:(?!--)[\s\S])+?(?<!-)-->|<\?[\s\S]+?\?>|<![A-Z][\s\S]+?>|<!\[CDATA[\s\S]+?\]\]>z(?:z\\\*|[^\s*])\*(?!\*)z\\_|[^\s_])_(?!_)\bz\\\*|[^\s*])\*\*(?!\*)z\\_|[^\s_])__(?!_)\bz\\\*|[^\s*])\*\*\*(?!\*)z\\_|[^\s_])___(?!_)\b)*_z**__z***___c                       e Zd ZdZeZdZdZdez   dz   dddd	e	e
eed
dez   dz   dZdZd.deddf fdZdee         dedefdZdee         dedee         fdZdededeeeef                  dedeeef         f
dZdee         dedefdZdee         dedefdZdedededdfdZdee         dedefd Zdee         dedefd!Zdee         dedefd"Zdee         dedefd#Zdee         dedefd$Z dededdfd%Z!dede"eeef                  fd&Z#	 d/dee         ded'ed(ee"e                  dee         f
d)Z$dede"eeef                  fd*Z%d+ed,e&eef         de"eeef                  fd-Z' xZ(S )0InlineParserr   z(?:\\| {2,})\n\s*z *\n\s*z(?:\\z)+z`{1,}z$\*{1,3}(?=[^\s*])|\b_{1,3}(?=[^\s_])z!?\[z.<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*>z<[A-Za-z][A-Za-z\d.+-]{1,31}:z</?z|<!|<\?)escapecodespanemphasislink	auto_link
auto_emailinline_html	linebreak	softbreakprec_auto_linkprec_inline_html)r   r   r   r    r!   r"   r#   r$   F	hard_wrapreturnNc                      t          t                                                      | _        |r j         j        d<   n j                            d            fd j        D              _        d S )Nr$   r%   c                 8    i | ]}|t          d |z             S )parse_)getattr).0nameselfs     U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mistune/inline_parser.py
<dictcomp>z)InlineParser.__init__.<locals>.<dictcomp>e   s)    UUU$wtX_==UUU    )	superr   __init__r(   HARD_LINEBREAKspecificationrulesappend_methods)r0   r(   	__class__s   ` r1   r5   zInlineParser.__init__[   sy    lD!!**,,," 	+.2.AD{++Jk***UUUU$*UUUr3   mstatec                     |                     d          }t          |          }|                    d|d           |                                S )Nr   texttyperaw)groupr   append_tokenend)r0   r<   r=   r?   s       r1   parse_escapezInlineParser.parse_escapeg   sU    wwqzzT"" 	
 	
 	
 uuwwr3   c                 |   |                                 }|                    d          }|d         dk    }|r!|j        r|                    d|d           |S |s!|j        r|                    d|d           |S d }t          |j        |          \  }}|t          |j        |          \  }}|d S |J ||}|J |t          |j                  k    r|d S g d}	| 	                    ||||	          }
|
r|
S |t          |j                  k     r|j        |         }|dk    rMt          |j        |dz             \  }}|r/|                     ||||          }|                    |           |S n)|dk    r#t          |j        |dz             \  }}|r|}|r|}|d S |j                            d	          }|sd S t          |          }|                    |          }|rW|d
         |                    d          d}|                     ||||          }||d<   ||d<   |                    |           |S d S )Nr   !r?   r@   )r   r&   r'   (r	   [	ref_linksurltitle)rL   rM   reflabel)rE   rC   in_imagerD   in_linkr   srcr   lenprecedence_scanr   _InlineParser__parse_link_tokenenvgetr   )r0   r<   r=   posmarkeris_imager?   rO   end_posr8   prec_poscattrspos2tokenlabel2rK   keyrV   s                      r1   r   zInlineParser.parse_linkr   s   eegg!9# 	 	v>>???J 	em 	v>>???J)%)S99w=+EIs;;MD'|t"""<Dc%)nn$$4BBB''5'5AA 	OS^^##	'"ACxx(GaK@@t   33HdE5QQE&&u---K 
 c/	7Q;GG '"G ' &=4IMM+..	 	4UmmmmC   	J1A1ABBE++HdE5IIEE%L"E'Nu%%%Ntr3   rZ   r?   r^   c                     |                                 }||_        |r!d|_        d|                     |          |d}n d|_        d|                     |          |d}|S )NTimagerA   childrenr^   r    )copyrR   rP   renderrQ   )r0   rZ   r?   r^   r=   	new_stater`   s          r1   __parse_link_tokenzInlineParser.__parse_link_token   s}     JJLL		 	!%I KK	22 EE !%I KK	22 E
 r3   c                     |                     d          }|                                }|j        r|                     ||           |S |dd         }|                     |||           |S )Nr   r	   rC   rE   rQ   process_text_add_auto_link)r0   r<   r=   r?   rX   s        r1   parse_auto_linkzInlineParser.parse_auto_link   sm    wwqzzeegg= 	dE***JAbDzD$...
r3   c                     |                     d          }|                                }|j        r|                     ||           |S |dd         }d|z   }|                     |||           |S )Nr   r	   rl   zmailto:rm   )r0   r<   r=   r?   rX   rL   s         r1   parse_auto_emailzInlineParser.parse_auto_email   sw    wwqzzeegg= 	dE***JAbDz$Cu---
r3   rL   c                 ^    |                     dd|dgdt          |          id           d S )Nr    r?   r@   rL   re   )rD   r   )r0   rL   r?   r=   s       r1   ro   zInlineParser._add_auto_link   sM    &,T::;C1 	
 	
 	
 	
 	
r3   c                    |                                 }|                    d          }t          |          }|dk    r!|j        r|                    d|d           |S |dk    r!|j        r|                    d|d           |S t          |         }|                    |j        |          }|s|                    d|d           |S |                                 }|j        |||z
           }	| 	                    |||          }
|
r|
S |
                                }|	|_        |dk    r5d|_        |                     |          }|                    d|d           nz|dk    r5d|_        |                     |          }|                    d	|d           n?d|_        d|_        d	|                     |          dg}|                    d|d           |S )
Nr   r	   r?   r@      Tr   )rA   rf   strong)rE   rC   rS   in_emphasisrD   	in_strongEMPHASIS_END_REsearchrR   rT   rg   rh   )r0   r<   r=   rX   rY   mlen_end_rem1r[   r?   r\   ri   rf   s                r1   parse_emphasiszInlineParser.parse_emphasis   s	   eegg6{{199*9v>>???JQYY5?Yv>>???J!&)^^EIs++ 	v>>???J&&((yw~-.''5':: 	OJJLL		199$(I!{{9--H
IIJJJJQYY"&I{{9--HhGGHHHH$(I!"&I!)t{{97M7MNNOH& (    r3   c                 h   |                     d          }t          j        d|z   dz   t          j                  }|                                }|                    |j        |          }|r|                                }|                     d          }|                    dd          }t          |	                                          r4|
                    d          r|                    d          r
|dd         }|                    d|d	           |S |                    d
|d	           |S )Nr   z	(.*?[^`])z(?!`)r	   
 rl   r   r@   r?   )rC   recompileSrE   matchrR   replacerS   strip
startswithendswithrD   )	r0   r<   r=   rY   patternrX   m2r[   codes	            r1   parse_codespanzInlineParser.parse_codespan!  s    *\F2X=rtDDeegg]]59c** 	ffhhG88A;;D<<c**D4::<<   &??3'' &DMM#,>,> &":D
4@@AAANv>>???Jr3   c                 X    |                     ddi           |                                S )NrA   r$   rD   rE   r0   r<   r=   s      r1   parse_linebreakzInlineParser.parse_linebreak7  (    FK0111uuwwr3   c                 X    |                     ddi           |                                S )NrA   r%   r   r   s      r1   parse_softbreakzInlineParser.parse_softbreak;  r   r3   c                     |                                 }|                    d          }|                    d|d           |                    d          rd|_        n|                    d          rd|_        |S )Nr   r#   r@   )z<a z<a>z<A z<A>T)z</a z</a>z</A z</A>F)rE   rC   rD   r   rQ   )r0   r<   r=   r[   htmls        r1   parse_inline_htmlzInlineParser.parse_inline_html?  sy    %%''wwqzzM$??@@@??788 	" EMM__=>> 	"!EMr3   c                 6    |                     d|d           d S )Nr?   r@   )rD   )r0   r?   r=   s      r1   rn   zInlineParser.process_textI  s$    F48899999r3   c                    d}|                                  }|t          |j                  k     r|                    |j        |          }|sn|                                }||k    r%|j        ||         }|                     ||           |                     ||          }|s+|dz   }|j        ||         }|                     ||           n|}|t          |j                  k     |dk    r|                     |j        |           n;|t          |j                  k     r#|                     |j        |d          |           |j        S )Nr   r	   )
compile_scrS   rR   rz   startrn   parse_methodtokens)r0   r=   rX   scr<   r[   holenew_poss           r1   parsezInlineParser.parseL  sO   __C	NN""		%)S))A ggiiG}}yW-!!$...''511G ky-!!$....# C	NN""& !88ei////3uy>>!!eiou555|r3   r[   r8   c                    |g d}|                                 }|                     |          }|                    |j        ||          }|sd S |j        }|sd S |                    dd          }	|                     |	g          }|                    |j        |                                          }
|
sd S | j        |	         }|	                                }|j        |_         ||
|          }|r||k     rd S |j        |                                |
                                         }|
                    d|d           |j        D ]}|
                    |           |S )N)r   r    r&   r'   prec_ r?   r@   )rE   r   rz   rR   	lastgroupr   r   r   r:   rg   rD   r   )r0   r<   r=   r[   r8   mark_posr   r}   r   	rule_namer   funcri   m2_posraw_textr`   s                   r1   rT   zInlineParser.precedence_scani  sq    =NNNE5577__U##YYuy(G44 	4L	 	4%%gr22	__i[))XXei,, 	4}Y'JJLL			b)$$ 	'))49QWWYY34F8<<===% 	& 	&Eu%%%%r3   c                 :    |                      |           |j        S N)r   r   )r0   r=   s     r1   rh   zInlineParser.render  s    

5|r3   srV   c                 d    |                      |          }||_        |                     |          S r   )	state_clsrR   rh   )r0   r   rV   r=   s       r1   __call__zInlineParser.__call__  s,    s##	{{5!!!r3   )Fr   ))__name__
__module____qualname__sc_flagr
   r   STD_LINEBREAKr6   r   
AUTO_EMAILINLINE_HTMLr   SPECIFICATIONDEFAULT_RULESboolr5   r   strintrF   r   r   r   r   rU   rp   rr   ro   r~   r   r   r   r   rn   r   r   rT   rh   r   r   __classcell__)r;   s   @r1   r   r   3   s       GI )M  N
 [(4/;F ""#:"\1J>! M$	M
V 
V$ 
V4 
V 
V 
V 
V 
V 
V	eCj 	 	 	 	 	 	DE#J D{ Dx} D D D DL  S#X'	
  
c3h   2	s 	K 	C 	 	 	 	
%* 
[ 
S 
 
 
 

# 
S 
 
 
 
 
 
.c
 .; .3 . . . .`c
 ; 3    ,s K C    s K C    5: k c    : :[ :T : : : :; 4S#X+?    D &*$ $:$ $ 	$
 S	"$ 
#$ $ $ $LK Dc3h,@    "# "N38$< "d3PS8nAU " " " " " " " "r3   r   )r   typingr   r   r   r   r   r   corer
   r   helpersr   r   r   r   r   r   r   r   utilr   r   r   PAREN_END_REr   r   ry   r    r3   r1   <module>r      s4   				                & % % % % % % %	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 % $ $ $ $ $ $ $rz(##=  	</) -
 
  
F..1HH	I	I	F..1GG	H	H
"*V//2KK
L
L
"*V//2II
J
J2:f003NNOO2:f003KKLL c" c" c" c" c"6+& c" c" c" c" c"r3   