
    7 f                       d Z ddlmZ ddlZddlZddlmZmZ ddlm	Z	 ddl
mZmZmZ ddlmZmZ ddlmZmZ dd	lmZ dd
lmZ ddl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# erddl$m%Z%m&Z&m'Z' ddl(m)Z) ddl*m+Z+  ej,        e-          Z.dZ/dez   dz   Z0d$dZ1d%d&dZ2 G d  d!ej3                  Z4 G d" d#e          Z5dS )'z#Custom docutils writer for Texinfo.    )annotationsN)IterableIterator)path)TYPE_CHECKINGAnycast)nodeswriters)__display_version__addnodes)IndexDomain)ExtensionError)___admonitionlabels)logging)SphinxTranslator)format_date)collected_footnote)ElementNodeText)TexinfoBuilder)
IndexEntryzn@quotation
%(project)s %(release)s, %(date)s

%(author)s

Copyright @copyright{} %(copyright)s
@end quotation
z\input texinfo   @c -*-texinfo-*-
@c %%**start of header
@setfilename %(filename)s
@documentencoding UTF-8
@ifinfo
@*Generated by Sphinx a  .@*
@end ifinfo
@settitle %(title)s
@defindex ge
@paragraphindent %(paragraphindent)s
@exampleindent %(exampleindent)s
@finalout
%(direntry)s
@c %%**end of header

@copying
%(copying)s
@end copying

@titlepage
@title %(title)s
@insertcopying
@end titlepage
@contents

@c %%** start of user preamble
%(preamble)s
@c %%** end of user preamble

@ifnottex
@node Top
@top %(title)s
@insertcopying
@end ifnottex

@c %%**start of body
%(body)s
@c %%**end of body
@bye
sectionr   returnlist[nodes.section]c                    g }| D ]n}t          |t          j                  r|                    |           2t          |t          j                  r"|                    t          |                     o|S )z7Return a list of subsections for the given ``section``.)
isinstancer
   r   appendr   extendfind_subsections)r   resultchilds      L/var/www/equiseq/venv/lib/python3.11/site-packages/sphinx/writers/texinfo.pyr#   r#   U   st    F 3 3eU]++ 	MM%   eU]++ 	3MM*511222M    sstrsep
str | Nonec                    |                      |          }t          |          D ]5\  }}t          d |D                       r|                                ||<   6|pd                    |          S )z_Like string.capwords() but does not capitalize words that already
    contain a capital letter.c              3  >   K   | ]}|                                 V  d S N)islower).0xs     r&   	<genexpr>z!smart_capwords.<locals>.<genexpr>f   s*      ))qqyy{{))))))r'    )split	enumerateall
capitalizejoin)r(   r*   wordsiwords        r&   smart_capwordsr<   a   sy     GGCLLEU## ) )4))D))))) 	)((E!HJ3U###r'   c            	           e Zd ZU dZdZddddgddifd	d
gddifddgddifddgddifffZded<   i Zded<   ded<   dZd fdZ	ddZ
 xZS )TexinfoWriterz0Texinfo writer for generating Texinfo documents.)texinfotexizTexinfo Specific OptionsNzName of the Info filez--texinfo-filenamedefault z	Dir entryz--texinfo-dir-entryDescriptionz--texinfo-dir-descriptionCategoryz--texinfo-dir-categoryMiscellaneouszBtuple[str, Any, tuple[tuple[str, list[str], dict[str, str]], ...]]settings_speczdict[str, Any]settings_defaultsr)   output)rH   fragmentbuilderr   r   Nonec                V    t                                                       || _        d S r.   )super__init__rJ   )selfrJ   	__class__s     r&   rN   zTexinfoWriter.__init__}   s$    r'   c           	     F   | j                             | j        | j                   }t          t          |          | _        | j                            |           | j                                         | j        D ]&}t          | |t          | j        |                     'd S r.   )rJ   create_translatordocumentr	   TexinfoTranslatorvisitor	walkaboutfinishvisitor_attributessetattrgetattr)rO   rU   attrs      r&   	translatezTexinfoWriter.translate   s    ,00MM-w77(((+ 	= 	=DD$d ; ;<<<<	= 	=r'   )rJ   r   r   rK   r   rK   )__name__
__module____qualname____doc__	supportedrF   __annotations__rG   rX   rN   r\   __classcell__rP   s   @r&   r>   r>   k   s         ::#I 	#D$';&<y"oN01Ir?C89Ir?K23i6E6G H	+IYJM J J J J )+****KKK/     = = = = = = = =r'   r>   c                  	    e Zd ZU dZded<   dddddddddddddZd fdZddZddZddZ	ddZ
ddZddZddZddZddZddZddZ ej        d          fdd"Zdd#Zd	d%Zdd&Zd
d*Zdd,Zdd.Zdd/Zdd0Zdd1Zdd3Zdd4Zdd5Z dd6Z!d7Z"d8Z#dd9Z$dd:Z%dd;Z&dd<Z'dd=Z(dd>Z)dd?Z*dd@Z+ddAZ,ddBZ-ddCZ.ddDZ/ddEZ0ddFZ1ddGZ2ddHZ3ddJZ4ddKZ5e4Z6e5Z7ddLZ8ddMZ9ddNZ:ddOZ;ddPZ<ddQZ=ddRZ>ddSZ?ddUZ@ddVZAddWZBddXZCddYZDddZZEdd[ZFdd\ZGdd]ZHdd^ZIdd_ZJdd`ZKddaZLddbZMddcZNdddZOddeZPddfZQddgZRddhZSddiZTddjZUddkZVddlZWddmZXddnZYddoZZddpZ[ddqZ\ddrZ]ddsZ^ddtZ_dduZ`ddvZaddwZbddxZcddyZdddzZedd{Zfdd|Zgdd}Zhdd~ZiddZjddZkddZlddZmddZnddZoddZpddZqddZrddZsddZtddZuddZvddZwddZxddZyddZzddZ{ddZ|ddZ}ddZ~ddZddZddZddZddZddZdddZddZddZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddÄZddĄZddńZddƄZÐddǄZĐddȄZŐddɄZƐddʄZǐdd˄ZȐdd̄Zɐdd̈́Zʐdd΄ZːddτZ̐ddЄZ͐ddфZΐdd҄ZϐddӄZАddԄZѐddՄZҐddׄZӐdd؄ZԐddلZՐddڄZ֐ddۄZאdd܄Zؐdd݄ZِddބZڐdd߄ZېddZܐddZݐddZސddZߐddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZdd ZddZddZ xZS (  rT   Fr   rJ   rB      r   )authorbodycopyingdatedirentryexampleindentfilenameparagraphindentpreambleprojectreleasetitlerS   nodes.documentr   rK   c                   t                                          ||           |                                  t                      | _        t                      | _        g | _        i | _        i | _        i | _	        i | _
        |                                  |                                  |                                  |                                  g | _        g | _        g | _        d | _        d| _        d| _        t                      | _        d| _        d| _        g | _        g | _        d| _        d| _        t                      | _        g | _        d S )Nr   F)rM   rN   init_settingssetwritten_idsreferenced_idsindices	short_ids
node_names
node_menusrellinkscollect_indicescollect_node_namescollect_node_menuscollect_rellinksri   contextdescsprevious_sectionsection_level
seen_titlenext_section_idsescape_newlinesescape_hyphenscurfilestackfootnotestackin_footnotein_samphandled_abbrs	colwidths)rO   rS   rJ   rP   s      r&   rN   zTexinfoTranslator.__init__   s0   7+++%(UU(+.0)+*,02.0!!!!!!!	"$*,
6:*-%% ')OQ'*uu$&r'   c                |   | j         |                     d           | j        D ]c}|\  }}t          |g| j        |         z             }| j                            d|z             | j                            d| d| d           d| j        rW| j                                        }|| j	        vr.| j                            d
                    |d                     | j        W|                                  d                    | j                  | _        | j        | j        d	<   t          | j        z  | _        d S )
NTop
@node %s,%s,%s,%s
z@unnumbered 


z@anchor{{{}}}@w{{{}}}
z                              rB   ri   )r   add_menurz   tupler~   ri   r!   ry   poprx   format
ensure_eolr8   rI   elementsTEMPLATErH   )rO   indexnamecontentpointersrs         r&   rW   zTexinfoTranslator.finish   sG    (MM%   \ 	C 	CE!MD'dVdmD&99::HI4x?@@@IADAAgAAABBBB! 	P#''))A(((	  !:!A!A!X!N!NOOO	 ! 	P
 		** $f.r'   c                   | j                                         x}| _        |                    | j        j        | j        j        | j        j        |                     | j	        j
                  |                     | j	        j                  |                     | j	        j                  |                     | j	        j        p3t          | j	        j        pt!          d          | j	        j                            d           | j        j        }|s<| j                            t(          j                  }|r|                                nd}|                     |          pd|d<   |d         sT| j                            d          pd|d<   |d         d	d          d
