
    k7iq                        S r SSKrSSKrSSKJrJrJrJr  SSKJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SS0r\RA                  \RB                  5        \RD                  r#SSS	S
SSSSSSSS.r$SSSSSSSSSS.	r%\%RA                  S S 5       5        SSSSS.r&S S!S"S#S$S%S&S#S'S(S(S)S*S+.r'0 S,S-_S.S/_S0S1_S2S3_S4S5_S6S7_S8S9_S:S;_S<S=_S>S?_S@SA_SBSC_SDSE_SFSC_SGSE_SHSE_r(\(RA                  \RR                  5        \(RA                  \RT                  5        \(RA                  \RV                  5        0 SISJ_SKSL_SMSN_SOSP_SQSR_SSST_SUSV_SWSX_SYSZ_S[S\_S]S^_S_S`_SaSb_ScSd_SeSf_SgSd_ShSd_SfSSiSjSkSlSm.Er,\,RA                  \RZ                  5        \,RA                  \R\                  5        \,RA                  \R^                  5        \,RA                  \R`                  5        \,RA                  \(5        SnSoSp.r1SqSrSsStSuSvSwSx.r2Syr3SzS{S|S|S}S}S~S~SSSSSSS.r4SSSSSSSSSSSSSS.r5SSSSSSSS.r6SSSSSS.r7SSSS.r8SSSSSS.r9SSSSSSSSSS.	r:SSS.SSS.SSS.SSS.S.r;0 SSSS.\;S   \;S   SS0\;S   SS0-  \;S   SS0-  S.r</ SQr=SSSSSSSSSSS.
r>S r?S r@S rAS rBS rCS rDS rES rFS rGSS jrHS rIS rJS rKS rLSS jrMg)zConvert LaTex maths code into presentational MathML.

This module is provisional:
the API is not settled and may change with any minor Docutils version.
    N)	MathErrormathalphabet2unichartex2unichartoplevel_code)mathmtablemrowmtrmtdmenclosemphantommsqrtmimnmomtextmsubmsupmsubsupmundermover
munderovermrootmfracmspaceMathRowhbaru   ℏu   Φu   Ξ   Σu   Ψu   Δu   Θu   ϒ   Πu   Ω   Γu   Λ)PhiXiSigmaPsiDeltaThetaUpsilonPiOmegaGammaLambdau	   lim infu	   lim supu	   inj limu
   proj limlim)	liminflimsupinjlimprojlim	varlimsup	varliminf
varprojlim	varinjlimoperatornamec              #   (   #    U  H  oU4v   M
     g 7fN ).0names     Z/home/james-whalen/.local/lib/python3.13/site-packages/docutils/utils/math/latex2mathml.py	<genexpr>r<   I   s       A@ #'@s   )arccosarcsinarctanargcoscoshcotcothcscdegdetdimexpgcdhomkerlglnlogPrsecsinsinhtantanh)TTFz0.278em)FTT0.444em)FTFz0.667em)FFTrV   )bmodpmodmodpodzdouble-struckboldzbold-italicscriptfrakturitalicnormalz
