<!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>

7Re,@  c               @   s   d  d l  m Z m Z m Z d  d l Z d  d l m Z m Z d d l m	 Z	 d d l
 m Z Gd d   d e  Z Gd	 d
   d
 e	 e  Z d S(   i    (   u   absolute_importu   divisionu   unicode_literalsN(   u   escapeu   unescapei   (   u   HTMLTokenizer(   u
   tokenTypesc             B   sC  |  Ee  Z d  Z d Z d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd gc Z de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz d{ d| d} d~ d g Z d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d g# Z d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d) d d d d d d d d d d d d d d d d d8 d d d d d d d d d d d d d d d d d d d d d d d d d d d d d ddddddddd	d
dddddddR dddddddddd ddddddd d!d"d#d$d%d&d'g Z d(d d)d)d)d*d+d,d-d.d/d0d1d2d3d4d d d5d6d7d8d9d9d:d;d<d=d=d=d>d?dd@dAdBdCdDd%d%dEdFdGdHdIg- Z dJdKdLdMdNdOdPdQdRdSdTdUdVdWd dXd dYdZd[d\d]d^d_d`d.dad dbdcdddedfdgdhdidjdkdldmdndodpdqdrd dsdtd dudvdwdxdyd dzd{d|d}d~ddd d d dddddddd ddddddddddddddddddddddddddddddddddddddddddddddd%ddddddddEddFddGdd'ddHdIddddg Z	 d dd d d d dEdg Z
 dXdddbdd d|d{dzddg Z dd d d d dddd d d ddd d g Z ddddddddd d ddd.ddd( dedfdhdidjd dddddddddddddddddddddd"dd%g. Z dddddddddd dddddddddddd d ddd ddddddd	d
dddddg' Z dbdcdddddddg Z dddddddddddddddddd d!d"d#d$g Z e e e Z e e e	 Z e Z e Z e Z e Z d%d&  Z d'd(  Z d)d*  Z d+d,  Z d-S(.  u   HTMLSanitizerMixinuA    sanitization of XHTML+MathML+SVG and of inline style attributes.u   au   abbru   acronymu   addressu   areau   articleu   asideu   audiou   bu   bigu
   blockquoteu   bru   buttonu   canvasu   captionu   centeru   citeu   codeu   colu   colgroupu   commandu   datagridu   datalistu   ddu   delu   detailsu   dfnu   dialogu   diru   divu   dlu   dtu   emu   event-sourceu   fieldsetu
   figcaptionu   figureu   footeru   fontu   formu   headeru   h1u   h2u   h3u   h4u   h5u   h6u   hru   iu   imgu   inputu   insu   keygenu   kbdu   labelu   legendu   liu   mu   mapu   menuu   meteru   multicolu   navu   nextidu   olu   outputu   optgroupu   optionu   pu   preu   progressu   qu   su   sampu   sectionu   selectu   smallu   soundu   sourceu   spaceru   spanu   strikeu   strongu   subu   supu   tableu   tbodyu   tdu   textareau   timeu   tfootu   thu   theadu   tru   ttu   uu   ulu   varu   videou   mactionu   mathu   merroru   mfracu   miu   mmultiscriptsu   mnu   mou   moveru   mpaddedu   mphantomu   mprescriptsu   mrootu   mrowu   mspaceu   msqrtu   mstyleu   msubu   msubsupu   msupu   mtableu   mtdu   mtextu   mtru   munderu
   munderoveru   noneu   animateu   animateColoru   animateMotionu   animateTransformu   clipPathu   circleu   defsu   descu   ellipseu	   font-faceu   font-face-nameu   font-face-srcu   gu   glyphu   hkernu   linearGradientu   lineu   markeru   metadatau   missing-glyphu   mpathu   pathu   polygonu   polylineu   radialGradientu   rectu   setu   stopu   svgu   switchu   textu   titleu   tspanu   useu   acceptu   accept-charsetu	   accesskeyu   actionu   alignu   altu   autocompleteu	   autofocusu   axisu
   backgroundu   balanceu   bgcoloru   bgpropertiesu   borderu   bordercoloru   bordercolordarku   bordercolorlightu   bottompaddingu   cellpaddingu   cellspacingu   chu	   challengeu   charu   charoffu   choffu   charsetu   checkedu   classu   clearu   coloru   colsu   colspanu   compactu   contenteditableu   controlsu   coordsu   datau   datafldu   datapagesizeu   datasrcu   datetimeu   defaultu   delayu   disabledu	   draggableu   dynsrcu   enctypeu   endu   faceu   foru   frameu
   galleryimgu   gutteru   headersu   heightu	   hidefocusu   hiddenu   highu   hrefu   hreflangu   hspaceu   iconu   idu	   inputmodeu   ismapu   keytypeu   leftspacingu   langu   listu   longdescu   loopu	   loopcountu   loopendu	   loopstartu   lowu   lowsrcu   maxu	   maxlengthu   mediau   methodu   minu   multipleu   nameu   nohrefu   noshadeu   nowrapu   openu   optimumu   patternu   pingu
   point-sizeu   posteru   pqgu   preloadu   promptu
   radiogroupu   readonlyu   relu
   repeat-maxu
   repeat-minu   replaceu   requiredu   revu   rightspacingu   rowsu   rowspanu   rulesu   scopeu   selectedu   shapeu   sizeu   srcu   startu   stepu   styleu   summaryu   suppressu   tabindexu   targetu   templateu
   toppaddingu   typeu   unselectableu   usemapu   urnu   valignu   valueu   variableu   volumeu   vspaceu   vrmlu   widthu   wrapu   xml:langu
   actiontypeu   columnalignu   columnlinesu   columnspacingu
   columnspanu   depthu   displayu   displaystyleu   equalcolumnsu	   equalrowsu   fenceu	   fontstyleu
   fontweightu   linethicknessu   lspaceu   mathbackgroundu	   mathcoloru   mathvariantu   maxsizeu   minsizeu   otheru   rowalignu   rowlinesu
   rowspacingu   rspaceu   scriptlevelu	   selectionu	   separatoru   stretchyu
   xlink:hrefu
   xlink:showu
   xlink:typeu   xmlnsu   xmlns:xlinku   accent-heightu
   accumulateu   additiveu
   alphabeticu   arabic-formu   ascentu   attributeNameu   attributeTypeu   baseProfileu   bboxu   beginu   byu   calcModeu
   cap-heightu	   clip-pathu   color-renderingu   contentu   cxu   cyu   du   dxu   dyu   descentu   duru   fillu   fill-opacityu	   fill-ruleu   font-familyu	   font-sizeu   font-stretchu
   font-styleu   font-variantu   font-weightu   fromu   fxu   fyu   g1u   g2u
   glyph-nameu   gradientUnitsu   hangingu   horiz-adv-xu   horiz-origin-xu   ideographicu   ku	   keyPointsu
   keySplinesu   keyTimesu
   marker-endu
   marker-midu   marker-startu   markerHeightu   markerUnitsu   markerWidthu   mathematicalu   offsetu   opacityu   orientu   originu   overline-positionu   overline-thicknessu   panose-1u
   pathLengthu   pointsu   preserveAspectRatiou   ru   refXu   refYu   repeatCountu	   repeatDuru   requiredExtensionsu   requiredFeaturesu   restartu   rotateu   rxu   ryu   slopeu   stemhu   stemvu
   stop-coloru   stop-opacityu   strikethrough-positionu   strikethrough-thicknessu   strokeu   stroke-dasharrayu   stroke-dashoffsetu   stroke-linecapu   stroke-linejoinu   stroke-miterlimitu   stroke-opacityu   stroke-widthu   systemLanguageu   text-anchoru   tou	   transformu   u1u   u2u   underline-positionu   underline-thicknessu   unicodeu   unicode-rangeu   units-per-emu   valuesu   versionu   viewBoxu
   visibilityu   widthsu   xu   x-heightu   x1u   x2u   xlink:actuateu   xlink:arcroleu
   xlink:roleu   xlink:titleu   xml:baseu	   xml:spaceu   yu   y1u   y2u
   zoomAndPanu   color-profileu   cursoru   filteru   masku   altGlyphu   feImageu   textpathu   trefu   azimuthu   background-coloru   border-bottom-coloru   border-collapseu   border-coloru   border-left-coloru   border-right-coloru   border-top-coloru	   directionu	   elevationu   floatu   letter-spacingu   line-heightu   overflowu   pauseu   pause-afteru   pause-beforeu   pitchu   pitch-rangeu   richnessu   speaku   speak-headeru   speak-numeralu   speak-punctuationu   speech-rateu   stressu
   text-alignu   text-decorationu   text-indentu   unicode-bidiu   vertical-alignu   voice-familyu   white-spaceu   autou   aquau   blacku   blocku   blueu   boldu   bothu   bottomu   brownu   collapseu   dashedu   dottedu   fuchsiau   grayu   greenu
   !importantu   italicu   leftu   limeu   maroonu   mediumu   navyu   normalu   oliveu   pointeru   purpleu   redu   rightu   solidu   silveru   tealu   topu   transparentu	   underlineu   whiteu   yellowu   ed2ku   ftpu   httpu   httpsu   ircu   mailtou   newsu   gopheru   nntpu   telnetu   webcalu   xmppu   calltou   feedu   aimu   rsyncu   tagu   sshu   sftpu   rtspu   afsc             C   s   | d } | t  t j    k r/ t | } n  | t d t d t d f k r | d |  j k rs |  j | |  S|  j | |  Sn | t d k r n | Sd  S(   Nu   typeu   StartTagu   EndTagu   EmptyTagu   nameu   Comment(   u   listu
   tokenTypesu   keysu   allowed_elementsu   allowed_tokenu   disallowed_token(   u   selfu   tokenu
   token_type(    (    u7   /tmp/pip-zej_zi-build/pip/_vendor/html5lib/sanitizer.pyu   sanitize_token   s    
u!   HTMLSanitizerMixin.sanitize_tokenc                s  d | k rt    f d d   | d d  d  d  D  } x   j D] } | | k r^ qF n  t j d d t | |   j   } | j d d  } t j d |  rF | j d	  d
   j	 k rF | | =qF qF WxC   j
 D]8 } | | k r t j d d t | |   | | <q q W| d   j k rVd | k rVt j d | d  rV| d =n  d | k r|  j | d  | d <n  d d   t | j    D | d <n  | S(   Nu   datac                s1   g  |  ]' \ } } |   j  k r | | f  q S(    (   u   allowed_attributes(   u   .0u   nameu   val(   u   self(    u7   /tmp/pip-zej_zi-build/pip/_vendor/html5lib/sanitizer.pyu
   <listcomp>   s   	 	u4   HTMLSanitizerMixin.allowed_token.<locals>.<listcomp>i   u   [` - - \s]+u    u   �u   ^[a-z0-9][-+.a-z0-9]*:u   :i    u   url\s*\(\s*[^#\s][^)]+?\)u    u   nameu
   xlink:hrefu   ^\s*[^#\s].*u   stylec             S   s"   g  |  ] \ } } | | g  q S(    (    (   u   .0u   nameu   val(    (    u7   /tmp/pip-zej_zi-build/pip/_vendor/html5lib/sanitizer.pyu
   <listcomp>   s   	 i(   u   dictu   attr_val_is_uriu   reu   subu   unescapeu   loweru   replaceu   matchu   splitu   allowed_protocolsu   svg_attr_val_allows_refu   svg_allow_local_hrefu   searchu   sanitize_cssu   listu   items(   u   selfu   tokenu
   token_typeu   attrsu   attru   val_unescaped(    (   u   selfu7   /tmp/pip-zej_zi-build/pip/_vendor/html5lib/sanitizer.pyu   allowed_token   s4    	
&u    HTMLSanitizerMixin.allowed_tokenc             C   s   | t  d k r% d | d | d <nW | d rj d j d d   | d D  } d | d | f | d <n d	 | d | d <| j d
  r | d d  d  d | d <n  | d t t  j    k r d | d <n t  d | d <| d =| S(   Nu   EndTagu   </%s>u   nameu   datau    c             S   s,   g  |  ]" \ } } d  | t  |  f  q S(   u    %s="%s"(   u   escape(   u   .0u   ku   v(    (    u7   /tmp/pip-zej_zi-build/pip/_vendor/html5lib/sanitizer.pyu
   <listcomp>   s   	 u7   HTMLSanitizerMixin.disallowed_token.<locals>.<listcomp>u   <%s%s>u   <%s>u   selfClosingi   u   />u   typeu
   Charactersi(   u
   tokenTypesu   joinu   getu   listu   keys(   u   selfu   tokenu
   token_typeu   attrs(    (    u7   /tmp/pip-zej_zi-build/pip/_vendor/html5lib/sanitizer.pyu   disallowed_token   s    
 u#   HTMLSanitizerMixin.disallowed_tokenc             C   sc  t  j d  j d |  } t  j d |  s1 d St  j d |  sG d Sg  } xt  j d |  D] \ } } | sx q` n  | j   |  j k r | j | d | d  q` | j d	  d
 j   d k r!x | j   D], } | |  j	 k r t  j d |  r Pq q W| j | d | d  q` | j   |  j
 k r` | j | d | d  q` q` Wd j |  S(   Nu   url\s*\(\s*[^\s)]+?\s*\)\s*u    u@   ^([:,;#%.\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'|"[\s\w]+"|\([\d,\s]+\))*$u    u    ^\s*([-\w]+\s*:[^:;]*(;\s*|$))*$u   ([-\w]+)\s*:\s*([^:;]*)u   : u   ;u   -i    u
   backgroundu   borderu   marginu   paddingu\   ^(#[0-9a-f]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)$(   u
   backgroundu   borderu   marginu   padding(   u   reu   compileu   subu   matchu   findallu   loweru   allowed_css_propertiesu   appendu   splitu   acceptable_css_keywordsu   allowed_svg_propertiesu   join(   u   selfu   styleu   cleanu   propu   valueu   keyword(    (    u7   /tmp/pip-zej_zi-build/pip/_vendor/html5lib/sanitizer.pyu   sanitize_css   s*    	 u   HTMLSanitizerMixin.sanitize_cssN(   u   __name__u
   __module__u   __qualname__u   __doc__u   acceptable_elementsu   mathml_elementsu   svg_elementsu   acceptable_attributesu   mathml_attributesu   svg_attributesu   attr_val_is_uriu   svg_attr_val_allows_refu   svg_allow_local_hrefu   acceptable_css_propertiesu   acceptable_css_keywordsu   acceptable_svg_propertiesu   acceptable_protocolsu   allowed_elementsu   allowed_attributesu   allowed_css_propertiesu   allowed_css_keywordsu   allowed_svg_propertiesu   allowed_protocolsu   sanitize_tokenu   allowed_tokenu   disallowed_tokenu   sanitize_css(   u
   __locals__(    (    u7   /tmp/pip-zej_zi-build/pip/_vendor/html5lib/sanitizer.pyu   HTMLSanitizerMixin
   s   						u   HTMLSanitizerMixinc             B   s>   |  Ee  Z d  Z d d d d d d d d  Z d d   Z d S(   u   HTMLSanitizerc          
   C   s)   t  j |  | | | | | | d | d  S(   Nu   parser(   u   HTMLTokenizeru   __init__(   u   selfu   streamu   encodingu	   parseMetau
   useChardetu   lowercaseElementNameu   lowercaseAttrNameu   parser(    (    u7   /tmp/pip-zej_zi-build/pip/_vendor/html5lib/sanitizer.pyu   __init__  s    u   HTMLSanitizer.__init__c             c   s;   x4 t  j |   D]# } |  j |  } | r | Vq q Wd  S(   N(   u   HTMLTokenizeru   __iter__u   sanitize_token(   u   selfu   token(    (    u7   /tmp/pip-zej_zi-build/pip/_vendor/html5lib/sanitizer.pyu   __iter__  s    u   HTMLSanitizer.__iter__NTF(   u   __name__u
   __module__u   __qualname__u   Noneu   Trueu   Falseu   __init__u   __iter__(   u
   __locals__(    (    u7   /tmp/pip-zej_zi-build/pip/_vendor/html5lib/sanitizer.pyu   HTMLSanitizer  s   	u   HTMLSanitizer(   u
   __future__u   absolute_importu   divisionu   unicode_literalsu   reu   xml.sax.saxutilsu   escapeu   unescapeu	   tokenizeru   HTMLTokenizeru	   constantsu
   tokenTypesu   objectu   HTMLSanitizerMixinu   HTMLSanitizer(    (    (    u7   /tmp/pip-zej_zi-build/pip/_vendor/html5lib/sanitizer.pyu   <module>   s   