v r|d         d d	         |d<   |dxx         dz  cc<   | j        j        r|                     |                     | j        j                  d|d         z  |                     | j        j                            }d|                     | j        j                  d|d|d<   t<          |z  |d<   |                    | j        j                   d S )Nz	%b %d, %Y)language)rs   rh   rn   rr   rq   	copyrightrk   
<untitled>rs   rn   sourceuntitled)z.txtz.rstz.infoz(%s)z@dircategory z
@direntry
z@end direntry
rl   rj   ) default_elementscopyr   updatesettingsrs   rh   texinfo_filenameescapeconfigrr   rq   r   todayr   	today_fmtr   r   rS   	next_noder
   astext	escape_idgettexinfo_dir_entryformat_menu_entryescape_menu
escape_argtexinfo_dir_descriptiontexinfo_dir_categoryCOPYINGtexinfo_elements)rO   r   rs   
title_nodeentrys        r&   rv   zTexinfoTranslator.init_settings   sw   #'#8#=#=#?#??4=](m*6{{4;#677{{4;#677T[%:;;KK 1 !K +DK,A,SQ{^^59[5I!K !K !KL L
 
 	 	 	 ]( 	H00==J+5GJ%%'''<E NN511A\
# 	,#'=#4#4X#>#>#L*HZ 
#BCC(,<<<'/
';CRC'@$Z   G+   =* 		K**  !@AA*-- EFFH HEE t}ABBBBEEE	$KHZ 
 &0677777r'   c                    d fdd j         d<    d            d           fd j        D              _         j                             t          j                  D ]_}t          t          j        |                    t          j                            }|r|	                                nd	} |          |d<   `d
S )zeGenerates a unique id for each section.

        Assigns the attribute ``node_name`` to each section.r   r)   r   c                                        |           }d\  }}||z   j        v s||z   j        v r"|dz  }d|z  }||z   j        v ||z   j        v "||z  }j                            |           | j        |<   |S )N)   rB   r   z<%s>)r   rx   r|   add)r   node_idnthsuffixrO   s       r&   add_node_namez;TexinfoTranslator.collect_node_names.<locals>.add_node_name  s    nnT**GKCF"d&666f$77q# F"d&666f$77 vG  )))'+DOG$Nr'   r   	node_nametopc                0    g | ]\  }} |          |fS  r   )r0   r   r   r   s      r&   
<listcomp>z8TexinfoTranslator.collect_node_names.<locals>.<listcomp>  s<     ; ; ;)D' 't,,g6 ; ; ;r'   r   N)r   r)   r   r)   )
rS   rz   findallr
   r   r	   TextElementr   Titularr   )rO   r   rs   r   r   s   `   @r&   r   z$TexinfoTranslator.collect_node_names   s    

	 
	 
	 
	 
	 
	 &+k"ee; ; ; ;-1\; ; ; },,U];; 	7 	7G*G,=,=em,L,LMME%*<5<<>>>D#0=#6#6GK  	7 	7r'   c                   | j         }| j        g}|                    | j                            t          j                             |D ]4}d|v r|d         sJ d t          |          D             }|||d         <   5| j                            t          j                  }|r|j	        n| j        }t          |t          j        t          j        f          s| j        }|| j        ur4||d                  }||d         dd         z  }||d<   ||d         = d|d<   | j        D ]%\  }}g ||<   |d                             |           &dS )z1Collect the menu entries for each "node" section.r   c                    g | ]
}|d          S )r   r   )r0   r(   s     r&   r   z8TexinfoTranslator.collect_node_menus.<locals>.<listcomp>$  s    FFF!q~FFFr'   r   r   N)r}   rS   r"   r   r
   r   r#   r   rs   parentr    rz   r!   )	rO   r}   targetsnodeentriesrs   r   r   _contents	            r&   r   z$TexinfoTranslator.collect_node_menus  ss   _
"&-t},,U];;<<< 	4 	4D$&&4+<&&<FF/?/E/EFFFG,3JtK())''44#6ell#>?? 	 -Cdm## [!12Gz%(,,G 'Ju3{+,$C"l 	+ 	+ND(!Jtu$$T****	+ 	+r'   c                   | j         }| j        }|D ]	}g d||<   
|                                D ]\  }}|D ]}|||         d<   |                                D ]^\  }}t          |          D ]I\  }}|dk    r||dz
           ||         d<   |t	          |          dz
  k    r||dz            ||         d<   J_	 |d         d         }||d         d<   d||         d<   dS # t
          $ r Y dS w xY w)z@Collect the relative links (next, previous, up) for each "node".)rB   rB   rB      r   r   r   N)r~   r}   itemsr5   len
IndexError)rO   r~   r}   idr   er:   firsts           r&   r   z"TexinfoTranslator.collect_rellinks6  sW   =_
 	( 	(B'<<HRLL%++-- 	$ 	$KB $ $!#A$ &++-- 	5 	5KB"7++ 5 5266&-a!enHRLOGq(((&-a!enHRLO5	'u%a(E "'HUOA!&HUOA	  	 	 	DD	s   9C 
C-,C-r(   r)   c                    |                     dd          }|                     dd          }|                     dd          }|                     dd          }|                     d	d
          }|S )z8Return a string with Texinfo command characters escaped.@z@@{z@{}z@}z``z`@w{`}z''z'@w{'})replacerO   r(   s     r&   r   zTexinfoTranslator.escapeW  sf    IIc4  IIc4  IIc4  IIdH%%IIdH%%r'   c                    |                      |          }|                    dd          }d                    |                                                                          }|S )zVReturn an escaped string suitable for use as an argument
        to a Texinfo command.,z@comma{}r3   )r   r   r8   r4   stripr   s     r&   r   zTexinfoTranslator.escape_arga  sP     KKNNIIc:&&HHQWWYY%%''r'   c                .   d}|D ]}|                     |d          }t          j        d|          r|                     dd          }d                    |                                                                          }|                     |          S )z=Return an escaped string suitable for node names and anchors.z,:()r3   z[^ .].)r   researchr8   r4   r   r   )rO   r(   	bad_charsbcs       r&   r   zTexinfoTranslator.escape_idk  s    	 	# 	#B		"c""AA9Wa   	$		#s##AHHQWWYY%%''{{1~~r'   c                    |                      |          }|                    dd          }d                    |                                                                          }|S )z3Return an escaped string suitable for menu entries.:;r3   )r   r   r8   r4   r   r   s     r&   r   zTexinfoTranslator.escape_menuv  sP    OOAIIc3HHQWWYY%%''r'   c                    | j         r5| j         d         dd         dk    r| j                             d           dS dS dS )z7Ensure the last line in body is terminated by new line.Nr   ri   r!   )rO   s    r&   r   zTexinfoTranslator.ensure_eol}  sQ    9 	#2rss+t33IT"""""	# 	#33r'   r   r   descc                   ||k    rd| d}n	d| d| d}t          dt          |          dz   dz  f          d                    fd	t          j        |dz
  
          D                       }||                                z   dz   S )Nz* z:: : z.    rg   N   r   c              3  (   K   | ]}d z  |z   V  dS )r3   Nr   )r0   loffsets     r&   r2   z6TexinfoTranslator.format_menu_entry.<locals>.<genexpr>  sD       B Bq#,* B B B B B Br'   )width)maxr   r8   textwrapwrapr   )rO   r   r   r   r(   wdescr   s         @r&   r   z#TexinfoTranslator.format_menu_entry  s    9TAA*T**Y***Ab3t99q=B./00		 B B B B"-BK@@@B B B B B5;;== 4''r'   z
\s+---?\s+r   	list[str]regre.Pattern[str]c                h   |D ]}| j         |         }	 |                    |d          }n# t          $ r |g}Y nw xY wt          |          dk    r|\  }}nd}|                     |          }|                     |          }| j                            |                     |||                     d S )Nr   r   rB   )	r|   r4   	TypeErrorr   r   r   ri   r!   r   )rO   r   r  r   r   partsr   s          r&   add_menu_entriesz"TexinfoTranslator.add_menu_entries  s    
  	H 	HE?5)D		$**    5zzQ"
dd##D))D;;t$$DIT33D%FFGGGG	H 	Hs   *::c                     j         |         }|sd S  j                            d                                |           |dk    s j         |d                  r j        j        r j                            d           d S d fd	 j                            d
           |D ]} |            j                            d           d S )N
@menu
r   r   z
@end menu
r   r)   r   rK   c                    j         |          }|sd S j                            d                    j        |                     d                               |           |D ]} |           d S )Nr   r   )r}   ri   r!   r   r|   r  )r   r   subentry_add_detailed_menurO   s      r&   r  z6TexinfoTranslator.add_menu.<locals>._add_detailed_menu  s    od+G IL$++dod.C"F"FLLLMMM!!'***# - -""8,,,,- -r'   z0
@detailmenu
 --- The Detailed Node Listing ---
z
@end detailmenu
@end menu
)r   r)   r   rK   )r}   ri   r!   r  r   texinfo_no_detailmenu)rO   r   r   r   r  s   `   @r&   r   zTexinfoTranslator.add_menu  s#   /), 	F	%%%g&&&OGAJ/ 1  I_---F	- 	- 	- 	- 	- 	- 	- 		 @ 	A 	A 	A 	& 	&Eu%%%%	 ' 	( 	( 	( 	( 	(r'   	width_strc                    t          j        d|          }|s|S |}|                                d d         \  }}|r|dk    rdS |dk    rdt          |          dz  z  }|S )Nz(\d*\.?\d*)\s*(\S*)r   pxrB   %z%d.0ptgDI@)r   matchgroupsfloat)rO   r  r  resamountunits         r&   tex_image_lengthz"TexinfoTranslator.tex_image_length  sy    /;; 	||~~bqb) 	9tt||2S[[eFmmi78C
r'   c           	         d fd} j         j        }|r j        j        j                                        D ]}|j        D ]}|j         d|j         }t          |t                    r||vr- ||          
                     j        j                  \  }}|s[ j                            |j         |||          f           t          t           j        j                            d	                    } j        j        D ];}|j        |         r, j                            t%          d
          df            d S <d S )Nr   "list[tuple[str, list[IndexEntry]]]	collapsedboolr   r)   c                   dg}| D ]\  }}|D ]}|d         s
                     |d                   }
                    |d          d|d                    }
                    |d                   }
                    |||          }	|                    |	           |                    d           d                    |          S )	Nr	     r   r   r      z
@end menu
rB   )r   get_short_idr   r   r!   r8   )r   r  ret_letterr   r   r   sidr   merO   s             r&   generatez3TexinfoTranslator.collect_indices.<locals>.generate  s    -C$+ # # $ # #E 8 ! ++E!H55D++uQx,D,D%(,D,DEEC??5844D//c4@@BJJrNNNN# JJ}%%%773<<r'   -r   Indexz
@printindex ge
)r   r  r  r  r   r)   )r   texinfo_domain_indicesrJ   envdomainsvaluesrz   r   r    listr%  docnamesr!   	localnamer	   r   
get_domainr   r   )	rO   r%  indices_configdomainindexcls	indexnamer   r  docnames	   `        r&   r   z!TexinfoTranslator.collect_indices  s   	  	  	  	  	  	  ; 	H,*299;; H H & 
H 
HH#); @ @ @ @I!.$77 %$N::$)1&)9)9)B)B-*/ */&GY" ! L'');)1'9)E)E)G H H H H
H k4<#3#>#>w#G#GHH|, 	 	G~g& ##QwZZ1E$FGGG	 	r'   r   r   *dict[str, list[collected_footnote | bool]]c                    d	fdi } |          D ]_}t          t          j        |d                   }|                                                                }t          dg|j        R  dg||<   `|S )
Nnr   r   Iterator[nodes.footnote]c              3     K   t          | t          j                  r| V  d S | j        D ]H}t          |t          j                  rt          |t          j                  r |          E d {V  Id S r.   )r    r
   footnotechildrenr   start_of_filer   )r7  cfootnotes_unders     r&   r>  z<TexinfoTranslator.collect_footnotes.<locals>.footnotes_under  s      !U^,, 6 6 6A!!X%;<< 6 #Au}55 6#2?1#5#55555555	6 6r'   r   rB   F)r7  r   r   r8  )r	   r
   labelr   r   r   r;  )rO   r   fnotesfnr?  numr>  s         @r&   collect_footnotesz#TexinfoTranslator.collect_footnotes  s    	6 	6 	6 	6 	6 	6 >@!/$'' 	H 	HBbe,,E,,..&&((C-b?2;???GF3KKr'   r   c                    	 | j         |         }nC# t          $ r6 t          t          | j                             dd         }|| j         |<   Y nw xY w|S )z-Return a shorter 'id' associated with ``id``.r   N)r{   KeyErrorhexr   )rO   r   r#  s      r&   r   zTexinfoTranslator.get_short_id  si    	%.$CC 	% 	% 	%c$.))**122.C!$DN2	% 
s    =AAr   c                <   |                     d          rd S | j        d         dz   |z   }|                     |          }|                     |          }||fD ]B}|| j        vr7| j                            d|z             | j                            |           Cd S )Nzindex-r   r   z@anchor{%s})
startswithr   r   r   rx   ri   r!   r   )rO   r   r   eidr#  s        r&   
add_anchorzTexinfoTranslator.add_anchor  s    =="" 	Fr"S(2-nnR  ##* 	) 	)B)))	  !3444 $$R(((	) 	)r'   c                z   |                      |          }|                     |          }| j        j        rj| j                            d| d| d           | j                            |           | j                            |                     |                     d S | j                            |           d S )N@ref{,,r   )	r   r   r   texinfo_cross_referencesri   r!   ry   r   r   )rO   r   r   r   r#  s        r&   add_xrefzTexinfoTranslator.add_xref  s    %%##;/ 	#I5c55T555666##C(((##DNN2$6$677777IT"""""r'   c                    | j                             |                     |                     | j                            |                    dd                     d|v r|                     d|           d S d S )Nr4  rB   :doc)r   r!   rC  r   r   rJ  rO   r   s     r&   visit_documentz TexinfoTranslator.visit_document*  sy    !!$"8"8">">???  )R!8!8999OOFD))))) r'   c                j    | j                                          | j                                         d S r.   )r   r   r   rR  s     r&   depart_documentz!TexinfoTranslator.depart_document0  s2       r'   r   c                    |                      |                                          }| j        r|                    dd          }| j        r|                    dd          }| j                            |           d S )Nr   r3   r&  z@w{-})r   r   r   r   r   ri   r!   )rO   r   r(   s      r&   
visit_TextzTexinfoTranslator.visit_Text4  ss    KK&& 	%		$$$A 	(		#w''A	r'   c                    d S r.   r   rR  s     r&   depart_TextzTexinfoTranslator.depart_Text=      r'   c                ^   | j                             |                    dg                      | j        sd S | j        r!|                     | j        d                    n|                     d           |d         }t          |g| j        |         z             }| j        	                    d|z             t          | j                   D ]}|                     ||           | j                                          t          t          j        |          | _        | xj        dz  c_        d S )Nidsr   r   r   r   )r   r   r   r   r   r   r   r~   ri   r!   sortedrJ  clearr	   r
   r   r   )rO   r   r   r   r   s        r&   visit_sectionzTexinfoTranslator.visit_section@  s%   $$TXXeR%8%8999 	F  	!MM$/<====MM%   %	)t}Y'??@@	08;<<<.// 	& 	&BOOB%%%%##%%% $U]D 9 9ar'   c                &    | xj         dz  c_         d S Nr   )r   rR  s     r&   depart_sectionz TexinfoTranslator.depart_sectionS  s    ar'   )z@unnumberedz@chapterz@sectionz@subsectionz@subsubsection)z@headingz@subheadingz@subsubheadingc                J   | j         sd| _         t          j        |j        }t	          |t          j                  rd S t	          |t          j        t          j        t          j        f          rt          j        t	          |t          j	                  s@t                              t          d          |           |                     |           d S 	 | j        | j                 }n# t           $ r | j        d         }Y nw xY w| j                            d|z             d S )NTzJencountered title node not in section, topic, table, admonition or sidebarlocationr   
%s )r   r
   SkipNoder   r    table
Admonitionsidebartopicr   loggerwarningr   visit_rubricheadingsr   r   ri   r!   )rO   r   r   headings       r&   visit_titlezTexinfoTranslator.visit_titled  s$    	!"DO. fek** 	Ffu/LMM 	!. &%-00 
	0NN2 6 7 7$(  * * * d#####,-(:; , , ,-+,IWw./////s   C) )DDc                :    | j                             d           d S Nr   r   rR  s     r&   depart_titlezTexinfoTranslator.depart_titley      	     r'   c                J   t          |          dk    r1|                                dt          d          fv rt          j        	 | j        | j                 }n# t          $ r | j        d         }Y nw xY w| j        	                    d|z             | xj
        dz  c_
        d S )Nr   	Footnotesr   rf  )r   r   r   r
   rg  rubricsr   r   ri   r!   r   )rO   r   rubrics      r&   rn  zTexinfoTranslator.visit_rubric|  s    t99>>dkkmmQ{^^/LLL. 	&\$"45FF 	& 	& 	&\"%FFF	&	6)***!s   A A32A3c                Z    | xj         dz  c_         | j                            d           d S )Nr   r   )r   ri   r!   rR  s     r&   depart_rubriczTexinfoTranslator.depart_rubric  s2    !	     r'   c                :    | j                             d           d S )Nz

@noindent
r   rR  s     r&   visit_subtitlez TexinfoTranslator.visit_subtitle  s    	*+++++r'   c                :    | j                             d           d S rs  r   rR  s     r&   depart_subtitlez!TexinfoTranslator.depart_subtitle  ru  r'   c                   |j                             |          }	 	 |j         |dz            }nD# t          $ r7 |j         j         |j         j                             |j                            }Y nw xY wt          |t          j                  rW|                    d          r | j                            |d                    | j        	                    |d                    d S n# t          t          f$ r Y nw xY wd|v rd S |                    d          r|                     |d         |           |d         D ]}|                     ||           d S )Nr   refidr\  refuri)r   r   r   r    r
   r   r   r   r   r   AttributeErrorrJ  )rO   r   parindexnextr   s        r&   visit_targetzTexinfoTranslator.visit_target  s~   ;$$T**	Q{8a<0 Q Q Q {)$+*<*B*B4;*O*OPQ $.. 88G$$ =)--d7m<<<%,,T%[999	
 N+ 	 	 	D	tF88G 	1OODM4000u+ 	& 	&BOOB%%%%	& 	&s-   . C$ >A/,C$ .A//A2C$ $C87C8c                    d S r.   r   rR  s     r&   depart_targetzTexinfoTranslator.depart_target  rZ  r'   c           	        t          |j        t          j        t          j        f          rd S t          |d         t          j                  rd S |                    d|                                          	                                }|                    dd          }|s1|                    d          rd| j
        d         z   dz   |d         z   }|sd S |                    d	          r||                     |d
d                    }|                     |          }|r||k    r| j                            d|z             n| j                            d| d| d           nq|                    d          r4| j
        d         dz   |dd          z   }|                     |||           n(|                    d          r`|                    d          }|dk    r|dd          dz   }n|dd                              dd          }|                     |||           n|                    d          r|dd                              dd          }|                     |          }d}d|v r|                    dd          \  }}|                     |          }|                     |          }||k    r"| j                            d| d| d           n| j                            d| d| d| d           n|                     |          }|                     |          }| j        j        }| j        rd}|r||k    r| j                            d|z             np|dk    r"| j                            d| d| d           nH|dk    r"| j                            d| d| d           n | j                            | d| d           t          j        )Nr   r   r  rB   r  r  r   #zmailto:   z
@email{%s}z@email{r   r   r   r   z::doczinfo:   r   r3   r   rL  z,,,rM  inlinez@indicateurl{%s}z@uref{no
@footnote{)r    r   r
   rs   r   	desc_typeimager   r   r   r   rH  r   ri   r!   rO  findr   r4   r   r   r   texinfo_show_urlsr   rg  )rO   r   r   urir   	hashindex	show_urlss          r&   visit_referencez!TexinfoTranslator.visit_reference  s!    dkEK1C#DEE 	Fd1gu{++ 	Fxx..4466hhx$$ 	Dtxx(( 	D)"--3d7mCC 	F>>)$$ /	>//#abb'**C??4((D <43;;	  !34444	  !:C!:!:$!:!:!:;;;;^^C   (	>"2&,s122w6BMM"dD))))^^C   $	>IBWw& W__S#..MM"dD))))^^G$$ 	>abb'//#s++C//#&&CBczz))C++R##B##D))Drzz	  !8"!8!8!8!8!89999	  !>"!>!>!>!>s!>!>!>????//#&&C??4((D5I %$	 >3$;;	  !3c!9::::h&&	  !93!9!9!9!9!9::::d""	  !:3!:!:$!:!:!:;;;;	  D!<!<S!<!<!<===nr'   c                    d S r.   r   rR  s     r&   depart_referencez"TexinfoTranslator.depart_reference  rZ  r'   c                    t          j        |                    dd                    }|                     |           t           j        )Nrs   r  )r
   r   r   rW  rg  rO   r   texts      r&   visit_number_referencez(TexinfoTranslator.visit_number_reference  s9    z$((7C0011nr'   c                    |                                 }| j                            d|                     |          z             t          j        )Nz	@cite{%s})r   ri   r!   r   r
   rg  r  s      r&   visit_title_referencez'TexinfoTranslator.visit_title_reference  s>    {{}}	tt'<'<<===nr'   c                :    | j                             d           d S Nr   r   rR  s     r&   visit_paragraphz!TexinfoTranslator.visit_paragraph      	r'   c                :    | j                             d           d S r  r   rR  s     r&   depart_paragraphz"TexinfoTranslator.depart_paragraph  r  r'   c                :    | j                             d           d S )Nz
@quotation
r   rR  s     r&   visit_block_quotez#TexinfoTranslator.visit_block_quote  s    	)*****r'   c                b    |                                   | j                            d           d S )Nz@end quotation
r   ri   r!   rR  s     r&   depart_block_quotez$TexinfoTranslator.depart_block_quote  /    	+,,,,,r'   Element | Nonec                :    | j                             d           d S )Nz

@example
r   rR  s     r&   visit_literal_blockz%TexinfoTranslator.visit_literal_block  s    	(((((r'   c                b    |                                   | j                            d           d S )Nz@end example
r  rR  s     r&   depart_literal_blockz&TexinfoTranslator.depart_literal_block  /    	)*****r'   c                    t          |j        t          j                  s| j                            d           | j                            d           d S )Nr   z	@display
)r    r   r
   
line_blockri   r!   rR  s     r&   visit_line_blockz"TexinfoTranslator.visit_line_block  sK    $+u'788 	%IV$$$	&&&&&r'   c                    | j                             d           t          |j        t          j                  s| j                             d           d S d S )Nz@end display
r   )ri   r!   r    r   r
   r  rR  s     r&   depart_line_blockz#TexinfoTranslator.depart_line_block  sV    	)***$+u'788 	%IV$$$$$	% 	%r'   c                &    | xj         dz  c_         d S ra  r   rR  s     r&   
visit_linezTexinfoTranslator.visit_line      !r'   c                Z    | j                             d           | xj        dz  c_        d S )Nz@w{ }
r   )ri   r!   r   rR  s     r&   depart_linezTexinfoTranslator.depart_line  s2    	###!r'   c                :    | j                             d           d S )N`r   rR  s     r&   visit_strongzTexinfoTranslator.visit_strong%      	r'   c                :    | j                             d           d S )N'r   rR  s     r&   depart_strongzTexinfoTranslator.depart_strong(  r  r'   c                    | j         r6| j                            d           | j                            d           d S | j                            d           | j                            d           d S )Nz@var{r   r  r  )r   ri   r!   r   rR  s     r&   visit_emphasisz TexinfoTranslator.visit_emphasis+  sp    < 	%IW%%%L$$$$$IS!!!L$$$$$r'   c                h    | j                             | j                                                   d S r.   ri   r!   r   r   rR  s     r&   depart_emphasisz!TexinfoTranslator.depart_emphasis3  ,    	))++,,,,,r'   r  c                    d|d         v S )Nsampclassesr   rR  s     r&   is_sampzTexinfoTranslator.is_samp6  s    i((r'   c                    |                      |          r| xj        dz  c_        | j                            d           d S )Nr   @code{r  r   ri   r!   rR  s     r&   visit_literalzTexinfoTranslator.visit_literal9  sB    << 	LLALL	"""""r'   c                    |                      |          r| xj        dz  c_        | j                            d           d S )Nr   r   r  rR  s     r&   depart_literalz TexinfoTranslator.depart_literal>  sB    << 	LLALL	r'   c                :    | j                             d           d S )Nz@w{^r   rR  s     r&   visit_superscriptz#TexinfoTranslator.visit_superscriptC  ru  r'   c                :    | j                             d           d S Nr   r   rR  s     r&   depart_superscriptz$TexinfoTranslator.depart_superscriptF  r  r'   c                :    | j                             d           d S Nz@w{[r   rR  s     r&   visit_subscriptz!TexinfoTranslator.visit_subscriptI  ru  r'   c                :    | j                             d           d S Nz]}r   rR  s     r&   depart_subscriptz"TexinfoTranslator.depart_subscriptL  r  r'   c                    t           j        r.   r
   rg  rR  s     r&   visit_footnotez TexinfoTranslator.visit_footnoteQ  
    nr'   c                Z    | xj         dz  c_         | j                            d           d S )Nr   r  )r   ri   r!   rR  s     r&   visit_collected_footnotez*TexinfoTranslator.visit_collected_footnoteT  s2    A	&&&&&r'   c                Z    | j                             d           | xj        dz  c_        d S )Nr   r   )ri   r!   r   rR  s     r&   depart_collected_footnotez+TexinfoTranslator.depart_collected_footnoteX  s2    	Ar'   c                   |                                                                 }	 | j        d         |         \  }}n&# t          t          f$ r}t
          j        |d }~ww xY w|                    |            t
          j        )Nr   )	r   r   r   rE  r   r
   rg  rV   SkipChildren)rO   r   rB  footnodeusedexcs         r&   visit_footnote_referencez*TexinfoTranslator.visit_footnote_reference\  s    kkmm!!##	*!/3C8NHdd*% 	* 	* 	*.c)	* 	4     s   ? A"AA"c                    | j                             d           |                    d          D ]}|                     ||           | xj        dz  c_        d S )Nr   r\  r   )ri   r!   r   rJ  r   )rO   r   r   s      r&   visit_citationz TexinfoTranslator.visit_citationf  sb    	((5// 	& 	&BOOB%%%%!r'   c                &    | xj         dz  c_         d S ra  r  rR  s     r&   depart_citationz!TexinfoTranslator.depart_citationl  r  r'   c                :    | j                             d           d S r  r   rR  s     r&   visit_citation_referencez*TexinfoTranslator.visit_citation_referenceo  ru  r'   c                :    | j                             d           d S r  r   rR  s     r&   depart_citation_referencez+TexinfoTranslator.depart_citation_referencer  r  r'   c                l    |                     dd          }| j                            d|z             d S )Nbullet*z

@itemize %s
r   ri   r!   )rO   r   r  s      r&   visit_bullet_listz#TexinfoTranslator.visit_bullet_listw  s7    (C((	,v566666r'   c                b    |                                   | j                            d           d S )Nz@end itemize
r  rR  s     r&   depart_bullet_listz$TexinfoTranslator.depart_bullet_list{  r  r'   c                    |                     dd          }dddd}|                     d|                     |d                    }| j                            d|z             d S )	NenumtypearabicrB   aA)r  
loweralpha
upperalphastartz

@enumerate %s
r  )rO   r   enumstartersr  s        r&   visit_enumerated_listz'TexinfoTranslator.visit_enumerated_list  so    xx
H-- "%"%' ' (,,tR"8"899	.677777r'   c                b    |                                   | j                            d           d S )Nz@end enumerate
r  rR  s     r&   depart_enumerated_listz(TexinfoTranslator.depart_enumerated_list  r  r'   c                :    | j                             d           d S )Nz
@item r   rR  s     r&   visit_list_itemz!TexinfoTranslator.visit_list_item  s    	$$$$$r'   c                    d S r.   r   rR  s     r&   depart_list_itemz"TexinfoTranslator.depart_list_item  rZ  r'   c                :    | j                             d           d S )Nz

@table @option
r   rR  s     r&   visit_option_listz#TexinfoTranslator.visit_option_list  s    	/00000r'   c                b    |                                   | j                            d           d S Nz@end table
r  rR  s     r&   depart_option_listz$TexinfoTranslator.depart_option_list  .    	(((((r'   c                    d S r.   r   rR  s     r&   visit_option_list_itemz(TexinfoTranslator.visit_option_list_item  rZ  r'   c                    d S r.   r   rR  s     r&   depart_option_list_itemz)TexinfoTranslator.depart_option_list_item  rZ  r'   c                    d| _         d S Nz@item	at_item_xrR  s     r&   visit_option_groupz$TexinfoTranslator.visit_option_group       r'   c                    d S r.   r   rR  s     r&   depart_option_groupz%TexinfoTranslator.depart_option_group  rZ  r'   c                x    | xj         dz  c_         | j                            d| j        z             d| _        d S )Nr   rf  @itemx)r   ri   r!   r  rR  s     r&   visit_optionzTexinfoTranslator.visit_option  s>    q 	4>1222!r'   c                &    | xj         dz  c_         d S ra  )r   rR  s     r&   depart_optionzTexinfoTranslator.depart_option  s    q r'   c                    d S r.   r   rR  s     r&   visit_option_stringz%TexinfoTranslator.visit_option_string  rZ  r'   c                    d S r.   r   rR  s     r&   depart_option_stringz&TexinfoTranslator.depart_option_string  rZ  r'   c                b    | j                             |                    dd                     d S )N	delimiterr3   )ri   r!   r   rR  s     r&   visit_option_argumentz'TexinfoTranslator.visit_option_argument  s,    	+s3344444r'   c                    d S r.   r   rR  s     r&   depart_option_argumentz(TexinfoTranslator.depart_option_argument  rZ  r'   c                :    | j                             d           d S r  r   rR  s     r&   visit_descriptionz#TexinfoTranslator.visit_description  r  r'   c                    d S r.   r   rR  s     r&   depart_descriptionz$TexinfoTranslator.depart_description  rZ  r'   c                :    | j                             d           d S )Nz

@table @asis
r   rR  s     r&   visit_definition_listz'TexinfoTranslator.visit_definition_list  s    	-.....r'   c                b    |                                   | j                            d           d S r  r  rR  s     r&   depart_definition_listz(TexinfoTranslator.depart_definition_list  r  r'   c                    d| _         d S r  r  rR  s     r&   visit_definition_list_itemz,TexinfoTranslator.visit_definition_list_item  r  r'   c                    d S r.   r   rR  s     r&   depart_definition_list_itemz-TexinfoTranslator.depart_definition_list_item  rZ  r'   c                n   |                     d          D ]}|                     ||           |d d          D ]R}t          |t          j        t
          j        f          r*|                    |            |                    |           S| j	        
                    d| j        z             d| _        d S )Nr\  rf  r   )r   rJ  r    r   r   r
   targetrV   removeri   r!   r  )rO   r   r   r7  s       r&   
visit_termzTexinfoTranslator.visit_term  s    ((5// 	& 	&BOOB%%%%bbb 	 	A!hnel;<< D!!!A	4>1222!r'   c                    d S r.   r   rR  s     r&   depart_termzTexinfoTranslator.depart_term  rZ  r'   c                :    | j                             d           d S )Nz : r   rR  s     r&   visit_classifierz"TexinfoTranslator.visit_classifier      	r'   c                    d S r.   r   rR  s     r&   depart_classifierz#TexinfoTranslator.depart_classifier  rZ  r'   c                :    | j                             d           d S r  r   rR  s     r&   visit_definitionz"TexinfoTranslator.visit_definition  r  r'   c                    d S r.   r   rR  s     r&   depart_definitionz#TexinfoTranslator.depart_definition  rZ  r'   c                    d| _         d S r  	entry_seprR  s     r&   visit_tablezTexinfoTranslator.visit_table  r  r'   c                :    | j                             d           d S )Nz
@end multitable

r   rR  s     r&   depart_tablezTexinfoTranslator.depart_table  s    	011111r'   c                    d S r.   r   rR  s     r&   visit_tabular_col_specz(TexinfoTranslator.visit_tabular_col_spec  rZ  r'   c                    d S r.   r   rR  s     r&   depart_tabular_col_specz)TexinfoTranslator.depart_tabular_col_spec  rZ  r'   c                   | j                             |d                    t          | j                   | j        k    rd S | j                            d           | j         D ]%}| j                            dd|dz   z  z             &d S )Ncolwidthz

@multitable z{%s} r1   r   )r   r!   r   n_colsri   )rO   r   r7  s      r&   visit_colspeczTexinfoTranslator.visit_colspec  s    d:.///t~$+--F	+,,, 	8 	8AIWq1u67777	8 	8r'   c                    d S r.   r   rR  s     r&   depart_colspecz TexinfoTranslator.depart_colspec   rZ  r'   c                .    g | _         |d         | _        d S )Ncols)r   rT  rR  s     r&   visit_tgroupzTexinfoTranslator.visit_tgroup  s    6lr'   c                    d S r.   r   rR  s     r&   depart_tgroupzTexinfoTranslator.depart_tgroup  rZ  r'   c                    d| _         d S )Nz	@headitemrI  rR  s     r&   visit_theadzTexinfoTranslator.visit_thead
  s    $r'   c                    d S r.   r   rR  s     r&   depart_theadzTexinfoTranslator.depart_thead  rZ  r'   c                    d S r.   r   rR  s     r&   visit_tbodyzTexinfoTranslator.visit_tbody  rZ  r'   c                    d S r.   r   rR  s     r&   depart_tbodyzTexinfoTranslator.depart_tbody  rZ  r'   c                    d S r.   r   rR  s     r&   	visit_rowzTexinfoTranslator.visit_row  rZ  r'   c                    d| _         d S r  rI  rR  s     r&   
depart_rowzTexinfoTranslator.depart_row  r  r'   c                X    | j                             d| j        z             d| _        d S )Nz
%s
z@tab)ri   r!   rJ  rR  s     r&   visit_entryzTexinfoTranslator.visit_entry  s*    	DN2333r'   c                    t          |                    dd                    D ]}| j                            d           d S )Nmorecolsr   z
@tab
)ranger   ri   r!   )rO   r   _is      r&   depart_entryzTexinfoTranslator.depart_entry   sJ    Q//00 	) 	)BIZ((((	) 	)r'   c                    d S r.   r   rR  s     r&   visit_field_listz"TexinfoTranslator.visit_field_list&  rZ  r'   c                    d S r.   r   rR  s     r&   depart_field_listz#TexinfoTranslator.depart_field_list)  rZ  r'   c                :    | j                             d           d S r  r   rR  s     r&   visit_fieldzTexinfoTranslator.visit_field,  r  r'   c                :    | j                             d           d S r  r   rR  s     r&   depart_fieldzTexinfoTranslator.depart_field/  r  r'   c                b    |                                   | j                            d           d S )Nz@*r  rR  s     r&   visit_field_namez"TexinfoTranslator.visit_field_name2  s.    	r'   c                :    | j                             d           d S )Nr   r   rR  s     r&   depart_field_namez#TexinfoTranslator.depart_field_name6  r  r'   c                    d S r.   r   rR  s     r&   visit_field_bodyz"TexinfoTranslator.visit_field_body9  rZ  r'   c                    d S r.   r   rR  s     r&   depart_field_bodyz#TexinfoTranslator.depart_field_body<  rZ  r'   c                    |sGt          t          j        |d                   }|                     |                                          }| j                            d|z             d S )Nr   
@cartouche
@quotation %s )r	   r
   rs   r   r   ri   r!   )rO   r   r   rs   s       r&   visit_admonitionz"TexinfoTranslator.visit_admonitionA  sZ     	/d1g..E;;u||~~..D	7$>?????r'   c                d    t           |j                 }| j                            d|z             d S )Nr  )r   tagnameri   r!   )rO   r   r?  s      r&   _visit_named_admonitionz)TexinfoTranslator._visit_named_admonitionG  s0     .	7%?@@@@@r'   c                b    |                                   | j                            d           d S )Nz@end quotation
@end cartouche
r  rR  s     r&   depart_admonitionz#TexinfoTranslator.depart_admonitionK  s;    	 , 	- 	- 	- 	- 	-r'   c                    t           j        r.   r  rR  s     r&   visit_docinfozTexinfoTranslator.visit_docinfoe  r  r'   c                    t           j        r.   r  rR  s     r&   visit_generatedz!TexinfoTranslator.visit_generatedh  r  r'   c                    t           j        r.   r  rR  s     r&   visit_headerzTexinfoTranslator.visit_headerk  r  r'   c                    t           j        r.   r  rR  s     r&   visit_footerzTexinfoTranslator.visit_footern  r  r'   c                h    |                     d          r| j                            d           d S d S )Nliteral_blockz

@float LiteralBlock
r  rR  s     r&   visit_containerz!TexinfoTranslator.visit_containerq  s=    88O$$ 	:I899999	: 	:r'   c                h    |                     d          r| j                            d           d S d S )Nr  
@end float

r  rR  s     r&   depart_containerz"TexinfoTranslator.depart_containeru  s=    88O$$ 	1I/00000	1 	1r'   c                    d S r.   r   rR  s     r&   visit_decorationz"TexinfoTranslator.visit_decorationy  rZ  r'   c                    d S r.   r   rR  s     r&   depart_decorationz#TexinfoTranslator.depart_decoration|  rZ  r'   c                f   d|                     dg           v rt          j        t          t          j        |d                   }|                     |           | j                            d|                     |	                                          z             | 
                    |           d S )Ncontentsr  r   z%s
)r   r
   rg  r	   rs   rn  ri   r!   r   r   r{  )rO   r   rs   s      r&   visit_topiczTexinfoTranslator.visit_topic  s    )R0000. U[$q'**%   	$++ellnn"="==>>>5!!!!!r'   c                    d S r.   r   rR  s     r&   depart_topiczTexinfoTranslator.depart_topic  rZ  r'   c                @    | j                             ddz             d S )Nz

%s

B__________________________________________________________________r   rR  s     r&   visit_transitionz"TexinfoTranslator.visit_transition  s#    	233333r'   c                    d S r.   r   rR  s     r&   depart_transitionz#TexinfoTranslator.depart_transition  rZ  r'   c                :    | j                             d           d S )Nz

@center --- r   rR  s     r&   visit_attributionz#TexinfoTranslator.visit_attribution      	+,,,,,r'   c                :    | j                             d           d S rs  r   rR  s     r&   depart_attributionz$TexinfoTranslator.depart_attribution  ru  r'   c                    |                     dd                                          }d|v sd|v r,| j                            |                                           t
          j        )Nr   rB   r?   r@   )r   r4   ri   r!   r   r
   rg  )rO   r   r   s      r&   	visit_rawzTexinfoTranslator.visit_raw  s\    (B''--//&F"2"2IT[[]]+++nr'   c                :    | j                             d           d S )Nz

@float Figure
r   rR  s     r&   visit_figurezTexinfoTranslator.visit_figure  s    	./////r'   c                :    | j                             d           d S )Nr  r   rR  s     r&   depart_figurezTexinfoTranslator.depart_figure  r  r'   c                @   t          |j        t          j                  s9t          |j        t          j                  r6|j                            d          r| j                            d           d S t          	                    t          d          |           d S )Nr  z

@caption{zcaption not inside a figure.rd  )r    r   r
   figure	containerr   ri   r!   rl  rm  r   rR  s     r&   visit_captionzTexinfoTranslator.visit_caption  s    t{EL11 	*t{EO44	*00	* I]+++++NN2<==$(  * * * * *r'   c                    t          |j        t          j                  s9t          |j        t          j                  r6|j                            d          r| j                            d           d S d S d S )Nr  }
)r    r   r
   r  r  r   ri   r!   rR  s     r&   depart_captionz TexinfoTranslator.depart_caption  sv    t{EL11 	$t{EO44	$00	$ IU#####	$ 	$ 	$ 	$r'   c                t   |d         | j         j        v r| j         j        |d                  }n| j        rd S |d         }|                    d          dk    rd S t	          j        |          \  }}|                     |                    dd                    }|                     |                    dd                    }|                     |                    dd                    }| j	        d         d d	          d
| }| j
                            d|d|d|d|d|dd          d           d S )Nr  z://r   r   rB   heightaltrn   z	-figures/z
@image{r   r   r  )rJ   imagesignore_missing_imagesr  r   splitextr  r   r   r   ri   r!   )	rO   r   r  r   extr   r  r  rn   s	            r&   visit_imagezTexinfoTranslator.visit_image  sP   ;$,---,%d5k2CC ) u+C88E??b  FM#&&	c%%dhhw&;&;<<&&txx"'='=>>oodhhub1122mJ/4EEtEE	"((EEE666333ABBA 	B 	B 	B 	B 	Br'   c                    d S r.   r   rR  s     r&   depart_imagezTexinfoTranslator.depart_image  rZ  r'   c                    d S r.   r   rR  s     r&   visit_compoundz TexinfoTranslator.visit_compound  rZ  r'   c                    d S r.   r   rR  s     r&   depart_compoundz!TexinfoTranslator.depart_compound  rZ  r'   c                0    |                      |           d S r.   )r  rR  s     r&   visit_sidebarzTexinfoTranslator.visit_sidebar  s    r'   c                0    |                      |           d S r.   )r  rR  s     r&   depart_sidebarz TexinfoTranslator.depart_sidebar  s    $r'   c                `    | j         rt          j        | j                            d           d S )Nz@w{()r   r
   rg  ri   r!   rR  s     r&   visit_labelzTexinfoTranslator.visit_label  s1     	!. 	     r'   c                :    | j                             d           d S )Nz)} r   rR  s     r&   depart_labelzTexinfoTranslator.depart_label  rA  r'   c                    d S r.   r   rR  s     r&   visit_legendzTexinfoTranslator.visit_legend  rZ  r'   c                    d S r.   r   rR  s     r&   depart_legendzTexinfoTranslator.depart_legend  rZ  r'   c                    d S r.   r   rR  s     r&   visit_substitution_referencez.TexinfoTranslator.visit_substitution_reference  rZ  r'   c                    d S r.   r   rR  s     r&   depart_substitution_referencez/TexinfoTranslator.depart_substitution_reference  rZ  r'   c                    t           j        r.   r  rR  s     r&   visit_substitution_definitionz/TexinfoTranslator.visit_substitution_definition  r  r'   c                x    | j                             d|                                z             t          j        )Nz.
@verbatim
<SYSTEM MESSAGE: %s>
@end verbatim
)ri   r!   r   r
   rg  rR  s     r&   visit_system_messagez&TexinfoTranslator.visit_system_message  s;    	 +-1[[]]; 	< 	< 	< nr'   c                    | j                             d           |                                                                D ]}| j                             d|z              t          j        )Nr   z@c %s
)ri   r!   r   
splitlinesr
   rg  )rO   r   lines      r&   visit_commentzTexinfoTranslator.visit_comment  sa    	KKMM,,.. 	/ 	/DIY-....nr'   c                :    | j                             d           d S )Nz>>r   rR  s     r&   visit_problematicz#TexinfoTranslator.visit_problematic  r  r'   c                :    | j                             d           d S )Nz<<r   rR  s     r&   depart_problematicz$TexinfoTranslator.depart_problematic  r  r'   c                Z    t                               t          d          ||           d S )Nzunimplemented node type: %rrd  )rl  rm  r   rR  s     r&   unimplemented_visitz%TexinfoTranslator.unimplemented_visit  s7    r788$ $ 	 	& 	& 	& 	& 	&r'   c                    d S r.   r   rR  s     r&   unknown_departurez#TexinfoTranslator.unknown_departure  rZ  r'   c                   |                      d            g }t          t          t          j                 |          }|D ]}|                    |d                    t          d |D                       }|D ]}|d         rM|                    d          D ]}|                     ||           |d         	                    |          dz   }ndd|z  z  }| j
                            |                     |                     | j
                            |                     |                                dz                        |                     d            t          j        )N	tokennamec              3  4   K   | ]}t          |          V  d S r.   )r   )r0   r   s     r&   r2   z9TexinfoTranslator.visit_productionlist.<locals>.<genexpr>  s(      114SYY111111r'   r\  z ::=z%s    r3   r   )r  r	   r   r   
productionr!   r   r   rJ  ljustri   r   r   r  r
   rg  )rO   r   namesproductionlistr  maxlenr   r(   s           r&   visit_productionlistz&TexinfoTranslator.visit_productionlist  sf     &&&hx':;TBB( 	2 	2JLLK0111111511111( 	F 	FJ+& .$..// 4 4BOOB
3333{+11&99FBf-IT[[^^,,,IT[[):):)<)<t)CDDEEEE!!$'''nr'   c                    d S r.   r   rR  s     r&   visit_productionz"TexinfoTranslator.visit_production  rZ  r'   c                    d S r.   r   rR  s     r&   depart_productionz#TexinfoTranslator.depart_production  rZ  r'   c                :    | j                             d           d S Nr  r   rR  s     r&   visit_literal_emphasisz(TexinfoTranslator.visit_literal_emphasis!      	"""""r'   c                :    | j                             d           d S r  r   rR  s     r&   depart_literal_emphasisz)TexinfoTranslator.depart_literal_emphasis$  r  r'   c                :    | j                             d           d S r  r   rR  s     r&   visit_literal_strongz&TexinfoTranslator.visit_literal_strong'  r  r'   c                :    | j                             d           d S r  r   rR  s     r&   depart_literal_strongz'TexinfoTranslator.depart_literal_strong*  r  r'   c                (   t          |j        t          j                  r|                                  n| j                            d           |d         D ]:\  }}}}}|                     |          }| j                            d|z             ;d S )Nr   r   z@geindex %s
)r    r   r
   	paragraphr   ri   r!   r   )rO   r   _entry_typevalue
