B
    .ÛKcôÎ  ã               @   st  d Z ddlZddlZddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZ ddlmZmZ ddlmZ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! 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/ e' 0e1¡Z2dZ3de d Z4eeej5 dœdd„Z6de7ee7 e7dœdd„Z8G dd„ dej9ƒZ:G dd„ de)ƒZ;dS )z#Custom docutils writer for Texinfo.é    N)Úpath)ÚTYPE_CHECKINGÚAnyÚDictÚIterableÚIteratorÚListÚOptionalÚPatternÚSetÚTupleÚUnionÚcast)ÚnodesÚwriters)ÚElementÚNodeÚText)Ú__display_version__Úaddnodes)Ú
IndexEntry)ÚIndexDomain)ÚExtensionError)Ú_Ú__Úadmonitionlabels)Úlogging)ÚSphinxTranslator)Úformat_date)Úcollected_footnote)ÚTexinfoBuilderzn@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
)ÚsectionÚreturnc             C   sJ   g }x@| D ]8}t |tjƒr(| |¡ q
q
t |tjƒr
| t|ƒ¡ q
W |S )z7Return a list of subsections for the given ``section``.)Ú
isinstancer   r!   Úappendr   ÚextendÚfind_subsections)r!   ÚresultZchild© r(   ú5lib/python3.7/site-packages/sphinx/writers/texinfo.pyr&   R   s    

r&   )ÚsÚsepr"   c             C   sL   |   |¡}x2t|ƒD ]&\}}tdd„ |D ƒƒr| ¡ ||< qW |pDd |¡S )z_Like string.capwords() but does not capitalize words that already
    contain a capital letter.c             s   s   | ]}|  ¡ V  qd S )N)Úislower)Ú.0Úxr(   r(   r)   ú	<genexpr>c   s    z!smart_capwords.<locals>.<genexpr>ú )ÚsplitÚ	enumerateÚallÚ
capitalizeÚjoin)r*   r+   ZwordsÚiZwordr(   r(   r)   Úsmart_capwords^   s
    
r7   c            
       sÎ   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eeeeeee	e e
eef f df f ed< i Ze
ed< dZee ed< dZdddœ‡ fdd„Zddœdd„Z‡  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-entryZDescriptionz--texinfo-dir-descriptionZCategoryz--texinfo-dir-categoryZMiscellaneous.Úsettings_specÚsettings_defaultsÚoutput)r?   Úfragmentr    )Úbuilderr"   c                s   t ƒ  ¡  || _d S )N)ÚsuperÚ__init__rA   )ÚselfrA   )Ú	__class__r(   r)   rC   z   s    
zTexinfoWriter.__init__)r"   c             C   s\   | j  | j| j ¡}tt|ƒ| _| j |¡ | j ¡  x"| jD ]}t	| |t
| j|ƒƒ q<W d S )N)rA   Zcreate_translatorÚdocumentr   ÚTexinfoTranslatorÚvisitorÚ	walkaboutÚfinishÚvisitor_attributesÚsetattrÚgetattr)rD   rH   Úattrr(   r(   r)   Ú	translate~   s    
zTexinfoWriter.translate)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Z	supportedr=   r   Ústrr   r   r   Ú__annotations__r>   r?   r	   rK   rC   rO   Ú__classcell__r(   r(   )rE   r)   r8   h   s   
<r8   c                   sn  e Zd ZU dZded< dddddddddddddœZejddd	œ‡ fd
d„Zddœdd„Z	ddœdd„Z
ddœdd„Zddœdd„Zddœdd„Zeedœdd„Zeedœdd„Zeedœdd„Zeedœdd„Zddœd d!„Zeeeed"œd#d$„Ze d%¡fee edd&œd'd(„Zedd)œd*d+„Zeed,œd-d.„Zddœd/d0„Zeeeeee e!f  f d1œd2d3„Z"eed4œd5d6„Z#ee$dd7œd8d9„Z%eee$dd:œd;d<„Z&edd1œd=d>„Z'edd1œd?d@„Z(e)dd1œdAdB„Z*e)dd1œdCdD„Z+edd1œdEdF„Z,edd1œdGdH„Z-dIZ.dJZ/edd1œdKdL„Z0edd1œdMdN„Z1edd1œdOdP„Z2edd1œdQdR„Z3edd1œdSdT„Z4edd1œdUdV„Z5edd1œdWdX„Z6edd1œdYdZ„Z7edd1œd[d\„Z8edd1œd]d^„Z9edd1œd_d`„Z:edd1œdadb„Z;edd1œdcdd„Z<edd1œdedf„Z=edd1œdgdh„Z>edd1œdidj„Z?e@e dd1œdkdl„ZAe@e dd1œdmdn„ZBeAZCeBZDedd1œdodp„ZEedd1œdqdr„ZFedd1œdsdt„ZGedd1œdudv„ZHedd1œdwdx„ZIedd1œdydz„ZJedd1œd{d|„ZKedd1œd}d~„ZLee!d1œdd€„ZMedd1œdd‚„ZNedd1œdƒd„„ZOedd1œd…d†„ZPedd1œd‡dˆ„ZQedd1œd‰dŠ„ZRedd1œd‹dŒ„ZSedd1œddŽ„ZTedd1œdd„ZUedd1œd‘d’„ZVedd1œd“d”„ZWedd1œd•d–„ZXedd1œd—d˜„ZYedd1œd™dš„ZZedd1œd›dœ„Z[edd1œddž„Z\edd1œdŸd „Z]edd1œd¡d¢„Z^edd1œd£d¤„Z_edd1œd¥d¦„Z`edd1œd§d¨„Zaedd1œd©dª„Zbedd1œd«d¬„Zcedd1œd­d®„Zdedd1œd¯d°„Zeedd1œd±d²„Zfedd1œd³d´„Zgedd1œdµd¶„Zhedd1œd·d¸„Ziedd1œd¹dº„Zjedd1œd»d¼„Zkedd1œd½d¾„Zledd1œd¿dÀ„Zmedd1œdÁdÂ„Znedd1œdÃdÄ„Zoedd1œdÅdÆ„Zpedd1œdÇdÈ„Zqedd1œdÉdÊ„Zredd1œdËdÌ„Zsedd1œdÍdÎ„Ztedd1œdÏdÐ„Zuedd1œdÑdÒ„Zvedd1œdÓdÔ„Zwedd1œdÕdÖ„Zxedd1œd×dØ„Zyedd1œdÙdÚ„Zzedd1œdÛdÜ„Z{edd1œdÝdÞ„Z|edd1œdßdà„Z}edd1œdádâ„Z~edd1œdãdä„Zedd1œdådæ„Z€edd1œdçdè„Zedd1œdédê„Z‚edd1œdëdì„Zƒedd1œdídî„Z„edd1œdïdð„Z…edd1œdñdò„Z†edd1œdódô„Z‡edd1œdõdö„Zˆedd1œd÷dø„Z‰edd1œdùdú„ZŠedd1œdûdü„Z‹edd1œdýdþ„ZŒedd1œdÿd „Zedd1œdd„ZŽedd1œdd„Zedd1œdd„Zedd1œdd„Z‘dÔeedd	œd
d„Z’edd1œdd„Z“edd1œdd„Z”e“Z•e”Z–e“Z—e”Z˜e“Z™e”Zše“Z›e”Zœe“Ze”Zže“ZŸe”Z e“Z¡e”Z¢e“Z£e”Z¤e“Z¥e”Z¦edd1œdd„Z§edd1œdd„Z¨edd1œdd„Z©edd1œdd„Zªedd1œdd„Z«edd1œdd„Z¬edd1œdd„Z­edd1œdd„Z®edd1œd d!„Z¯edd1œd"d#„Z°edd1œd$d%„Z±edd1œd&d'„Z²edd1œd(d)„Z³edd1œd*d+„Z´edd1œd,d-„Zµedd1œd.d/„Z¶edd1œd0d1„Z·edd1œd2d3„Z¸edd1œd4d5„Z¹edd1œd6d7„Zºedd1œd8d9„Z»edd1œd:d;„Z¼edd1œd<d=„Z½edd1œd>d?„Z¾edd1œd@dA„Z¿edd1œdBdC„ZÀedd1œdDdE„ZÁedd1œdFdG„ZÂedd1œdHdI„ZÃedd1œdJdK„ZÄedd1œdLdM„ZÅedd1œdNdO„ZÆedd1œdPdQ„ZÇedd1œdRdS„ZÈedd1œdTdU„ZÉedd1œdVdW„ZÊedd1œdXdY„ZËe$dd1œdZd[„ZÌedd1œd\d]„ZÍedd1œd^d_„ZÎedd1œd`da„ZÏedd1œdbdc„ZÐedd1œddde„ZÑedd1œdfdg„ZÒedd1œdhdi„ZÓedd1œdjdk„ZÔedd1œdldm„ZÕedd1œdndo„ZÖedd1œdpdq„Z×edd1œdrds„ZØedd1œdtdu„ZÙedd1œdvdw„ZÚedd1œdxdy„ZÛedd1œdzd{„ZÜedd1œd|d}„ZÝedd1œd~d„ZÞedd1œd€d„Zßeàjádd1œd‚dƒ„Zâeàjádd1œd„d…„Zãedd1œd†d‡„Zäedd1œdˆd‰„Zåedd1œdŠd‹„Zæedd1œdŒd„Zçedd1œdŽd„Zèedd1œdd‘„Zéedd1œd’d“„Zêedd1œd”d•„Zëedd1œd–d—„Zìedd1œd˜d™„Zíedd1œdšd›„Zîedd1œdœd„Zïedd1œdždŸ„Zðedd1œd d¡„Zñedd1œd¢d£„Zòedd1œd¤d¥„Zóedd1œd¦d§„Zôedd1œd¨d©„Zõedd1œdªd«„Zöedd1œd¬d­„Z÷edd1œd®d¯„Zøedd1œd°d±„Zùedd1œd²d³„Zúedd1œd´dµ„Zûedd1œd¶d·„Züedd1œd¸d¹„Zýedd1œdºd»„Zþedd1œd¼d½„Zÿedd1œd¾d¿„Z edd1œdÀdÁ„Zedd1œdÂdÃ„Zedd1œdÄdÅ„Zedd1œdÆdÇ„Zedd1œdÈdÉ„Zedd1œdÊdË„Zedd1œdÌdÍ„Zedd1œdÎdÏ„Zedd1œdÐdÑ„Z	edd1œdÒdÓ„Z
‡  ZS (Õ  rG   Fr    rA   r<   é   r   )ÚauthorÚbodyÚcopyingÚdateÚdirentryZexampleindentÚfilenameZparagraphindentZpreambleÚprojectÚreleaseÚtitleN)rF   rA   r"   c                sÆ   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)rB   rC   Úinit_settingsÚsetÚwritten_idsÚreferenced_idsÚindicesÚ	short_idsÚ
node_namesÚ
node_menusÚrellinksÚcollect_indicesÚcollect_node_namesÚcollect_node_menusÚcollect_rellinksrY   ÚcontextÚdescsÚprevious_sectionÚsection_levelÚ
seen_titleÚnext_section_idsÚescape_newlinesÚescape_hyphensÚcurfilestackÚfootnotestackÚin_footnoteÚin_sampÚhandled_abbrsÚ	colwidths)rD   rF   rA   )rE   r(   r)   rC   ›   s8    zTexinfoTranslator.__init__)r"   c             C   sÊ   | j d kr|  d¡ xN| jD ]D}|\}}t|g| j|  ƒ}| j d| ¡ | j d||f ¡ qW x2| jr–| j ¡ }|| j	krf| j d|df ¡ qfW |  
¡  d | j¡| _| j| jd< t| j | _d S )NÚTopz
@node %s,%s,%s,%s
z@unnumbered %s

