
    $g                        d Z ddlmc mZ ddlmZmZ ddlmZ ddl	Z	dZ
de
 d	Zd
Zd                    e          Zd                    e
e          Zde Zde Zd                    e
ee          Z e	j        ee	j        e	j        z            Z e	j        ee	j        e	j        z            Z e	j        ee	j        e	j        z            Z e	j        ee	j        e	j        z            Z e	j        de de e	j        e	j        z            ZeeedZd Z G d de          Z G d de          Zd ZdS )zHTML.    N   )Blocktype_string_in   )BlocksExtensionz	(?:[ \t])z(?:\\(?:[a-f0-9]{1,6}z?|[^\r\n\f]|$))zx
(?:(?:-?(?:[^\x00-\x2f\x30-\x40\x5B-\x5E\x60\x7B-\x9f])+|--)
(?:[^\x00-\x2c\x2e\x2f\x3A-\x40\x5B-\x5E\x60\x7B-\x9f])*)
zJ
(?:"(?:\\(?:.)|[^\\"\r\n\f]+)*?"|'(?:\\(?:.)|[^\\'\r\n\f]+)*?'|{ident}+)
)identz-
(?:{ws}*(?P<cmp>=){ws}*(?P<value>{value}))?
)wsvaluez\#z\.z1
\[(?:{ws}*(?P<attr_name>{ident}){attr})+{ws}*\]
)r	   r   attr)flagsz(?P<attr_name>))idclassr   c                    t          |           }d}i }d}d}t                              |           }|t          d          |                    d          }|                                }||k     r:t                                          D ]\  }}|                    | |          }||dk    r6|                    d          dd         ||<   |                                }n|dk    rr||vr"|                    d          dd         g||<   n6||                             |                    d          dd                    |                                }n2|                    d          }t          
                    |          }	|	|	                                }
|	                    d                                          }|	                    d          }||dk    r|nd	}n|                    d
          r
|dd         }|dk    rGd |                    d          D             }|r%||v r||                             |           n|||<   n|}|||<   t          
                    ||
          }	|	|                                } n	|t          d          ||k     :d|v rd                    |d                   |d<   ||fS )zParse the selector.Nr   zNo defined tagr   r   r   	attr_namer
    )"'c                     g | ]}||S  r   ).0vs     T/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/pymdownx/blocks/html.py
<listcomp>z#parse_selectors.<locals>.<listcomp>U   s    $F$F$F1A$FQ$F$F$F     zInvalid selector)lenRE_IDENTmatch
ValueErrorgroupend
ATTRIBUTESitemsappendRE_ATTRsearchlower
startswithsplitextendjoin)selectoreoltagattrsr#   matypepatresultsm2posnamer
   s                r   parse_selectorsr9   ,   s    h--C
CE
CAx  Ay)***
''!**C
%%''C
))$**,, $	 $	JE3		(C((A}D==#$771::abb>E%L%%''CCg%%E))()

122'7ee++AGGAJJqrrN;;;%%''CCggajjG 00B. ffhh!xx44::<< " 1 1 =,0GOODDEE"--j99 0$)!B$KE7??$F$FC0@0@$F$F$FE$ 8#'5==$)$K$6$6u$=$=$=$=27E$K$)E*/E$K$^^GS99' .( %%''CE H 9/000Q ))T %%.11g:r   c                   j     e Zd ZdZdZdZdd eg d          giZ fdZd Z	d	 Z
d
 Zd Zd Z xZS )HTMLa  
    HTML.

    Arguments (1 required):
    - HTML tag name

    Options:
    - `markdown` (string): specify how content inside the element should be treated:
      - `auto`: will automatically determine how an element's content should be handled.
      - `inline`: treat content as an inline element's content.
      - `block`: treat content as a block element's content.
      - `raw`: treat the content as raw content (atomic).

    Content:
    HTML element content.
    htmlTmarkdownauto)r>   inlineblockrawr<   c                 ^    d| _         t                                          ||||           dS )zInitialize.N)r=   super__init__)selflengthtrackermdconfig	__class__s        r   rD   zHTML.__init__   s0     "f55555r   c                 n    	 t          | j                  \  | _        | _        n# t          $ r Y dS w xY wdS )zHandle argument parsing.FT)r9   argumentr0   r   r!   rE   parents     r   on_validatezHTML.on_validate   sJ    	"1$-"@"@DHdii 	 	 	55	 ts   !$ 
22c                 0    | j         d         }|dk    rd}|S )zCheck if this is atomic.r=   r<   rA   )options)rE   modes     r   on_markdownzHTML.on_markdown   s#     |J'6>>Dr   c                 f    t          j        || j                                        | j                  S )zCreate the element.)etree
SubElementr0   r)   r   rM   s     r   	on_createzHTML.on_create   s'     (8(8$)DDDr   c                     |j         dv S )z4Does tag require no processing and no HTML escaping.)scriptstyle)r0   )rE   r0   s     r   is_htmlzHTML.is_html   s     w---r   c                 v   | j         d         }|dk    r|                     |          s|dk    r+| j        j                            |j                  |_        dS |dk    r|                     |          s|dk    r>| j        j                            |                     |j                            |_        dS dS )zOn end event.r=   r>   r<   rA   N)rQ   r[   rH   	htmlStashstoretextis_rawhtml_escape)rE   r@   rR   s      r   on_endzHTML.on_end   s     |J'FNNt||E22Ntv~~*00<<EJJJfnnU!3!3n*001A1A%*1M1MNNEJJJ 9Fr   )__name__
__module____qualname____doc__NAMEARGUMENTr   OPTIONSrD   rO   rS   rW   r[   rb   __classcell__)rJ   s   @r   r;   r;   k   s         " DHV^^,V,V,VWWXG6 6 6 6 6    E E E. . .
O O O O O O Or   r;   c                       e Zd ZdZd ZdS )HTMLExtensionzHTML Blocks Extension.c                 `    |                     t          |                                            dS )zExtend Markdown blocks.N)registerr;   
getConfigs)rE   rH   	block_mgrs      r   extendMarkdownBlocksz"HTMLExtension.extendMarkdownBlocks   s*     	4!2!233333r   N)rc   rd   re   rf   rq   r   r   r   rl   rl      s)          4 4 4 4 4r   rl   c                      t          | i |S )zReturn extension.)rl   )argskwargss     r   makeExtensionru      s     $)&)))r   ) rf   xml.etree.ElementTreerU   ElementTreer@   r   r   blocksr   reWSCSS_ESCAPES
IDENTIFIERformatVALUEATTRPAT_ID	PAT_CLASSPAT_ATTRcompileIXr   RE_IDRE_CLASSRE_ATTRSr'   r$   r9   r;   rl   ru   r   r   r   <module>r      s)    % % % % % % % % % ( ( ( ( ( ( ( ( $ $ $ $ $ $ 				 <<<<

	
FF 
FbF 
 
z		*	
Fb
F.. 	 2:jrt444
6---2:irtbd{3332:hbdRTk222
"*:z::D::"$+
N
N
NHh??
< < <~BO BO BO BO BO5 BO BO BOJ4 4 4 4 4O 4 4 4* * * * *r   