+
    |fM                         ^ RI Ht ^ RIHt ^RIHt ^RIHt ^RIHt R t	 ! R R4      t
 ! R	 R
4      t ! R R]
4      t ! R R4      t ! R R]P                  4      tR# )    )OrderedDict)etree)
tag_regexp)base)	_ihatexmlc                 b    V f   R # \        V \        4      '       d   V # V P                  RR4      # )Nasciistrict)
isinstancestrdecode)ss   &A/usr/lib/python3/dist-packages/html5lib/treewalkers/etree_lxml.py
ensure_strr      s-    y	As		xx**    c                   8   a  ] tR t^t o R tR tR tR tRtV t	R# )Rootc           
        Wn         . V n         VP                  P                  '       d   V P                  P	                  \        V \        VP                  P                  4      \        VP                  P                  4      \        VP                  P                  4      4      4        TP                  4       pTP                  4       e   TP                  4       pK$  Te.   T P                  P	                  T4       TP                  4       pK1  R T n        R T n        R #   \         d     Li ; i  \         d    Tp Li ; iN)elementtreechildrendocinfointernalDTDappendDoctyper   	root_name	public_id
system_urlAttributeErrorgetrootgetpreviousgetnexttexttail)selfetnodes   && r   __init__Root.__init__   s    	zz%%%$$WT-7

8L8L-M-7

8L8L-M-7

8M8M-N&P Q	::<D  ,##%DMM  &<<>D		  		
  	D	s$   BD *D0 D-,D-0E ?E c                (    V P                   V,          # r   )r   r%   keys   &&r   __getitem__Root.__getitem__0   s    }}S!!r   c                    R # r    r%   s   &r   r"   Root.getnext3       r   c                    ^#    r0   r1   s   &r   __len__Root.__len__6   s    r   )r   r   r$   r#   N)
__name__
__module____qualname____firstlineno__r(   r-   r"   r7   __static_attributes____classdictcell____classdict__s   @r   r   r      s     6" r   r   c                   ,   a  ] tR t^:t o R tR tRtV tR# )r   c                R    Wn         W n        W0n        W@n        R V n        R V n        R # r   )	root_nodenamer   	system_idr#   r$   )r%   rC   rD   r   rE   s   &&&&&r   r(   Doctype.__init__;   s$    "	""		r   c                <    V P                   P                  ^,          # r5   )rC   r   r1   s   &r   r"   Doctype.getnextD   s    ~~&&q))r   )rD   r   rC   rE   r$   r#   Nr9   r:   r;   r<   r(   r"   r=   r>   r?   s   @r   r   r   :   s     * *r   r   c                   ,   a  ] tR t^Ht o R tR tRtV tR# )FragmentRootc                l    V Uu. uF  p\        W4      NK  	  upV n        R ;V n        V n        R # u upi r   )FragmentWrapperr   r#   r$   )r%   r   childs   && r   r(   FragmentRoot.__init__I   s1    CKL8%58L $$	DI Ms   1c                    R # r   r0   r1   s   &r   r"   FragmentRoot.getnextM   r3   r   )r   r$   r#   NrI   r?   s   @r   rK   rK   H   s     % r   rK   c                   V   a  ] tR t^Qt o R tR tR tR tR tR t	R t
R tR	 tR
tV tR# )rM   c                @   Wn         W n        \        V P                  R 4      '       d&   \        V P                  P                  4      V n        MRV n        \        V P                  R4      '       d'   \        V P                  P
                  4      V n        R# RV n        R# )r#   Nr$   )rC   objhasattrr   r#   r$   )r%   fragment_rootrT   s   &&&r   r(   FragmentWrapper.__init__R   sd    &488V$$"488==1DIDI488V$$"488==1DIDIr   c                .    \        V P                  V4      # r   )getattrrT   )r%   rD   s   &&r   __getattr__FragmentWrapper.__getattr__^   s    txx&&r   c                    V P                   P                  pVP                  V 4      pV\        V4      ^,
          8  d   W^,           ,          # R# )r6   N)rC   r   indexlen)r%   siblingsidxs   &  r   r"   FragmentWrapper.getnexta   s@    >>**nnT"X""!G$$r   c                (    V P                   V,          # r   )rT   r+   s   &&r   r-   FragmentWrapper.__getitem__i   s    xx}r   c                ,    \        V P                  4      # r   )boolrT   r1   s   &r   __bool__FragmentWrapper.__bool__l   s    DHH~r   c                    R # r   r0   r1   s   &r   	getparentFragmentWrapper.getparento   r3   r   c                ,    \        V P                  4      # r   r   rT   r1   s   &r   __str__FragmentWrapper.__str__r       488}r   c                ,    \        V P                  4      # r   rl   r1   s   &r   __unicode__FragmentWrapper.__unicode__u   ro   r   c                ,    \        V P                  4      # r   )r^   rT   r1   s   &r   r7   FragmentWrapper.__len__x   ro   r   )rT   rC   r$   r#   N)r9   r:   r;   r<   r(   rZ   r"   r-   rf   ri   rm   rq   r7   r=   r>   r?   s   @r   rM   rM   Q   s7     
' r   rM   c                   >   a  ] tR t^|t o R tR tR tR tR tRt	V t
R# )
TreeWalkerc                   \        V\        4      '       d   \        V4      V n        \	        V4      pM\        4       V n        \        V4      p\        P                  P                  W4       \        P                  ! 4       V n        R # r   )r   listsetfragmentChildrenrK   r   r   NonRecursiveTreeWalkerr(   r   InfosetFilterfilter)r%   trees   &&r   r(   TreeWalker.__init__}   s\    dD!!$'ID!%D$'ED!:D##,,T8--/r   c                   \        V\        4      '       d>   Vw  rVR9   g   Q RV,          4       h\        P                  \	        \        W4      4      3# \        V\        4      '       d   \        P                  3# \        V\        4      '       d3   \        P                  VP                  VP                  VP                  3# \        V\        4      '       d8   \        VR4      '       g&   \        P                  \	        VP                  4      3# VP                   \"        P$                  8X  d&   \        P&                  \	        VP(                  4      3# VP                   \"        P*                  8X  d)   \        P,                  \	        VP(                  4      ^R 3# \.        P0                  ! \	        VP                   4      4      pV'       d   VP3                  4       w  rEMRp\	        VP                   4      p\5        4       p\7        VP8                  P;                  4       4       Fe  w  rx\	        V4      p\	        V4      p\.        P0                  ! V4      pV'       d'   WVP=                  ^4      VP=                  ^4      3&   K_  WRV3&   Kg  	  \        P>                  Y@P@                  PC                  V4      T\E        V4      ^ 8  ;'       g    VP(                  3# )r#   %Text nodes are text or tail, found %stagNr#   r$   )#r   tupler   TEXTr   rY   r   DOCUMENTr   DOCTYPErD   r   rE   rM   rU   rT   r   r   CommentCOMMENTr#   EntityENTITYr   matchgroupsr   rx   attribitemsgroupELEMENTr}   fromXmlNamer^   )	r%   r'   r,   r   	namespacer   attrsrD   values	   &&       r   getNodeDetailsTreeWalker.getNodeDetails   s
   dE""ID**Y,SVY,YY*99j);<<<d##MM##g&&<<DNNDNNJJo..wtU7K7K99j222XX&<<DII!666XX%;;
