a
    l½Df¿  ã                   @   sX  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 eee	g¡Zd ee	g¡ZdZde d e d e d ZdZde d	 Zd
ZdZdZde d e d d Zde d d e d d d e d e d e d d Zde d e d d Zde d d e d d Zde d Zde d Zdd„ Zdd„ Zdd„ ZdS )é    )Ú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                 C   s:   dt  d t d d |  d¡r$dnd d t d	 }|S )
Nz(?=$|r   r   z(?!ú---z-(?!--)|z-|z_|:\d|\.-|\.(?!$|ú)))ÚTEXT_SEPARATORSÚSRC_ZPCCÚget)ÚoptsÚsrc_host_terminator© r   ú\/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/linkify_it/ucre.pyÚ_re_host_terminatord   s*    ÿþýüûúùø	÷ÿr   c                 C   s¾   dt  d t d d t  d d t  d d t  d	 d
 t  d d t  d d t d d d t  d |  d¡rxdnd d t  d d t  d d t  d d t  d d d d }|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_pathr   r   r   Ú_re_src_patht   s®    üûúùø	÷
öõôóòñðïîíìëêéèçæ#Ý$Ü%Û&Ú'Ù(Ø)×*Ö+Õ,Ô-Ó.Ò/Ñ0Ð1Ï2Î3Í4Ì5Ëÿ9r   c                 C   sô   t t| ƒ }tt| ƒ }t t t| ƒ }tt t| ƒ }tt t| ƒ }dt d t d d t d | d }tt	t
ttttttttt| ƒt| ƒttttt tt|||||t|dt d d | t| ƒ d dt d d | t| ƒ d d	œ}|S )
zhBuild regex

    Args:
        opts (dict): options

    Return:
        dict: dict of regex string
    z(^|z|"|\(|r   ú(ú@u!   (^|(?![.:/\-_@])(?:[$+<=>^`|ï½œ]|r
   u   ((?![$+<=>^`|ï½œ]))Zsrc_AnyZsrc_CcZsrc_CfZsrc_ZZsrc_PZsrc_ZPCcZsrc_ZCcZsrc_pseudo_letterZsrc_ip4Zsrc_authZsrc_portr   r   Zsrc_email_nameZsrc_xnZsrc_domain_rootZ
src_domainZsrc_hostZtpl_host_fuzzyZtpl_host_no_ip_fuzzyZsrc_host_strictZtpl_host_fuzzy_strictZsrc_host_port_strictZtpl_host_port_fuzzy_strictZ tpl_host_port_no_ip_fuzzy_strictZtpl_host_fuzzy_testZtpl_email_fuzzyZtpl_link_fuzzyZ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   ZSRC_HOST_STRICTZTPL_HOST_FUZZY_STRICTZSRC_HOST_PORT_STRICTZTPL_HOST_PORT_FUZZY_STRICTZ TPL_HOST_PORT_NO_IP_FUZZY_STRICTZTPL_EMAIL_FUZZYÚregexr   r   r   Úbuild_re±   s¢    	ÿÿþýüûúùø	÷ÿÿþýüûúÿþýüûúÕ5r*   N) Zuc_micro.categoriesr   r   r   r   Zuc_micro.propertiesr   ZREGEXr   r   r    r"   r!   Újoinr   r   r   r   r#   r$   r   r   r%   r&   r'   r   r   r   r(   r   r   r*   r   r   r   r   Ú<module>   sˆ   ÿÿÿþýüûúùø	÷
öõôóòÿúùø	÷
öÿÿ
ÿ=