ó
    "njN:  ã                  ó&  • S r SSKJr  SSKrSSKrSSKrSSKJrJ	r	  \(       a  SSK
Jr  \R                  R                  S5      r\R                  R                  \5      r\R"                  R%                  \5        \\R&                  S'   \R(                  " S5      \l        \R(                  " S	5      \l        \R,                  \l        \R(                  " S
\R0                  5      \l        \R(                  " S5      r " S S\R6                  5      rg)a  
This module imports a copy of [`html.parser.HTMLParser`][] and modifies it heavily through monkey-patches.
A copy is imported rather than the module being directly imported as this ensures that the user can import
and  use the unmodified library for their own needs.
é    )ÚannotationsN)ÚTYPE_CHECKINGÚSequence)ÚMarkdownzhtml.parserÚ
htmlparserz\?>z&([a-zA-Z][-.a-zA-Z0-9]*);a”  
  <[a-zA-Z][^`\t\n\r\f />\x00]*       # tag name <= added backtick here
  (?:[\s/]*                           # optional whitespace before attribute name
    (?:(?<=['"\s/])[^`\s/>][^\s/=>]*  # attribute name <= added backtick here
      (?:\s*=+\s*                     # value indicator
        (?:'[^']*'                    # LITA-enclosed value
          |"[^"]*"                    # LIT-enclosed value
          |(?!['"])[^`>\s]*           # bare value <= added backtick here
         )
         (?:\s*,)*                    # possibly followed by a comma
       )?(?:\s|/(?!>))*
     )*
   )?
  \s*                                 # trailing whitespace
z^([ ]*\n){2}c                  óF  ^ • \ rS rSr% SrSU 4S jjrU 4S jrU 4S jr\SS j5       r	S S jr
S!S jrS"S	 jrS#S
 jrS$S jrS%S jrS#S jrS&S jrS&S jrS$S jrS'U 4S jjrS$S jrS$S jrS$S jrS(U 4S jjrS(U 4S jjrS)S*U 4S jjjrSrS\S'   S+S jrS(S jrSrU =r $ ),ÚHTMLExtractoréJ   zç
Extract raw HTML from text.

The raw HTML is stored in the [`htmlStash`][markdown.util.HtmlStash] of the
[`Markdown`][markdown.Markdown] instance passed to `md` and the remaining text
is stored in `cleandoc` as a list of strings.
c                óˆ   >• SU;  a  SUS'   [        S/5      U l        S/U l        SU l        [        TU ]  " U0 UD6  Xl        g )NÚconvert_charrefsFÚhrr   )ÚsetÚ
empty_tagsÚlineno_start_cacheÚoverride_comment_updateÚsuperÚ__init__Úmd)Úselfr   ÚargsÚkwargsÚ	__class__s       €Ú5/usr/lib/python3/dist-packages/markdown/htmlparser.pyr   ÚHTMLExtractor.__init__S   sP   ø€ Ø VÓ+Ø).ˆFÐ%Ñ&ô ˜t˜f›+ˆŒà#$ #ˆÔà',ˆÔ$ô 	‰Ò˜$Ð) &Ò)Ø�ó    c                óx   >• SU l         SU l        / U l        / U l        / U l        S/U l        [        TU ]  5         g)z1Reset this instance.  Loses all unprocessed data.Fr   N)ÚinrawÚintailÚstackÚ_cacheÚcleandocr   r   Úreset©r   r   s    €r   r"   ÚHTMLExtractor.resetb   s9   ø€ àˆŒ
ØˆŒØ "ˆŒ
Ø!#ˆŒØ#%ˆŒØ#$ #ˆÔä‰‰�r   c                ó   >• [         TU ]  5         [        U R                  5      (       al  U R                  (       a@  U R
                  (       d/  U R                  [        R                  U R                  5      5        OU R                  U R                  5        [        U R                  5      (       a_  U R                  R                  U R                  R                  R                  SR                  U R                  5      5      5        / U l	        gg)zHandle any buffered data.Ú N)r   ÚcloseÚlenÚrawdatar   Ú
cdata_elemÚhandle_datar   Úunescaper    r!   Úappendr   Ú	htmlStashÚstoreÚjoinr#   s    €r   r'   ÚHTMLExtractor.closem   sª   ø€ ä‰‰ŒÜˆt�|‰|×Ñð ×$×$¨T¯_¯_Ø× Ñ ¤×!4Ñ!4°T·\±\Ó!BÕCà× Ñ  §¡Ô.äˆt�{‰{×ÑØ�M‰M× Ñ  §¡×!2Ñ!2×!8Ñ!8¸¿¹ÀÇÁÓ9MÓ!NÔOØˆD�Kð r   c                ón  • [        [        U R                  5      S-
  U R                  S-
  5       Hg  nU R                  U   nU R                  R                  SU5      nUS:X  a  [        U R                  5      nU R                  R                  US-   5        Mi     U R                  U R                  S-
     $ )zHReturns char index in `self.rawdata` for the start of the current line. é   Ú
éÿÿÿÿ)Úranger(   r   Úlinenor)   Úfindr-   )r   ÚiiÚlast_line_start_posÚlf_poss       r   Úline_offsetÚHTMLExtractor.line_offset|   sž   € ô œ˜D×3Ñ3Ó4°QÑ6¸¿¹ÀA¹ÖFˆBØ"&×"9Ñ"9¸"Ñ"=ÐØ—\‘\×&Ñ& tÐ-@ÓAˆFØ˜‹|ä˜TŸ\™\Ó*�Ø×#Ñ#×*Ñ*¨6°!©8Ö4ñ Gð ×&Ñ& t§{¡{°1¡}Ñ5Ð5r   c                óÈ   • U R                   S:X  a  gU R                   S:”  a  gU R                  U R                  U R                  U R                   -    R                  5       S:H  $ )zn
Returns True if current position is at start of line.

