§ WèÄj|ãó&—ddlZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZmZmZmZej¦«ZdZd Z dd lmZn#e$rd „ZYnwxYwd eeeefeffd „Zdededefd„Zd„Zd„Zd„Zdd„Z dd„Z!dS)éN)Úsuppress)Úiglob)ÚTuple)Ú disable_quota)Ú user_context)Ú INI_LOCATIONSÚINI_USER_LOCATIONSÚ$INI_USER_LOCATIONS_WEBSITE_ISOLATIONÚis_excluded_pathz?/opt/cloudlinux/flags/enabled-flags.d/xray-ini-global-mode.flagi)Ú(is_website_isolation_allowed_server_widecó—dS)NF©róúV/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/reconfiguration/global_ini.pyr r &s€ØˆurÚreturnc#ónK—tD]*}t|¦«D]}t|¦«rŒd|fV—ŒŒ+tD]p}t|d¦«D]X}t|¦«rŒ |d|¦«}|j|jf|fV—Œ7#t  d|¦«YŒVxYwŒqt¦«rxtD]r}t|d¦«D]X}t|¦«rŒ |d|¦«}|j|jf|fV—Œ7#t  d|¦«YŒVxYwŒqdSdS)z� Generator of existing paths (matching known wildcard locations) for additional ini files Returns tuple of (uid, gid) and path. )rrÚpathÚuserzhUnable to get information about user owning %s directory (maybe he`s already terminated?), skip updatingN) rrr r Úpw_uidÚpw_gidÚloggerÚinfor r )ÚlocationÚdir_pathÚ pw_records rÚ_iter_existing_ini_locationsr+såèè€õ "ð#ð#ˆÝ˜h™œð #ð #ˆHÝ Ñ)Ô)ð ØØ˜(Ð"Ð "Ð "Ð "Ð "ð #õ 'ð Eð EˆÝ˜h vÔ.Ñ/Ô/ð Eð EˆHÝ Ñ)Ô)ð Øð EØ,˜H VÔ,¨XÑ6Ô6� ð!Ô'¨Ô)9Ð:¸HÐDÐDÐDÐDÐDøð  Ý— ’ ð,à-5ñ7ô7ð7ð�øøøð Eõ 0Ñ1Ô1ðIÝ<ð Ið IˆHÝ! (¨6Ô"2Ñ3Ô3ð Ið I�Ý# HÑ-Ô-ðØðIØ 0 ¨Ô 0°Ñ :Ô :�Ið%Ô+¨YÔ-=Ð>ÀÐHÐHÐHÐHÐHøð Ý—K’Kð!0à19ñ;ô;ð;ð�Høøøð IðIðIð Ið IsÁ&B  B)Ã,DÄD/ÚuidÚgidÚini_pathcó\—d}tj |d¦«}tj |¦«rt d|¦«dStj |¦«rdSd„}t||¦«5t¦«5t  d|¦«t|d|¬¦«5}|  |¦«ddd¦«n #1swxYwYddd¦«n #1swxYwYddd¦«dS#1swxYwYdS)Nz;xray.tasks=0 extension=xray.soúxray.iniz'Refusing to write %s: path is a symlinkcóH—tj||tjzd¦«S©Ni¤)ÚosÚopenÚ O_NOFOLLOW)ÚpÚflagss rÚ_nofollow_openerz,_create_single_ini.._nofollow_openerfs€ÝŒw�q˜%¥"¤-Ñ/°Ñ7Ô7Ð7rzGenerating %s file...Úw)Úopener) r$rÚjoinÚislinkrÚwarningÚlexistsrrrr%Úwrite)rrrÚ ini_contentrr)Úinis rÚ_create_single_inir3YsÜ€ð5€Kå Œ7�<Š<˜ *Ñ -Ô -€DÝ „w‡~‚~�dÑÔðÝ�ŠÐ@À$ÑGÔGÐGØˆÝ „w‡‚�tÑÔð؈ð8ð8ð8õ �c˜3Ñ Ô ð#ð#Ý ‰OŒOð#ð#å� Š Ð+¨TÑ2Ô2Ð2Ý �$˜Ð$4Ð 5Ñ 5Ô 5ð #¸Ø �IŠI�kÑ "Ô "Ð "ð #ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð#ð#ð#ñ#ô#ð#ð#ð#ð#ð#ð#øøøð#ð#ð#ð#ð#ð#ð#ñ#ô#ð#ð#ð#ð#ð#ð#ð#øøøð#ð#ð#ð#ð#ð#sZÂD!Â".D ÃC2Ã& D Ã2C6 Ã6D Ã9C6 Ã:D Ã= D!Ä D Ä D!ÄD ÄD!Ä!D%Ä(D%cóJ—tj t¦«S©N)r$rÚexistsÚGLOBAL_INI_MARKERrrrÚis_global_ini_moder8ps€Ý Œ7�>Š>Õ+Ñ ,Ô ,Ð,rcóÆ—tjttjtjztjztjzd¦«}tj|¦«dSr#)r$r%r7ÚO_CREATÚO_WRONLYÚO_TRUNCr&Úclose)Úfds rÚcreate_global_ini_mode_markerr?ts?€Ý ŒÕ"¥B¤Jµ´Ñ$<½r¼zÑ$IÍBÌMÑ$YÐ[`Ñ aÔ a€BÝ„HˆR�L„L€L€L€Lrcó’—tt¦«5tjt¦«ddd¦«dS#1swxYwYdSr5)rÚFileNotFoundErrorr$Úremover7rrrÚremove_global_ini_mode_markerrCys†€Ý Õ#Ñ $Ô $ð%ð%Ý Œ Õ#Ñ$Ô$Ð$ð%ð%ð%ñ%ô%ð%ð%ð%ð%ð%ð%ð%øøøð%ð%ð%ð%ð%ð%s•<¼AÁAc ó�—t d¦«t¦«D]‚\\}}} t|||¦«Œ#t$rt d|¦«YŒBt $r5}t d|t|¦«d¬¦«Yd}~Œ{d}~wwxYwt d¦«dS)z[ Place xray.ini into each existing Additional ini path, including cagefs ones. zGenerating xray.ini files...z>Unable to update file %s, possible permission misconfigurationzCUnexpected error happened during file processing: "%s", error: "%s"T)Úexc_infoNú Finished!)rrrr3ÚPermissionErrorr.Ú ExceptionÚstr)rrrÚes rÚcreate_ini_filesrK~sü€õ  ‡K‚KÐ.Ñ/Ô/Ð/Ý <Ñ >Ô >ð ð щ ˆˆc�Hð Ý ˜s C¨Ñ 2Ô 2Ð 2Ð 2øÝð ð ð Ý �NŠNðBØCKñ Mô Mð Mà ˆHÝð ð ð Ý �NŠNð/Ø08½#¸a¹&¼&È4ð ñ Qô Qð Qà ˆHˆHˆHˆHøøøøð øøøõ ‡K‚K� ÑÔÐÐÐs²AÁ%B)Á+ B)Á4+B$Â$B)c óþ—t d¦«t¦«D�]¸\\}}}tj |d¦«} t ||¦«5tj|tjtj ztj z¦«} tj tj |¦«j¦«sÚcontentsrJs rÚremove_ini_filesr\’s1€õ ‡K‚KÐ0Ñ1Ô1Ð1Ý$@Ñ$BÔ$BðñÑ ‰ ˆˆc�LÝ”7—<’<  ¨jÑ9Ô9ˆð ݘc 3Ñ'Ô'ð (ð (õ ”W˜X¥r¤{µR´]Ñ'BÅRÄ]Ñ'RÑSÔS�ð!Ýœ<­¬°© ¬ Ô(<Ñ=Ô=ð!埚Ð'RÐT\Ñ]Ô]Ð]Ø õ”H˜R‘L”L�Lð (ð (ð (ñ (ô (ð (ð (õ "œw rÕ+>Ñ?Ô?×FÒFÈiÐFÑXÔX�Hå”H˜R‘L”L�L�Lø•B”H˜R‘L”L�L�Løøøð" XÐ-Ð-Ø&¨(Ð2Ð2Ý”I˜hÑ'Ô'Ð'ð' (ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ùøõ(!ð ð ð Ø ‰HÝð ð ð Ý �NŠNÐEÀxÕQTÐUVÑQWÔQWÑ XÔ XÐ XØ ˆHˆHˆH‰Høøøøð øøøõ ‡K‚K� ÑÔÐÐÐsmÁFÁ#:F ÂAEÃ%F Ã9 FÄ.EÄ3F ÅEÅF Å= FÆ F Æ FÆF ÆFÆ G Æ# G Æ,)GÇG )rN)"Úloggingr$rQÚ contextlibrÚglobrÚtypingrÚsecureiorÚxray.internal.utilsrÚxray.reconfiguration.xray_inirr r r Ú getLoggerrr7rVÚclcagefslib.domainr Ú ImportErrorÚintrIrr3r8r?rCrKr\rrrúrhsáðð€€€Ø € € € Ø € € € ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ"Ð"Ð"Ð"Ð"Ð"à,Ð,Ð,Ð,Ð,Ð,ððððððððððððð ˆÔ Ñ Ô €àUÐð ÐðØKÐKÐKÐKÐKÐKÐKøØðððððððððøøøð +I e¨E°#°s°(¬O¸SÐ,@Ô&Að+Ið+Ið+Ið+Ið\#˜Cð# cð#°Sð#ð#ð#ð#ð.-ð-ð-ðððð %ð%ð%ð ðððð("ð"ð"ð"ð"ð"sÁ AÁAÁA