
    <i*                   V   d Z ddlmZ dZddlZddlZddlZddlZddlZddl	Z	ddl
mc mZ ddlmZ ddlZddlmZmZmZmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZmZm Z m!Z!m"Z" dZ#e#rddlm$Z$  G d dej%                  Z% G d dej&                  Z' G d dej(                  Z)dS )z-Common definitions for Docutils HTML writers.    )annotationsreStructuredTextN)Path)frontend	languagesnodesutilswriters) length_or_percentage_or_unitless)PIL)
writer_aux)latex2mathml	math2htmltex2mathml_externunichar2texwrap_math_code	MathErrorF)	Transformc                  $    e Zd ZdZ	 ddddgddifdd	gd
dej        dfddgddej        dfddgdej        dfddgddej        dfddgdddfdd gd!                                d"d#d$fd%d&gd'd(gd(d)d*d+fd,d-gg d.d/d)d$fd0d1gddej        dfd2d3gd4ddfd5d6gddej        dfd7d8gd9ddfd:d;gd<d=d>fd?d@gdAdBej        dCfdDdEgdFdej        dfdGdHgdIddfdJdKgdej        dLfffZ	dMdNiZ
dOZdPZdQZdRZd\ fdUZd]dWZd^dYZdZ Zd] fd[Z xZS )_Writer)htmlxhtmlzHTML Writer OptionsNzFSpecify the template file (UTF-8 encoded). (default: writer dependent)z
--templatemetavarz<file>zhComma separated list of stylesheet URLs. Overrides previous --stylesheet and --stylesheet-path settings.z--stylesheetz<URL[,URL,...]>stylesheet_path)r   	overrides	validatorzComma separated list of stylesheet paths. Relative paths are expanded if a matching file is found in the --stylesheet-dirs. With --link-stylesheet, the path is rewritten relative to the output HTML file. (default: writer dependent)z--stylesheet-pathz<file[,file,...]>
stylesheetzComma-separated list of directories where stylesheets are found. Used by --stylesheet-path when expanding relative path arguments. (default: writer dependent)z--stylesheet-dirsz<dir[,dir,...]>)r   r   zvEmbed the stylesheet(s) in the output HTML file.  The stylesheet files must be accessible during processing. (default)z--embed-stylesheetT
store_true)defaultactionr   z3Link to the stylesheet(s) in the output HTML file. z--link-stylesheetembed_stylesheetstore_false)destr    z}Specify the initial header level. Does not affect document title & subtitle (see --no-doc-title).(default: writer dependent).z--initial-header-levelz1 2 3 4 5 62z<level>)choicesr   r   zYFormat for footnote references: one of "superscript" or "brackets". (default: "brackets")z--footnote-referencessuperscriptbracketsz<format>trim_footnote_reference_space)r%   r   r   r   zyFormat for block quote attributions: one of "dash" (em-dash prefix), "parentheses"/"parens", or "none". (default: "dash")z--attributiondashparenthesesparensnoner*   zgRemove extra vertical whitespace between items of "simple" bullet lists and enumerated lists. (default)z--compact-listsz3Disable compact simple bullet and enumerated lists.z--no-compact-listscompact_listszORemove extra vertical whitespace between items of simple field lists. (default)z--compact-field-listsz#Disable compact simple field lists.z--no-compact-field-listscompact_field_listszClass value(s) assigned to all tables. Defined styles: borderless, booktabs, align-left, align-center, align-right, colwidths-auto, colwidths-grid.z--table-stylez<style> )r   r   zfMath output format (one of "MathML", "HTML", "MathJax", or "LaTeX") and option(s). (default: "MathML")z--math-outputz<format [option(s)]>MathML)r   r   r   zPrepend an XML declaration. z--xml-declarationFzOmit the XML declaration.z--no-xml-declarationxml_declarationzyObfuscate email addresses to confuse harvesters while still keeping email links usable with standards-compliant browsers.z--cloak-email-addresses)r    r   output_encoding_error_handlerxmlcharrefreplace)templatezhtml base writer)r
   zhtml writers)head_prefixheadr   body_prefixbody_pre_docinfodocinfobodybody_suffixtitlesubtitleheaderfootermetafragmenthtml_prolog	html_head
html_titlehtml_subtitle	html_bodyreturnlist[type[Transform]]c                `    t                                                      t          j        gz   S N)superget_transformsr   Admonitions)self	__class__s    /Users/kimhansen/Desktop/03 Workspace/ceo-agents/chl-effectiveness/mcp-servers/whoop/.venv/lib/python3.11/site-packages/docutils/writers/_html_base.pyrM   zWriter.get_transforms   s$    ww%%'':+A*BBB    Nonec           	         |                      | j                  x| _        }| j                            |           | j        D ]!}t          | |t          ||                     "|                                 | _        d S rK   )	translator_classdocumentvisitor	walkaboutvisitor_attributessetattrgetattrapply_templateoutput)rO   rW   attrs      rQ   	translatezWriter.translate   s|    !%!6!6t}!E!EEw(((+ 	8 	8DD$ 6 67777))++rR   strc                    t          | j        j        j                  }|                    d          }||                                 z  S )Nutf-8encoding)r   rV   settingsr5   	read_textinterpolation_dict)rO   template_pathr5   s      rQ   r\   zWriter.apply_template   sD    T]3<== **G*<<$113333rR   c                    i }| j         j        }| j        D ];}d                    t	          | |                                        d          ||<   <|j        |d<   t          j        |d<   |S )Nr0   
rd   version)	rV   re   rY   joinr[   rstripoutput_encodingdocutils__version__)rO   subsre   r^   s       rQ   rg   zWriter.interpolation_dict   sr    =)+ 	C 	CDt!4!455<<TBBDJJ#3Z".YrR   c                    t                                                       | j        D ]-}d                    t	          | |                    | j        |<   .d S Nr0   )rL   assemble_partsrY   rl   r[   parts)rO   partrP   s     rQ   rt   zWriter.assemble_parts   sZ       + 	< 	<D!wwwtT':':;;DJt	< 	<rR   )rH   rI   rH   rS   )rH   r`   )__name__
__module____qualname__	supportedr   validate_comma_separated_listvalidate_booleansplitvalidate_math_outputsettings_specsettings_defaultsrelative_path_settingsconfig_sectionconfig_section_dependenciesrY   rM   r_   r\   rg   rt   __classcell__rP   s   @rQ   r   r   -   s^       !I' 	(.h

!L
'6G >@ @
A
(
 
) >@ @
A( 
' >@ @	
AB
 l 13 3
4
 @
%
?
?
A) $
$#))++! !	
"."
#$j1j 79 9
: 
???5 5	
62
l 13 3
4
 @
 "m
<
<
>"
#l 13 3
4
 0%
&(M
B
B
D, 
B
/
/
1;
, 57 7
8
 )
| 13 3
4 &!
"$
>
>
@J$
%!0I
J
J
LgW	[
Mz 9:MN*'N"=C C C C C C, , , ,4 4 4 4
  < < < < < < < < < <rR   r   c                      e Zd ZdZdZdZdZdej         dZ	ddd	Z
d
ZdZ	 dZdZ ej        d          Z ej        d          ZdZ ed          d ed          d ed          d ed          d ed          diZ	 dZ	 d fdZd Z ej        d           fd!Zd" Zd# Zd$ Zdd(Zdd*Zd d0Zdd2Z dd5Z!dd6Z"dd7Z#ddd9Z$dd:Z%dd;Z&dd<Z'dd=Z(dd>Z)dd?Z*dd@Z+ddAZ,ddBZ-dddCZ.dDdEdEdFdGZ/ddHZ0ddIZ1ddJZ2ddKZ3ddLZ4ddMZ5ddNZ6ddOZ7ddQZ8dR Z9ddSZ:ddTZ;ddUZ<ddVZ=ddWZ>ddXZ?ddYZ@ddZZAdd[ZBdd\ZCdd]ZDdd^ZE ej        d_          jF        fd`ZGddaZHddbZIddcZJdddZKddeZLddfZMddgZNddhZOddiZPddjZQddkZRddlZSddmZTddnZUddoZVddpZWddqZXddrZYddsZZddtZ[dduZ\ddvZ]dddxZ^ddyZ_ddzZ`dd{Zadd|Zbdd}Zcdd~ZdddZeddZfddZgddZhddZiddZjddZkddZlddZmddZnddZoddZpddZqddZrddZsddZtddZuddZvddZwddZxddZyd ZzddZ{ddZ|ddZ}ddZ~ddZddZddZddZddZddZddZddZddZddZddZddZddZd ZddZddZddZdddgfdddgfdddgfddg fddddgfdZd ZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddÄZddĄZddńZddƄZddǄZddȄZddɄZdʄ Zdd˄Zdd̄Zdd̈́Zdd΄ZddτZddЄZddфZdd҄ZddӄZddԄZddՄZddքZddׄZdd؄ZddلZddڄZddۄZdd܄Zd݄ ZddބZdd߄ZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZd ZddZddZddZddZddZddZddZddZddZddZd Zۈ xZS (  HTMLTranslatoram  
    Generic Docutils to HTML translator.

    See the `html4css1` and `html5_polyglot` writers for full featured
    HTML translators.

    .. IMPORTANT::
      The `visit_*` and `depart_*` methods use a
      heterogeneous stack, `self.context`.
      When subclassing, make sure to be consistent in its use!

      Examples for robust coding:

      a) Override both `visit_*` and `depart_*` methods, don't call the
         parent functions.

      b) Extend both and unconditionally call the parent functions::

           def visit_example(self, node):
               if foo:
                   self.body.append('<div class="foo">')
               html4css1.HTMLTranslator.visit_example(self, node)

           def depart_example(self, node):
               html4css1.HTMLTranslator.depart_example(self, node)
               if foo:
                   self.body.append('</div>')

      c) Extend both, calling the parent functions under the same
         conditions::

           def visit_example(self, node):
               if foo:
                   self.body.append('<div class="foo">
')
               else: # call the parent method
                   _html_base.HTMLTranslator.visit_example(self, node)

           def depart_example(self, node):
               if foo:
                   self.body.append('</div>
')
               else: # call the parent method
                   _html_base.HTMLTranslator.depart_example(self, node)

      d) Extend one method (call the parent), but don't otherwise use the
         `self.context` stack::

           def depart_example(self, node):
               _html_base.HTMLTranslator.depart_example(self, node)
               if foo:
                   # implementation-specific code
                   # that does not use `self.context`
                   self.body.append('</div>
')

      This way, changes in stack use will not bite you.
    z<!DOCTYPE html>
zW<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="%(lang)s" lang="%(lang)s">
<head>
z<meta charset="%s" />
z)<meta name="generator" content="Docutils z': https://docutils.sourceforge.io/" />
divrV   )tagnameCLASSz2<script type="text/javascript" src="%s"></script>
z-file:/usr/share/javascript/mathjax/MathJax.jsz4<link rel="stylesheet" href="%s" type="text/css" />
z%<style type="text/css">