%s
z@anchor{%s}@w{%s}
z                              r<   rY   )rp   Úadd_menure   Útupleri   rY   r$   rd   Úpoprc   Ú
ensure_eolr5   r@   ÚelementsÚTEMPLATEr?   )rD   ÚindexÚnameÚcontentÚpointersÚrr(   r(   r)   rJ   ½   s    



zTexinfoTranslator.finishc             C   sx  | j  ¡  }| _| | jj| jj| jj|  | j	j
¡|  | j	j¡|  | j	j¡|  | j	jppt| j	jpftdƒ| j	jd¡dœ¡ | jj}|s¤| j tj¡}|r | ¡ nd}|  |¡p°d|d< |d s| j d¡pÎd|d< |d d	d … d
krü|d d d	… |d< |d  d7  < | jjrZ|  |  | jj¡d|d  |  | jj¡¡}d|  | jj¡|f |d< t| |d< | | jj¡ d S )Nz	%b %d, %Y)Úlanguage)r`   rX   r]   r_   r^   Ú	copyrightr[   z
<untitled>r`   r]   ÚsourceZuntitledéüÿÿÿ)z.txtz.rstz.infoz(%s)z*@dircategory %s
@direntry
%s@end direntry
r\   rZ   ) Údefault_elementsÚcopyr   ÚupdateZsettingsr`   rX   Ztexinfo_filenameÚescapeÚconfigr_   r^   r‰   Ztodayr   Z	today_fmtr   rˆ   rF   Ú	next_noder   ÚastextÚ	escape_idÚgetZtexinfo_dir_entryÚformat_menu_entryÚescape_menuÚ
escape_argZtexinfo_dir_descriptionZtexinfo_dir_categoryÚCOPYINGZtexinfo_elements)rD   r   r`   Z
title_nodeÚentryr(   r(   r)   ra   Ò   s<    


zTexinfoTranslator.init_settingsc                s   t t dœ‡fdd„‰ dˆjd< ˆ dƒ ˆ dƒ ‡ fdd„ˆjD ƒˆ_xFˆj tj¡D ]4}ttj| tj	¡ƒ}|rx| 
¡ nd	}ˆ |ƒ|d< qTW d
S )zeGenerates a unique id for each section.

        Assigns the attribute ``node_name`` to each section.)r„   r"   c                sf   ˆ   | ¡}d\}}x0|| ˆ jks0|| ˆ jkrB|d7 }d| }qW ||7 }ˆ j |¡ | ˆ j|< |S )N)é   r<   rš   z<%s>)r“   rc   rg   Úadd)r„   Znode_idZnthÚsuffix)rD   r(   r)   Úadd_node_name  s    

z;TexinfoTranslator.collect_node_names.<locals>.add_node_namer|   Ú	node_nameÚtopc                s   g | ]\}}ˆ |ƒ|f‘qS r(   r(   )r-   r„   r…   )r   r(   r)   ú
<listcomp>  s   z8TexinfoTranslator.collect_node_names.<locals>.<listcomp>z
<untitled>N)rT   rF   re   Úfindallr   r!   r   ZTextElementr‘   ZTitularr’   )rD   r!   r`   r„   r(   )r   rD   r)   rk   ü   s    

z$TexinfoTranslator.collect_node_namesc       	      C   s
  | j }| jg}| | j tj¡¡ x>|D ]6}d|kr<|d s@t‚dd„ t|ƒD ƒ}|||d < q(W | j tj	¡}|rz|j
n| j}t|tjtjfƒs˜| j}|| jk	rÜ||d  }||d dd… 7 }||d< ||d = d|d< x(| jD ]\}}g ||< |d  |¡ qäW dS )z1Collect the menu entries for each "node" section.rž   c             S   s   g | ]}|d  ‘qS )rž   r(   )r-   r*   r(   r(   r)   r    !  s    z8TexinfoTranslator.collect_node_menus.<locals>.<listcomp>r|   rš   N)rh   rF   r%   r¡   r   r!   ÚAssertionErrorr&   r‘   r`   Úparentr#   re   r$   )	rD   rh   ZtargetsÚnodeÚentriesr`   rŸ   r„   Z_contentr(   r(   r)   rl     s(    


