Ë ÁJÔt½¾ãó’—dZdZddlZddlmZmZddlmZmZm Z ddlm Z m Z ddl m Z mZddlmZdd lmZmZddlZdd lmZmZmZmZdd lmZmZdd lmZmZmZdd lmZGd„de «Z Gd„de «Z!Gd„de «Z"Gd„de «Z#Gd„de$«Z%Gd„d«Z&Gd„de «Z'Gd„de «Z(Gd„de«Z)dMd „Z*Gd!„d"«Z+e,d#«d$z fd%„Z-e,d&«d$z fd'„Z.d(„Z/Gd)„d*e)«Z0Gd+„d,e0«Z1Gd-„d.e0«Z2Gd/„d0e2«Z3Gd1„d2e2«Z4Gd3„d4e2«Z5Gd5„d6e2«Z6Gd7„d8e2«Z7Gd9„d:e2e1«Z8Gd;„de2«Z:Gd?„d@e2«Z;GdA„dBe0«Z<GdC„dDe)«Z=GdE„dFe=«Z>GdG„dHe>«Z?GdI„dJe>«Z@GdK„dLe)«ZAe0e3e4e5e6e7e:e9e;e=e?e@eÑ->ó@ˆŒ à(ˆÔØ ˆ?Ü“iˆGØ×#Ñ# H×$5Ñ$5Ô6Ü HØ$,×$5Ñ$5Ø$(§M¡MØ(*Ø)*Ø49Ø#*ô ,ˆŒ ð!ˆŒ Ø ×јX×1Ñ1Ô2ØŸ ™ ×*Ñ*ˆŒ ؈Œ Ü ×$Ñ$ T¨;¸ Ø2:¸8Ñ2DôFˆà˜"Š}ÐNÐNÓNˆ}Ø $Ð$ˆŒ �D•Ir!)rTN©rrrr5rLr r!r"r7r7ˆs„ñð GKØô%r!r7có—eZdZdZdd„Zy)ÚNestedStateMachinezh StateMachine run from within other StateMachine runs, to parse nested document structures. có&—||_||_|j|_|j|jj«|j |_|j |_||_tj|||«}|gk(sJd«‚|S)z› Parse `input_lines` and populate a `docutils.nodes.document` instance. Extend `StateMachineWS.run()`: set up document-wide data. z1NestedStateMachine.run() results should be empty!) rErHr9rIrJr:r;rKr rL)r2rMrNrHrKrErOs r"rLzNestedStateMachine.run¶s„€ð )ˆÔ؈Œ ØŸ ™ ˆŒ Ø ×јTŸ]™]×6Ñ6Ô7ØŸ ™ ˆŒ ØŸ ™ ˆŒ ؈Œ Ü ×$Ñ$ T¨;¸ ÓEˆØ˜"Š}ð )ð (ó )ˆ}àˆr!N©TrPr r!r"rRrR¯s „ñô r!rRcó€—eZdZdZeZgZdd„Zd„Zd„Z d„Z d„Z dd „Z didddfd „Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zy)ÚRSTStatez` reStructuredText State superclass. Contains methods used by all State subclasses. FcóN—tddœ|_tj|||«y)NÚBody©Ú state_classesÚ initial_state)rZÚnested_sm_kwargsr r4©r2Ú state_machineÚdebugs r"r4zRSTState.__init__Ôs$€Ü2?Ø28ñ!:ˆÔä×ј˜}¨eÕ4r!có|—tj|«|jj}||_|j|_|j |_|j |_|jj|_t|jd«s&|jj|j_ yy)NÚget_source_and_line) r Ú runtime_initr^rHr:r?r9rKÚparentÚhasattrra)r2rHs r"rbzRSTState.runtime_initÙsˆ€Ü×јTÔ"Ø×!Ñ!×&Ñ&ˆØˆŒ ØŸ ™ ˆŒ Ø—|‘|ˆŒ ØŸ ™ ˆŒ Ø×(Ñ(×-Ñ-ˆŒ ä�t—}‘}Ð&;Ô<Ø04×0BÑ0B×0VÑ0VˆD�M‰MÕ -ð=r!cóZ— |jj|«y#t$rYywxYw)zT Jump to input line `abs_line_offset`, ignoring jumps past the end. N)r^Ú goto_lineÚEOFError)r2Úabs_line_offsets r"rfzRSTState.goto_lineås-€ð Ø × Ñ × (Ñ (¨Õ 9øÜò Ù ð ús ‚ž *©*c ó¬—|jjd|jj›d|›d|›d|jj ›d� «|dgfS)zs Override `StateWS.no_match` to generate a system message. This code should never be run. z6Internal error: no transition pattern match. State: "z"; transitions: z ; context: z; current line: Ú.N)r:ÚsevereÚ __class__rr^Úline)r2ÚcontextÚ transitionss r"Úno_matchzRSTState.no_matchîsL€ð � ‰ ×Òð�~‰~×&Ó&ª ²WØ×!Ñ!×&Ó&ð (ô )𠘘bÐ Ð r!có —ggfS)zCalled at beginning of file.r ©r2rns r"Úbofz RSTState.bofûs €à�2ˆvˆ r!NcóD—d}|€|j}|dz }|€|j}|dz }t|«}d} |dk(r |jj «} | s|dd|j i|¤Ž} | j|||j||¬«|dk(r|jj| «n| j«| j«} |jr8t|«|z dk7r'|jjt|«|z «| S#t $rYŒÈwxYw)zg Create a new StateMachine rooted at `node` and run it over the input `block`. rNéér_©rHrKrEr )Ú nested_smr\ÚlenÚnested_sm_cacheÚpopÚ IndexErrorr_rLrHÚappendÚunlinkrhrcr^Ú next_line) r2ÚblockrNrKrEÚstate_machine_classÚstate_machine_kwargsÚ use_defaultÚ block_lengthr^Ú new_offsets r"Ú nested_parsezRSTState.nested_parseÿs:€ð ˆ Ø Ð &Ø"&§.¡.Ð Ø ˜1Ñ ˆKØ Ð 'Ø#'×#8Ñ#8Ð Ø ˜1Ñ ˆKܘ5“zˆ àˆ Ø ˜!Ò ð Ø $× 4Ñ 4× 8Ñ 8Ó :� ñÙ/ñH°d·j±jðHØ2FñHˆMà×ј% °D·I±IØ#°,ð ô @à ˜!Ò Ø × Ñ × 'Ñ '¨ Õ 6à × Ñ Ô "Ø"×2Ñ2Ó4ˆ à �<Š<œS ›Z¨,Ñ6¸1Ò<à × Ñ × (Ñ (¬¨U«°lÑ)BÔ CØÐøô!ò Ùð ús¼DÄ DÄDc óÒ—| € |j} | €|jj«} || d<| dd|ji| ¤Ž} |€|}|| j|_|j «D]\} } t| j|| | «Œ!| j|||j||¬«| j|j }| j«| j«|fS)zÀ Create a new StateMachine rooted at `node` and run it over the input `block`. Also keep track of optional intermediate blank lines and the required final one. r[r_rwr ) rxr\Úcopyr_ÚstatesÚ blank_finishÚitemsÚsetattrrLrHr~rh)r2r€rNrKr[rŠÚblank_finish_stateÚextra_settingsrEr�r‚r^ÚkeyÚvalues r"Únested_list_parsezRSTState.nested_list_parse$s€ð Ð &Ø"&§.¡.Ð Ø Ð 'Ø#'×#8Ñ#8×#=Ñ#=Ó#?Ð Ø0=И_Ñ-Ù+ñD°$·*±*ðDØ.BñDˆ à Ð %Ø!.Ð Ø@Lˆ ×ÑÐ/Ñ0Ô=Ø(×.Ñ.Ö0‰JˆC�Ü �M×(Ñ(¨Ñ7¸¸eÕ Dð1à×ј% °D·I±IØ#°,ð ô @à$×+Ñ+Ð,>Ñ?×LÑLˆ Ø×ÑÔØ×,Ñ,Ó.° Ð<Ðr^Ú previous_linerg)r2r@r–r—rHr<ÚmylevelÚlevels r"r“zRSTState.check_subsectionGs€ð �y‰yˆØ×(Ñ(ˆ Ø×$Ñ$ˆð Ø ×&Ñ& uÓ-°Ñ1ˆEð �GÒ Ø!&ˆDÔ Ü�5‹z˜QŠØ04�Ô-à × Ñ × ,Ñ ,¬S°«Z¸!©^Ô <܈NØ �G˜a‘KÒ Øà �KŠK˜4×2Ñ2°6¸6ÓBÑ B�KØøô%ò Ü�<Ó  D×$6Ñ$6Ò6Ø×#Ñ# EÔ*Ùà— ’ ˜t×6Ñ6°v¸vÓFÑF• Ùð  ús¦B7Â72DÃ+%DÄDcój—|jjdtjd|«|¬«}|S)NzTitle level inconsistent:Ú©rm)r:rkrÚ literal_block)r2Ú sourcetextr—Úerrors r"r�zRSTState.title_inconsistentps7€Ø— ‘ ×$Ñ$Ø '¬×)<Ñ)<¸RÀÓ)LØð%óˆðˆ r!cóÖ—|j}|j}|xjdz c_tj«}|xj|z c_|j ||«\}}tj |dg|¢­Ž} t| j««} |dj| «|| z }||z }||z }|jj||«|jjdz} |jj«dz} |j|jj | d| |d¬«} |j#| «|j|krt$‚||_y)z?Append new subsection to document tree. On return, check level.rur¢ÚnamesNT)rNrKrE)rHr=rr™rcÚ inline_textr•Únormalize_nameÚastextr}r9Únote_implicit_targetr^Ú line_offsetrhr†rMrfrg)r2r•r—r˜rHrŸÚ section_nodeÚ textnodesÚtitle_messagesÚ titlenodeÚnameÚoffsetÚ absoffsetÚ newabsoffsets r"r”zRSTState.new_subsectionvsN€à�y‰yˆØ×$Ñ$ˆØ ×Ò˜aÑÕÜ—}‘}“ˆ Ø � Š �|Ñ#� Ø$(×$4Ñ$4°U¸FÓ$CÑ!ˆ �>Ü—K‘K  rÐ6¨IÒ6ˆ ܘi×.Ñ.Ó0Ó1ˆØ�WÑ×$Ñ$ TÔ*ؘ Ñ!ˆ Ø˜Ñ ˆ ؘÑ&ˆ Ø � ‰ ×*Ñ*¨<¸ÔFØ×#Ñ#×/Ñ/°!Ñ3ˆØ×&Ñ&×6Ñ6Ó8¸1Ñ<ˆ Ø×(Ñ(Ø× Ñ ×,Ñ,¨V¨WÐ5ÀIبdð)ó4ˆ ð �‰�|Ô$Ø × Ñ  Ò (܈Nà$ˆÕr!có–—dj|«j«}tjd|«r5t |«dk(rgdfS|ddvr|ddj«}n|dd}d}n|}d }|j ||«\}}t j|d g|¢­Ž}|jj|«\|_ |_ |g|z|fS) zW Return a list (paragraph & messages) & a boolean: literal_block next? Ú z(?Gñ&Hà*0ð%ó2ð 2r!©F)FNN)rrrr5rRrxrzr4rbrfrprsr†r‘r™r“r�r”r¾r©rÊr r!r"rVrVÉsw„ñð #€IØ€Oó5ò Wòò !òðDIØDHó#ðN.2Ø)+Ø',Ø.2Ø/3ó =ò<9ò 'òRò %ò4+ò*ó2r!rVcó —|\}}}}g}|D]?}t|t«r|jt|d««Œ/|j|«ŒAdj |«}dt «z} |rt j| «S| S)a! Build, compile and return a regular expression based on `definition`. :Parameter: `definition`: a 4-tuple (group name, prefix, suffix, parts), where "parts" is a list of regular expressions and/or regular expression definitions to be joined into an or-group. NÚ|z.%(prefix)s(?P<%(name)s>%(or_group)s)%(suffix)s)Ú isinstanceÚtupler}Ú build_regexprºÚlocalsr¼Úcompile) Ú definitionrÒr²ÚprefixÚsuffixÚpartsÚ part_stringsÚpartÚor_groupÚregexps r"rÐrеs�€ð#-Ñ€Dˆ&�&˜%Ø€LÛˆÜ �dœEÔ "Ø × Ñ ¤ ¨T°4Ó 8Õ 9à × Ñ  Õ %ð ð �x‰x˜ Ó%€HØ =ÄÃÑ H€FÙÜ�z‰z˜&Ó!Ð!àˆ r!c óô—eZdZdZd„Zd„Zd„ZdZdZdZ dZ d Z d Z d Z d Zd e«zZdZdZd„Z d&d„Zd„Zd„Zd„Zd„Zd'd„Zd„Zd„Zd„Zd„Zd„Zd„Zd&d„Z d„Z!d „Z"d!„Z#d"Z$d#„Z%d$„Z&eeeeeeee e!d%œ Z'y)(rFz9 Parse inline markup; call the `parse()` method. có—g|_yr/)Úimplicit_dispatch)r2s r"r4zInliner.__init__Òs€Ø!#ˆÔð #r!có€—t|dd«rd}d}nXdtj›tj›d�}dtj›tj›tj ›d�}t «j«}|jt|j««d|dd d|jgd ¢fd d|d |jzd dddd|jzdd|jzgfgfdd|jz|jdgfgf}||_ ||_||_t!t#|«t%j&|j(dz|z«t%j&|j(dz|z«t%j&d|zt$j*«t%j&d|zt$j*«t%j&|j,dz|z«t%j&|j(dz|z«t%j&|j(dz|z«t%j&|j.|zdzt$j*«t%j&d|j.zd z|zt$j*«t%j&d!|zt$j*«t%j&d"|zt$j*«¬#« |_|j2j5|j0j6|j8f«|j:r;|j2j5|j0j<|j>f«|j@r<|j2j5|j0jB|jDf«yy)$NÚcharacter_level_inline_markupFz (^|(?%s)(?P__?)Ú footnotelabelz\[z(?P\]_)ú[0-9]+z\#(%s)?z\*z(?P%s)Ú backquotez(?P(:%s:)?)z`(?!`)z(\*)z(\*\*)a %(non_unescaped_whitespace_escape_before)s ( ` (?P (?P:%(simplename)s:)? (?P__?)? ) ) %(end_string_suffix)s aÍ ( (?:[ \n]+|^) # spaces or beginning of line/string < # open bracket %(non_whitespace_after)s (([^<>]|\x00[<>])+) # anything but unescaped angle brackets %(non_whitespace_escape_before)s > # close bracket ) $ # end of string z(``)z(`)z (\|_{0,2})Ú$a5 %(start_string_prefix)s (?P (?P # absolute URI (?P # scheme (http, ftp, mailto) [a-zA-Z][a-zA-Z0-9.+-]* ) : ( ( # either: (//?)? # hierarchical URI %(uric)s* # URI characters %(uri_end)s # final URI char ) ( # optional query \?%(uric)s* %(uri_end)s )? ( # optional fragment \#%(uric)s* %(uri_end)s )? ) ) | # *OR* (?P # email address z] ) ) %(end_string_suffix)s a %(start_string_prefix)s ( (pep-(?P\d+)(.txt)?) # reference to source file | (PEP\s+(?P\d+)) # reference by name ) %(end_string_suffix)sz{ %(start_string_prefix)s (RFC(-|\s+)?(?P\d+)) %(end_string_suffix)s) ÚinitialÚemphasisÚstrongÚinterpreted_or_phrase_refÚ embedded_linkÚliteralÚtargetÚsubstitution_refÚemailÚuriÚpepÚrfc)#ÚgetattrrÚopenersÚ delimitersÚclosing_delimitersÚclosersrÑrˆr1ÚvarsrlÚnon_whitespace_afterÚ simplenameÚstart_string_prefixÚend_string_suffixrÖr-rÐr¼rÒÚnon_whitespace_escape_beforeÚVERBOSEÚnon_whitespace_beforeÚ email_patternÚpatternsrÝr}ròÚstandalone_uriÚpep_referencesróÚ pep_referenceÚrfc_referencesrôÚ rfc_reference)r2rCrýrþÚargsrÖs r"rGzInliner.init_customizations×sª€ä �8Ð<¸eÔ DØ"1Ð Ø "Ñ ð Eô %6×$=Ò$=Ü$5×$@Ó$@ð$BÑ ô#4×"FÒ"FÜ"3×">Ò">Ü"3×";Ó";ð"=Ð ô‹x�}‰}‹ˆØ � ‰ ”D˜Ÿ™Ó(Ô)à!Ð#6¸à �b˜$×3Ñ3òð ð�bÐ+à/°$·/±/ÑAØ Ð'8ØØ˜TŸ_™_Ñ,ØØ(¨4¯?©?Ñ:ððð ð ðØ  4§?¡?Ñ 2Ø × &Ñ &؈Zð ð) ð ˆð8$7ˆÔ Ø!2ˆÔ؈Œ äܘuÓ%Ü—:‘:˜d×?Ñ?Ø 'ñ(Ø*;ñ<ó=ä—‘˜D×=Ñ=Ø'ñ(Ø*;ñ<ó=ä$&§J¡Jð ðñ ôŸ*™*ó %&ôŸ ™ ð ðñ ôŸ*™*ó &ô—*‘*˜T×7Ñ7¸&Ñ@Ø0ñ1ó2ä—‘˜D×=Ñ=Ø$ñ%Ø'8ñ9ó:äŸ:™: d×&GÑ&GØ(5ñ'6à(9ñ':ó;ô— ‘ ˜4×-Ñ-°Ñ4°sÑ:ÜŸ:™:ó'ä�j‰jðð4×,Ñ,ñ5-ð40ñ5ð<ñ=ô< ŸZ™Zó?)ô@�j‰jð)ð,0ñ0ô24·±ó=ô�j‰jð)ð,0ñ0ô24·±ó =ôaT>ˆŒ ðl ×Ñ×%Ñ% t§}¡}×'8Ñ'8Ø'+×':Ñ':ð'<ô =à × "Ò "Ø × "Ñ "× )Ñ )¨4¯=©=×+<Ñ+<Ø+/×+=Ñ+=ð+?ô @à × "Ò "Ø × "Ñ "× )Ñ )¨4¯=©=×+<Ñ+<Ø+/×+=Ñ+=ð+?õ @ð #r!cón—|j|_|j|_|j|_||_|jj j }|j}t|«}g}g} g} |rŽ||«} | r€| j«} || dxs| dxs | dxs| d} | || |«\}}}}| j|«| |z } |r-||jdj| «|«z }||z }g} nn|rŒŽdj| «|z}|r||j||«z }|| fS)a@ Return 2 lists: nodes (text and inline elements), and system_messages. Using `self.patterns.initial`, a pattern which matches start-strings (emphasis, strong, interpreted, phrase reference, literal, substitution reference, and inline target) and complete constructs (simple reference, footnote reference), search for a candidate. When one is found, check for validity (e.g., not a quoted '*' character). If valid, search for the corresponding end string if applicable, and check it for validity. If not found or invalid, generate a warning and ignore the start-string. Implicit inline markup (e.g. standalone URIs) is found last. :text: source string :lineno: absolute line number (cf. statemachine.get_source_and_line()) rárçÚrefendÚfnendr¢) r:r9r;rcrrér½ÚdispatchrÚ groupdictr}Úimplicit_inlinerº)r2rÁr—rHrcÚpattern_searchr Ú remainingÚ processedÚ unprocessedr˜ÚmatchÚgroupsÚmethodÚbeforeÚinlinesÚ sysmessagess r"rÅz Inliner.parsefsd€ð&Ÿ ™ ˆŒ ØŸ ™ ˆŒ ØŸ ™ ˆŒ ؈Œ ØŸ™×.Ñ.×5Ñ5ˆØ—=‘=ˆÜ Ó%ˆ ؈ ؈ ؈ÙÙ" 9Ó-ˆEÙØŸ™Ó*�Ø! &¨¡/ò#I°V¸KÑ5Hò#IØ%+¨HÑ%5ò#IØ9?À¹ñJ�á:@ÀÀuØAGó;IÑ7�˜ ¨Kà×"Ñ" 6Ô*ؘKÑ'�ÙØ ×!5Ñ!5°b·g±g¸kÓ6JØ6<ó">ñ>�Ià Ñ(�IØ"$‘Kàò!ð"—G‘G˜KÓ(¨9Ñ4ˆ Ù Ø ˜×-Ñ-¨i¸Ó@Ñ @ˆIؘ(Ð"Ð"r!z(?]z[_~*/=+a-zA-Z0-9]z-(?:%(urilast)s|%(uric)s(?=%(uri_end_delim)s))z"[-_!~*'{|}/#?^`&=+$%a-zA-Z0-9\x00]z× %(emailc)s+(?:\.%(emailc)s+)* # name (?EÑ:ˆ�˜ K°à�w  ¨;Ð6Ð6r!có†—|j|||jjtj«\}}}}}||||fSr/)r.rrërr7s r"rëzInliner.strongêsB€Ø=A¿_¹_Ø�V˜TŸ]™]×1Ñ1´5·<±<ó>AÑ:ˆ�˜ K°à�w  ¨;Ð6Ð6r!cóÄ—|jj}|j}|jd«}|j d«}|jd«}|j d«}d} |r|dd}d} n|j |«r |d|g||dgfS|j||d«} | �rn| jd«�r\|| j «z} | j d«re|rM|jjd|¬«} t||| d «} |j| | | «}|d||g|| d| gfS| j d «dd}d } | jd| jd«}t||| d «}|ddd k(rl|rP|jjd | z|¬«} t||| d «} |j| | | «}|d||g|| d| gfS|j|d||| d||«St||| d «}|j||||«\}}|d|||| d|fS|jjd |¬«} t|||d «} |j| | | «}|d||g||d| gfS)NrçÚroler¢rur¹rÔzVMultiple roles in interpreted text (both prefix and suffix present; only one allowed).r£TrÕÚ_z=Mismatch: both interpreted text role %s and reference suffix.zLInline interpreted text or phrase reference start-string without end-string.)rrìrrárr"r r½r:rÈrr#Ú phrase_refÚ interpreted)r2rr—r$rr'r(Ú rolestartr;Úpositionr)r*r,rÁr-Úescapedr+Únodelistr˜s r"rìz!Inliner.interpreted_or_phrase_refïsù€Ø—m‘m×=Ñ=ˆ Ø—‘ˆØ—[‘[ Ó-ˆ Ø—9‘9˜[Ó)ˆØ—K‘K Ó'ˆ Ø�{‰{˜6Ó"ˆØˆÙ ؘ˜"�:ˆD؉HØ × Ñ ˜uÔ %ؘ)˜8Ð$ b¨&°°Ð*;¸RÐ?Ð ?Ø×%Ñ% f¨X¨YÐ&7Ó8ˆÚ ˜Ÿ™ qÕ)Ø §¡£Ñ/ˆGØ�~‰~˜fÔ%ÙØŸ-™-×/Ñ/ðHà#ð0ó%�Cô$ F¨9°WÐ$=¸tÓD�DØ×*Ñ*¨4°°sÓ;�CØ! * 9Ð-°¨u°f¸W¸XÐ6FÈÈÐMÐMØ—~‘~ hÓ/°°"Ð5�Ø#�Ø—o‘oÐ&8 x§~¡~°aÓ'8Ð9ˆGÜ  ¨ °7Ð!;¸TÓBˆIؘ˜ˆ~ Ò$ÙØŸ-™-×/Ñ/ð.Ø08ñ9Ø?Eð0óG�Cô$ F¨9°WÐ$=¸tÓD�DØ×*Ñ*¨4°°sÓ;�CØ! * 9Ð-°¨u°f¸W¸XÐ6FÈÈÐMÐMØ—‘ v¨k¨zÐ':¸FÀ7À8ÐÀÓE� Ø%)×%5Ñ%5°iÀÈ$Ø6<ó&>Ñ"�˜(à˜z  Ð*¨Hؘw˜xÐ(¨(ð4ð4à�m‰m×#Ñ#ð$Ø*0ð$ó2ˆô˜˜z¨(Ð3°TÓ:ˆØ×јt T¨3Ó/ˆØ�k�zÐ" S E¨6°(°)Ð+<¸s¸eÐCÐCr!Ncó:—|jjj|«}|�r£|d|jd«}t |«}t |d«}|j d«} t | d«} | j d«} | j d«rƒ| s�|jjj| «s\d} tt | dd««} tj|j d«| ¬ «}tt | dd««|_ n”d } t|j d««}d jd „|D««} |j!t | ««} | j d«r| dd dz} tj|j d«| ¬«}d|_| st%d| z«‚|s+| }t |«}| }n|}t |«}d}t |d«}t|«}tj&||t|«¬«}||d_|g}|d ddk(r;|r& dk(r! |d<|j*j-|«nÇ|r  d k(r |d<nºd|d<n´|r’|dj/|« dk(r< |d<|j*j1|«|j*j-|«n+ |d<|j*j3||j4«|j/|«n ||d<|j*j-|«|||gfS)NrTrvz\_r<r²r¹ru©ÚrefnameròÚ c3óZK—|]#}dj|j««–—Œ%y­w©r¢N)rºÚsplit©Ú.0rØs r"Ú z%Inliner.phrase_ref..9s'èø€ð!:Ù-8 Tð"$§¡¨¯©«×!6Ù-8ùs‚)+éþÿÿÿ©Úrefurizproblem with embedded link: %r©r²Ú__rErOÚ anonymousr¨)rrír½rárr"ÚendswithròrrªrrïrÚindirect_reference_namerrºÚ adjust_uriÚ referencedr Ú referencer+r9Ú note_refnamer}Únote_indirect_targetÚnote_explicit_targetrc)r2rÚafterr+rArÁrÚ unescapedÚrawtextÚ aliastextÚ rawaliastextÚunderscore_escapedÚ aliastypeÚaliasrïÚ alias_partsrErWÚ node_lists r"r=zInliner.phrase_ref#së€à— ‘ ×+Ñ+×2Ñ2°7Ó;ˆÚ ؘ?˜EŸK™K¨›NÐ+ˆDÜ  ›ˆIܘt TÓ*ˆGØŸ ™  A›ˆIÜ# I¨tÓ4ˆLØ!-×!6Ñ!6°uÓ!=Ð Ø×"Ñ" 3Ô'Ù+Ø ŸM™M×-Ñ-×3Ñ3°IÔ>Ø"� Ü&¤x° ¸#¸2°Ó'?Ó@�ÜŸ™ e§k¡k°!£n¸eÔD�Ü1JÜ4<¸YÀsȸ^Ó4Ló2N�Õ.ð"� ä6°u·{±{À1³~ÓF� ØŸ™ñ!:Ù-8ó!:ó:�àŸ™¬°«Ó8�Ø—>‘> %Ô(Ø! # 2˜J¨Ñ,�EÜŸ™ e§k¡k°!£n¸UÔC�Ø$%�Ô!ÙÜ&Ð'GØ)2ñ(3ó4ð4áØ�Ü$ T›N� Ø&‘àˆDÜ  ›ˆI؈Fܘw¨Ó-ˆGä  Ó+ˆÜ—O‘O I¨tÜ)BÀ9Ó)MôOˆ à!(ˆ �!‰ Ôà�Kˆ à �R�Sˆ>˜TÒ !Ù˜9¨Ò.Ø',� ˜)Ñ$Ø— ‘ ×*Ñ*¨9Õ5á˜Y¨%Ò/Ø&+� ˜(Ò#à)*� ˜+Ò&áØ�w‘×&Ñ& wÔ/Ø Ò&Ø+0�I˜iÑ(Ø—M‘M×6Ñ6°vÔ>Ø—M‘M×.Ñ.¨yÕ9à*/�I˜hÑ'Ø—M‘M×6Ñ6°v¸t¿{¹{ÔKà× Ñ  Õ(à'.� ˜)Ñ$Ø— ‘ ×*Ñ*¨9Ô5Ø�y %¨Ð+Ð+r!có^—|jjj|«}|rd|zS|S)Númailto:)rrñr)r2ròrs r"rUzInliner.adjust_urins.€Ø— ‘ ×#Ñ#×)Ñ)¨#Ó.ˆÙ ؘs‘?Ð "àˆJr!có—tj||j||j«\}}|r||||||«\}}|||zfS|jj d|z|¬«} |j ||| «g|| gzfS)Nz#Unknown interpreted text role "%s".r£)rr;r;r:r¦r#) r2r+rÁr;r—Úrole_fnr˜rÚ messages2r,s r"r>zInliner.interpretedusŸ€Ü!ŸJ™J t¨T¯]©]¸FØ'+§}¡}ó6ш�á Ù& t¨Y¸¸fÀdÓKÑ ˆE�9ؘ( YÑ.Ð.Ð .à—-‘-×%Ñ%Ø5¸Ñ<Øð&óˆCð×%Ñ% i°¸CÓ@ÐAØ ˜uÑ$ð&ð &r!cóŠ—|j|||jjtjd¬«\}}}}}||||fS)NT)r&)r.rrîrr7s r"rîzInliner.literal‚sL€Ø=A¿_¹_Ø�V˜TŸ]™]×2Ñ2´E·M±MØ"&ð>Mó>(Ñ:ˆ�˜ K°ð�w  ¨;Ð6Ð6r!có”—|j|||jjtj«\}}}}}|r…t |dtj«rht |«dk(sJ‚|d}t |j««} |dj| «|jj||j«||||fS)Nrrur¨) r.rrïrrÎryrªr«r}r9rZrc) r2rr—rrrrr8rïr²s r"Úinline_internal_targetzInliner.inline_internal_targetˆs«€Ø=A¿_¹_Ø�V˜TŸ]™]×1Ñ1´5·<±<ó>AÑ:ˆ�˜ K°á ”z '¨!¡*¬e¯l©lÔ;Ü�w“< 1Ò$Ð $Ð$ؘQ‘ZˆFÜ! &§-¡-£/Ó2ˆDØ �7‰O× "Ñ " 4Ô (Ø �M‰M× .Ñ .¨v°t·{±{Ô CØ�w  ¨;Ð6Ð6r!cóü—|j|||jjtj«\}}}}}t |«dk(r­|d}t |tj«rŽ|j«} |jj|| «|dddk(rZtjd| ›|›�d«} |dddk(rd| d <n)t| «| d <|jj| «| |z } | g}||||fS) Nrurr¹r<rÍr¢rMrQrRrE) r.rrðrÚsubstitution_referenceryrÎr«r9Únote_substitution_refrWrªrX) r2rr—rrrrr8Ú subref_nodeÚ subref_textÚreference_nodes r"rnzInliner.substitution_reference“sÿ€Ø=A¿_¹_Ø�V˜TŸ]™]×;Ñ;Ü×*Ñ*ó>,Ñ:ˆ�˜ K°ô ˆw‹<˜1Ò Ø! !™*ˆKܘ+¤u×'CÑ'CÔDØ)×0Ñ0Ó2� Ø— ‘ ×3Ñ3°KÀÔMؘR˜S�> SÒ(Ü%*§_¢_Ù#.± Ð:¸Bó&@�Nà   �~¨Ò-Ø67˜ {Ò3ä4BÀ;Ó4O˜ yÑ1ØŸ ™ ×2Ñ2°>ÔBØ" kÑ1�NØ-Ð.�GØ�w  ¨;Ð6Ð6r!có0—|jd«}t|«}|j}|d|jd«}||j d«d}|jd«rNt j d|z|¬«}|t j|«z }|jj|«nát jd|z«}|ddk(r&|d d}d |d <|jj|«n@|d k(r#d }d |d <|jj|«n|t j|«z }|r ||d <|jj|«tj|jj «r|j#«}||g|gfS)ze Handles `nodes.footnote_reference` and `nodes.citation_reference` elements. råNräÚ citationlabelz[%s]_rDrÚ#ruÚautoÚ*r¢rE)r"rªrrárrÚcitation_referenceÚTextr9Únote_citation_refÚfootnote_referenceÚnote_autofootnote_refÚnote_symbol_footnote_refÚnote_footnote_refrÚget_trim_footnote_ref_spacerCr») r2rr—ÚlabelrErrrÚrefnodes r"r{zInliner.footnote_reference¨st€ð — ‘ ˜OÓ,ˆÜ  Ó'ˆØ—‘ˆØÐ-˜Ÿ™ WÓ-Ð.ˆØ˜5Ÿ9™9 WÓ-Ð.Ð/ˆ Ø �;‰;�Ô 'Ü×.Ñ.¨w¸©Ø7>ô@ˆGà ”u—z‘z %Ó(Ñ (ˆGØ �M‰M× +Ñ +¨GÕ 4ä×.Ñ.¨w¸©Ó?ˆGØ�q‰z˜SÒ Ø! ! "˜+�Ø"#�˜‘Ø— ‘ ×3Ñ3°GÕ<ؘC’Ø�Ø"%�˜‘Ø— ‘ ×6Ñ6Øõðœ5Ÿ:™: eÓ,Ñ,�ÙØ%,�˜ Ñ"Ø— ‘ ×/Ñ/°Ô8Ü×0Ñ0°·±×1GÑ1GÔHØŸ™›�ؘ�y )¨RÐ/Ð/r!cóz—|jd«}t|«}tj||jd«z|t |«¬«}||d_|rd|d<n ||d<|j j|«|j}|jd«}|jd«} |d||g|| dgfS)NrEr rPrrurRrä) r"rªrrWrr+r9rXrrár) r2rr—rRÚ referencenamerEÚ referencenoderr'r(s r"rWzInliner.referenceËs¿€ØŸ ™  IÓ.ˆ Ü  Ó/ˆÜŸ™Ø ˜EŸK™K¨Ó1Ñ 1°=Ü*¨=Ó9ô;ˆ ð&3ˆ �aÑÔ"Ù Ø)*ˆM˜+Ò &à'.ˆM˜)Ñ $Ø �M‰M× &Ñ & }Ô 5Ø—‘ˆØ—[‘[ Ó)ˆ Ø—9‘9˜WÓ%ˆØ�k�zÐ" ] O°V¸H¸IÐ5FÈÐJÐJr!có*—|j||d¬«S)NT)rR)rW)r2rr—s r"Úanonymous_referencezInliner.anonymous_referenceÜs€Ø�~‰~˜e V°tˆ~Ó<Ðrîrlrnr{rWr†rrršrrr r r!r"rFrFÌsþ„ñò#ò M@ò^1#ðl'ÐØ#3Ð Ø-FÐ*Ø$Ðà8€Jð 8€Dà€Mà&€GðCÁVÃXÑM€GØ 6€Fð€MòBð&(-óHò0ò7ò 7ò 2DóhI,òVò &ò7ò 7ò7ò*!0óFKò"=ò !ò Ið€GòIò"ð,ØØ.ØØ,Ø(Ø+ØØ)ñ+�Hr!rFÚarucó—t|«|z Sr/©Úord©ÚsÚ_zeros r"Ú_loweralpha_to_intr«&ó€Ü ˆq‹6�E‰>Ðr!ÚAcó—t|«|z Sr/r¦r¨s r"Ú_upperalpha_to_intr¯*r¬r!cóH—tj|j««Sr/)rÚ fromRomanÚupper)r©s r"Ú_lowerroman_to_intr³.s€Ü �?‰?˜1Ÿ7™7›9Ó %Ð%r!c óü—eZdZdZej j Z e«Z edddd¬«edddd¬«edd dd¬«d œe_ ejj«e_ gd ¢e_ d d dddd œe_ eeeeej&d œe_ie_ejD]1Zej0ejedz«ej*e<Œ3ej0d«Z ej0d«Z ej0d«Z iZ ded<ded<ded<ded<dejzed<dezed <d!ezed"<d#ezed$<d%ezed&<d'ezed(<ejD]cZd)e›d*ej<ejej>«›ed›ej<ejej@«›d�ee<Œed+d,ezd-d.ezd/d0eed1d2d3ezdd4œ Z!d4Z"d5„Z#d6„Z$ej0d7«Z%d8„Z&d9„Z'd:„Z(d;„Z)d<„Z*d=„Z+dxd?„Z,d@„Z-dA„Z.dB„Z/dC„Z0dD„Z1dE„Z2dF„Z3dG„Z4dH„Z5dI„Z6dJ„Z7dK„Z8dL„Z9dM„Z:dN„Z;dO„ZdR„Z?dS„Z@dydT„ZAdzdU„ZBdV„ZCe«ZD eej0dWeEeF«zejŽ«ej0dXeEeF«zejŽ«ej0dYeEeF«zejŽ«¬Z«eD_!d[„ZHd\„ZId]„ZJd^„ZKd_„ZLd`„ZMda„ZNdb„ZOdc„ZPdd„ZQde„ZRdf„ZSdg„ZTdh„ZUdi„ZVdj„ZWdk„ZXeHej0dleFj²zejŽ«feIej0dmeFj²zejŽ«feJej0dnejŽ«feOej0doejŽ«feQej0dpeFj²zejŽ«fgeD_Zdq„Z[dr„Z\ds„Z]dt„Z^du„Z_dv„Z`dw„Zay>){rXz: Generic classifier of the first line of a block. Ú(Ú)rur¹)rÔrÕrárr¢rrj)ÚparensÚrparenÚperiod)ÚarabicÚ loweralphaÚ upperalphaÚ lowerromanÚ upperromanræz[a-z]z[A-Z]z [ivxlcdm]+z [IVXLCDM]+rèz\+-[-+]+-\+ *$z =+( +=+)+ *$z=+[ =]*$z[!-/:-@[-`{-~]Únonalphanum7bitz[a-zA-Z]Úalphaz [a-zA-Z0-9]Úalphanumz [a-zA-Z0-9_-]Ú alphanumpluszJ(%(arabic)s|%(loweralpha)s|%(upperalpha)s|%(lowerroman)s|%(upperroman)s|#)Úenumz%(alphanum)s%(alphanumplus)s*Úoptnamez%(%(alpha)s%(alphanumplus)s*|<[^<>]+>)Úoptargz!(-|\+)%(alphanum)s( ?%(optarg)s)?Úshortoptz"(--|/)%(optname)s([ =]%(optarg)s)?Úlongoptz(%(shortopt)s|%(longopt)s)Úoptionz(?P<Ú>u[-+*•‣â�ƒ]( +|$)z((%(parens)s|%(rparen)s|%(period)s)( +|$)z1:(?![: ])([^:\\]|\\.|:(?!([ `]|$)))*(?>>( +|$)z\|( +|$)z \.\.( +|$)z__( +|$)z(%(nonalphanum7bit)s)\1* *$) ÚbulletÚ enumeratorÚ field_markerÚ option_markerÚdoctestÚ line_blockÚgrid_table_topÚsimple_table_topÚexplicit_markuprRrmrÁcóä—|jj«\}}}}|j||«}|xj|z c_|s$|xj|j d«z c_||gfS)z Block quote.z Block quote)r^Ú get_indentedÚ block_quotercrÊ) r2rrnÚ next_stateÚindentedÚindentr­rŠÚelementss r"rØz Body.indentŽsl€ð× Ñ × ,Ñ ,Ó .ñ ˆ�6˜;¨ à×#Ñ# H¨kÓ:ˆØ � Š �xÑ� ÙØ �KŠK˜4×0Ñ0°Ó?Ñ ?�Kؘ  BÐ&Ð&r!cóª—g}|rÎtjdj|«¬«}|jj |dz«\|_|_|j||«\}}}}}|j|||«|j|«|r"|j|||z«\} } || z }|| z }|}|r|ds|dd}|dz }|r|dsŒ|rŒÎ|S)Nr·©r+rur) rrÕrºr^rar@rmÚsplit_attributionr†r}Úparse_attribution) r2r×r­rÙÚ blockquoteÚblockquote_linesÚattribution_linesÚattribution_offsetÚnew_line_offsetÚ attributionr˜s r"rÕzBody.block_quote˜s€ØˆÙÜ×*Ñ*°T·Y±Y¸xÓ5HÔIˆJà×#Ñ#×7Ñ7¸ ÀA¹ ÓFñ ˆZÔ   ¤ð !%× 6Ñ 6°xÀÓ Mñ  Ð Ø Ø Ø Ø Ø × Ñ Ð.° ¸ZÔ HØ �O‰O˜JÔ 'Ù Ø(,×(>Ñ(>Ø% {Ð3EÑ'Eó)GÑ%� ˜Xà˜kÑ)� ؘHÑ$�Ø)ˆKÙ 8¨A¢;Ø# A B˜<�ؘqÑ � ñ 8¨A£;ò#ð(ˆr!u(---?(?!-)|—) *(?=[^ \n])có�—d}d}tt|««D]¥}||j«}|rŒ|r‡||dz k(r|jj |«}|rb|j ||«\}} |rK|||} | j |j«d¬«| j | d¬«|d|| |||d||zfcSd}Œ¤|}Œ§|ddddfS)aé Check for a block quote attribution and split it off: * First line after a blank line must begin with a dash ("--", "---", em-dash; matches `self.attribution_pattern`). * Every line after that must have consistent indentation. * Attributions must be preceded by block quote content. Return a tuple of: (block quote content lines, attribution lines, attribution offset, remaining indented lines, remaining lines offset). NFru)r)ráT)Úrangeryr»Úattribution_patternrÚcheck_attributionÚ trim_leftr) r2r×r­ÚblankÚ nonblank_seenÚirmrÚattribution_endrØÚa_liness r"rÜzBody.split_attribution³sü€ðˆØˆ Ü”s˜8“}Ö%ˆAؘA‘;×%Ñ%Ó'ˆDÙÙ  U¨a°!©e¢^Ø ×4Ñ4×:Ñ:¸4Ó@�EÙØ26×2HÑ2HØ$ aó3)Ñ/˜¨á*Ø&.¨q°Ð&A˜GØ#×-Ñ-¨e¯i©i«k¸qÐ-ÔAØ#×-Ñ-¨f¸AÐ-Ô>Ø$,¨R¨a L°'Ø$% x°Ð0@Ð'AØ$/°/Ñ$Að$CòCð!%‘ à‘ð#&ð&˜T 4¨¨tÐ3Ð 3r!có6—d}|dz}t|dzt|««D]k}||j«}|snY|€&t|«t|j««z }ŒBt|«t|j««z |k7sŒky|dz }||xsdfS)zt Check attribution shape. Return the index past the end of the attribution, and the indent. Nru)NNr)råryr»Úlstrip)r2r×Úattribution_startrØrërms r"rçzBody.check_attributionÖs�€ð ˆØ  Ñ !ˆÜÐ(¨1Ñ,¬c°(«mÖ<ˆAؘA‘;×%Ñ%Ó'ˆDÙÙØˆ~ܘT›¤S¨¯©«Ó%7Ñ7‘Ü�T“œS §¡£Ó/Ñ/°6Ó9Ù!ð=ð �‰FˆAØ�6’;˜QÐÐr!cóú—dj|«j«}d|z}|j||«\}}tj|dg|¢­Ž}|j j |«\|_|_||fS)Nr·rur¢) rºr»r©rrãr^rar@rm)r2r×r­rÁr—r¯r˜rKs r"rÝzBody.parse_attributionêsy€Ø�y‰y˜Ó"×)Ñ)Ó+ˆØ�[‘ˆØ"×.Ñ.¨t°VÓ<ш �8Ü× Ñ   rÐ6¨IÒ6ˆØ!%×!3Ñ!3×!GÑ!GÈÓ!OшŒ �T”YØ�Xˆ~Ðr!cóT—tj«}|jj«\|_|_|xj |z c_|jd|d<|j|j««\}}||z }|jjdz}|j|jj|d|jj«dz|d|¬«\}}|j|«|s$|xj |jd«z c_g|gfS)úBullet list item.rrÊruNÚ BulletList©rNrKr[rŠz Bullet list)rÚ bullet_listr^rar@rmrcrÚ list_itemrr­r‘rMrhrfrÊ) r2rrnrÖÚ bulletlistrërŠr³râs r"rÊz Body.bulletòs€ä×&Ñ&Ó(ˆ à ×.Ñ.×BÑBÓDñ ˆÔ Ø ŒØ � Š �zÑ!� Ø$Ÿ|™|¨A™ˆ �8ÑØŸ.™.¨¯©«Ó5‰ˆˆ<Ø�a‰ˆ Ø×#Ñ#×/Ñ/°!Ñ3ˆØ(,×(>Ñ(>Ø× Ñ ×,Ñ,¨V¨WÐ5Ø×-Ñ-×=Ñ=Ó?À!ÑCب\Ø'ð )?ó))Ñ%ˆ˜ð �‰�Ô'ÙØ �KŠK˜4×0Ñ0°Ó?Ñ ?�KØ�:˜rÐ!Ð!r!có0—|jj|dr |jj|«\}}}n |jj|«\}}}}t j dj |««}|r|j|||¬«||fS)Nr·©rNrK)r^rmÚget_known_indentedÚget_first_known_indentedrr÷rºr†)r2rØr×r­rŠÚlistitems r"r÷zBody.list_items™€Ø × Ñ × "Ñ " 6 7Ñ +à×"Ñ"×5Ñ5°fÓ=ñ 0ˆH�k¡<ð×"Ñ"×;Ñ;¸FÓCñ 8ˆH�f˜k¨<ä—?‘? 4§9¡9¨XÓ#6Ó7ˆÙ Ø × Ñ ˜h°[Ø#+ð ô -à˜Ð%Ð%r!c ó¨—|j|«\}}}}|j|||«stjd«‚t j «}|xj |z c_|dk(rd|d<n||d<|jj|j|d<|jj|j|d<|dk7r<||d<|jjd |›d |›d �«} |xj | z c_|j|j««\} } || z }|jj dz} |j#|jj$| d |jj'«dz|d | |||dk(dœ¬«\} } |j)| «| s$|xj |j+d«z c_g|gfS)zEnumerated List ItemrÁrurºÚenumtyperÔrÕruráz,Enumerated list start value not ordinal-1: "z " (ordinal r¶NÚEnumeratedList)Ú lastordinalÚformatrv)rNrKr[rŠrŽzEnumerated list)Úparse_enumeratorÚis_enumerated_list_itemrÚTransitionCorrectionrÚenumerated_listrcrÃÚ formatinforÔrÕr:Úinfor÷rr^r­r‘rMrhrfrÊ)r2rrnrÖrÚsequencerÁÚordinalÚenumlistr,rýrŠr³Únewline_offsets r"rËzBody.enumeratorsÅ€à*.×*?Ñ*?ÀÓ*FÑ'ˆ�˜$ Ø×+Ñ+¨G°X¸vÔFÜ×3Ñ3°FÓ;Ð ;Ü×(Ñ(Ó*ˆØ � Š �xÑ� Ø �sŠ?Ø#+ˆH�ZÒ à#+ˆH�ZÑ Ø!ŸY™Y×1Ñ1°&Ñ9×@Ñ@ˆ�ÑØ!ŸY™Y×1Ñ1°&Ñ9×@Ñ@ˆ�ÑØ �aŠ<Ø 'ˆH�WÑ Ø—-‘-×$Ò$âšð"ó#ˆCð �KŠK˜3Ñ �KØ!%§¡°· ± ³ Ó!<ш�,Ø�HшØ×#Ñ#×/Ñ/°!Ñ3ˆØ'+×'=Ñ'=Ø× Ñ ×,Ñ,¨V¨WÐ5Ø×-Ñ-×=Ñ=Ó?À!ÑCØÐ+;Ø'Ø-4Ø(.Ø&.°#¡oñ7ð (>ó(8Ñ$ˆ˜ ð �‰�~Ô&ÙØ �KŠK˜4×0Ñ0Ð1BÓCÑ C�KØ�:˜rÐ!Ð!r!Ncó —|j«}d}|jjD] }||sŒ n td«‚|||jj|j |jj|j }|dk(rd}n=|r, |jj|j|«r|}n|dk(rd}n|dk(rd}|sP|jjD],}|jj|j|«sŒ,n td «‚|dk(rd }n |jj||«}||||fS#t$rtd|z«‚wxYw#tj$rd }YŒ8wxYw) aA Analyze an enumerator and return the results. :Return: - the enumerator format ('period', 'parens', or 'rparen'), - the sequence used ('arabic', 'loweralpha', 'upperroman', etc.), - the text of the enumerator, stripped of formatting, and - the ordinal value of the enumerator ('a' -> 1, 'ii' -> 2, etc.; ``None`` is returned for invalid enumerator text). The enumerator format has already been determined by the regular expression match. If `expected_sequence` is given, that sequence is tried first. If not, we check for Roman numeral 1. This way, single-character Roman numerals (which are also alphabetical) can be matched. If no sequence has been matched, all sequences are checked in order. r¢zenumerator format not matchedruzunknown enumerator sequence: %srër½ÚIr¾zenumerator sequence not matchedruN)rrÃÚformatsr)rrárÚsequenceregexpsrÚKeyErrorÚ sequencesÚ convertersrÚInvalidRomanNumeralError)r2rÚexpected_sequencerr rrÁr s r"rzBody.parse_enumerator6s™€ð$—O‘OÓ%ˆ ؈ؗi‘i×'Ô'ˆFØ˜Ó Ùð(ôÐ=Ó>Ð >Ø˜Ñ  §¡×!5Ñ!5°fÑ!=×!CÑ!CØ#'§9¡9×#7Ñ#7¸Ñ#?×#CÑ#CðEˆà �3Š;؉HÙ ð .Ø—9‘9×,Ñ,Ð->Ñ?×EÑEÀdÔKØ0�Høð�SŠ[Ø#‰HØ �SŠ[Ø#ˆHÙØ ŸI™I×/Ô/�Ø—9‘9×,Ñ,¨XÑ6×<Ñ<¸TÕBÙð0ô"Ð"CÓDÐDØ �sŠ?؉Gð Ø8˜$Ÿ)™)×.Ñ.¨xÑ8¸Ó>�ð�x  wÐ.Ð.øô)ò .Ü!Ð"CØ$,ñ#-ó.ð.ð .ûô$×1Ñ1ò Ø’ð úsÂ*EÄ*E*ÅE'Å*FÆFcó’—|€y |jj«}|jj«|ddj «sy|j |dz||«}|r+|\}} |j |«s|j |«ry yy#t$r|jj«YywxYw#t$rYywxYw)zç Check validity based on the ordinal value and the second line. Return true if the ordinal is valid and the second line is blank, indented, or starts with the next enumerator or an auto-enumerator. Nru)r^rržrgÚstripÚmake_enumeratorr�Ú TypeError)r2r r rrÚresultÚnext_enumeratorÚauto_enumerators r"rzBody.is_enumerated_list_itemmsÝ€ð ˆ?Øð /Ø×*Ñ*×4Ñ4Ó6ˆIð × Ñ × ,Ñ ,Ô .ؘ˜!ˆ}×"Ñ"Ô$ØØ×%Ñ% g°¡k°8¸VÓDˆÙ Ø/5Ñ ,ˆO˜_ð Ø×(Ñ(¨Ô9Ø ×+Ñ+¨OÔ<Øð=ñøô!ò Ø × Ñ × ,Ñ ,Ô .Ùð ûôò ØØð ús#…BÁ+"B:Â#B7Â6B7Â: CÃCcó�—|dk(rd}nË|dk(r t|«}nº|jd«r!|dkDryt|td«zdz «}n6|jd«r t j |«}ntd |z«‚|jd «r|j«}n0|jd «r|j«}ntd |z«‚|jj|}|j|z|jzd z}|jdz|jzd z}||fS#tj $rYywxYw) zÒ Construct and return the next enumerated list item marker, and an auto-enumerator ("#" instead of the regular enumerator). Return ``None`` for invalid (out of range) ordinals. rurºrÀéNr¤rurz!unknown enumerator sequence: "%s"r‰r²rF)ÚstrrSÚchrr§rÚtoRomanÚ RomanErrorr)r�r‰r²rÃrrÔrÕ)r2r r rrËrrrs r"rzBody.make_enumeratorŠsX€ð �sŠ?؉JØ ˜Ò !ܘW›‰Jà× Ñ  Ô)ؘR’<ØÜ  ¬3¨s«8Ñ!3°aÑ!7Ó8‘ Ø×"Ñ" 7Ô+ð Ü!&§¡¨wÓ!7‘Jô"Ð"EØ$,ñ#-ó.ð.à×"Ñ" 7Ô+Ø'×-Ñ-Ó/‘ Ø×$Ñ$ WÔ-Ø'×-Ñ-Ó/‘ ä!Ð"EØ$,ñ#-ó.ð.à—Y‘Y×)Ñ)¨&Ñ1ˆ Ø%×,Ñ,¨zÑ9¸J×ó()Ñ$ˆ˜ ð �‰�~Ô&ÙØ �KŠK˜4×0Ñ0°Ó>Ñ >�KØ�:˜rÐ!Ð!r!có—|j|«}|jj«\}}|jj«}|jj |j ««\}}}} t j«} || _|| _ |j||«\} } | t j|dg| ¢­Žz } t jdj|«g| ¢­Ž} | | z } |r|j||| «| | fS)Nr¢r·)Úparse_field_markerr^rarÇrürrr&r@rmr©Ú field_nameÚ field_bodyrºÚparse_field_body)r2rr²ÚsrcÚsrcliner—r×rØr­rŠÚ field_nodeÚ name_nodesÚ name_messagesr*s r"r&z Body.fieldÀsú€Ø×&Ñ& uÓ-ˆØ×)Ñ)×=Ñ=Ó?‰ ˆˆWØ×#Ñ#×3Ñ3Ó5ˆà × Ñ × 8Ñ 8¸¿¹»Ó Eñ ˆ�6˜;¨ ä—[‘[“]ˆ ؈ ÔØ!ˆ ŒØ$(×$4Ñ$4°T¸6Ó$BÑ!ˆ �MØ”e×&Ñ& t¨RÐ=°*Ò=Ñ=ˆ Ü×%Ñ% d§i¡i°Ó&9ÐJ¸MÒJˆ Ø�jÑ ˆ Ù Ø × !Ñ ! (¨K¸Ô Dؘ<Ð'Ð'r!cóT—|j«dd}|d|jd«}|S)z6Extract & return field name from a field marker match.ruNÚ:)r"Úrfind)r2rr&s r"r(zBody.parse_field_markerÑs/€à— ‘ “ ˜a˜bÐ!ˆØÐ'�u—{‘{ 3Ó'Ð(ˆØˆ r!có,—|j|||¬«y)Nrú)r†)r2r×r³rKs r"r+zBody.parse_field_body×s€Ø ×ј(°¸dÐÕCr!có¨—tj«}|jj«\|_|_ |j |«\}}|xj|z c_ ||z }|jjdz} |j!|jj"| d|jj%«dz|d|¬«\}}|j'|«|s$|xj|jd«z c_ g|gfS#t$r½}|jjd|z«}|xj|z c_ |jj|j««\} } } }|j| | «} |xj| z c_ |s$|xj|jd«z c_ g|gfcYd}~Sd}~wwxYw)úOption list item.zInvalid option list marker: %sz Option listNruÚ OptionListrõ)rÚ option_listr^rar@rmÚoption_list_itemrr:r¦rcrürrÕrÊr­r‘rMrhrf)r2rrnrÖÚ optionlistrýrŠr¦r,r×rØr­rÙr³r s r"rÍzBody.option_markerÚs¯€ä×&Ñ&Ó(ˆ à × Ñ × 3Ñ 3Ó 5ñ ˆÔ ˜JœOð &Ø%)×%:Ñ%:¸5Ó%AÑ "ˆH�lð � Š �zÑ!� Ø�hш Ø×#Ñ#×/Ñ/°!Ñ3ˆØ'+×'=Ñ'=Ø× Ñ ×,Ñ,¨V¨WÐ5Ø×-Ñ-×=Ñ=Ó?À!ÑCب\Ø'ð (>ó()Ñ$ˆ˜ ð �‰�~Ô&ÙØ �KŠK˜4×0Ñ0°Ó?Ñ ?�KØ�:˜rÐ!Ð!øô/ò &à—-‘-×%Ñ%Ð&FØ(-ñ'.ó/ˆCà �KŠK˜3Ñ �Kà×#Ñ#×<Ñ<¸U¿Y¹Y»[ÓIñ ˆX�v˜{¨Là×'Ñ'¨°+Ó>ˆHØ �KŠK˜8Ñ #�KÙØ— ’ ˜t×4Ñ4°]ÓCÑC• Ø�z 2Ð%Õ %ûð &ús½D Ä GÄB2G ÇGÇ GcóÚ—|jj«}|j|«}|jj|j ««\}}}}|s&|j |«t jd«‚tjdg|¢­Ž}tjdj|««} tjd|| «} |r|j||| ¬«| |fS)NrÁr¢r·rú)r^rhÚparse_option_markerrürrfrrrÚ option_groupÚ descriptionrºr9r†) r2rr³Úoptionsr×rØr­rŠr=r>r9s r"r9zBody.option_list_itemúsÛ€Ø×#Ñ#×3Ñ3Ó5ˆØ×*Ñ*¨5Ó1ˆà × Ñ × 8Ñ 8¸¿¹»Ó Eñ ˆ�6˜;¨ áØ �N‰N˜6Ô "Ü×3Ñ3°FÓ;Ð ;Ü×)Ñ)¨"Ð7¨wÒ7ˆ Ü×'Ñ'¨¯ © °(Ó(;Ó<ˆ Ü ×1Ñ1°"°lØ2=ó?Ðá Ø × Ñ ˜h°[Ø#.ð ô 0à Ð-Ð-r!cóœ—g}|j«j«jd«}|D�]–}|j«}d}|djdd«}t|«dkDr||ddd}nbt|d«dkDrQ|dj d«r|dj d «r|dj d «r|ddd|dddg|ddd }t|«dkDr@|dj d «r,|d j d«rdj |dd«g|dddt|«cxkrdkrynnvtj|«}|tj|d|d«z }t|«dkDr!|tj|d|d|¬«z }|j|«�Œ~tdt|«›d|›d�«‚|S)z¿ Return a list of `node.option` and `node.option_argument` objects, parsed from an option marker match. :Exception: `MarkupError` for invalid option markers. z, rFrÚ=ruNrvÚ-z--Ú+r¢ÚGôIñI�Fà—‘˜vÖ&å!ä! &�kª<ð9ó:ð:ð7*ð<ˆr!có°—dj|jj««}|xjt j ||«z c_g|gfS)Nr·)rºr^Úget_text_blockrcrÚ doctest_block)r2rrnrÖrÀs r"rÎz Body.doctest4sI€Ø�y‰y˜×+Ñ+×:Ñ:Ó<Ó=ˆð � Š ”u×*Ñ*¨4°Ó6Ñ6� Ø�:˜rÐ!Ð!r!có´—tj«}|xj|z c_|jj «}|j ||«\}}}||z }|xj|z c_|su|jj dz} |j|jj| d|jj«dz|dd¬«\} }|j| «|s3|xj|jjd|dz¬«z c_t|«r*|dj€ d|d_|j|«g|gfS)zFirst line of a line block.ruNÚ LineBlockrrõz%Line block ends without a blank line.r£)rrÏrcr^rÇÚline_block_liner­r‘rMrhrfr:rÈryrØÚnest_line_block_lines) r2rrnrÖr€r—rmr˜rŠr³râs r"rÏzBody.line_block<sG€ä× Ñ Ó"ˆØ � Š �uÑ� Ø×#Ñ#×3Ñ3Ó5ˆØ'+×';Ñ';¸EÀ6Ó'JÑ$ˆˆh˜ Ø �‰ ˆØ � Š �xÑ� ÙØ×'Ñ'×3Ñ3°aÑ7ˆFØ,0×,BÑ,BØ×$Ñ$×0Ñ0°°Ð9Ø#×1Ñ1×AÑAÓCÀaÑGبKØ ð -Có-"Ñ )ˆO˜\ð �N‰N˜?Ô +ÙØ �KŠK˜4Ÿ=™=×0Ñ0Ø7ؘA‘Xð1óñ �Kô ˆuŒ:Ø�Q‰x�‰Ð&Ø"#��a‘”Ø × &Ñ & uÔ -Ø�:˜rÐ!Ð!r!cód—|jj|j«d¬«\}}}}dj|«}|j ||«\}} t j |dg|¢­Ž} |jj«dk7r"t|jd««dz | _ | | |fS)z(Return one line element of a line_block.T©Ú until_blankr·r¢rÍru) r^rürrºr©rrmrr»ryr"rØ) r2rr—r×rØr­rŠrÁÚ text_nodesr˜rms r"rSzBody.line_block_lineVs­€ð× Ñ × 8Ñ 8¸¿¹»ØEIð9óKñ ˆ�6˜;¨ ð�y‰y˜Ó"ˆØ#×/Ñ/°°fÓ=ш �HÜ�z‰z˜$ Ð0 ZÒ0ˆØ �<‰<× Ñ Ó  CÒ 'ܘeŸk™k¨!›nÓ-°Ñ1ˆDŒKØ�X˜|Ð+Ð+r!có°—tdt|««D]-}t||dd«�Œ||dz j||_Œ/|j |«y)NrurØ)råryrõrØÚnest_line_block_segment)r2r€r›s r"rTzBody.nest_line_block_linesbsU€Ü˜1œc %›jÖ)ˆEÜ�u˜U‘| X¨tÓ4Ñ<Ø&+¨E°A©IÑ&6×&=Ñ&=��e‘ Õ#ð*ð ×$Ñ$ UÕ+r!cóÚ—|D�cgc]}|j‘Œ}}t|«}g}tj«}|D]u}|j|kDr|j |«Œ$t |«r6|j |«|j |«tj«}|j |«Œwt |«r"|j |«|j |«||ddycc}wr/)rØÚminrrÏr}ryrZ)r2r€ÚitemÚindentsÚleastÚ new_itemsÚ new_blocks r"rZzBody.nest_line_block_segmenthsÌ€Ù+0Ó1©5 4�4—;“;¨5ˆÐ1Ü�G“ ˆØˆ Ü×$Ñ$Ó&ˆ ÛˆDØ�{‰{˜UÒ"Ø× Ñ  Õ&ä�y”>Ø×0Ñ0°Ô;Ø×$Ñ$ YÔ/Ü %× 0Ñ 0Ó 2�IØ× Ñ  Õ&ðô ˆyŒ>Ø × (Ñ (¨Ô 3Ø × Ñ ˜YÔ '؈‰a‰ùò!2s…C(có\—|j||||jtj«S)zTop border of a full table.)Ú table_topÚisolate_grid_tablerÚGridTableParser©r2rrnrÖs r"rÐzBody.grid_table_top{s+€à�~‰~˜e W¨jØ"×5Ñ5Ü)×9Ñ9ó;ð ;r!có\—|j||||jtj«S)zTop border of a simple table.)rcÚisolate_simple_tablerÚSimpleTableParserrfs r"rÑzBody.simple_table_top�s+€à�~‰~˜e W¨jØ"×7Ñ7Ü)×;Ñ;ó=ð =r!cóþ—|j||«\}}|xj|z c_|sM|jjd|jj «dz¬«}|xj|z c_g|gfS)zTop border of a generic table.z Blank line required after table.rur£)Útablercr:rÈr^rÇ) r2rrnrÖÚisolate_functionÚ parser_classrBrŠr,s r"rczBody.table_top‡s{€ð"&§¡Ð,<¸lÓ!Kш�,Ø � Š �xÑ� ÙØ—-‘-×'Ñ'Ø2Ø×'Ñ'×7Ñ7Ó9¸!Ñ;ð(ó=ˆCð �KŠK˜3Ñ �KØ�:˜rÐ!Ð!r!cóž—|«\}}}|r^ |«}|j|«}|jj«t|«z dz}|j ||«} | g|z} | |fS|} | |fS#t j $rG} |j|dj| j«| j¬«|z} Yd} ~ | |fSd} ~ wwxYw)zParse a table.rurF)r³N) rÅr^rÇryÚ build_tablerÚTableMarkupErrorÚmalformed_tablerºr r³) r2rlrmr€r˜rŠÚparserÚ tabledataÚ tablelinerkrBÚerrs r"rkz Body.table“sï€á(8Ó(:Ñ%ˆˆx˜Ù ð NÙ%›�Ø"ŸL™L¨Ó/� Ø!×/Ñ/×?Ñ?ÓAÄCÈÃJÑNØ ñ!� à×(Ñ(¨°IÓ>�Ø!˜7 XÑ-�ð ˜Ð%Ð%ð ˆHؘÐ%Ð%øô ×/Ñ/ò NØ×/Ñ/°°s·x±xÀÇÁÓ7IØ7:·z±zð0óCØEMñN”ð˜Ð%Ð%ûð  Nús�AA2Á2C Â:CÃC cóŽ—g}d} |jjd¬«}|j«|j|j«t|dj««}tt|««D]R}||j«||<||ddvsŒ$d}|jjt|«|z «||d…=n|jj!|d«s—d}tt|«d z dd«D]T}|jj!||«sŒ"|jjt|«|z dz«||dzd…=n&|j#|j%|««g||fStt|««D]D}t||«|k7s ||ddvsŒ|j#|j%|««g||fcS|||fS#tj$rJ}|j\}}}|j |j jd||¬««d}Yd}~�Œd}~wwxYw) NruT©Ú flush_leftúUnexpected indentation.©r@rmrz+|r¹rv)r^rOrÚUnexpectedIndentationErrorr r}r:r¦Ú disconnectÚpad_double_widthÚdouble_width_pad_charryrråržÚgrid_table_top_patrÚextendrq) r2r˜rŠr€rur,r-Úwidthrës r"rdzBody.isolate_grid_table¥s,€ØˆØˆ ð Ø×&Ñ&×5Ñ5ÀÐ5ÓFˆEð ×ÑÔà ×јt×9Ñ9Ô:Ü�E˜!‘H—N‘NÓ$Ó%ˆÜ”s˜5“zÖ"ˆAؘQ‘x—~‘~Ó'ˆE�!‰HØ�Q‰x˜‰{ $Ò&Ø � Ø×"Ñ"×0Ñ0´°U³¸a±Ô@ؘ!™"�IÙð #ð×&Ñ&×,Ñ,¨U°2©YÔ7؈Läœ3˜u›:¨™>¨1¨bÖ1�Ø×*Ñ*×0Ñ0°°q±Õ:Ø×&Ñ&×4Ñ4´S¸³ZÀ!±^ÀaÑ5GÔHؘa ™c™d˜ Ùð 2ð —‘ × 4Ñ 4°UÓ ;Ô<ؘ8 \Ð1Ð1Ü”s˜5“zÖ"ˆAÜ�5˜‘8‹} Ò%¨¨q©°"©¸TÒ)AØ—‘ × 4Ñ 4°UÓ ;Ô<ؘ8 \Ð1Ò1ð#ð�h  Ð,Ð,øô?×6Ñ6ò Ø"%§(¡(Ñ ˆE�3˜Ø �O‰O˜DŸM™M×/Ñ/Ð0IØ7:Àð0óJô KàŽLûð  ús†G'Ç'IÇ:?H?È?Icó—|jj}|jj}t|«dz }t||j ««}|j j }d}d}|dz}||kr·||} || «} | r�t| j ««|k7rW|jj||z «|j|||dzd«} g| ||k(xs||dzj « fS|dz }|}|dk(s||k(s||dzj «s|} ny|dz }||krŒ·|r)d} |jj||z «|||dz}n(d} |jj||z dz «||d}|j|d| z«} g| | fS|jj| |z «||| dz}|j|j«|g| |k(xs|| dzj « fS)Nrurz5Bottom/header table border does not match top border.rvz$ or no blank line after table bottomr¢zNo bottom table border found%s.) r^r­rMryrÚsimple_table_border_patrrrqr}r~)r2rár¿ÚlimitÚtoplenÚ pattern_matchÚfoundÚfound_atrërmrr˜rÚextrar€s r"rhzBody.isolate_simple_tableËs;€Ø×"Ñ"×.Ñ.ˆØ×"Ñ"×.Ñ.ˆÜ�E“ ˜Q‘ˆÜ�U˜5‘\×'Ñ'Ó)Ó*ˆØ×4Ñ4×:Ñ:ˆ ØˆØˆØ �A‰IˆØ�5Šjؘ‘8ˆDÙ! $Ó'ˆEÙÜ�t—z‘z“|Ó$¨Ò.Ø×&Ñ&×0Ñ0°°U±Ô;Ø#×3Ñ3ؘe A a¡CÐ(ð+0ó 1�Hð˜x¨¨e©Ò)M¸5ÀÀ1Á¹:×;KÑ;KÓ;MÐ7MÐMÐMؘ‘ �Ø�ؘA’:  e¢°5¸¸1¹±:×3CÑ3CÔ3EØ�CØØ �‰FˆAð�5‹jñ"Ø>�Ø×"Ñ"×,Ñ,¨X¸Ñ-=Ô>ؘe H¨Q¡JÐ/‘à�Ø×"Ñ"×,Ñ,¨Q°©Y¸©]Ô;ؘe˜f˜ �Ø×+Ñ+ØÐ8¸5Ñ@óBˆHà�x U Ð*Ð *Ø ×Ñ×$Ñ$ S¨5¡[Ô1Ø�e˜C ™EÐ"ˆà ×јt×9Ñ9Ô:Ø�b˜# ™,ÒB¨e°C¸±E©l×.@Ñ.@Ó.BÐ*BÐBÐBr!có6—|j|jd«dj|«}d}|jj «t |«z dz}|r|d|zz }|j j|tj||«||z¬«}|gS)Nr¢r·zMalformed table.rur£) Úreplacer~rºr^rÇryr:r¦rr¤)r2r€Údetailr³rÀr3Ú startliner¦s r"rqzBody.malformed_tableös•€Ø � ‰ �d×0Ñ0°"Ô5Ø�y‰y˜ÓˆØ$ˆØ×&Ñ&×6Ñ6Ó8¼3¸u»:ÑEÈÑIˆ Ù Ø �t˜f‘}Ñ $ˆGØ— ‘ ×#Ñ# G¬U×-@Ñ-@ÀÀtÓ-LØ)2°6Ñ)9ð$ó;ˆàˆwˆr!có—|\}}}tj«}|dk(r|dxxdgz cc<n|r|dxxdgz cc<tjt|«¬«} || z }|D]3} tj| ¬«} |rd| j d<|dz}| | z } Œ5|r5tj «} | | z } |D]} | |j| |«z } Œtj«}| |z } |D]} ||j| |«z }Œ|S) NrvÚclasseszcolwidths-autozcolwidths-given)Úcols)ÚcolwidthruÚstub) rrkÚtgroupryÚcolspecÚ attributesÚtheadÚbuild_table_rowÚtbody)r2rsrtÚ stub_columnsÚwidthsÚ colwidthsÚheadrowsÚbodyrowsrkr“r‘r”r–Úrowr˜s r"rozBody.build_tables€Ø(1Ñ%ˆ �8˜XÜ— ‘ “ ˆØ �VÒ Ø �)Ó Ð!1Ð 2Ñ 2Ô Ù Ø �)Ó Ð!2Ð 3Ñ 3Ó Ü—‘¤3 y£>Ô2ˆØ �‰ˆÛ!ˆHÜ—m‘m¨XÔ6ˆGÙØ-.�×"Ñ" 6Ñ*Ø Ñ!� Ø �gÑ ‰Fð "ñ Ü—K‘K“MˆEØ �e‰OˆFÛ�ؘ×-Ñ-¨c°9Ó=Ñ=‘ð ä— ‘ “ ˆØ�%‰ˆÛˆCØ �T×)Ñ)¨#¨yÓ9Ñ 9‰Eðàˆ r!cóö—tj«}|D]_}|€Œ|\}}}}i} |r|| d<|r|| d<tjdi| ¤Ž} || z }dj|«sŒI|j |||z| ¬«Œa|S)NÚmorerowsÚmorecolsr¢rúr )rržÚentryrºr†) r2ÚrowdatartržÚcellr r¡r³Ú cellblockr•r¢s r"r—zBody.build_table_rows˜€Ü�i‰i‹kˆÛˆD؈|ØØ48Ñ 1ˆH�h ¨ ؈JÙØ)1� ˜:Ñ&ÙØ)1� ˜:Ñ&Ü—K‘KÑ- *Ñ-ˆEØ �5‰LˆCØ�w‰w�yÕ!Ø×!Ñ! )¸)ÀFÑ:JØ',ð"õ.ððˆ r!a? ( _ # anonymous target | # *OR* (?!_) # no underscore at the beginning (?P`?) # optional open quote (?![ `]) # first char. not space or # backquote (?P # reference name .+? ) %(non_whitespace_escape_before)s (?P=quote) # close quote if open quote used ) (?%(simplename)s)_ | # *OR* ` # open backquote (?![ ]) # not space (?P.+?) # hyperlink phrase %(non_whitespace_escape_before)s `_ # close backquote, # reference mark ) $ # end of string aÛ ( (?![ ]) # first char. not space (?P.+?) # substitution text %(non_whitespace_escape_before)s \| # close delimiter ) ([ ]+|$) # followed by whitespace )rïrWÚ substitutioncóH—|jj«\}}|jj|j««\}}}}|j d«}t |«} t jdj|««} || _ || _ | ddk(r<| dd} d| d<| r| dj| «|jj| «np| dk(r#d} d| d<|jj| «nH| t jd|«z } | dj| «|jj!| «| r|jj#| | «n|jj%| | «|r|j'||| ¬ «| g|fS) Nrur·rrurvr¨rwr¢rú)r^rarürr"rªrÚfootnoterºr@rmr}r9Únote_autofootnoteÚnote_symbol_footnoter€Ú note_footnoterZr1r†) r2rr,r-r×rØr³rŠr€r²r¨s r"r¨z Body.footnote]sw€Ø×)Ñ)×=Ñ=Ó?‰ ˆˆWà × Ñ × 8Ñ 8¸¿¹»Ó Eñ ˆ�6˜6 <à— ‘ ˜A“ˆÜ˜eÓ$ˆÜ—>‘> $§)¡)¨HÓ"5Ó6ˆØˆŒØˆŒ Ø �‰7�cŠ>ؘ˜�8ˆDØ ˆH�VÑ ÙØ˜Ñ!×(Ñ(¨Ô.Ø �M‰M× +Ñ +¨HÕ 5Ø �SŠ[؈DØ"ˆH�VÑ Ø �M‰M× .Ñ .¨xÕ 8à œŸ ™  B¨Ó.Ñ .ˆHØ �WÑ × $Ñ $ TÔ *Ø �M‰M× 'Ñ '¨Ô 1Ù Ø �M‰M× .Ñ .¨x¸Õ Bà �M‰M× Ñ  ¨8Ô 4Ù Ø × Ñ ˜h°VÀ(Ð Ô K؈z˜<Ð'Ð'r!có2—|jj«\}}|jj|j««\}}}}|j d«}t |«} t jdj|««} || _ || _ | t jd|«z } | dj| «|jj| «|jj| | «|r|j!||| ¬«| g|fS)Nrur·r¢r¨rú)r^rarürr"rªrÚcitationrºr@rmr€r}r9Ú note_citationrZr†) r2rr,r-r×rØr³rŠr€r²r­s r"r­z Body.citation|sð€Ø×)Ñ)×=Ñ=Ó?‰ ˆˆWà × Ñ × 8Ñ 8¸¿¹»Ó Eñ ˆ�6˜6 <à— ‘ ˜A“ˆÜ˜eÓ$ˆÜ—>‘> $§)¡)¨HÓ"5Ó6ˆØˆŒØˆŒ Ø”E—K‘K  EÓ*Ñ*ˆØ�Ñ× Ñ  Ô&Ø � ‰ ×#Ñ# HÔ-Ø � ‰ ×*Ñ*¨8°XÔ>Ù Ø × Ñ ˜h°VÀ(Ð Ô K؈z˜<Ð'Ð'r!có—|jjj}|jj «}|jj |j «dd¬«\}}}}|jd|j «dj|«z}|D� cgc] } t| «‘Œ}} |d} d} |j| «} | rn| dz } | || z } Œ#|d| …=|ddz| j «t| «z dz dj«|d<|j|||| j!d ««} | g|fScc} w#t$r td«‚wxYw) NTF)rWÚ strip_indentr·rruzmalformed hyperlink target.rFr²)Úexplicitrrïr^rÇrürrrºrrr|rryrÚ make_targetr")r2rrœr—r€rØr³rŠÚ blocktextrmrAÚ blockindexÚ targetmatchrïs r"Úhyperlink_targetzBody.hyperlink_target�s€€Ø—-‘-×(Ñ(×/Ñ/ˆØ×#Ñ#×3Ñ3Ó5ˆà × Ñ × 8Ñ 8Ø—‘“¨$¸Uð9óDñ ˆ�˜  ð—L‘L  %§)¡)£+Ð.°·±¸5Ó1AÑAˆ Ù/4Ó5©u t”˜TÕ"¨uˆÐ5ؘ‘(ˆØˆ ØØ!Ÿ-™-¨Ó0ˆKÙØØ ˜!‰OˆJð Aؘ5 Ñ,Ñ,�ð ð �+�:�+Рؘ!‘H˜s‘N K§O¡OÓ$5´c¸'³lÑ$BÀ1Ñ$DÐ$EÐF×LÑLÓNˆˆa‰Ø×!Ñ! %¨°FØ"-×"3Ñ"3°FÓ";ó=ˆàˆx˜Ð%Ð%ùò!6øôò AÜ!Ð"?Ó@Ð@ð AúsÂEÃE Å EcóP—|j|||«\}}|dk(rYtj|dt|«¬«}||_|j |d||«|j j|«|S|dk(r,tj|d«}|j ||||«|S|S)NrEr¢rDrO)Ú parse_targetrrïrªrTÚ add_targetr9rY)r2r€Ú block_textr—Ú target_nameÚ target_typerÀrïs r"r²zBody.make_target¦sŸ€Ø ×-Ñ-¨e°ZÀÓHш �TØ ˜)Ò #Ü—\‘\ *¨b¼.ÈÓ:NÔOˆFØ-1ˆFÔ *Ø �O‰O˜K¨¨V°VÔ <Ø �M‰M× .Ñ .¨vÔ 6؈MØ ˜HÒ $Ü—\‘\ *¨bÓ1ˆFØ �O‰O˜K¨¨v°vÔ >؈MàˆKr!có—|rH|dj«dddk(r/djd„|D««}|j|«}|rd|fStdj|««}djd„|D««}d|fS) zó Determine the type of reference of a target. :Return: A 2-tuple, one of: - 'refname' and the indirect reference name - 'refuri' and the URI - 'malformed' and a system_message node r¹Nr<rFc3ó<K—|]}|j«–—Œy­wr/)r)rKrms r"rLz$Body.parse_target..Àsèø€Ð @¹%°$ §¡§¹%ùs‚rEc3ólK—|],}djt|«j««–—Œ.y­wrH)rºrrIrJs r"rLz$Body.parse_target..Ås.èø€ð4Ù)2 ð ŸW™W¤X¨d£^×%9Ñ%9Ó%;×<Ù)2ùs‚24rO)rrºÚ is_referencer)r2r€rºr—rWrEÚ ref_partss r"r¸zBody.parse_targetµsŠ€ñ �U˜2‘Y—_‘_Ó& r sÐ+¨sÒ2ØŸ™Ñ @¹%Ó @Ó@ˆIØ×'Ñ'¨ Ó2ˆGÙØ  'Ð)Ð)Ü,¨S¯X©X°e«_Ó=ˆ Ø—H‘Hñ4Ù)2ó4ó4ˆ à˜Ð"Ð"r!cóÒ—|jjjjt |««}|syt |j d«xs|j d««S)NÚsimpleÚphrase)r±rrWrrrr")r2rWrs r"rÀzBody.is_referenceÉsR€Ø— ‘ ×&Ñ&×0Ñ0×6Ñ6Ü % iÓ 0ó2ˆáØÜ˜Ÿ ™  HÓ-ÒF°·±¸XÓ1FÓGÐGr!cóh—||_|r‚tt|««}|dj|«|r1|jj |«}|r||d<nt d|z«‚|jj||j«y|r||d<d|d<|jj|«y)Nr¨rOzproblem with URI: %rrurR) rmrªrr}r?rUr r9rZrcÚnote_anonymous_target)r2Ú targetnamerOrïr—r²ròs r"r¹zBody.add_targetÐs£€ØˆŒ Ù Ü!¤(¨:Ó"6Ó7ˆDØ �7‰O× "Ñ " 4Ô (ÙØ—l‘l×-Ñ-¨fÓ5�ÙØ'*�F˜8Ò$ä*Ð+AÀFÑ+JÓKÐKØ �M‰M× .Ñ .¨v°t·{±{Õ CáØ#)��xÑ Ø"#ˆF�;Ñ Ø �M‰M× /Ñ /°Õ 7r!c óê—|jjj}|jj «\}}|jj |j «d¬«\}}}}|jd|j «dj|«z} |j«t|dj««} d} |j| «} | rn)| dz } | dzt|| j««z} Œ=|d| …=| j «t!| «z dz } |dj«dz| d|d<|ds|d=|dz }|r9|dj«s&|j#«|r|dj«sŒ&| j%d «}t'j(| «}||_||_|s;|j.j1d |zt'j2| | «||¬ «}|g|fS|dj«|d<|d j5t'j6|««|j9|||d |¬«\}}d}|ddD]W}t;|t&j<«s6t;|t&j>«s|xj@||z c_ ||=ŒS|dz }ŒY|jCt&jD«D]�}|jG|«sŒt'j2d|jI«j««}|j.jKd|jLz|t'j2| | «||¬ «}|g|fcSt!|«dk(r;|j.j1d|zt'j2| | «||¬ «}|g|fS|jNjQ|||j@«|g|fS#t$r td«‚wxYw)NF©r°r·rrurFz"malformed substitution definition.r¹r²z.Substitution definition "%s" missing contents.rzr¨ÚSubstitutionDefrõr¢z6Substitution definition contains illegal element <%s>:z.Substitution definition "%s" empty or invalid.))r±rr¦r^rarürrrºr|rr»rrr|rryr{r"rÚsubstitution_definitionr@rmr:rÈr¤r}rr‘rÎÚInlineryrcÚfindallÚElementÚ*disallowed_inside_substitution_definitionsÚpformatr¦Útagnamer9Únote_substitution_def)r2rrœr,r-r€rØr³rŠr³rAr´Ú subdefmatchráÚsubnameÚsubstitution_noder,Únew_abs_offsetrërKrÐs r"Úsubstitution_defzBody.substitution_defâsñ€Ø—-‘-×(Ñ(×5Ñ5ˆØ×)Ñ)×=Ñ=Ó?‰ ˆˆWà × Ñ × 8Ñ 8¸¿¹»ØFKð9óMñ ˆ�˜  ð—\‘\ , 5§9¡9£;Ð/°$·)±)¸EÓ2BÑBˆ Ø ×ÑÔܘe A™hŸo™oÓ/Ó0ˆØˆ ØØ!Ÿ-™-¨Ó0ˆKÙØØ ˜!‰OˆJð HØ! C™-¬+Ø.3°JÑ.?×.EÑ.EÓ.Gó+IñI�ð ð �+�:�+Ð Ø—‘Ó!¤# g£,Ñ.¨qÑ0ˆØ˜!‘H—N‘NÓ$ sÑ*¨E°"Ð5ˆˆa‰Ø�QŠxØ�a�Ø �a‰KˆFÙ˜E "™IŸO™OÔ-Ø �I‰IŒKñ˜E "™IŸO™OÕ-à×#Ñ# FÓ+ˆÜ!×9Ñ9¸)ÓDÐØ#&ÐÔ Ø!(ÐÔÙØ—-‘-×'Ñ'Ø@À7ÑJÜ×#Ñ# I¨yÓ9Ø ð(ó*ˆCð�5˜,Ð&Ð &ؘ‘8—>‘>Ó#ˆˆa‰Ø˜'Ñ"×)Ñ)Ü × +Ñ +¨GÓ 4ô 6à'+×'=Ñ'=Ø &Ð/@Ø-¸Lð(>ó(JÑ$ˆ˜ ð ˆØ%¡aÓ(ˆDܘt¤U§\¡\Ô2Ü! $¬¯ © Ô3Ø— ’ Ð0°Ñ3Ñ3• Ø% aÑ(à�Q‘‘ð )ð&×-Ñ-¬e¯m©mÖ<ˆDØ×>Ñ>¸tÕDÜ×-Ñ-¨b°$·,±,³.×2GÑ2GÓ2IÓJ�Ø—m‘m×)Ñ)ØLØ—l‘lñ#àœU×0Ñ0°¸IÓFØ Wð *ó.�ð �u˜lÐ*Ò*ð=ô Ð Ó ! QÒ &Ø—-‘-×'Ñ'ØBÀWÑLÜ×%Ñ% i°Ó;Ø 7ð(ó,ˆCð�5˜,Ð&Ð &Ø � ‰ ×+Ñ+Ø ˜w¨¯ © ô 5à!Ð" LÐ0Ð0øôgò HÜ!Ð"FÓGÐGð Hús Ã&"OÏO2có¼—|dsVt|tj«r|jd«s+t|tj«r|jd«ryy)NÚidsrRrvTF)rÎrrWÚgetr{)r2rKs r"rÏz/Body.disallowed_inside_substitution_definitions)sC€Ø �ŠKܘ$¤§¡Ô0°T·X±X¸kÔ5Jܘ$¤× 8Ñ 8Ô9¸d¿h¹hÀvÔ>NØàr!c ó —|jd«}tj||jj|j «\}}|xj |z c_|r|j||||«S|j|«S)z?Returns a 2-tuple: list of nodes, and a "blank finish" boolean.ru) r"rÚ directiverHr;r9rcÚ run_directiveÚunknown_directive)r2rÚoption_presetsÚ type_nameÚdirective_classr˜s r"rÜzBody.directive1s{€à—K‘K “Nˆ Ü$.×$8Ñ$8Ø �t—y‘y×)Ñ)¨4¯=©=ó%:Ñ!ˆ˜à � Š �xÑ� Ù Ø×%Ñ%Ø ¨ °>óCð Cð×)Ñ)¨)Ó4Ð 4r!c óø—t|ttf«rddlm}||«}|j j «}|j j}|j j|j«d¬«\}} } } dj|j j||j jdz«} |j|| ||«\} }}}||| ||||| ||j « } |j'«}t|t6«s Jd |z«‚t9t;|««D]2}t||t"j<«rŒ!Jd |›d|›d||›�«‚|| xs|j j?«fS#t$ra}|jjd|›ddj|j «›d �t#j$| | «|¬ «}|g| fcYd }~Sd }~wwxYw#t(j*j,j.$rY}|jj1|j2|j4|¬ «}|t#j$| | «z }|g}Yd }~�Œkd }~wwxYw)aá Parse a directive then run its directive function. Parameters: - `directive`: The class implementing the directive. Must be a subclass of `rst.Directive`. - `match`: A regular expression match object which matched the first line of the directive. - `type_name`: The directive name, as used in the source text. - `option_presets`: A dictionary of preset options, defaults for the directive options. Currently, only an "alt" option is passed by substitution definitions (value: the substitution name), which may be used by an embedded image directive. Returns a 2-tuple: list of nodes, and a "blank finish" boolean. r)Úconvert_directive_function)Ú strip_topr·ruz Error in "z " directive: rFrjr£Nz+Directive "%s" must return a list of nodes.z Directive "z"" returned non-Node object (index z): ) rÎrrÚdocutils.parsers.rstrãr^rÇr­rürrºrMÚparse_directive_blockrr:r¦r rr¤rLÚdocutilsÚparsersÚrstÚDirectiveErrorÚsystem_messager r,ÚlistråryÚNodeÚis_next_line_blank)r2rÜrràrßrãr—Úinitial_line_offsetr×rØr­rŠrºÚ argumentsr?ÚcontentÚcontent_offsetrŒr¦Údirective_instancerÚmsg_noderës r"rÝzBody.run_directive=su€ô* �i¤,´ Ð!;Ô <Ý GÙ2°9Ó=ˆIØ×#Ñ#×3Ñ3Ó5ˆØ"×0Ñ0×<Ñ<Ðà × Ñ × 8Ñ 8¸¿¹»ØCDð9óFñ ˆ�6˜;¨ ð—Y‘Y˜t×1Ñ1×=Ñ=Ø  $×"4Ñ"4×"@Ñ"@À1Ñ"Dð FóGˆ ð )à×*Ñ*¨8°[Ø+4°nóFñ 8ˆI�w ¨ñ'Ø �y '¨7°FØ ˜J¨¨d×.@Ñ.@óBÐð Ø'×+Ñ+Ó-ˆFô ˜&¤$Ô'ð IØ<¸yÑHó IÐ'ä”s˜6“{Ö#ˆAܘf Q™i¬¯©Õ4ñ 1â ¢! V¨A¢Yð0ó 1Ð4ð$ðØÒG × 2Ñ 2× EÑ EÓ GðIð Iøô-ò )Ø—M‘M×'Ò'Ú3<Ø36·8±8¸F¿K¹KÕ3HðJä×#Ñ# J° Ó;À&ð(óJˆEð�7˜LÐ(Õ (ûð  )ûô×Ñ×#Ñ#×2Ñ2ò Ø—}‘}×3Ñ3°E·K±KÀÇÁØ9?ð4óAˆHà œ×+Ñ+¨J¸ ÓCÑ CˆHØ�ZŽFûð  ús8ÃF Ã9G9Æ G6ÆAG1Ç+G6Ç1G6Ç9'I9È AI4É4I9cóF—|j}|j}|r(|dj«s|j«|dz }|r9|dj«s&|j «|r|dj«sŒ&|rZ|j s|j s|r@t|«D]\}}|j«rŒndz }|d|} ||dzd} ||zdz} n|} |} g} |r|j||| «\} } ni} | r$|j s|j s | |dz} |} g} | r>| dj«s+| j«| dz } | r| dj«sŒ+|j s |j r|j|| «} ng} | r |s td«‚| | | | fS)Nrrur¹zno content permitted) Ú option_specÚ has_contentrÚ trim_startÚtrim_endÚrequired_argumentsÚoptional_argumentsÚ enumerateÚparse_directive_optionsÚparse_directive_argumentsr)r2r×r­rÜrßrör÷rërmÚ arg_blockrñròr?rðs r"ræzBody.parse_directive_blockysÉ€à×+Ñ+ˆ Ø×+Ñ+ˆ Ù ˜H Q™K×-Ñ-Ô/Ø × Ñ Ô !Ø ˜1Ñ ˆKÙ˜x¨™|×1Ñ1Ô3Ø × Ñ Ô ñ˜x¨™|×1Ñ1Õ3á ˜×5Ò5Ø%×8Ò8Ù'Ü$ XÖ.‘��4Ø—z‘z•|Ùð/ð�Q‘�Ø   !˜ ˆIؘq ™s˜t�nˆGØ(¨1™_¨qÑ0‰NàˆGØ(ˆN؈IÙ Ø!%×!=Ñ!=Ø  ¨Yó"8Ñ ˆG‘YðˆGÙ ˜i×:Ò:Ø!*×!=Ò!=Ø (¨1¨2 ,Ñ.ˆGØ(ˆN؈IÙ˜g a™j×.Ñ.Ô0Ø × Ñ Ô Ø ˜aÑ ˆNñ˜g a™j×.Ñ.Õ0ð × 'Ò '¨9×+GÒ+GØ×6Ñ6ؘ9ó&‰IðˆIÙ ™;ÜÐ4Ó5Ð 5ؘ' 7¨NÐ:Ð:r!có,—|j«}t|«D]8\}}tjtj d|«sŒ.||d}|d|}ng}|r7|j ||«\}} |r|j| «||fSt| «‚||fS)NrÌ) rˆrür¼rrXrÚparse_extension_optionsr1r) r2rßrörÿr?rërmÚ opt_blockÚsuccessrÀs r"rýzBody.parse_directive_options§s«€Ø ×%Ñ%Ó'ˆÜ  Ö+‰GˆAˆtÜ�x‰xœŸ ™  nÑ5°tÕ<Ø% a b˜M� Ø% b q˜M� Ùð ,ð ˆIÙ Ø ×8Ñ8¸Ø9BóD‰MˆG�TáØ—‘˜tÔ$ð˜ Ð!Ð!ô" $Ó'Ð'ؘ Ð!Ð!r!cór—|j}|j}dj|«}|j«}t |«|krt |›dt |«›d�«‚t |«||zkDrD|j r|jd||zdz «}|St d||z›dt |«›d�«‚|S)Nr·z argument(s) required, z suppliedruzmaximum z argument(s) allowed, )rúrûrºrIryrÚfinal_argument_whitespace)r2rÜrÿÚrequiredÚoptionalÚarg_textrðs r"rþzBody.parse_directive_arguments¹s¿€Ø×/Ñ/ˆØ×/Ñ/ˆØ—9‘9˜YÓ'ˆØ—N‘NÓ$ˆ Ü ˆy‹>˜HÒ $ÜÚ!)¬3¨y­>ð;ó<ð <ä �‹^˜h¨Ñ1Ò 1Ø×2Ò2Ø$ŸN™N¨4°¸HÑ1DÀqÑ1HÓI� ð Ðõ"à (Ó*¬C° ­Nð<ó=ð=ðÐr!cóî—tj«}|j|d|dd¬«\}}|t|«k7ry t j ||«}|rd |fSy #t $r}dd|jdzfcYd}~Sd}~wttf$r*}ddd j|j«zfcYd}~Sd}~wtj$r*}dd d j|j«zfcYd}~Sd}~wwxYw) aÇ Parse `datalines` for a field list containing extension options matching `option_spec`. :Parameters: - `option_spec`: a mapping of option name to conversion function, which should raise an exception on bad input. - `datalines`: a list of input strings. :Return: - Success value, 1 or 0. - An option dictionary on success, an error string on failure. rÚExtensionOptionsT)r[rŠ)rzinvalid option blockzunknown option: "%s"Nzinvalid option value: %srFzinvalid option data: %sru)rzoption data incompletely parsed) rr%r‘ryrÚextract_extension_optionsrr rœrrºÚExtensionOptionError)r2röÚ datalinesrKr rŠr?rŒs r"rzBody.parse_extension_optionsÊsû€ô×ÑÓ!ˆØ'+×'=Ñ'=ؘ˜DÐ0BØð(>ó(!Ñ$ˆ˜ ð œS ›^Ò +Ø,ð HÜ×5Ñ5°d¸KÓHˆGñ Ø�g�:Ð à7øôò >ØÐ,¨v¯{©{¸1©~Ñ=Ð=Õ =ûÜœIÐ&ò IØÐ0°3·8±8¸F¿K¹KÓ3HÑHÐHÕ HûÜ×)Ñ)ò HØÐ/°#·(±(¸6¿;¹;Ó2GÑGÐGÕ Gûð HúsA¾AÁ C4Á$A=Á7C4Á=C4ÂB4Â.C4Â4C4à C/Ã)C4Ã/C4có—|jj«}|jjdd¬«\}}}}dj|«}|jj d|zt j||«|¬«}|g|fS)NrFrÉr·zUnknown directive type "%s".r£)r^rÇrürºr:r¦rr¤) r2ràr—r×rØr³rŠrÁr¦s r"rÞzBody.unknown_directiveës�€Ø×#Ñ#×3Ñ3Ó5ˆà × Ñ × 8Ñ 8¸ÈÐ 8Ó Oñ ˆ�6˜6 <à�y‰y˜Ó"ˆØ— ‘ ×#Ñ#Ð$BÀYÑ$NÜ$)×$7Ñ$7¸¸dÓ$CØ)/ð$ó1ˆðˆw˜ Ð$Ð$r!cóV—|jj«r}|j|j«d}|j «st j «gdfS|jd«r(|jjj«gdfS|jj|j««\}}}}|r9|dj «s&|j«|r|dj «sŒ&dj|«}t j ||«g|fS)NTzend of inclusion from "r¹r·)r^rîrrrrÚcommentr�r9Ú include_logr{rürùrº)r2rÚfirst_comment_liner×rØr³rŠrÁs r"rz Body.commentõsù€Ø × Ñ × 0Ñ 0Ô 2Ø!&§¡¨e¯i©i«k¨lÐ!;Ð Ø%×+Ñ+Ô-ÜŸ ™ ›Ð(¨$Ð.Ð.Ø!×,Ñ,Ð-FÔGà— ‘ ×)Ñ)×-Ñ-Ô/ؘ4�x�à × Ñ × 8Ñ 8¸¿¹»Ó Eñ ˆ�6˜6 <á˜x¨™|×1Ñ1Ô3Ø × Ñ Ô ñ˜x¨™|×1Ñ1Õ3à�y‰y˜Ó"ˆÜ— ‘ ˜d DÓ)Ð*¨LÐ8Ð8r!aÍ \.\.[ ]+ # explicit markup start \[ ( # footnote label: [0-9]+ # manually numbered footnote | # *OR* \# # anonymous auto-numbered footnote | # *OR* \#%s # auto-number ed?) footnote label | # *OR* \* # auto-symbol footnote ) \] ([ ]+|$) # whitespace or end of line zÔ \.\.[ ]+ # explicit markup start \[(%s)\] # citation label ([ ]+|$) # whitespace or end of line zÙ \.\.[ ]+ # explicit markup start _ # target indicator (?![ ]|$) # first char. not space or EOL zß \.\.[ ]+ # explicit markup start \| # substitution indicator (?![ ]|$) # first char. not space or EOL aK \.\.[ ]+ # explicit markup start (%s) # directive name [ ]? # optional space :: # directive delimiter ([ ]+|$) # whitespace or end of line có€—|j|«\}}|xj|z c_|j|«g|gfS©z3Footnotes, hyperlink targets, directives, comments.)Úexplicit_constructrcÚ explicit_list©r2rrnrÖrBrŠs r"rÒzBody.explicit_markup1 s@€à!%×!8Ñ!8¸Ó!?ш�,Ø � Š �xÑ� Ø ×ј<Ô(Ø�:˜rÐ!Ð!r!cóº—g}|jjD].\}}|j|j«}|sŒ$ |||«cS|j|«\} } | |z| fS#t$rl}|j j «}dj|j«}|j|jj||¬««Yd}~Œ‹d}~wwxYw)z>Determine which explicit construct this is, parse & return it.rFr£N) r±Ú constructsrrrr^rÇrºr r}r:rÈr) r2rÚerrorsrrœÚexpmatchr¦r—r3rBrŠs r"rzBody.explicit_construct8 sÆ€àˆØ#Ÿ}™}×7Ô7‰OˆF�GØ—}‘} U§\¡\Ó2ˆHÚðÙ! $¨Ó1Ò1ð 8ð"&§¡¨eÓ!4ш�,ؘ&Ñ  ,Ð.Ð.øô #òØ!×/Ñ/×?Ñ?ÓA�FØ!Ÿh™h u§z¡zÓ2�GØ—M‘M $§-¡-×"7Ñ"7¸ÀfÐ"7Ó"MÔNÝûð ús¾A%Á% CÁ.A!CÃCcóz—|jjdz}|j|jj|d|jj «dz|j d||jj ¬«\}}|j|«|s%|xj |jd«z c_yy)z‹ Create a nested state machine for a series of explicit markup constructs (including anonymous hyperlink targets). ruNÚExplicit)rNrKr[rŠrEzExplicit markup) r^r­r‘rMrhrcrErfrÊ)r2rŠr³r s r"rzBody.explicit_listH s¬€ð ×#Ñ#×/Ñ/°!Ñ3ˆØ'+×'=Ñ'=Ø× Ñ ×,Ñ,¨V¨WÐ5Ø×-Ñ-×=Ñ=Ó?À!ÑCØ—;‘;¨jØ'Ø×-Ñ-×:Ñ:ð (>ó(<Ñ$ˆ˜ ð �‰�~Ô&ÙØ �KŠK˜4×0Ñ0Ð1BÓCÑ CŽKðr!có€—|j|«\}}|xj|z c_|j|«g|gfS©zAnonymous hyperlink targets.)Úanonymous_targetrcrrs r"rRzBody.anonymousX s@€à!%×!6Ñ!6°uÓ!=ш�,Ø � Š �xÑ� Ø ×ј<Ô(Ø�:˜rÐ!Ð!r!có`—|jj«}|jj|j«d¬«\}}}}|jd|j«dj |«z}|D�cgc] }t |«‘Œ}}|j|||d«} | g|fScc}w)NTrVr·r¢)r^rÇrürrrºrr²) r2rr—r€rØr³rŠr³rmrïs r"r zBody.anonymous_target_ s¯€Ø×#Ñ#×3Ñ3Ó5ˆà × Ñ × 8Ñ 8¸¿¹»ØEIð9óKñ ˆ�˜  ð—L‘L  %§)¡)£+Ð.°·±¸5Ó1AÑAˆ Ù/4Ó5©u t”˜TÕ"¨uˆÐ5Ø×!Ñ! %¨°F¸BÓ?ˆØˆx˜Ð%Ð%ùò6sÁ>B+có°—|jjr|jgdgfS|jj«dk(rt j d«‚t |jj««dkr_|jjd|jj«¬«}|xj|z c_ t j d«‚|jj}|jjdtj||«|jj«¬«}|xj|z c_ g|gfS)z,Section title overline or transition marker.ÚLineú::rÁézeUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.r£z'Unexpected section title or transition.)r^rErrrrryr:rrÇrcrmrkrr¤)r2rrnrÖr,r³s r"rmz Body.linei s"€à × Ñ × *Ò *Ø—L‘L�> 6¨2Ð-Ð -Ø �\‰\× Ñ Ó ! TÒ )Ü×3Ñ3°FÓ;Ð ;Ü �—‘×#Ñ#Ó%Ó &¨Ò *Ø—-‘-×$Ñ$ðFà×'Ñ'×7Ñ7Ó9ð%ó;ˆCð �KŠK˜3Ñ �KÜ×3Ñ3°FÓ;Ð ;à×*Ñ*×/Ñ/ˆIØ—-‘-×&Ñ&Ø;Ü×%Ñ% i°Ó;Ø×)Ñ)×9Ñ9Ó;ð'ó=ˆCð �KŠK˜3Ñ �KØ�z 2Ð%Ð %r!có"—|jgdgfS)z%Titles, definition lists, paragraphs.ry©rrfs r"rÁz Body.text s€à— ‘ ˆ~˜v rÐ)Ð)r!r/)r¢r)rN)brrrr5rÚ TableParserr~r-rÃrÚkeysrrÚ sequencepatsr‘r«r¯r³rr±rrr r¼rÒrÚsimple_table_top_patrƒÚpatsrÚescaperÔrÕrÚinitial_transitionsrØrÕrærÜrçrÝrÊr÷rËrrrrÌr&r(r+rÍr9r<rÎrÏrSrTrZrÐrÑrcrkrdrhrqror—r±rúrFrr¨r­r¶r²r¸rÀr¹r×rÏrÜrÝrærýrþrrÞrrürrÒrrrRr rmrÁr r!r"rXrX2s?„ñð(×3Ñ3×IÑIÐØ=á ‹8€DØ.ñ #¨c¸ÀÔCÙ "¨S¸¸rÔBÙ "¨S¸¸rÔBñD€D„Oð—?‘?×'Ñ'Ó)€D„Lò2€D„Nà#+Ø'.Ø'.Ø'3Ø'3ñ 5€DÔð "%Ø%7Ø%7Ø%7Ø%*§_¡_ñ 6€D„Oð €DÔØ—N”NˆØ)3¨¯©Ø×Ñ Ñ)¨CÑ/ó*1ˆ×јXÒ&ð#ð$˜Ÿ™Ð$5Ó6ÐØ6à%˜2Ÿ:™: nÓ5ÐØ,à(˜bŸj™j¨Ó4ÐØ?à €DØ4à.€DÐ ÑØ€Dˆ�MØ$€DˆÑØ*€DˆÑð)Ø+/×+<Ñ+<ñ=€Dˆ�Là5¸Ñ<€Dˆ�Oà<¸tÑC€Dˆ�NØ;¸dÑB€DˆÑØ;¸dÑB€Dˆ�OØ2°TÑ9€Dˆ�Nà—,”,‰â�i�b—i‘i §¡°Ñ 7× >Ñ >Ô?Ø�6Šl˜I˜BŸI™I d§o¡o°fÑ&=×&DÑ&DÕEðGˆˆVŠ ðð 4ØCÀdÑJØNØ@À4ÑGØ!Ø#Ø.Ø2Ø*Ø"Ø0°4Ñ7Øñ €Hð Ðò'òð2%˜"Ÿ*™*Ð%FÓGÐò!4òF ò(ò"ò( &ò!"óF5/ònò:#0òJ"ò"(ò"ò Dò"ò@.ò"'òR"ò"ò4 ,ò,ò ò&;ò =ò "ò&ò$$-òL)CóV óò4ñ$‹x€HØFáØ�—‘ð ñ&#' w£-ñ'0ð&24·±ó'=ð(�B—J‘Jð #ñ&*¨'£]ñ 3ð57·J±Jó @ð"�r—z‘zð#&ñ)-¨W« ñ#6ð#%§*¡*ó .ôE+0€HÔòZ(ò>(ò"&ò2 ò#ò(Hò8ò$E1òNò 5ò:Iòx,;ò\"ò$ò"8òB%ò9ð" Ø ˆ2�:‰:ðð$×.Ñ.ñ/ð13· ± ó <ð =ð Ø ˆ2�:‰:ðð$×.Ñ.ñ /ð13· ± ó  <ð =ð Ø ˆ2�:‰:ððŸ:™:ó  'ð (ð Ø ˆ2�:‰:ððŸ:™:ó  'ð (ð Ø ˆ2�:‰:ðð $×.Ñ.ñ /ð 13· ± ó  <ð =ðG*>€HÔòX"ò/ò Dò "ò&ò&ó,*r!rXcóÆ—eZdZdZej j «Zded<ejD��cgc]}|df‘Œc}}Zejdd«d„Z d„Z y cc}}w) Ú RFC2822Bodyz˜ RFC2822 headers are only valid as the first constructs in documents. As soon as anything else appears, the `Body` state should take over. z[!-9;-~]+:( +|$)Úrfc2822rXr¹)r1rXcóÌ—tjdg¬«}|xj|z c_|j|«\}}||z }|jj dz}|j |jj|d|jj«dz|d|¬«\}}|j|«|s$|xj|jd«z c_g|gfS)úRFC2822-style field list item.r1)r�ruNÚ RFC2822ListrõzRFC2822-style field list) rr%rcÚ rfc2822_fieldr^r­r‘rMrhrfrÊ) r2rrnrÖÚ fieldlistr&rŠr³r s r"r1zRFC2822Body.rfc2822‘ sâ€ä×$Ñ$¨i¨[Ô9ˆ Ø � Š �yÑ � Ø"×0Ñ0°Ó7шˆ|Ø�Uш Ø×#Ñ#×/Ñ/°!Ñ3ˆØ'+×'=Ñ'=Ø× Ñ ×,Ñ,¨V¨WÐ5Ø×-Ñ-×=Ñ=Ó?À!ÑCبMØ'ð (>ó()Ñ$ˆ˜ ð �‰�~Ô&ÙØ �KŠK˜4×0Ñ0Ø,ó.ñ .�Kà�:˜rÐ!Ð!r!có’—|jd|jjd«}|jj|j «d¬«\}}}}t j «}|t j||«z }t jdj|««}||z }|r|j|||¬«||fS)Nr2TrVr·rú) rÚfindr^rürrr&r)r*rºr†) r2rr²r×rØr­rŠÚ fieldnodeÚ fieldbodys r"r5zRFC2822Body.rfc2822_field£ sÀØ�|‰|Ð3˜UŸ\™\×.Ñ.¨sÓ3Ð4ˆà × Ñ × 8Ñ 8¸¿¹»ØEIð9óKñ ˆ�6˜;¨ ô—K‘K“Mˆ Ø”U×%Ñ% d¨DÓ1Ñ1ˆ Ü×$Ñ$ T§Y¡Y¨xÓ%8Ó9ˆ Ø�Yш Ù Ø × Ñ ˜h°[Ø#,ð ô .à˜,Ð&Ð&r!N) rrrr5rXrrˆr.Úinsertr1r5)rKr²s00r"r0r0„ sp„ñð �}‰}×!Ñ!Ó#€HØ-€HˆYÑà'+×'?Ò'?ôAÙ'?˜tð! &š>Ø'?òAÐà×јrÐ#6Ô7ò"ó$ 'ùó-Asµ Ar0cóL—eZdZdZdd„ZeZeZeZeZeZ eZ eZ eZ eZ eZeZeZeZy)ÚSpecializedBodya¤ Superclass for second and subsequent compound element members. Compound elements are lists and list-like constructs. All transition methods are disabled (redefined as `invalid_input`). Override individual methods in subclasses to re-enable. For example, once an initial bullet list item, say, is recognized, the `BulletList` subclass takes over, with a "bullet_list" node as its container. Upon encountering the initial bullet list item, `Body.bullet` calls its ``self.nested_list_parse`` (`RSTState.nested_list_parse`), which starts up a nested parsing session with `BulletList` as the initial state. Only the ``bullet`` transition method is enabled in `BulletList`; as long as only bullet list items are encountered, they are parsed and inserted into the container. The first construct which is *not* a bullet list item triggers the `invalid_input` method, which ends the nested parse and closes the container. `BulletList` needs to recognize input that is invalid in the context of a bullet list, which means everything *other than* bullet list items, so it inherits the transition list created in `Body`. NcóB—|jj«t‚©z8Not a compound element member. Abort this state machine.)r^ržrgrfs r"Ú invalid_inputzSpecializedBody.invalid_inputÊ s€à ×Ñ×(Ñ(Ô*܈r!©NNN)rrrr5r@rØrÊrËrÌrÍrÎrÏrÐrÑrÒrRrmrÁr r!r"r=r=² sP„ñó,ð €FØ €FØ€JØ €LØ!€MØ€GØ€JØ"€NØ$ÐØ#€OØ€IØ €DØ �Dr!r=có—eZdZdZd„Zy)rôz-Second and subsequent bullet_list list_items.cóæ—|jd|jdk7r|j«|j|j ««\}}|xj|z c_||_g|gfS)rórrÊ)rrcr@r÷rrŠ)r2rrnrÖrýrŠs r"rÊzBulletList.bulletâ sc€à �<‰<˜‰?˜dŸk™k¨(Ñ3Ò 3à × Ñ Ô Ø!%§¡°· ± ³ Ó!<ш�,Ø � Š �xÑ� Ø(ˆÔØ�:˜rÐ!Ð!r!N)rrrr5rÊr r!r"rôrôÞ s „á7ó"r!rôcó—eZdZdZd„Zy)ÚDefinitionListz,Second and subsequent definition_list_items.có"—|jgdgfS)zDefinition lists.Ú Definitionr'rfs r"rÁzDefinitionList.textñ s€à— ‘ ˆ~˜|¨RÐ/Ð/r!N)rrrr5rÁr r!r"rErEí s „á6ó0r!rEcó—eZdZdZd„Zy)rz1Second and subsequent enumerated_list list_items.cóÄ—|j||jd«\}}}}||jk7sH|dk7r0||jdk7s1|js%||jdzk7s|j |||«s|j «|dk(rd|_|j|j««\}} |xj|z c_| |_ ||_g|gfS)zEnumerated list item.rÿruru) rrcrrvrrr@r÷rrŠ) r2rrnrÖrr rÁr rýrŠs r"rËzEnumeratedList.enumeratorú sÖ€à*.×*?Ñ*?Ø�T—[‘[ Ñ,ó+.Ñ'ˆ�˜$ à �d—k‘kÒ !ؘC’ X°·±¸ZÑ1HÒ%HØ(,¯ ª Ø(/°D×4DÑ4DÀqÑ4HÒ(IØ×/Ñ/°¸À6ÔJà × Ñ Ô Ø �sŠ?؈DŒIØ!%§¡°· ± ³ Ó!<ш�,Ø � Š �xÑ� Ø(ˆÔØ"ˆÔØ�:˜rÐ!Ð!r!N)rrrr5rËr r!r"rrö s „á;ó"r!rcó—eZdZdZd„Zy)r$z(Second and subsequent field_list fields.cól—|j|«\}}|xj|z c_||_g|gfS)zField list field.)r&rcrŠ©r2rrnrÖr&rŠs r"rÌzFieldList.field_marker s8€à"Ÿj™j¨Ó/шˆ|Ø � Š �uÑ� Ø(ˆÔØ�:˜rÐ!Ð!r!N)rrrr5rÌr r!r"r$r$ s „á2ó"r!r$có—eZdZdZd„Zy)r7z4Second and subsequent option_list option_list_items.có¬— |j|«\}}|xjz c_|_g|gfS#t$r|j«YŒó"r!r7có^—eZdZdZej Zej Zd„ZejZ y)r4z6Second and subsequent RFC2822-style field_list fields.cól—|j|«\}}|xj|z c_||_gdgfS)r3r4)r5rcrŠrLs r"r1zRFC2822List.rfc28220 s:€à"×0Ñ0°Ó7шˆ|Ø � Š �uÑ� Ø(ˆÔØ�= "Ð$Ð$r!N) rrrr5r0rr.r1r=r@rér r!r"r4r4) s.„á@à×#Ñ#€HØ%×9Ñ9Ðò%ð × )Ñ )�Er!r4có—eZdZdZd„Zy)r zz Parse field_list fields for extension options. No nested parsing is done (including inline markup parsing). cóÒ—g}t|«dgzD]S}|j«r|j|«Œ%|sŒ(dj|«}|t j ||«z }g}ŒUy)z5Override `Body.parse_field_body` for simpler parsing.r¢r·N)rìrr}rºrr¾)r2r×r³rKr¿rmrÁs r"r+z!ExtensionOptions.parse_field_bodyB s\€àˆÜ˜“N b TÔ)ˆDØ�z‰zŒ|Ø— ‘ ˜TÕ"ÚØ—y‘y Ó'�ØœŸ™¨¨dÓ3Ñ3�Ø‘ñ *r!N)rrrr5r+r r!r"r r : s „ñó r!r có.—eZdZdZej Zd„Zy)rRz,Second and subsequent lines of a line_block.cóâ—|jj«}|j||«\}}}|xj|z c_|jxj|z c_||_g|gfS)zNew line of line block.)r^rÇrSrcrŠ)r2rrnrÖr—rmr˜rŠs r"rÏzLineBlock.line_blockT sg€à×#Ñ#×3Ñ3Ó5ˆØ'+×';Ñ';¸EÀ6Ó'JÑ$ˆˆh˜ Ø � Š �tÑ� Ø � ‰ ×Ò˜hÑ&ÕØ(ˆÔØ�:˜rÐ!Ð!r!N)rrrr5r=r@rérÏr r!r"rRrRN s„á6à × )Ñ )€Eó"r!rRcó4—eZdZdZd„Zd„ZejZy)rz0Second and subsequent explicit markup construct.cól—|j|«\}}|xj|z c_||_g|gfSr)rrcrŠrs r"rÒzExplicit.explicit_markupb s:€à!%×!8Ñ!8¸Ó!?ш�,Ø � Š �xÑ� Ø(ˆÔØ�:˜rÐ!Ð!r!cól—|j|«\}}|xj|z c_||_g|gfSr)r rcrŠrs r"rRzExplicit.anonymousi s:€à!%×!6Ñ!6°uÓ!=ш�,Ø � Š �xÑ� Ø(ˆÔØ�:˜rÐ!Ð!r!N) rrrr5rÒrRr=r@rér r!r"rr^ s„á:ò"ò"ð × )Ñ )�Er!rcóh—eZdZdZej dejz«ddœZddgZ d„Z d„Z y ) rÊzG Parser for the contents of a substitution_definition element. z (%s)::( +|$)r¢)Úembedded_directiverÁrYrÁcóÆ—|j||jdd¬«\}}|xj|z c_|jj«s||_t ‚)Nr¨r)Úalt)rÜrcr^Úat_eofrŠrgrs r"rYz"SubstitutionDef.embedded_directive s[€Ø!%§¡°Ø48·K±KÀÑ4HÈÑ4Kð"0ó"Mш�,à � Š �xÑ� Ø×!Ñ!×(Ñ(Ô*Ø ,ˆDÔ Üˆr!có€—|jj«s|jj«|_t‚r/)r^r\rîrŠrgrfs r"rÁzSubstitutionDef.text‡ s0€Ø×!Ñ!×(Ñ(Ô*Ø $× 2Ñ 2× EÑ EÓ GˆDÔ Üˆr!N) rrrr5r¼rÒrFrürr.rYrÁr r!r"rÊrÊs sJ„ñð !+ § ¡ ¨?Ø-4×-?Ñ-?ñ,@ó!Aàñ€Hð0°Ð8Ðòór!rÊcó–—eZdZdZej dddœZddgZd„Zd„Zd „Z d „Z d „Z d „Z d „Z d„Zej d«Zd„Zy)ryzs Classifier of second line of a text block. Could be a paragraph, a definition list item, or a title. rmr¢)Ú underlinerÁ)r_rX)rÁrXcóà—|j||jj«dz «\}}|xj|z c_|r#|xj|j «z c_gdgfS)zEnd of paragraph.rurX)r¾r^rÇrcr¤)r2rrnrÖr¾rÂs r"réz Text.blank™ se€ð"&§¡Ø�t×)Ñ)×9Ñ9Ó;¸aÑ?ó"Aш �;à � Š �yÑ � Ù Ø �KŠK˜4×-Ñ-Ó/Ñ /�KØ�6˜2ˆ~Ðr!có0—|r|jd|d«gSr/)rérrs r"ÚeofzText.eof£ s€Ù Ø �J‰J�t˜W dÔ +؈ r!cóÈ—tj«}|j|«\}}||z }|xj|z c_|jj dz}|j |jj|d|jj«dz|d|d¬«\}}|j|«|s$|xj|jd«z c_gdgfS)úDefinition list item.ruNrErG)rNrKr[rŠr�zDefinition listrX) rÚdefinition_listÚdefinition_list_itemrcr^r­r‘rMrhrfrÊ) r2rrnrÖÚdefinitionlistÚdefinitionlistitemrŠr³r s r"rØz Text.indent¨ s߀ä×.Ñ.Ó0ˆØ+/×+DÑ+DÀWÓ+MÑ(ИLØÐ,Ñ,ˆØ � Š �~Ñ%� Ø×#Ñ#×/Ñ/°!Ñ3ˆØ'+×'=Ñ'=Ø× Ñ ×,Ñ,¨V¨WÐ5Ø×-Ñ-×=Ñ=Ó?À!ÑCØ!Ð1AØ'¸Lð (>ó(JÑ$ˆ˜ ð �‰�~Ô&ÙØ �KŠK˜4×0Ñ0Ð1BÓCÑ C�KØ�6˜2ˆ~Ðr!có"—|jj«}|dj«}|jj«}|dz|z}g}t |«t |«kDrÍt |«dkr]|jj r2|jjd|¬«} |xj| z c_ tjd«‚|ddz|jjz} |jjdtj| | «|¬«} |j!| «|jj sž|ddz|jjz} |jj#«\} } |jj%dtj| | «| | ¬ «} |xj|z c_ |xj| z c_ g|gfS|d} g|d d |j'||| |d z |«g|gfS) zSection title.rr·r%zfPossible title underline, too short for the title. Treating it as ordinary text because it's so short.r£rÁzTitle underline too short.zUnexpected section title.rzNru)r^rÇr»rrryrEr:rrcrrrmrÈrr¤r}rarkr™)r2rrnrÖr—r•r_r@r˜r,r³r,r-r–s r"r_zText.underline¹ só€à×#Ñ#×3Ñ3Ó5ˆØ˜‘ ×!Ñ!Ó#ˆØ—L‘L×'Ñ'Ó)ˆ ؘ‘  Ñ)ˆØˆÜ ˜Ó ¤ Y£Ò /Ü�9‹~ Ò!Ø×%Ñ%×2Ò2ØŸ-™-×,Ñ,ðNà#ð-ó%�Cð—K’K 3Ñ&•KÜ"×7Ñ7¸Ó?Ð?à# A™J¨Ñ-°×0BÑ0B×0GÑ0GÑG� Ø—m‘m×+Ñ+Ø0Ü×'Ñ'¨ °9Ó=Øð,ó!�ð—‘ Ô$Ø×!Ñ!×.Ò.Ø ™  TÑ)¨D×,>Ñ,>×,CÑ,CÑCˆIà×-Ñ-×AÑAÓC‰LˆC�ð —-‘-×&Ñ&Ø+Ü×#Ñ# I¨yÓ9Ø ð'ó*ˆCð �KŠK˜8Ñ #�KØ �KŠK˜3Ñ �KØ�z 2Ð%Ð %ؘ!‘ ˆØˆ‘ˆ Ø � ‰ �U˜F E¨6°A©:°xÔ@Ø�:˜rÐ!Ð!r!cóX—|jj«dz }d} |jjd¬«}|t|«z} |j| |«\} } |xj| z c_ |xj|z c_ | r> |jj«|xj|j«z c_ g|gfS#tj$r8}|j \}}} |j jd|| ¬«}Yd}~ŒØd}~wwxYw#t$rYŒ�wxYw)z Paragraph.ruNTrwryrz)r^rÇrOrr{r r:r¦rìr¾rcrrgr¤) r2rrnrÖr�r,r€rur,r-r¿r¾rÂs r"rÁz Text.textä s€à×&Ñ&×6Ñ6Ó8¸1Ñ<ˆ ؈ð @Ø×&Ñ&×5Ñ5ÀÐ5ÓFˆEð œ$˜u›+Ñ%ˆØ!%§¡°°yÓ!Aш �;Ø � Š �yÑ � Ø � Š �sÑ� Ù ð Ø×"Ñ"×,Ñ,Ô.ð �KŠK˜4×-Ñ-Ó/Ñ /�KØ�:˜rÐ!Ð!øô×6Ñ6ò @Ø"%§(¡(Ñ ˆE�3˜Ø—-‘-×%Ñ%Ð&?Ø-0°wð&ó@�Cûð @ûôò Ùð ús)¡C DÃDÃ".DÄDÄ D)Ä(D)cóÌ—|jj«\}}}}|r9|dj«s&|j«|r|dj«sŒ&|s|j «Sdj |«}t j||«}|jj|dz«\|_ |_ |g}|s |j|jd««|S)zReturn a list of nodes.r¹r·ruz Literal block) r^rÔrrùÚquoted_literal_blockrºrr¤rar@rmr}rÊ)r2r×rØr³rŠrÀr¤rBs r"r¤zText.literal_blockú sÕ€ð× Ñ × ,Ñ ,Ó .ñ ˆ�6˜6 <á˜x¨™|×1Ñ1Ô3Ø × Ñ Ô ñ˜x¨™|×1Ñ1Õ3áØ×,Ñ,Ó.Ð .Ø�y‰y˜Ó"ˆÜ×+Ñ+¨D°$Ó7ˆ à#×1Ñ1×EÑEÀfÈQÁhÓOñ ˆÔ Ø Ô Ø!�?ˆÙØ �O‰O˜D×1Ñ1°/ÓBÔ C؈r!c ó.—|jj«}|jj}tj«}|j |jj |d||dtfddœ¬«}|j|«|jS)NFÚQuotedLiteralBlockrY)rNrKrEr‚) r^rhr­rrÎr†rMrnrfÚchildren)r2rhr³Ú parent_noderÖs r"rlzText.quoted_literal_block sŽ€Ø×,Ñ,×<Ñ<Ó>ˆØ×#Ñ#×/Ñ/ˆÜ—m‘m“oˆ Ø×*Ñ*Ø × Ñ × *Ñ *¨6¨7Ð 3Ø(¨{ÈÜ4FÐ3HØ3Gñ"Ið+óJˆð �‰�~Ô&Ø×#Ñ#Ð#r!có —|jj«\}}}}tjdj |t |«z««}|jj «dz }|jj|«\|_|_ |j||«\}} ||z }tjdg| ¢­Ž} || z }|ddddk(r#| |jjd|dz¬«z } |j||| ¬ «||fS) Nr·rur¢rrMr$z`Blank line missing before literal block (after the "::")? Interpreted as a definition list item.r£rú)r^rÔrrfrºrìrÇrar@rmÚtermrÓr:rr†) r2Útermliner×rØr­rŠÚitemnoder—Útermlistr˜rÓs r"rfzText.definition_list_item s €à × Ñ × ,Ñ ,Ó .ñ ˆ�6˜;¨ ä×-Ñ-Ø �I‰I�h¤ h£Ñ/Ó 0ó2ˆà×#Ñ#×3Ñ3Ó5¸Ñ9ˆà×,Ñ,×@Ñ@ÀÓHñ ˆŒØ ŒØ!ŸY™Y x°Ó8ш�(Ø�HшÜ×%Ñ% bÐ4¨8Ò4ˆ Ø�JÑˆØ �A‰;�r�sÐ ˜tÒ #Ø ˜$Ÿ-™-×,Ñ,ð;à˜a‘xð-ó!ñ !ˆJð ×ј(°À:ÐÔNؘÐ%Ð%r!z +: +c ó¶—t|«dk(sJ‚|j|d|«\}}tj|d«}|jj |«\|_|_|g}tt|««D]Ô}||}t|tj«r¦|jj|«} t| «dk(r|dxx|z cc<ŒY| dj«} tj| «} |dxx| z cc<| ddD]1} |jtjt!| d«| ««Œ3ŒÈ|dxx|z cc<ŒÖ||fS)z9Return a definition_list's term and optional classifiers.rurr¹NT)ryr©rrrr^rar@rmrårÎryÚclassifier_delimiterrIr»r}Ú classifierr) r2r¿r—rXr˜Ú term_noderdrërKrÖrÁÚtextnoderØs r"rrz Text.term- sA€ä�5‹z˜QŠÐˆØ#×/Ñ/°°a±¸&ÓAш �HÜ—J‘J˜u Q™xÓ(ˆ à×-Ñ-×AÑAÀ&ÓIñ ˆÔ Ø ŒØ�Kˆ Ü”s˜:“Ö'ˆAؘa‘=ˆDܘ$¤§ ¡ Ô+Ø×1Ñ1×7Ñ7¸Ó=�Ü�u“: ’?ؘb“M TÑ)”Mà  ™8Ÿ?™?Ó,�DÜ$Ÿz™z¨$Ó/�Hؘb“M XÑ-“MØ % a b£ ˜Ø!×(Ñ(Ü!×,Ñ,¬X°d¸DÓ-AÀ4ÓHõJñ!*ð˜"“  Ñ%” ð(ð˜(Ð"Ð"r!N)rrrr5rXrr.rérbrØr_rÁr¤rlrfr¼rÒrwrrr r!r"ryry� sl„ñð "Ÿ]™]¨6Ñ2Øñ€Hà0Ð2BÐCÐòòò ò")"òV"ò,ò" $ò&ð(&˜2Ÿ:™: gÓ.Ðó#r!rycó.—eZdZdZd„Zdd„ZeZeZeZeZ y)ÚSpecializedTextz¬ Superclass for second and subsequent lines of Text-variants. All transition methods are disabled. Override individual methods in subclasses to re-enable. có—gS)zIncomplete construct.r rrs r"rbzSpecializedText.eofP s€àˆ r!Ncó—t‚r?©rgrfs r"r@zSpecializedText.invalid_inputT s€äˆr!rA) rrrr5rbr@rérØr_rÁr r!r"r|r|G s'„ñòóð €EØ €FØ€IØ �Dr!r|có—eZdZdZd„Zd„Zy)rGz.Second line of potential definition_list_item.có<—|jjd«gS)zNot a definition.rv)r^ržrrs r"rbzDefinition.eofb s€à ×Ñ×(Ñ(¨Ô+؈ r!cól—|j|«\}}|xj|z c_||_gdgfS)rdrE)rfrcrŠ)r2rrnrÖrtrŠs r"rØzDefinition.indentg s;€à!%×!:Ñ!:¸7Ó!Cш�,Ø � Š �xÑ� Ø(ˆÔØÐ# RÐ'Ð'r!N)rrrr5rbrØr r!r"rGrG^ s„á8òó (r!rGcóB—eZdZdZdZ d„Zd„Zd„ZeZd„Z d d„Z d d„Z y ) r#zO Second line of over- & underlined section title or transition marker. rucó˜—|dj«}|jjrd|j_nt|«dkr|j |«|j r\|j j«\}}tj|d¬«}||_ |dz |_ |xj|z c_ d|_gS)z0Transition marker at end of section or document.rFr%rÛru) rrHr>ryÚstate_correctionÚeofcheckr^rarÚ transitionr@rmrc)r2rnÚmarkerr,r-r‡s r"rbzLine.eofx s¦€à˜‘×!Ñ!Ó#ˆØ �9‰9× -Ò -Ø16ˆD�I‰IÕ .Ü �‹[˜1Š_Ø × !Ñ ! 'Ô *Ø �=Š=Ø×-Ñ-×AÑAÓC‰LˆC�ä×)Ñ)°G¸A±JÔ?ˆJØ #ˆJÔ Ø%¨™kˆJŒOà �KŠK˜:Ñ %�K؈Œ ؈ r!có"—|jj«\}}|dj«}t|«dkr|j |«t j |¬«}||_|dz |_|xj|z c_ gdgfS)zTransition marker.rr%rÛrurX) r^rarryr…rr‡r@rmrc)r2rrnrÖr,r-rˆr‡s r"réz Line.blankŠ s‚€à×)Ñ)×=Ñ=Ó?‰ ˆˆWؘ‘×!Ñ!Ó#ˆÜ ˆv‹;˜Š?Ø × !Ñ ! 'Ô *Ü×%Ñ%°Ô7ˆ ؈ ÔØ! A™+ˆ ŒØ � Š �zÑ!� Ø�6˜2ˆ~Ðr!cón—|jj«dz }|d}|j}d} |jj«}|›d|›d|›�} |j «}|j «}|jd dj|«s‹|dz|zdz|z}t |j ««dkr|j|||d«nÜ|jjd tj| | «|¬«} |xj| z c_ gd gfS||k7r‹|dz|zdz|z}t |j ««dkr|j|||d«nL|jjd tj| | «|¬«} |xj| z c_ gd gfS|j «}g} t|«t |«kDr‚|dz|zdz|z}t |j ««dkr|j|||d«nC|jj!d tj| | «|¬«} | j#| «|d|df} d|_|j'|j)«| | |dz| «d|_gd gfS#t$r‹|dz|z}t |j ««dkr|j|||d«nN|jjdtj||«|¬«} |xj| z c_ gd gfcYSY�ŒçwxYw)z#Potential over- & underlined title.rurr¢r·r%rvzIncomplete section title.r£rXr_z6Missing matching underline for section title overline.z$Title overline & underline mismatch.zTitle overline too short.)r^rÇrrrgryr»Úshort_overliner:rkrr¤rcrorrrÈr}r†r™rï) r2rrnrÖr—Úoverliner•r_r³r,r@r˜r–s r"rÁz Line.text– s0€à×#Ñ#×3Ñ3Ó5¸Ñ9ˆØ˜1‘:ˆØ— ‘ ˆØˆ ð &Ø×*Ñ*×4Ñ4Ó6ˆIò"*ª5±)Ð<ˆØ—?‘?Ó$ˆØ×$Ñ$Ó&ˆ Ø×Ñ  Ñ,¨QÑ/×5Ñ5°iÔ@Ø  4™¨%Ñ/°$Ñ6¸ÑBˆIÜ�8—?‘?Ó$Ó%¨Ò)Ø×#Ñ# G¨Y¸ÀÕBà—m‘m×*Ñ*ØLÜ×'Ñ'¨°Ó7Øð+ó!�ð— ’ ˜sÑ"• ؘ6 2�~Ð%Ø ˜Ò "Ø  4™¨%Ñ/°$Ñ6¸ÑBˆIÜ�8—?‘?Ó$Ó%¨Ò)Ø×#Ñ# G¨Y¸ÀÕBà—m‘m×*Ñ*Ø<Ü×)Ñ)¨&°&Ó9Ø!ð+ó#�ð— ’ ˜sÑ"• ؘ6 2�~Ð%Ø— ‘ “ˆØˆÜ ˜Ó ¤ X£Ò .Ø  4™¨%Ñ/°$Ñ6¸ÑBˆIÜ�8—?‘?Ó$Ó%¨Ò)Ø×#Ñ# G¨Y¸ÀÕBà—m‘m×+Ñ+Ø1Ü×)Ñ)¨&°&Ó9Ø!ð,ó#�ð—‘ Ô$ؘ!‘˜i¨™lÐ+ˆØˆŒ Ø � ‰ �U—\‘\“^ V¨U°F¸Q±JÀÔI؈Œ Ø�6˜2ˆ~Ðøôiò &Ø  4™¨%Ñ/ˆIÜ�8—?‘?Ó$Ó%¨Ò)Ø×#Ñ# G¨Y¸ÀÕBà—m‘m×*Ñ*Ø/Ü×'Ñ'¨ °9Ó=Øð+ó!�ð— ’ ˜sÑ"• ؘ6 2�~Ò%òCð &ús²J Ê BL4Ì3L4cóv—|d}|dz|jjz}|jj«dz }t|j ««dkr|j |||d«|j jdtj||«|¬«}|xj|z c_ gdgfS)Nrr·rur%z+Invalid section title or transition marker.r£rX) r^rmrÇryr»r‹r:r¦rr¤rc)r2rrnrÖrŒr³r—r,s r"r_zLine.underlineÖ s±€Ø˜1‘:ˆØ˜t‘O d×&8Ñ&8×&=Ñ&=Ñ=ˆ Ø×#Ñ#×3Ñ3Ó5¸Ñ9ˆÜ ˆx�‰Ó Ó ! AÒ %Ø × Ñ  ¨°F¸AÔ >Ø�m‰m×!Ñ!Ø;Ü×!Ñ! )¨YÓ7Øð"óˆð � Š �sÑ� Ø�6˜2ˆ~Ðr!cóŒ—|jjd|¬«}|xj|z c_|j||«y)Nz`Possible incomplete section title. Treating the overline as ordinary text because it's so short.r£)r:rrcr…)r2rnr³r—r¿r,s r"r‹zLine.short_overlineã sC€Ø�m‰m× Ñ ð 3àð!óˆð � Š �sÑ� Ø ×јg uÕ-r!cón—|jj|«g|ddtjdd«‚)NrXrÁ)r^ržrÚStateCorrection)r2rnr¿s r"r…zLine.state_correctionë s2€Ø ×Ñ×(Ñ(¨Ô/؈‘ˆ Ü×*Ñ*¨6°6Ó:Ð:r!N)ru) rrrr5r†rbrérÁrØr_r‹r…r r!r"r#r#o s7„ñð€HØJòò$ ò<ð|€Fò ó.ô;r!r#cód—eZdZdZdej zddœZdZd d„Zd„Z d„Z d„Z d „Z d „Z d „Zy )rnzƒ Nested parse handler for quoted (unindented) literal blocks. Special-purpose. Not for inclusion in `state_classes`. z(%(nonalphanum7bit)s)r¢)Úinitial_quotedrÁcóN—tj|||«g|_d|_yr/)rVr4r˜Úinitial_linenor]s r"r4zQuotedLiteralBlock.__init__ý s#€Ü×ј$  ¨uÔ5؈Œ Ø"ˆÕr!có—|rt‚||gfSr/rrfs r"rézQuotedLiteralBlock.blank s€Ù ܈Nà˜J¨Ð*Ð *r!cóò—|rs|jj|j«\}}dj|«}t j ||«}||_||_|xj|z c_nb|xj|jjd|jj«¬«z c_|jj«|xj|jz c_gS)Nr·z#Literal block expected; none found.r£)r^rar”rºrr¤r@rmrcr:rÈrÇržr˜)r2rnr,r-rÁr¤s r"rbzQuotedLiteralBlock.eof sË€Ù Ø×-Ñ-×AÑAØ8<×8KÑ8KóM‰LˆC�à—9‘9˜WÓ%ˆDÜ!×/Ñ/°°dÓ;ˆMØ#&ˆMÔ Ø!(ˆMÔ Ø �KŠK˜=Ñ (ŽKà �KŠK˜4Ÿ=™=×0Ñ0Ø5Ø×'Ñ'×7Ñ7Ó9ð1óñ �Kð × Ñ × ,Ñ ,Ô .Ø � Š �t—}‘}Ñ$� ؈ r!cóð—|sJd«‚|jj|jjd|jj «¬««|jj «t‚)Nz7QuotedLiteralBlock.indent: context should not be empty!ryr£©r˜r}r:r¦r^rÇržrgrfs r"rØzQuotedLiteralBlock.indent so€Ùð &ð%ó &ˆwà � ‰ ×ÑØ �M‰M× Ñ Ð 9Ø%)×%7Ñ%7×%GÑ%GÓ%Ið ó Kô Lð ×Ñ×(Ñ(Ô*܈r!cóV—|jd«|jd}tjtj|««}|j d||j |jjf«|jj«|_ |jg|gfS)z7Match arbitrary quote character on the first line only.r’rÚquoted) Úremove_transitionrr¼rÒr-Úadd_transitionršrlrr^rÇr”)r2rrnrÖÚquoterœs r"r’z!QuotedLiteralBlock.initial_quoted# sˆ€à ×ÑÐ/Ô0Ø— ‘ ˜Q‘ˆÜ—*‘*œRŸY™Y uÓ-Ó.ˆà ×јHØ$ d§k¡k°4·>±>×3JÑ3JÐKô Mà"×0Ñ0×@Ñ@ÓBˆÔØ— ‘ ˆ~˜z¨2Ð-Ð-r!cóB—|j|j«||gfS)z,Match consistent quotes on subsequent lines.)r}rrfs r"ršzQuotedLiteralBlock.quoted. s€à�‰�u—|‘|Ô$ؘ  BÐ&Ð&r!cóâ—|rh|jj|jjd|jj «¬««|jj «t‚)Nz#Inconsistent literal block quoting.r£r˜rfs r"rÁzQuotedLiteralBlock.text3 s^€Ù Ø �M‰M× Ñ Ø— ‘ ×#Ñ#Ð$IØ)-×);Ñ);×)KÑ)KÓ)Mð$óOô Pð × Ñ × ,Ñ ,Ô .܈r!NrË)rrrr5rXr,rr.r4rérbrØr’ršrÁr r!r"rnrnñ sH„ñð #;¸T¿Y¹YÑ"FØñ€Hà4Ðó#ò +ò ò$ò .ò'ó r!rnrT)Cr5Ú __docformat__r¼Útypesrrrçrrrr r Údocutils.statemachiner r Údocutils.nodesr rªrrrårrrrÚdocutils.utilsrrrrrrrr%r'r)Ú Exceptionr+r-r7rRrVrÐrFr§r«r¯r³rXr0r=rôrErr$r7r4r rRrrÊryr|rGr#rnrZr r!r"Úr¦sôðñ `ðD#€ ó ß*ç/Ñ/ß0ß9ÝAß>ÛßJÓJß4ß?Ñ?Ý3ô#�)Ô"Ü2 )Ô2Ü9¨Ô9Ü)Ð"Ô)Ü%�YÔ%÷*ñ*ô$%�nô$%ôN˜ôô4i2ˆwôi2óX÷.W +ñW +ñt"% S£¨!¡óñ"% S£¨!¡óò&ôO*ˆ8ôO*ôd*+'�$ô+'ô\)�dô)ôX "�ô "ô0�_ô0ô"�_ô"ô0 "�ô "ô "�ô "ô*�/ ;ô*ô"�yôô( "�ô "ô *ˆô*ô*�dôô4w#ˆ8ôw#ôt�dôô.(�ô(ô";ˆ?ô;ôDH˜ôHðV�z >°>À9ؘYÐ(8¸(ÀDؘT ?°KÀðN€ ðEr!