%s
</style>
z[^ \n]+| +|\nz.+\W\W.+|[-?].+lang&z&amp;<z&lt;"z&quot;>z&gt;@&#64;)z	video/mp4z
video/webmz	video/oggrH   rS   c                    t                                          |            j        }t          j        |j        |j                   _        t          |j	                   _	        d}t          |dd           )|j        rd}t          j        d| dt          d           t          |d|           _        t!           j        j        t$                    r(t'          j         j        j                   j        _         j        j        \   _         _        g  _        d	g _        g  _        d
g _        g  _        g  _        g  _        g  _        g  _        g  _        g  _          j!        g _"        g  _#        g  _$        g  _%         j&        g _'         fdtQ          j)        |          D              _*        g  _+        g  _,        |j-        r] j        .                    tQ          j-        |j/                              j#        .                    tQ          j-        d                     |j/        rE|j/        0                                dk    r( j'        1                    d j!        |j/        z             g  _2        	 d _3        g  _4        d _5        d _6        d _7        d _8        d _9        d _:        d _;        d _<        g  _=        g  _>        d S )Nlinkembed_imagesembedz`The configuration setting "embed_images"
  will be removed in Docutils 2.0. Use "image_loading: z".   )
stacklevelimage_loadingz</head>
<body>
z</body>
</html>
c                :    g | ]}                     |          S  )stylesheet_call).0pathrO   s     rQ   
<listcomp>z+HTMLTranslator.__init__.<locals>.<listcomp>P  s=     L L L#  //55 L L LrR   z%sunicoder   TF)?rL   __init__re   r   get_languagelanguage_codereporterlanguageintinitial_header_levelr[   r   warningswarnFutureWarningr   
isinstancemath_outputr`   r   r   math_optionsr;   r8   r9   r<   r:   r@   rB   r7   r6   r?   rG   content_typerD   rC   rF   rE   	generatorrA   r	   get_stylesheet_listr   r=   r>   r2   appendrn   lowerinsertcontextsection_levelcolspecs	compact_pcompact_simplecompact_field_list
in_docinfo
in_sidebarin_document_title	in_mailtoauthor_in_authorsmath_headermessages)rO   rV   re   _image_loading_defaultrP   s   `   rQ   r   zHTMLTranslator.__init__$  s!   """=!.$2H4EG G$'(E$F$F!!'8^T22>$ 1)0&M L1GL L L (A7 7 7 7 %X%46LN N dm/55 	G(0(E,0M,E)G )GDM% #m7				 	/0 "01	+,^$	L L L L','@'J'JL L L
# 	-##%h&>??A A A##%d++- - -$ 	N(..00I==IQ 1H4L LMMM 	
 #"'!"!&	 	rR   c                    d                     | j        | j        z   | j        z   | j        z   | j        z   | j        z   | j        z   | j        z             S rs   )	rl   r6   r7   r   r8   r9   r:   r;   r<   rO   s    rQ   astextzHTMLTranslator.astextv  sg    wwt'$)3)+/+;<./15> # &*%56 7 7 	7rR   z[
	]c                    |                      |                    d|                    }| j        r8| j        j        r,|                    dd          }|                    dd          }|S )z6Cleanse, HTML encode, and return attribute value text. %40z&#37;&#52;&#48;.z&#46;)encodesubr   re   cloak_email_addressesreplace)rO   text
whitespaceencodeds       rQ   attvalzHTMLTranslator.attval|  se     ++jnnS$7788> 	4dmA 	4ooe->??Gooc733GrR   c                Z    |                     dd          }|                     dd          S )z;Try to hide the link text of a email link from harversters.r   z<span>&#64;</span>r   z<span>&#46;</span>r   )rO   addrs     rQ   cloak_emailzHTMLTranslator.cloak_email  s-     ||G%9::||C!5666rR   c                .    |                     dd          S )z*Try to hide a mailto: URL from harvesters.r   r   r   )rO   uris     rQ   cloak_mailtozHTMLTranslator.cloak_mailto  s    
 {{3&&&rR   c                T    t          |          }|                    | j                  S )z-Encode special characters in `text` & return.)r`   r_   special_characters)rO   r   s     rQ   r   zHTMLTranslator.encode  s$    
 4yy~~d5666rR   nodenodes.imagedict[str, str]c                   d}i }|D ]#}||v rt          j        ||                   ||<   $d|v rKt          |          dk     r8|                     |          }|r!t	          ||          D ]\  }}||vr|df||<   |                    dd          dz  }i }g }	|                                D ]A\  }\  }}
||z  }|
r|	                    | d|d|
 d           .t          |           ||<   B|	rd		                    |	          |d
<   |S )a  Determine the image size from node arguments or the image file.

        Return as dictionary of <img> attributes,
        e.g., ``{height': '32', 'style': 'width: 4 em;'}``.

        Auxiliary method called from `self.visit_image()`.
        Provisional.
        widthheightscale   r0   d   : g;r   style)
r   parse_measurelenread_size_with_PILzipgetitemsr   roundrl   )rO   r   
dimensionsmeasures	dimensionimgsizevaluescaling_factor	size_attsdeclarationsunits              rQ   
image_sizezHTMLTranslator.image_size  sr    )
# 	K 	KID  &+&9$y/&J&J#d??s8}}q00--d33G :(+J(@(@ : :$Iu 00/4bk+ '3//#5	(0(8(8 	9 	9$I}t^#E 9##y$D$DE$D$DT$D$D$DEEEE*/,,'8	)$$ 	8!$,!7!7IgrR   tuple[int, int] | Nonec                ,   g }|d         }t           s|                    d           t          j        |          d         | j        v r|                    d           | j        j        s|                    d           |s	 |                     |          }t           j        	                    |          5 }|j
        }d d d            n# 1 swxY w Y   | j        j                            |           nF# t          t          t          f$ r,}|                    t!          |                     Y d }~nd }~ww xY w|rXdd| dg|}| j                            | j        j                            d	                    |          |
                     d S |S )Nr   z Requires Python Imaging Library.r   zPIL cannot read video images.z Reading external files disabled.zCannot scale image!zCould not get size from "z":z
  	base_node)r   r   	mimetypes
guess_type
videotypesre   file_insertion_enableduri2pathImageopensizerecord_dependenciesadd
ValueErrorOSErrorUnicodeEncodeErrorr`   r   rV   r   warningrl   )	rO   r   reading_problemsr   	imagepathimgr   errmsgs	            rQ   r   z!HTMLTranslator.read_size_with_PIL  s   
 5k 	H##$FGGG$$Q'4?::##$CDDD}3 	H##$FGGG 	AA MM#..	Y^^I.. '#!hG' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 155i@@@@ );< 2 2 2 ''C111111112  	(6s666&$&C M  !7!?!?%+[[%5%5 "@ "G "G H H H4s<   4C4 5C	=C4 	CC4 CC4 4D7"D22D7coder`   nodes.Elementattsdictc           	     N   ddd}|                                 D ]\  }}t          j        ||           	 t          j        |          }nc# t          j        $ rQ}| j                            | j        j        	                    d|d          d| |                     |cY d }~S d }~ww xY wd|v ri }	|
                    dd	                              d
          }
|d                             d
          }|
|z   D ]Y}|                                s|                    d          \  }}}|                                |	|                                <   Z|                    dd                    d |	                                 D                                  dD ]"}||v r|                    |||                    #d|v s|d         rs|
                    dd	                                          }||d         |
                    dg           z   z  }|                    dd                    |                     d|v rM|                    d|          7t          j        d          }|d         |_        |                    d|           t          j        |d          S )Nzhttp://www.w3.org/2000/svgzhttp://www.w3.org/1999/xlink)r0   xlinkzCannot parse SVG image "r   ":
  r   r   r0   r   :r   c              3  ,   K   | ]\  }}| d | dV  dS )r   r   Nr   )r   kvs      rQ   	<genexpr>z-HTMLTranslator.prepare_svg.<locals>.<genexpr>  sN       &L &L*.!Q *+llalll &L &L &L &L &L &LrR   r   classesclassaltr=   r   r   rc   )r   ETregister_namespace
fromstring
ParseErrorr   r   rV   r   errorr   r~   strip	partitionsetrl   findElementr   r   tostring)rO   r  r   r  svg_nskeyr   svgr  declaration_dictsvg_declarationsnode_declarationsdeclaration_r   r  	svg_titles                    rQ   prepare_svgzHTMLTranslator.prepare_svg  s   
 39; ; !,,.. 	. 	.JC!#u----	-%%CC} 	 	 	M  !7!=!=C4;CCcCC "> "  "  ! ! ! KKKKKK		 d??!"www3399#>> $W 3 3C 8 8/2CC > >"((**  + 5 5c : :Q05 --GGGSXX &L &L2B2H2H2J2J&L &L &L L L M M M, 	4 	4ID  	4	?333Ygggr**0022GtI)R)@)@@@GGGGSXXg..///D==SXXgv66>
7++I!%[INJJq)$$${33333s   A B+AB& B+&B+Nc                   |t          | j        j                  }| j        j        r	 t	          |                              d          }| j        j                            |           n@# t          $ r3}d| }| j	        j
                            |           d|z  cY d}~S d}~ww xY w| j        |z  S |rt          j        | j        j        |          }| j        |                     |          z  S )z8Return code to reference or embed stylesheet file `path`Nrb   rc   zCannot embed stylesheet: z<--- %s --->
)boolre   r   r!   r   rf   r  r  r  rV   r   r#  embedded_stylesheetr	   relative_pathoutput_pathstylesheet_linkr   )rO   r   adjust_pathcontentr  r  s         rQ   r   zHTMLTranslator.stylesheet_call  s   t}<==K=) 		6<t**...@@ 155d;;;;  . . .7#77&,,S111'#-------. +g55 	H&t}'@$GGD#dkk$&7&777s   #A, ,
B)6(B$B)$B)rj   Fc           
     ~   |                                 }g }i }|                                D ]\  }}	|	||                                 <   |                    dg           }
g }|                    dg           |                    dd                                          z   D ]h}|                    d          r$ |j        |                    d                     ;|                                r||
vr|
                    |           i|r|d         || j	        <   dt          |t          j                  rfd|
D             }
|
rd                    |
          |d<   d	|vsJ |                    d
g           }|                    |                    d
g                      |rl|d         |d	<   |dd         D ]V}|s1t          |t          j        t          j        t          j        f          r|                    d|z             N|d|z  z  }Wt#          |                                          }|g}|D ]\  }}	|	J t          |	t$                    r`d |	D             }|                    |                                 d|                     d                    |                    d           ~|                    |                                 d|                     t)          |	                    d           |rd}nd}d                    |           dd                    |           | d| S )z
        Construct and return a start tag given a node (id & class attributes
        are extracted), tag name, and optional attributes.
        r  r  r0   z	language-r   )colwidths-autocolwidths-givencolwidths-gridc                    g | ]}|v|	S r   r   )r   clsinternals     rQ   r   z+HTMLTranslator.starttag.<locals>.<listcomp>7  s#    EEEsH1D1Ds1D1D1DrR   r   idids   Nz<span id="%s"></span>c                ,    g | ]}t          |          S r   )r`   )r   r  s     rQ   r   z+HTMLTranslator.starttag.<locals>.<listcomp>U  s    000Q#a&&000rR   z="r   z /r   r   )r   r   popr   r~   
startswithr   removeprefixr$  lang_attributer   r   tablerl   extend
Sequentialr:   sortedlistr   r`   )rO   r   r   suffixempty
attributesprefixr  namer   r  r   rA  rD  rC  attlistru   valuesinfixrB  s                      @rQ   starttagzHTMLTranslator.starttag  s   
 --//'--// 	' 	'MT5!&D((9b))	88Ir**TXXgr-B-B-H-H-J-JJ 	$ 	$C~~k** $ 	 !1!1+!>!>???? $G!3!3s### 	5(1!D$%JdEK(( 	FEEEEgEEEG 	.HHW--DM4hhub!!

488E2&&''' 	;QDJ!""g ; ;  ;Jte.>.3m.3k.; < < ; MM"9B">???? 5::FF&&	" 
	D 
	DKD% $$$%&& D00%000$**,,,,*.++chhv6F6F*G*G*G*GI J J J J $**,,,,*.++c%jj*A*A*A*AC D D D D 	EEE''&//EECHHUOOEUEEVEEErR   c                &     | j         |||fddi|S )z1Construct and return an XML-compatible empty tag.rQ  T)rX  )rO   r   r   rP  rR  s        rQ   emptytagzHTMLTranslator.emptytaga  s%    t}T7FMM$M*MMMrR   c                
   t          |j        t          j        t          j        f          rd S | j        rN| j                            d          }| j        j        |d         k    r|	                    |            | j        Ld S d S )Nr   level)
r   parentr   system_messageentryr   rG  re   report_levelrX   )rO   r   messages      rQ   report_messageszHTMLTranslator.report_messagese  s    dkE$8%+#FGG 	Fm 	(m''**G})WW-===!!$''' m 	( 	( 	( 	( 	(rR   r   c                    d |D             }	 ||         }n# t           $ r Y dS w xY w|d                             |           dS )z
        Set class `class_` on the visible child no. index of `node`.
        Do nothing if node has fewer children than `index`.
        c                F    g | ]}t          |t          j                  |S r   r   r   	Invisible)r   ns     rQ   r   z5HTMLTranslator.set_class_on_child.<locals>.<listcomp>r  s)    JJJ!:a+I+IJAJJJrR   Nr  )
IndexErrorr   )rO   r   class_indexchildrenchilds         rQ   set_class_on_childz!HTMLTranslator.set_class_on_childm  si    
 KJtJJJ	UOEE 	 	 	FF	i'''''s    
%%c                    |                                 }|                     |          }| j        r!| j        j        r|                     |          }| j                            |           d S rK   )r   r   r   re   r   r   r;   r   )rO   r   r   r   s       rQ   
visit_TextzHTMLTranslator.visit_Texty  se    {{}}++d##> 	0dmA 	0&&w//G	!!!!!rR   c                    d S rK   r   rO   r   s     rQ   depart_TextzHTMLTranslator.depart_Text      rR   c                d    | j                             |                     |dd                     d S )Nabbrr0   r;   r   rX  rq  s     rQ   visit_abbreviationz!HTMLTranslator.visit_abbreviation  s.    	tVR8899999rR   c                :    | j                             d           d S )Nz</abbr>r;   r   rq  s     rQ   depart_abbreviationz"HTMLTranslator.depart_abbreviation      	#####rR   c                d    | j                             |                     |dd                     d S )Nacronymr0   rv  rq  s     rQ   visit_acronymzHTMLTranslator.visit_acronym  s.    	tY;;<<<<<rR   c                :    | j                             d           d S )Nz
</acronym>ry  rq  s     rQ   depart_acronymzHTMLTranslator.depart_acronym      	&&&&&rR   c                    |                      |dd           | j                            |                     |ddd                     d S )NaddressFrA   prer0   rP  r   )visit_docinfo_itemr;   r   rX  rq  s     rQ   visit_addresszHTMLTranslator.visit_address  sf    ie<<<	tU.0	 ' C C 	D 	D 	D 	D 	DrR   c                b    | j                             d           |                                  d S Nz
</pre>
)r;   r   depart_docinfo_itemrq  s     rQ   depart_addresszHTMLTranslator.depart_address  s0    	&&&  """""rR   c                h    | j                             |                     |ddg                     d S )Naside
admonitionr  rv  rq  s     rQ   visit_admonitionzHTMLTranslator.visit_admonition  s2    	tW|nMMNNNNNrR   c                :    | j                             d           d S N	</aside>
ry  rq  s     rQ   depart_admonitionz HTMLTranslator.depart_admonition  r  rR   )u   —r0   )())r0   r0   r)   c                    | j         | j        j                 \  }}| j                            |           | j                            |                     |d|d                     d S )Npattributionr   )attribution_formatsre   r  r   r   r;   rX  )rO   r   rS  rP  s       rQ   visit_attributionz HTMLTranslator.visit_attribution  sn    1$-2KLF###	MM$V=MAA	C 	C 	C 	C 	CrR   c                n    | j                             | j                                        dz              d S N</p>
r;   r   r   rG  rq  s     rQ   depart_attributionz!HTMLTranslator.depart_attribution  s1    	))++h677777rR   c                    t          |j        t          j                  s|                     |d           | j                            d           d S )Nauthorz<p>)r   r]  r   authorsr  r;   r   rq  s     rQ   visit_authorzHTMLTranslator.visit_author  sJ    $+u}55 	4##D(333	rR   c                    | j                             d           t          |j        t          j                  r| j                             d           d S |                                  d S )N</p>rj   )r;   r   r   r]  r   r  r  rq  s     rQ   depart_authorzHTMLTranslator.depart_author  sb    	   dk5=11 	'IT"""""$$&&&&&rR   c                2    |                      |d           d S )Nr  r  rq  s     rQ   visit_authorszHTMLTranslator.visit_authors  s    i00000rR   c                .    |                                   d S rK   r  rq  s     rQ   depart_authorszHTMLTranslator.depart_authors        """""rR   c                b    | j                             |                     |d                     d S )N
blockquoterv  rq  s     rQ   visit_block_quotez HTMLTranslator.visit_block_quote  s,    	t\::;;;;;rR   c                :    | j                             d           d S )Nz</blockquote>
ry  rq  s     rQ   depart_block_quotez!HTMLTranslator.depart_block_quote  s    	*+++++rR   r5  c                    t          | j                  }	 |                    |           dS # t          j        $ r Y dS w xY w)z7Check for a simple list that can be rendered compactly.TF)SimpleListCheckerrV   walkr   	NodeFound)rO   r   rW   s      rQ   check_simple_listz HTMLTranslator.check_simple_list  sU    #DM22	IIg 4  	 	 	55	s   - A A c                N   d|d         v rdS d|d         v rdS t          |t          j        t          j        f          r| j        j        sdS t          |t          j        t          j        f          r| j        j        sdS d|j	        d         v rdS | 
                    |          S )Ncompactr  Tr  Fcontents)r   r   
