+
    f0i+                       R t ^ RIHt ^RIHt ^RIHtHt ^RIH	t	 ^RI
Ht ^ RIHtHt ]'       d   ^ RIHt ^RIHt ^ R	It^ R	IHu Ht R
tRtRtRtRRRRRRRRRRRRRRRRRR/	tR ],          tR!],          tR"tR#tR$],          tR%],          tR&t R'],          t!R(t"R)],          t#R*],          t$R+],          t%R,t&R-t'R.t(]R/,           t) ! R0 R1]4      t* ! R2 R3]4      t+R4 t,R	# )5z
Convert ASCII dashes, quotes and ellipses to their HTML entity equivalents.

See the [documentation](https://Python-Markdown.github.io/extensions/smarty)
for details.
)annotations)	Extension)HtmlInlineProcessorHTML_RE)InlineProcessor)Registry)TYPE_CHECKINGSequence)Markdown)inlinepatternsNz)[!"#\$\%'()*+,-.\/:;<=>?\@\[\\\]\^_`{|}~]z[\s.,;:!?)]z[^\ \t\r\n\[\{\(\-\u0002\u0003]u1   (\s|&nbsp;|--|–|—|&[mn]dash;|&#8211;|&#8212;)mdashz&mdash;ndashz&ndash;ellipsisz&hellip;left-angle-quotez&laquo;right-angle-quotez&raquo;left-single-quotez&lsquo;right-single-quotez&rsquo;left-double-quotez&ldquo;right-double-quotez&rdquo;z
^'(?=%s\B)z
^"(?=%s\B)z"'(?=\w)z'"(?=\w)z
(?<=%s)\'"z
(?<=%s)\"'z(?<!\w)'(?=\d{2}s)z	%s"(?=\w)z"(?=\s)z(?<=%s)"z	%s'(?=\w)z(?<=%s)'(?!\s|s\b|\d)z	'(\s|s\b)'"z(?!\>)c                  .    ] tR t^tR R ltR R ltRtR# )SubstituteTextPatternc               $    V ^8  d   QhRRRRRR/# )   patternstrreplacez#Sequence[int | str | etree.Element]mdr
    )formats   "`/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/markdown/extensions/smarty.py__annotate__"SubstituteTextPattern.__annotate__   s#       .Q W_     c                J    \         P                  ! W4       W n        W0n        R# )z!Replaces matches with some text. N)r   __init__r   r   )selfr   r   r   s   &&&&r!   r&   SubstituteTextPattern.__init__   s    $$T3r$   c               $    V ^8  d   QhRRRRRR/# )r   mzre.Match[str]datar   returnztuple[str, int, int]r   )r    s   "r!   r"   r#      s"     , ,] ,# ,:N ,r$   c                	$   R pV P                    F]  p\        V\        4      '       d   W1P                  V4      ,          pK2  W0P                  P
                  P                  V4      ,          pK_  	  W1P                  ^ 4      VP                  ^ 4      3# ) )	r   
isinstanceintgroupr   	htmlStashstorestartend)r'   r*   r+   resultparts   &&&  r!   handleMatch!SubstituteTextPattern.handleMatch   sl    LLD$$$''$-'''++11$77	 !
 wwqz1558++r$   )r   r   N)__name__
__module____qualname____firstlineno__r&   r8   __static_attributes__r   r$   r!   r   r      s    , ,r$   r   c                  n   a  ] tR t^tRtV 3R ltR R ltR R ltR R ltR	 R
 lt	R R lt
