+
    ilV                        ^ RI t ^ RIHtHtHtHtHtHtHtH	t	 ^ RI
HtHtHtHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHtHt ^ RIH t H!t! ]'       dD   ^ RI"s"^ RI#H$t$ ^ RI%H&t& ^ R	I'H(t( ^ R
I)H*t* ]]*RR3,          t+ ! R R]$RR7      t, ! R R]$RR7      t-MRs" ! R R].4      t,]]/]0]1]]]/]0]13,          ]]/]13,          3,          3,          t2. RQOt3Rs4Rs5Rs6Rs7Rs8R!t9R"t:R#t;R$t<R%t=R&t>R' R( lt?R) R* lt@R+ R, ltAR- R. ltBR/ R0 ltC ! R1 R]/4      tD ! R2 R]D4      tE ! R3 R]E4      tF ! R4 R]D4      tG ! R5 R6]D4      tH ! R7 R]H4      tI ! R8 R]D4      tJ ! R9 R]D4      tK ! R: R]D4      tL ! R; R]D4      tM ! R< R ]D4      tNR=R>R?^R@RRRAR>RBR>RCR/RD RE lltORF RG ltP ! RH R]/4      tQ ! RI R]4      tR ! RJ R]4      tS ! RK R]4      tT ! RL R]	4      tU] P                  ! RM4      tWRNtX RO RP ltYR# )S    N)IPv4AddressIPv4InterfaceIPv4NetworkIPv6AddressIPv6InterfaceIPv6Network_BaseAddress_BaseNetwork)TYPE_CHECKINGAny
CollectionDict	GeneratorListMatchOptionalPatternSetTupleTypeUnioncastno_type_check)errors)Representationupdate_not_none)constr_length_validatorstr_validator)	TypedDict)
BaseConfig)
ModelField)AnyCallablec                   ,   a  ] tR t^,t o V 3R ltRtV tR# )Partsc                "  < V ^8  d   Qh/ S[ ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R	&   S[S[ ,          ;R
&   # )   schemeuserpasswordipv4ipv6domainportpathqueryfragmentstrr   )format__classdict__s   "[/home/wkmabra/.openclaw/workspace/venv/lib/python3.14/site-packages/pydantic/v1/networks.py__annotate__Parts.__annotate__,   s      sm  3-  sm	 
 sm    sm  sm  }  3-      N__name__
__module____qualname____firstlineno____annotate_func____static_attributes____classdictcell__r4   s   @r5   r$   r$   ,         r8   r$   F)totalc                   ,   a  ] tR t^8t o V 3R ltRtV tR# )	HostPartsc                   < V ^8  d   Qh/ S[ ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[;R&   # )r&   hosttld	host_typer-   rebuild)r2   r   bool)r3   r4   s   "r5   r6   HostParts.__annotate__8   sL     	 c]  C=   sm	 
  r8   r9   Nr:   rB   s   @r5   rF   rF   8   rC   r8   rF   c                       ] tR t^BtRtR# )r$   r9   N)r;   r<   r=   r>   r@   r9   r8   r5   r$   r$   B   s    r8   AnyUrl