field_listdefinition_listre   r/   enumerated_listbullet_listr.   r]  r  rq  s     rQ   is_compactablezHTMLTranslator.is_compactable  s    Y''4T)_$$5te.0EFGG 	M5	5te3U5FGHH 	M/	5Y///4%%d+++rR   c                   i }| j         }| j                            | j         | j        f           d | _        |                     |          | _         | j         r|sd|d<   | j                             | j        |dfi |           d S )Nsimpler  ul)r   r   r   r   r  r;   rX  )rO   r   r  old_compact_simples       rQ   visit_bullet_listz HTMLTranslator.visit_bullet_list  s    !0T0$.ABBB"11$77 	%'9 	%$DM	tT::T::;;;;;rR   c                    | j                                         \  | _        | _        | j                            d           d S )Nz</ul>
)r   rG  r   r   r;   r   rq  s     rQ   depart_bullet_listz!HTMLTranslator.depart_bullet_list  s;    .2l.>.>.@.@+T^	#####rR   c                h    | j                             |                     |ddd                     d S )Nr  r0   captionr  rv  rq  s     rQ   visit_captionzHTMLTranslator.visit_caption  s2    	tS"IFFGGGGGrR   c                :    | j                             d           d S r  ry  rq  s     rQ   depart_captionzHTMLTranslator.depart_caption      	"""""rR   c                   t          |                                t          |                    s| j                            d           | j                            |                     |d|j        gd                     d S )Nz(<div role="list" class="citation-list">
r   zdoc-biblioentryr  role)r   previous_siblingtyper;   r   rX  r   rq  s     rQ   visit_citationzHTMLTranslator.visit_citation  s     $//114::>> 	JIHIII	tUT\N,= ' ? ? 	@ 	@ 	@ 	@ 	@rR   c                    | j                             d           t          |                    dd          t	          |                    s| j                             d           d S d S )N</div>
FTdescendsiblingsr;   r   r   	next_noder  rq  s     rQ   depart_citationzHTMLTranslator.depart_citation  sk    	$$$$...FFt**& & 	)IZ(((((	) 	)rR   c           
         d}d|v r||d         z  }nd|v r|| j         j        |d                  z  }| j                            |                     |dd|dgd                     d S )	N#refidrefnamea[zcitation-referencezdoc-biblioref)rP  hrefr  r  )rV   nameidsr;   r   rX  )rO   r   r  s      rQ   visit_citation_referencez'HTMLTranslator.visit_citation_reference  s    d??DM!DD$DM)$y/::D 		tS40D/E,; ' = = 	> 	> 	> 	> 	>rR   c                :    | j                             d           d S )Nz]</a>ry  rq  s     rQ   depart_citation_referencez(HTMLTranslator.depart_citation_reference      	!!!!!rR   c                h    | j                             |                     |ddd                     d S )Nspanr0   