z$TexinfoTranslator.collect_node_menusc             C   s  | j }| j}x|D ]}dddg||< qW x.| ¡ D ]"\}}x|D ]}||| d< q@W q2W xj| ¡ D ]^\}}xTt|ƒD ]H\}}|dkr˜||d  || d< |t|ƒd krt||d  || d< qtW qbW y|d d }W n tk
rè   Y nX ||d d< d|| d< dS )z@Collect the relative links (next, previous, up) for each "node".r<   é   r   rš   r|   N)ri   rh   Úitemsr2   ÚlenÚ
IndexError)rD   ri   rh   Úidr¥   Úer6   Úfirstr(   r(   r)   rm   3  s&    

z"TexinfoTranslator.collect_rellinks)r*   r"   c             C   s@   |  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)rD   r*   r(   r(   r)   r   T  s    zTexinfoTranslator.escapec             C   s,   |   |¡}| dd¡}d | ¡ ¡ ¡ }|S )zVReturn an escaped string suitable for use as an argument
        to a Texinfo command.ú,z@comma{}r0   )r   r°   r5   r1   Ústrip)rD   r*   r(   r(   r)   r—   ^  s    
zTexinfoTranslator.escape_argc             C   sR   d}x|D ]}|  |d¡}q
W t d|¡r6|  dd¡}d | ¡ ¡ ¡ }|  |¡S )z=Return an escaped string suitable for node names and anchors.z,:()r0   z[^ .]Ú.)r°   ÚreÚsearchr5   r1   r²   r   )rD   r*   Z	bad_charsZbcr(   r(   r)   r“   h  s    
zTexinfoTranslator.escape_idc             C   s,   |   |¡}| dd¡}d | ¡ ¡ ¡ }|S )z3Return an escaped string suitable for menu entries.ú:ú;r0   )r—   r°   r5   r1   r²   )rD   r*   r(   r(   r)   r–   s  s    
zTexinfoTranslator.escape_menuc             C   s,   | j r(| j d dd… dkr(| j  d¡ dS )z7Ensure the last line in body is terminated by new line.éÿÿÿÿNÚ
)rY   r$   )rD   r(   r(   r)   r€   z  s    zTexinfoTranslator.ensure_eol)r„   rž   Údescr"   c                sn   ||krd|f }nd||f }t dt|ƒd d fƒ‰ d ‡ fdd„tj|dˆ  d	D ƒ¡}|| ¡  d S )
Nz* %s:: z
* %s: %s. é   rW   éN   r¹   c             3   s   | ]}d ˆ  | V  qdS )r0   Nr(   )r-   Úl)Úoffsetr(   r)   r/   …  s    z6TexinfoTranslator.format_menu_entry.<locals>.<genexpr>)Úwidth)Úmaxr¨   r5   ÚtextwrapÚwrapr²   )rD   r„   rž   rº   r*   Zwdescr(   )r¾   r)   r•     s    z#TexinfoTranslator.format_menu_entryz
\s+---?\s+)r¥   Úregr"   c          	   C   sŒ   x†|D ]~}| j | }y| |d¡}W n tk
r>   |g}Y nX t|ƒdkrV|\}}nd}|  |¡}|  |¡}| j |  |||¡¡ qW d S )Nrš   r¦   r<   )	rg   r1   Ú	TypeErrorr¨   r–   r   rY   r$   r•   )rD   r¥   rÃ   r™   r„   Úpartsrº   r(   r(   r)   Úadd_menu_entries‰  s    




z"TexinfoTranslator.add_menu_entries)rž   r"   c                sž   ˆj | }|sd S ˆj d¡ ˆ |¡ |dksFˆj |d  rFˆjjrVˆj d¡ d S td dœ‡ ‡fdd„‰ ˆj d¡ x|D ]}ˆ |ƒ q~W ˆj d	¡ d S )
Nz
@menu
r|   r   z
@end menu
)r„   r"   c                sR   ˆj |  }|sd S ˆj dˆ ˆj|  ¡ ¡ ˆ |¡ x|D ]}ˆ |ƒ q>W d S )Nz
%s

)rh   rY   r$   r   rg   rÆ   )r„   r¥   Zsubentry)Ú_add_detailed_menurD   r(   r)   rÇ   §  s    


z6TexinfoTranslator.add_menu.<locals>._add_detailed_menuz0
@detailmenu
 --- The Detailed Node Listing ---
z
@end detailmenu
@end menu
)rh   rY   r$   rÆ   r   Ztexinfo_no_detailmenurT   )rD   rž   r¥   r™   r(   )rÇ   rD   r)   r}   ›  s    

	
zTexinfoTranslator.add_menu)Ú	width_strr"   c             C   sX   t  d|¡}|s|S |}| ¡ d d… \}}|r8|dkr<dS |dkrTdt|ƒd  }|S )Nz(\d*\.?\d*)\s*(\S*)r¦   Zpxr<   ú%z%d.0ptgDIíêº@)r´   ÚmatchÚgroupsÚfloat)rD   rÈ   rÊ   ZresÚamountZunitr(   r(   r)   Útex_image_length·  s    z"TexinfoTranslator.tex_image_lengthc       	         sü   t ttt t f  ttdœ‡ fdd„}ˆ jj}|r²x~ˆ jjj	 
¡ D ]l}xf|jD ]\}d|j|jf }t|tƒrv||krvqN||ƒ ˆ jj¡\}}|s’qNˆ j |j|||ƒf¡ qNW qBW ttˆ jj d¡ƒ}x0ˆ jjD ]$}|j| rÐˆ j tdƒdf¡ P qÐW d S )N)r…   Ú	collapsedr"   c       
         s’   dg}xv| D ]n\}}xd|D ]\}|d s(qˆ   |d ¡}ˆ  d|d |d f ¡}ˆ  |d ¡}ˆ  |||¡}	| |	¡ qW qW | d¡ d |¡S )	Nz
@menu
é   r   z%s:%sr¦   é   z
@end menu
r<   )r–   Úget_short_idr—   r•   r$   r5   )
r…   rÏ   ÚretZ_letterr¥   r™   r„   Úsidrº   Úme)rD   r(   r)   ÚgenerateÇ  s    

z3TexinfoTranslator.collect_indices.<locals>.generatez%s-%srƒ   ZIndexz
@printindex ge
)r   r   rT   r   Úboolr   Ztexinfo_domain_indicesrA   ÚenvZdomainsÚvaluesre   r„   r#   ÚlistrÖ   Zdocnamesr$   Z	localnamer   r   Ú
get_domainr¥   r   )	rD   rÖ   Zindices_configÚdomainZindexclsZ	indexnamer…   rÏ   Údocnamer(   )rD   r)   rj   Æ  s(    &


z!TexinfoTranslator.collect_indices)r¤   r"   c                sf   t ttj dœ‡ fdd„‰ i }xBˆ |ƒD ]6}ttj|d ƒ}| ¡  ¡ }td|j	žŽ dg||< q(W |S )N)Únr"   c             3   sR   t | tjƒr| V  n:x8| jD ].}t |tjƒr0qqt |tjƒrˆ |ƒE d H  qW d S )N)r#   r   ÚfootnoteÚchildrenr   Zstart_of_filer   )rÞ   Úc)Úfootnotes_underr(   r)   râ   î  s    z<TexinfoTranslator.collect_footnotes.<locals>.footnotes_underr   r<   F)r<   )
r   r   r   rß   r   Úlabelr’   r²   r   rà   )rD   r¤   ZfnotesÚfnrã   Únumr(   )râ   r)   Úcollect_footnotesí  s    	z#TexinfoTranslator.collect_footnotes)rª   r"   c             C   sH   y| j | }W n4 tk
rB   tt| j ƒƒdd… }|| j |< Y nX |S )z-Return a shorter 'id' associated with ``id``.r¦   N)rf   ÚKeyErrorÚhexr¨   )rD   rª   rÔ   r(   r(   r)   rÒ      s    zTexinfoTranslator.get_short_id)rª   r¤   r"   c             C   sp   |  d¡rd S | jd d | }|  |¡}|  |¡}x6||fD ]*}|| jkr>| j d| ¡ | j |¡ q>W d S )Nzindex-r¸   r¶   z@anchor{%s})Ú
startswithrv   r“   rÒ   rc   rY   r$   r›   )rD   rª   r¤   ZeidrÔ   r(   r(   r)   Ú
add_anchor  s    



zTexinfoTranslator.add_anchor)rª   r„   r¤   r"   c             C   s`   |   |¡}|  |¡}| jjrP| j d||f ¡ | j |¡ | j |  |¡¡ n| j |¡ d S )Nz@ref{%s,,%s})	r–   rÒ   r   Ztexinfo_cross_referencesrY   r$   rd   r›   r“   )rD   rª   r„   r¤   rÔ   r(   r(   r)   Úadd_xref  s    

