<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

ðÕYf?E  ã               @   s  d  Z  d d l Z d d l Z d d l Z d d l m Z d g Z e j d ƒ Z e j d ƒ Z	 e j d ƒ Z
 e j d ƒ Z e j d	 ƒ Z e j d
 ƒ Z e j d ƒ Z e j d ƒ Z e j d ƒ Z e j d e j ƒ Z e j d
 ƒ Z e j d ƒ Z Gd d „  d e j ƒ Z d S)zA parser for HTML and XHTML.é    N)ÚunescapeÚ
HTMLParserz[&<]z
&[a-zA-Z#]z%&([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]z)&#(?:[0-9]+|[xX][0-9a-fA-F]+)[^0-9a-fA-F]z	<[a-zA-Z]ú>z--\s*>z$([a-zA-Z][^	
 /> ]*)(?:\s|/(?!>))*z]((?<=[\'"\s/])[^\s/>][^\s/=>]*)(\s*=+\s*(\'[^\']*\'|"[^"]*"|(?![\'"])[^>\s]*))?(?:\s|/(?!>))*aF  
  <[a-zA-Z][^\t\n\r\f />\x00]*       # tag name
  (?:[\s/]*                          # optional whitespace before attribute name
    (?:(?<=['"\s/])[^\s/>][^\s/=>]*  # attribute name
      (?:\s*=+\s*                    # value indicator
        (?:'[^']*'                   # LITA-enclosed value
          |"[^"]*"                   # LIT-enclosed value
          |(?!['"])[^>\s]*           # bare value
         )
         (?:\s*,)*                   # possibly followed by a comma
       )?(?:\s|/(?!>))*
     )*
   )?
  \s*                                # trailing whitespace
z#</\s*([a-zA-Z][-.a-zA-Z0-9:_]*)\s*>c               @   sW  e  Z d  Z d Z d: Z d d d d „ Z d d	 „  Z d
 d „  Z d d „  Z d Z	 d d „  Z
 d d „  Z d d „  Z d d „  Z d d „  Z d d d „ Z d d „  Z d d „  Z d  d! „  Z d" d# „  Z d$ d% „  Z d& d' „  Z d( d) „  Z d* d+ „  Z d, d- „  Z d. d/ „  Z d0 d1 „  Z d2 d3 „  Z d4 d5 „  Z d6 d7 „  Z d8 d9 „  Z d S);r   aE  Find tags and other markup and call handler functions.

    Usage:
        p = HTMLParser()
        p.feed(data)
        ...
        p.close()

    Start tags are handled by calling self.handle_starttag() or
    self.handle_startendtag(); end tags by self.handle_endtag().  The
    data between tags is passed from the parser to the derived class
    by calling self.handle_data() with the data as argument (the data
    may be split up in arbitrary chunks).  If convert_charrefs is
    True the character references are converted automatically to the
    corresponding Unicode character (and self.handle_data() is no
    longer split in chunks), otherwise they are passed by calling
    self.handle_entityref() or self.handle_charref() with the string
    containing respectively the named or numeric reference as the
    argument.
    ÚscriptÚstyleÚconvert_charrefsTc            C   s   | |  _  |  j ƒ  d S)zÆInitialize and reset this instance.

        If convert_charrefs is True (the default), all character references
        are automatically converted to the corresponding Unicode characters.
        N)r   Úreset)Úselfr   © r
   ú0/opt/alt/python35/lib64/python3.5/html/parser.pyÚ__init__W   s    	zHTMLParser.__init__c             C   s8   d |  _  d |  _ t |  _ d |  _ t j j |  ƒ d S)z1Reset this instance.  Loses all unprocessed data.Ú z???N)ÚrawdataÚlasttagÚinteresting_normalÚinterestingÚ