classifierr  rv  rq  s     rQ   visit_classifierzHTMLTranslator.visit_classifier  s2    	tVR|LLMMMMMrR   c                d    | j                             d           |                     |           d S N</span>)r;   r   depart_termrq  s     rQ   depart_classifierz HTMLTranslator.depart_classifier!  s2    	###rR   c                    | j                             |           |j        j                            |j                            d                     d S )Nstub)r   r   r]  stubsrR  r   rq  s     rQ   visit_colspeczHTMLTranslator.visit_colspec%  sG    T"""  !4!4V!<!<=====rR   c           
     N   t          |                    dd          t          j                  rd S d|j        j        d         v s"d| j        j        vrd|j        j        d         vrd S | j                            | 	                    |d                     t          d	 | j        D                       }| j        D ]M}|                                |z  }| j                            |                     |d
d|d                     N| j                            d           d S )NFTr  r=  r  r?  r>  colgroupc              3  >   K   | ]}|                                 V  d S rK   )	propwidth)r   r   s     rQ   r  z0HTMLTranslator.depart_colspec.<locals>.<genexpr>4  s,      EEt$..**EEEEEErR   colwidth: z.1%)r   z</colgroup>
)r   r  r   colspecr]  re   table_styler;   r   rX  sumr   r  rZ  )rO   r   total_widthcolwidths       rQ   depart_colspeczHTMLTranslator.depart_colspec*  s@   dnnUTnBBm% % 	Ft{1)<<<DM$===!);I)FFFF	tZ88999EEt}EEEEEM 	L 	LD~~''+5HIT]]41I81I1I1I + K K L L L L	)))))rR   z-(?=-)c                    | j                             d |d|                                          z             t          j        )z%Escape double-dashes in comment text.z<!-- %s -->
z- )r;   r   r   r   SkipNode)rO   r   r   s      rQ   visit_commentzHTMLTranslator.visit_comment;  s;     		33tT[[]]+C+CCDDDnrR   c                f    | j                             |                     |dd                     d S )Nr   compoundr  rv  rq  s     rQ   visit_compoundzHTMLTranslator.visit_compoundB  s0    	tU*EEFFFFFrR   c                :    | j                             d           d S Nr  ry  rq  s     rQ   depart_compoundzHTMLTranslator.depart_compoundE      	$$$$$rR   c                f    | j                             |                     |dd                     d S )Nr   zdocutils containerr  rv  rq  s     rQ   visit_containerzHTMLTranslator.visit_containerH  sI    	tU-A ' C C 	D 	D 	D 	D 	DrR   c                :    | j                             d           d S r
  ry  rq  s     rQ   depart_containerzHTMLTranslator.depart_containerL  r  rR   c                6    |                      |dd           d S )NcontactFr  r  rq  s     rQ   visit_contactzHTMLTranslator.visit_contactO  #    ie<<<<<rR   c                .    |                                   d S rK   r  rq  s     rQ   depart_contactzHTMLTranslator.depart_contactR  r  rR   c                2    |                      |d           d S )N	copyrightr  rq  s     rQ   visit_copyrightzHTMLTranslator.visit_copyrightU  s    k22222rR   c                .    |                                   d S rK   r  rq  s     rQ   depart_copyrightzHTMLTranslator.depart_copyrightX  r  rR   c                2    |                      |d           d S )Ndater  rq  s     rQ   
visit_datezHTMLTranslator.visit_date[  s    f-----rR   c                .    |                                   d S rK   r  rq  s     rQ   depart_datezHTMLTranslator.depart_date^  r  rR   c                    d S rK   r   rq  s     rQ   visit_decorationzHTMLTranslator.visit_decorationa  rs  rR   c                    d S rK   r   rq  s     rQ   depart_decorationz HTMLTranslator.depart_decorationd  rs  rR   c                    d|j         j         d         vr1| j                            |                     |dd                     d S d S )Ndetailsr  ddr0   r]  r;   r   rX  rq  s     rQ   visit_definitionzHTMLTranslator.visit_definitiong  sK    DK.y999IT]]4r::;;;;; :9rR   c                f    d|j         j         d         vr| j                            d           d S d S )Nr&  r  </dd>
r]  r;   r   rq  s     rQ   depart_definitionz HTMLTranslator.depart_definitionk  s;    DK.y999IY''''' :9rR   c                   d|d         v r0| j                             |                     |d                     d S |                     |          rdgng }| j                             |                     |d|                     d S )Nr&  r  r   r  dlr  )r;   r   rX  r  rO   r   r  s      rQ   visit_definition_listz$HTMLTranslator.visit_definition_listo  s    Y''IT]]47788888$($7$7$=$=Exjj2GIT]]4w]GGHHHHHrR   c                    d|d         v r| j                             d           d S | j                             d           d S )Nr&  r  r  </dl>
ry  rq  s     rQ   depart_definition_listz%HTMLTranslator.depart_definition_listv  sI    Y''IZ(((((IY'''''rR   c                    d|j         d         v r?i }d|j         d         v rd|d<   | j                             | j        |dfi |           d S d S )Nr&  r  r  r(  rO   r   r  s      rQ   visit_definition_list_itemz)HTMLTranslator.visit_definition_list_item}  sn    I...DY///%VI]T]4CCdCCDDDDD	 /.rR   c                \    d|j         d         v r| j                            d           d S d S )Nr&  r  z</details>
r,  rq  s     rQ   depart_definition_list_itemz*HTMLTranslator.depart_definition_list_item  s8    I...I^,,,,, /.rR   c                d    | j                             |                     |dd                     d S )Nr'  r0   rv  rq  s     rQ   visit_descriptionz HTMLTranslator.visit_description  .    	tT26677777rR   c                :    | j                             d           d S Nr+  ry  rq  s     rQ   depart_descriptionz!HTMLTranslator.depart_description  r{  rR   c                   | j                             t          | j                             dg}|                     |          r|                    d           | j                            |                     |d|                     d S )Nr:   r  r/  r  )r   r   r   r;   r  rX  r0  s      rQ   visit_docinfozHTMLTranslator.visit_docinfo  s}    C	NN++++t$$ 	%NN8$$$	tT7CCDDDDDrR   c                    | j                             d           | j                                        }| j         |d          | _        g | _         d S Nr3  )r;   r   r   rG  r:   )rO   r   starts      rQ   depart_docinfozHTMLTranslator.depart_docinfo  sH    	###  ""y(			rR   Tc           	     Z   |rF| j                             d| d|                     |                                           d           | j                            d| d| j        j        |          d           | j                            |                     |dd|	                     d S )
Nz<meta name="z" content="z" />
z<dt class="">"<span class="colon">:</span></dt>
r'  r0   r  )rA   r   r   r   r;   r   labelsrX  )rO   r   rT  rA   s       rQ   r  z!HTMLTranslator.visit_docinfo_item  s     	MI LD L L)-T[[]])C)CL L L M M M	 ?t ? ?t}/CD/I ? ? ? 	@ 	@ 	@	tT2TBBCCCCCrR   c                :    | j                             d           d S r>  ry  r   s    rQ   r  z"HTMLTranslator.depart_docinfo_item  r{  rR   c           	     l    | j                             |                     |ddg d                     d S )Nr  r0   )r  pythondoctestrP  r  rv  rq  s     rQ   visit_doctest_blockz"HTMLTranslator.visit_doctest_block  sQ    	tU2/L/L/L ' N N 	O 	O 	O 	O 	OrR   c                :    | j                             d           d S r  ry  rq  s     rQ   depart_doctest_blockz#HTMLTranslator.depart_doctest_block  r  rR   c                    |                     d          p5t          j                            |                     d          pd          pd}| j                            d|                     |           d           d S )Nr=   sourcer0   zuntitled Docutils documentz<title>z	</title>
)r   osr   basenamer7   r   r   )rO   r   r=   s      rQ   visit_documentzHTMLTranslator.visit_document  s}    '"" 1G$$TXXh%7%7%=2>>10 	 		A4;;u#5#5AAABBBBBrR   c                   | j                             | j        | j        d| j        j        iz  g           | j                            | j                   | j        d d          | j	        z   | _	        dd
                    | j                  v r| j	                            d           | j        rJ| j        dk    r | j	                            | j                   n| j                            | j                   | j        j        rJ| j        j                                        dk    r(| j                            | j	        dd                     n| j                            | j	                   | j                             | j        |fi | j                   | j                            dd	| j        d
          d           | j                            | j                   | j                            | j        dd          | j        z   | j        z   | j        z   | j        d d         z              | j        rJ dt9          | j                               d S )Nr   zname="dcterms.r0   z=<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/>mathjaxr   rE  r   </r   z>
