ó
    …~i#R  ã                  óÂ  • S r SSKJr  SSKrSSKJrJrJrJrJ	r	J
r
  SSKJrJrJr  SSKJr  SSKJrJrJr  \(       a  SS	KJr  S
r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r  " S S\5      r! " S S \5      r" " S! S"\5      r# " S# S$\5      r$ " S% S&\5      r%g)'z
Block level elements
é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚMatchÚ
NamedTupleÚSequenceÚcasté   )ÚinlineÚinline_parserÚpatterns)ÚElement)Ú	find_nextÚnormalize_labelÚpartition_by_spaces)ÚSource)ÚDocumentÚ	CodeBlockÚHeadingÚListÚListItemÚ	BlankLineÚQuoteÚ
FencedCodeÚThematicBreakÚ	HTMLBlockÚ
LinkRefDefÚSetextHeadingÚ	Paragraphc                  óx   • \ rS rSr% Sr/ rS\S'   SrSrSr	S\S	'   Sr
Sr\SS
 j5       r\SS j5       rSS jrSrg)ÚBlockElementé"   z+Any block element should inherit this classzSequence[Element]Úchildrené   FÚ ÚstrÚinline_bodyc                ó   • [        5       e)zÂTest if the source matches the element at current position.
The source should not be consumed in the method unless you have to.

:param source: the ``Source`` object of the content to be parsed
©ÚNotImplementedError©ÚclsÚsources     ÚH/home/mande/repo/quber/.venv/lib/python3.13/site-packages/marko/block.pyÚmatchÚBlockElement.match2   s   € ô "Ó#Ð#ó    c                ó   • [        5       e)a9  Parses the source. This is a proper place to consume the source body and
return an element or information to build one. The information tuple will be
passed to ``__init__`` method afterwards. Inline parsing, if any, should also
be performed here.

:param source: the ``Source`` object of the content to be parsed
r)   r+   s     r.   ÚparseÚBlockElement.parse;   s   € ô "Ó#Ð#r1   c                ó4   • U R                   UR                   :  $ ©N)Úpriority)ÚselfÚos     r.   Ú__lt__ÚBlockElement.__lt__F   s   € Ø�}‰}˜qŸz™zÑ)Ð)r1   © N)r-   r   Úreturnr   )r9   r!   r=   Úbool)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r#   Ú__annotations__r7   Úvirtualr'   ÚoverrideÚ_prefixÚclassmethodr/   r3   r:   Ú__static_attributes__r<   r1   r.   r!   r!   "   s]   ‡ Ù5ð #%€HÐÓ$à€Hð €Gà€K�Óà€HØ€Gàó$ó ð$ð ó$ó ð$÷*r1   r!   c                  ó*   • \ rS rSrSrSrSrSS jrSrg)	r   éJ   zDocument node element.r%   Tc                ó    • / U l         0 U l        g r6   ©r#   Úlink_ref_defs)r8   s    r.   Ú__init__ÚDocument.__init__P   s   € ØˆŒØ9;ˆÕr1   rM   N)r=   ÚNone)	r?   r@   rA   rB   rC   rG   rE   rO   rI   r<   r1   r.   r   r   J   s   † Ù à€GØ€G÷<r1   r   c                  óN   • \ rS rSrSrSrS	S jr\S
S j5       r\SS j5       r	Sr
g)r   éU   zBlank linesr$   c                ó   • Xl         g r6   ©Ú_anchor)r8   Ústarts     r.   rO   ÚBlankLine.__init__Z   s   € Ø�r1   c                ób   • UR                  5       nUS L=(       a    UR                  5       (       + $ r6   )Ú	next_lineÚstrip)r,   r-   Úlines      r.   r/   ÚBlankLine.match]   s)   € à×ÑÓ!ˆØ˜4Ð×4¨¯
©
«Ô$4Ð4r1   c                óÞ   • UR                   nUR                  (       dO  U R                  U5      (       a9  UR                  5         UR                  (       d  U R                  U5      (       a  M9  U$ r6   )ÚposÚ	exhaustedr/   Úconsume)r,   r-   rW   s      r.   r3   ÚBlankLine.parseb   sJ   € à—
‘
ˆØ×"×" s§y¡y°×'8Ñ'8Ø�N‰NÔð ×"×" s§y¡y°×'8Ó'8àˆr1   rU   N)rW   Úintr=   rQ   ©r-   r   r=   r>   )r-   r   r=   rc   ©r?   r@   rA   rB   rC   r7   rO   rH   r/   r3   rI   r<   r1   r.   r   r   U   s7   † Ùà€Hôð ó5ó ð5ð óó ór1   r   c                  ó„   • \ rS rSrSrSr\R                  " S\R                  S9r	SS jr
\SS j5       r\SS j5       rS	rg
)r   éj   zHeading element: (### Hello
)é   zG {0,3}(#{1,6})((?=\s)[^\n]*?|[^\n\S]*)(?:(?<=\s)(?<!\\)#+)?[^\n\S]*$\n?©Úflagsc                óŠ   • [        UR                  S5      5      U l        UR                  S5      R                  5       U l        g )Nr
   é   )ÚlenÚgroupÚlevelr[   r'   ©r8   r/   s     r.   rO   ÚHeading.__init__s   s/   € Ü˜Ÿ™ Q›Ó(ˆŒ
Ø Ÿ;™; q›>×/Ñ/Ó1ˆÕr1   c                ó8   • UR                  U R                  5      $ r6   ©Ú	expect_reÚpatternr+   s     r.   r/   ÚHeading.matchw   s   € à×Ñ §¡Ó,Ð,r1   c                ó>   • UR                   nUR                  5         U$ r6   )r/   ra   ©r,   r-   Úms      r.   r3   ÚHeading.parse{   s   € à�L‰LˆØ�‰ÔØˆr1   ©r'   ro   N)r/   z
Match[str]r=   rQ   ©r-   r   r=   zMatch[str] | None)r?   r@   rA   rB   rC   r7   ÚreÚcompileÚMru   rO   rH   r/   r3   rI   r<   r1   r.   r   r   j   sO   † Ù(à€HØ�jŠjØRØ�d‰dñ€Gô
2ð ó-ó ð-ð óó ór1   r   c                  ó&   • \ rS rSrSrSrSS jrSrg)r   é‚   zQSetext heading: (Hello
===
)

    It can only be created by Paragraph.parse.
    Tc                ó¶   • UR                  5       R                  5       S   S:X  a  SOSU l        SR                  S U 5       5      R                  5       U l        g )Nr   Ú=r
   rl   r%   c              3  ó@   #   • U  H  oR                  5       v •  M     g 7fr6   ©Úlstrip©Ú.0r\   s     r.   Ú	<genexpr>Ú)SetextHeading.__init__.<locals>.<genexpr>Œ   s   é € Ð"CºU°T§;¡;§= =ºUùó   ‚)Úpopr[   ro   Újoinr'   ©r8   Úliness     r.   rO   ÚSetextHeading.__init__Š   sF   € ØŸ)™)›+×+Ñ+Ó-¨aÑ0°CÓ7‘Q¸QˆŒ
