ó
    "nj(+  ã            
      óT  • S r SSKJr  SSKJr  SSKJrJr  SSKJ	r	  SSK
Jr  SS	KJrJr  \(       a  SS
KJr  SSKJr  SSKrSSKJs  Jr  SrSrSrSrSSSSSSSSSS.	rS\-  rS\-  rSrSrSrS \-  rS!r S"\-  r!S#\-  r"S$\-  r#S%r$S&r%S'r&\S(-   r' " S) S*\5      r( " S+ S,\5      r)S- r*g).z³
Adds conversion of 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;)z&mdash;z&ndash;z&hellip;z&laquo;z&raquo;z&lsquo;z&rsquo;z&ldquo;z&rdquo;)	ÚmdashÚndashÚellipsisúleft-angle-quoteúright-angle-quoteúleft-single-quoteúright-single-quoteúleft-double-quoteúright-double-quotez
^'(?=%s\B)z
^"(?=%s\B)z"'(?=\w)z'"(?=\w)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                  ó(   • \ rS rSrSS jrSS jrSrg)ÚSubstituteTextPatterné£   c                óH   • [         R                  " X5        X l        X0l        g)z!Replaces matches with some text. N)r   Ú__init__ÚreplaceÚmd)ÚselfÚpatternr   r    s       Ú</usr/lib/python3/dist-packages/markdown/extensions/smarty.pyr   ÚSubstituteTextPattern.__init__¤   s   € ä×$Ò$ TÔ3ØŒØ�ó    c                ó  • SnU R                    HT  n[        U[        5      (       a  X1R                  U5      -  nM-  X0R                  R
                  R                  U5      -  nMV     X1R                  S5      UR                  S5      4$ )NÚ r   )	r   Ú
isinstanceÚintÚgroupr    Ú	htmlStashÚstoreÚstartÚend)r!   ÚmÚdataÚresultÚparts        r#   ÚhandleMatchÚ!SubstituteTextPattern.handleMatchª   sl   € ØˆØ—L”LˆDÜ˜$¤×$Ñ$ØŸ'™' $›-Ñ'’àŸ'™'×+Ñ+×1Ñ1°$Ó7Ñ7’ñ	 !ð
 —w‘w˜q“z 1§5¡5¨£8Ð+Ð+r%   )r    r   N)r"   Ústrr   z#Sequence[int | str | etree.Element]r    r   )r/   zre.Match[str]r0   r5   Úreturnztuple[str, int, int])Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r3   Ú__static_attributes__© r%   r#   r   r   £   s   † ô÷,r%   r   c                  ót   ^ • \ rS rSrSrU 4S jr        SS jrSS jrSS jrSS jr	SS jr
S	 rS
rU =r$ )ÚSmartyExtensioné´   zAdd Smarty to Markdown. c                óÐ   >• SS/SS/SS/SS/0 S/S.U l          [        TU ]  " S0 UD6  [        [        5      U l        U R                  R                  U R                  S	0 S
95        g )NTzEducate quotesFzEducate angled quoteszEducate dasheszEducate ellipseszOverwrite default substitutions)Úsmart_quotesÚsmart_angled_quotesÚsmart_dashesÚsmart_ellipsesÚsubstitutionsrE   )Údefaultr<   )ÚconfigÚsuperr   ÚdictrE   ÚupdateÚ	getConfig)r!   ÚkwargsÚ	__class__s     €r#   r   ÚSmartyExtension.__init__¶   s|   ø€ à!Ð#3Ð4Ø$)Ð+BÐ#CØ!Ð#3Ð4Ø#Ð%7Ð8Ø Ð"CÐDñ
ˆŒð 	/Ü‰ÒÑ"˜6Ò"Ü-1´-Ó-@ˆÔØ×Ñ×!Ñ! $§.¡.°È" .Ð"MÕNr%   c                óŽ   • [        U5       H6  u  pVXa4-  n[        U6 nSX54-  nU R                  R                  XgXE-
  5        M8     g )Nzsmarty-%s-%d)Ú	enumerater   ÚinlinePatternsÚregister)r!   r    ÚpatternsÚserieÚpriorityÚindr"   Únames           r#   Ú_addPatternsÚSmartyExtension._addPatternsÃ   sM   € ô & hÖ/‰LˆCØ�uÑˆGÜ+¨WÐ5ˆGØ! U LÑ0ˆDØ×Ñ×(Ñ(¨¸¹ÖEò	 0r%   c                óä   • [        SU R                  S   4U5      n[        SU R                  S   4U5      nU R                  R                  USS5        U R                  R                  USS5        g )	Nz(?<!-)---(?!-)r   z(?<!-)--(?!-)r   zsmarty-em-dashesé2   zsmarty-en-dashesé-   ©r   rE   rQ   rR   )r!   r    ÚemDashesPatternÚenDashesPatterns       r#   ÚeducateDashesÚSmartyExtension.educateDashesÐ   sv   € Ü/Ø × 2Ñ 2°7Ñ ;Ð=¸ró
ˆô 0Ø˜t×1Ñ1°'Ñ:Ð<¸bó
ˆð 	×Ñ×$Ñ$ _Ð6HÈ"ÔMØ×Ñ×$Ñ$ _Ð6HÈ"ÕMr%   c                ót   • [        SU R                  S   4U5      nU R                  R                  USS5        g )Nz(?<!\.)\.{3}(?!\.)r   zsmarty-ellipsesé
   r]   )r!   r    ÚellipsesPatterns      r#   ÚeducateEllipsesÚSmartyExtension.educateEllipsesÚ   s<   € Ü/Ø! D×$6Ñ$6°zÑ$BÐ#DÀbó