AnyHttpUrlFileUrlHttpUrlEmailStr	NameEmailIPvAnyAddressIPvAnyInterfaceIPvAnyNetworkPostgresDsnCockroachDsnAmqpDsnRedisDsnMongoDsnKafkaDsnz(?:(?P<ipv4>(?:\d{1,3}\.){3}\d{1,3})(?=$|[/:#?])|(?P<ipv6>\[[A-F0-9]*:[A-F0-9:]+\])(?=$|[/:#?])|(?P<domain>[^\s/:?#]+))?(?::(?P<port>\d+))?z&(?:(?P<scheme>[a-z][a-z0-9+\-.]+)://)?z3(?:(?P<user>[^\s:/]*)(?::(?P<password>[^\s/]*))?@)?z(?P<path>/[^\s?#]*)?z(?:\?(?P<query>[^\s#]*))?z(?:#(?P<fragment>[^\s#]*))?c                :    V ^8  d   QhR\         \        ,          /# r&   returnr   r2   )r3   s   "r5   r6   r6   q   s      73< r8   c                      \         fJ   \        P                  ! \         \         \
         \         \         \         2\        P                  4      s \         # N)
_url_regex_cacherecompile_scheme_regex_user_info_regex_host_regex_path_regex_query_regex_fragment_regex
IGNORECASEr9   r8   r5   	url_regexrn   q   sF    ::/0k]<.YhXijMM
 r8   c                :    V ^8  d   QhR\         \        ,          /# r_   ra   )r3   s   "r5   r6   r6   {   s     ' 'gcl 'r8   c                     \         fE   \        P                  ! \         \         R\
         \         \         2\        P                  4      s \         # )z
Compiled multi host url regex.

Additionally to `url_regex` it allows to match multiple hosts.
E.g. host1.db.net,host2.db.net
z(?P<hosts>([^/]*)))	_multi_host_url_regex_cachere   rf   rg   rh   rj   rk   rl   rm   r9   r8   r5   multi_host_url_regexrr   {   sK     #*&(jj/0!}\N?*;= MM	'
# '&r8   c                :    V ^8  d   QhR\         \        ,          /# r_   ra   )r3   s   "r5   r6   r6      s     % %GCL %r8   c                      \         f2   Rp Rp\        P                  ! RV  RV  V 2\        P                  4      s \         # )Nz'[_0-9a-z](?:[-_0-9a-z]{0,61}[_0-9a-z])?z(?P<tld>\.[a-z]{2,63})?\.?(?:\.)*?)_ascii_domain_regex_cachere   rf   rm   )ascii_chunkascii_domain_endings     r5   ascii_domain_regexrz      sF     (@;$&JJ;-u[M2E1FG%
! %$r8   c                :    V ^8  d   QhR\         \        ,          /# r_   ra   )r3   s   "r5   r6   r6      s     # #'#, #r8   c                      \         f2   Rp Rp\        P                  ! RV  RV  V 2\        P                  4      s \         # )NzB[_0-9a-\U00040000](?:[-_0-9a-\U00040000]{0,61}[_0-9a-\U00040000])?z<(?P<tld>(\.[^\W\d_]{2,63})|(\.(?:xn--)[_0-9a-z-]{2,63}))?\.?ru   rv   )_int_domain_regex_cachere   rf   rm   )	int_chunkint_domain_endings     r5   int_domain_regexr      sD    &Y	["$**I;eI;O`Na-bdfdqdq"r""r8   c                :    V ^8  d   QhR\         \        ,          /# r_   ra   )r3   s   "r5   r6   r6      s      GCL r8   c                  p    \         f*   \        P                  ! \        \        P                  4      s \         # rc   )_host_regex_cachere   rf   ri   rm   r9   r8   r5   
host_regexr      s)     JJMM
 r8   c                   "  a a ] tR t^t oRt^tR,tRtRtRt	Rt
]! 4       tR-t]V3R lR l4       tRRRRRRRRRRR	RR
RRRRR/	V3R lR llt]RRRRR	RR
RRRRR/V3R lR ll4       t]V3R lR l4       t]V3R lR l4       t]V3R lR l4       t]V3R lR l4       t]V3R lR l4       t]V3R lR l4       t]R.V3R  lR! ll4       t]V3R" lR# l4       t]V3R$ lR% l4       t]V3R& lR' l4       tV3R( lV 3R) lltV3R* ltR+t Vt!V ;t"# )/rO   TNFr(   r)   rH   rI   rJ   r-   r.   r/   r0   c                6   < V ^8  d   QhRS[ S[,          RS[/# r&   urlr`   )r   r2   object)r3   r4   s   "r5   r6   AnyUrl.__annotate__   s#     M M(3- Mf Mr8   c                `    \         P                  Yf   V P                  ! R/ VB 4      # T4      # )Nr9   )r2   __new__build)clsr   kwargss   &&,r5   r   AnyUrl.__new__   s)    {{3{		 3F 3LLLLr8   r,   c                   < V ^8  d   QhRS[ RS[ RS[S[ ,          RS[S[ ,          RS[S[ ,          RS[S[ ,          RS[ RS[S[ ,          R	S[S[ ,          R
S[S[ ,          RS[S[ ,          RR/# )r&   r   r'   r(   r)   rH   rI   rJ   r-   r.   r/   r0   r`   Nr1   )r3   r4   s   "r5   r6   r      s     ! !! 	!
 sm! 3-! sm! c]! ! sm! sm! }! 3-! 
!r8   c       
            \         P                  V4       W n        W0n        W@n        WPn        W`n        Wpn        Wn        Wn	        Wn
        Wn        R # rc   )r2   __init__r'   r(   r)   rH   rI   rJ   r-   r.   r/   r0   )selfr   r'   r(   r)   rH   rI   rJ   r-   r.   r/   r0   s   &&$$$$$$$$$$r5   r   AnyUrl.__init__   sB     	S	 	"		
 r8   c                   < V ^8  d   QhRS[ RS[S[ ,          RS[S[ ,          RS[ RS[S[ ,          RS[S[ ,          RS[S[ ,          RS[S[ ,          R	S[ R
S[ /
# )r&   r'   r(   r)   rH   r-   r.   r/   r0   _kwargsr`   r1   )r3   r4   s   "r5   r6   r      s     ) ) ) sm	)
 3-) ) sm) sm) }) 3-) ) 
)r8   c                  \        RR VRVRVRVRVRVRVRV/V	B p
VR,           pV'       d	   W,          pV'       d   VR	V,           ,          pV'       g	   V'       d
   VR