499 5a ;;; $$Z%9:E!&	3 	 *ME#DKK$5$5$78!$'"5)"((.>C5;;q>5;;q>:;*/4,'  9 LL)[[-D-DS-I3t9q=55DII7 7r   c                    \        V\        4      '       d   Q R 4       h\        V4      '       g   VP                  '       g   Q R4       hVP                  '       d   VR3# V^ ,          # )zText nodes have no childrenzNode has no childrenr#   )r   r   r^   r#   )r%   r'   s   &&r   getFirstChildTreeWalker.getFirstChild   sT    dE**I,II*4yyDIII='==%999&>!7Nr   c                   \        V\        4      '       dM   Vw  rVR9   g   Q RV,          4       hVR 8X  d   \        V4      '       d
   V^ ,          # R# VP                  4       # VP                  '       d   VR3# VP                  4       # )r#   r$   r   Nr   )r   r   r^   r"   r$   r%   r'   r,   s   && r   getNextSiblingTreeWalker.getNextSibling   sx    dE""ID**Y,SVY,YY*f} t997N||~%!%f~>>r   c                    \        V\        4      '       d4   Vw  rVR9   g   Q RV,          4       hVR 8X  d   V#  VP                  4       # WP                  9   d   R# VP                  4       # )r#   r   Nr   )r   r   rz   ri   r   s   && r   getParentNodeTreeWalker.getParentNode   so    dE""ID**Y,SVY,YY*f}  ~~ ***~~r   )r}   rz   N)r9   r:   r;   r<   r(   r   r   r   r   r=   r>   r?   s   @r   rv   rv   |   s$     	0'7R? 
  
 r   rv   N)collectionsr   lxmlr   treebuilders.etreer    r   r   r   r   r   rK   rM   r{   rv   r0   r   r   <module>r      sY    #  +  +# #L* *4 ( (VX ,, X r   