L irxddlZddlZddlmZdZej dZdZdZ d dZ Gd d eZ d Z y) N)_BaseHTMLProcessor),fileftpgopherh323hdlhttphttpsimapmagnetmailtommsnewsnntpprosperorsyncrtsprtspusftpshttpsipsipssnewssvnzsvn+sshtelnetwaisaimcalltocvsfacetimefeedgitgtalkircircsirc6itmsrmsnimskypesshsmbrymsgz&^([A-Za-z][A-Za-z0-9+-.]*://)(/*)(.*?)ctjd|} tjj ||}|S#t $rd}Y|SwxYw)Nz\1\3) _urifixersuburllibparseurljoin ValueError)baseuris U/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/feedparser/urls.py_urljoinr94sO -- %Cll""4- J  Js : A A c&ttjj|} |dj d|S#t $r|dj dd}g}d}t|dk(r|j}|djdD]1}|j|j djd 3dj||d<|r|dxxd|zz cc<tjj|cYSwxYw) zConvert a URL to IDN notationrascii:r/r.idnazutf-8)listr2r3urlsplitencodeUnicodeEncodeErrorrsplitlenpopsplitappenddecodejoin urlunsplit)urlpartshostnewhostporths r8convert_to_idnrR=s &&s+ ,E a    .QxsA& t9>88:Das# =A NN188F+227; < =88G$a  !Hd "H||&&u-- .sAC DDc0tst||xsdS|s|xsdS|s0 tjj |d}|r|tvr|Syt||}|j jdddtvry|S#t $rYywxYw)Nr/rr<r)ACCEPTABLE_URI_SCHEMESr9r2r3urlparser5striprG)r6relschemer7s r8make_safe_absolute_urirYVs !ciR(( yb  \\**403F#99K 4 C yy{a #+AA J  s"B BBc2eZdZhdZdZdZfdZxZS)RelativeURIResolver>ahrefqcitedelraimgsrcreusemaprelongdescinsraarear^body backgroundformactionheadprofilelinkr^audiorfframerfr}rjinputrfrrhvideorfrposterappletcodebaseiframerfrrjobjectdatarrhrclassidrrscriptrfsourcerf blockquoterac@tj|||||_yN)r__init__baseuri)selfrencoding_types r8rzRelativeURIResolver.__init__s##D(E: cJt|j|jSr)rYrrV)rr7s r8 resolve_urizRelativeURIResolver.resolve_uris%dllCIIK@@rc|j|}|Dcgc].\}}|||f|jvxr|j|xs|f0}}}tt|||ycc}}wr)normalize_attrs relative_urisrsuperr[unknown_starttag)rtagattrskeyvalue __class__s r8rz$RelativeURIResolver.unknown_starttagso$$U+rwxdndgin#c d&8&88Ud>N>Nu>U^Y^_xx !49#uEys3A#)__name__ __module__ __qualname__rrrr __classcell__)rs@r8r[r[js"M@AFFrr[c^t|||}|j||jSr)r[r"output) html_sourcebase_urirtype_ps r8resolve_relative_urisrs(Hh6AFF; 88:rr) re urllib.parser2htmlrrTcompiler0r9rRrYr[rrr8rsO8 $ BJJ? @ 2(+F,+F\r