,          pW,          pV'       dG   RV P                  9  g&   V P                  V
4      P                  R4      V8w  d   VR	V,           ,          pV'       d	   W,          pV'       d   VRV,           ,          pV'       d   VRV,           ,          pV# )r'   r(   r)   rH   r-   r.   r/   r0   z://:@?#r9   )r$   hidden_partsget_default_partsget)r   r'   r(   r)   rH   r-   r.   r/   r0   r   partsr   s   &$$$$$$$$,  r5   r   AnyUrl.build   s     





 

 	


 

 

 

 

 

 unKC3>!C83JCV3#3#33s7L7LU7S7W7WX^7_cg7g3:CKC3;C3>!C
r8   c                :   < V ^8  d   QhRS[ S[S[3,          RR/# r&   field_schemar`   Nr   r2   r   )r3   r4   s   "r5   r6   r     s'     h hT#s(^ h hr8   c                J    \        WP                  V P                  R R7       R# )uri)	minLength	maxLengthr3   N)r   
min_length
max_lengthr   r   s   &&r5   __modify_schema__AnyUrl.__modify_schema__  s    #..afgr8   c                   < V ^8  d   QhRR/# r&   r`   CallableGeneratorr9   )r3   r4   s   "r5   r6   r           #6 r8   c              #  *   "   V P                   x  R # 5irc   validater   s   &r5   __get_validators__AnyUrl.__get_validators__       ll   c                ,   < V ^8  d   QhRS[ RRRRRR/# )r&   valuefieldr!   configr    r`   rO   r   )r3   r4   s   "r5   r6   r     s*     - -S - -| -PX -r8   c                   VP                   V 8X  d   V# \        V4      pV P                  '       d   VP                  4       p\	        \
        \        WV4      4      pV P                  V4      pV'       g   Q R 4       h\	        RVP                  4       4      pV P                  V4      pV P                  V4      pVP                  4       \        V4      8w  d(   \        P                  ! WEP                  4       R R7      hV P                  WTV4      # )zURL regex failed unexpectedlyr$   N)extra)	__class__r   strip_whitespacestripr   r2   r   
_match_url	groupdictapply_default_partsvalidate_partsendlenr   UrlExtraError
_build_url)r   r   r   r   r   moriginal_partsr   s   &&&&    r5   r   AnyUrl.validate
  s    ??c!Le$KKME4U6JKNN3111qgq{{}5''7""5)557c#h&&S^<<~~ae,,r8   c                >   < V ^8  d   QhRS[ S[,          RS[RRRR/# )r&   r   r   r   r$   r`   rO   r   r2   )r3   r4   s   "r5   r6   r   !  s-     
 
5: 
C 
 
H 
r8   c                    V P                  V4      w  rErgT ! V'       d   RMTVR,          VR,          VR,          VVVVR,          VR,          VR,          VR,          R	7      # )
zt
Validate hosts and build the AnyUrl object. Split from `validate` so this method
can be altered in `MultiHostDsn`.
Nr'   r(   r)   r-   r.   r/   r0   
r'   r(   r)   rH   rI   rJ   r-   r.   r/   r0   )validate_host)r   r   r   r   rH   rI   rJ   rK   s   &&&&    r5   r   AnyUrl._build_url   si     ),(9(9%(@%9D?v:&vv.:&
 	
r8   c                F   < V ^8  d   QhRS[ RS[S[S[ ,          ,          /# r   r2   r   r   )r3   r4   s   "r5   r6   r   7  s$     & & &s 4 &r8   c                4    \        4       P                  V 4      # rc   )rn   matchr   s   &r5   r   AnyUrl._match_url6  s    {  %%r8   c                4   < V ^8  d   QhRS[ S[,          RR/# )r&   r-   r`   N)r   r2   )r3   r4   s   "r5   r6   r   ;  s     ( (Xc] (t (r8   c                \    V e(   \        V 4      R8  d   \        P                  ! 4       hR # R # )Ni  )intr   UrlPortError)r-   s   &r5   _validate_portAnyUrl._validate_port:  s*    D	F 2%%'' !3r8   c                (   < V ^8  d   QhRRRS[ RR/# r&   r   r$   validate_portr`   rL   )r3   r4   s   "r5   r6   r   @  s"      7 4 7 r8   c                   VR,          pVf   \         P                  ! 4       hV P                  '       dI   VP                  4       V P                  9  d*   \         P                  ! \        V P                  4      4      hV'       d   V P                  VR,          4       VR,          pV P                  '       d   Vf   \         P                  ! 4       hV# )zj
A method used to validate parts of a URL.
Could be overridden to set default values for parts if missing
r'   r-   r(   )	r   UrlSchemeErrorallowed_schemeslowerUrlSchemePermittedErrorsetr   user_requiredUrlUserInfoError)r   r   r   r'   r(   s   &&&  r5   r   AnyUrl.validate_parts?  s     x>''))6<<>9L9L#L00S5H5H1IJJuV}-V}))++r8   c                R   < V ^8  d   QhRRRS[ S[S[S[,          S[S[3,          /# r&   r   r$   r`   )r   r2   r   rL   )r3   r4   s   "r5   r6   r   V  s-     '- '-' '-eC#T4Q.R '-r8   c                   R R RrCpR	 F  pW,          pV'       g   K  Tp M	  Xf*   V P                   '       d   \        P                  ! 4       hEM/VR8X  Ed(   Rp\        4       P	                  V4      pVf5   \        4       P	                  V4      pVf   \        P                  ! 4       hRpVP                  R4      pVf;   V'       g3   \        4       P	                  V4      pVf   Q hVP                  R4      pRpVe   VR,          pM'V P                  '       d   \        P                  ! 4       hV'       dI   RpRpVP                  R4      P                  R4      pVe!   VP                  R4      P                  R4      pWbW43# )
NFr,   TrI   :   NN
int_domainidnaascii)r,   r*   r+   )host_requiredr   UrlHostErrorrz   	fullmatchr   grouptld_requiredUrlHostTldErrorencodedecode)	r   r   rI   rJ   rK   frH   is_internationalds	   &&       r5   r   AnyUrl.validate_hostU  sb   "&e+A8Dt		 , <   ))++ !("$"$..t4Ay$&0069 --//#' ''%.C{#3$&006}$}ggen#' "g!!!,,..(	{{6*11':?**V,33G<C),,r8   c                "   < V ^8  d   QhRRRR/# r   r9   )r3   r4   s   "r5   r6   r     s       W r8   c                    / # rc   r9   r   s   &r5   r   AnyUrl.get_default_parts  s    	r8   c                "   < V ^8  d   QhRRRR/# r   r9   )r3   r4   s   "r5   r6   r     s       G r8   c                ~    V P                  V4      P                  4        F  w  r#W,          '       d   K  W1V&   K  	  V# rc   )r   items)r   r   keyr   s   &&  r5   r   AnyUrl.apply_default_parts  s7    //6<<>JC::"c
 ? r8   c                    < V ^8  d   QhRS[ /# r_   r2   )r3   r4   s   "r5   r6   r     s     K K# Kr8   c                   <a  R P                  V 3R lS P                   4       4      pS P                  P                   R\        SS `  4        R V R2# )z, c              3   h   <"   T F'  p\        SV4      f   K  V R\        SV4      : 2x  K)  	  R # 5i)N=)getattr).0nr   s   & r5   	<genexpr>"AnyUrl.__repr__.<locals>.<genexpr>  s3     n~!QXY]_`Qa5QCqq!1 45~s   22())join	__slots__r   r;   super__repr__)r   r   r   s   f r5   r  AnyUrl.__repr__  sH    		nt~~nn..))*!EG,<,>+?r%JJr8   c                   < V ^8  d   Qh/ S[ S[S[,          ,          ;R&   S[;R&   S[;R&   S[;R&   S[S[,          ;R&   # )r&   r   r   r   r   r   )r   r   r2   rL   r   )r3   r4   s   "r5   r6   r      sS      jo.5	 
       c(" r8   )
r0   rH   rJ   r)   r.   r-   r/   r'   rI   r(      r   T)#r;   r<   r=   r>   r   r   r   r   r   r   r   r   r   r  r   r   r   classmethodr   r   r   r   r   staticmethodr   r   r   r   r   r   r  r?   r@   rA   __classcell__r   r4   s   @@r5   rO   rO      s    JJ15OLMM ULoIM M!
 #! #'! #! "! "! #! #!  $! #'! !6 ) #	)
 #') #) #)  $) #') ) )V h h   - -* 
 
* & & ( (   * '- '-R    K K  r8   c                   "    ] tR tRtRR0tRtRtR# )rP   i  httphttpsr9   N)r;   r<   r=   r>   r   r  r@   r9   r8   r5   rP   rP     s    w'OIr8   c                   J   a  ] tR tRt o RtRtR0t]V 3R lR l4       tRt	V t
R# )	rR   i  Ti#  r-   c                "   < V ^8  d   QhRRRR/# r   r9   )r3   r4   s   "r5   r6   HttpUrl.__annotate__  s     F F FW Fr8   c                ,    R V R,          R8X  d   R/# R/# )r-   r'   r$  80443r9   r  s   &r5   r   HttpUrl.get_default_parts  s     h6 9EEuEEr8   r9   N)r;   r<   r=   r>   r   r   r   r   r   r@   rA   rB   s   @r5   rR   rR     s*     LJ8LF Fr8   c                   $    ] tR tRtR0tRtRtRtR# )rQ   i  fileFr9   N)r;   r<   r=   r>   r   r   r  r@   r9   r8   r5   rQ   rQ     s    hOMIr8   c                      a a ] tR tRt o]P
                  R,           tRR/V3R lV 3R lllt]V3R lR l4       t]	RV3R lV 3R	 lll4       t
]	V3R
 lR l4       tRtVtV ;t# )MultiHostDsni  hostsNc                J   < V ^8  d   QhRS[ RS[S[R,          ,          RS[ /# )r&   argsr1  rF   r   )r   r   r   )r3   r4   s   "r5   r6   MultiHostDsn.__annotate__  s-      c (43D*E X[ r8   c               4   < \         SV `  ! V/ VB  Wn        R # rc   )r  r   r1  )r   r1  r3  r   r   s   &$*,r5   r   MultiHostDsn.__init__  s    $)&)
r8   c                F   < V ^8  d   QhRS[ RS[S[S[ ,          ,          /# r   r   )r3   r4   s   "r5   r6   r4    s$     1 1 1s 4 1r8   c                4    \        4       P                  V 4      # rc   )rr   r   r   s   &r5   r   MultiHostDsn._match_url  s    #%++C00r8   c                (   < V ^8  d   QhRRRS[ RR/# r   r   )r3   r4   s   "r5   r6   r4    s'     B B7 B4 B7 Br8   c                &   < \         SV `  VR R7      # )F)r   )r  r   )r   r   r   r   s   &&&r5   r   MultiHostDsn.validate_parts  s    w%e5%AAr8   c                >   < V ^8  d   QhRS[ S[,          RS[RRRR/# )r&   r   r   r   r$   r`   r0  r   )r3   r4   s   "r5   r6   r4    s-     - -5: -C - -N -r8   c                <   . p\        4       pVP                  4       R ,          P                  R4       Fs  pVP                  V4      P                  4       pV P	                  V4      w  rhrVP                  R4      pV P                  V4       VP                  RVRV	RVRV
RV/4       Ku  	  \        V4      ^8  de   T ! \        V Uu. uF  qR,          NK  	  up4      '       d   RMTVR,          VR	,          VR
,          VR,          VR,          VR,          RVR7	      # V^ ,          pT ! VR,          '       d   RMTVR,          VR	,          VR
,          VR,          VR,          VR,          VP                  R4      VR,          VR,          VR,          R7      # u upi )r1  ,r-   rH   rJ   rI   rK   Nr'   r(   r)   r.   r/   r0   )r'   r(   r)   r.   r/   r0   rJ   r1  r   )
r   r   splitr   r   r   r   appendr   any)r   r   r   r   hosts_partshost_rerH   r   rI   rJ   rK   r-   hp	host_parts   &&&&          r5   r   MultiHostDsn._build_url  s   )+,KKM'*005D}}T*446A,/,=,=a,@)Dy55=Dt$D3wD 6 {a[A[r	]][ABBX6]z*6]Gnz*!
 
 $AI!),,#X6]z*v&e$#K0]]6*6]Gnz*  Bs   F)r1  r  )r;   r<   r=   r>   rO   r  r   r   r   r  r   r   r@   rA   r!  r"  s   @@r5   r0  r0    so       :-I   1 1 B B B - - -r8   r0  c                   &    ] tR tRt0 RmtRtRtRtR# )rX   i  Tr9   N>	   postgres
postgresqlpostgresql+pg8000postgresql+asyncpgpostgresql+psycopgpostgresql+psycopg2postgresql+pygresqlpostgresql+psycopg2cffipostgresql+py-postgresql)r;   r<   r=   r>   r   r   r  r@   r9   r8   r5   rX   rX     s    
O MIr8   c                   "    ] tR tRt0 RmtRtRtR# )rY   i  Tr9   N>   cockroachdbcockroachdb+asyncpgcockroachdb+psycopg2)r;   r<   r=   r>   r   r   r@   r9   r8   r5   rY   rY     s    O
 Mr8   c                   "    ] tR tRtRR0tRtRtR# )rZ   i  amqpamqpsFr9   N)r;   r<   r=   r>   r   r   r@   r9   r8   r5   rZ   rZ     s    w'OMr8   c                   L   a  ] tR tRt o RtRR0tRt]V 3R lR l4       tRt	V t
R# )	r[   i  redisredissFc                "   < V ^8  d   QhRRRR/# r   r9   )r3   r4   s   "r5   r6   RedisDsn.__annotate__  s     
 
 
W 
r8   c                R    R V R,          '       g   V R,          '       g   RMRRRRR/# )	r,   r*   r+   	localhost r-   6379r.   z/0r9   r  s   &r5   r   RedisDsn.get_default_parts  s/     %--5==krFD
 	
r8   r9   N)r;   r<   r=   r>   r  r   r   r   r   r@   rA   rB   s   @r5   r[   r[     s+     I)OM
 
r8   c                   B   a  ] tR tRt o R0t]V 3R lR l4       tRtV tR# )r\   i  mongodbc                "   < V ^8  d   QhRRRR/# r   r9   )r3   r4   s   "r5   r6   MongoDsn.__annotate__  s     
 
 
W 
r8   c                
    R R/# )r-   27017r9   r  s   &r5   r   MongoDsn.get_default_parts  s     G
 	
r8   r9   N	r;   r<   r=   r>   r   r   r   r@   rA   rB   s   @r5   r\   r\     s       kO 
 
r8   c                   B   a  ] tR tRt o R0t]V 3R lR l4       tRtV tR# )r]   i  kafkac                "   < V ^8  d   QhRRRR/# r   r9   )r3   r4   s   "r5   r6   KafkaDsn.__annotate__#  s     
 
 
W 
r8   c                    R RRR/# )r,   r_  r-   9092r9   r  s   &r5   r   KafkaDsn.get_default_parts"  s     kF
 	
r8   r9   Nrj  rB   s   @r5   r]   r]     s     iO
 