ØŸ7™7Ñ"C¹UÓ"CÓC×IÑIÓKˆÕr1   r{   N©r�   z	list[str]r=   rQ   )r?   r@   rA   rB   rC   rE   rO   rI   r<   r1   r.   r   r   ‚   s   † ñð
 €G÷Lr1   r   c                  ób   • \ rS rSrSrSrS
S jr\SS j5       r\SS j5       r	\
SS j5       rSrg	)r   é�   z0Indented code block: (    this is a code block
)é   c                óZ   • [         R                  " US5      /U l        SU l        SU l        g )NFr%   )r   ÚRawTextr#   ÚlangÚextrarŽ   s     r.   rO   ÚCodeBlock.__init__”   s%   € ÜŸš¨¨uÓ5Ð6ˆŒØˆŒ	Øˆ�
r1   c                óê   • UR                  S5      nUR                  S-   n[        UR                  [        5      (       a  UR                  S S S-   nU R                  X#5      nX!R                  l        U$ )NFú {4}éÿÿÿÿ)rZ   ÚprefixÚ
isinstanceÚstater   Ústrip_prefixÚcontextÚ	code_line)r,   r-   r\   r�   s       r.   r/   ÚCodeBlock.match™   se   € à×Ñ Ó&ˆØ—‘ Ñ'ˆÜ�f—l‘l¤E×*Ñ*à—]‘] 3 BÐ'¨&Ñ0ˆFØ×Ñ Ó-ˆØ#'�‰Ô Øˆr1   c                óÞ  • UR                   S-   nUR                  R                  /nUR                  5         UR	                  5         UR
                  (       dô  UR                  5       nUba  UR                  5       (       dL  UR                  5         U R                  XB5      nU(       a  UR                  U5        OUR                  S5        OmU R                  U5      (       aF  UR                  UR                  R                  5        UR                  5         UR	                  5         OUR                  5         OUR
                  (       d  Mô  SR                  U5      R                  S5      S-   $ )Nr›   Ú
r%   )r�   r¡   r¢   ra   Úanchorr`   rZ   r[   r    Úappendr/   Úresetr�   Úrstrip)r,   r-   r�   r�   r\   Ústripped_lines         r.   r3   ÚCodeBlock.parse¤   s  € à—‘ Ñ'ˆØ—‘×)Ñ)Ð*ˆØ�‰ÔØ�‰ŒØ×"×"Ø×#Ñ#Ó%ˆDØÑ¨¯
©
¯©Ø—‘Ô Ø #× 0Ñ 0°Ó >�Þ Ø—L‘L Õ/à—L‘L Õ&Ø—‘˜6×"Ñ"Ø—‘˜VŸ^™^×5Ñ5Ô6Ø—‘Ô Ø—‘•à—‘”Øð ×"×"Ñ"ð  �w‰w�u‹~×$Ñ$ TÓ*¨TÑ1Ð1r1   c                óX  • [         R                  " XR                  S5      5      nU(       d  gUR                  5       n[	        [        U 5      5       HU  nU S US-    R                  S5      n[        U5      U:  a  M+  [        U5      U-
  nUS:X  a	  XS-   S  s  $ XV* S  XS-   S  -   s  $    g)Nr”   r%   r
   r   )r}   r/   Ú
expandtabsÚendÚrangerm   )r\   r�   r/   r®   ÚiÚexpandedÚds          r.   r    ÚCodeBlock.strip_prefix¼   s§   € ä—’˜§¡°Ó!3Ó4ˆÞØØ�i‰i‹kˆÜ”s˜4“yÖ!ˆAØ˜G˜a !™e�}×/Ñ/°Ó2ˆHÜ�8‹}˜sÓ"ÙÜ�H“ Ñ#ˆAØ�A‹vØ ™E˜G�}Ò$Ø˜B˜C�= 4¨A©¨ =Ñ0Ò0ñ "ð r1   ©r#   r˜   r—   N©r�   r&   r=   rQ   ©r-   r   r=   r&   )r\   r&   r�   r&   r=   r&   )r?   r@   rA   rB   rC   r7   rO   rH   r/   r3   Ústaticmethodr    rI   r<   r1   r.   r   r   �   sK   † Ù;à€Hôð
 óó ðð ó2ó ð2ð. óó ór1   r   c                  óž   • \ rS rSrSrSr\R                  " S\R                  5      r	 " S S\
5      rSS jr\SS j5       r\SS	 j5       rS
rg)r   éÍ   z)Fenced code block: (```python
hello
```
)é   z"( {,3})(`{3,}|~{3,})[^\n\S]*(.*?)$c                  ó>   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   Srg)	ÚFencedCode.ParseInfoéÓ   r&   r�   Úleadingr—   r˜   r<   N©r?   r@   rA   rB   rD   rI   r<   r1   r.   Ú	ParseInfor¼   Ó   s   ‡ Ø‹Ø‹Ø‹	ØŽ
r1   rÀ   c                ó¦   • [         R                  R                  US   5      U l        US   U l        [         R
                  " US   S5      /U l        g )Nr   r
   rl   F)r   ÚLiteralÚstrip_backslashr—   r˜   r–   r#   rp   s     r.   rO   ÚFencedCode.__init__Ù   s@   € Ü—N‘N×2Ñ2°5¸±8Ó<ˆŒ	Ø˜1‘XˆŒ
ÜŸš¨¨a©°%Ó8Ð9ˆ�r1   c                óð   • UR                  U R                  5      nU(       d  g UR                  5       u  p4nUS   S:X  a  SU;   a  g [        U5      u  pgnU R	                  X4Xh5      UR
                  l        U$ )Nr   Ú`)rt   ru   Úgroupsr   rÀ   r¡   Ú	code_info)	r,   r-   ry   r�   r¾   Úinfor—   Ú_r˜   s	            r.   r/   ÚFencedCode.matchÞ   sk   € à×Ñ˜SŸ[™[Ó)ˆÞØØ !§¡£
Ñˆ˜Ø�1‰:˜Ó ¨£ØÜ,¨TÓ2‰ˆ�Ø#&§=¡=°À$Ó#Nˆ�‰Ô Øˆr1   c                óx  • UR                  5         UR                  5         / nUR                  R                  nUR                  (       dÊ  UR                  5       nUc  O¶UR                  5         [
        R                  " SU[
        R                  S9nU(       a   UR                  UR                  S5      ;   a  O[UR                  UR                  U5      nUS:¼  a  XFS  nOUR                  5       nUR                  U5        UR                  (       d  MÊ  UR                  UR                  SR!                  U5      4$ )Nz {,3}(~+|`+)[^\n\S]*$ri   r
   r   r%   )rZ   ra   r¡   rÈ   r`   r}   r/   r   r¾   rn   Úmatch_prefixr�   r†   r§   r—   r˜   r�   )r,   r-   r�   Ú
parse_infor\   ry   Ú
prefix_lens          r.   r3   ÚFencedCode.parseê   sö   € à×ÑÔØ�‰ÔØˆØ+1¯>©>×+CÑ+Cˆ
Ø×"×"Ø×#Ñ#Ó%ˆDØ‰|ØØ�N‰NÔÜ—’Ð1°4¼r¿t¹tÑDˆAÞ�Z×'Ñ'¨1¯7©7°1«:Ó5Øà×,Ñ,¨Z×->Ñ->ÀÓEˆJØ˜Q‹Ø˜KÐ(‘à—{‘{“}�Ø�L‰L˜Ôð ×"×"Ñ"ð �‰ 
× 0Ñ 0°"·'±'¸%³.Ð@Ð@r1   r´   N)r/   útuple[str, str, str]r=   rQ   r|   )r-   r   r=   rÑ   )r?   r@   rA   rB   rC   r7   r}   r~   r   ru   r   rÀ   rO   rH   r/   r3   rI   r<   r1   r.   r   r   Í   sZ   † Ù6à€HØ�jŠjÐ>ÀÇÁÓE€Gô�Jô ô:ð
 ó	ó ð	ð óAó óAr1   r   c                  óz   • \ rS rSrSrSr\R                  " S\R                  S9r	\
S
S j5       r\
SS j5       rSrg	)r   i  zHorizontal rules: (----
)é   z {,3}([-_*][^\n\S]*){3,}$\n?ri   c           
     ó¾   • UR                  U R                  5      nU(       d  g[        [        [        R
                  " SSUR                  5       5      5      5      S:H  $ )NFz\s+r%   r
   )rt   ru   rm   Úsetr}   Úsubrn   rx   s      r.   r/   ÚThematicBreak.match  sD   € à×Ñ˜SŸ[™[Ó)ˆÞØÜ”3”r—v’v˜f b¨!¯'©'«)Ó4Ó5Ó6¸!Ñ;Ð;r1   c                ó0   • UR                  5         U " 5       $ r6   )ra   r+   s     r.   r3   ÚThematicBreak.parse  s   € à�‰ÔÙ‹uˆr1   r<   Nrd   )r-   r   r=   r   )r?   r@   rA   rB   rC   r7   r}   r~   r   ru   rH   r/   r3   rI   r<   r1   r.   r   r     sE   † Ù$à€HØ�jŠjÐ8ÀÇÁÑE€Gàó<ó ð<ð óó ór1   r   c                  óN   • \ rS rSrSrSrS	S jr\S
S j5       r\SS j5       r	Sr
g)r   i  zHTML blocks, parsed as it isr$   c                ó   • Xl         g r6   ©ÚbodyrŽ   s     r.   rO   ÚHTMLBlock.__init__  s   € Ø�	r1   c                ó$  • S UR                   l        UR                  S5      (       aV  UR                  (       d   e[        R
                  " SUR                  R                  S5       S35      UR                   l        gUR                  S5      (       a&  [        R
                  " S5      UR                   l        gUR                  S5      (       a&  [        R
                  " S	5      UR                   l        g
UR                  S5      (       a&  [        R
                  " S5      UR                   l        gUR                  S5      (       a&  [        R
                  " S5      UR                   l        gSR                  SR                  [        R                  5      5      nUR                  SU-  5      (       a  S UR                   l        gUR                  S[        R                  [        R                  S.-  5      (       a  S UR                   l        gg)Nz*(?i) {,3}<(script|pre|style|textarea)[>\s]z(?i)</r
   Ú>z	 {,3}<!--z-->rl   z {,3}<\?z\?>é   z {,3}<!r”   z {,3}<!\[CDATA\[z\]\]>r$   z(?:{})Ú|z(?im) {,3}</?%s(?: +|/?>|$)rh   zG(?m) {,3}(<%(tag)s(?:%(attr)s)*[^\n\S]*/?>|</%(tag)s[^\n\S]*>)[^\n\S]*$)ÚtagÚattrrº   F)r¡   Úhtml_endrt   r/   r}   r~   rn   Úformatr�   r   ÚtagsÚtag_nameÚattribute_no_lf)r,   r-   Ú	block_tags      r.   r/   ÚHTMLBlock.match  sŠ  € à"&ˆ�‰ÔØ×ÑÐI×JÑJØ—<—<Ð�<Ü&(§j¢j°F¸6¿<¹<×;MÑ;MÈaÓ;PÐ:QÐQRÐ1SÓ&TˆF�N‰NÔ#ØØ×Ñ˜L×)Ñ)Ü&(§j¢j°Ó&8ˆF�N‰NÔ#ØØ×Ñ˜K×(Ñ(Ü&(§j¢j°Ó&8ˆF�N‰NÔ#ØØ×Ñ˜J×'Ñ'Ü&(§j¢j°Ó&6ˆF�N‰NÔ#ØØ×ÑÐ/×0Ñ0Ü&(§j¢j°Ó&:ˆF�N‰NÔ#ØØ×$Ñ$ S§X¡X¬h¯m©mÓ%<Ó=ˆ	Ø×ÑÐ:¸YÑF×GÑGØ&*ˆF�N‰NÔ#ØØ×ÑØVÜ×'Ñ'´×1IÑ1IÑJñK÷
ñ 
ð '+ˆF�N‰NÔ#Øàr1   c                óÊ  • / nUR                   (       dÀ  UR                  5       nUc  O¬UR                  U5        UR                  R                  b<  UR                  R                  R                  U5      (       a  UR                  5         OIO%UR                  5       S:X  a  UR                  5         O#UR                  5         UR                   (       d  MÀ  SR                  U5      $ )Nr%   )
r`   rZ   r§   r¡   rå   Úsearchra   r[   rŒ   r�   )r,   r-   r�   r\   s       r.   r3   ÚHTMLBlock.parse=  s³   € àˆØ×"×"Ø×#Ñ#Ó%ˆDØ‰|ØØ�L‰L˜ÔØ�~‰~×&Ñ&Ñ2Ø—>‘>×*Ñ*×1Ñ1°$×7Ñ7Ø—N‘NÔ$Øð 8ð —‘“ Ó#Ø—	‘	”ØØ�N‰NÔð ×"×"Ñ"ð �w‰w�u‹~Ðr1   rÜ   Nrµ   )r-   r   r=   z
int | boolr¶   re   r<   r1   r.   r   r     s7   † Ù&à€Hôð óó ðð> óó ór1   r   c                  ó°   • \ rS rSrSrSr\R                  " S\R                  S9r	SS jr
\SS j5       r\SS j5       r\SSS	 jj5       r\SS
 j5       rSrg)r   iP  zA paragraph elementr
   z
[^\n]+$\n?ri   c                ól   • SR                  S U 5       5      R                  S5      nX l        SU l        g )Nr%   c              3  ó@   #   • U  H  oR                  5       v •  M     g 7fr6   r…   r‡   s     r.   r‰   Ú%Paragraph.__init__.<locals>.<genexpr>W  s   é € Ð<²e¨dŸK™KŸM˜M²eùr‹   r¥   F)r�   r©   r'   Ú_tight)r8   r�   Ú	str_liness      r.   rO   ÚParagraph.__init__V  s.   € Ø—G‘GÑ<±eÓ<Ó<×CÑCÀDÓIˆ	Ø$ÔØˆ�r1   c                ó<   • UR                  U R                  5      S L$ r6   rs   r+   s     r.   r/   ÚParagraph.match[  s   € à×Ñ §¡Ó,°DÐ8Ð8r1   c                ó4   • [         R                  " SU 5      S L$ )Nz {,3}(=+|-+)[^\n\S]*$)r}   r/   )r\   s    r.   Úis_setext_headingÚParagraph.is_setext_heading_  s   € ä�xŠxÐ0°$Ó7¸tÐCÐCr1   c                ór  • UR                   nUR                  n UR                  S   R                  U5      (       di  UR                  S   R                  U5      (       dF  UR                  S   R                  U5      (       d#  UR                  S   R                  U5      (       a   XAl        gU(       aJ  [        UR                  [
        5      (       a+  UR                  S   R                  U5      (       a   XAl        gUR                  S   R                  U5      (       as  [        SUR                  S   5      R                  UR                  5       R                  5       S	5      nU(       d  US
   S S S:X  d	  US
   S;   a  US   (       a   XAl        gUR                  S   R                  U5      nU(       a  US:w  a   XAl        gUR                  S   R                  U5      (       a;  U(       d,  U R                  UR                  5       5      (       a   XAl        g XAl        g XAl        g! XAl        f = f)Nr   r   r   r   Tr   r   útype[ListItem]r   r
   rœ   Ú1z*-+rá   r   rº   r   F)Úparserr/   Úblock_elementsrž   rŸ   r   r	   Úparse_leadingrZ   r©   rù   )r,   r-   Úlazyrþ   Ú
prev_matchÚresultÚ	html_types          r.   Úbreak_paragraphÚParagraph.break_paragraphc  sê  € à—‘ˆØ—\‘\ˆ
ð	&à×%Ñ% gÑ.×4Ñ4°V×<Ñ<Ø×(Ñ(¨Ñ3×9Ñ9¸&×AÑAØ×(Ñ(¨Ñ5×;Ñ;¸F×CÑCØ×(Ñ(¨Ñ6×<Ñ<¸V×DÑDàð, &�Lö) Ü˜vŸ|™|¬T×2Ñ2Ø×)Ñ)¨*Ñ5×;Ñ;¸F×CÑCàð  &�Lð ×$Ñ$ VÑ,×2Ñ2°6×:Ñ:ÜØ$ f×&;Ñ&;¸JÑ&Góç‘- × 0Ñ 0Ó 2× 9Ñ 9Ó ;¸QÓ?ð ö ˜F 1™I c r˜N¨cÓ1°V¸A±YÀ%Ó5GÈVÐTUÏYØð &�Lð ×-Ñ-¨kÑ:×@Ñ@ÀÓHˆIÞ˜Y¨!›^Øð &�Lð ×$Ñ$ _Ñ5×;Ñ;¸F×CÑCÞ × 5Ñ 5°f×6FÑ6FÓ6H× IÑ IØ ð &�Lð ð &�Lð à%�Lø˜:�Lús'   šBH. Â.A	H. Ã?BH. Æ+H. ÇAH. È.H6c                óL  • [        [        UR                  5       5      /nUR                  5         SnUR                  (       Gd`  U(       GdX  U R                  U5      (       a   U$ UR                  5       nU(       aa  UR                  U5        UR                  5         U R                  U5      (       a)  [        SUR                  R                  S   5      " U5      $ O¬UR                  S S  n[        UR                  5      S:”  a~  UR                  5         UR                  5       nU(       a<  U R                  US5      (       a  SnO!UR                  U5        UR                  5         O[        UR                  5      S:”  a  M~  XQl
        UR                  (       d
  U(       d  GMX  U$ )NFztype[SetextHeading]r   r
   T)r	   r&   rZ   ra   r`   r  r§   rù   rþ   rÿ   Ú_statesrm   Ú	pop_state)r,   r-   r�   Ú	end_parser\   ÚstatesrZ   s          r.   r3   ÚParagraph.parse†  s\  € ä”c˜6×+Ñ+Ó-Ó.Ð/ˆØ�‰ÔØˆ	Ø×"×"Ð"¯9Ø×"Ñ" 6×*Ñ*Øð6 ˆð5 ×#Ñ#Ó%ˆDæØ—‘˜TÔ"Ø—‘Ô Ø×(Ñ(¨×.Ñ.ÜØ-ØŸ™×4Ñ4°_ÑEôð óð ð /ð  Ÿ™©Ð*�Ü˜&Ÿ.™.Ó)¨AÓ-Ø×$Ñ$Ô&Ø &× 0Ñ 0Ó 2�IÞ à×.Ñ.¨v°t×<Ñ<à(,™Ià!ŸL™L¨Ô3Ø"ŸN™NÔ,Øô ˜&Ÿ.™.Ó)¨AÕ-ð "(”ð9 ×"×"¯9©9ð: ˆr1   )ró   r'   Nr‘   rd   )r\   r&   r=   r>   )F)r-   r   r  r>   r=   r>   )r-   r   r=   zlist[str] | SetextHeading)r?   r@   rA   rB   rC   r7   r}   r~   r   ru   rO   rH   r/   r·   rù   r  r3   rI   r<   r1   r.   r   r   P  sv   † Ùà€HØ�jŠj˜¨b¯d©dÑ3€Gôð
 ó9ó ð9ð óDó ðDð õ &ó ð &ðD ó!ó ó!r1   r   c                  óH   • \ rS rSrSrSrSr\S	S j5       r\S
S j5       r	Sr
g)r   i«  z$block quote element: (> hello world)rh   z {,3}>[^\n\S]?c                ó$   • UR                  S5      $ )Nz {,3}>)rt   r+   s     r.   r/   ÚQuote.match±  s   € à×Ñ 	Ó*Ð*r1   c                ó¬   • U " 5       nUR                  U5         UR                  R                  U5      Ul        S S S 5        U$ ! , (       d  f       U$ = fr6   )Úunder_staterþ   Úparse_sourcer#   )r,   r-   rŸ   s      r.   r3   ÚQuote.parseµ  sE   € á“ˆØ×Ñ Õ&Ø#Ÿ]™]×7Ñ7¸Ó?ˆEŒN÷ 'àˆ÷ 'Ô&àˆús   ™!AÁ
Ar<   Nr|   )r-   r   r=   r   )r?   r@   rA   rB   rC   r7   rG   rH   r/   r3   rI   r<   r1   r.   r   r   «  s5   † Ù.à€HØ€Gàó+ó ð+ð óó ór1   r   c                  óŒ   • \ rS rSrSrSrSr\R                  " S5      r	 " S S\
5      rSS jr\SS	 j5       r\SS
 j5       rSrg)r   i½  zList block elementrh   r%   ú$ {,3}(\d{1,9}[.)]|[*\-+])[ \t\n\r\f]c                  ó4   • \ rS rSr% S\S'   S\S'   S\S'   Srg	)
ÚList.ParseInfoiÄ  r&   Úbulletr>   Úorderedrc   rW   r<   Nr¿   r<   r1   r.   rÀ   r  Ä  s   ‡ Ø‹Ø‹ØŽ
r1   rÀ   c                ó<   • Uu  U l         U l        U l        SU l        g )NT©r  r  rW   Útight)r8   rÉ   s     r.   rO   ÚList.__init__É  s   € Ø04Ñ-ˆŒ�T”\ 4¤:Øˆ�
r1   c                ó
  • UR                  U R                  5      nU(       d  gUR                  S5      SSpTnUS S R                  5       (       a  Sn[	        US S 5      nU R                  X4U5      UR                  l        US L$ )NFr
   rœ   T)rt   ru   rn   Úisdigitrc   rÀ   r¡   Ú	list_info)r,   r-   ry   r  r  rW   s         r.   r/   Ú
List.matchÍ  sz   € à×Ñ˜SŸ[™[Ó)ˆÞØØ!"§¡¨£¨U°A˜ˆØ�#�2ˆ;×Ñ× Ñ ØˆGÜ˜˜s ˜Ó$ˆEØ#&§=¡=°À%Ó#Hˆ�‰Ô Ø˜ˆ}Ðr1   c                óª  • U " UR                   R                  5      n/ nSnSnUR                  nUR                  U5         UR                  (       dö  UR
                  S   R                  U5      (       a}  UR
                  S   R                  U5      n[        U[        5      (       d  [        SUR
                  S   5      " U5      nUR                  U5        UR                  5         U(       a  SnOC[        R                  U5      (       a  [        R                  U5        SnOUR                  5         OUR                  (       d  Mö  S S S 5        U=(       a    [        S U 5       5      (       + nU(       a?  U H9  nXHl        UR"                   H   n	[        U	[$        5      (       d  M  XIl        M"     M;     X2l        XBl        U$ ! , (       d  f       N‚= f)NTFr   rü   c              3  óh   #   • U  H(  oR                     H  n[        U[        5      v •  M     M*     g 7fr6   )r#   rž   r   )rˆ   ÚitemÚes      r.   r‰   ÚList.parse.<locals>.<genexpr>ò  s(   é € ð "
Ú19¨Ç=Å=¸aŒJ�qœ)×$Ð$Á=Ñ$²ùs   ‚02)r¡   r   rþ   r  r`   rÿ   r/   r3   rž   r!   r	   r§   r¦   r   r¨   Úanyró   r#   r   r  )
r,   r-   rŸ   r#   r  Úhas_blank_linerþ   Úelr$  Úchilds
             r.   r3   Ú
List.parseÙ  s{  € á�F—N‘N×,Ñ,Ó-ˆØˆØˆØˆØ—‘ˆØ×Ñ Õ&Ø×&×&Ø×(Ñ(¨Ñ4×:Ñ:¸6×BÑBØ×.Ñ.¨zÑ:×@Ñ@ÀÓH�BÜ% b¬,×7Ñ7Ü!Ð"2°F×4IÑ4IÈ*Ñ4UÔVØó˜ð —O‘O BÔ'Ø—M‘M”OÞ%Ø %˜øÜ—_‘_ V×,Ñ,Ü—O‘O FÔ+Ø%)‘Nà—L‘L”NØð! ×&×&Ñ&÷ 'ð$ ÷ 
œcñ "
Ù19ó"
ó 
ô 
ˆö Û �Ø#”Ø!Ÿ]œ]�EÜ! %¬×3Ó3Ø',žó +ñ !ð
 "ŒØŒØˆ÷; 'Õ&ús   Á DGÇ
Gr  N)rÉ   r  r=   rQ   rd   )r-   r   r=   r   )r?   r@   rA   rB   rC   r7   rG   r}   r~   ru   r   rÀ   rO   rH   r/   r3   rI   r<   r1   r.   r   r   ½  sW   † Ùà€HØ€GØ�jŠjÐ@ÓA€Gô�Jô ô
ð ó	ó ð	ð ó#ó ó#r1   r   c                  ó    • \ rS rSrSrSrSr\R                  " S5      r	 " S S\
5      rSS jr\SS	 j5       r\SS
 j5       r\SS j5       rSrg)r   i   z7List item element. It can only be created by List.parseTFr  c                  ó4   • \ rS rSr% S\S'   S\S'   S\S'   Srg)	ÚListItem.ParseInfoi  rc   Úindentr&   r  Úmidr<   Nr¿   r<   r1   r.   rÀ   r.    s   ‡ Ø‹Ø‹ØŽr1   rÀ   c                ó    • Uu  p#nSU-  [         R                  " U5      -   SU-  -   U l        S[        U5      U-   U=(       d    S-   -  U l        g )NÚ r
   )r}   ÚescaperG   rm   Ú_second_prefix)r8   rÉ   r/  r  r0  s        r.   rO   ÚListItem.__init__  sM   € Ø"Ñˆ˜Ø˜V‘|¤b§i¢i°Ó&7Ñ7¸#À¹)ÑCˆŒØ!¤S¨£[°6Ñ%9¸S¿XÀAÑ%FÑGˆÕr1   c                óÂ   • XS  R                  S5      R                  5       n[        U5      U-
  [        U5      -
  n[        U5      u  pVn[        U5      nUS:”  a  SnXEX‡4$ )Nr”   r
   )r­   r†   rm   r   )	r,   r\   Ú
prefix_posrª   r/  r  ÚspacesÚtailr0  s	            r.   r   ÚListItem.parse_leading  sg   € à˜[Ð)×4Ñ4°QÓ7×>Ñ>Ó@ˆÜ�T“˜ZÑ'¬#¨mÓ*<Ñ<ˆÜ2°=ÓAÑˆ˜Ü�&‹kˆØ�‹7ØˆCØ˜sÐ(Ð(r1   c                óú  • UR                   R                  S   R                  U5      (       a  gUR                  U R                  5      (       d  g[        [        UR                  S5      5      R                  S5      nSn[        R                  " UR                  U5      nUb  UR                  5       nU R                  UR                  5       U5      u  pVpxUR                  n	[        U	[         5      (       d   eU	R"                  (       a  US S R%                  5       (       a  US   U	R&                  S   :w  a  gU	R"                  (       d  XiR&                  :w  a  gU R)                  XVU5      UR*                  l        g)Nr   Fr”   r   rœ   T)rþ   rÿ   r/   rt   ru   r	   r&   rZ   r­   r}   r�   r®   r   r©   rŸ   rž   r   r  r  r  rÀ   r¡   Úlist_item_info)
r,   r-   rZ   r7  ry   r/  r  r0  rÊ   Úparents
             r.   r/   ÚListItem.match  s%  € à�=‰=×'Ñ'¨Ñ8×>Ñ>¸v×FÑFØØ×Ñ §¡×,Ñ,ØÜœ˜f×.Ñ.¨uÓ5Ó6×AÑAÀ!ÓDˆ	Øˆ
Ü�HŠH�V—]‘] IÓ.ˆØ‰=ØŸ™›ˆJØ!$×!2Ñ!2°9×3CÑ3CÓ3EÀzÓ!RÑˆ˜Ø—‘ˆÜ˜&¤$×'Ñ'Ð'Ð'à�N�NØ˜3˜B�K×'Ñ'×)Ñ)Ø�b‰z˜VŸ]™]¨2Ñ.Ó.àØ�~�~ &¯M©MÓ"9ØØ(+¯©°fÀcÓ(Jˆ�‰Ô%Ør1   c                ó¦  • U " UR                   R                  5      n/ Ul        UR                  U5         UR	                  5       R                  5       (       dS  UR                  5         UR	                  5       (       a#  UR	                  5       R                  5       (       d  UsS S S 5        $ UR                  R                  U5      Ul        S S S 5        [        UR                  S   [        5      (       aJ  [        [        UR                  R                  5       5      nUR                  (       a  UR                  Ul        U$ ! , (       d  f       N|= f)Nrœ   )r¡   r<  r#   r  rZ   r[   ra   rþ   r  rž   r   r	   rŒ   rV   r_   )r,   r-   rŸ   Ú	blanklines       r.   r3   ÚListItem.parse4  sî   € á�F—N‘N×1Ñ1Ó2ˆØˆŒØ×Ñ Õ&Ø×#Ñ#Ó%×+Ñ+×-Ñ-Ø—‘Ô Ø×'Ñ'×)Ñ)°×1AÑ1AÓ1C×1IÑ1I×1KÑ1KØ ÷	 'Ñ&ð
 $Ÿ]™]×7Ñ7¸Ó?ˆEŒN÷ 'ô �e—n‘n RÑ(¬)×4Ñ4äœY¨¯©×(:Ñ(:Ó(<Ó=ˆIØ�~�~Ø&×.Ñ.�”
Øˆ÷ 'Õ&ús   µA-EÂ, EÅ
E)rG   r4  N)rÉ   r.  r=   rQ   )r\   r&   r7  rc   r=   ztuple[int, str, int, str]rd   )r-   r   r=   r   )r?   r@   rA   rB   rC   rE   ró   r}   r~   ru   r   rÀ   rO   rH   r   r/   r3   rI   r<   r1   r.   r   r      sl   † ÙAà€GØ€FØ�jŠjÐ@ÓA€Gô�Jô ô
Hð
 ó)ó ð)ð óó ðð0 óó ór1   r   c                  óš   • \ rS rSrSr\R                  " S\R                  S9r " S S\	5      r
