ó
    Ð]j°  ã                  ó’   • S SK Jr  S SKJr  S SKrSSKJr  \R                  " \5      r	SSSS	S
S.           SS jjr
\
" 5       rg)é    )Úannotations)ÚCallableNé   )Ú
StateBlock)Ú~Ú`ÚfenceF)r   é   )ÚmarkersÚ
token_typeÚexact_matchÚdisallow_marker_in_infoÚmin_markersc                óX   ^ ^^^^• U(       a  S mOS m          SUUU UU4S jjnU$ )aÍ  Create a fence parsing rule with configurable options.

:param markers: Tuple of single characters that can be used as fence markers.
:param token_type: The token type name to emit (e.g. "fence", "colon_fence").
:param exact_match: If True, the closing fence must have exactly the same
    number of marker characters as the opening fence (not "at least as many").
    This enables nesting of fences with different marker counts.
:param disallow_marker_in_info: Tuple of marker characters that are not allowed
    to appear in the info string. The check only applies when the actual opening
    marker is in this tuple (e.g. a tilde fence is unaffected by ``"`"`` being
    listed). Per CommonMark, backtick fences cannot have backticks in the info
    string. Use ``()`` to disable this restriction.
:param min_markers: Minimum number of marker characters to form a fence.
:return: A block rule function with signature
    ``(state, startLine, endLine, silent) -> bool``.
c                ó
   • X:H  $ ©N© ©Úopening_lenÚclosing_lens     ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/markdown_it/rules_block/fence.pyÚ<lambda>Ú!make_fence_rule.<locals>.<lambda>(   ó   € ¸;Ò;Uó    c                ó
   • X:¬  $ r   r   r   s     r   r   r   +   r   r   c                ó4  >• [         R                  SXX#5        SnU R                  U   U R                  U   -   nU R                  U   nU R                  U5      (       a  gUT-   U:”  a  gU R                  U   nUT;  a  gUnU R                  XW5      nXX-
  n	U	T:  a  gU R                  X… n
U R                  XV nUT;   a  X{;   a  gU(       a  gUn US-  nXÂ:¼  a  O¿U R                  U   U R                  U   -   =pXU R                  U   nXV:  a  U R                  U   U R                  :  a  Om U R                  U   U:w  a  Mt   U R                  U5      (       a  M�  U R                  XW5      nT" X•U-
  5      (       d  M°  U R                  U5      nXV:  a  MÈ  Sn U R                  U   n	XÄ(       a  SOS-   U l        U R                  TSS5      nX½l        U R                  US-   XÉS5      Ul        X­l        XR                  /Ul        g! [         a     M{  f = f)Nzentering fence: %s, %s, %s, %sFTr   r   Úcode)ÚLOGGERÚdebugÚbMarksÚtShiftÚeMarksÚis_code_blockÚsrcÚskipCharsStrÚsCountÚ	blkIndentÚ
IndexErrorÚ
skipSpacesÚlineÚpushÚinfoÚgetLinesÚcontentÚmarkupÚmap)ÚstateÚ	startLineÚendLineÚsilentÚhaveEndMarkerÚposÚmaximumÚmarkerÚmemÚlengthr0   ÚparamsÚnextLineÚtokenÚclosing_matcherr   r   r   r   s                 €€€€€r   Ú_fence_ruleÚ$make_fence_rule.<locals>._fence_rule-   s=  ø€ ô 	�‰Ø,¨eÀô	
ð ˆØ�l‰l˜9Ñ%¨¯©°YÑ(?Ñ?ˆØ—,‘,˜yÑ)ˆà×Ñ˜y×)Ñ)Øà�Ñ˜wÓ&Øà—‘˜3‘ˆà˜Ó Øð ˆØ× Ñ  Ó-ˆà‘ˆà�KÓØà—‘˜3Ð#ˆØ—‘˜3Ð'ˆàÐ,Ó,°Ó1AØö Øð ˆàØ˜‰MˆHØÓ"ð àŸ™ XÑ.°·±¸hÑ1GÑGÐGˆCØ—l‘l 8Ñ,ˆGà‹} §¡¨hÑ!7¸%¿/¹/Ó!Ið ðØ—9‘9˜S‘> VÓ+Ùð ,ð
 ×"Ñ" 8×,Ñ,Ùà×$Ñ$ SÓ1ˆCá" 6°©9×5Ñ5Ùð ×"Ñ" 3Ó'ˆCà‹}Ùà ˆMàð —‘˜iÑ(ˆà¥m¡¸Ñ;ˆŒ
à—
‘
˜: v¨qÓ1ˆØŒ
ØŸ™ y°1¡}°hÈÓMˆŒØŒØ§
¡
Ð+ˆŒ	àøôA ó Úðús   Ä/H	 È	
HÈH)
r2   r   r3   Úintr4   rB   r5   ÚboolÚreturnrC   r   )r   r   r   r   r   r@   r?   s   `` `` @r   Úmake_fence_rulerE      sW   ü€ ö4 áU‰ñ Vˆð_Øð_Ø&)ð_Ø47ð_ØAEð_à	÷_ó _ðB Ðr   )r   útuple[str, ...]r   Ústrr   rC   r   rF   r   rB   rD   z,Callable[[StateBlock, int, int, bool], bool])Ú
__future__r   Úcollections.abcr   ÚloggingÚstate_blockr   Ú	getLoggerÚ__name__r   rE   r	   r   r   r   Ú<module>rN      sƒ   ðå "å $Û å #à	×	Ò	˜8Ó	$€ð
  *ØØØ/5ØñBàðBð ðBð ð	Bð
 -ðBð ðBð 2õBñL 	Ó�r   