ˆð 	×Ñ×$Ñ$ _Ð6GÈÕLr%   c                óä   • [        SU R                  S   4U5      n[        SU R                  S   4U5      nU R                  R                  USS5        U R                  R                  USS5        g )	Nz\<\<r   z\>\>r   zsmarty-left-angle-quotesé(   zsmarty-right-angle-quotesé#   r]   )r!   r    ÚleftAngledQuotePatternÚrightAngledQuotePatterns       r#   ÚeducateAngledQuotesÚ#SmartyExtension.educateAngledQuotesà   s~   € Ü!6Ø�d×(Ñ(Ð);Ñ<Ð>Àó"
Ðô #8Ø�d×(Ñ(Ð)<Ñ=Ð?Àó#
Ðð 	×Ñ×$Ñ$Ð%;Ð=WÐY[Ô\Ø×Ñ×$Ñ$Ð%<Ð>YÐ[]Õ^r%   c                ó„  • U R                   S   nU R                   S   nU R                   S   nU R                   S   n[        U44[        U44[        XB-   44[        X$-   44[
        U44[        SU44[        U44[        US44[        U44[        SU44[        U44[        U44[        U444nU R                  XSS5        g )Nr   r   r   r   r   Úquotesé   )rE   ÚsingleQuoteStartReÚdoubleQuoteStartReÚdoubleQuoteSetsReÚsingleQuoteSetsReÚdecadeAbbrReÚopeningSingleQuotesRegexÚclosingSingleQuotesRegexÚclosingSingleQuotesRegex2ÚremainingSingleQuotesRegexÚopeningDoubleQuotesRegexÚclosingDoubleQuotesRegexÚclosingDoubleQuotesRegex2ÚremainingDoubleQuotesRegexrX   )r!   r    ÚlsquoÚrsquoÚldquoÚrdquorS   s          r#   ÚeducateQuotesÚSmartyExtension.educateQuotesê   sï   € Ø×"Ñ"Ð#6Ñ7ˆØ×"Ñ"Ð#7Ñ8ˆØ×"Ñ"Ð#6Ñ7ˆØ×"Ñ"Ð#7Ñ8ˆä % Ð*Ü % Ð*Ü ¡Ð 0Ð1Ü ¡Ð 0Ð1Ü˜E˜8Ð$Ü%¨¨5 zÐ2Ü%¨ xÐ0Ü&¨°¨
Ð3Ü'¨%¨Ð2Ü%¨¨5 zÐ2Ü%¨ xÐ0Ü&¨¨Ð1Ü'¨%¨Ð2ð
ˆð 	×Ñ˜"¨°"Õ5r%   c                ó  • U R                  5       n[        5       U l        US   (       a  U R                  U5        US   (       a  U R	                  U5        US   (       a<  U R                  U5        UR                  R                  [        [        U5      SS5        US   (       a  U R                  U5        [        U5      nU R                  Ul        UR                  R                  USS5        UR                  R                  S	S
/5        g )NrD   rA   rB   ÚhtmléZ   rC   Úsmartyé   r   r   )Ú
getConfigsr
   rQ   re   r‚   rl   rR   r   ÚHTML_STRICT_REr`   r	   ÚtreeprocessorsÚESCAPED_CHARSÚextend)r!   r    ÚconfigsÚinlineProcessors       r#   ÚextendMarkdownÚSmartyExtension.extendMarkdown   sÞ   € Ø—/‘/Ó#ˆÜHPË
ˆÔØÐ#×$Ø× Ñ  Ô$Ø�>×"Ø×Ñ˜rÔ"ØÐ(×)Ø×$Ñ$ RÔ(ð ×Ñ×&Ñ&Ô':¼>È2Ó'NÐPVÐXZÔ[Ø�>×"Ø×Ñ˜rÔ"Ü)¨"Ó-ˆØ)-×)<Ñ)<ˆÔ&Ø
×Ñ×"Ñ" ?°H¸aÔ@Ø
×Ñ×Ñ  c 
Õ+r%   )rG   rQ   rE   )r    r   rS   z9Sequence[tuple[str, Sequence[int | str | etree.Element]]]rT   r5   rU   r)   )r    r   r6   ÚNone)r7   r8   r9   r:   Ú__doc__r   rX   r`   re   rl   r‚   r�   r;   Ú__classcell__)rM   s   @r#   r>   r>   ´   s^   ø† Ù#õOðFàðFð LðFð ð	Fð
 ôFôNôMô_ô6÷,,ð ,r%   r>   c                 ó   • [        S0 U D6$ )Nr<   )r>   )rL   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ÚopeningQuotesBaserE   rq   rr   rs   rt   ru   rz   r{   r|   rv   rw   rx   ry   r}   rŠ   r   r>   r–   r<   r%   r#   Ú<module>r£      s  ðñ^õ #å ß 9Ý ,Ý ß *æÝ!Ý!Ûß)Ð)ð >€
Ø€Ø/€
ð	ð ð ØØØ!Ø"Ø"Ø#Ø"Ø#ñ
€ð # ZÑ/Ð Ø" ZÑ/Ð ð $Ð Ø#Ð ð %€ð (Ð*;Ñ;Ð ð &Ð Ø&¨Ñ3Ð ð (Ð*;Ñ;Ð ð 4°jÑ@Ð Ø(Ð ð "Ð Ø!Ð à˜9Ñ$€ô,Ð/ô ,ô"],�iô ],ó@%r%   