ó
    q™hà  ã                   ó–  • S r SSKrSrSrSrS\" 5       -  rS\" 5       -  rSrS	r	S
\" 5       -  r
S\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rSrS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rS\" 5       -  rSrS\" 5       -  rS \" 5       -  r S \" 5       -  r!S!\" 5       -  r"S"\" 5       -  r#S#\" 5       -  r$S$\" 5       -  r%S%\" 5       -  r&S&\" 5       -  r'S' r(S( r)S) r*g)*a  
Regex for URIs

These regex are directly derived from the collected ABNF in RFC3986
(except for DIGIT, ALPHA and HEXDIG, defined by RFC2234).

They should be processed with re.VERBOSE.

Thanks Mark Nottingham for this code - https://gist.github.com/138549
é    Nz[\x30-\x39]z[\x41-\x5A\x61-\x7A]z[\x30-\x39A-Fa-f]z %% %(HEXDIG)s %(HEXDIG)sz-(?: %(ALPHA)s | %(DIGIT)s | \- | \. | _ | ~ )z#(?: : | / | \? | \# | \[ | \] | @ )zI(?: ! | \$ | & | ' | \( | \) |
                     \* | \+ | , | ; | = )z?(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s | : | @ )z%(?: %(gen_delims)s | %(sub_delims)s )z5%(ALPHA)s (?: %(ALPHA)s | %(DIGIT)s | \+ | \- | \. )*zÄ(?: %(DIGIT)s |
                    [\x31-\x39] %(DIGIT)s |
                    1 %(DIGIT)s{2} |
                    2 [\x30-\x34] %(DIGIT)s |
                    25 [\x30-\x35]
                )
z@%(dec_octet)s \. %(dec_octet)s \. %(dec_octet)s \. %(dec_octet)sz#([A-Fa-f0-9:]+[:$])[A-Fa-f0-9]{1,4}z;v %(HEXDIG)s+ \. (?: %(unreserved)s | %(sub_delims)s | : )+z+\[ (?: %(IPv6address)s | %(IPvFuture)s ) \]z8(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s )*z;(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s | : )z5(?: %(IP_literal)s | %(IPv4address)s | %(reg_name)s )z(?: %(DIGIT)s )*z.(?: %(userinfo)s @)? %(host)s (?: : %(port)s)?z
%(pchar)s*z
%(pchar)s+z<(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s | @ )+z(?: / %(segment)s )*z,/ (?: %(segment_nz)s (?: / %(segment)s )* )?z&%(segment_nz_nc)s (?: / %(segment)s )*z#%(segment_nz)s (?: / %(segment)s )*Ú z¬(?: %(path_abempty)s |
               %(path_absolute)s |
               %(path_noscheme)s |
               %(path_rootless)s |
               %(path_empty)s
            )
z(?: %(pchar)s | / | \? )*z³(?: (?: // %(authority)s %(path_abempty)s ) |
                    %(path_absolute)s |
                    %(path_rootless)s |
                    %(path_empty)s
                )
zÃ(?: (?: // %(authority)s %(path_abempty)s ) |
                        %(path_absolute)s |
                        %(path_noscheme)s |
                        %(path_empty)s
                    )
z:%(relative_part)s (?: \? %(query)s)? (?: \# %(fragment)s)?zM^(?: %(scheme)s : %(hier_part)s (?: \? %(query)s )? (?: \# %(fragment)s )? )$z"^(?: %(URI)s | %(relative_ref)s )$z6^(?: %(scheme)s : %(hier_part)s (?: \? %(query)s )? )$c                 óV   • [         R                  " [        U [         R                  5      $ ©N)ÚreÚmatchÚURIÚVERBOSE©Úuris    ÚG/var/www/html/env/lib/python3.13/site-packages/oauthlib/uri_validate.pyÚis_urir   µ   s   € Ü8Š8”C˜œbŸj™jÓ)Ð)ó    c                 óV   • [         R                  " [        U [         R                  5      $ r   )r   r   ÚURI_referencer	   r
   s    r   Úis_uri_referencer   ¹   s   € Ü8Š8”M 3¬¯
©
Ó3Ð3r   c                 óV   • [         R                  " [        U [         R                  5      $ r   )r   r   Úabsolute_URIr	   r
   s    r   Úis_absolute_urir   ½   s   € Ü8Š8”L #¤r§z¡zÓ2Ð2r   )+Ú__doc__r   ÚDIGITÚALPHAÚHEXDIGÚlocalsÚpct_encodedÚ
unreservedÚ
gen_delimsÚ
sub_delimsÚpcharÚreservedÚschemeÚ	dec_octetÚIPv4addressÚIPv6addressÚ	IPvFutureÚ
IP_literalÚreg_nameÚuserinfoÚhostÚportÚ	authorityÚsegmentÚ
segment_nzÚsegment_nz_ncÚpath_abemptyÚpath_absoluteÚpath_noschemeÚpath_rootlessÚ
path_emptyÚpathÚqueryÚfragmentÚ	hier_partÚrelative_partÚrelative_refr   r   r   r   r   r   © r   r   Ú<module>r:      s7  ðñ	ó 
ð 	€à€à	€ð +©V«XÑ5€ð >ÁÃÑH€
ð 4€
ð.€
ð 	KÉVó Nñ 	€ð 4±f³hÑ>€ð 
BÁFÃHÑ	L€ðñ ƒhñ€	ð RÑTZó Uñ €ð 5€ð KÉVËXÑU€	ð <¹f»hÑF€
ð GÉËÑQ€ð JÉFó Mñ €ð @Á&Ã(ÑJ€ð ™V›XÑ%€ð >ÁÃÑH€	ð
 ™&›(Ñ
"€ð ™V›XÑ%€
ð PÑRXÓRZÑZ€ð '©«Ñ1€ð @Á&Ã(ÑJ€ð :¹F»HÑD€ð 7¹»ÑA€ð €
ðñ ƒhñ€ð 	%¡v£xÑ/€ð (©&«(Ñ2€ðñ
 ƒhñ€	ðñ
 ƒhñ€ð MÉvó Pñ €ð WÑY_ó Zñ €ð 6¹»Ñ@€ð IÉ6ó Lñ €ò*ò4ó3r   