Ë
    çÍ:js  ã                  ó  — U d Z ddlmZ ddlmZ ddlZddl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 ddlmZ erddlmZ  eh d£«      Zded<   ej0                  d%d„«       Zeeegef   Z	 de
j8                  fde
j:                  fde
j<                  fde
j>                  fde
j@                  fde
jB                  jD                  fde
jF                  jD                  fde
jH                  fde
jJ                  fde
jL                  fde
jN                  fde
jP                  fgZ)ded<   eegdf   Z*de
jV                  fde
jB                  jX                  fde
jF                  jX                  fd e
jZ                  fgZ.d!ed"<    G d#„ d$«      Z/y)&zTokenizes paragraph content.é    )Úannotations)ÚCallableN)ÚTYPE_CHECKINGé   )Úrules_inline)ÚRuler)ÚStateInline)ÚToken)ÚEnvType)Ú
MarkdownIt>   Ú*Ú_ú
ú!ú#ú$ú%ú&ú+ú-ú:ú<ú=ú>ú@ú[ú\ú]ú^ú`ú{ú}ú~zfrozenset[str]Ú_DEFAULT_TERMINATORSc                 ó„   — t        j                  dt        j                  dj                  t        «      «      z   dz   «      S )Nr   Ú r   )ÚreÚcompileÚescapeÚjoinr$   © ó    ún/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/markdown_it/parser_inline.pyÚ_default_terminator_rer.   8   s.   € ä�:‰:�cœBŸI™I b§g¡gÔ.BÓ&CÓDÑDÀsÑJÓKÐKr,   ÚtextÚlinkifyÚnewliner)   Ú	backticksÚstrikethroughÚemphasisÚlinkÚimageÚautolinkÚhtml_inlineÚentityz$list[tuple[str, RuleFuncInlineType]]Ú_rulesÚbalance_pairsÚfragments_joinz%list[tuple[str, RuleFuncInline2Type]]Ú_rules2c                  óH   — e Zd Zdd„Zdd„Zd	d„Zd	d„Z	 	 	 	 	 	 	 	 	 	 d
d„Zy)ÚParserInlinec                ó@  — t        t           «       | _        t        D ]!  \  }}| j                  j	                  ||«       Œ# t        t
           «       | _        t        D ]!  \  }}| j                  j	                  ||«       Œ# t        «       | _	        t        «       | _        y )N)r   ÚRuleFuncInlineTypeÚrulerr:   ÚpushÚRuleFuncInline2TypeÚruler2r=   ÚsetÚ_extra_terminator_charsr.   Úterminator_re)ÚselfÚnameÚruleÚrule2s       r-   Ú__init__zParserInline.__init__c   s‡   € ÜÔ-Ñ.Ó0ˆŒ
Ü ò 	(‰JˆD�$Ø�J‰J�O‰O˜D $Õ'ð	(ô Ô/Ñ0Ó2ˆŒÜ"ò 	*‰KˆD�%Ø�K‰K×Ñ˜T 5Õ)ð	*ô
 25³ˆÔ$ä.DÓ.FˆÕr,   c           	     ó  — |t         vr~|| j                  vro| j                  j                  |«       t        j                  dt        j
                  dj                  t         | j                  z  «      «      z   dz   «      | _        yyy)aC  Register a character that stops the ``text`` rule, allowing inline rules to fire.

        This lets plugins declare which characters their inline rules react to,
        mirroring the ``MARKER`` mechanism in the Rust markdown-it implementation.

        :param ch: A single character to add to the terminator set.
        r   r&   r   N)r$   rG   Úaddr'   r(   r)   r*   rH   )rI   Úchs     r-   Úadd_terminator_charz ParserInline.add_terminator_charr   s~   € ð Ô)Ñ)¨b¸×8TÑ8TÑ.TØ×(Ñ(×,Ñ,¨RÔ0Ü!#§¡ØÜ—)‘)Ø—G‘GÔ0°4×3OÑ3OÑOÓPóñð ñ	ó"ˆDÕð /UÐ)r,   c                óÈ  — d}|j                   }| j                  j                  d«      }|j                  j                  d   }|j
                  }||v r||   |_         y|j                  |k  r?|D ]9  }|xj                  dz  c_         ||d«      }|xj                  dz  c_        |sŒ9 n n|j                  |_         |s|xj                   dz  c_         |j                   ||<   y)zwSkip single token by running all rules in validation mode;
        returns `True` if any rule reported success
        Fr&   Ú