sans-serifzsans-serif-bold-italiczsans-serif-italic	monospace)mathbbmathbfmathbfitmathcalmathfrakmathitmathrmmathscrmathsf
mathbfsfit
mathsfbfitmathsfitmathtt	backslash\uparrowu   ↑	downarrowu   ↓updownarrowu   ↕Uparrowu   ⇑	Downarrowu   ⇓Updownarrowu   ⇕
lmoustacheu   ⎰
rmoustacheu   ⎱	arrowvertu   ⏐	bracevertu   ⎪lvert|lVert   ‖rvertrVert	Arrowvertnleqqu   ≦̸ngeqqu   ≧̸	nleqslantu   ⩽̸	ngeqslantu   ⩾̸ngtrlessu   ≹nlessgtru   ≸
nsubseteqqu   ⫅̸
nsupseteqqu   ⫆̸	centerdotu   ⬝
varnothingu   ⌀	varproptou   ∝triangleu   △triangledownu   ▽dotsbu   ⋯dotscu   …dotsidotsmsupinfmaxmin)dotsor,   r   r   r   r   u   ∼u   ≈)thicksimthickapproxu   ∣u   ∥u   ∤u   ∦u   ⌢u   ⌣u   ∫)shortmidshortparallel	nshortmidnshortparallel
smallfrown
smallsmilesmallint)bigcapbigcupbigodotbigoplus	bigotimesbigsqcupbiguplusbigveebigwedgecoprodintopointopprodsumr,   r   r   r   r   2em1emz0.2778emz0.25emz0.2222emz0.1667emz	-0.1667emz	-0.2222emz	-0.2778em)qquadquad
thickspace; 
medspace:	thinspace,negthinspace!negmedspacenegthickspace   ´u   ˉu   ˘u   ˇu   ˙   ¨u   ˙˙˙u   ˙˙˙˙`u   ˆu   ˚~   →)acutebarbrevecheckdotddotdddotddddotgravehatmathringtildevec)u   ⏞皙ɿ)   ←r   )u   ↔r   )_r   )r   r   )^g      )r   g333333ӿ)	overbraceoverleftarrowoverleftrightarrowoverlineoverrightarrowwidehat	widetilde)u   ⏟g?)r   g)
underbraceunderleftarrowunderleftrightarrow	underlineunderrightarrowu   −u   ∶    )-r   r   u   ℾu   ℿu   ⅀u   ℽu   ℼ)r    r   r   u   γu   π) r   )())[]){})r{   r{   )r}   r}   )r   r   )	matrixsmallmatrixpmatrixbmatrixBmatrixvmatrixVmatrixalignedcasesT)displaystylescriptlevelF      )r   	textstylescriptstylescriptscriptstylecfrac)r   r   classr   r   linethickness)fracr   dfractfracbinomdbinomtbinom)r   z1.2emz1.623emz2.047emz2.470em      )
leftrightbiglbigrBiglBigrbigglbiggrBigglBiggrc                     [         R                  " SU [         R                  5      nUc&  [         R                  " SU [         R                  5      nUR                  S5      UR                  S5      4$ )a  Return leading TeX command name and remainder of `string`.

>>> tex_cmdname('mymacro2') # up to first non-letter
('mymacro', '2')
>>> tex_cmdname('name 2') # strip trailing whitespace
('name', '2')
>>> tex_cmdname('_2') # single non-letter character
('_', '2')

z([a-zA-Z]+)[ \n]*(.*)z(.?)(.*)r   r   rematchDOTALLgroupstringms     r;   tex_cmdnamer  O  sQ     	)6299=AyHH[&"))4771:qwwqz!!    c                     [         R                  " SU [         R                  5      nUc  SU 4$ UR                  S5      UR                  S5      4$ )zaReturn leading number literal and remainder of `string`.

>>> tex_number('123.4')
('123.4', '')

z([0-9.,]*[0-9]+)(.*)r   r   r   r  r  s     r;   
tex_numberr  r  sE     	(&"))<Ay6z771:qwwqz!!r  c                     [         R                  " SU [         R                  [         R                  -  5      nUR	                  SSSS5      u  p#pEU=(       d    U=(       d    UU4$ )zReturn first simple TeX token and remainder of `string`.

>>> tex_token('\command{without argument}')
('\command', '{without argument}')
>>> tex_token('or first character')
('o', 'r first character')

a%  ((?P<cmd>\\[a-zA-Z]+)\s* # TeX command, skip whitespace
                      |(?P<chcmd>\\.)          # one-character TeX command
                      |(?P<ch>.?))            # first character (or empty)
                     (?P<remainder>.*$)    # remaining part of string
                 cmdchcmdch	remainder)r  r  VERBOSEr  r  )r  r  r  r  r  r  s         r;   	tex_tokenr!    s[     	  bjj2994		6A
 !"wk JC%2y((r  c                     SnSnSnU R                  S5      (       d
  U SS U SS 4$ U  H:  nUS-  nU(       a  SnO US:X  a  SnOUS:X  a  US-  nOUS:X  a  US-  nUS:X  d  M:    O   [        S	5      eU SUS-
   XS 4$ )
zReturn first TeX group or token and remainder of `string`.

>>> tex_group('{first group} returned without brackets')
('first group', ' returned without brackets')

r   Fr   Nr   ro   Tr   zGroup without closing bracket!)
startswithr   )r  split_index
nest_levelescapecs        r;   	tex_groupr(    s     KJFS!!bqz6!":%%qF$YF#X!OJ#X!OJ?  899!KM"F<$888r  c                 d    [        U 5      u  pUS:X  a  [        U R                  5       5      u  pX4$ )ak  Return first TeX group or token and remainder of `string`.

>>> tex_token_or_group('\command{without argument}')
('\command', '{without argument}')
>>> tex_token_or_group('first character')
('f', 'irst character')
>>> tex_token_or_group(' also whitespace')
(' ', 'also whitespace')
>>> tex_token_or_group('{first group} keep rest')
('first group', ' keep rest')

r   )r!  r(  lstrip)r  r@   r  s      r;   tex_token_or_groupr+    s1     v&NC
cz"6==?3>r  c                 *   [         R                  " SU [         R                  [         R                  -  5      nUc  U R	                  S5      (       d  SU 4$  UR                  S5      UR                  S5      4$ ! [         a    [        SU  S35      ef = f)a  Return optional argument and remainder.

>>> tex_optarg('[optional argument] returned without brackets')
('optional argument', ' returned without brackets')
>>> tex_optarg('{empty string, if there is no optional arg}')
('', '{empty string, if there is no optional arg}')

z\s*                            # leading whitespace
                 \[(?P<optarg>(\\]|[^\[\]]|\\])*)\] # [group] without nested groups
                 (?P<remainder>.*$)
                 r   r   optargr  z*Could not extract optional argument from ""!)r  r  r   r  r#  r  AttributeErrorr   r  s     r;   
tex_optargr0    s     	  bjj2994	6A 	y**3//6zQwwx !''+"666 QDVHBOPPQs   !A8 8Bc           
      f   UnU n[        U5      S:  Gag  US   USS p$US;   a  M!  US:X  a  [        U5      u  pR[        XSU5      u  p2GOUS;   a  [        X45      nGOUS:X  aM  [	        U[
        5      (       a  UR                  S:X  a	  SUl        GO[        5       nUR                  U5        UnGOUS:X  a  UR                  5       nGOxUS	:X  a-  [        5       nUR                  5       R                  U5        UnGOEUR                  5       (       a  UR                  [        U5      5      nGOUR                  5       (       a*  [        U5      u  prUR                  [        XG-   5      5      nOU[         ;   a{  0 nUS
:X  aP  [        U5      (       a@  US   n	U	R"                  (       a  U	R"                  S;   d  U	R%                  S5      S:X  a  SUS'   UR                  ['        [         U   40 UD65      nOPUS;   a  UR                  ['        USS95      nO0US;   a  UR                  ['        U5      5      nO[)        SU S35      eUc(  U(       d  U $ [)        SU SUS[        U5      *   S35      e[        U5      S:  a  GMg  UR                  (       a$  [        U5      UR                  :  a  [)        S5      eU $ )u   Append MathML conversion of `string` to `node` and return it.

>>> parse_latex_math(math(), r'lpha')
math(mi('α'))
>>> parse_latex_math(mrow(), r'x_{n}')
mrow(msub(mi('x'), mi('n')))

r   r   Nz 
ro   _^r   r   &r   z([=r   mathopenprefixformz/()[]|Fstretchyz+*=<>,.!?`';@zUnsupported character: "r.  zNo insertion point for "z". Unbalanced braces in "z"?z.Last node missing children. Source incomplete?)lenr  
handle_cmdhandle_script_or_limit
isinstancer   	nchildrenr	   appendcloser   isalphar   isdigitr  r   anomalous_charstextgetr   r   )
rootsourcer  noder'  cmdnamenew_nodenumber
attributesprevious_nodes
             r;   parse_latex_mathrN    sf    FD f+/1Ivabz6:9)&1OG%gV<LD&$Y)$2D#X$((T^^q-@!%6H%#X::<D#XuHJJL)DYY[[;;r!u%DYY[['/NF;;r!(|,D/! JCxCII $R!&&=+=+=+F$((1Z?)1Jv&;;r/!"4C