r8   r   Tr   r   r   r   r   c                    V ^8  d   QhR\         R\        R\        R\         R\         R\        \        \        ,          ,          R\
        \        ,          /# )r&   r   r   r   r   r   r   r`   )rL   r   r   r   r2   r   rO   )r3   s   "r5   r6   r6   *  s]     2 22 2 	2
 2 2 jo.2 
&\2r8   c           	      H    \        V VVVVVR 7      p\        R\        3V4      # ))r   r   r   r   r   r   UrlValue)dicttyperO   )r   r   r   r   r   r   	namespaces   $$$$$$ r5   	stricturlrx  *  s3     )!#'I 
VIy11r8   c                    V ^8  d   QhRR/# )r&   r`   Nr9   )r3   s   "r5   r6   r6   ?  s     h h hr8   c                  N     ^ RI s R#   \         d   p \        R4      T hRp ? ii ; i)r   NzCemail-validator is not installed, run `pip install pydantic[email]`)email_validatorImportError)es    r5   import_email_validatorr~  ?  s,    h h_`fgghs    $$c                   t   a  ] tR tRt o ]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       tRtV t	R	# )
rS   iG  c                :   < V ^8  d   QhRS[ S[S[3,          RR/# r   r   )r3   r4   s   "r5   r6   EmailStr.__annotate__I  s#     ; ;T#s(^ ; ;r8   c                ,    VP                  R RR7       R# )stringemailrv  r3   Nupdater   s   &&r5   r   EmailStr.__modify_schema__H  s    ':r8   c                   < V ^8  d   QhRR/# r   r9   )r3   r4   s   "r5   r6   r  M  s      #6 r8   c              #  N   "   \        4        \        x  V P                  x  R # 5irc   )r~  r   r   r   s   &r5   r   EmailStr.__get_validators__L  s      	 lls   #%c                6   < V ^8  d   QhRS[ S[,          RS[/# r&   r   r`   )r   r2   )r3   r4   s   "r5   r6   r  U  s     ( (U3Z (C (r8   c                &    \        V4      ^,          # )r   )validate_emailr   r   s   &&r5   r   EmailStr.validateT  s    e$Q''r8   r9   N
r;   r<   r=   r>   r  r   r   r   r@   rA   rB   s   @r5   rS   rS   G  s?     ; ;   ( (r8   c                      a  ] tR tRt o RtV 3R lR ltV 3R lR lt]V 3R lR l4       t]V 3R lR	 l4       t	]V 3R
 lR l4       t
V 3R lR ltRtV tR# )rT   iY  c                &   < V ^8  d   QhRS[ RS[ /# )r&   namer  r  )r3   r4   s   "r5   r6   NameEmail.__annotate__\  s      S  r8   c                    Wn         W n        R # rc   r  r  )r   r  r  s   &&&r5   r   NameEmail.__init__\  s    	
r8   c                &   < V ^8  d   QhRS[ RS[/# )r&   otherr`   )r   rL   )r3   r4   s   "r5   r6   r  `  s     e eC eD er8   c                    \        V\        4      ;'       d2    V P                  V P                  3VP                  VP                  38H  # rc   )
isinstancerT   r  r  )r   r  s   &&r5   __eq__NameEmail.__eq__`  s9    %+ddDJJ0GEJJX]XcXcKd0ddr8   c                :   < V ^8  d   QhRS[ S[S[3,          RR/# r   r   )r3   r4   s   "r5   r6   r  d  s'     @ @T#s(^ @ @r8   c                ,    VP                  R RR7       R# )r  z
name-emailr  Nr  r   s   &&r5   r   NameEmail.__modify_schema__c  s    ,?r8   c                   < V ^8  d   QhRR/# r   r9   )r3   r4   s   "r5   r6   r  h  s      #6 r8   c              #  >   "   \        4        V P                  x  R # 5irc   )r~  r   r   s   &r5   r   NameEmail.__get_validators__g  s      lls   c                $   < V ^8  d   QhRS[ RR/# )r&   r   r`   rT   r   )r3   r4   s   "r5   r6   r  n  s     + +S +[ +r8   c                \    VP                   V 8X  d   V# \        V4      pV ! \        V4      !  # rc   )r   r   r  r  s   &&r5   r   NameEmail.validatem  s-    ??c!Le$N5)**r8   c                    < V ^8  d   QhRS[ /# r_   r  )r3   r4   s   "r5   r6   r  t  s     - - -r8   c                :    V P                    R V P                   R2# )z <>r  )r   s   &r5   __str__NameEmail.__str__t  s    ))Btzzl!,,r8   )r  r  Nr  )r;   r<   r=   r>   r  r   r  r  r   r   r   r  r@   rA   rB   s   @r5   rT   rT   Y  sh     I e e @ @  
 + +- -r8   c                   x   a  ] tR tRt o Rt]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       tRt	V t