zlen(context) = )r6   rL  doctypehead_prefix_templatere   r   rC   r   rA   r7   rl   r   r   r   rn   r   rD   r8   rX  documenttag_argsr<   r   rB   r;   rG   r9   r:   r   r   rq  s     rQ   depart_documentzHTMLTranslator.depart_document  s`   !%!:"($-*E!F"G!H 	I 	I 	I 	---IaaaL49,	rwwty1111I C D D D 	99,,	  !12222&&t'7888M) 	--3355BBN!!$)ABB-0000N!!$),,,d L Ld6K L LMMM#M(=i(H#M#M#MNNNTY'''d.qrr2T5JJ $-/3y9 $ 0" 56 	7 	7 	7 <FF!F3t|3D3D!F!FFFFFFrR   c                d    | j                             |                     |dd                     d S )Nemr0   rv  rq  s     rQ   visit_emphasiszHTMLTranslator.visit_emphasis  r<  rR   c                :    | j                             d           d S )Nz</em>ry  rq  s     rQ   depart_emphasiszHTMLTranslator.depart_emphasis  r  rR   c                ~   dg i}t          |j        j        t          j                  r|d                             d           |j        j        j        j        |j        j                 r|d                             d           |d         rd}nd}|j        xj        dz  c_        d|v r|d         dz   |d<   d	|v r)|d	         dz   |d
<   |j        xj        |d	         z  c_        | j                             | j        ||dfi |           | j	                            d|
                                z             d S )Nr  r7   r  thtdrE  morerowsrowspanmorecolscolspanr0   </%s>
)r   r]  r   theadr   r  columnr;   rX  r   r   )rO   r   r  r   s       rQ   visit_entryzHTMLTranslator.visit_entry  sM   2dk(%+66 	+O""6***;$*4;+=> 	+O""6***	? 	GGGa":.2DO":.2DOK$z"22	tWbAADAABBBI788888rR   c                h    | j                             | j                                                   d S rK   r  rq  s     rQ   depart_entryzHTMLTranslator.depart_entry  ,    	))++,,,,,rR   c                $   dg i}d|v r|d         |d<   d|v r!|d                              |d                    |                     |          r|d                              d           | j                              | j        |dfi |           d S )Nr  rD  enumtyper  ol)r   r  r;   rX  r6  s      rQ   visit_enumerated_listz$HTMLTranslator.visit_enumerated_list  s    2d?? MDMO""4
#3444t$$ 	-O""8,,,	tT::T::;;;;;rR   c                :    | j                             d           d S )Nz</ol>
ry  rq  s     rQ   depart_enumerated_listz%HTMLTranslator.depart_enumerated_list  r{  rR   c                    i }|                     dg           }t          |          D ]o\  }}|                    d          rU	 t          |                    d          d          }n# t
          $ r Y  n$w xY wd|z  |d<   |                    |            np|                    d           |                     |          r|                    d           | j	                             | j
        |dfi |           d S )	Nr  zfield-indent-pxz--field-indent: %s;r   z
field-listr  r/  )
setdefault	enumeraterH  r   rI  r  rG  r   r  r;   rX  )rO   r   r  r  irA  indent_lengths          rQ   visit_field_listzHTMLTranslator.visit_field_list  s+   //)R00(( 		 		FAs~~o.. $D((994%A %AMM!   EE 5 EWA 	|$$$t$$ 	%NN8$$$	tT::T::;;;;;s   #A''
A54A5c                :    | j                             d           d S rC  ry  rq  s     rQ   depart_field_listz HTMLTranslator.depart_field_list  r{  rR   c                    |D ]=}t          |t          j                  r!|d                             |d                    >d S )NrD  )r   r   
field_namerL  )rO   r   rl  s      rQ   visit_fieldzHTMLTranslator.visit_field  sO      	1 	1E%!122 1e##DK000	1 	1rR   c                    d S rK   r   rq  s     rQ   depart_fieldzHTMLTranslator.depart_field  rs  rR   c           	     ~    | j                             |                     |dd|j        d                              d S )Ndtr0   r  r  )r;   r   rX  r]  rq  s     rQ   visit_field_namezHTMLTranslator.visit_field_name  sR    	tT2/3{9/E ' G G 	H 	H 	H 	H 	HrR   c                :    | j                             d           d S )NrH  ry  rq  s     rQ   depart_field_namez HTMLTranslator.depart_field_name  s    	>?????rR   c           	         | j                             |                     |dd|j        d                              |j        s| j                             d           d S d S )Nr'  r0   r  r  z<p></p>)r;   r   rX  r]  rk  rq  s     rQ   visit_field_bodyzHTMLTranslator.visit_field_body   sx    	tT2/3{9/E ' G G 	H 	H 	H } 	(IY'''''	( 	(rR   c                :    | j                             d           d S r>  ry  rq  s     rQ   depart_field_bodyz HTMLTranslator.depart_field_body'  r{  rR   c                    ddi}|                     d          rd|d         z  |d<   |                     d          r|dxx         d|d         z   z  cc<   | j                             | j        |dfi |           d S )	Nr  figurer   z	width: %sr   alignz align-r   )r   r;   r   rX  r6  s      rQ   visit_figurezHTMLTranslator.visit_figure*  s    "88G 	8'$w-7DM88G 	7MMMYg66MMM	tU;;d;;<<<<<rR   c                :    | j                             d           d S r
  ry  rq  s     rQ   depart_figurezHTMLTranslator.depart_figure2  r  rR   c                ^    | j                             t          | j                             d S rK   r   r   r   r;   rq  s     rQ   visit_footerzHTMLTranslator.visit_footer5  &    C	NN+++++rR   c                :   | j                                         }|                     |dd          dg}|                    | j        |d                     |                    d           | j                            |           || j        d d<   | j        |d = d S )Nr   r@   r  z<hr class="footer" />
z
</div>
r   )r   rG  rX  rL  r;   r   r@   r<   )rO   r   rD  r@   s       rQ   depart_footerzHTMLTranslator.depart_footer8  s      ""--e8-<<+-di'(((l###6"""%!IeffrR   c                (   | j         j        }t          |                                t	          |                    s| j                            d| d           | j                            |                     |d|j        |gd                     d S )Nz<aside class="footnote-list z">
r  zdoc-footnoter  )	re   footnote_referencesr   r  r  r;   r   rX  r   )rO   r   label_styles      rQ   visit_footnotezHTMLTranslator.visit_footnoteB  s     m7$//114::>> 	OIMKMMMNNN	tW04k/J,: ' < < 	= 	= 	= 	= 	=rR   c                    | j                             d           t          |                    dd          t	          |                    s| j                             d           d S d S )Nr  FTr  r  rq  s     rQ   depart_footnotezHTMLTranslator.depart_footnoteM  sk    	&&&$...FFt**& & 	+I\*****	+ 	+rR   c           
         d|d         z   }| j         j        g}| j                            |                     |dd|d|                     | j                            d           d S )Nr  r  r  r0   zdoc-noteref)rP  r  r  r  !<span class="fn-bracket">[</span>)re   r  r;   r   rX  )rO   r   r  r  s       rQ   visit_footnote_referencez'HTMLTranslator.visit_footnote_referenceS  s{    T']"=45	tSW,9 ' F F 	G 	G 	G	<=====rR   c                n    | j                             d           | j                             d           d S )Nz!<span class="fn-bracket">]</span></a>ry  rq  s     rQ   depart_footnote_referencez(HTMLTranslator.depart_footnote_referenceZ  s5    	<===	     rR   c                    d|d         v rc|                                                     d          }| j                            d|                     |          z             t
          j        d S )Nsectnumr      z <span class="sectnum">%s </span>)r   rm   r;   r   r   r   r  )rO   r   r  s      rQ   visit_generatedzHTMLTranslator.visit_generated_  so    Y''kkmm**400GI?#{{7334 5 5 5 .  ('rR   c                    d S rK   r   rq  s     rQ   depart_generatedzHTMLTranslator.depart_generatedh  rs  rR   c                ^    | j                             t          | j                             d S rK   r  rq  s     rQ   visit_headerzHTMLTranslator.visit_headerk  r  rR   c                T   | j                                         }|                     |dd          g}|                    | j        |d                     |                    d           | j                            |           | j                            |           | j        |d = d S )Nr   r?   r  z
<hr class="header"/>
</div>
)r   rG  rX  rL  r;   r   r8   r?   )rO   r   rD  r?   s       rQ   depart_headerzHTMLTranslator.depart_headern  s      ""--e8-<<=di'(((8999'''6"""IeffrR   c           	     &   |d         }|                     d|          }t          j        |          d         }d}|                     |          }d|v rd|d          g|d<   || j        v rdn| j        }|                     d	|          }|d
k    rd
|d	<   n7|dk    r0	 |                     |          }|dk    r$t          |                              d          }	n!t          |          	                                }	| j
        j                            |           |dk    r|                     |	||          }nt          j        |	                                          }
d| d|
 }nc# t"          t$          t&          f$ rI}| j                            | j        j                            d| d| |                     Y d }~nd }~ww xY wt3          |j        t6          j                  rCt3          |j        t6          j                  r't3          |j        j        t6          j                  sd}nd}|| j        v rZ||d<   d|d         v r |d                             d           d|d<    | j        |d|fd|i|d|d          d| d| z   d| z   }nE|dk    r ||d<    | j        |ddfd |i|| d!| z   }n|r||z  }n||d<    | j         |d"|fd|i|}| j!                            |           |r| "                    |           d S d S )#Nr   r  r   r0   r  zalign-r  r   loadinglazyr   zimage/svg+xmlrb   rc   zdata:z;base64,zCannot embed image "r  r   rj   r=   controlsvideosrcz	<a href="rG  r  z</video>zapplication/x-shockwave-flashr  objectdataz	</object>r  )#r   r   r   r   r   r   r  r   rf   
read_bytesre   r  r  r3  base64	b64encodedecoder  r  UnicodeErrorr   r   rV   r   r#  r   r]  r   TextElement	referenceremoverX  rZ  r;   rb  )rO   r   r   r  mimetypeelementr  r  r  	imagedatadata64r  rP  s                rQ   visit_imagezHTMLTranslator.visit_imagew  s   5khhuc""',,Q/t$$d??7W778DO %77&&T=O((9g..f$DOO= MM#..	.. $Y 9 97 9 K KII $Y : : < <I 155i@@@.."..y$EEGG#-i88??AAF<(<<F<<CC 6 N N N$$T]%;%A%A;3;;c;;t &B &M &M N N N N N N N NN 4;(9:: 	$+u77	t{153DEE	 FFFt&&DMT)_,,Y&&z222#-Z $t}T7FLLLtLLET%[EECEEVEEF,F,,-GG 888#DL$t}T8RJJcJTJJ22&223GG 	JvGGDK#dmD%IISIDIIG	!!! 	'  &&&&&	' 	's    A E, ,G?GGc                    d S rK   r   rq  s     rQ   depart_imagezHTMLTranslator.depart_image  rs  rR   c                d    | j                             |                     |dd                     d S )Nr  r0   rv  rq  s     rQ   visit_inlinezHTMLTranslator.visit_inline  .    	tVR8899999rR   c                :    | j                             d           d S r  ry  rq  s     rQ   depart_inlinezHTMLTranslator.depart_inline  r{  rR   c                0   | j                             d           | j                             d           | j        j        rS|j                            dg           }t          |          dk    r'| j                             d|d         z             d S d S d S )Nz<span class="label">r  backrefsrE  z"<a role="doc-backlink" href="#%s">r   )r;   r   re   footnote_backlinksr]  r   r   )rO   r   r  s      rQ   visit_labelzHTMLTranslator.visit_label  s    	/000	<====+ 	?{z266H8}}!!	   "02:1+"> ? ? ? ? ?	? 	?!!rR   c                   g }| j         j        r|j                            d|          }t	          |          dk    r| j                            d           | j                            d           t	          |          dk    rLd t          |d          D             }| j                            dd                    |          z             d S d S )Nr  rE  r  z)<span class="fn-bracket">]</span></span>
c                &    g | ]\  }}d |d|dS )z<a role="doc-backlink" href="#rG  r  r   )r   r|  refs      rQ   r   z/HTMLTranslator.depart_label.<locals>.<listcomp>  sC     A A A%a HKssAAAN A A ArR   z#<span class="backrefs">(%s)</span>
,)	re   r  r]  r   r   r;   r   r{  rl   )rO   r   r  	backlinkss       rQ   depart_labelzHTMLTranslator.depart_label  s    =+ 	={z8<<Hx==AIV$$$	EFFFx==1A A)28Q)?)?A A AIIC"xx	223 4 4 4 4 4 rR   c                f    | j                             |                     |dd                     d S )Nr   legendr  rv  rq  s     rQ   visit_legendzHTMLTranslator.visit_legend  s0    	tU(CCDDDDDrR   c                :    | j                             d           d S r
  ry  rq  s     rQ   depart_legendzHTMLTranslator.depart_legend  r  rR   c                    | j                             |                     |ddd                     t          |          s| j                             d           d S d S )Nr   r0   liner  z<br />)r;   r   rX  r   rq  s     rQ   
visit_linezHTMLTranslator.visit_line  s`    	tU2VLLMMM4yy 	'IX&&&&&	' 	'rR   c                :    | j                             d           d S r
  ry  rq  s     rQ   depart_linezHTMLTranslator.depart_line  r  rR   c                f    | j                             |                     |dd                     d S )Nr   z