SSS jjr\SS	 j5       r\SS
 j5       rSrg)r   iF  z8Link reference definition:
[label]: destination "title"
z {,3}(\[[\s\S]*?)(?=\n\n|\Z)ri   c                  ó>   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   Srg	)
ÚLinkRefDef.ParseInfoiM  zinline_parser.GroupÚ
link_labelÚ	link_destÚ
link_titlerc   r®   r<   Nr¿   r<   r1   r.   rÀ   rD  M  s   ‡ Ø'Ó'Ø&Ó&Ø'Ó'ØŽr1   rÀ   Nc                ó(   • Xl         X l        X0l        g r6   )ÚlabelÚdestÚtitle)r8   rI  ÚtextrK  s       r.   rO   ÚLinkRefDef.__init__S  s   € ØŒ
ØŒ	Ø�
r1   c                ój  • UR                  U R                  5      nU(       d  gUR                  n[        R                  " X2R                  S5      5      nU(       d  gUR                  [        U5      :¼  d  X4R                     S:w  a  g[        R                  " X4R                  S-   5      n [        R                  " X55      u  pg[        UR                  UR                  5      n[        USU5      nUS:¼  a  US-  nO[        U5      nX5U R                  5       (       aY  UR                  (       aG  SX6R                  UR
                   ;   a+  [        R                  n[        USUR                  5      S-   nOgU R!                  XFXx5      UR"                  l        g! [        R                   a     gf = f)NFr
   Ú:r¥   r   T)rt   ru   Ú_bufferr   Ú_parse_link_labelrW   r®   rm   Ú_parse_link_separatorÚ_parse_link_dest_titleÚ
ParseErrorÚmaxr   r[   rL  Ú_EMPTY_GROUPrÀ   r¡   Úlinkref_info)	r,   r-   ry   rL  rE  r°   rF  rG  r®   s	            r.   r/   ÚLinkRefDef.matchX  sb  € à×Ñ˜SŸ[™[Ó)ˆÞØØ�~‰~ˆÜ"×4Ò4°T¿7¹7À1»:ÓFˆ
ÞØØ�>‰>œS ›YÓ&¨$¯~©~Ñ*>À#Ó*EàÜ×/Ò/°·n±nÀqÑ6HÓIˆð	Ü$1×$HÒ$HÈÓ$QÑ!ˆIô �	—‘˜zŸ~™~Ó.ˆÜ˜˜d AÓ&ˆØ�!‹8Ø�1‰H‰Cä�d“)ˆCØ�#ˆ;×Ñ×ÑØ�� 4¨4·±À
×@PÑ@PÐ+QÓ#QÜ*×7Ñ7�
Ü  d¨I¯M©MÓ:¸QÑ>‘ð Ø&)§m¡mØ :ó'
ˆ�‰Ô#ð øô% ×'Ñ'ó 	Ùð	ús   Â-F ÆF2Æ1F2c                ó  • UR                   R                  u  p#pE[        UR                  SS 5      nUR                  R
                  nXg;  a  UR                  UR                  4Xv'   XQl        U " XcR                  UR                  5      $ )Nr
   rœ   )r¡   rW  r   rL  ÚrootrN   r_   )r,   r-   rI  rJ  rK  r_   Únormalized_labelrN   s           r.   r3   ÚLinkRefDef.parse{  sq   € à"(§.¡.×"=Ñ"=Ñˆ�UÜ*¨5¯:©:°a¸Ð+;Ó<ÐØŸ™×1Ñ1ˆØÓ0Ø/3¯y©y¸%¿*¹*Ð.EˆMÑ+ØŒ
ÙÐ#§Y¡Y°·
±
Ó;Ð;r1   )rJ  rI  rK  r6   )rI  r&   rL  r&   rK  z
str | Noner=   rQ   rd   )r-   r   r=   r   )r?   r@   rA   rB   rC   r}   r~   r   ru   r   rÀ   rO   rH   r/   r3   rI   r<   r1   r.   r   r   F  sX   † ñð �jŠjÐ8ÀÇÁÑE€Gô�Jô öð
 ó ó ð ðD ó<ó ó<r1   r   )&rC   Ú
__future__r   r}   Útypingr   r   r   r   r   r	   r%   r   r   r   Úelementr   Úhelpersr   r   r   r-   r   Ú__all__r!   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   r1   r.   Ú<module>rb     sí   ðñõ #ã 	ß H× Hç -Ñ -Ý ß DÑ DæÝð€ô"%*�7ô %*ôP<ˆ|ô <ô�ô ô*ˆlô ô0
L�Lô 
Lô;�ô ;ô|2A�ô 2Aôj�Lô ô&8�ô 8ôvX�ô XôvˆLô ô$@ˆ<ô @ôFCˆ|ô CôL=<�õ =<r1   