Allows for up to three blank spaces at start of line.
r   Té   Fr&   )Úoffsetr)   r<   Ústrip©r   s    r   Úat_line_startÚHTMLExtractor.at_line_start‰   sV   € ð �;‰;˜!ÓØØ�;‰;˜‹?Øà�|‰|˜D×,Ñ,¨T×-=Ñ-=ÀÇÁÑ-KÐL×RÑRÓTÐXZÑZÐZr   c                óð   • U R                   U R                  -   n[        R                  R	                  U R
                  U5      nU(       a  U R
                  X#R                  5        $ SR                  U5      $ )z�
Returns the text of the end tag.

If it fails to extract the actual text from the raw data, it builds a closing tag with `tag`.
z</{}>)r<   r@   r   Ú	endendtagÚsearchr)   ÚendÚformat)r   ÚtagÚstartÚms       r   Úget_endtag_textÚHTMLExtractor.get_endtag_text–   s]   € ð × Ñ  4§;¡;Ñ.ˆÜ× Ñ ×'Ñ'¨¯©°eÓ<ˆÞØ—<‘< §e¡e£gÐ.Ð.ð —>‘> #Ó&Ð&r   c                ó^  • XR                   ;   a  U R                  X5        g U R                  R                  U5      (       aY  U R                  (       d&  U R                  5       (       a3  U R                  (       d"  SU l        U R                  R                  S5        U R                  5       nU R                  (       a7  U R                  R                  U5        U R                  R                  U5        g U R                  R                  U5        XR                  ;   a  U R                  5         g g )NTr4   )r   Úhandle_startendtagr   Úis_block_levelr   rC   r   r!   r-   Úget_starttag_textr   r    ÚCDATA_CONTENT_ELEMENTSÚclear_cdata_mode)r   rJ   ÚattrsÚtexts       r   Úhandle_starttagÚHTMLExtractor.handle_starttag¥   sÐ   € à—/‘/Ó!Ø×#Ñ# CÔ/Øà�7‰7×!Ñ! #×&Ñ&¨D¯K¯K¸D×<NÑ<N×<PÑ<PÐY]×Yc×YcàˆDŒJØ�M‰M× Ñ  Ô&à×%Ñ%Ó'ˆØ�:�:Ø�J‰J×Ñ˜cÔ"Ø�K‰K×Ñ˜tÕ$à�M‰M× Ñ  Ô&Ø×1Ñ1Ó1à×%Ñ%Õ'ð 2r   c                ój  • U R                  U5      nU R                  (       Gau  U R                  R                  U5        XR                  ;   aC  U R                  (       a2  U R                  R                  5       U:X  a  OU R                  (       a  M2  [        U R                  5      S:X  aî  [        R                  U R                  U R                  U R                  -   [        U5      -   S  5      (       a  U R                  R                  S5        OSU l        SU l        U R                  R                  U R                  R                  R!                  SR#                  U R                  5      5      5        U R                  R                  S5        / U l        g g U R                  R                  U5        g )Nr   r4   TFr&   ú

)rM   r   r    r-   r   Úpopr(   Úblank_line_reÚmatchr)   r<   r@   r   r!   r   r.   r/   r0   )r   rJ   rV   s      r   Úhandle_endtagÚHTMLExtractor.handle_endtagº   s1  € Ø×#Ñ# CÓ(ˆà�:�:ˆ:Ø�K‰K×Ñ˜tÔ$Ø—j‘jÓ à—j—jØ—z‘z—~‘~Ó'¨3Ó.Øð —j—j‘jô �4—:‘:‹ !Ó#ä ×&Ñ& t§|¡|°D×4DÑ4DÀtÇ{Á{Ñ4RÔUXÐY]ÓU^Ñ4^Ð4_Ð'`×aÑaà—K‘K×&Ñ& tÕ,ð #'�D”Kà"�”
Ø—‘×$Ñ$ T§W¡W×%6Ñ%6×%<Ñ%<¸R¿W¹WÀTÇ[Á[Ó=QÓ%RÔSà—‘×$Ñ$ VÔ,Ø �•ð $ð �M‰M× Ñ  Õ&r   c                óÐ   • U R                   (       a  SU;   a  SU l         U R                  (       a  U R                  R                  U5        g U R                  R                  U5        g )Nr4   F)r   r   r    r-   r!   ©r   Údatas     r   r+   ÚHTMLExtractor.handle_dataÕ   sA   € Ø�;�;˜4 4›<ØˆDŒKØ�:�:Ø�K‰K×Ñ˜tÕ$à�M‰M× Ñ  Õ&r   c                ó&  • U R                   (       d  U R                  (       a  U R                  R                  U5        gU R	                  5       (       Ga"  U(       Ga  [
        R                  U R                  U R                  U R                  -   [        U5      -   S 5      (       a  US-  nOSU l        U R                  (       a  U R                  S   OSnUR                  S5      (       d1  UR                  S5      (       a  U R                  R                  S5        U R                  R                  U R                  R                  R                  U5      5        U R                  R                  S5        gU R                  R                  U5        g)zHandle empty tags (`<data>`). Nr4   Tr5   r&   rZ   )r   r   r    r-   rC   r\   r]   r)   r<   r@   r(   r!   Úendswithr   r.   r/   )r   rb   Úis_blockÚitems       r   Úhandle_empty_tagÚHTMLExtractor.handle_empty_tagÝ   s  € à�:�:˜ŸŸà�K‰K×Ñ˜tÕ$Ø×Ñ×!Ò!§hä×"Ñ" 4§<¡<°×0@Ñ0@À4Ç;Á;Ñ0NÔQTÐUYÓQZÑ0ZÐ0[Ð#\×]Ñ]à˜‘‘ð #�”Ø(,¯¯�4—=‘= Ò$¸2ˆDà—=‘= ×(Ñ(¨T¯]©]¸4×-@Ñ-@Ø—‘×$Ñ$ TÔ*Ø�M‰M× Ñ  §¡×!2Ñ!2×!8Ñ!8¸Ó!>Ô?à�M‰M× Ñ  Õ(à�M‰M× Ñ  Õ&r   c                ór   • U R                  U R                  5       U R                  R                  U5      S9  g )N©rf   )rh   rR   r   rQ   )r   rJ   rU   s      r   rP   Ú HTMLExtractor.handle_startendtagô   s.   € Ø×Ñ˜d×4Ñ4Ó6ÀÇÁ×AWÑAWÐX[ÓA\ÐÒ]r   c                óB   • U R                  SR                  U5      SS9  g )Nz&#{};Frk   ©rh   rI   ©r   Únames     r   Úhandle_charrefÚHTMLExtractor.handle_charref÷   s   € Ø×Ñ˜gŸn™n¨TÓ2¸UÐÒCr   c                óB   • U R                  SR                  U5      SS9  g )Nz&{};Frk   rn   ro   s     r   Úhandle_entityrefÚHTMLExtractor.handle_entityrefú   s   € Ø×Ñ˜fŸm™m¨DÓ1¸EÐÒBr   c                óî   • U R                   U R                  -   [        U5      -   S-   nU R                  X"S-    S:w  a  U R	                  S5        SU l        g U R                  SR                  U5      SS9  g )Né   r?   z-->Ú<Tz	<!--{}-->rk   )r<   r@   r(   r)   r+   r   rh   rI   )r   rb   Úis      r   Úhandle_commentÚHTMLExtractor.handle_commentý   sp   € à×Ñ˜tŸ{™{Ñ*¬S°«YÑ6¸Ñ:ˆØ�<‰<˜˜a™%Ð  EÓ)Ø×Ñ˜SÔ!Ø+/ˆDÔ(ØØ×Ñ˜k×0Ñ0°Ó6ÀÐÒFr   c                óZ   >• U R                   (       a  SU l         SnSn[        TU ]	  X5      $ )NFr   r3   )r   r   Ú	updatepos)r   ry   Újr   s      €r   r}   ÚHTMLExtractor.updatepos  s.   ø€ Ø×'×'Ø+0ˆDÔ(ØˆAØˆAÜ‰wÑ  Ó&Ð&r   c                óB   • U R                  SR                  U5      SS9  g )Nz<!{}>Trk   rn   ra   s     r   Úhandle_declÚHTMLExtractor.handle_decl  s   € Ø×Ñ˜gŸn™n¨TÓ2¸TÐÒBr   c                óB   • U R                  SR                  U5      SS9  g )Nz<?{}?>Trk   rn   ra   s     r   Ú	handle_piÚHTMLExtractor.handle_pi  s   € Ø×Ñ˜hŸo™o¨dÓ3¸dÐÒCr   c                óv   • UR                  S5      (       a  SOSnU R                  SR                  X5      SS9  g )NzCDATA[z]]>z]>z<![{}{}Trk   )Ú
startswithrh   rI   )r   rb   rH   s      r   Úunknown_declÚHTMLExtractor.unknown_decl  s5   € Ø—‘ x×0Ñ0‰e°dˆØ×Ñ˜i×.Ñ.¨tÓ9ÀDÐÒIr   c                óš   >• U R                  5       (       d  U R                  (       a  [        TU ]  U5      $ U R	                  S5        US-   $ )Nz<?é   )rC   r   r   Úparse_pir+   ©r   ry   r   s     €r   rŒ   ÚHTMLExtractor.parse_pi  sA   ø€ Ø×Ñ×Ñ 4§;§;Ü‘7Ñ# AÓ&Ð&ð 	×Ñ˜ÔØ�1‰uˆr   c                óš   >• U R                  5       (       d  U R                  (       a  [        TU ]  U5      $ U R	                  S5        US-   $ )Nz<!r‹   )rC   r   r   Úparse_html_declarationr+   r�   s     €r   r�   Ú$HTMLExtractor.parse_html_declaration  sA   ø€ Ø×Ñ×Ñ 4§;§;Ü‘7Ñ1°!Ó4Ð4ð 	×Ñ˜ÔØ�1‰uˆr   c                ól   >• [         TU ]  X5      nUS:X  a  gU R                  U R                  X SS9  U$ )Nr5   Frk   )r   Úparse_bogus_commentrh   r)   )r   ry   ÚreportÚposr   s       €r   r“   Ú!HTMLExtractor.parse_bogus_comment'  s?   ø€ ô ‰gÑ)¨!Ó4ˆØ�"‹9ØØ×Ñ˜dŸl™l¨1Ð1¸EÐÑBØˆ
r   Nz
str | NoneÚ_HTMLExtractor__starttag_textc                ó   • U R                   $ )z)Return full source of start tag: `<...>`.)r—   rB   s    r   rR   ÚHTMLExtractor.get_starttag_text6  s   € à×#Ñ#Ð#r   c                óF  • S U l         U R                  U5      nUS:  a%  U R                  U R                  XS-    5        US-   $ U R                  nX1U U l         / n[        R
                  R                  X1S-   5      nU(       d   S5       eUR                  5       nUR                  S5      R                  5       =U l
        nXb:  aË  [        R                  R                  X65      nU(       d  O¤UR                  SSS5      u  pšnU
(       d  S nO0US S Ss=:X  a	  USS  :X  d  O  US S Ss=:X  a	  USS  :X  a  O  OUSS nU(       a  [        R                  U5      nUR                  U	R                  5       U45        UR                  5       nXb:  a  MË  X6U R                  5       nUS	;  až  U R                  5       u  pÞS
U R                   ;   aO  XÐR                   R!                  S
5      -   n[#        U R                   5      U R                   R%                  S
5      -
  nOU[#        U R                   5      -   nU R                  X1U 5        U$ UR'                  S5      (       a  U R)                  Xt5        U$ XpR*                  ;   a  U R-                  U5        U R/                  Xt5        U$ )Nr   r3   z#unexpected call to parse_starttag()r‹   r?   Ú'r5   Ú")Ú>ú/>r4   rž   )r—   Úcheck_for_whole_start_tagr+   r)   r   Útagfind_tolerantr]   rH   ÚgroupÚlowerÚlasttagÚattrfind_tolerantr,   r-   rA   ÚgetposÚcountr(   Úrfindre   rP   rS   Úset_cdata_moderW   )r   ry   Úendposr)   rU   r]   ÚkrJ   rL   ÚattrnameÚrestÚ	attrvaluerH   r7   r@   s                  r   Úparse_starttagÚHTMLExtractor.parse_starttag:  sh  € Ø#ˆÔØ×/Ñ/°Ó2ˆØ�A‹:Ø×Ñ˜TŸ\™\¨!°©EÐ2Ô3Ø�q‘5ˆLØ—,‘,ˆØ&¨Ð0ˆÔð ˆÜ×+Ñ+×1Ñ1°'¸Q¹3Ó?ˆÞÐ;Ð;Ó;ˆuØ�I‰I‹KˆØ"Ÿ[™[¨›^×1Ñ1Ó3Ð3ˆŒ�sØ‹jÜ×,Ñ,×2Ñ2°7Ó>ˆAÞØØ()¯©°°1°aÓ(8Ñ%ˆH˜IÞØ ‘	Ø˜2˜A� $Õ8¨)°B°C¨.Õ8Ø˜2˜A� #Õ7¨°2°3¨Ö7Ø% a¨˜O�	ÞÜ&×/Ñ/°	Ó:�	Ø�L‰L˜(Ÿ.™.Ó*¨IÐ6Ô7Ø—‘“ˆAð �jð ˜Ð×%Ñ%Ó'ˆØ�kÓ!Ø!Ÿ[™[›]‰NˆFØ�t×+Ñ+Ó+Ø×"6Ñ"6×"<Ñ"<¸TÓ"BÑB�Ü˜T×1Ñ1Ó2Ø×/Ñ/×5Ñ5°dÓ;ñ<‘ð  ¤# d×&:Ñ&:Ó";Ñ;�Ø×Ñ˜W vÐ.Ô/ØˆMØ�<‰<˜×Ñà×#Ñ# CÔ/ð ˆð ×1Ñ1Ó1Ø×#Ñ# CÔ(Ø× Ñ  Ô,Øˆr   )Ú__starttag_textr    r!   r   r   r   r£   r   r   r   r   )r   r   )ÚreturnÚint)r±   Úbool)rJ   Ústrr±   r´   )rJ   r´   rU   zSequence[tuple[str, str]])rJ   r´   )rb   r´   )rb   r´   rf   r³   )rp   r´   )ry   r²   r~   r²   r±   r²   )ry   r²   r±   r²   )r   )ry   r²   r”   r²   r±   r²   )r±   r´   )!Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r"   r'   Úpropertyr<   rC   rM   rW   r^   r+   rh   rP   rq   rt   rz   r}   r�   r„   rˆ   rŒ   r�   r“   r—   Ú__annotations__rR   r®   Ú__static_attributes__Ú__classcell__)r   s   @r   r	   r	   J   s¨   ø‡ ñ÷õ	õð ó
6ó ð
6ô[ô'ô(ô*'ô6'ô'ô.^ôDôCôG÷'ôCôDôJ÷÷÷ñ ð #'€O�ZÓ&ô$÷1ò 1r   r	   )r¹   Ú
__future__r   ÚreÚimportlib.utilÚ	importlibÚsysÚtypingr   r   Úmarkdownr   ÚutilÚ	find_specÚspecÚmodule_from_specr   ÚloaderÚexec_moduleÚmodulesÚcompileÚpicloseÚ	entityrefÚ
incompleteÚVERBOSEÚlocatestarttagend_tolerantr\   Ú
HTMLParserr	   © r   r   Ú<module>rÔ      sã   ðñ(õ #ã 	Û Û 
ß *æÝ!ð
 ‡~�~×Ñ Ó.€Ø�^‰^×,Ñ,¨TÓ2€
Ø ‡�× Ñ ˜
Ô #Ø&€‡�ˆLÑ ð —Z’Z Ó'€
Ô à—z’zÐ"?Ó@€
Ô ð #×,Ñ,€
Ô à(*¯
ª
ð 4ð ‡Z�Zó)€
Ô %ð$ —
’
˜?Ó+€ôa�J×)Ñ)õ ar   