_target_id_main_category_keyr  s           r&   visit_indexzTexinfoTranslator.visit_index-  s    dk5?33 	#OOIT"""FJ9o 	5 	5B[%UM##E**DI_t34444	5 	5r'   c                :    | j                             d           d S r  r   rR  s     r&   visit_versionmodifiedz'TexinfoTranslator.visit_versionmodified7  r  r'   c                :    | j                             d           d S r  r   rR  s     r&   depart_versionmodifiedz(TexinfoTranslator.depart_versionmodified:  r  r'   c                    | j                             d           | j                            |d                    | j                            |                     |                     d S )NrQ  r4  )r   r   r   r!   r   rC  rR  s     r&   visit_start_of_filez%TexinfoTranslator.visit_start_of_file=  s_    !!&)))  i111!!$"8"8">">?????r'   c                j    | j                                          | j                                         d S r.   )r   r   r   rR  s     r&   depart_start_of_filez&TexinfoTranslator.depart_start_of_fileC  s2         r'   c                    |                      |                                          }| j                            d|z             t          j        )Nz

@center %s

)r   r   ri   r!   r
   rg  rO   r   txts      r&   visit_centeredz TexinfoTranslator.visit_centeredG  s?    oodkkmm,,	-3444nr'   c                V    | j                             dt          d         z             d S )Nz

