§
    ¤”jW  ã                   óV   — d Z ddlmZmZmZ ddlmZ ddlmZ ddgZ	i Z
dd	„Zd
„ Zd„ ZdS )a…  A collection of modules for iterating through different kinds of
tree, generating tokens identical to those produced by the tokenizer
module.

To create a tree walker for a new type of tree, you need to
implement a tree walker object (called TreeWalker by convention) that
implements a 'serialize' method which takes a tree as sole argument and
returns an iterator which generates tokens.
é    )Úabsolute_importÚdivisionÚunicode_literalsé   )Ú	constants)Údefault_etreeÚgetTreeWalkerÚpprintNc                 óh  — |                       ¦   «         } | t          vr|| dk    rddlm} |j        t          | <   n`| dk    rddlm} |j        t          | <   nD| dk    rddlm} |j        t          | <   n(| dk    r"dd	lm} |€t          } |j	        |fi |¤Žj        S t           
                    | ¦  «        S )
a;  Get a TreeWalker class for various types of tree with built-in support

    :arg str treeType: the name of the tree type required (case-insensitive).
        Supported values are:

        * "dom": The xml.dom.minidom DOM implementation
        * "etree": A generic walker for tree implementations exposing an
          elementtree-like interface (known to work with ElementTree,
          cElementTree and lxml.etree).
        * "lxml": Optimized walker for lxml.etree
        * "genshi": a Genshi stream

    :arg implementation: A module implementing the tree type e.g.
        xml.etree.ElementTree or cElementTree (Currently applies to the "etree"
        tree type only).

    :arg kwargs: keyword arguments passed to the etree walker--for other
        walkers, this has no effect

    :returns: a TreeWalker class

    Údomé   )r   Úgenshi)r   Úlxml)Ú
etree_lxmlÚetree)r   )ÚlowerÚtreeWalkerCacheÚ r   Ú
TreeWalkerr   r   r   r   ÚgetETreeModuleÚget)ÚtreeTypeÚimplementationÚkwargsr   r   r   r   s          úl/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/html5lib/treewalkers/__init__.pyr	   r	      sþ   € ð0 �~Š~ÑÔ€HØ•Ð&Ð&Ø�uÒÐØÐÐÐÐÐØ(+¬�O˜HÑ%Ð%Ø˜Ò!Ð!Ø Ð Ð Ð Ð Ð Ø(.Ô(9�O˜HÑ%Ð%Ø˜ÒÐØ$Ð$Ð$Ð$Ð$Ð$Ø(2Ô(=�O˜HÑ%Ð%Ø˜Ò Ð ØÐÐÐÐÐØÐ%Ý!.�à'�5Ô'¨ÐAÐA¸&ÐAÐAÔLÐLÝ×Ò˜xÑ(Ô(Ð(ó    c              #   óè   K  — g }| D ]L}|d         }|dv r|                      |d         ¦  «         Œ*|rdd                     |¦  «        dœV — g }|V — ŒM|rdd                     |¦  «        dœV — d S d S )NÚtype)Ú
CharactersÚSpaceCharactersÚdatar   r   )r   r!   )ÚappendÚjoin)ÚtokensÚpendingCharactersÚtokenr   s       r   ÚconcatenateCharacterTokensr'   A   sÁ   è è € ØÐØð ð ˆØ�VŒ}ˆØÐ4Ð4Ð4Ø×$Ò$ U¨6¤]Ñ3Ô3Ð3Ð3à ð 'Ø+°R·W²WÐ=NÑ5OÔ5OÐPÐPÐPÐPÐPØ$&Ð!ØˆKˆKˆKˆKØð IØ#¨R¯WªWÐ5FÑ-GÔ-GÐHÐHÐHÐHÐHÐHÐHðIð Ir   c                 ód  — g }d}t          | ¦  «        D �]‡}|d         }|dv �r |d         r_|d         t          j        d         k    rC|d         t          j        v rt          j        |d                  }n|d         }|›d|d         ›�}n|d         }|                     d|z  ›d|›d	�¦  «         |d
z  }|d         }t          |                     ¦   «         ¦  «        D ]W\  \  }}	}
|r+|t          j        v rt          j        |         }n|}|›d|	›�}n|	}|                     d|z  ›|›d|
›d�¦  «         ŒX|dk    r|d
z  }�Œ0|dk    r|d
z  }�Œ=|dk    r&|                     d|z  ›d|d         ›d�¦  «         �Œi|dk    rÌ|d         r§|d         rB|                     d|z  ›d|d         ›d|d         ›d|d         r|d         nd›d�¦  «         �ŒÁ|d         r/|                     d|z  ›d|d         ›d|d         ›d�¦  «         �Œø|                     d|z  ›d|d         ›d	�¦  «         �Œ|                     d|z  ›d�¦  «         �Œ;|dk    r&|                     d|z  ›d|d         ›d�¦  «         �Œg|dk    r
J d ¦   «         ‚t          d!|z  ¦  «        ‚d"                     |¦  «        S )#z Pretty printer for tree walkers

    Takes a TreeWalker instance and pretty prints the output of walking the tree.

    :arg walker: a TreeWalker instance

    r   r   )ÚStartTagÚEmptyTagÚ	namespaceÚhtmlú Únameú<ú>r   r!   z="ú"r*   ÚEndTagÚCommentz<!-- z -->ÚDoctypeÚpublicIdz
<!DOCTYPE z "z" "ÚsystemIdr   z">z "" "z<!DOCTYPE >r   r    FzBconcatenateCharacterTokens should have got rid of all Space tokenszUnknown token type, %sú
)	r'   r   Ú
namespacesÚprefixesr"   ÚsortedÚitemsÚ
ValueErrorr#   )ÚwalkerÚoutputÚindentr&   r   Únsr.   Úattrsr+   Ú	localnameÚvalues              r   r
   r
   P   s�  € ð €FØ€FÝ+¨FÑ3Ô3ð >>ñ >>ˆØ�VŒ}ˆØÐ+Ð+Ñ+à�[Ô!ð % e¨KÔ&8½IÔ<PÐQWÔ<XÒ&XÐ&XØ˜Ô%­Ô);Ð;Ð;Ý"Ô+¨E°+Ô,>Ô?�B�Bà˜{Ô+�BØ"$ " " e¨F¤m mÐ4��à˜V”}�Ø�MŠM c¨F¡l l l°D°D°DÐ9Ñ:Ô:Ð:Ø�a‰KˆFà˜&”MˆEÝ17¸¿º¹¼Ñ1FÔ1Fð 	Kð 	KÑ-Ñ&�˜I¨Øð %Ø ¥IÔ$6Ð6Ð6Ý&Ô/°	Ô:˜˜à&˜Ø&( b b¨)¨)Ð4�D�Dà$�DØ—’¨s°V©|¨|¸T¸T¸TÀ5À5À5ÐIÑJÔJÐJÐJà�zÒ!Ð!Ø˜!‘�ùà�XÒÐØ�a‰KˆF‰Fà�YÒÐØ�MŠM¨S°6©\¨\¨\¸5À¼=¸=¸=ÐIÑJÔJÐJÑJà�YÒÐØ�VŒ}ð AØ˜Ô$ð GØ—M’MØ#&¨¡< < <Ø#(¨¤= = =Ø#(¨Ô#4Ð#4Ð#4Ø8=¸jÔ8IÐ#Q 5¨Ô#4Ð#4ÈrÐ#QÐ#Qð	#Sñ Tô Tð Tñ Tð
 ˜:Ô&ð GØ—M’MØ#&¨¡< < <Ø#(¨¤= = =Ø#(¨Ô#4Ð#4Ð#4ð#6ñ 7ô 7ð 7ñ 7ð
 —M’M°s¸V±|°|°|Ø7<¸V´}°}°}ð#Fñ Gô Gð Gñ Gð —’°°v±°°Ð?Ñ@Ô@Ð@Ñ@à�\Ò!Ð!Ø�MŠM¨¨f©¨¨°e¸F´m°m°mÐDÑEÔEÐEÑEàÐ&Ò&Ð&Ø^Ð^Ñ^Ô^Ð^õ Ð5¸Ñ<Ñ=Ô=Ð=à�9Š9�VÑÔÐr   )N)Ú__doc__Ú
__future__r   r   r   r   r   Ú_utilsr   Ú__all__r   r	   r'   r
   © r   r   ú<module>rI      s¨   ððð ð CÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "à˜HÐ
%€à€ð))ð ))ð ))ð ))ðXIð Ið IðJð Jð Jð Jð Jr   