cdata_elemÚ_markupbaseÚ
ParserBaser   )r	   r
   r
   r   r   `   s
    				zHTMLParser.resetc             C   s!   |  j  | |  _  |  j d ƒ d S)z‘Feed data to the parser.

        Call this as often as you want, with as little or as much text
        as you want (may include '\n').
        r   N)r   Úgoahead)r	   Údatar
   r
   r   Úfeedh   s    zHTMLParser.feedc             C   s   |  j  d ƒ d S)zHandle any buffered data.é   N)r   )r	   r
   r
   r   Úcloseq   s    zHTMLParser.closeNc             C   s   |  j  S)z)Return full source of start tag: '<...>'.)Ú_HTMLParser__starttag_text)r	   r
   r
   r   Úget_starttag_textw   s    zHTMLParser.get_starttag_textc             C   s2   | j  ƒ  |  _ t j d |  j t j ƒ |  _ d  S)Nz</\s*%s\s*>)Úlowerr   ÚreÚcompileÚIr   )r	   Úelemr
   r
   r   Úset_cdata_mode{   s    zHTMLParser.set_cdata_modec             C   s   t  |  _ d  |  _ d  S)N)r   r   r   )r	   r
   r
   r   Úclear_cdata_mode   s    	zHTMLParser.clear_cdata_modec             C   s©  |  j  } d } t | ƒ } xü| | k  r|  j r¬ |  j r¬ | j d | ƒ } | d k  ræ | j d t | | d ƒ ƒ } | d k r£ t j d ƒ j	 | | ƒ r£ P| } n: |  j
 j	 | | ƒ } | rÖ | j ƒ  } n |  j rà P| } | | k  r<|  j r%|  j r%|  j t | | | … ƒ ƒ n |  j | | | … ƒ |  j | | ƒ } | | k r[P| j } | d | ƒ rt j | | ƒ r—|  j | ƒ }	 n¯ | d | ƒ r¸|  j | ƒ }	 nŽ | d | ƒ rÙ|  j | ƒ }	 nm | d | ƒ rú|  j | ƒ }	 nL | d	 | ƒ r|  j | ƒ }	 n+ | d
 | k  rE|  j d ƒ | d
 }	 n P|	 d k  rþ| sYP| j d | d
 ƒ }	 |	 d k  rª| j d | d
 ƒ }	 |	 d k  r´| d
 }	 n
 |	 d
 7}	 |  j rç|  j rç|  j t | | |	 … ƒ ƒ n |  j | | |	 … ƒ |  j | |	 ƒ } q | d | ƒ rét j | | ƒ } | rž| j ƒ  d d … }
 |  j |
 ƒ | j ƒ  }	 | d |	 d
 ƒ s†|	 d
 }	 |  j | |	 ƒ } q qd | | d  … k rå|  j | | | d … ƒ |  j | | d ƒ } Pq | d | ƒ r t j | | ƒ } | rj| j d
 ƒ }
 |  j |
 ƒ | j ƒ  }	 | d |	 d
 ƒ sU|	 d
 }	 |  j | |	 ƒ } q t j | | ƒ } | rÜ| rØ| j ƒ  | | d  … k rØ| j ƒ  }	 |	 | k rÂ| }	 |  j | | d
 ƒ } Pq| d
 | k  r|  j d ƒ |  j | | d
 ƒ } qPq q W| r’| | k  r’|  j r’|  j ri|  j ri|  j t | | | … ƒ ƒ n |  j | | | … ƒ |  j | | ƒ } | | d  … |  _  d  S)Nr   ú<ú&é"   z[\s;]z</z<!--z<?z<!r   r   z&#é   ú;éÿÿÿÿ)r   Úlenr   r   ÚfindÚrfindÚmaxr   r   Úsearchr   ÚstartÚhandle_datar   Z	updateposÚ
startswithÚstarttagopenÚmatchÚparse_starttagÚparse_endtagÚparse_commentÚparse_piÚparse_html_declarationÚcharrefÚgroupÚhandle_charrefÚendÚ	entityrefÚhandle_entityrefÚ
incomplete)r	   r;   r   ÚiÚnÚjZampposr2   r0   ÚkÚnamer
   r
   r   r   †   sÂ    			  	
 

" zHTMLParser.goaheadc             C   sÑ   |  j  } | | | d … d k r0 |  j | ƒ S| | | d … d k rW |  j | ƒ S| | | d … j ƒ  d k rÀ | j d | d ƒ } | d
 k r d S|  j | | d	 | … ƒ | d S|  j | ƒ Sd  S)Né   z<!--é   z<![é	   z	<!doctyper   r   r&   r(   r(   )r   r5   Zparse_marked_sectionr   r*   Úhandle_declÚparse_bogus_comment)r	   r?   r   Úgtposr
   r
   r   r7      s    	 z!HTMLParser.parse_html_declarationr   c             C   sX   |  j  } | j d | d ƒ } | d k r/ d S| rP |  j | | d | … ƒ | d S)Nr   r&   r   r(   r(   )r   r*   Úhandle_comment)r	   r?   Zreportr   Úposr
   r
   r   rH     s    	zHTMLParser.parse_bogus_commentc             C   s`   |  j  } t j | | d ƒ } | s) d S| j ƒ  } |  j | | d | … ƒ | j ƒ  } | S)Nr&   r   r(   )r   Úpicloser-   r.   Ú	handle_pir;   )r	   r?   r   r2   rA   r
   r
   r   r6   !  s    	zHTMLParser.parse_pic             C   sƒ  d  |  _  |  j | ƒ } | d k  r( | S|  j } | | | … |  _  g  } t j | | d ƒ } | j ƒ  } | j d ƒ j ƒ  |  _ } xý | | k  r‡t	 j | | ƒ } | s° P| j d d d ƒ \ }	 }
 } |
 sÝ d  } np | d  d … d k o| d
 d  … k n s=| d  d … d k o8| d d  … k n rM| d d … } | r_t
 | ƒ } | j |	 j ƒ  | f ƒ | j ƒ  } q‹ W| | | … j ƒ  } | d k r1|  j ƒ  \ } } d	 |  j  k r| |  j  j d	 ƒ } t |  j  ƒ |  j  j d	 ƒ } n | t |  j  ƒ } |  j | | | … ƒ | S| j d ƒ rS|  j | | ƒ n, |  j | | ƒ | |  j k r|  j | ƒ | S)Nr   r   r&   rE   ú'ú"r   ú/>Ú
