2bi7 S SK Jr S SKrS SKJr SSKJr SSKJr / SQr Sr \R " S 5 r\R " S 5 r \R " S\R \R - 5 rSrS rSR' \\S9r\\S.r/ SQrSrSSR1 \ V s/ s H o \- PM sn 5 - S- rS\- S- rS\- S- \- S- rSr\R " S5 r\R " S\- S- 5 r\R " S\- S- 5 r\R " S\- S- 5 r \R " S\SS - S- 5 r!\R " S\- S - 5 r"S!\< S\< S\< S"3r#\R " \#\R \R - 5 r$\%" S#5 r&\%" S$5 r'\&\'- S%1- r(\(S&S'1- r)\)S(1- =r*r+ " S) S*\" S*\ 5 5 r,S+ r-S3S, jr.S- r/S. r0S/ r1S0 r2S1 r3S2 r4gs sn f )4 )absolute_importN) namedtuple )LocationParseError)sixschemeauthhostportpathqueryfragment)httphttpsNz%[a-fA-F0-9]{2}z^(?:[a-zA-Z][a-zA-Z0-9+-]*:|/)zS^(?:([a-zA-Z][a-zA-Z0-9+.-]*):)?(?://([^\\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$z(?:[0-9]{1,3}\.){3}[0-9]{1,3}z[0-9A-Fa-f]{1,4}z(?:{hex}:{hex}|{ipv4}))hexipv4)r ls32) z(?:%(hex)s:){6}%(ls32)sz::(?:%(hex)s:){5}%(ls32)sz%(?:%(hex)s)?::(?:%(hex)s:){4}%(ls32)sz2(?:(?:%(hex)s:)?%(hex)s)?::(?:%(hex)s:){3}%(ls32)sz6(?:(?:%(hex)s:){0,2}%(hex)s)?::(?:%(hex)s:){2}%(ls32)sz/(?:(?:%(hex)s:){0,3}%(hex)s)?::%(hex)s:%(ls32)sz'(?:(?:%(hex)s:){0,4}%(hex)s)?::%(ls32)sz&(?:(?:%(hex)s:){0,5}%(hex)s)?::%(hex)sz(?:(?:%(hex)s:){0,6}%(hex)s)?::zCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._\-~z(?:|)z (?:%25|%)(?:[z]|%[a-fA-F0-9]{2})+z\[z)?\]z!(?:[^\[\]%:/?#]|%[a-fA-F0-9]{2})*z!^(/[^?#]*)(?:\?([^#]*))?(?:#.*)?$^$(z)\]$z^(z)(?::0*?(|0|[1-9][0-9]{0,4}))?$zBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-~z!$&'()*+,;=:@/?c ^ \ rS rSrSrSr S U 4S jjr\S 5 r\S 5 r \S 5 r \S 5 rS rSr U =r$ )UrlR z Data structure for representing an HTTP URL. Used as a return value for :func:`parse_url`. Both the scheme and host are normalized as they are both case-insensitive according to RFC 3986. c > U( a UR S5 ( d SU- nUb UR 5 n[ [ U ] XX#XEXg5 $ )Nr ) startswithlowersuperr __new__) clsr r r r r r r __class__s ڎ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/urllib3/util/url.pyr' Url.__new__[ sM ,,:D\\^FS#&T c U R $ )z@For backwards-compatibility with urlparse. We're nice like that.)r selfs r* hostnameUrl.hostnamem s yyr, c n U R =( d SnU R b USU R - - nU$ )z)Absolute path including the query string.r r )r r )r/ uris r* request_uriUrl.request_urir s4 ii3::!3##C r, c r U R ( a SU R U R 4- $ U R $ )z(Network location including host and portz%s:%d)r r r. s r* netloc Url.netloc| s- 99dii333yyr, c U u pp4pVnSnUb XS- - nUb XS- - nUb X- nUb US[ U5 - - nUb X- nUb USU- - nUb USU- - nU$ )a Convert self into a url This function should more or less round-trip with :func:`.parse_url`. The returned url may not be exactly the same as the url inputted to :func:`.parse_url`, but it should be equivalent by the RFC (e.g., urls with a blank port will have : removed). Example: :: >>> U = parse_url('http://google.com/mail/') >>> U.url 'http://google.com/mail/' >>> Url('http', 'username:password', 'host.com', 80, ... '/path', 'query', 'fragment').url 'http://username:password@host.com:80/path?query#fragment' z://r r r #)str) r/ r r r r r r r urls r* r= Url.url s &