zTexinfoTranslator.add_xrefc             C   s>   | j  |  |¡¡ | j | dd¡¡ d|kr:|  d|¡ d S )NrÝ   r<   z:doc)rw   r$   ræ   rv   r”   rê   )rD   r¤   r(   r(   r)   Úvisit_document"  s    z TexinfoTranslator.visit_documentc             C   s   | j  ¡  | j ¡  d S )N)rw   r   rv   )rD   r¤   r(   r(   r)   Údepart_document(  s    
z!TexinfoTranslator.depart_documentc             C   sB   |   | ¡ ¡}| jr | dd¡}| jr2| dd¡}| j |¡ d S )Nr¹   r0   ú-z@w{-})r   r’   rt   r°   ru   rY   r$   )rD   r¤   r*   r(   r(   r)   Ú
visit_Text,  s    zTexinfoTranslator.visit_Textc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_Text5  s    zTexinfoTranslator.depart_Textc             C   s¶   | j  | dg ¡¡ | jsd S | jr6|  | jd ¡ n
|  d¡ |d }t|g| j|  ƒ}| j 	d| ¡ xt
| j ƒD ]}|  ||¡ qxW | j  ¡  ttj|ƒ| _|  jd7  _d S )NÚidsrž   r|   z
@node %s,%s,%s,%s
rš   )rs   rŽ   r”   rr   rp   r}   r~   ri   rY   r$   Úsortedrê   Úclearr   r   r!   rq   )rD   r¤   rž   r†   rª   r(   r(   r)   Úvisit_section8  s    

zTexinfoTranslator.visit_sectionc             C   s   |  j d8  _ d S )Nrš   )rq   )rD   r¤   r(   r(   r)   Údepart_sectionK  s    z TexinfoTranslator.depart_section)z@unnumberedz@chapterz@sectionz@subsectionz@subsubsection)z@headingz@subheadingz@subsubheadingc             C   s´   | j sd| _ tj‚|j}t|tjƒr(d S t|tjtjtjfƒrFtj‚njt|tj	ƒspt
jtdƒ|d |  |¡ n@y| j| j }W n tk
rž   | jd }Y nX | j d| ¡ d S )NTzJencountered title node not in section, topic, table, admonition or sidebar)Úlocationr¸   z
%s )rr   r   ÚSkipNoder£   r#   ÚtableZ
AdmonitionZsidebarZtopicr!   ÚloggerÚwarningr   Úvisit_rubricÚheadingsrq   r©   rY   r$   )rD   r¤   r£   Úheadingr(   r(   r)   Úvisit_title\  s"    
zTexinfoTranslator.visit_titlec             C   s   | j  d¡ d S )Nz

)rY   r$   )rD   r¤   r(   r(   r)   Údepart_titleq  s    zTexinfoTranslator.depart_titlec             C   sx   t |ƒdkr&| ¡ dtdƒfkr&tj‚y| j| j }W n tk
rT   | jd }Y nX | j 	d| ¡ |  j
d7  _
d S )Nrš   Z	Footnotesr¸   z
%s )r¨   r’   r   r   r÷   Úrubricsrq   r©   rY   r$   rt   )rD   r¤   Zrubricr(   r(   r)   rû   t  s     zTexinfoTranslator.visit_rubricc             C   s   |  j d8  _ | j d¡ d S )Nrš   z

)rt   rY   r$   )rD   r¤   r(   r(   r)   Údepart_rubric~  s    zTexinfoTranslator.depart_rubricc             C   s   | j  d¡ d S )Nz

@noindent
)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_subtitle‚  s    z TexinfoTranslator.visit_subtitlec             C   s   | j  d¡ d S )Nz

)rY   r$   )rD   r¤   r(   r(   r)   Údepart_subtitle…  s    z!TexinfoTranslator.depart_subtitlec          	   C   sì   |j  |¡}y~y|j |d  }W n, tk
rL   |j j |j j  |j ¡ }Y nX t|tjƒrˆ| d¡rt| j |d ¡ | j 	|d ¡ d S W n tt
fk
r¢   Y nX d|kr°d S | d¡rÊ|  |d |¡ x|d D ]}|  ||¡ qÔW d S )Nrš   Úrefidrñ   Úrefuri)r£   rƒ   r©   r#   r   r!   r”   rs   r›   rŽ   ÚAttributeErrorrê   )rD   r¤   ZparindexÚnextrª   r(   r(   r)   Úvisit_targetŠ  s&    

zTexinfoTranslator.visit_targetc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_target¢  s    zTexinfoTranslator.depart_targetc             C   s¤  t |jtjtjfƒrd S t |d tjƒr,d S | d| ¡ ¡ 	¡ }| dd¡}|st| d¡rtd| j
d  d |d  }|s|d S | d	¡rØ|  |d
d … ¡}|  |¡}|r®||krÀ| j d| ¡ n| j d||f ¡ nÂ| d¡r| j
d d |dd …  }|  |||¡ nŠ| d¡rh| d¡}|dkrB|dd … d }n|dd …  dd¡}|  |||¡ n2| d¡rü|dd …  dd¡}|  |¡}d}d|kr°| dd¡\}}|  |¡}|  |¡}||krä| j d||f ¡ n| j d|||f ¡ nž|  |¡}|  |¡}| jj}| jr$d}|r4||krF| j d| ¡ nT|dkrf| j d||f ¡ n4|dkr†| j d||f ¡ n| j d||f ¡ tj‚d S )Nr   r„   r  r<   r  rÉ   r¸   ú#zmailto:é   z
@email{%s}z@email{%s,%s}r¶   rš   z::doczinfo:é   r   r0   r|   z@ref{%s,,,%s}z@ref{%s,,%s,%s}Zinlinez@indicateurl{%s}z@uref{%s,%s}Únoz@uref{%s,,%s}z%s@footnote{%s})r#   r£   r   r`   r   Z	desc_typeZimager”   r’   r²   rv   ré   r—   rY   r$   rë   Úfindr°   r1   r“   r–   r   Ztexinfo_show_urlsrx   r÷   )rD   r¤   r„   Úurirª   Z	hashindexZ	show_urlsr(   r(   r)   Úvisit_reference¥  sb    












z!TexinfoTranslator.visit_referencec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_referenceä  s    z"TexinfoTranslator.depart_referencec             C   s&   t  | dd¡¡}|  |¡ t j‚d S )Nr`   r
  )r   r   r”   rï   r÷   )rD   r¤   Útextr(   r(   r)   Úvisit_number_referenceç  s    
z(TexinfoTranslator.visit_number_referencec             C   s(   |  ¡ }| j d|  |¡ ¡ tj‚d S )Nz	@cite{%s})r’   rY   r$   r—   r   r÷   )rD   r¤   r  r(   r(   r)   Úvisit_title_referenceì  s    z'TexinfoTranslator.visit_title_referencec             C   s   | j  d¡ d S )Nr¹   )rY   r$   )rD   r¤   r(   r(   r)   Úvisit_paragraphó  s    z!TexinfoTranslator.visit_paragraphc             C   s   | j  d¡ d S )Nr¹   )rY   r$   )rD   r¤   r(   r(   r)   Údepart_paragraphö  s    z"TexinfoTranslator.depart_paragraphc             C   s   | j  d¡ d S )Nz
@quotation
)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_block_quoteù  s    z#TexinfoTranslator.visit_block_quotec             C   s   |   ¡  | j d¡ d S )Nz@end quotation
)r€   rY   r$   )rD   r¤   r(   r(   r)   Údepart_block_quoteü  s    z$TexinfoTranslator.depart_block_quotec             C   s   | j  d¡ d S )Nz

@example
)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_literal_block   s    z%TexinfoTranslator.visit_literal_blockc             C   s   |   ¡  | j d¡ d S )Nz@end example
)r€   rY   r$   )rD   r¤   r(   r(   r)   Údepart_literal_block  s    z&TexinfoTranslator.depart_literal_blockc             C   s*   t |jtjƒs| j d¡ | j d¡ d S )Nz