@subsubheading %s

seealso)ri   r!   r   rR  s     r&   visit_seealsozTexinfoTranslator.visit_seealsoL  s6    	4))45 	6 	6 	6 	6 	6r'   c                :    | j                             d           d S r  r   rR  s     r&   depart_seealsoz TexinfoTranslator.depart_seealsoP  r  r'   c                    t           j        r.   r  rR  s     r&   
visit_metazTexinfoTranslator.visit_metaS  r  r'   c                    d S r.   r   rR  s     r&   visit_glossaryz TexinfoTranslator.visit_glossaryV  rZ  r'   c                    d S r.   r   rR  s     r&   depart_glossaryz!TexinfoTranslator.depart_glossaryY  rZ  r'   c                   t          t          j        |d                   }t          t          t          j                 |          }| j                            d           | j                            d                    d |D                       dz              | j                            d           t          j        )Nr   r   , c              3  >   K   | ]}|                                 V  d S r.   )r   )r0   r7  s     r&   r2   z/TexinfoTranslator.visit_acks.<locals>.<genexpr>`  s*      "B"B!188::"B"B"B"B"B"Br'   r   )	r	   r
   bullet_listr   	list_itemri   r!   r8   rg  )rO   r   r  
list_itemss       r&   
visit_ackszTexinfoTranslator.visit_acks\  s    5,d1g66(5?3[AA
	   	"B"Bz"B"B"BBBSHIII	   nr'   addnodes.descc                H    | j                             |           d| _        d S )Nz@deffn)r   r!   	at_deffnxrR  s     r&   
visit_desczTexinfoTranslator.visit_desck  s#    
$!r'   c                    | j                                          |                                  | j                            d           d S )Nz@end deffn
)r   r   r   ri   r!   rR  s     r&   depart_desczTexinfoTranslator.depart_desco  s@    
	(((((r'   c                F   | xj         dz  c_         |j        d         }|dk    r.|                    d          D ]}|                     ||           	 | j        j                            |j        d                   }|                    |j        |         | j	        j
        |j        k              }n# t          t          f$ r |}Y nw xY w|                     t          |                    }| j                            d| j         d| d           d	| _        || _        d S )
Nr   objtypedescriber\  r1  r   z {z} z@deffnx)r   r   r   rJ  rJ   r)  r/  get_type_nameobject_typesr   primary_domainr   rE  r   r   r<   ri   r!   r$  desc_type_name)rO   r   r)  r   r1  r   categorys          r&   visit_desc_signaturez&TexinfoTranslator.visit_desc_signaturet  s8   q +i(j  hhuoo * *D))))	\%00X1FGGF''(;G(D(,(Bfk(QS SDD.) 	 	 	DDD	 ??>$#7#788	>dn>>>>>???"*.s   AB2 2CCc                h    | j                             d           | xj        dz  c_        d | _        d S )Nr   r   )ri   r!   r   r.  rR  s     r&   depart_desc_signaturez'TexinfoTranslator.depart_desc_signature  s:    	q "r'   c                    d S r.   r   rR  s     r&   visit_desc_signature_linez+TexinfoTranslator.visit_desc_signature_line  rZ  r'   c                    d S r.   r   rR  s     r&   depart_desc_signature_linez,TexinfoTranslator.depart_desc_signature_line  rZ  r'   c                    d S r.   r   rR  s     r&   visit_desc_contentz$TexinfoTranslator.visit_desc_content  rZ  r'   c                    d S r.   r   rR  s     r&   depart_desc_contentz%TexinfoTranslator.depart_desc_content  rZ  r'   c                    d S r.   r   rR  s     r&   visit_desc_inlinez#TexinfoTranslator.visit_desc_inline  rZ  r'   c                    d S r.   r   rR  s     r&   depart_desc_inlinez$TexinfoTranslator.depart_desc_inline  rZ  r'   c                    d S r.   r   rR  s     r&   visit_desc_namez!TexinfoTranslator.visit_desc_name  rZ  r'   c                    d S r.   r   rR  s     r&   depart_desc_namez"TexinfoTranslator.depart_desc_name  rZ  r'   c                    d S r.   r   rR  s     r&   visit_desc_addnamez$TexinfoTranslator.visit_desc_addname  rZ  r'   c                    d S r.   r   rR  s     r&   depart_desc_addnamez%TexinfoTranslator.depart_desc_addname  rZ  r'   c                    d S r.   r   rR  s     r&   visit_desc_typez!TexinfoTranslator.visit_desc_type  rZ  r'   c                    d S r.   r   rR  s     r&   depart_desc_typez"TexinfoTranslator.depart_desc_type  rZ  r'   c                :    | j                             d           d S )Nz -> r   rR  s     r&   visit_desc_returnsz$TexinfoTranslator.visit_desc_returns  ru  r'   c                    d S r.   r   rR  s     r&   depart_desc_returnsz%TexinfoTranslator.depart_desc_returns  rZ  r'   c                H    | j                             d           d| _        d S )Nz (r   ri   r!   first_paramrR  s     r&   visit_desc_parameterlistz*TexinfoTranslator.visit_desc_parameterlist  &    	r'   c                :    | j                             d           d S )N)r   rR  s     r&   depart_desc_parameterlistz+TexinfoTranslator.depart_desc_parameterlist  r  r'   c                H    | j                             d           d| _        d S )Nz [r   rP  rR  s     r&   visit_desc_type_parameter_listz0TexinfoTranslator.visit_desc_type_parameter_list  rS  r'   c                :    | j                             d           d S N]r   rR  s     r&   depart_desc_type_parameter_listz1TexinfoTranslator.depart_desc_type_parameter_list  r  r'   c                   | j         s| j                            d           nd| _         |                     |                                          }|                    dd          }| j                            |           t          j        )Nr  r       z@w{ })rQ  ri   r!   r   r   r   r
   rg  r  s      r&   visit_desc_parameterz&TexinfoTranslator.visit_desc_parameter  sx     	!IT"""" D{{4;;==))||D'**	nr'   c                0    |                      |           d S r.   )r_  rR  s     r&   visit_desc_type_parameterz+TexinfoTranslator.visit_desc_type_parameter  s    !!$'''''r'   c                :    | j                             d           d S )N[r   rR  s     r&   visit_desc_optionalz%TexinfoTranslator.visit_desc_optional  r  r'   c                :    | j                             d           d S rZ  r   rR  s     r&   depart_desc_optionalz&TexinfoTranslator.depart_desc_optional  r  r'   c                    |                                                                 }| j        r|| j        d         d         k    s"| j        r'|| j                                        v rt
          j        d S d S )Nr   r)  )r   r   r   r.  r4   r
   rg  r  s      r&   visit_desc_annotationz'TexinfoTranslator.visit_desc_annotation  sw     kkmm!!##Z 	!C4:b>)#<<<$ =),0C0I0I0K0K)K)K.  =<)K)Kr'   c                    d S r.   r   rR  s     r&   depart_desc_annotationz(TexinfoTranslator.depart_desc_annotation  rZ  r'   c                    d S r.   r   rR  s     r&   visit_inlinezTexinfoTranslator.visit_inline  rZ  r'   c                    d S r.   r   rR  s     r&   depart_inlinezTexinfoTranslator.depart_inline  rZ  r'   c                v   |                                 }| j                            d           |                    d          r[|| j        vrR| j                            d|                     |d                   z             | j                            |           d S | j                            d           d S )Nz@abbr{explanationz,%s}r   )r   ri   r!   hasattrr   r   r   r   )rO   r   abbrs      r&   visit_abbreviationz$TexinfoTranslator.visit_abbreviation  s    {{}}	"""<<&& 	%4t7I+I+ILm9L)M)M MNNN""4(((((L$$$$$r'   c                h    | j                             | j                                                   d S r.   r  rR  s     r&   depart_abbreviationz%TexinfoTranslator.depart_abbreviation  r  r'   c                ,    |                      |          S r.   )r  rR  s     r&   visit_manpagezTexinfoTranslator.visit_manpage  s    **4000r'   c                ,    |                      |          S r.   )r  rR  s     r&   depart_manpagez TexinfoTranslator.depart_manpage   s    ++D111r'   c                    d S r.   r   rR  s     r&   visit_download_referencez*TexinfoTranslator.visit_download_reference  rZ  r'   c                    d S r.   r   rR  s     r&   depart_download_referencez+TexinfoTranslator.depart_download_reference  rZ  r'   c                0    |                      |           d S r.   )r  rR  s     r&   visit_hlistzTexinfoTranslator.visit_hlist	  s    t$$$$$r'   c                0    |                      |           d S r.   )r  rR  s     r&   depart_hlistzTexinfoTranslator.depart_hlist  s    %%%%%r'   c                    d S r.   r   rR  s     r&   visit_hlistcolz TexinfoTranslator.visit_hlistcol  rZ  r'   c                    d S r.   r   rR  s     r&   depart_hlistcolz!TexinfoTranslator.depart_hlistcol  rZ  r'   c                    d S r.   r   rR  s     r&   visit_pending_xrefz$TexinfoTranslator.visit_pending_xref  rZ  r'   c                    d S r.   r   rR  s     r&   depart_pending_xrefz%TexinfoTranslator.depart_pending_xref  rZ  r'   c                    | j                             d|                     |                                          z   dz              t          j        )Nz@math{r   )ri   r!   r   r   r
   rg  rR  s     r&   
visit_mathzTexinfoTranslator.visit_math  s>    	DOODKKMM$B$BBSHIIInr'   c                    |                     d          r|                     |d         |           | j                            d|                     |                                          z             t          j        )Nr?  z

@example
%s
@end example

)r   rJ  ri   r!   r   r   r
   rg  rR  s     r&   visit_math_blockz"TexinfoTranslator.visit_math_block  so    88G 	1OODM4000	=778 	9 	9 	9nr'   )rS   rt   rJ   r   r   rK   r]   )r(   r)   r   r)   )r   r)   r   r)   r   r)   r   r)   )r   r  r  r  r   rK   )r   r)   r   rK   )r  r)   r   r)   )r   r   r   r5  )r   r)   r   r)   )r   r)   r   r   r   rK   )r   r)   r   r)   r   r   r   rK   )r   r   r   rK   )r   r   r   rK   )r   r  r   rK   )r   r   r   r  )rB   )r   r   r   r)   r   rK   )r   r   r   rK   )r   r"  r   rK   (   r^   r_   r`   r  rc   r   rN   rW   rv   r   r   r   r   r   r   r   r   r   r   compiler  r   r  r   rC  r   rJ  rO  rS  rU  rW  rY  r_  rb  ro  rx  rq  rt  rn  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  visit_doctest_blockdepart_doctest_blockr  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@  rC  rE  rG  rK  rM  rO  rQ  rU  rW  rZ  r\  r^  r`  rb  rd  rf  rh  rj  ro  rq  rs  ru  rw  ry  r{  r}  r  r  r  r  visit_attentiondepart_attentionvisit_cautiondepart_cautionvisit_dangerdepart_dangervisit_errordepart_error
visit_hintdepart_hintvisit_importantdepart_important
visit_notedepart_note	visit_tip
depart_tipvisit_warningdepart_warningr  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  r  r  r  r  r  r!  r%  r'  r0  r2  r4  r6  r8  r:  r<  r>  r@  rB  rD  rF  rH  rJ  rL  rN  rR  rV  rX  r\  r_  ra  rd  rf  rh  rj  rl  rn  rs  ru  rw  ry  r{  r}  r  r  r  r  r  r  r  r  rd   re   s   @r&   rT   rT      s        !   '  '  '  '  '  'D/ / / /*(8 (8 (8 (8T7 7 7 7<+ + + +2' ' ' 'B      	 	 	 	   # # # #
( ( ( (  *rz-88H H H H H*( ( ( (8   " " " "N   *	 	 	 		) 	) 	) 	)# # # #* * * *                    &       HG0 0 0 0*! ! ! !" " " "! ! ! !, , , ,! ! ! !
& & & &0   = = = =~      
         + + + +- - - -) ) ) )+ + + + ./' ' ' '
% % % %
" " " "" " " "      % % % %- - - -) ) ) )# # # #
   