line-blockr  rv  rq  s     rQ   visit_line_blockzHTMLTranslator.visit_line_block  s0    	tU,GGHHHHHrR   c                :    | j                             d           d S r
  ry  rq  s     rQ   depart_line_blockz HTMLTranslator.depart_line_block  r  rR   c                d    | j                             |                     |dd                     d S )Nlir0   rv  rq  s     rQ   visit_list_itemzHTMLTranslator.visit_list_item  r<  rR   c                :    | j                             d           d S )Nz</li>
ry  rq  s     rQ   depart_list_itemzHTMLTranslator.depart_list_item  r{  rR   c                ^   |d         }d|v rY|                     |                    d                     | j                            |                     |dd                     d S | j                            |                     |ddd                     |                                }t          |j        t          j	                  s|
                    dd          }| j                            |          D ]}|                                rK| j                            |          r1| j                            d	|                     |          z             a| j                            |                     |                     | j                            d
           t          j        )Nr  r  r0   r  zdocutils literalr  rj   r   z<span class="pre">%s</span>r  )rG  rj  r;   r   rX  r   r   r]  r   literal_blockr   words_and_spacesfindallr$  in_word_wrap_pointsearchr   r  )rO   r   r  r   tokens        rQ   visit_literalzHTMLTranslator.visit_literal  s   y/WKKf--...IT]]4<<===F	MM$2DMEE	G 	G 	G{{}}$+u':;; 	+<<c**D *22488 	5 	5E{{}} 5!8!?!?!F!F 5	  !>#';;u#5#5"6 7 7 7 7 	  U!3!34444	###nrR   c                :    | j                             d           d S )N</code>ry  rq  s     rQ   depart_literalzHTMLTranslator.depart_literal  s    	#####rR   c                    | j                             |                     |ddd                     d|d         v r| j                             d           d S d S )Nr  r0   zliteral-blockr  r  r  z<code>rv  rq  s     rQ   visit_literal_blockz"HTMLTranslator.visit_literal_block  s_    	tUBoNNOOOT)_$$IX&&&&& %$rR   c                    d|d         v r| j                             d           | j                             d           d S )Nr  r  r  z</pre>
ry  rq  s     rQ   depart_literal_blockz#HTMLTranslator.depart_literal_block  sC    T)_$$IY'''	$$$$$rR   r  formulattr  mathr0   problematic)r   latexrX  mathmlr  c           	         t          |t          j                  } j        }|                                                    t          j                  }|dk    rp j        r2 j	        s+ fd j        
                    d          D              _	        |t          j        _        t          ||          }t          j        |          }n|dk    r                     |          }n|dk    r j	        sc j        r j         _        n! j        j                            d|           d j        vr xj        d	z  c_         j         j        z  g _	        |rt          ||          }nd