maxNestingNr   T)ÚposrB   ÚgetRulesÚmdÚoptionsÚcacheÚlevelÚposMax)rI   ÚstateÚokrT   ÚrulesrS   rX   rK   s           r-   Ú	skipTokenzParserInline.skipToken„   sÍ   € ð ˆØ�i‰iˆØ—
‘
×#Ñ# BÓ'ˆØ—X‘X×%Ñ% lÑ3ˆ
Ø—‘ˆà�%‰<Ø˜c™
ˆEŒIØà�;‰;˜Ò#Øò �ð —’˜qÑ •Ù˜% Ó&�Ø—’˜qÑ •ÚÙñð* Ÿ™ˆEŒIáØ�IŠI˜‰N�IØ—Y‘YˆˆcŠ
r,   c                óî  — d}| j                   j                  d«      }|j                  }|j                  j                  d   }|j
                  |k  r‡|j                  |k  r|D ]  } ||d«      }|sŒ n |r|j
                  |k\  rnRŒE|xj                  |j                  |j
                     z  c_        |xj
                  dz  c_        |j
                  |k  rŒ‡|j                  r|j                  «        yy)z Generate tokens for input range.Fr&   rS   r   N)
rB   rU   rZ   rV   rW   rT   rY   ÚpendingÚsrcÚpushPending)rI   r[   r\   r]   ÚendrS   rK   s          r-   ÚtokenizezParserInline.tokenize®   sØ   € àˆØ—
‘
×#Ñ# BÓ'ˆØ�l‰lˆØ—X‘X×%Ñ% lÑ3ˆ
à�i‰i˜#Šoð �{‰{˜ZÒ'Ø!ò �DÙ˜e UÓ+�BÚÙðñ
 Ø—9‘9 Ò#ØØà�MŠM˜UŸY™Y u§y¡yÑ1Ñ1�MØ�IŠI˜‰N�Ið) �i‰i˜#‹oð, �=Š=Ø×ÑÕð r,   c                ó¬   — t        ||||«      }| j                  |«       | j                  j                  d«      }|D ]
  } ||«       Œ |j                  S )z9Process input string and push inline tokens into `tokens`r&   )r	   rd   rE   rU   Útokens)rI   ra   rV   Úenvrf   r[   Úrules2rK   s           r-   ÚparsezParserInline.parseÎ   sT   € ô ˜C  S¨&Ó1ˆØ�‰�eÔØ—‘×%Ñ% bÓ)ˆØò 	ˆDÙ��Kð	à�|‰|Ðr,   N)ÚreturnÚNone)rP   Ústrrj   rk   )r[   r	   rj   rk   )
ra   rl   rV   r   rg   r   rf   úlist[Token]rj   rm   )Ú__name__Ú
__module__Ú__qualname__rM   rQ   r^   rd   ri   r+   r,   r-   r?   r?   b   sF   „ óGóó$(óT ð@	Øð	Ø&ð	Ø-4ð	Ø>Ið	à	ô	r,   r?   )rj   zre.Pattern[str])0Ú__doc__Ú
__future__r   Úcollections.abcr   Ú	functoolsr'   Útypingr   r&   r   rB   r   Úrules_inline.state_inliner	   Útokenr
   Úutilsr   Úmarkdown_itr   Ú	frozensetr$   Ú__annotations__rX   r.   ÚboolrA   r/   r0   r1   r)   Úbacktickr3   rd   r4   r5   r6   r7   r8   r9   r:   rD   Ú
link_pairsÚpostProcessr<   r=   r?   r+   r,   r-   ú<module>r€      s¶  ðÚ "å "å $Û Û 	Ý  å Ý Ý 2Ý Ý áÝ&ñ (1òó(Ð �nó ð@ ‡�òLó ðLð
 ˜{¨DÐ1°4Ð7Ñ8Ð ðð
 ˆ\×ÑÐØ�×$Ñ$Ð%Ø�×$Ñ$Ð%Øˆ|×"Ñ"Ð#Ø�,×'Ñ'Ð(Ø�l×0Ñ0×9Ñ9Ð:Ø�×&Ñ&×/Ñ/Ð0Øˆ\×ÑÐØˆl× Ñ Ð!Ø�×&Ñ&Ð'Ø�L×,Ñ,Ð-Øˆ|×"Ñ"Ð#ð0€Ð,ó ð(  ˜}¨dÐ2Ñ3Ð à�l×-Ñ-Ð.Ø�l×0Ñ0×<Ñ<Ð=Ø�×&Ñ&×2Ñ2Ð3ð �|×2Ñ2Ð3ð2€Ð	.ó ÷uò ur,   