
    AHj                     0   d dl mZmZmZmZ d dlmZ ej                  Zej                  Z	ej                  Z
ej                  Zej                  Zdj                  eee	g      Zdj                  ee	g      ZdZdez   dz   ez   dz   ez   dz   ZdZdez   d	z   Zd
ZdZdZdez   dz   ez   dz   dz   Zdez   dz   dz   ez   dz   dz   dz   ez   dz   ez   dz   ez   dz   dz   Zdez   dz   ez   dz   dz   Zdez   dz   dz   ez   dz   dz   Zdez   dz   Zdez   dz   Zd Zd Zd Zy)    )CcCfPZ)Any|u   [><｜]z(?:(?!)zU(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)z	(?:(?:(?!z|[@/\[\]()]).)+@)?zK(?::(?:6(?:[0-4]\d{3}|5(?:[0-4]\d{2}|5(?:[0-2]\d|3[0-5])))|[1-5]?\d{1,4}))?z3[\-:&=\+\$,\.a-zA-Z0-9_][\-:&=\+\$,\"\.a-zA-Z0-9_]*zxn--[a-z0-9\-]{1,59}z(?:z{1,63}z(?:-|z){0,61}z(?:(?:(?:(?:z)\.)*z	(?:(?:(?:z)\.)+(?:%TLDS%))z.localhost|www\.|\.\d{1,3}\.|(?:\.(?:%TLDS%)(?:z|>|$))c                 ~    dt         z   dz   t        z   dz   dz   | j                  d      rdndz   dz   t        z   d	z   }|S )
Nz(?=$|r   r	   z(?!---z-(?!--)|z-|z_|:\d|\.-|\.(?!$|)))TEXT_SEPARATORSSRC_ZPCCget)optssrc_host_terminators     G/root/tools/cai/cai_env/lib/python3.12/site-packages/linkify_it/ucre.py_re_host_terminatorr   d   st    
	
	 	 		
 	 %:d	4 !	! 	 		      c                    dt         z   dz   t        z   dz   dz   t         z   dz   dz   t         z   dz   dz   t         z   d	z   d
z   t         z   dz   dz   t         z   dz   dz   t        z   dz   dz   dz   t         z   dz   | j                  d      rdndz   dz   t         z   dz   dz   t         z   dz   dz   t         z   dz   dz   t         z   dz   dz   dz   dz   }|S ) Nz(?:[/?#](?:(?!r   z|[()[\]{}.,"'?!\-;]).|z\[(?:(?!z
|\]).)*\]|z\((?:(?!z|[)]).)*\)|z\{(?:(?!z|[}]).)*\}|z\"(?:(?!z|["]).)+\"|z\'(?:(?!z|[']).)+\'|z\'(?=z|[-])|z\.{2,}[a-zA-Z0-9%/&]|z\.(?!z|[.]|$)|r   z\-(?!--(?:[^-]|$))(?:-*)|z\-+|z,(?!z|$)|z;(?!z\!+(?!z|[!]|$)|z\?(?!z|[?]|$)z)+z|\/z)?)SRC_ZCCr   SRC_PSEUDO_LETTERr   )r   src_paths     r   _re_src_pathr   t   s   	 		
 	 	 &	& 	 		 
	 	 	 	 	 	  !	" #	$ %	& '	( )	* +	, -	. /	0 1	2 3	4 #5	#F G#	H I$	J K%	L ,088E?'M&	IN O'	P Q(	R S)	T U*	V W+	X Y,	Z [-	\ ].	^ _/	` a0	b c1	d e2	f g3	h i4	j k5	 r Or   c                    t         t        |       z   }t        t        |       z   }t         t        z   t        |       z   }t        t        z   t        |       z   }t        t        z   t        |       z   }dt
        z   dz   t        z   dz   dz   t        z   dz   |z   dz   }i dt        dt        dt        d	t        d
t        dt        dt        dt        dt        dt         dt        dt        |       dt#        |       dt        dt$        dt&        dt(        t         t        t        |||||t*        |dt        z   dz   dz   |z   t#        |       z   dz   dt        z   dz   dz   |z   t#        |       z   dz   d}|S )zhBuild regex

    Args:
        opts (dict): options

    Return:
        dict: dict of regex string
    z(^|z|"|\(|r	   (@src_Anysrc_Ccsrc_Cfsrc_Zsrc_Psrc_ZPCcsrc_ZCcsrc_pseudo_lettersrc_ip4src_authsrc_portr   r   src_email_namesrc_xnsrc_domain_root
src_domainu!   (^|(?![.:/\-_@])(?:[$+<=>^`|｜]|r   u   ((?![$+<=>^`|｜]))src_hosttpl_host_fuzzytpl_host_no_ip_fuzzysrc_host_stricttpl_host_fuzzy_strictsrc_host_port_stricttpl_host_port_fuzzy_strict tpl_host_port_no_ip_fuzzy_stricttpl_host_fuzzy_testtpl_email_fuzzytpl_link_fuzzytpl_link_no_ip_fuzzy)SRC_HOSTr   TPL_HOST_FUZZYSRC_PORTTPL_HOST_NO_IP_FUZZYr   r   SRC_EMAIL_NAMESRC_ANYSRC_CCSRC_CFSRC_ZSRC_Pr   r   SRC_IP4SRC_AUTHr   SRC_XNSRC_DOMAIN_ROOT
SRC_DOMAINTPL_HOST_FUZZY_TEST)r   SRC_HOST_STRICTTPL_HOST_FUZZY_STRICTSRC_HOST_PORT_STRICTTPL_HOST_PORT_FUZZY_STRICT TPL_HOST_PORT_NO_IP_FUZZY_STRICTTPL_EMAIL_FUZZYregexs           r   build_rerO      sY    !4T!::O*-@-FF#h.1DT1JJ!/(!:=PQU=V!V 	x'*=d*CC %
 	
	
	 	 		
 	 	 	  	  		 373&3 	&3 		3
 	3 	H3 	73 	.3 	73 	H3 	H3 	2483 	L&3 	.3 	&3  	?!3" 	j#3$ ( 4*!6 4&@,F2* 4 && )	)
 4 !  4 && /	/
 4 ! W3Ej Lr   N) uc_micro.categoriesr   r   r   r   uc_micro.propertiesr   REGEXr=   r>   r?   rA   r@   joinr   r   r   r   rB   rC   r:   r<   rD   rE   rF   r8   r9   r;   rG   r   r   rO    r   r   <module>rU      s   , , #
))				 88UE6*+ ((E6?
# 
 .4x?#EORUU &   #99 V 	 P	  &.3&)::XEK 
	
  	
 

 

   	 
   

 

 &    
	
 


 	 
GOcK'*47JJSP  #Z/2EE  :HDxO 
 :zWr   