| d}                     |          }n|dk    rd j        v r j         _         j        rt1          t2           j                  }nt4          j        }	  |||          }n# t8          t:          f$ r}t1          |dg           } j                              j        j        j        |g|R d|i                                |                                          } j         j!        dk    rd}nd}t          |t:                    r| _        Y d }~nd }~ww xY w j"        |         |         }|rdnd}	|rB j#                             $                    |||	 j"        |         d                               j#        %                    ||	g           |r  j#                            d| d|	            t          j&        )Nr   c                x    g | ]6}                     t          j        |j        j                  d           7S )T)r:  )r   r	   find_file_in_dirsre   stylesheet_dirs)r   srO   s     rQ   r   z-HTMLTranslator.visit_math.<locals>.<listcomp>1  s^     $; $; $;  (()@4=8*: *:GK ) M M$; $; $;rR   r  r  rX  zANo MathJax URL specified, using local fallback (see config.html).r   ?z?config=TeX-AMS_CHTMLz\(z\)r  zXHTML 1)as_blockr&  r   r   r  rj   r0   rN  rY  r   )'r   r   
math_blockr   r   r_   r   uni2tex_tabler   r   r~   r   DocumentParametersdisplaymoder   r   mathjax_urlrV   r   r
  mathjax_scriptr[  content_type_mathmlr   r[   r   r   
tex2mathmlr   r  r   r   re   r`  	math_tagsr;   rX  rL  SkipChildren)
rO   r   is_blockformat	math_code	converterr  r&  tagrP  s
   `         rQ   
visit_mathzHTMLTranslator.visit_math(  s   dE$455!KKMM++K,EFF	 V  ;)9 ;$; $; $; $; ".44S99$; $; $;  8@I(4&y(;;I!+I66IIwI..IIy  # L$ >'+'8D$$M*22-8< 3 > > >
 d...$$(??$$$($7$:J$J#K  0*9h??		/)///	I..IIxDL(($($<!  4#$5t7HII		(3	.%Ii(CCC		w' . . .!#y"55$$%CT]%;%C&3!&3 &3 &3-1&3 &3 4 4 4 KK66	=-22*FF$Fc7++ .'-D$. nV$X.!)r 	OIT]]4V37>&3I!3L + N N O O O	)V,--- 	2I0#0000111  s   G   J1BJJc                    d S rK   r   rq  s     rQ   depart_mathzHTMLTranslator.depart_matho  rs  rR   c                0    |                      |           d S rK   )r  rq  s     rQ   visit_math_blockzHTMLTranslator.visit_math_blockr  s    rR   c                0    |                      |           d S rK   )rb  rq  s     rQ   depart_math_blockz HTMLTranslator.depart_math_blocku  s    T"""""rR   c                x    | j                              | j        |dfi |                                           d S )NrA   )rA   r   rZ  non_default_attributesrq  s     rQ   
visit_metazHTMLTranslator.visit_metaz  s\    	tV H H)-)D)D)F)FH H 	I 	I 	I 	I 	IrR   c                    d S rK   r   rq  s     rQ   depart_metazHTMLTranslator.depart_meta~  rs  rR   c                h    | j                             |                     |ddd                     d S )Nr  r0   optionr  rv  rq  s     rQ   visit_optionzHTMLTranslator.visit_option  s2    	tVRxHHIIIIIrR   c                    | j                             d           t          |                    dd          t          j                  r| j                             d           d S d S )Nr  FTr  , )r;   r   r   r  r   r"  rq  s     rQ   depart_optionzHTMLTranslator.depart_option  sg    	###dnnUTnBBl$ $ 	#IT"""""	# 	#rR   c                    | j                             |                    dd                     | j                             |                     |dd                     d S )N	delimiterr   varr0   )r;   r   r   rX  rq  s     rQ   visit_option_argumentz$HTMLTranslator.visit_option_argument  sR    	+s33444	tUB7788888rR   c                :    | j                             d           d S )Nz</var>ry  rq  s     rQ   depart_option_argumentz%HTMLTranslator.depart_option_argument  r  rR   c                    | j                             |                     |dd                     | j                             d           d S )Nr  r0   z<kbd>rv  rq  s     rQ   visit_option_groupz!HTMLTranslator.visit_option_group  sD    	tT266777	!!!!!rR   c                :    | j                             d           d S )Nz</kbd></dt>
ry  rq  s     rQ   depart_option_groupz"HTMLTranslator.depart_option_group  s    	)))))rR   c                f    | j                             |                     |dd                     d S )Nr/  zoption-listr  rv  rq  s     rQ   visit_option_listz HTMLTranslator.visit_option_list  s;    	MM$MM::	< 	< 	< 	< 	<rR   c                :    | j                             d           d S rC  ry  rq  s     rQ   depart_option_listz!HTMLTranslator.depart_option_list  r{  rR   c                    d S rK   r   rq  s     rQ   visit_option_list_itemz%HTMLTranslator.visit_option_list_item  rs  rR   c                    d S rK   r   rq  s     rQ   depart_option_list_itemz&HTMLTranslator.depart_option_list_item  rs  rR   c                    d S rK   r   rq  s     rQ   visit_option_stringz"HTMLTranslator.visit_option_string  rs  rR   c                    d S rK   r   rq  s     rQ   depart_option_stringz#HTMLTranslator.depart_option_string  rs  rR   c                2    |                      |d           d S )Norganizationr  rq  s     rQ   visit_organizationz!HTMLTranslator.visit_organization  s    n55555rR   c                .    |                                   d S rK   r  rq  s     rQ   depart_organizationz"HTMLTranslator.depart_organization  r  rR   c                d    | j                             |                     |dd                     d S )Nr  r0   rv  rq  s     rQ   visit_paragraphzHTMLTranslator.visit_paragraph  s.    	tS"5566666rR   c                "   | j                             d           t          |j        t          j        t          j        f          rt          |j                  dk    s1| j                             d           |                     |           d S d S )Nr  rE  rj   )	r;   r   r   r]  r   	list_itemr_  r   rb  rq  s     rQ   depart_paragraphzHTMLTranslator.depart_paragraph  s    	   4;%+(FGG 	'%%**IT"""  &&&&& +*rR   c                B   |                     d          r>| j                            d|d         z             | j                            d           n| j                            d           | j                            |                     |ddd                     d S )Nr  z<a href="#%s">r  r0   r  r  r  )hasattrr;   r   r   rX  rq  s     rQ   visit_problematicz HTMLTranslator.visit_problematic  s    <<   	$I-W=>>>L''''L###	tVR}MMNNNNNrR   c                    | j                             d           | j                             | j                                                   d S r  r  rq  s     rQ   depart_problematicz!HTMLTranslator.depart_problematic  sB    	###	))++,,,,,rR   c                   d|                     dd                                          v rt          |j        t          j                  rd}nd}|d         r0| j                            |                     ||d                     | j                            |	                                           |d         r| j                            d|z             t          j
        )	Nr   r  r0   r  r   r  rP  z</%s>)r   r~   r   r]  r   r  r;   r   rX  r   r  )rO   r   r   s      rQ   	visit_rawzHTMLTranslator.visit_raw  s    TXXh++113333$+u'899   I J	  tWR!H!HIIIIT[[]]+++I 4	  7!2333nrR   c                   ddgi}d}d|v rs|d         |d<   | j         j        r@|d                             d          r%|                     |d                   |d<   d| _        |d                             d           n7d	|v s
J d
            d|d	         z   |d<   |d                             d           t          |          dk    r;t          |d         t          j	                  r|d                             d           t          |j
        t          j                  sd}| j                             | j        |d|fi |           d S )Nr  r  r0   refurir  zmailto:Texternalr  z3References must have "refuri" or "refid" attribute.r  rB  rE  r   zimage-referencerj   r  )re   r   rH  r   r   r   r   r   r   imager]  r  r;   rX  )rO   r   r  rP  s       rQ   visit_referencezHTMLTranslator.visit_reference  s\   K=)t>DL3 &L++I66&#00f>>V!%O"":....d???H #??g.DLO"":...t99>>ja%+>>>O""#4555$+u'899 	F	tS&AADAABBBBBrR   c                    | j                             d           t          |j        t          j                  s| j                             d           d| _        d S )Nr  rj   F)r;   r   r   r]  r   r  r   rq  s     rQ   depart_referencezHTMLTranslator.depart_reference  sP    	   $+u'899 	#IT"""rR   c                6    |                      |dd           d S )NrevisionFr  r  rq  s     rQ   visit_revisionzHTMLTranslator.visit_revision  s#    ju=====rR   c                .    |                                   d S rK   r  rq  s     rQ   depart_revisionzHTMLTranslator.depart_revision  r  rR   c                r    | j                             |                     |dd                     d|_        d S )Ntrr0   r   )r;   r   rX  rm  rq  s     rQ   	visit_rowzHTMLTranslator.visit_row  s3    	tT266777rR   c                :    | j                             d           d S )Nz</tr>
ry  rq  s     rQ   
depart_rowzHTMLTranslator.depart_row	  r{  rR   c                h    | j                             |                     |ddd                     d S )Nr  r0   rubricr  rv  rq  s     rQ   visit_rubriczHTMLTranslator.visit_rubric  s2    	tS"HEEFFFFFrR   c                :    | j                             d           d S r  ry  rq  s     rQ   depart_rubriczHTMLTranslator.depart_rubric  r  rR   c                    | xj         dz  c_         | j                            |                     |dd                     d S )NrE  r   sectionr  )r   r;   r   rX  rq  s     rQ   visit_sectionzHTMLTranslator.visit_section  sO    a	MM$YM77	9 	9 	9 	9 	9rR   c                Z    | xj         dz  c_         | j                            d           d S )NrE  r  )r   r;   r   rq  s     rQ   depart_sectionzHTMLTranslator.depart_section  s2    a	$$$$$rR   c                t    | j                             |                     |dd                     d| _        d S )Nr   sidebarr  T)r;   r   rX  r   rq  s     rQ   visit_sidebarzHTMLTranslator.visit_sidebar  s<    	MM$YM77	9 	9 	9rR   c                H    | j                             d           d| _        d S )Nr  F)r;   r   r   rq  s     rQ   depart_sidebarzHTMLTranslator.depart_sidebar!  s#    	$$$rR   c                6    |                      |dd           d S )NstatusFr  r  rq  s     rQ   visit_statuszHTMLTranslator.visit_status%  s#    hU;;;;;rR   c                .    |                                   d S rK   r  rq  s     rQ   depart_statuszHTMLTranslator.depart_status(  r  rR   c                d    | j                             |                     |dd                     d S )Nstrongr0   rv  rq  s     rQ   visit_strongzHTMLTranslator.visit_strong+  s.    	tXr::;;;;;rR   c                :    | j                             d           d S )Nz	</strong>ry  rq  s     rQ   depart_strongzHTMLTranslator.depart_strong.  s    	%%%%%rR   c                d    | j                             |                     |dd                     d S )Nr   r0   rv  rq  s     rQ   visit_subscriptzHTMLTranslator.visit_subscript1  .    	tUB7788888rR   c                :    | j                             d           d S )Nz</sub>ry  rq  s     rQ   depart_subscriptzHTMLTranslator.depart_subscript4  r  rR   c                    t           j        )zInternal only.r   r  rq  s     rQ   visit_substitution_definitionz,HTMLTranslator.visit_substitution_definition7  
    nrR   c                0    |                      |           d S rK   )unimplemented_visitrq  s     rQ   visit_substitution_referencez+HTMLTranslator.visit_substitution_reference;  s      &&&&&rR   c                p   t          |j        t          j                  rdg}nat          |j        t          j                  r dg}t          | j                  dz   | _        n"t          |j        t          j                  rdg}| j        	                    | 
                    |dd|                     d S )Nzsidebar-subtitler>   rE  zsection-subtitler  r0   r  )r   r]  r   rk  rV   r   r;   r   rf  r   rX  r0  s      rQ   visit_subtitlezHTMLTranslator.visit_subtitleB  s    dk5=11 	+)*GGU^44 	+!lG%(^^a%7D""U]33 	+)*G	tS"gFFGGGGGrR   c                L   | j                             d           t          |j        t          j                  rj| j         | j        d         | _        d| _        | j        	                    | j                    | j
        	                    | j                    | j         d d = d S d S )Nr  rZ  r   )r;   r   r   r]  r   rV   r   r>   r9   rL  rF   rq  s     rQ   depart_subtitlezHTMLTranslator.depart_subtitleL  s    	"""dk5>22 	 Id&<R&?@DM%&D"!((333%%di000	!!!	 	rR   c                d    | j                             |                     |dd                     d S )Nsupr0   rv  rq  s     rQ   visit_superscriptz HTMLTranslator.visit_superscriptU  r{  rR   c                :    | j                             d           d S )Nz</sup>ry  rq  s     rQ   depart_superscriptz!HTMLTranslator.depart_superscriptX  r  rR   c                ~   | j                             |                     |dd                     | j                             d           d}t          |d                   ri|d         }t          |          dk    rd|d	         z  }nBd}g }|D ]#}|                    d
|d|d           |dz  }$dd                    |          z  }|                    d          rd|d         z  }nd}| j                             d|d         d|d         d|                     |d                   d|d|d           d S )Nr  zsystem-messager  z <p class="system-message-title">r0   r  rE  z%; <em><a href="#%s">backlink</a></em>r   z
<a href="#rG  r  z; <em>backlinks: %s</em>r%  r  z	, line %szSystem Message: r  /r\  z! (<span class="docutils literal">rS  r  r  r  )r;   r   rX  r   rl   rH  r   )rO   r   backref_textr  r|  r  backrefr  s           rQ   visit_system_messagez#HTMLTranslator.visit_system_message[  s   	tW<LMMNNN	;<<<tJ   	8J'H8}}!! G"*1+!. 	'  G$$$www%JKKKFAA :"&))I"6"6!7<< 	f-DDD	 LLL$w--- KKX7777|||M 	N 	N 	N 	N 	NrR   c                :    | j                             d           d S r  ry  rq  s     rQ   depart_system_messagez$HTMLTranslator.depart_system_messageu  r  rR   c                \   d| j         j                            dd                                          i}d|v r$|d                             d|d         z             d|v r"|d         }|dd          dv r|d	z  }d
| d|d<    | j        |dfi |}| j                            |           d S )Nr  r  r   r  zalign-%sr   rZ  z0123456789.ry  r  r   r   rK  )re   r  r   r~   r   rX  r;   )rO   r   r  r   r  s        rQ   visit_tablezHTMLTranslator.visit_tablex  s    4=4<<S#FFLLNNOd??O"":W#=>>>d??MERSSz]**.e...DMdmD'22T22	rR   c                d    | j                             d           |                     |           d S )Nz	</table>
)r;   r   rb  rq  s     rQ   depart_tablezHTMLTranslator.depart_table  s2    	&&&T"""""rR   c                    d|vrUd|vrQd|vrM| j                             |                     |ddd                     | j                            d           d S | j                            d           d S )	NrP  r  r  r  r0   targetr  r  )r;   r   rX  r   rq  s     rQ   visit_targetzHTMLTranslator.visit_target  s    D  4''T))IT]]48]LLMMML	*****L#####rR   c                h    | j                             | j                                                   d S rK   r  rq  s     rQ   depart_targetzHTMLTranslator.depart_target  rq  rR   c                b    | j                             |                     |d                     d S )Ntbodyrv  rq  s     rQ   visit_tbodyzHTMLTranslator.visit_tbody  ,    	tW5566666rR   c                :    | j                             d           d S )Nz	</tbody>
ry  rq  s     rQ   depart_tbodyzHTMLTranslator.depart_tbody  r  rR   c           
     "   d|j         j         d         v r2| j                            |                     |dd                     d S | j                            |                     |dd|j         d         |j         d                              d S )	Nr&  r  summaryr0   rM  r  rD  )rP  r  rD  r(  rq  s     rQ   
visit_termzHTMLTranslator.visit_term  s    *9555IT]]42]FFGGGGG IT]]4b37;y3I/3{5/A + C C D D D D DrR   c                    |                     t          j        dd          rd S d|j        j        d         v r| j                            d           d S | j                            d           d S )NFTr  r&  r  z</summary>
z</dt>
)r  r   r  r]  r;   r   rq  s     rQ   r  zHTMLTranslator.depart_term  sq    >>%*ED>II 	F*9555I^,,,,,IY'''''rR   c                "    g | _         g |_        d S rK   )r   r  rq  s     rQ   visit_tgroupzHTMLTranslator.visit_tgroup  s    