R tRtV ;t# )SmartyExtensionzAdd Smarty to Markdown. c                	   < R RR.RRR.RRR.RRR	.R
/ R./V n          \        SV `  ! R/ VB  \        \        4      V n        V P                  P                  V P                  R
/ R7      4       R# )smart_quotesTzEducate quotessmart_angled_quotesFzEducate angled quotessmart_dasheszEducate dashessmart_ellipseszEducate ellipsessubstitutionszOverwrite default substitutions)defaultNr   )configsuperr&   dictrF   update	getConfig)r'   kwargs	__class__s   &,r!   r&   SmartyExtension.__init__   s    T#34!E+B#CT#34t%78b"CD
 	/"6"-1--@!!$.."."MNr$   c               (    V ^8  d   QhRRRRRRRR/# )	r   r   r
   patternsz9Sequence[tuple[str, Sequence[int | str | etree.Element]]]serier   priorityr0   r   )r    s   "r!   r"   SmartyExtension.__annotate__   s9     F FF LF 	F
 Fr$   c                	    \        V4       FC  w  rVWa3,          p\        V!  pR W53,          pV P                  P                  WgWE,
          4       KE  	  R# )zsmarty-%s-%dN)	enumerater   inlinePatternsregister)r'   r   rQ   rR   rS   indr   names   &&&&&   r!   _addPatternsSmartyExtension._addPatterns   sM     &h/LCuG+W5G!UL0D((E	 0r$   c                    V ^8  d   QhRRRR/# r   r   r
   r,   Noner   )r    s   "r!   r"   rT      s     N N NT Nr$   c                	    \        R V P                  R,          3V4      p\        RV P                  R,          3V4      pV P                  P                  VR^24       V P                  P                  VR^-4       R# )z(?<!-)---(?!-)r   z(?<!-)--(?!-)r   zsmarty-em-dasheszsmarty-en-dashesNr   rF   rW   rX   )r'   r   emDashesPatternenDashesPatterns   &&  r!   educateDashesSmartyExtension.educateDashes   sv    / 2 27 ;=r
 0t11':<b
 	$$_6H"M$$_6H"Mr$   c                    V ^8  d   QhRRRR/# r^   r   )r    s   "r!   r"   rT      s     M M( Mt Mr$   c                	~    \        R V P                  R,          3V4      pV P                  P                  VR^
4       R# )z(?<!\.)\.{3}(?!\.)r   zsmarty-ellipsesNra   )r'   r   ellipsesPatterns   && r!   educateEllipsesSmartyExtension.educateEllipses   s<    /!D$6$6z$B#Db
 	$$_6GLr$   c                    V ^8  d   QhRRRR/# r^   r   )r    s   "r!   r"   rT      s     _ _h _4 _r$   c                	    \        R V P                  R,          3V4      p\        RV P                  R,          3V4      pV P                  P                  VR^(4       V P                  P                  VR^#4       R# )z\<\<r   z\>\>r   zsmarty-left-angle-quoteszsmarty-right-angle-quotesNra   )r'   r   leftAngledQuotePatternrightAngledQuotePatterns   &&  r!   educateAngledQuotes#SmartyExtension.educateAngledQuotes   s~    !6d(();<>"
 #8d(()<=?#
 	$$%;=WY[\$$%<>Y[]^r$   c                    V ^8  d   QhRRRR/# r^   r   )r    s   "r!   r"   rT      s     6 6 6T 6r$   c                	   V P                   R ,          pV P                   R,          pV P                   R,          pV P                   R,          p\        V33\        V33\        WB,           33\        W$,           33\
        W5,           33\        WS,           33\        V33\        ^V33\        V33\        V^33\        V33\        ^V33\        V33\        V33\        V333pV P!                  WR^4       R# )r   r   r   r   quotesN)rF   singleQuoteStartRedoubleQuoteStartRedoubleQuoteSetsResingleQuoteSetsRedoubleQuoteSetsRe2singleQuoteSetsRe2decadeAbbrReopeningSingleQuotesRegexclosingSingleQuotesRegexclosingSingleQuotesRegex2remainingSingleQuotesRegexopeningDoubleQuotesRegexclosingDoubleQuotesRegexclosingDoubleQuotesRegex2remainingDoubleQuotesRegexr[   )r'   r   lsquorsquoldquordquorQ   s   &&     r!   educateQuotesSmartyExtension.educateQuotes   s	   ""#67""#78""#67""#78%*%* 01 01%-!12%-!12E8$%5z2%x0&
3'%2%5z2%x0&1'%2
" 	""5r$   c                	F   V P                  4       p\        4       V n        VR ,          '       d   V P                  V4       VR,          '       d   V P	                  V4       VR,          '       d=   V P                  V4       VP                  P                  \        \        V4      R^Z4       VR,          '       d   V P                  V4       \        V4      pV P                  Vn        VP                  P                  VR^4       VP                  P                  RR.4       R# )	rE   rB   rC   htmlrD   smartyr   r   N)
getConfigsr   rW   ri   r   ro   rX   r   HTML_STRICT_RErd   r   treeprocessorsESCAPED_CHARSextend)r'   r   configsinlineProcessors   &&  r!   extendMarkdownSmartyExtension.extendMarkdown  s    //#HP
#$$  $>""r"())$$R( &&':>2'NPVXZ[>""r")"-)-)<)<&
""?Ha@
c
+r$   )rH   rW   rF   )r:   r;   r<   r=   __doc__r&   r[   rd   ri   ro   r   r   r>   __classcell__)rN   s   @r!   r@   r@      s3    #OFNM_60, ,r$   r@   c                     \        R/ V B # )Nr   )r@   )rM   s   ,r!   makeExtensionr     s    $V$$r$   )-r   
__future__r   r.   r   r   r   r   r   r   utilr   typingr   r	   markdownr
   rexml.etree.ElementTreeetreeElementTree
punctClassendOfWordClass
closeClassopeningQuotesBaserF   rt   ru   rv   rw   rx   ry   rz   r   r   r   r{   r|   r}   r~   r   r   r   r@   r   r   r$   r!   <module>r      s@  ^ #  9 ,  *!!)) >
/
	  YY
	))
 #Z/ "Z/  $ # "Z/ "Z/  % (*;;  & '*4  (*;;  4j@ (  " ! 9$,/ ,"_,i _,D%r$   