CDD(];;r!e45D/!;;r!u%D6qc<==<6vh ?55;Mc&k\5J4K2O P Pe f+/h ~~#d)dnn4HIIKr  c           	         U [         ;   aB  [        [         U    5      nU [        ;   a  UR                  SS5        UR	                  U5      nX4$ U [
        ;   a#  UR	                  [        [
        U    5      5      U4$ U [        ;   a  U S:X  a  [        U5      u  pB[        USS9nO[        [        U    5      nU S:X  a  [        U[        S5      5      nORU S:X  a  [        U[        S	5      S
S9nO7U S:X  a  [        U[        S5      5      nOU S:X  a  [        U[        S5      5      nUR	                  U5      nU(       a#  US   S;  a  UR	                  [        S5      5      nX4$ U [        ;   a  [        U    u  pVpxU(       a  UR	                  [        SXS95      nX4$ UR                  5       (       a  SnUR	                  [        US95      nU(       a  UR	                  [        SS
S95      nU(       a2  UR	                  [        S5      5      nUR	                  [        SS95      n[        U5      u  pB[        X5      nU(       a  UR	                  [        SS
S95      nX4$ U S;   a  [        SS9nUR	                  U5        X24$ U [         ;   a  [#        XU5      $ U S:X  a  UR	                  [        SS S!S"S#95      nX4$ U S$:X  a  [        US%5      nX4$ U [$        ;   a#  UR	                  [        [$        U    S&S'95      nX4$ U [&        ;   a#  UR	                  [        [&        U    S(S)95      nX4$ U [(        ;   aR  0 n	U [*        ;   a  U(       a  US   S*;   a  S+U	S,'   OU S-;   a  S.U	S'   UR	                  [        [(        U    40 U	D65      nX4$ U [,        ;   a  0 n
[.        [,        U       n[        U5      u  pUS/;  a   [0        UR3                  S05         nU(       a  XS4'   XS5'   S+U
S6'   U S7:X  d  U R9                  S85      (       a  [        5       nUR	                  U5        UnUS9:w  a  UR	                  [        U40 U
D65        U S::X  d  U R9                  S;5      (       a  UR;                  5       nX4$ U S<:X  at  [=        U5      u  pBUS=:X  a  US>U-   4$ UR?                  S05      (       a   [(        US?S@    n[@        RB                  " SBUSC-   5      nUR	                  [        U5      5      nX4$ U SD;   a  [        U5      u  pBURE                  SE5      n[G        U5       HO  u  nnUSF-  S:X  a4  [H        RJ                  " SGSHU5      nUR	                  [M        U5      5      nMC  [        UU5        MQ     X4$ U [N        ;   a%  UR	                  [        SI[N        U    -  S95      nX4$ U SJ;   aU  [Q        U5      u  pBUR9                  SK5      (       a  SL[S        US@SM 5      SN-  -  nUR	                  [        SIU-  S95      nX4$ U SO:X  a  [U        5       nUR	                  U5        X24$ U SP:X  a  [W        SQSPSR9nUR	                  U5        X24$ U SS:X  ad  [Y        U5      u  nnU(       a1  [        5       n[[        US+ST9n[        UU5        UR;                  5         O
[]        5       nUR	                  U5        X24$ U [^        ;   a  [^        U    n	U SU:X  aD  [Y        U5      u  nnS7S:SV.nUU;   a+  U	Ra                  5       n	UU   U	SW'   U	S==   SXUU   -   -  ss'   [c        Sm0 U	D6=nnU R9                  SY5      (       a%  [        [        S5      U[        S5      SYS9nSZUl2        UR	                  U5        UU4$ U S0:X  aF  [g        5       n[i        U5      nUR;                  5       R;                  5       R	                  U5        UU4$ U [j        ;   aH  [        [j        U    S
S9nU S[:X  a  UR                  S\S]5        [        US+S+S^9nUR	                  U5        X24$ U [l        ;   a1  [        [        [l        U    S   S+S9S+S
S_9nUR	                  U5        X24$ U S`:X  a  [        S+ST9nUR	                  U5        X24$ U [n        ;   a1  [        [        [n        U    S   5      S+ST9nUR	                  U5        X24$ U Sa:X  a  [        S+ST9nUR	                  U5        X24$ U Sb;   a  [Y        U5      u  nn[        [(        ScU S?S@ -      5      nU(       aE  [q        U5      n[        [        5       U5      n[s        U5      S?:X  a  US   nUR	                  U5        O[        U5      nUR	                  U5        X24$ U [t        ;   aT  [s        U5      S:  a  [7        SdU  Se35      e[t        U    Rw                  5        H  u  nnUR                  UU5        M     X4$ U R9                  Sf5      (       a#  [=        U5      u  nnUSg;   a  Un[y        XU Sh9nX4$ U Si:X  a  [{        X5      $ U Sj:X  a  [}        X5      $ [7        SkU  Sl35      e! [4         a    [7        S1U  S2U S335      ef = f! [4         a    [7        SAU S335      ef = f)nuJ  Process LaTeX command `name` followed by `string`.

Append result to `node`.
If needed, parse `string` for command argument.
Return new current node and remainder of `string`:

>>> handle_cmd('hbar', math(), r' rac')
(math(mi('ℏ')), ' \frac')
>>> handle_cmd('hspace', math(), r'{1ex} (x)')
(math(mspace(width='1ex')), ' (x)')

r   zcapital-greekr5   r_   )mathvariantr2   r   r1      ¯F)accentr3   r   r4   r   r   )r   r   u   ⁡rY   )lspacerspacer   )widthr   r8  0.333emr   )
boldsymbolpmbrW  )CLASScolonr   postfix0z0.28em)r7  rS  rT  idotsintz\int\dotsi\intzfont-weight: bold)stylez75%)mathsizez _^Tmovablelimits)rz   r|   r5  z()[]/|.ro   zUnsupported "\z" delimiter "r.  maxsizeminsize	symmetricr  l.r  rnotr   z{\not r   Nz"\not" cannot negate: "NFCu   ̸)rD  mboxtextrm$r   z(^[ 
]|[ 
]$)r   z%s)hspacer   muz%sem   phantomboxedbox)notationrY  sqrt)switchr   )rd  rf  numalignz
 numalign-r   r  r   r   z+1)rR  ru  )ru  rR  oversetunderset)
xleftarrowxrightarrowlongzDeclaration "\z#" must be first command in a group!limitsr2  )r|  beginendzUnknown LaTeX command "\z".r8   )?lettersr   greek_capitalssetr?  ordinary	functionsr+  r   r   r   modulo_functionsin_blockr   rN  r	   math_alphabetshandle_math_alphabetthick_operatorssmall_operators	operatorsr`  bigdelimitersdelimiter_sizesstretchablesr*  KeyErrorr   endswithr@  r!  r#  unicodedata	normalizesplit	enumerater  subr   spacesr(  floatr   r   r0  r   r   	fractionscopyr   r>  r   r
   accentsoverunderr   r:  layout_stylesitemsr<  begin_environmentend_environment)r:   rH  r  rJ  r@   binarynamedparenthesespaddingrL  delimiter_attributessize	delimiterrowpartsipartradix	indexnoder-  optargsr   entryaccent_node	subscriptbasesub_nodekvr  s                                 r;   r;  r;    s6
   & wgdm$>! LL/2{{8$|x
 {{2htn-.66y >! -V4KC#84H)D/*H;h30H[ Xr$x>H\!h85H[ h85H{{8$ fQiz1;;r(|,D|0@0F-;;r%HID<==??G{{601;;r#67D;;r%y)D;;vI67D(0*;;r#67D| $$l+H~#D77 w{{2c	#hOP|z&78|{{2od3;NOP|{{2od3eDE|y
= Vq	U0B*.J'''",Jw{{2io<<=|}!}T23.v6	I%3()9)9$)?@	 .2+.2+04 -6>T]]3//&CKKDKK9=(<=>7?dmmC00::<D|u}'#:V+++>>$DAB( ##E3x<8{{2c7#| ))(0		# 'GAt1uz vv/4@{{5;/ t, ( | v~{{6VD\(9:;|##'<<E#cr(OB./C{{6S12|y:Hw U':H
 v~"6*vIYt4HY.OOwHHyt_
7?'/NFF"1G '__.
)0
:&7#|gfo'EE#-*--4==!!BsGXr#wgFH!"HHV|t|u:

##H-f}w7 5=OOM40T$?Ht| DJqM$7 $U4Hy%Hu}"U4[^,T:Hz&H,,&v.	6)F48O,-!$'H'	:H8}!#A;OOH%T{HH}t9q=~dV 4* * + +!$'--/DAqHHQN 0|}}X"6*Y$;F)$DAD| w ..u}t,,
/vR8
99e  3/$ 8$$-;b!2 3 332  D#:3%r BCCDs   4h  h7 h47ic                 H  ^ 0 nU S:X  a  SUS'   [        U5      u  pBU S:X  aA  UR                  5       (       a,  [        U5      S:  a  UR                  [	        U5      5      nX4$ [        S0 UD6nUR                  U5        [        XT5        U R                  SS5      R                  SS5      n[        [        U0 5      mUR                  5        H  n[        U[        5      (       a,  SR                  U4S	 jUR                   5       5      Ul        MD  [        U[        5      (       d  M[  TR                  UR                  UR                  5      Ul        U S:X  d  M  UR                  R                  5       (       d  M  UR!                  S
S5        M     UR#                  5       U4$ )Nrh   r   rg   r   rd   rj   rk   r   c              3   F   >#    U  H  nTR                  X5      v   M     g 7fr7   )rE  )r9   r  a2chs     r;   r<   'handle_math_alphabet.<locals>.<genexpr>  s     "Kl488B#3#3ls   !rP  r_   r8   )r+  rA  r:  r?  r   r	   rN  replacegetattrr   iterr=  r   joinrD  rE  r  r@  )	r:   rH  r  rL  r@   	containerkeysubnoder  s	           @r;   r  r    sD   Jy'
7$V,KCxCKKMMc#hl{{2c7#|"z"IKK	Y$
,,y)
,
4
4\<
PC'b1D>>#gr""77"Kgll"KKGL$$88GLL',,?GLxGLL$8$8$:$:M84 $ ??f$$r  c                    U R                  5       nUS:X  a  UR                  SS5        O-US:X  d  [        USS5      [        ;   a  UR                  SS5        US:X  a}  [	        U[
        5      (       a  [        USS	06nO[	        U[        5      (       a  [        USS	06nOUS
;   d  US:X  a#  UR                  SS5      (       a  [        U5      nO[        U5      nO|US:X  av  [	        U[        5      (       a	  [        U6 nOX[	        U[        5      (       a	  [        U6 nO:US
;   d  US:X  a#  UR                  SS5      (       a  [        U5      nO[        U5      nU R                  W5        U$ )z)Append script or limit element to `node`.r|  r`  falserD  r   truer   ru  T)r|  r`  Nr   )popr  r  r`  r=  r   r   r   r   rE  r   r   r?  )rH  r'  r|  childrJ  s        r;   r<  r<    s2   HHJE		/7+
O
#UFB'=8		/6*CxeU##!566Ht$$3d3H332%))OT"B"Be}HE{H	
ceV$$!5)Ht$$H332%))OT"B"BU|HE{HKKOr  c                    [        U5      u  p!U[        ;   a  [        U   S   n0 nU(       aK  [        [        U5      5      nUS:X  a  [        [        USS95      nSUS'   SUS'   U R	                  U5        Un O!US:X  a  S	US
'   SUS'   SUS'   OUS:X  a  SUS'   [        5       nU R	                  [        [        U5      40 UD65        Un X4$ [        SU S35      e)Nr   r   z0.17em)rT  r  columnalignr   r   z0.02em
rowspacingrV  columnspacing1r   r   	ams-alignEnvironment "" not supported!)	r(  matricesr	   r   r?  r   r   r
   r   )rH  r  r:   left_delimiterrL  wrapperr  s          r;   r  r  $  s    V$LDx!$*
2n-.Gwr.BC,2
=)&-
7#KK D]"'/J|$*3J'(+J}%Y"-JwF3u:445 < -v-=>??r  c                 X   [        U5      u  p!U[        ;   a  U R                  5       R                  5       R                  5       n [        U   S   nU(       a-  U R                  [	        U5      5      n U R                  5       n X4$ US:X  a  U R                  5       n X4$ [        SU S35      e)Nr   r   r  r  )r(  r  r@  r?  r   r   )rH  r  r:   right_delimiters       r;   r  r  @  s    V$LDxzz|!!#))+"4.+;;r/23D::<D
 <	 W_::<D < -v-=>??r  c                 V    [        S U  5       5      nUS:X  a  g[        US-  S-   5      $ )Nc              3   f   #    U  H'  oR                  S 5      UR                  S5      -
  v   M)     g7fr3  z\&Ncountr9   r  s     r;   r<   'tex_equation_columns.<locals>.<genexpr>R  $     ADSyy~		% 00D   /1r   r   r   )r   int)rowstabss     r;   tex_equation_columnsr  Q  s.    ADAADqytAvz?r  c                     SSS.n[        S U  5       5      nU(       a?  SS/U-  nSS/U-  nS	R                  US US
-    5      US'   S	R                  US U 5      US'   U$ )Nr  T)r   r   c              3   f   #    U  H'  oR                  S 5      UR                  S5      -
  v   M)     g7fr  r  r  s     r;   r<   #align_attributes.<locals>.<genexpr>h  r  r  r  r  r\  r   r   r   r  r  )r   r  )r  attsr  alignsspacings        r;   align_attributesr  d  s|      "D ADAAD6"T),%!hhvgtAv7] #$ 8_Kr  c                 L   [        SS9nUnU(       ah  UR                  SS5        [        U 5      R                  S5      n[	        U5      S:  a-  [        5       nUR                  [        [        U5      SSS	95        [        X05        UR                  5         UR                  5       $ )
zpReturn string with MathML code corresponding to `tex_math`.

Set `as_block` to ``True`` for displayed formulas.
z"http://www.w3.org/1998/Math/MathML)xmlnsdisplayblockz\\r   r  T)rY  r   )r   r  r   r  r:  r   r?  r   r
   rN  
indent_xmltoxml)tex_mathas_block	math_treerH  r  s        r;   
tex2mathmlr  ~  s     ?@IDi)X&,,U3t9q=5DVCI[157 8T$??r  )r   )F)N__doc__r  r  docutils.utils.mathr   r   r   r   #docutils.utils.math.mathml_elementsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  update	mathalphamathordr  r  r  r  r  r  	mathfencer5  	mathcloser  mathbinmathrel	mathpunctmathopr  r  r`  r  r  r  r  rC  ra   r  r  r  r  r  r  r  r!  r(  r+  r0  rN  r;  r  r<  r  r  r  r  r  r8   r  r;   <module>r     sz    
 = =      5/ {$$ % 8hhx(	+ 	 
   A@A A -,,,  "**%,4 8 8	
 8 8 8 8 8 8 8 8 # ( #  (!" (#&   K)) *   K(( )   K)) *
. . .	
 . . . . .  (   H" X#$ X%& X'( X)* 7	: 
  $$ % 	  $$ % 	  && ' 	  ## $ 	     	4 ! %%##%%%%&&&&
& ( -,,,,,,	 !1 0 0 0 0		 !   	
 # +/B*/B*/B*/B	 #Q!N+K("N+.BBK(OQ+??
	 A
&"F
"6)>9b,QBDVq:x
%PB8"&
4r  