rR   c                    d S rK   r   rq  s     rQ   depart_tgroupzHTMLTranslator.depart_tgroup  rs  rR   c                b    | j                             |                     |d                     d S )Nrl  rv  rq  s     rQ   visit_theadzHTMLTranslator.visit_thead  r  rR   c                :    | j                             d           d S )Nz	</thead>
ry  rq  s     rQ   depart_theadzHTMLTranslator.depart_thead  r  rR   c                J   i }| j         | j        z   dz
  }dt          |d          z  }|dk    r||d<    | j        ||dfi |}|                    d          rDi }d|d<   d	|d
<   d|d         z   |d<   | | j        t          j                    ddfi |z  }d|z  }nd|z  }||fS )NrE  zh%i   z
aria-levelr0   r  ztoc-backrefr  zdoc-backlinkr  r  r  r  z
</a></%s>
rk  )r   r   minrX  rH  r   r  )rO   r   r  h_levelr   	start_tag	close_tags          rQ   section_title_tagsz!HTMLTranslator.section_title_tags  s    $t'@@1D#gq//)Q;;!(D!DM$<<t<<	<<   	,D)DM)DLg.DLu'8'8#rJJTJJJI%/II!G+I)##rR   c                   d}t          |j        t          j                  rj| j                            |                     |ddd                     | j        j        r+d|j        d         v r| j                            d           d	}nt          |j        t          j	                  r3| j                            |                     |ddd
                     nbt          |j        t          j
                  r3| j                            |                     |ddd                     nt          |j        t          j                  r2| j                            |                     |dd                     d}nt          |j        t          j                  rM| j                            |                     |ddd                     d}t          | j                  | _        nSt          |j        t          j                  sJ |                     |          \  }}| j                            |           | j                            |           d S )Nr  r  r0   ztopic-titler  r  r  z*<a class="reference internal" href="#top">z	</a></p>
zsidebar-titlezadmonition-titler  z</caption>
h1r=   z</h1>
)r   r]  r   topicr;   r   rX  re   toc_backlinksrk  
AdmonitionrK  rV   r   r   rf  r  r   )rO   r   r  r  s       rQ   visit_titlezHTMLTranslator.visit_title  s.   	dk5;// 	(IdC=AAC C C+ )$+i"888	  !MNNN(	U]33 	(IdC?CCE E E EU%566 	(I--c25G-HHJ J J JU[11 	(IT]]4B??@@@&IIU^44 	(IT]]4r]IIJJJ!I%(^^D""dk5=99999#'#:#:4#@#@ IyIY'''I&&&&&rR   c                J   | j                             | j                                                   | j        rj| j         | j        d         | _        d| _        | j                            | j                    | j                            | j                    | j         d d = d S d S )NrZ  r   )	r;   r   r   rG  r   r=   r9   rL  rE   rq  s     rQ   depart_titlezHTMLTranslator.depart_title  s    	))++,,,! 	4#9"#<=DJ%&D"!((333O""49---	!!!	 	rR   c                d    | j                             |                     |dd                     d S )Nciter0   rv  rq  s     rQ   visit_title_referencez$HTMLTranslator.visit_title_reference  r  rR   c                :    | j                             d           d S )Nz</cite>ry  rq  s     rQ   depart_title_referencez%HTMLTranslator.depart_title_reference  r{  rR   c                f    | j                             |                     |dd                     d S )Nr   r  r  rv  rq  s     rQ   visit_topiczHTMLTranslator.visit_topic  s0    	tU'BBCCCCCrR   c                :    | j                             d           d S r
  ry  rq  s     rQ   depart_topiczHTMLTranslator.depart_topic  r  rR   c                f    | j                             |                     |dd                     d S )Nhrro   r  )r;   r   rZ  rq  s     rQ   visit_transitionzHTMLTranslator.visit_transition  s0    	tTDDEEEEErR   c                    d S rK   r   rq  s     rQ   depart_transitionz HTMLTranslator.depart_transition  rs  rR   c                6    |                      |dd           d S )Nrk   Fr  r  rq  s     rQ   visit_versionzHTMLTranslator.visit_version  r  rR   c                .    |                                   d S rK   r  rq  s     rQ   depart_versionzHTMLTranslator.depart_version
  r  rR   c                :    t          d|j        j        z            )Nz$visiting unimplemented node type: %s)NotImplementedErrorrP   rx   rq  s     rQ   r  z"HTMLTranslator.unimplemented_visit  s$    !"H$(N$;#< = = 	=rR   rw   )r   r   rH   r   )rH   r   )r  r`   r   r  r  r  rH   r`   rK   )rj   F)rj   )r   )rH   r5  )T)rx   ry   rz   __doc__r[  r\  r   ro   rp   r   r]  r  r
  r9  r6  recompiler  r  rJ  ordr   r   r   r   r   r   r   r   r   r   r3  r   rX  rZ  rb  rm  ro  rr  rw  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r   r"  r$  r)  r-  r1  r4  r7  r9  r;  r?  rA  rE  r  r  rO  rQ  rV  r^  ra  rc  rn  rp  ru  rw  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r#  r&  r*  r,  r.  r0  r2  r4  r6  r8  r:  r<  r?  rA  rC  rF  rI  rK  rN  rS  rU  rX  rZ  r]  r_  rb  rd  rg  ri  rl  rn  rq  rs  rv  rx  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   s   @rQ   r   r      s2       6 6p "GN,L	1H4H 	1 	1 	1  $):>> KNAK NOE!rz"233#$677N#c((G#c((F#c((H#c((F#c((G	 N9J<P P P P P Pd7 7 7 %"*^44   7 7 7' ' '7 7 7" " " "H   >*4 *4 *4 *4X8 8 8 8(@F @F @F @FDN N N N( ( ( (
( 
( 
( 
( 
(" " " "   : : : :$ $ $ $= = = =' ' ' 'D D D D
# # # #O O O O' ' ' ' ' $2*4%/#+- -
C C C C8 8 8 8       
' ' ' '1 1 1 1# # # #< < < <, , , ,   ", , ,&< < < <$ $ $ $H H H H# # # #@ @ @ @) ) ) )
> 
> 
> 
>" " " "N N N N   > > > >
* * * *$ %"*X..2   G G G G% % % %D D D D% % % %= = = =# # # #3 3 3 3# # # #. . . .# # # #      < < < <( ( ( (I I I I( ( ( (E E E E- - - -8 8 8 8$ $ $ $E E E E   D D D D D$ $ $ $O O O O' ' ' 'C C C CG G G G88 8 8 8" " " "9 9 9 9(- - - -< < < <$ $ $ $< < < <$$ $ $ $1 1 1 1   H H H H@ @ @ @( ( ( ($ $ $ $= = = =% % % %, , , ,   	= 	= 	= 	=+ + + +> > > >! ! ! !
! ! !   , , , ,   @' @' @' @'D   : : : :$ $ $ $? ? ? ?4 4 4 4E E E E% % % %' ' ' '
% % % %I I I I% % % %8 8 8 8$ $ $ $  0$ $ $ $' ' ' '
% % % % !%)51#UVH5r?!'0G H IE! E! E!N      # # # #
I I I I   J J J J# # # #9 9 9 9# # # #" " " "* * * *< < < <$ $ $ $            6 6 6 6# # # #$7 7 7 7' ' ' 'O O O O- - - -  C C C C*   > > > ># # # #   $ $ $ $G G G G# # # #9 9 9 9
% % % %
   
       < < < <# # # #< < < <& & & &9 9 9 9# # # #  ' ' ' 'H H H H   9 9 9 9# # # #N N N N4' ' ' '
 
 
 
# # # #$ $ $ $- - - -7 7 7 7' ' ' 'D D D D( ( ( (      7 7 7 7' ' ' '$ $ $&' ' ' '>   : : : :$ $ $ $D D D D% % % %F F F F   = = = =# # # #= = = = = = =rR   r   c                      e Zd ZdZd Zd Zd Zd
dZd ZeZ	eZ
eZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZ eZ!eZ"eZ#d	S )r  a  
    Raise `nodes.NodeFound` if non-simple list item is encountered.

    Here "simple" means a list item containing nothing other than a single
    paragraph, a simple list, or a paragraph followed by a simple list.

    This version also checks for simple field lists and docinfo.
    c                    t           j        rK   )r   r  rq  s     rQ   default_visitzSimpleListChecker.default_visit  s
    orR   c                    d S rK   r   rq  s     rQ   default_departurez#SimpleListChecker.default_departure   rs  rR   c                   d |j         D             }|rt          |d         t          j                  rtt          |d         t          j                  s@t          |d         t          j                  s t          |d         t          j                  r|                                 t          |          dk    rd S t          j	        )Nc                F    g | ]}t          |t          j                  |S r   re  )r   rl  s     rQ   r   z5SimpleListChecker.visit_list_item.<locals>.<listcomp>$  s8     ? ? ?e%eU_==?E ? ? ?rR   r   rZ  rE  )
rk  r   r   	paragraphr  r  r  rG  r   r  )rO   r   rk  s      rQ   r  z!SimpleListChecker.visit_list_item#  s    ? ?t} ? ? ? 	HQKAA 	HRL%*;<<	x|U-BCC	 x|U-=>>	 LLNNNx==AF/!rR   rH   rS   c                    d S rK   r   rq  s     rQ   	pass_nodezSimpleListChecker.pass_node0  rs  rR   c                    t           j        rK   r  rq  s     rQ   ignore_nodezSimpleListChecker.ignore_node3  r  rR   Nrw   )$rx   ry   rz   r  r  r  r  r  r  ro  rC  r  ru  rA  r  r  r  r  r  r  r?  rq  r  r1  r7  r  r  r)  r~  r  r  r  r  r  r  visit_pendingr   rR   rQ   r  r    s            " " "     
 J!O "%M L#M#MM!OJ$L#M &!*J & !K&"  M$/!LMMMrR   r  )*r  
__future__r   __docformat__r  r   rT  os.pathr  r   xml.etree.ElementTreeetreeElementTreer  pathlibr   ro   r   r   r   r	   r
   docutils.parsers.rst.directivesr   &docutils.parsers.rst.directives.imagesr   docutils.transformsr   docutils.utils.mathr   r   r   r   r   r   TYPE_CHECKINGr   r   DoctreeTranslatorr   GenericNodeVisitorr  r   rR   rQ   <module>r     s   " 4 3 " " " " " ""      				  				  " " " " " " " " "        ? ? ? ? ? ? ? ? ? ? ? ? ? ? L L L L L L 6 6 6 6 6 6 * * * * * *I I I I I I I I I I I I I I I I  .------K< K< K< K< K<W^ K< K< K<\T= T= T= T= T=W. T= T= T=n2K  K  K  K  K 0 K  K  K  K  K rR   