z	@display
)r#   r£   r   Ú
line_blockrY   r$   )rD   r¤   r(   r(   r)   Úvisit_line_block
  s    z"TexinfoTranslator.visit_line_blockc             C   s*   | j  d¡ t|jtjƒs&| j  d¡ d S )Nz@end display
z

)rY   r$   r#   r£   r   r  )rD   r¤   r(   r(   r)   Údepart_line_block  s    z#TexinfoTranslator.depart_line_blockc             C   s   |  j d7  _ d S )Nrš   )rt   )rD   r¤   r(   r(   r)   Ú
visit_line  s    zTexinfoTranslator.visit_linec             C   s   | j  d¡ |  jd8  _d S )Nz@w{ }
rš   )rY   r$   rt   )rD   r¤   r(   r(   r)   Údepart_line  s    zTexinfoTranslator.depart_linec             C   s   | j  d¡ d S )Nú`)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_strong  s    zTexinfoTranslator.visit_strongc             C   s   | j  d¡ d S )Nú')rY   r$   )rD   r¤   r(   r(   r)   Údepart_strong   s    zTexinfoTranslator.depart_strongc             C   s<   | j r | j d¡ | j d¡ n| j d¡ | j d¡ d S )Nz@var{r¯   r   r"  )ry   rY   r$   rn   )rD   r¤   r(   r(   r)   Úvisit_emphasis#  s
    z TexinfoTranslator.visit_emphasisc             C   s   | j  | j ¡ ¡ d S )N)rY   r$   rn   r   )rD   r¤   r(   r(   r)   Údepart_emphasis+  s    z!TexinfoTranslator.depart_emphasisc             C   s   d|d kS )NZsampÚclassesr(   )rD   r¤   r(   r(   r)   Úis_samp.  s    zTexinfoTranslator.is_sampc             C   s(   |   |¡r|  jd7  _| j d¡ d S )Nrš   z@code{)r'  ry   rY   r$   )rD   r¤   r(   r(   r)   Úvisit_literal1  s    
zTexinfoTranslator.visit_literalc             C   s(   |   |¡r|  jd8  _| j d¡ d S )Nrš   r¯   )r'  ry   rY   r$   )rD   r¤   r(   r(   r)   Údepart_literal6  s    
z TexinfoTranslator.depart_literalc             C   s   | j  d¡ d S )Nz@w{^)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_superscript;  s    z#TexinfoTranslator.visit_superscriptc             C   s   | j  d¡ d S )Nr¯   )rY   r$   )rD   r¤   r(   r(   r)   Údepart_superscript>  s    z$TexinfoTranslator.depart_superscriptc             C   s   | j  d¡ d S )Nz@w{[)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_subscriptA  s    z!TexinfoTranslator.visit_subscriptc             C   s   | j  d¡ d S )Nz]})rY   r$   )rD   r¤   r(   r(   r)   Údepart_subscriptD  s    z"TexinfoTranslator.depart_subscriptc             C   s
   t j‚d S )N)r   r÷   )rD   r¤   r(   r(   r)   Úvisit_footnoteI  s    z TexinfoTranslator.visit_footnotec             C   s   |  j d7  _ | j d¡ d S )Nrš   z
@footnote{)rx   rY   r$   )rD   r¤   r(   r(   r)   Úvisit_collected_footnoteL  s    z*TexinfoTranslator.visit_collected_footnotec             C   s   | j  d¡ |  jd8  _d S )Nr¯   rš   )rY   r$   rx   )rD   r¤   r(   r(   r)   Údepart_collected_footnoteP  s    z+TexinfoTranslator.depart_collected_footnotec          
   C   sf   |  ¡  ¡ }y| jd | \}}W n. ttfk
rP } ztj|‚W d d }~X Y nX | | ¡ tj‚d S )Nr¸   )	r’   r²   rw   rç   r©   r   r÷   rI   ZSkipChildren)rD   r¤   rå   ZfootnodeZusedÚexcr(   r(   r)   Úvisit_footnote_referenceT  s    
z*TexinfoTranslator.visit_footnote_referencec             C   s>   | j  d¡ x| d¡D ]}|  ||¡ qW |  jd7  _d S )Nr¹   rñ   rš   )rY   r$   r”   rê   rt   )rD   r¤   rª   r(   r(   r)   Úvisit_citation^  s    z TexinfoTranslator.visit_citationc             C   s   |  j d8  _ d S )Nrš   )rt   )rD   r¤   r(   r(   r)   Údepart_citationd  s    z!TexinfoTranslator.depart_citationc             C   s   | j  d¡ d S )Nz@w{[)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_citation_referenceg  s    z*TexinfoTranslator.visit_citation_referencec             C   s   | j  d¡ d S )Nz]})rY   r$   )rD   r¤   r(   r(   r)   Údepart_citation_referencej  s    z+TexinfoTranslator.depart_citation_referencec             C   s    |  dd¡}| j d| ¡ d S )NÚbulletÚ*z

@itemize %s
)r”   rY   r$   )rD   r¤   r7  r(   r(   r)   Úvisit_bullet_listo  s    z#TexinfoTranslator.visit_bullet_listc             C   s   |   ¡  | j d¡ d S )Nz@end itemize
)r€   rY   r$   )rD   r¤   r(   r(   r)   Údepart_bullet_lists  s    z$TexinfoTranslator.depart_bullet_listc             C   s@   |  dd¡}ddddœ}|  d|  |d¡¡}| j d| ¡ d S )	NZenumtypeÚarabicr<   ÚaÚA)r;  Z
loweralphaZ
upperalphaÚstartz

@enumerate %s
)r”   rY   r$   )rD   r¤   ÚenumZstartersr>  r(   r(   r)   Úvisit_enumerated_listw  s    z'TexinfoTranslator.visit_enumerated_listc             C   s   |   ¡  | j d¡ d S )Nz@end enumerate
)r€   rY   r$   )rD   r¤   r(   r(   r)   Údepart_enumerated_list€  s    z(TexinfoTranslator.depart_enumerated_listc             C   s   | j  d¡ d S )Nz
@item )rY   r$   )rD   r¤   r(   r(   r)   Úvisit_list_item„  s    z!TexinfoTranslator.visit_list_itemc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_list_item‡  s    z"TexinfoTranslator.depart_list_itemc             C   s   | j  d¡ d S )Nz

@table @option
)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_option_listŒ  s    z#TexinfoTranslator.visit_option_listc             C   s   |   ¡  | j d¡ d S )Nz@end table
)r€   rY   r$   )rD   r¤   r(   r(   r)   Údepart_option_list  s    z$TexinfoTranslator.depart_option_listc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_option_list_item“  s    z(TexinfoTranslator.visit_option_list_itemc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_option_list_item–  s    z)TexinfoTranslator.depart_option_list_itemc             C   s
   d| _ d S )Nz@item)Ú	at_item_x)rD   r¤   r(   r(   r)   Úvisit_option_group™  s    z$TexinfoTranslator.visit_option_groupc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_option_groupœ  s    z%TexinfoTranslator.depart_option_groupc             C   s*   |  j d7  _ | j d| j ¡ d| _d S )Nrš   z
%s z@itemx)ru   rY   r$   rH  )rD   r¤   r(   r(   r)   Úvisit_optionŸ  s    zTexinfoTranslator.visit_optionc             C   s   |  j d8  _ d S )Nrš   )ru   )rD   r¤   r(   r(   r)   Údepart_option¤  s    zTexinfoTranslator.depart_optionc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_option_string§  s    z%TexinfoTranslator.visit_option_stringc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_option_stringª  s    z&TexinfoTranslator.depart_option_stringc             C   s   | j  | dd¡¡ d S )NZ	delimiterr0   )rY   r$   r”   )rD   r¤   r(   r(   r)   Úvisit_option_argument­  s    z'TexinfoTranslator.visit_option_argumentc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_option_argument°  s    z(TexinfoTranslator.depart_option_argumentc             C   s   | j  d¡ d S )Nr¹   )rY   r$   )rD   r¤   r(   r(   r)   Úvisit_description³  s    z#TexinfoTranslator.visit_descriptionc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_description¶  s    z$TexinfoTranslator.depart_descriptionc             C   s   | j  d¡ d S )Nz

@table @asis
)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_definition_list»  s    z'TexinfoTranslator.visit_definition_listc             C   s   |   ¡  | j d¡ d S )Nz@end table
)r€   rY   r$   )rD   r¤   r(   r(   r)   Údepart_definition_list¾  s    z(TexinfoTranslator.depart_definition_listc             C   s
   d| _ d S )Nz@item)rH  )rD   r¤   r(   r(   r)   Úvisit_definition_list_itemÂ  s    z,TexinfoTranslator.visit_definition_list_itemc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_definition_list_itemÅ  s    z-TexinfoTranslator.depart_definition_list_itemc             C   sx   x|  d¡D ]}|  ||¡ qW x:|d d … D ]*}t|tjtjfƒr.| | ¡ | |¡ q.W | j	 
d| j ¡ d| _d S )Nrñ   z
%s z@itemx)r”   rê   r#   r   rƒ   r   ÚtargetrI   ÚremoverY   r$   rH  )rD   r¤   rª   rÞ   r(   r(   r)   Ú
visit_termÈ  s    
zTexinfoTranslator.visit_termc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_termÓ  s    zTexinfoTranslator.depart_termc             C   s   | j  d¡ d S )Nz : )rY   r$   )rD   r¤   r(   r(   r)   Úvisit_classifierÖ  s    z"TexinfoTranslator.visit_classifierc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_classifierÙ  s    z#TexinfoTranslator.depart_classifierc             C   s   | j  d¡ d S )Nr¹   )rY   r$   )rD   r¤   r(   r(   r)   Úvisit_definitionÜ  s    z"TexinfoTranslator.visit_definitionc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_definitionß  s    z#TexinfoTranslator.depart_definitionc             C   s
   d| _ d S )Nz@item)Ú	entry_sep)rD   r¤   r(   r(   r)   Úvisit_tableä  s    zTexinfoTranslator.visit_tablec             C   s   | j  d¡ d S )Nz
@end multitable

)rY   r$   )rD   r¤   r(   r(   r)   Údepart_tableç  s    zTexinfoTranslator.depart_tablec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_tabular_col_specê  s    z(TexinfoTranslator.visit_tabular_col_specc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_tabular_col_specí  s    z)TexinfoTranslator.depart_tabular_col_specc             C   s\   | j  |d ¡ t| j ƒ| jkr$d S | j d¡ x&| j D ]}| j dd|d   ¡ q8W d S )NZcolwidthz

@multitable z{%s} r.   r¦   )r{   r$   r¨   Ún_colsrY   )rD   r¤   rÞ   r(   r(   r)   Úvisit_colspecð  s    zTexinfoTranslator.visit_colspecc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_colspecø  s    z TexinfoTranslator.depart_colspecc             C   s   g | _ |d | _d S )NZcols)r{   rd  )rD   r¤   r(   r(   r)   Úvisit_tgroupû  s    zTexinfoTranslator.visit_tgroupc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_tgroupÿ  s    zTexinfoTranslator.depart_tgroupc             C   s
   d| _ d S )Nz	@headitem)r_  )rD   r¤   r(   r(   r)   Úvisit_thead  s    zTexinfoTranslator.visit_theadc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_thead  s    zTexinfoTranslator.depart_theadc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_tbody  s    zTexinfoTranslator.visit_tbodyc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_tbody  s    zTexinfoTranslator.depart_tbodyc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Ú	visit_row  s    zTexinfoTranslator.visit_rowc             C   s
   d| _ d S )Nz@item)r_  )rD   r¤   r(   r(   r)   Ú
depart_row  s    zTexinfoTranslator.depart_rowc             C   s   | j  d| j ¡ d| _d S )Nz
%s
z@tab)rY   r$   r_  )rD   r¤   r(   r(   r)   Úvisit_entry  s    zTexinfoTranslator.visit_entryc             C   s*   x$t | dd¡ƒD ]}| j d¡ qW d S )NZmorecolsr   z
@tab
)Úranger”   rY   r$   )rD   r¤   Z_ir(   r(   r)   Údepart_entry  s    zTexinfoTranslator.depart_entryc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_field_list  s    z"TexinfoTranslator.visit_field_listc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_field_list!  s    z#TexinfoTranslator.depart_field_listc             C   s   | j  d¡ d S )Nr¹   )rY   r$   )rD   r¤   r(   r(   r)   Úvisit_field$  s    zTexinfoTranslator.visit_fieldc             C   s   | j  d¡ d S )Nr¹   )rY   r$   )rD   r¤   r(   r(   r)   Údepart_field'  s    zTexinfoTranslator.depart_fieldc             C   s   |   ¡  | j d¡ d S )Nz@*)r€   rY   r$   )rD   r¤   r(   r(   r)   Úvisit_field_name*  s    z"TexinfoTranslator.visit_field_namec             C   s   | j  d¡ d S )Nz: )rY   r$   )rD   r¤   r(   r(   r)   Údepart_field_name.  s    z#TexinfoTranslator.depart_field_namec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_field_body1  s    z"TexinfoTranslator.visit_field_bodyc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_field_body4  s    z#TexinfoTranslator.depart_field_body)r¤   r„   r"   c             C   s6   |s"t tj|d ƒ}|  | ¡ ¡}| j d| ¡ d S )Nr   z
@cartouche
@quotation %s )r   r   r`   r   r’   rY   r$   )rD   r¤   r„   r`   r(   r(   r)   Úvisit_admonition9  s    z"TexinfoTranslator.visit_admonitionc             C   s   t |j }| j d| ¡ d S )Nz
@cartouche
@quotation %s )r   ZtagnamerY   r$   )rD   r¤   rã   r(   r(   r)   Ú_visit_named_admonition?  s    
z)TexinfoTranslator._visit_named_admonitionc             C   s   |   ¡  | j d¡ d S )Nz@end quotation
@end cartouche
)r€   rY   r$   )rD   r¤   r(   r(   r)   Údepart_admonitionC  s    z#TexinfoTranslator.depart_admonitionc             C   s
   t j‚d S )N)r   r÷   )rD   r¤   r(   r(   r)   Úvisit_docinfo]  s    zTexinfoTranslator.visit_docinfoc             C   s
   t j‚d S )N)r   r÷   )rD   r¤   r(   r(   r)   Úvisit_generated`  s    z!TexinfoTranslator.visit_generatedc             C   s
   t j‚d S )N)r   r÷   )rD   r¤   r(   r(   r)   Úvisit_headerc  s    zTexinfoTranslator.visit_headerc             C   s
   t j‚d S )N)r   r÷   )rD   r¤   r(   r(   r)   Úvisit_footerf  s    zTexinfoTranslator.visit_footerc             C   s   |  d¡r| j d¡ d S )NÚliteral_blockz