R	# )
rU   ix  c                :   < V ^8  d   QhRS[ S[S[3,          RR/# r   r   )r3   r4   s   "r5   r6   IPvAnyAddress.__annotate__|  '     C CT#s(^ C Cr8   c                ,    VP                  R RR7       R# )r  ipvanyaddressr  Nr  r   s   &&r5   r   IPvAnyAddress.__modify_schema__{      /Br8   c                   < V ^8  d   QhRR/# r   r9   )r3   r4   s   "r5   r6   r    r   r8   c              #  *   "   V P                   x  R # 5irc   r   r   s   &r5   r    IPvAnyAddress.__get_validators__  r   r   c                V   < V ^8  d   QhRS[ S[S[S[3,          RS[ S[S[3,          /# r  )r   r2   bytesr   r   r   )r3   r4   s   "r5   r6   r    s0     	. 	.U3s?3 	.k;>V8W 	.r8   c                     \        V4      #   \         d     Mi ; i \        T4      #   \         d    \        P                  ! 4       hi ; irc   )r   
ValueErrorr   r   IPvAnyAddressErrorr  s   &&r5   r   IPvAnyAddress.validate  sR    	u%% 			.u%% 	.++--	.   
 
* !Ar9   Nr;   r<   r=   r>   r  r  r   r   r   r@   rA   rB   s   @r5   rU   rU   x  sF     IC C   	. 	.r8   c                   x   a  ] tR tRt o Rt]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       tRt	V t
R	# )
rV   i  c                :   < V ^8  d   QhRS[ S[S[3,          RR/# r   r   )r3   r4   s   "r5   r6   IPvAnyInterface.__annotate__  s'     E ET#s(^ E Er8   c                ,    VP                  R RR7       R# )r  ipvanyinterfacer  Nr  r   s   &&r5   r   !IPvAnyInterface.__modify_schema__  s    2CDr8   c                   < V ^8  d   QhRR/# r   r9   )r3   r4   s   "r5   r6   r    r   r8   c              #  *   "   V P                   x  R # 5irc   r   r   s   &r5   r   "IPvAnyInterface.__get_validators__  r   r   c                <   < V ^8  d   QhRS[ RS[S[S[3,          /# r  )NetworkTyper   r   r   )r3   r4   s   "r5   r6   r    s%     	0 	0[ 	0U=-3O-P 	0r8   c                     \        V4      #   \         d     Mi ; i \        T4      #   \         d    \        P                  ! 4       hi ; irc   )r   r  r   r   IPvAnyInterfaceErrorr  s   &&r5   r   IPvAnyInterface.validate  sR    	 '' 			0 '' 	0--//	0r  r9   Nr  rB   s   @r5   rV   rV     sF     IE E   	0 	0r8   c                   t   a  ] tR tRt o ]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       tRtV t	R	# )
rW   i  c                :   < V ^8  d   QhRS[ S[S[3,          RR/# r   r   )r3   r4   s   "r5   r6   IPvAnyNetwork.__annotate__  r  r8   c                ,    VP                  R RR7       R# )r  ipvanynetworkr  Nr  r   s   &&r5   r   IPvAnyNetwork.__modify_schema__  r  r8   c                   < V ^8  d   QhRR/# r   r9   )r3   r4   s   "r5   r6   r    r   r8   c              #  *   "   V P                   x  R # 5irc   r   r   s   &r5   r    IPvAnyNetwork.__get_validators__  r   r   c                <   < V ^8  d   QhRS[ RS[S[S[3,          /# r  )r  r   r   r   )r3   r4   s   "r5   r6   r    s%     . .[ .U;3K-L .r8   c                     \        V4      #   \         d     Mi ; i \        T4      #   \         d    \        P                  ! 4       hi ; irc   )r   r  r   r   IPvAnyNetworkErrorr  s   &&r5   r   IPvAnyNetwork.validate  sR    	u%% 			.u%% 	.++--	.r  r9   Nr  rB   s   @r5   rW   rW     sA     C C   . .r8   z([\w ]*?) *<(.*)> *i   c                h    V ^8  d   QhR\         \        ,          R\        \        \        3,          /# r  )r   r2   r   )r3   s   "r5   r6   r6     s&     $< $<%* $<sCx $<r8   c                z   \         f   \        4        \        V 4      \        8  d   \        P
                  ! 4       h\        P                  V 4      pRpV'       d   VP                  4       w  r V P                  4       p \         P                  ! VRR7      p\        TR4      '       d,   TP                  pTf   Q hT;'       g    TP                  pY#3# TP                  R4      pTRT pY6R P!                  4       pT;'       g    TYx,           3#   \         P                   d   p\        P
                  ThRp?ii ; i)a0  
Email address validation using https://pypi.org/project/email-validator/
Notes:
* raw ip address (literal) domain parts are not allowed.
* "John Doe <local_part@domain.com>" style "pretty" email addresses are processed
* spaces are striped from the beginning and end of addresses but no error is raised
NF)check_deliverability
normalizedr   )r{  r~  r   MAX_EMAIL_LENGTHr   
EmailErrorpretty_email_regexr   groupsr   r  EmailNotValidErrorhasattrr  
local_partindexr   )	r   r   r  r  r   r}  at_indexr  global_parts	   &        r5   r  r    s     
5z$$!!$$U+A!DhhjKKME'..u5Q ul##     ''u''{ ;;s#9H%
I&,,.!!z:#;;; -- 'Q&'s   >D D:$D55D:)rO   rP   rQ   rR   rx  rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r  r  )Zre   	ipaddressr   r   r   r   r   r   r	   r
   typingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pydantic.v1r   pydantic.v1.utilsr   r   pydantic.v1.validatorsr   r   r{  typing_extensionsr   pydantic.v1.configr    pydantic.v1.fieldsr!   pydantic.v1.typingr"   r   r$   rF   ru  r2   r  r   r  __all__rd   rq   rw   r}   r   ri   rg   rh   rj   rk   rl   rn   rr   rz   r   r   rO   rP   rR   rQ   r0  rX   rY   rZ   r[   r\   r]   rx  r~  rS   rT   rU   rV   rW   rf   r  r  r  r9   r8   r5   <module>r     sU   		 	 	    $  = I+--.!+tT"9:
 	 
 IU  O  CU5eS+A5c?+R%SST(  "       :I %+0'$%#aKS aKH Fj Ff =6 =@, "6 f 

v 

v 

v 
2!2 2 	2
 2 2 262*h(s ($- ->.L .00l 00.L .0 ZZ 67  
$<r8   