r(   r(   r(   )r   rP   )r   Úcheck_for_whole_start_tagr   Útagfind_tolerantr2   r;   r9   r   r   Úattrfind_tolerantr   ÚappendÚstripZgetposÚcountr)   r+   r/   ÚendswithÚhandle_startendtagÚhandle_starttagÚCDATA_CONTENT_ELEMENTSr!   )r	   r?   Úendposr   Úattrsr2   rB   ÚtagÚmZattrnameÚrestZ	attrvaluer;   ÚlinenoÚoffsetr
   r
   r   r3   -  sP    			00zHTMLParser.parse_starttagc             C   sñ   |  j  } t j | | ƒ } | rá | j ƒ  } | | | d … } | d k rU | d S| d k r© | j d | ƒ r{ | d S| j d | ƒ r‘ d	 S| | k r¡ | S| d S| d k r¹ d
 S| d k rÉ d S| | k rÙ | S| d St d ƒ ‚ d  S)Nr   r   ú/z/>r&   r   z6abcdefghijklmnopqrstuvwxyz=/ABCDEFGHIJKLMNOPQRSTUVWXYZzwe should not get here!r(   r(   r(   )r   Úlocatestarttagend_tolerantr2   r;   r0   ÚAssertionError)r	   r?   r   r_   rA   Únextr
   r
   r   rR   `  s.    	z$HTMLParser.check_for_whole_start_tagc             C   ss  |  j  } t j | | d ƒ } | s) d S| j ƒ  } t j | | ƒ } | s|  j d  k	 rw |  j | | | … ƒ | St j | | d ƒ } | sÂ | | | d … d k rµ | d S|  j	 | ƒ S| j
 d ƒ j ƒ  } | j d | j ƒ  ƒ } |  j | ƒ | d S| j
 d ƒ j ƒ  } |  j d  k	 rR| |  j k rR|  j | | | … ƒ | S|  j | j ƒ  ƒ |  j ƒ  | S)Nr   r&   rE   z</>r   r(   )r   Ú	endendtagr-   r;   Ú
endtagfindr2   r   r/   rS   rH   r9   r   r*   Úhandle_endtagr"   )r	   r?   r   r2   rI   Z	namematchZtagnamer    r
   r
   r   r4   ‚  s6    	
zHTMLParser.parse_endtagc             C   s!   |  j  | | ƒ |  j | ƒ d  S)N)rZ   ri   )r	   r^   r]   r
   r
   r   rY   ª  s    zHTMLParser.handle_startendtagc             C   s   d  S)Nr
   )r	   r^   r]   r
   r
   r   rZ   ¯  s    zHTMLParser.handle_starttagc             C   s   d  S)Nr
   )r	   r^   r
   r
   r   ri   ³  s    zHTMLParser.handle_endtagc             C   s   d  S)Nr
   )r	   rC   r
   r
   r   r:   ·  s    zHTMLParser.handle_charrefc             C   s   d  S)Nr
   )r	   rC   r
   r
   r   r=   »  s    zHTMLParser.handle_entityrefc             C   s   d  S)Nr
   )r	   r   r
   r
   r   r/   ¿  s    zHTMLParser.handle_datac             C   s   d  S)Nr
   )r	   r   r
   r
   r   rJ   Ã  s    zHTMLParser.handle_commentc             C   s   d  S)Nr
   )r	   Zdeclr
   r
   r   rG   Ç  s    zHTMLParser.handle_declc             C   s   d  S)Nr
   )r	   r   r
   r
   r   rM   Ë  s    zHTMLParser.handle_pic             C   s   d  S)Nr
   )r	   r   r
   r
   r   Úunknown_declÎ  s    zHTMLParser.unknown_declc             C   s    t  j d t d d ƒt | ƒ S)NzZThe unescape method is deprecated and will be removed in 3.5, use html.unescape() instead.Ú
stacklevelr&   )ÚwarningsÚwarnÚDeprecationWarningr   )r	   Úsr
   r
   r   r   Ò  s    	zHTMLParser.unescape)r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r[   r   r   r   r   r   r   r!   r"   r   r7   rH   r6   r3   rR   r4   rY   rZ   ri   r:   r=   r/   rJ   rG   rM   rj   r   r
   r
   r
   r   r   ?   s8   		z3"()rs   r   rl   r   Zhtmlr   Ú__all__r   r   r>   r<   r8   r1   rL   ZcommentcloserS   rT   ÚVERBOSErd   rg   rh   r   r   r
   r
   r
   r   Ú<module>   s(   
		