@float LiteralBlock
)r”   rY   r$   )rD   r¤   r(   r(   r)   Úvisit_containeri  s    
z!TexinfoTranslator.visit_containerc             C   s   |  d¡r| j d¡ d S )Nr  z
@end float

)r”   rY   r$   )rD   r¤   r(   r(   r)   Údepart_containerm  s    
z"TexinfoTranslator.depart_containerc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_decorationq  s    z"TexinfoTranslator.visit_decorationc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_decorationt  s    z#TexinfoTranslator.depart_decorationc             C   sX   d|  dg ¡krtj‚ttj|d ƒ}|  |¡ | j d|  | 	¡ ¡ ¡ |  
|¡ d S )NÚcontentsr&  r   z%s
)r”   r   r÷   r   r`   rû   rY   r$   r   r’   r  )rD   r¤   r`   r(   r(   r)   Úvisit_topicw  s    
zTexinfoTranslator.visit_topicc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_topic€  s    zTexinfoTranslator.depart_topicc             C   s   | j  dd ¡ d S )Nz

%s

ZB__________________________________________________________________)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_transitionƒ  s    z"TexinfoTranslator.visit_transitionc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_transition†  s    z#TexinfoTranslator.depart_transitionc             C   s   | j  d¡ d S )Nz

@center --- )rY   r$   )rD   r¤   r(   r(   r)   Úvisit_attribution‰  s    z#TexinfoTranslator.visit_attributionc             C   s   | j  d¡ d S )Nz

)rY   r$   )rD   r¤   r(   r(   r)   Údepart_attributionŒ  s    z$TexinfoTranslator.depart_attributionc             C   s:   |  dd¡ ¡ }d|ks d|kr0| j | ¡ ¡ tj‚d S )NÚformatr<   r9   r:   )r”   r1   rY   r$   r’   r   r÷   )rD   r¤   r  r(   r(   r)   Ú	visit_raw  s    zTexinfoTranslator.visit_rawc             C   s   | j  d¡ d S )Nz

@float Figure
)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_figure•  s    zTexinfoTranslator.visit_figurec             C   s   | j  d¡ d S )Nz
@end float

)rY   r$   )rD   r¤   r(   r(   r)   Údepart_figure˜  s    zTexinfoTranslator.depart_figurec             C   sL   t |jtjƒs(t |jtjƒr6|j d¡r6| j d¡ ntj	t
dƒ|d d S )Nr  z

@caption{zcaption not inside a figure.)rö   )r#   r£   r   ÚfigureÚ	containerr”   rY   r$   rù   rú   r   )rD   r¤   r(   r(   r)   Úvisit_caption›  s    
zTexinfoTranslator.visit_captionc             C   s8   t |jtjƒs(t |jtjƒr4|j d¡r4| j d¡ d S )Nr  z}
)r#   r£   r   r‘  r’  r”   rY   r$   )rD   r¤   r(   r(   r)   Údepart_caption¤  s    z TexinfoTranslator.depart_captionc       	   
   C   sÊ   |d | j jkr"| j j|d  }n| jr,d S |d }| d¡dkrFd S t |¡\}}|  | dd¡¡}|  | dd¡¡}|  | dd¡¡}d| j	d	 d d
