
    ~,h                        S r SSKJr  SSKrSSKJr  SSKJrJrJ	r	J
r
  SSKJr  SS	KJr  \R                  " S
5      r\R                  " S
5      rSrSS jrSS jrSS jrg)z5Convert straight quotation marks to typographic ones
    )annotationsN)Any   )
charCodeAtisMdAsciiPunctisPunctCharisWhiteSpace)Token   )	StateCorez['\"]u   ’c                2    US:  d   eU S U U-   XS-   S  -   $ )Nr   r    )stringindexchs      D/usr/lib/python3/dist-packages/markdown_it/rules_core/smartquotes.py	replaceAtr      s/     A::&5>B	!444    c           	     0   / n[        U 5       GH  u  p4UR                  nSn[        [        U5      5      S S S2    H  nX&   S   U::  d  M    O   US-  nUS US-    nUR                  S:w  a  Ma  UR
                  nSn[        U5      n	X:  d  M  Sn
Un[        R                  X{S  5      nU(       d  M  S=pUR                  S5      U-   S-   nUR                  S5      S:H  nS	nUR                  S5      U-   S-
  S:  a!  [        X|R                  S5      U-   S-
  5      nO[        U5      S S S2    Hn  nX   R                  S
:X  d  X   R                  S:X  a    OIX   R
                  (       d  M>  [        X   R
                  [        X   R
                  5      S-
  5      n  O   S	nX:  a  [        Xx5      nOr[        US-   [        U 5      5       HV  nX   R                  S
:X  d  X   R                  S:X  a    O1X   R
                  (       d  M>  [        X   R
                  S5      n  O   US L=(       a&    [        U5      =(       d    [        [        U5      5      nUS L=(       a&    [        U5      =(       d    [        [        U5      5      nUS L=(       a    [        U5      nUS L=(       a    [        U5      nU(       a  SnOU(       a  U(       d	  U(       d  SnU(       a  SnOU(       a  U(       d	  U(       d  SnUS:X  a'  UR                  S5      S:X  a  Ub  US:  a	  US::  a  S=pU(       a  U(       a  UnUnU(       dC  U(       d<  U(       a2  [        UR
                  UR                  S5      U-   [         5      Ul        GM  U(       Ga  [        [        U5      5      S S S2    GHg  nX&   nX&   S   U:  a    GOVUS   U:X  d  M!  X&   S   U:X  d  M.  X&   nU(       aG  UR"                  R$                  R&                  S   nUR"                  R$                  R&                  S   nOFUR"                  R$                  R&                  S   nUR"                  R$                  R&                  S   n[        UR
                  UR                  S5      U-   U5      Ul        [        U US      R
                  US   U5      U US      l        U[        U5      S-
  -  nUS   U:X  a  U[        U5      S-
  -  nUR
                  n[        U5      n	US U nSn
  O   U
(       a  Sn
GM  U(       a)  UR)                  UUR                  S5      U-   UUS.5        O@U(       a9  U(       a2  [        UR
                  UR                  S5      U-   [         5      Ul        X:  a  GM  GM     g )Nr   levelr   textFT'    	softbreak	hardbreak"   "0   9   singler      tokenpos)r#   r$   r!   r   )	enumerater   rangelentypecontentQUOTE_REsearchstartgroupr   r   r   chrr	   r   
APOSTROPHEmdoptionsquotesappend)tokensstatestackir#   	thisLeveljr   r$   maximum
goto_outer	lastIndextcanOpencanCloseisSinglelastCharnextCharisLastPunctCharisNextPunctCharisLastWhiteSpaceisNextWhiteSpaceitem	openQuote
closeQuotes                            r   process_inlinesrJ      s   "$Ef%KK	s5z"4R4(Ax I- ) FAgA::}}d)mJIZ 01A!%%G''!*y(1,CwwqzS(H $(HwwqzI%)Q.%dGGAJ,BQ,FGq$B$Ay~~4	+8U!9,, )&)*;*;SARAR=SVW=WXH ( $(H}%d0q1uc&k2Ay~~4	+8U!9,, )&)*;*;Q?H 3 'd2 x(FKH,F  'd2 x(FKH,F   (t3NX8N't3NX8N *:o  *:o 4AGGAJ#$5(X-=(dBR */.H8 **8$-qwwqzI'=z%EM s5z*4R40A 8Dx(94H~1ehw6G96T$x#(-(8(8(?(?(BI).)9)9)@)@)CJ(-(8(8(?(?(BI).)9)9)@)@)CJ
 )2!MM1771:	+A:) 9B"4=1994;	9tG}-5 s:22=A-3y>A#55C$}}"%d) %bq	%)
C 1D !&J!" wwqzI5"*!*	 h )MM1771:	#9:![ mm+ &r   c                ,   U R                   R                  R                  (       d  g U R                   H^  nUR                  S:w  d$  [
        R                  UR                  5      (       d  M9  UR                  c  MH  [        UR                  U 5        M`     g )Ninline)
r0   r1   typographerr4   r(   r*   r+   r)   childrenrJ   )r5   r#   s     r   smartquotesrO      s_    88''::!)G)G>>%ENNE2	 r   )r   strr   intr   rP   returnrP   )r4   zlist[Token]r5   r   rR   None)r5   r   rR   rS   )__doc__
__future__r   retypingr   common.utilsr   r   r   r	   r#   r
   
state_corer   compileQUOTE_TEST_REr*   r/   r   rJ   rO   r   r   r   <module>r\      sQ    " 	  P P  !

8$::h
5gT3r   