! ! ! !   ! ! ! !   
   ' ' ' '   ! ! ! !" " " "" " " "! ! ! !   
7 7 7 7+ + + +8 8 8 8- - - -% % % %   
1 1 1 1) ) ) )      ! ! ! !   " " " "
! ! ! !      5 5 5 5         
/ / / /) ) ) )! ! ! !   	" 	" 	" 	"                   
! ! ! !2 2 2 2      8 8 8 8   # # # #   % % % %            ! ! ! !       ) ) ) )                        
@ @ @ @ @A A A A- - - -
 .O(+M&N*L%M)K$L(J#K-O((J#K'I"J+M&N            : : : :1 1 1 1      " " " "   4 4 4 4   - - - -! ! ! !   0 0 0 0- - - -* * * *$ $ $ $B B B B(                   ! ! ! !                                  & & & &   
   &      # # # #   # # # #   5 5 5 5      @ @ @ @! ! ! !   
6 6 6 6               " " " ") ) ) )
/ / / /&# # # #
                                    ! ! ! !               	 	 	 	( ( ( (      	! 	! 	! 	!   
      % % % %- - - -1 1 1 12 2 2 2      % % % %& & & &                      r'   rT   )r   r   r   r   r.   )r(   r)   r*   r+   r   r)   )6ra   
__future__r   r   r   collections.abcr   r   osr   typingr   r   r	   docutilsr
   r   sphinxr   r   sphinx.domains.indexr   sphinx.errorsr   sphinx.localer   r   r   sphinx.utilr   sphinx.util.docutilsr   sphinx.util.i18nr   sphinx.writers.latexr   docutils.nodesr   r   r   sphinx.builders.texinfor   sphinx.domainsr   	getLoggerr^   rl  r   r   r#   r<   Writerr>   rT   r   r'   r&   <module>r     sJ   ) ) " " " " " " 				  . . . . . . . .       + + + + + + + + + + # # # # # # # # 0 0 0 0 0 0 0 0 , , , , , , ( ( ( ( ( ( 1 1 1 1 1 1 1 1 1 1       1 1 1 1 1 1 ( ( ( ( ( ( 3 3 3 3 3 3 *2222222222666666)))))) 
	8	$	$ 00"3(V	 	 	 	$ $ $ $ $= = = = =GN = = =>Z Z Z Z Z( Z Z Z Z Zr'   