… |f }| j
 d|||||dd … f ¡ d S )Nr  z://r¸   r¿   r<   ÚheightÚaltz%s-figures/%sr]   éûÿÿÿz
@image{%s,%s,%s,%s,%s}
rš   )rA   ZimagesÚignore_missing_imagesr  r   ÚsplitextrÎ   r”   r—   r   rY   r$   )	rD   r¤   r  r„   Zextr¿   r•  r–  r]   r(   r(   r)   Úvisit_imageª  s    zTexinfoTranslator.visit_imagec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_image¾  s    zTexinfoTranslator.depart_imagec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_compoundÁ  s    z TexinfoTranslator.visit_compoundc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_compoundÄ  s    z!TexinfoTranslator.depart_compoundc             C   s   |   |¡ d S )N)r‡  )rD   r¤   r(   r(   r)   Úvisit_sidebarÇ  s    zTexinfoTranslator.visit_sidebarc             C   s   |   |¡ d S )N)rˆ  )rD   r¤   r(   r(   r)   Údepart_sidebarÊ  s    z TexinfoTranslator.depart_sidebarc             C   s   | j rtj‚n| j d¡ d S )Nz@w{()rx   r   r÷   rY   r$   )rD   r¤   r(   r(   r)   Úvisit_labelÍ  s    zTexinfoTranslator.visit_labelc             C   s   | j  d¡ d S )Nz)} )rY   r$   )rD   r¤   r(   r(   r)   Údepart_labelÔ  s    zTexinfoTranslator.depart_labelc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_legend×  s    zTexinfoTranslator.visit_legendc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_legendÚ  s    zTexinfoTranslator.depart_legendc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_substitution_referenceÝ  s    z.TexinfoTranslator.visit_substitution_referencec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_substitution_referenceà  s    z/TexinfoTranslator.depart_substitution_referencec             C   s
   t j‚d S )N)r   r÷   )rD   r¤   r(   r(   r)   Úvisit_substitution_definitionã  s    z/TexinfoTranslator.visit_substitution_definitionc             C   s   | j  d| ¡  ¡ tj‚d S )Nz.
@verbatim
<SYSTEM MESSAGE: %s>
@end verbatim
)rY   r$   r’   r   r÷   )rD   r¤   r(   r(   r)   Úvisit_system_messageæ  s    z&TexinfoTranslator.visit_system_messagec             C   s<   | j  d¡ x$| ¡  ¡ D ]}| j  d| ¡ qW tj‚d S )Nr¹   z@c %s
)rY   r$   r’   Ú
splitlinesr   r÷   )rD   r¤   Úliner(   r(   r)   Úvisit_commentì  s    zTexinfoTranslator.visit_commentc             C   s   | j  d¡ d S )Nz>>)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_problematicò  s    z#TexinfoTranslator.visit_problematicc             C   s   | j  d¡ d S )Nz<<)rY   r$   )rD   r¤   r(   r(   r)   Údepart_problematicõ  s    z$TexinfoTranslator.depart_problematicc             C   s   t jtdƒ||d d S )Nzunimplemented node type: %r)rö   )rù   rú   r   )rD   r¤   r(   r(   r)   Úunimplemented_visitø  s    z%TexinfoTranslator.unimplemented_visitc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úunknown_departureü  s    z#TexinfoTranslator.unknown_departurec             C   sâ   |   d ¡ g }tttj |ƒ}x|D ]}| |d ¡ q$W tdd„ |D ƒƒ}x€|D ]x}|d r’x| d¡D ]}|  ||¡ qjW |d  	|¡d }ndd|  }| j
 |  |¡¡ | j
 |  | ¡ d ¡¡ qRW |  d ¡ tj‚d S )	NZ	tokennamec             s   s   | ]}t |ƒV  qd S )N)r¨   )r-   r„   r(   r(   r)   r/     s    z9TexinfoTranslator.visit_productionlist.<locals>.<genexpr>rñ   z ::=z%s    r0   r¹   )r  r   r   r   Ú
productionr$   rÀ   r”   rê   ÚljustrY   r   r’   r  r   r÷   )rD   r¤   ÚnamesZproductionlistr¯  Úmaxlenrª   r*   r(   r(   r)   Úvisit_productionlist  s     



z&TexinfoTranslator.visit_productionlistc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_production  s    z"TexinfoTranslator.visit_productionc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_production  s    z#TexinfoTranslator.depart_productionc             C   s   | j  d¡ d S )Nz@code{)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_literal_emphasis  s    z(TexinfoTranslator.visit_literal_emphasisc             C   s   | j  d¡ d S )Nr¯   )rY   r$   )rD   r¤   r(   r(   r)   Údepart_literal_emphasis  s    z)TexinfoTranslator.depart_literal_emphasisc             C   s   | j  d¡ d S )Nz@code{)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_literal_strong   s    z&TexinfoTranslator.visit_literal_strongc             C   s   | j  d¡ d S )Nr¯   )rY   r$   )rD   r¤   r(   r(   r)   Údepart_literal_strong#  s    z'TexinfoTranslator.depart_literal_strongc             C   sb   t |jtjƒr|  ¡  n| j d¡ x8|d D ],}|\}}}}}|  |¡}| j d| ¡ q.W d S )Nr¹   r¥   z@geindex %s
)r#   r£   r   Z	paragraphr€   rY   r$   r–   )rD   r¤   r™   Útypr  ÚtidZtext2Zkey_r(   r(   r)   Úvisit_index&  s    

zTexinfoTranslator.visit_indexc             C   s   | j  d¡ d S )Nr¹   )rY   r$   )rD   r¤   r(   r(   r)   Úvisit_versionmodified1  s    z'TexinfoTranslator.visit_versionmodifiedc             C   s   | j  d¡ d S )Nr¹   )rY   r$   )rD   r¤   r(   r(   r)   Údepart_versionmodified4  s    z(TexinfoTranslator.depart_versionmodifiedc             C   s2   | j  d¡ | j |d ¡ | j |  |¡¡ d S )Nz:docrÝ   )rs   r›   rv   r$   rw   ræ   )rD   r¤   r(   r(   r)   Úvisit_start_of_file7  s    z%TexinfoTranslator.visit_start_of_filec             C   s   | j  ¡  | j ¡  d S )N)rv   r   rw   )rD   r¤   r(   r(   r)   Údepart_start_of_file=  s    
z&TexinfoTranslator.depart_start_of_filec             C   s(   |   | ¡ ¡}| j d| ¡ tj‚d S )Nz

@center %s

)r—   r’   rY   r$   r   r÷   )rD   r¤   Útxtr(   r(   r)   Úvisit_centeredA  s    z TexinfoTranslator.visit_centeredc             C   s   | j  dtd  ¡ d S )Nz

@subsubheading %s

Zseealso)rY   r$   r   )rD   r¤   r(   r(   r)   Úvisit_seealsoF  s    zTexinfoTranslator.visit_seealsoc             C   s   | j  d¡ d S )Nr¹   )rY   r$   )rD   r¤   r(   r(   r)   Údepart_seealsoJ  s    z TexinfoTranslator.depart_seealsoc             C   s
   t j‚d S )N)r   r÷   )rD   r¤   r(   r(   r)   Ú
visit_metaM  s    zTexinfoTranslator.visit_metac             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_glossaryP  s    z TexinfoTranslator.visit_glossaryc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_glossaryS  s    z!TexinfoTranslator.depart_glossaryc             C   sb   t tj|d ƒ}t ttj |ƒ}| j d¡ | j d dd„ |D ƒ¡d ¡ | j d¡ tj‚d S )Nr   z

z, c             s   s   | ]}|  ¡ V  qd S )N)r’   )r-   rÞ   r(   r(   r)   r/   Z  s    z/TexinfoTranslator.visit_acks.<locals>.<genexpr>r³   )	r   r   Úbullet_listr   Z	list_itemrY   r$   r5   r÷   )rD   r¤   rÈ  Z
list_itemsr(   r(   r)   Ú
visit_acksV  s     zTexinfoTranslator.visit_acksc             C   s   | j  |¡ d| _d S )Nz@deffn)ro   r$   Ú	at_deffnx)rD   r¤   r(   r(   r)   Ú
visit_desce  s    zTexinfoTranslator.visit_descc             C   s"   | j  ¡  |  ¡  | j d¡ d S )Nz@end deffn
)ro   r   r€   rY   r$   )rD   r¤   r(   r(   r)   Údepart_desci  s    
zTexinfoTranslator.depart_descc          	   C   sÆ   |  j d7  _ |jd }|dkr@x| d¡D ]}|  ||¡ q,W y4| jj |jd ¡}| |j| | j	j
|jk¡}W n ttfk
r   |}Y nX |  t|ƒ¡}| j d| j|f ¡ d| _|| _d S )Nrš   ÚobjtypeZdescriberñ   rÜ   z	
%s {%s} z@deffnx)ru   r£   r”   rê   rA   rØ   rÛ   Zget_type_nameZobject_typesr   Zprimary_domainr„   rç   r   r—   r7   rY   r$   rÊ  Údesc_type_name)rD   r¤   rÍ  rª   rÜ   r„   Úcategoryr(   r(   r)   Úvisit_desc_signaturen  s    

z&TexinfoTranslator.visit_desc_signaturec             C   s$   | j  d¡ |  jd8  _d | _d S )Nr¹   rš   )rY   r$   ru   rÎ  )rD   r¤   r(   r(   r)   Údepart_desc_signature  s    z'TexinfoTranslator.depart_desc_signaturec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_desc_signature_line†  s    z+TexinfoTranslator.visit_desc_signature_linec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_desc_signature_line‰  s    z,TexinfoTranslator.depart_desc_signature_linec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_desc_contentŒ  s    z$TexinfoTranslator.visit_desc_contentc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_desc_content  s    z%TexinfoTranslator.depart_desc_contentc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_desc_inline’  s    z#TexinfoTranslator.visit_desc_inlinec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_desc_inline•  s    z$TexinfoTranslator.depart_desc_inlinec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_desc_name›  s    z!TexinfoTranslator.visit_desc_namec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_desc_namež  s    z"TexinfoTranslator.depart_desc_namec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_desc_addname¡  s    z$TexinfoTranslator.visit_desc_addnamec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_desc_addname¤  s    z%TexinfoTranslator.depart_desc_addnamec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_desc_type§  s    z!TexinfoTranslator.visit_desc_typec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_desc_typeª  s    z"TexinfoTranslator.depart_desc_typec             C   s   | j  d¡ d S )Nz -> )rY   r$   )rD   r¤   r(   r(   r)   Úvisit_desc_returns­  s    z$TexinfoTranslator.visit_desc_returnsc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_desc_returns°  s    z%TexinfoTranslator.depart_desc_returnsc             C   s   | j  d¡ d| _d S )Nz (rš   )rY   r$   Úfirst_param)rD   r¤   r(   r(   r)   Úvisit_desc_parameterlist³  s    z*TexinfoTranslator.visit_desc_parameterlistc             C   s   | j  d¡ d S )Nú))rY   r$   )rD   r¤   r(   r(   r)   Údepart_desc_parameterlist·  s    z+TexinfoTranslator.depart_desc_parameterlistc             C   sJ   | j s| j d¡ nd| _ |  | ¡ ¡}| dd¡}| j |¡ tj‚d S )Nz, r   õ   Â z@w{ })rà  rY   r$   r   r’   r°   r   r÷   )rD   r¤   r  r(   r(   r)   Úvisit_desc_parameterº  s    z&TexinfoTranslator.visit_desc_parameterc             C   s   | j  d¡ d S )Nú[)rY   r$   )rD   r¤   r(   r(   r)   Úvisit_desc_optionalÅ  s    z%TexinfoTranslator.visit_desc_optionalc             C   s   | j  d¡ d S )Nú])rY   r$   )rD   r¤   r(   r(   r)   Údepart_desc_optionalÈ  s    z&TexinfoTranslator.depart_desc_optionalc             C   sB   |  ¡  ¡ }| jr$|| jd d ks8| jr>|| j ¡ kr>tj‚d S )Nr¸   rÍ  )r’   r²   ro   rÎ  r1   r   r÷   )rD   r¤   rÁ  r(   r(   r)   Úvisit_desc_annotationË  s    z'TexinfoTranslator.visit_desc_annotationc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_desc_annotationÖ  s    z(TexinfoTranslator.depart_desc_annotationc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_inlineÛ  s    zTexinfoTranslator.visit_inlinec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_inlineÞ  s    zTexinfoTranslator.depart_inlinec             C   s`   |  ¡ }| j d¡ | d¡rP|| jkrP| j d|  |d ¡ ¡ | j |¡ n| j d¡ d S )Nz@abbr{Zexplanationz,%s}r¯   )r’   rY   r$   Úhasattrrz   rn   r—   r›   )rD   r¤   Zabbrr(   r(   r)   Úvisit_abbreviationá  s    z$TexinfoTranslator.visit_abbreviationc             C   s   | j  | j ¡ ¡ d S )N)rY   r$   rn   r   )rD   r¤   r(   r(   r)   Údepart_abbreviationê  s    z%TexinfoTranslator.depart_abbreviationc             C   s
   |   |¡S )N)r¶  )rD   r¤   r(   r(   r)   Úvisit_manpageí  s    zTexinfoTranslator.visit_manpagec             C   s
   |   |¡S )N)r·  )rD   r¤   r(   r(   r)   Údepart_manpageð  s    z TexinfoTranslator.depart_manpagec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_download_referenceó  s    z*TexinfoTranslator.visit_download_referencec             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_download_referenceö  s    z+TexinfoTranslator.depart_download_referencec             C   s   |   |¡ d S )N)r9  )rD   r¤   r(   r(   r)   Úvisit_hlistù  s    zTexinfoTranslator.visit_hlistc             C   s   |   |¡ d S )N)r:  )rD   r¤   r(   r(   r)   Údepart_hlistü  s    zTexinfoTranslator.depart_hlistc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_hlistcolÿ  s    z TexinfoTranslator.visit_hlistcolc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_hlistcol  s    z!TexinfoTranslator.depart_hlistcolc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Úvisit_pending_xref  s    z$TexinfoTranslator.visit_pending_xrefc             C   s   d S )Nr(   )rD   r¤   r(   r(   r)   Údepart_pending_xref  s    z%TexinfoTranslator.depart_pending_xrefc             C   s(   | j  d|  | ¡ ¡ d ¡ tj‚d S )Nz@math{r¯   )rY   r$   r—   r’   r   r÷   )rD   r¤   r(   r(   r)   Ú
visit_math  s    zTexinfoTranslator.visit_mathc             C   s>   |  d¡r|  |d |¡ | j d|  | ¡ ¡ ¡ tj‚d S )Nrã   z

@example
%s
@end example

)r”   rê   rY   r$   r—   r’   r   r÷   )rD   r¤   r(   r(   r)   Úvisit_math_block  s
    
z"TexinfoTranslator.visit_math_block)r<   (  rP   rQ   rR   r˜  rU   rŒ   r   rF   rC   rJ   ra   rk   rl   rm   rT   r   r—   r“   r–   r€   r•   r´   Úcompiler   r
   rÆ   r}   rÎ   rj   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  Zvisit_doctest_blockZdepart_doctest_blockr  r  r  r  r!  r#  r$  r%  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r2  r3  r4  r5  r6  r9  r:  r@  rA  rB  rC  rD  rE  rF  rG  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rY  rZ  r[  r\  r]  r^  r`  ra  rb  rc  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  Zvisit_attentionZdepart_attentionZvisit_cautionZdepart_cautionZvisit_dangerZdepart_dangerZvisit_errorZdepart_errorZ
visit_hintZdepart_hintZvisit_importantZdepart_importantZ
visit_noteZdepart_noteZ	visit_tipZ
depart_tipZvisit_warningZ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º   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ü  rV   r(   r(   )rE   r)   rG   ‡   s  
"*!


'$	
?
				rG   )N)<rS   r´   rÁ   Úosr   Útypingr   r   r   r   r   r   r	   r
   r   r   r   r   Zdocutilsr   r   Zdocutils.nodesr   r   r   Zsphinxr   r   Zsphinx.domainsr   Zsphinx.domains.indexr   Zsphinx.errorsr   Zsphinx.localer   r   r   Zsphinx.utilr   Zsphinx.util.docutilsr   Zsphinx.util.i18nr   Zsphinx.writers.latexr   Zsphinx.builders.texinfor    Z	getLoggerrP   rù   r˜   r‚   r!   r&   rT   r7   ÚWriterr8   rG   r(   r(   r(   r)   Ú<module>   s2   8
"
