403Webshell
Server IP : 178.105.222.151  /  Your IP : 216.73.216.38
Web Server : nginx/1.28.3
System : Linux MNK 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.5.4
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/DistUpgrade/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/DistUpgrade/__pycache__/DistUpgradeController.cpython-314.pyc
+
�x�i�u����^RIt^RIt^RIt^RIt^RIt^RIt^RIt^RIt^RIt^RI	t	^RI
t
^RIt^RIt^RI
t
^RIt^RIt^RIHt^RIHt^RIHt^RIHtHtHtHtHtHtHt^RIH t ^RI!H"t"^RI#H$t$^R	I%H&t&^R
I'H't'^RI(H)t)^RI(H*t*])PV]*n+^R
I,H-t-H.t.H/t/H0t0^RI1H2t3^RI1H4t4^RI2t2^RI#H5t5H6t6H7t7^RI8H9t9Rt:Rt;Rt<Rt=!RR]>4t?R#)�N)�
NoOptionError)�ConfigParser)�get)�url_downloadable�check_and_fix_xbit�iptables_active�
inside_chroot�)get_string_with_no_auth_from_source_entry�is_child_of_process_name�
inhibit_sleep)�urlsplit)�Step)�MyCache)�DistUpgradeConfig)�DistUpgradeQuirks)�distinfo)�sourceslist)�SourcesList�SourceEntry�Deb822SourceEntry�	is_mirror)�gettext)�ngettext)�CacheExceptionDpkgInterrupted�CacheExceptionLockingFailed�NotEnoughFreeSpaceError)�
run_apportz/var/run/reboot-requiredc�t�.ROpVPV4# \d\T4^,u#i;i)zAkey() function for sorted to ensure "correct" component ordering ��main�
restricted�universe�
multiverse)�index�
ValueError�len)�a�orderings& �C/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeController.py�component_ordering_keyr*Qs:��?�H���~�~�a� � �����8�}�Q����s��7�7c��.ROpVPR4^,pVPV4# \d\T4^,u#i;i)z=key() function for sorted to ensure "correct" suite ordering �-)��updates�security�	backports�proposed)�	partitionr$r%r&)r'r(�pockets&  r)�suite_ordering_keyr4[sK��C�H�
�[�[��
�a�
 �F���~�~�f�%�%�����8�}�Q����s�/�A�Ac��.pVPR4VPR4\VR4;_uu_4p\P!VP	44pRRR4T\^\
X4^@4Uu.uFqCWD^@,PR4NK	up,
pVPR4V# +'giLg;iuupi)z$-----BEGIN PGP PUBLIC KEY BLOCK-----r-�rbNzus-asciiz"-----END PGP PUBLIC KEY BLOCK-----)�append�open�base64�	b64encode�read�ranger&�decode)�keyring_path�out�f�data�is&    r)�gpg_keyring_to_asciirCes���
�C��J�J�5�6��J�J�r�N�	
�l�D�	!�	!�Q��������)��
"��U�1�c�$�i��5L�M�5L���R�4�L���
�+�5L�M�M�C��J�J�3�4��J�

"�	!��Ns�%B=�?"C�=C
	c�la�]tRt^ttoRtR8RltR9RltRtRtRt	Rt
R	tR
tRt
RtR
tRtRtRtRtRtRtRtRtRtR:RltRtRtRtRtRtRtRt Rt!R t"R!t#R"t$R#t%R$t&R%t'R&t(R't)R(t*R)t+R*t,R+t-R,t.R-t/R.t0R/t1R0t2R1t3R2t4R3t5R4t6R;R5lt7R6t8R7t9Vt:R#)<�DistUpgradeControllerz2this is the controller that does most of the work Nc
��RpVR8XgVR8Xd6\P!4p\PPVR4pW0nW n\P!\\P!R\P!R4444Vn
\P!RV4\P !R4\P!RVP"P$,4WnVP&P)\+R	44RVnRVn\1V4VnRVP2P5R
R4,VnVP2P9R4VP2P;RR
R4VP
'd:VP
P<'dVP2P;RR
R4\>P@!4pVP5R4Vn!VP5R4Vn"\FPH!4pVP2P5RR4Vn%VPMVPJ4;'gRPOR4^,Vn(VPSVPJ4'dVPP'g�VP
P<'d0VP&PU\+R4\+R44M.VP&PU\+R4\+R44\VPX!^4VPBVP[49Vn.VP2P_RR4Vn0\PP\bP2PeR4R4Vn3\bP2PiR4Vn5VPjR89dRVn6RVn7MRVn6RVn7R \Pp9d7\P!R!4\bP2P;R"R#4R$Vn9\uWP24Vn;\y4Vn=R%\PpR&&R%\PpR'&VP2P}R(R)4p\bP2P;R*\V44\bP2P;R+\R944\bP2P;R,\R:44\bP2P;R-R.4\bP2P;R/R.4\bP2P;R0R14\bP2P;R2R34VP2P_R4R54Vn@VP2P�RR64VnB.VnCVP2P�R74'd7VP2P�R74Uu.uFq�^,NK
	upVnCRVnF\;4VnG\�4VnI\�4VnJR# \d"\P!R4RTn
ELZi;iuupi);z/usr/share/locale/N�.�mo�SUDO_UID�
PKEXEC_UIDzKFailed to determine invoking user, environment variables may be incomplete.�ubuntu-release-upgraderzUsing '%s' viewz
Reading cache�Files�	BackupExt�Options�
devRelease�False�True�VERSION_CODENAME�
VERSION_ID�Sources�Tor-� zDistribution data outdatedz�An updated distro-info-data package is required before upgrading to the development release.

Try again after the distro-info-data update is available.zDPlease ensure all package updates are installed, and then try again.�From�Dir::Etc::sourceparts�ubuntu.sourceszAPT::Architecturez http://archive.ubuntu.com/ubuntuz!http://security.ubuntu.com/ubuntuz$http://ports.ubuntu.com/ubuntu-ports�"RELEASE_UPGRADE_NO_FORCE_OVERWRITEzenable dpkg --force-overwritezDPkg::Options::z--force-overwriteF�1�RELEASE_UPGRADE_IN_PROGRESS�PYCENTRAL_FORCE_OVERWRITE�Network�
MaxRetrieszAcquire::Retriesz
Dpkg::MaxArgszDpkg::MaxArgByteszAcquire::http::Timeout�20zAcquire::ftp::TimeoutzApt::Get::List-Cleanup�falsez'APT::Get::Always-Include-Phased-Updates�yes�Distro�ForcedObsoletes�ValidMirrors�ThirdPartyMirrors)�amd64�arm64�i386ii)K�os�getcwd�path�join�datadir�options�pwd�getpwuid�int�getenv�_invoking_user_pwd�	TypeError�logging�debugr�bindtextdomain�
textdomain�	__class__�__name__�_view�updateStatus�_�cache�fetcherr�configr�sources_backup_ext�add_section�set�
devel_release�platform�freedesktop_os_release�fromDist�fromVersion�distro_info�UbuntuDistroInfo�toDist�versionr2�	toVersion�valid�error�sys�exit�	supported�
isFromDistEOL�getlist�supportedFromDists�apt_pkg�find_dir�default_sources_filepath�find�arch�default_source_uri�security_source_uri�environ�_partialUpgrader�quirksr�inhibitor_fd�getint�str�forced_obsoletes�getListFromFile�
valid_mirrors�valid_3p_mirrors�has_section�items�_session_bus�_generated_sources_files�dict�_foreign_packages_pre_rewrite�_foreign_packages_post_rewrite)	�self�distUpgradeViewrorn�	localedir�
os_release�di�
maxRetries�pairs	&&&&     r)�__init__�DistUpgradeController.__init__ws(��(�	��d�?�g��n��i�i�k�G������W�T�2�I�����		+�&)�l�l��B�I�I�j�"�)�)�L�*A�B�C�'�D�#�	���8��C����4�5�	�
�
�'�/�*C�*C�*L�*L�L�M�$�
��
�
����/� 2�3���
����(��0���"%�d�k�k�o�o�g�k�&J�"J���	
�����	�*������	�,��8��<�<�<��|�|�)�)�)������	�,��?��4�4�6�
�"���'9�:��
�%�>�>�,�7���
�
)�
)�
+���k�k�o�o�i��6����*�*�T�[�[�1�7�7�R�B�B�3�G��J����x�x����$�$�D�N�N�N��|�|�)�)�)��
�
� � ��2�3��#�$���
�
� � ��2�3��,�-��
�H�H�Q�K�!�]�]�"�,�,�.�@���"&�+�+�"5�"5�i��"H���)+������N�N�#�#�$;�<��)
��%�
�N�N�'�'�(;�<��	��9�9�2�2�&H�D�#�'J�D�$�&L�D�#�'M�D�$�0�r�z�z�A��M�M�9�:��N�N���0�1D�E� %���(��k�k�:���*�O���58��
�
�0�1�25��
�
�.�/��[�[�'�'�	�,�?�
������-�s�:��?�	�����?�C��L�9������.��H�
�>�	�����3�D�9������2�4�8�	�����3�W�=�	�����D�e�L�!%��� 3� 3�H�=N� O���!�[�[�8�8��>�R��� "����;�;�"�"�#6�7�7�%)�[�[�%6�%6�7J�%K�%M�%K�26�!�W�W�%K�%M�D�!�!���),���%�.2�V��*�.2�f��+��K�	+��M�M�;�
�'+�D�#�	+��p%Ms�A
[�[>�([;�:[;c��\P!R4VPfVPP	4M4VPP4VPP
4^p^pVPV4# \d�pT^,
pTPP4\P!R4\P!RT,4YC8�d�\P!RT,4TPP\R4\R44T'dTP4Rp?K�\ P"!^4Rp?K�Rp?EKRp?ii;i)zopenCache()Ng�������?z'failed to lock the cache, retrying (%i)zCache can not be locked (%s)zUnable to get exclusive lockz�This usually means that another package management application (like apt-get or aptitude) already running. Please close that application first.)rvrwrr��PreCacheOpen�release_lock�unlock_lists_dir�
_openCacherr|�
processEvents�time�sleepr�r~�abortr�r�)r��lock�restore_sources_list_on_fail�MAX_LOCK_RETRIES�
lock_retry�es&&&   r)�	openCache�DistUpgradeController.openCaches���
�
�m�$��:�:���K�K�$�$�&��J�J�#�#�%��J�J�'�'�)����
��
$����t�,�,��.�
$��a��
��
�
�(�(�*��
�
�3���
�
�=�
�J�L��0��M�M�"@�1�"D�E��J�J�$�$�Q�'E�%F�%&�(<�&=�>�4��
�
���������1��
$�s�:B�F�B?E>�E>�>Fc
�V�\VPVPVPVPP	4VVP
VPR7VnVPVnVP$VPn\P(!R\+VP4,4R# \d�\P!R4.ROp\PPR4R8XdTPR4TPP!4P#T4\TPTPTPTPP	4TP
TPR7TnEL3i;i))�	from_dist�to_distz-dpkg interrupted, calling dpkg --configure -a�DEBIAN_FRONTEND�noninteractive�--force-confoldz/openCache(), new cache size %iN�z
/usr/bin/dpkgz--configurez-a)rr�r|r��getOpCacheProgressr�r�r�	apt_cacherrv�warningrjr�rr7�getTerminal�callr��partialUpgraderwr&)r�r��cmds&& r)r�� DistUpgradeController._openCache.s#��	6� ����!%���!%���!%���!>�!>�!@�!%�+/�=�=�)-���
6�D�J�"�Z�Z�D�N�%)�$8�$8��
�
�!��
�
�7�#�d�j�j�/�I�J��-�	6��O�O�K�L�6�C��z�z�~�~�/�0�4D�D��
�
�,�-��J�J�"�"�$�)�)�#�.� ����!%���!%���!%���!>�!>�!@�+/�=�=�)-���6�D�J�
	6�s�A2C�C#F(�'F(c��VPPRR4pVPPPV9dR#R#)z�
Returns True if this view support upgrades over ssh.
In theory all views should support it, but for savety
we do only allow text ssh upgrades (see LP: #322482)
�View�
SupportSSHTF)r�r�r|rzr{)r�r�s& r)�_viewSupportsSSH�&DistUpgradeController._viewSupportsSSHKs8���+�+�%�%�f�\�:�i�	
���	�	�	&�	&�)�	3��
�c	���\PPR4p\PPV4'Eg�\PP	R4'Edu\R4'EdcVP
4'g]\P!R4VPP\R4\R44\P!^4R#RpVPP\R	4\R
4V,4pVR8Xd\P!^4\P!RRR
V,R\!V4.4pV^8Xdk\R4p\R4V,p\#4'd#RV,pV\R4V,,
pVPP%WE4R#)z�this will check for server mode and if we run over ssh.
if this is the case, we will ask and spawn a additional
daemon (to be sure we have a spare one around in case
of trouble)
z"/var/run/release-upgrader-sshd.pidz/proc�sshdzupgrade over ssh not allowedz.Upgrading over remote connection not supportedz�You are running the upgrade over a remote ssh connection with a frontend that does not support this. Please try a text mode upgrade with 'do-release-upgrade'.

The upgrade will abort now. Please try without ssh.Fi�zContinue running under SSH?aThis session appears to be running under ssh. It is not recommended to perform a upgrade over ssh currently because in case of failure it is harder to recover.

If you continue, an additional ssh daemon will be started at port '%s'.
Do you want to continue?z/usr/sbin/sshdz-oz
PidFile=%sz-pzStarting additional sshdz�To make recovery in case of failure easier, an additional sshd will be started on port '%s'. If anything goes wrong with the running ssh you can still connect to the additional one.
z-iptables -I INPUT -p tcp --dport %s -j ACCEPTz�If you run a firewall, you may need to temporarily open this port. As this is potentially dangerous it's not done automatically. You can open the port with e.g.:
'%s'T)rjrlrm�exists�isdirrr�rvr�r|r~r�r��askYesNoQuestion�
subprocessr�r�r�information)r��pidfile�port�res�summary�descrr�s&      r)�	_sshMagic�DistUpgradeController._sshMagicVs����'�'�,�,�C�D�������w�'�'��G�G�M�M�'�"�"�$�V�,�,��(�(�*�*��
�
�<�=��
�
� � ��#S�!T�!"�$H�"I�	#��������D��*�*�-�-��/�0��-�.�15�
5�6�C��e�|�������/�/�#3�#'���)?�#'��D�	�#3�4�C��a�x��6�7���L�� $�	$��
#�$�$�I�D�P�C��Q�A�B�EH�	H�H�E�
�
�
�&�&�w�6�r�c
�d�\P!R4R.pVEFwr#RV,p\PP	V4'gK6\4p\
V4;_uu_4pVPV4RRR4VPRR4p\PPR
T,4pY�\PPRT439dK�\P!T:R
T:RT:R\PPRT4:R24R	#	R# +'giL�;i \d%\P!RT:RT:R24R	#i;i \d*p	\P!RT	,4Rp	?	R	#Rp	?	ii;i)z�check that /usr/bin/python3 points to the default python version.
Users tend to modify this symlink, which breaks stuff in obscure
ways (Ubuntu #75557).
z_pythonSymlinkCheck runz/usr/share/%s/debian_defaultsN�DEFAULTzdefault-versionzno default version for z found in '�'Fz/usr/bin/%szos.path.realpath failed (%s)z/usr/binz symlink points to: 'z', but expected is 'z' or 'T)�python3r�)rvrwrjrlr��SafeConfigParserr8�	read_filerr�realpath�OSErrorr�rm)
r��binaries_and_dirnames�binary�dirname�debian_defaultsr�r@�expected_default�fs_default_versionr�s
&         r)�_pythonSymlinkCheck�)DistUpgradeController._pythonSymlinkCheck�sR��
	�
�
�/�0�!7� 8��4�O�F�=��G�O��w�w�~�~�o�.�.�)�+���/�*�*�a��$�$�Q�'�+�!�'-�z�z�)�=N�'O�$�
!�)+���)9�)9�-�&�:P�)Q�&�*������Z�Yi�@j�-k�k��M�M�#)�+=�?O�QS�QX�QX�Q]�Q]�^h�jz�Q{�#}�~� �) 5�*�#+�*��%�!��M�M�#)�6�#3�4� �!���!��M�M�"@�1�"D�E� ��!�s6�/D6�
E	�&E;�6E�	*E8�7E8�;F/�F*�*F/c
�j�VPVP9g}VPVP8XgbVPP	\R4\RVP:RVP:R244\P!^4\P!RPVPVP'dRMR,VP44VP4VP4'g[\P!R4VPP	\R4\R	44\P!^4VP4TP P#TP4'gR#TP P%4TnTP&'dR
\(P*R&MR\(P*R&TP-4'g\P!R4R#^RIHpTF�p\(P2P5T4'gK*\(P6!T\(P84'dKW\P!RT,4TPP	\R4T,\R4T,4TP;4K�	R# \d)p\P!R
T,4Rp?R#Rp?ii;i)z<initial cache opening, coherence checking, network checking zCan not upgradezAn upgrade from 'z' to 'z"' is not supported with this tool.zUpgrading from {} to {}z (EOL)r-z%pythonSymlinkCheck() failed, abortingzMYour python3 install is corrupted. Please fix the '/usr/bin/python3' symlink.zopenCache() failed: '%s'NF�server�RELEASE_UPGRADE_MODE�desktopzcheckViewDepends() failed)�SYSTEM_DIRSz%s not writablezCan not write to '%s'z�Its not possible to write to the system directory '%s' on your system. The upgrade can not continue.
Please make sure that the system directory is writable.T)r�r�r�r|r�r~r�r�rvrw�formatr�r�r�r��SystemErrorr�coherence_check�need_server_mode�
serverModerjr��checkViewDepends�DistUpgradeMainr�rlr��access�W_OKr�)r�r�r��	systemdirs&   r)�prepare�DistUpgradeController.prepare�s?���
�
��!8�!8�8�D�M�M�T�[�[�<X��J�J���Q�0�1��>B�m�m�T�[�[� Z�[�
\�
�H�H�Q�K��
�
�%�,�,��
�
�T�-?�-?�-?��R�H����
�	
�	
�����'�'�)�)��M�M�A�B��J�J���Q�0�1�� L�M�
N�
�H�H�Q�K�	��N�N���z�z�)�)�$�*�*�5�5���*�*�5�5�7����?�?�?�19�B�J�J�-�.�1:�B�J�J�-�.��$�$�&�&��M�M�5�6��0�$�I��w�w�~�~�i�(�(����9�b�g�g�1N�1N��
�
�/�)�;�<��
�
� � ��-�.��:��"�#�&/�	/�0��
�
��%���?�	��M�M�4�q�8�9���	�s�.K?�?L2�
L-�-L2c�$�\P!RV,4.pRpVPF]pVPFJpRP	WE4p\V\P4'dRpK8VP
WE34KL	K_	W23#)a
Check if deb822 source points to downloadable archive(s).
Returns a tuple (bool, list).

The bool is True if any combination of URI and suite was downloadable,
or False if no combination was.

The list contains tuples of URI and suite that were not downloadable
together.
zverifySourcesListEntry: %sFz{}/dists/{}/ReleaseT)rvrw�uris�suitesrrr7)r��entry�failed�downloadable�uri�suite�release_files&&     r)�_deb822SourceEntryDownloadable�4DistUpgradeController._deb822SourceEntryDownloadable�s{��	�
�
�2�U�:�;������:�:�C�����4�;�;�C�G��#�L�'�-�-�@�@�#'�L��M�M�3�+�.�&���%�%r�c�^�\VPRR7pVUu.uFp\V\4'gKVNK	ppVUu.uFp\V\4'dKVNK	pp\P
P
\PPR4\PPR44pVUu.uF*pVPV8XdVP'dK(VNK,	ppV'dV'g^#V'dV'd^#R#uupiuupiuupi)z�
Return an integer indicating if sources are migrated to deb822.
Possible return values are:

    -1: not migrated to deb822 sources
     0: partially migrated to deb822 sources
     1: fully migrated to deb822 sources
T��matcherPath�deb822�Dir::Etc�Dir::Etc::sourcelist���)
rrn�
isinstancerrjrlrmr�r�r�r��file�invalid)r��sources�sr�	nondeb822�sourcelist_files&     r)�migratedToDeb822�&DistUpgradeController.migratedToDeb822s����$�,�,�t�D��$�I�W��
�1�6G�(H�!�!�W��I� '�P��1�z�!�=N�/O�Q�Q��	�P��'�'�,�,��N�N�#�#�J�/��N�N��� 6�7�
��!*�G�	�1��V�V��6�1�9�9��Q�	�	�G��)��
�	���I��)J��P��Gs"�D �D �D%�"D%�%D*�2D*c
��\P!R4\PP	\
PPR4\
PPR44p\
PPR4p\
PPR4pRp/p\VPR7VnVPPR4/pVPEF�p\V\4'gKVP'd^\P!R	\!V4R
VP"R24WWP",P%\!V44K�VP(R8XdVP*'dK�VP"V8XdfR
pVP-VP.4'd"\PP	VR4pMX\PP	VR4pM7\PP1VP"4^,R,pW�P*VP(VP.VP23p	Wi,p
\5\7V
R,VP8,44V
R&V
R,P;\<R7EK�	VP?4Uu.uFq�R-,NK
	upF�pVP?4Uu.uFq�R-,V8wgKVNK	upFspV.VRR-OVN5,p
V
R,Wk,R,8XdDV
R;;,Wk,R,,
uu&V
R,P;\@R7WkKsKu	K�	VPC4UU
u.uFwr�V^,R8XgKW�3NK	up
pF�wr�VPC4UU
u.uFwr�V^,R8XgKW�3NK	up
pF�wppR
pVVR,VR,8H,pVVR,VR,8H,pVVR,VR,8H,pVVR,VR,8H,pVVR,VR,8H,pV'gK�RR.VR&WmK�	K�	VPE4EF�pVR,pV\PP	VR48XdRVR&K9\PPG\PP1V4^,4p\PP	VVR,4p\PPIV4'g�\PPG\PP1V4^,4pVPKR^4^,R,p\PP	VV4p\PPIV4'gEKsVPMR4'dEK�\OV4pVUu.uF$pRVPQ4'dTMR,NK&	ppR R P	V4,VR&EK�	\7VPE4U
u.uFq�R,NK
	up
4EF�p.pVPE4U
u.uFq�R,V8XgKV
NK	up
EFp
R!pV
R,'d
VR",
pVR#PSRP	V
R,44,
pVR$PSRP	V
R,44,
pVR%PSRP	V
R,44,
pVR&PSRP	V
R,44,
pV
PMR4'd VR'PSV
R,4,
pVP%V4EK 	\UVR(4;_uu_4pVPWR P	V44RRR4VPXP[V4EK�	VPU
u.uFp
\V
\4'gKV
NK	up
F�pVP"V8XdV'gK\PPIVP"4'd!\P\!VP"4VPP]V4K�	VPP_4V'd\\UVR(4;_uu_4pVPWR)PS\PP	VR444RRR4VPC4FUwpp\UVR*2R(4;_uu_4pVPWR+4VFpVPWR,VR 24K	RRR4KW	R# \&d\!T4.YWP"&EL�i;i \&d�/p
Y�R&TP*T
R&TP(.T
R&TP..T
R&TP2.T
R&\5\7TP844T
R&T
R,P;\<R7Y�T	&E
Ki;iuupiuupi \&dEK�i;iuup
piuup
piuupiuup
iuup
i +'giEL�;iuup
i +'giEL�;i +'giEK�;i).z6
Migrate .list files to corresponding .sources files.
zmigrateToDeb822Sources()rrrXzDir::Etc::trustedpartsF)r�.migratezCould not migrate z from z, disabling instead.zdeb-srcTrYzthird-party.sourcesz.sources�comps��key�filepath�disabled�typesr
rN�debz/ /usr/share/keyrings/ubuntu-archive-keyring.gpgz	signed-byz.gpgr,rVrG�
r-zEnabled: no
z
Types: {}
z	URIs: {}
zSuites: {}
zComponents: {}
z
Signed-By:{}
�wz"# Ubuntu sources have moved to {}
z	.disabledz�# This file could not be automatically migrated to a .sources file during the upgrade.
# Please see sources.list(5) (or https://manpages.ubuntu.com/manpages/man5/sources.list.5.html)
# for details on how to migrate manually.

z# r)0rvrwrjrlrmr�r�r�r�rrnr!�backuprrr r�rr7�KeyError�typer-�isMirrorr�splitext�dist�listr�r)�sortr*�keysr4r��values�basenamer��rsplitrrC�striprr8�writer��add�remove�save)r�r$�sourceparts_dir�trustedparts_dir�migrated_sources_list�cannot_migrater$r�new_filepathr+r��kr�ks�se�kb�be�can_combiner,�keyring�lines�lrl�stanzas�stanzar@r�entriess&                           r)�migrateToDeb822Sources�,DistUpgradeController.migrateToDeb822Sources's���	�
�
�0�1��'�'�,�,��N�N�#�#�J�/��N�N��� 6�7�
��"�.�.�1�1�2I�J��"�>�>�2�2�3K�L�� %����"�t�|�|�<��������J�'����\�\�E��e�[�1�1���}�}�}��
�
�(��U���F�5�:�:�,�*�+��>�"�:�:�.�5�5�c�%�j�A��
�z�z�Y�&�5�>�>�>���z�z�_�,�(,�%��=�=����+�+�#%�7�7�<�<��AQ�#R�L�$&�7�7�<�<��AV�#W�L� "�w�w�/�/��
�
�;�A�>��K�� ������U�Y�Y��
�
�S�C�

��J��!�#�a��j�5�;�;�&>�"?�@��'�
��'�
���$:��;�i"�@&+�Z�Z�\�2�\���e�e�\�2�E�!&����@��A�2��%��a�a��@��	��.��#�2��.��.�/�A���z�U�X�g�%6�6��(��u�x��'9�9���(��(�(�-?�(�@�!�H�	7�	A�3�-2�K�K�M�O�M�5�A�Q�q�T�Y�=N��!��M�O�H�R�05���
�O�
�u���1����U�a�U�
�O���R�"���r�*�~��J��?�?���r�*�~��J��?�?���r�&�z�R��Z�7�7���r�(�|�r�(�|�;�;���r�'�{�b��k�9�9���;�#(�)�"4�B�w�K��	�P�P��\�\�^�E��Z�(�H��2�7�7�<�<��9I�J�J�%V��k�"��'�'�*�*�2�7�7�+;�+;�H�+E�a�+H�I���'�'�,�,�'7��6�9I�J���w�w�~�~�g�.�.�!�g�g�.�.�r�w�w�/?�/?��/I�!�/L�M�G�%�n�n�S�!�4�Q�7�&�@�G� �g�g�l�l�+;�W�E�G��7�7�>�>�'�*�*�5�9�9�[�3I�3I�0��9�E�FK�L�e��S������A��<�<�e�E�L�)-��	�	�%�0@�)@�E�+�&�+$�4�����?��1�:����?�@�D��G�!&����I��A�Z�=�D�3H�a�a��I�����Z�=�=��o�-�F��-�.�.�s�x�x��'�
�/C�D�D���,�-�-�c�h�h�q��y�.A�B�B���.�/�/�����8��0E�F�F���,�3�3�C�H�H�Q�w�Z�4H�I�I���5�5��%�%��.�5�5�a��n�E�E�F����v�&�J��d�C���A�����	�	�'�*�+�!�
�)�)�-�-�d�3�+A�0"&���L��A��A�{�1K�a�a��L�E��z�z�_�,�5J���w�w�~�~�e�j�j�)�)��	�	�%�*�*�%��L�L����&�M�	
������ ��o�s�+�+�q����=��������_�>N� O�P�R�,� .�3�3�5�O�T�7����i�(�#�.�.�!����G��%�E��G�G�b���r�N�+�%�/�.� 6��[ �>�25�e�*��N�:�:�.�>��@�	
��� ,�*�
� %����*�
�#�j�j�\��'�
�"�Y�Y�K��&�	�$�z�z�l��(��!�#�e�k�k�"2�3��'�
��'�
���$:��;��c�
�	
��3��@�� �����P��O��@M��@��J�!����M�",�+�+��
/�.�.�s��*i�Ai0�.l
�l�+l�8A-l�l'�l'�<l-�l-�/l3�l3�l8�l=�l=�!m�,m�	m�?m�0m/�#i-�,i-�0Bl�l�l$�#l$�m�m,	�/nc��VP'gR#\PP\P
P
R4\P
PR44p\P
P
R4p\P!VR24F)p\P!W3PR44K+	\P!VR2V4VPFp\P!V4K	R# \d(p\P!RTRT24Rp?K�Rp?ii;i \dLn\d'p\P!RTRT24Rp?L�Rp?ii;i \d(p\P!RTRT24Rp?K�Rp?ii;i)	NrrrX�
/*.migrater(zFailed to restore z: zFailed to remove )r�rjrlrmr�r�r�r��glob�rename�removesuffixr�rvrw�FileNotFoundErrorrA)r�r$rCrlr�s&    r)�restoreMigratedSources�,DistUpgradeController.restoreMigratedSources�st���,�,�,���'�'�,�,��N�N�#�#�J�/��N�N��� 6�7�
��"�.�.�1�1�2I�J���I�I�� 1��<�=�D�
@��	�	�$� 1� 1�*� =�>�>�	G��I�I�"�#�8�,��
��1�1�D�
?��	�	�$��2���
@��
�
� 2�4�&��1�#�>�?�?��
@��!�	���	G��M�M�.��.?�r�!��E�F�F��	G���
?��
�
� 1�$��r�!��=�>�>��
?�sT�+%D�E�?F�E
�&E�E
�F
�F
�&F
�'F�F
�G�F=�=Gc��\PP\PPR4\PP
R44p\PPR4pVVP2VR2.pV\P!VRVP24,
pV\P!VR24,
pVFp\P!V4K	R# \dK.i;i)rrrXr(z/*rWN)rjrlrmr�r�r�r�r�rXrAr�)r�r$rC�pathsrls&    r)�cleanBackupSources�(DistUpgradeController.cleanBackupSources	s����'�'�,�,��N�N�#�#�J�/��N�N��� 6�7�
��"�.�.�1�1�2I�J����� 7� 7�8�9���x�(�
��	����o�.�b��1H�1H�0I�J�K�K��
����o�.�j�9�:�:���D�
��	�	�$�����
��
�s�!C=�=D�Dc�
�VPPVPRVPVP.ROR7p\VPVPR,.\R7VnRVPR&R#)r/�rr4rr7�
orig_compsz-updatesr*�./usr/share/keyrings/ubuntu-archive-keyring.gpg�	Signed-ByNr)	r!r@r�r�r��sortedr4r�section�r�r�s& r)�_addDefaultSources�(DistUpgradeController._addDefaultSourcessm���L�L����.�.���'�'����G�
�
���4�;�;����j�(@�A�0�2���!Q��	�	�+�r�c��VPPVPRVPVPR,.ROR7pRVP
R&R#)r/�	-securityrcrerfNr)r!r@r�r�r�rhris& r)�_addSecuritySources�)DistUpgradeController._addSecuritySources)sP���L�L����.�.���(�(����{�*�G�
�
��"R��	�	�+�r�c�t�\VPPRRR4R\P934#)rT�AllowThirdPartyF�"RELEASE_UPGRADER_ALLOW_THIRD_PARTY)�anyr��getWithDefaultrjr��r�s&r)�_allowThirdParty�&DistUpgradeController._allowThirdParty3s7����K�K�&�&�y�1B�5�I�0�B�J�J�>�
��	r�c��VP4'd\P!R4R#\P!VPPRR44VPPRR4EFBp\P!RV,4WP9d�VPV,P'd�\VPV,PP4^8Xg�VPV,P'gK�\VPV,PP4^8XgK�VPV,PP^,PR8XgEK%\P!RV,4R#	R#)z,mirror check skipped, *overriden* via configTrc�BaseMetaPkgszChecking pkg: %s�nowz)BaseMetaPkg '%s' has no candidate.originsF)rvrvr�rwr�r�r�	candidater&�origins�archive)r��pkgnames& r)�_mirrorCheck�"DistUpgradeController._mirrorCheck9s*��� � �"�"��O�O�J�K��	�
�
�d�k�k�)�)�(�N�C�D��{�{�*�*�8�^�D�G��M�M�,�w�6�7��
�
�*��Z�Z��(�2�2�2��T�Z�Z��(�2�2�:�:�;�q�@����G�$�.�.�.��T�Z�Z��(�2�2�:�:�;�q�@����G�$�.�.�6�6�q�9�A�A�U�J��
�
�I�G�S�T��E�r�c�a�/p.p.p.pVPVP/pVPPRR4F?pRP	VPV4pRP	VPV4pW�V&KA	VP
U	u.uFBp	\
V	PV	P\V	\4'*34'dK@V	NKD	p
p	V
EFpVP'd�VPP'de\P!R4\VP 4\VPR,.4,
pV'g
RVnK�W�n\VP"U
u.uFp
RV
9gKV
NK	up
4VnVP"'g`VP Uu.uFq�P%R4'gKVNK	up'dVP&.VnMVP(.VnVP*R	8Xd�VPR
8XgVPR
8Xd�\,;QJd&RVP 4F'dKRM	RM!RVP 44pV'd
VP&MVP(o\V3R
lVP"44Vn\P!R\/\0P2!V44,4VP"U
u.uFGp
\
VP5V
4VP7V
4VP9434'gKEV
NKI	pp
V'gVRVnVP;V4\P!R\/\0P2!V44,4EK�.pVP FpVP;W^,4K	V'gVRVnVP;V4\P!R\/\0P2!V44,4EKw\A\C\V44\DR7VnVP"U
u.uFp
RV
9gKV
NK	pp
VP Uu.uF%pVPGR^4R!,R"9gK#VNK'	ppRVPH9;'d
T;'dTpV'gEK,VPKV4wppV'gVRVnVP;V4\P!R\/\0P2!V44,4EK�V'd>\P!R\/\0P2!V44,4EK�VP F,pVV;;,\VPL4,uu&K.	EK!	RVPOVP\449EdOV'd5\QR4pVRPS\ARV444,
pM�V'd5\QR4pVRPS\ARV444,
pMu\QR4pV'dcV\QR4,
pTRPS\A\4PT!VU	u.uFq�PVNK	up	!44,
pV\QR4,
pVPXP[\QR 4V4pV'gR#VP]4VP_4R#uup	iuup
iuupiuup
i \<d/Y�P?49dTP;T4EK�EK�i;iuup
iuupi \<d\TPL4TT&EK0i;iuup	i)#z
deb822-aware version of rewriteSourcesList()

Return True if we found a valid dist to ugprade to, and return False
otherwise.
rT�Pocketsz{}-{}z2upgrade to development release, disabling proposedz	-proposedTzold-releases.ubuntu.com/rmrh�resolutec3�B"�TFqPR4x�K	R#5i)rmN)�endswith)�.0r"s& r)�	<genexpr>�=DistUpgradeController.rewriteDeb822Sources.<locals>.<genexpr>�s���$�5A��J�J�{�+�+�\�s�Fc3�v<"�TF.pVPRSPR^4^,4x�K0	R#5i)zports.ubuntu.com/ubuntu-ports�://N)�replace�split)r��u�new_uris& �r)r�r��s@����!�
(��	�I�I�7��
�
�e�Q�/��2���(�s�69zexamining: '%s'z(entry '%s' was disabled (unknown mirror)z&entry '%s' was disabled (unknown dist)r*z/security.ubuntu.comr,r/z)entry '%s' was disabled (no Release file)z0some Release files were not downloadable for '%sr z_This is probably because one or more of the following mirrors are out-of-date or unreachable:

r0c3�8"�TFqPx�K	R#5i�N�r�r�r�s& r)r�r��s���C�*B�Q�5�5�*B���z\This is probably because of one or more of the following unsupported mirrors was disabled:

c3�8"�TFqPx�K	R#5ir�r�r�s& r)r�r��s���B�*A�Q�5�5�*A�r�zNThis is probably because the current apt sources configuration is unsupported.zO

The following suites were disabled because they are out-of-date or unknown:

zp

Would you like to continue the upgrade using default sources? If you select 'No', the upgrade will be aborted.z Required apt sources are missingr)r0r/)0r�r�r�r�rr!rsr r-rrror�rvrwr�rr
r�r�r�r��allr
�copy�deepcopyr5�isThirdPartyMirrorrvr7r3r;rgr8r4r=r.rr)rr~rm�unionrr|r�rjrn)r��found_components�disabled_unknown_mirror�disabled_no_release_file�disabled_unknown_dist�
suite_mappingr3r@�tr�r!r�no_proposedr�r"�
security_only�
known_mirrors�
new_suites�
valid_uris�valid_suites�valid_torrr�detailsr�r�s&                         @r)�rewriteDeb822Sources�*DistUpgradeController.rewriteDeb822SourcesUs������"$��#%� � "��������4�
��k�k�)�)�)�Y�?�F����t�}�}�f�5�A����t�{�{�F�3�A� �!��@��|�|�
�#�!���	�	��
�
��q�"3�4�4���
�A�|�	�
��E��|�|�|���� :� :� :��
�
�R�S�!�%�,�,�/�#�t�}�}�{�7R�6S�2T�T��"�&*�E�N��$/�L�����F��A�!;�1�!D� �a��F�G�E�J��:�:�:�$�|�|�G�|�!�z�z�+�/F�A�A�|�G�G�"&�":�":�!;�E�J�"&�"9�"9�!:�E�J��y�y�G�#����z�)�T�]�]�j�-H� #��$�5:�\�\�$����$�5:�\�\�$�!�
�
%��,�,��0�0��
!�!�
#�Z�Z�!���
�
�M�M�+�C�D�M�M�RW�DX�Y�Z�
[�
!�:�:��%�a���M�M�!�$��+�+�A�.��)�)�+�����:�
��!�!%���'�.�.�u�5��
�
�H� I�$�-�-�X]�J^� _�`�a���J��\�\��-��%�%�m�&6�7�"��!%���%�,�,�U�3��
�
�F� I�$�-�-�X]�J^� _�`�a��%�d�3�z�?�&;�AS�T���&+�Z�Z�>�Z��3�1�<��!�Z�J�>�',�|�|�V�|�!� �x�x��Q�/��3�;T�T��A�|�L�V�����+�K�K�
�K�K�|�H���&*�%H�%H��%O�"�\�6��!%���(�/�/��6��
�
�I� I�$�-�-�X]�J^� _�`�a����
�
�P� I�$�-�-�X]�J^� _�`�a�#�\�\�E�C�(��/�3�u�{�{�3C�C�/�*�e�p�)�-�-�d�k�k�3�5�A�A�'��B����4�9�9��C�*B�C�C����)��<����4�9�9��B�*A�B�B����
�4���
)��q�6� ��G��t�y�y������5J�%K�5J��e�e�5J�%K�L�*� ��G�
�q�N��
�G�
�*�*�-�-��4�5���C�
���#�#�%��$�$�&���g
��0F��H��L��( �-��0�0�2�2�"�)�)�!�,�,�3�-��">��V��,$�C�25�e�k�k�2B�(��/�C��D&Lss�=]8�]8�	]=
�]=
�^�!^�A^�#^�^�	_�_�, _
�_
�
(_�._=�0_�_�#_:�9_:c�&�\P!R4\VPRR7VnVPPVP4VP4'gVP4VPFipVP'gVP'dK)\VP\R7Vn\VP\R7VnKk	VPP!4R#)z-
deb822-aware version of updateSourcesList()
zupdateDeb822Sources()Trr*)rvrwrrnr!r2r�r�r�r-r rgr)r*rr4rB)r�rs& r)�updateDeb822Sources�)DistUpgradeController.updateDeb822Sourcess���	�
�
�-�.�"�t�|�|�D�I��������D�3�3�4��(�(�*�*��J�J�L��\�\�E��~�~�~������ ����2H�I�E�K�!�%�,�,�4F�G�E�L�"�	
������r�c�J�\P!R4.p.p.p.p.pVPEFpVP'dVP	VP
4K3VP'dVP	VP
4KbVP'dVP	VP
4K�VP'd0VP'dVP	VP
4K�VP'gK�VP'gK�VP	VP
4EK	\P!RRPV4,4\P!RRPV4,4\P!RRPV4,4\P!RRPV4,4\P!RRPV4,4R#)z$About to apply the following changeszKeep at same version: %srVzUpgradable, but held- back: %sz
Remove: %szInstall: %szUpgrade: %sN)rvrwr�marked_installr7�name�marked_upgrade�
marked_delete�is_installed�
is_upgradable�marked_keeprm)r��inst�up�rm�held�keep�pkgs&      r)�_logChanges�!DistUpgradeController._logChanges4sQ���
�
�<�=���
��
�������:�:�C��!�!�!�4�;�;�s�x�x�#8��#�#�#�R�Y�Y�s�x�x�%8��"�"�"�B�I�I�c�h�h�$7��"�"�"�s�'8�'8�'8�4�;�;�s�x�x�;P��!�!�!�c�o�o�o�t�{�{�3�8�8�7L��	�
�
�0�3�8�8�D�>�A�B��
�
�6����$��G�H��
�
�l�S�X�X�b�\�1�2��
�
�m�c�h�h�t�n�4�5��
�
�m�c�h�h�r�l�2�3r�c���\P!R4VPP4VP'gR#VPP4Vn\VPP4^8�dL\P!R4VPPVP4VP4\VPP4^8�dvVPPp\RR\V44p\RR\V44RPV4,pVPPW#4R#.pVP P#RR	4FKpWPP9gKVPV,P$'gK:VP'V4KM	\P!R
RP\)V44,4VPP+4Vn\P!RRP\)VP,44,4R
#)�doPostInitialUpdateFz-packages in reqReinstall state, trying to fixzPackage in inconsistent statezPackages in inconsistent statez�The package '%s' is in an inconsistent state and needs to be reinstalled, but no archive can be found for it. Please reinstall the package manually or remove it from the system.z�The packages '%s' are in an inconsistent state and need to be reinstalled, but no archive can be found for them. Please reinstall the packages manually or remove them from the system.z, rc�MetaPkgszMetaPkgs: %srV�Obsolete: %sT)rvrwr��PostInitialUpdater�foreign_packagesr�r&�req_reinstall_pkgsr��fix_req_reinstr|r�rrmr�r�r�r�r7rg�_getObsoletesPkgs�
obsolete_pkgs)r��	reqreinst�headerr��	meta_pkgsr�s&     r)r��)DistUpgradeController.doPostInitialUpdateHs���	�
�
�+�,����%�%�'��z�z�z��
.2�Z�Z�-H�-H�-J��*��t�z�z�,�,�-��1��O�O�K�L��J�J�%�%�d�j�j�1��N�N���t�z�z�,�,�-��1��
�
�5�5�I��=�>�!�)�n�.�F�� ?�
 A�
 #�9�~�
/�26���9�1E�
F�G�
�J�J���V�-���	��;�;�&�&�x�
�;�C��j�j� �T�Z�Z��_�%A�%A�%A�� � ��%�<�	�
�
�n�s�x�x��y�0A�'B�B�C�"�Z�Z�9�9�;����
�
�n�s�x�x��t�7I�7I�0J�'K�K�L�r�c��\P!RV,4VPPP	4VP
P
4p^pVeTpMVPPRR4pRpWE8dVPPV4R#\P!R	4V'd7VP
P\R
4\R4RV,4R
# \\3d?p\T4p\P!RT:RT:R24T^,
pRp?K�Rp?ii;i)z"running doUpdate() (showErrors=%s)Nr^r_r-z(IOError/SystemError in cache.update(): 'z'. Retrying (currentRetry: �)TzdoUpdate() failed completelyzError during updatez�A problem occurred during the update. This is usually some sort of network problem, please check your network connection and retry.�%sF)rvrwr�_list�read_main_listr|�getAcquireProgressr�r��updater�IOErrorr�r�r~)r��
showErrors�forceRetries�progress�currentRetryr��	error_msgr�s&&&     r)�doUpdate�DistUpgradeController.doUpdatews���
�
�:�Z�G�H��
�
���'�'�)��:�:�0�0�2�����#�#�J����+�+�I�l�C�J��	��'�
��
�
�!�!�(�+���
�
�4�5���J�J���Q�4�5�� 7�8�:>�	�9I�	
K�
�� ��)�
���F�	��
�
�lm�nz�{�|���!����	
�s�
C=�=E�3E�Ec�a�\PPR4'g\P!R4R#.ROp\
;QJdV3RlV4F'gKRM	RM!V3RlV44'g\P!R4R#Rp\
R4;_uu_4pVFkpVP4pVP4wrVrxr�TR8wdK1RpR
TPR49gKK\P!RT4RRR4R#	RRR4V'g1SPP\R4\R44R#SPP\R4\R44R# \d,p\P!RT:R	T:R
24Rp?EKRp?ii;i +'giL�;i)z<check that /boot/efi is a mounted partition on an EFI systemz/sys/firmware/efizNot an UEFI systemTc3�<"�TF8qSP9;'dSPV,Px�K:	R#5ir�)rr�)r��blr�s& �r)r��6DistUpgradeController._checkBootEfi.<locals>.<genexpr>�s1����Z�k�����#�C�C��
�
�2��(C�(C�C�k�s
�A�&AFz'UEFI system, but no UEFI grub installedz/proc/mountszline 'z"' in /proc/mounts not understood (r�Nz	/boot/efi�rw�,zFound writable ESP %sz%EFI System Partition (ESP) not usablezxYour EFI System Partition (ESP) is not mounted at /boot/efi. Please ensure that it is properly configured and try again.zzThe EFI System Partition (ESP) mounted at /boot/efi is not writable. Please mount this partition read-write and try again.)zshim-signedzgrub-efi-amd64z
grub-efi-ia32zgrub-efi-armzgrub-efi-arm64�
sicherboot)
rjrlr�rvrwrsr8r>r�r%r|r�r~)r��bootloaders�mounted�mounts�line�what�where�fsror'�br�sf           r)�
_checkBootEfi�#DistUpgradeController._checkBootEfi�sv����w�w�~�~�1�2�2��M�M�.�/��y���s�Z�k�Z�s�s�s�Z�k�Z�Z�Z��M�M�C�D����
�.�
!�
!�V����Z�Z�\���7;�z�z�|�4�T�"�q�
�K�'�����7�=�=��-�-��M�M�"9�4�@��!"�
!��"�$��J�J���Q�F�G�� J�K�
L��	
�J�J���Q�F�G�� J�K�
L���/"���M�M�UY�[\�"]�^�����"�
!�sB�0G�F�G�>G� G�G	�G	�<G�G	�G�G	c
��\R4p\R4p\R4p\R4p\R4p\R4p\R4pVPPRR	R
4'd\P!R4R#VP4pVPPV4R# \Ed
p	\PPR
4p
RpY�RTRTRTRTRT/pT	PF�p
TR8wd
TR,
pT
PT9dLY�PT
PT
PT
PY�P,R7,
pKoY�PT
PT
PT
PRR7,
pK�	TP P#Y4Rp	?	R
#Rp	?	ii;i)z9this checks if we have enough free space on /var and /usrzNot enough free disk spacez�The upgrade has aborted. The upgrade needs a total of {str_total} free space on disk '{str_dir}'. Please free at least an additional {str_needed} of disk space on '{str_dir}'. {str_remedy}zIRemove temporary packages of former installations using 'sudo apt clean'.z�You can remove old kernels using 'sudo apt autoremove' and you could also set COMPRESS=xz in /etc/initramfs-tools/initramfs.conf to reduce the size of your initramfs.zbEmpty your trash and remove temporary packages of former installations using 'sudo apt-get clean'.z!Reboot to clean up files in /tmp.r-�	FreeSpace�	SkipCheckFz,free space check skipped via config overrideT�Dir::Cache::archivesz/varz/boot�/z/tmpz/usrrV)�	str_total�str_dir�
str_needed�
str_remedyN)r~r�rtrvr�� _is_apt_btrfs_snapshot_supportedr�checkFreeSpacerr�r��free_space_required_list�dirr�
size_total�size_neededr|r�)r��err_sum�err_msg�remedy_archivedir�remedy_boot�remedy_root�
remedy_tmp�
remedy_usr�with_snapshotsr��
archivedir�err_long�remedy�reqs&             r)�_checkFreeSpace�%DistUpgradeController._checkFreeSpace�s����0�1���9�:��
�F�G���=�>��
�0�1���:�;�
��r�U�
��;�;�%�%�k�+�e�D�D��O�O�J�K���>�>�@��	��J�J�%�%�n�5�4��3'�	�!���0�0�1G�H�J��H� ��/��{��;��j��j�*�F��1�1���r�>���_�X��7�7�f�$�������QT�QX�QX�:=�/�/�:@���/�!/�!K�K�H�������QT�QX�QX�:=�/�/�:<�!/�!>�>�H�2�
�J�J���W�/���1	�s�B7�7G�DG
�
Gc���VPP\R44VPP	VPVP
VP4'gR#VP
'd8VPPVPP4'gR#VPP4pVPP4VP4VPP4VP4'gR#VP4'gR#VPP4VPP4V#)�Calculating the changesF)r|r}r~r�distUpgraderr��installTasks�installedTasks�get_changesr�r�rr�)r��changess& r)�calcDistUpgrade�%DistUpgradeController.calcDistUpgrades���
�
����";� <�=��z�z�%�%�d�j�j�$�/�/�4�CW�CW�X�X���?�?�?��:�:�*�*�4�:�:�+D�+D�E�E���*�*�(�(�*���
�
� � �"�	
�����
�
� � �"��#�#�%�%���!�!�#�#���
�
� � �"�	
�
�
� � �"��r�c��VP4pV'gR#VPP\R4VVPP
4pV#)Fz!Do you want to start the upgrade?)rr|�confirmChangesr~r�required_download)r�rr�s&  r)�askDistUpgrade�$DistUpgradeController.askDistUpgrade sL���&�&�(�����j�j�'�'��*M�(N�(/�(,�
�
�(D�(D�F���
r�c��\P!4pVPVP4;'d \P
P
R4#)z2/var/snap/canonical-livepatch/common/machine-token)r�r��is_ltsr�rjrl�isfile)r�r�s& r)�_isLivepatchEnabled�)DistUpgradeController._isLivepatchEnabled,s9��
�
)�
)�
+���y�y����'�p�p�B�G�G�N�N�;o�,p�pr�c�Za�\P!4pSP4'd"VPSP4'dR#\V3RlVP
R44SP4pSPPR\R4V,4pV#)Tc3�t<"�TF-qPSP8XgKVPx�K/	R#5ir�)�seriesr�r�)r��rr�s& �r)r��5DistUpgradeController.askLivepatch.<locals>.<genexpr>6s&����[�+?�a�8�8�t�{�{�CZ�	��	�	�+?�s�8�8�objectNzdLivepatch security updates are not available for Ubuntu %s. If you upgrade, Livepatch will turn off.)
r�r�rrr��next�get_allr|�askCancelContinueQuestionr~)r�r�r�r�sf   r)�askLivepatch�"DistUpgradeController.askLivepatch0s����
�
)�
)�
+���'�'�)�)�R�Y�Y�t�{�{�-C�-C���[�2�:�:�h�+?�[�]a�]h�]h�i���j�j�2�2�4�
�9�
:�<C�
D�E���
r�c���^pVPP4pVPPRRR4pV'dd\P
!4^,P
R4^,pTPP4PT:RT:24VPPRR	4pR
pRpW8do\P!VPP4p\P !V4VnVPP%VP"V4R#V'd0VPP1\3R4\3R44ML\P.!R4VPP/\3R4\3R4RV,4VP54R# \P!R4RpELv;i \&PP(d&p	\P*!R4RpT	pRp	?	K�Rp	?	i\,d7p	\P.!R
T	:RT:R24T^,
pT	pRp	?	EK�Rp	?	ii;i)rrc�SlideshowUrlNr~�getdefaultlocale�enz#locale=r^r_Fz
user canceledT�IOError in cache.commit(): '�'. Retrying (currentTry: r�zUpgrade canceledzwThe upgrade will cancel now and the original system state will be restored. You can resume the upgrade at a later time.�+giving up on fetching after maximum retries�Could not download the upgradesz�The upgrade has aborted. Please check your Internet connection or installation media and try again. All files downloaded so far have been kept.r�)r|r�r�rt�localer(r�rv�	exception�getHtmlViewr8r�r��PackageManagerr�	_depcache�Acquirer��_fetch_archives�apt�FetchCancelledException�infor�r�r�r~r�)
r�r��	fprogress�url�langr��
user_canceledr/�pmr�s
&         r)�doDistUpgradeFetching�+DistUpgradeController.doDistUpgradeFetching=s������J�J�1�1�3�	��k�k�(�(��.��F���
��.�.�0��3�9�9�#�>�q�A��
�J�J�"�"�$�)�)�C��*F�G��[�[�'�'�	�,�?�
��
�
�	��'�
��+�+�D�J�J�,@�,@�A��&���y�9����
�
�*�*�4�<�<��<����J�J�"�"�1�%7�#8�#$�&-�$.�
/�
�M�M�G�H��J�J���Q�@�A�� C�D�"�I�-�
/�	
�
�
���w
��!�!�"4�5����8�9�9�4�4�
����_�-� $�
��	����
��
�
�^_�`l�m�n���!���	���
�s7�2G�A+G.�G+�.I1�
H-�-I1�:I1�;*I,�,I1c���^RIpTP4pTP4p\P!RT,4T# \dR#i;i \P
!R4R#;i)z&check if apt-btrfs-snapshot is usable Nzfailed to check btrfs supportFz!apt btrfs snapshots supported: %s)�apt_btrfs_snapshot�ImportError�AptBtrfsSnapshot�snapshots_supportedrvr/rw)r�r@�	apt_btrfsr�s&   r)r��6DistUpgradeController._is_apt_btrfs_snapshot_supported�sp��	�%�	�*�;�;�=�I��/�/�1�C�	�
�
�9�C�?�@��
���	��	��
	����=�>��s�A� A�A�A�A3c���VP4'gR#^RIpVP4pRVP,pVP	V4p\
P!RV:RV:R24R#)z1create btrfs snapshot (if btrfs layout is there) Nzrelease-upgrade-%s-zcreating snapshot 'z' (success=r�)r�r@rBr��create_btrfs_root_snapshotrvr7)r�r@rD�prefixr�s&    r)� _maybe_create_apt_btrfs_snapshot�6DistUpgradeController._maybe_create_apt_btrfs_snapshot�sT���4�4�6�6��!�&�7�7�9�	�&����4���2�2�6�:�����f�c�J�Kr�c
��/p\PR,.VR&R\PR&\PR,.VR&\P!RR7;_uu_4pVP\PR&RFJp\PPV4WR,&\PP
V4KL	VP4VF1pW,F"p\PPW44K$	K3	uuRRR4# TF1pY,F"p\PPY44K$	K3	i;i +'giR#;i)zdir::bin::dpkgz	/bin/truezDir::State::extended_states�apt_extended_states_)rHz::N)zdpkg::pre-invokezdpkg::pre-install-pkgszdpkg::post-invokezdpkg::post-install-pkgs)	r�r��tempfile�NamedTemporaryFiler��
value_list�clear�
doDistUpgrader�)r��backupsr@�lst�items&    r)�doDistUpgradeSimulation�-DistUpgradeController.doDistUpgradeSimulation�s&����%,�^�^�4D�%E�$F�� �!�+6����'�(�
3:�.�.�A^�2_�1`��-�.�
�
(�
(�0F�
G�
G�1�<=�F�F�G�N�N�8�9�s��&-�n�n�&?�&?��&D��d�
�#����$�$�S�)�t�
6��)�)�+�"�C� '�������*�*�3�5�!-�#�H�
G��#�C� '�������*�*�3�5�!-�#��H�
G�
G�s%�+A.E'�D+�)7E'�+9E$�$E'�'E8	c��^pVPP4pVPPVP4pVPPRR4pVP'g+VPP4VP4RpRpW8d<VPPW#4p\P!RV,4R#\P!R4VPP\-R4\-R4RV,4VP/4R# \Ed+p\P!RT,4Tp\P P#R4'Ed\%R4;_uu_4pTP'4pRRR4M +'giM;i\P!RT,4R	R
.p	T	F�p
\)T4P+T
4'gK%\P!R4\-R4pTR
\)T4,,
pT\-R4,
pTPP\-R4T4TP/4K�	\-R4pTP'g*\14'gT\-RT,4,
pTPP\-R4T4.ROp\P2P5R4R8XdTP7R4TPP94P;T4Rp?R#Rp?i\<d7p\P!RT:RT:R24T^,
pTpRp?EKRp?i\>d�p\P@!R4TpTPB^8Xdl\-R4pTR
\)T4,,
pT\-R4,
pTPP\-R4T4TP/4Rp?R#Rp?ii;i)rr^r_FNzcache.commit() returned %sz#SystemError from cache.commit(): %sz./var/run/ubuntu-release-upgrader-apt-exceptionzfound exception: '%s'z;E:Internal Error, Could not perform immediate configurationz E:Couldn't configure pre-depend z-detected preconfigure error, restorting state�Error during commitz
'%s'
�Restoring original system statezCould not install the upgradeszrThe upgrade has aborted. Your system could be in an unusable state. A recovery will run now (dpkg --configure -a).z�

Please report this bug in a browser at http://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+filebug and attach the files in /var/log/dist-upgrade/ to the bug report.
%sr�r�r�r*r+r�zcache.commit()Tr,r-zdThe upgrade has aborted. Please check your Internet connection or installation media and try again. r�r�)"r|r��getInstallProgressrr�r�r�r��StartUpgraderI�commitrvrwrr�rjrlr�r8r;r��
startswithr~r�rr�rr7r�r�r�r�r/�errno)
r�r�r8�	iprogressr�r�r/r�r@�pre_configure_errors�
preconf_error�msgr�s
&            r)rQ�#DistUpgradeController.doDistUpgrade�se�����J�J�1�1�3�	��J�J�1�1�$�*�*�=�	��[�[�'�'�	�,�?�
��#�#�#��K�K�$�$�&��1�1�3����	��'�A
!��j�j�'�'�	�<���
�
�:�S�@�A�B�	�
�
�C�D��
�
����<�=��@�A� �)�+�		-�	
�
�
���U�,
��
�
�C�a�G�H��	��7�7�>�>�"R�S�S��N�O�O�ST��F�F�H��P�O�O�O���M�M�"9�A�"=�>�V�:�,<�(�*>�
��q�6�,�,�]�;�;�#�M�M�*Y�Z�#$�$9�":�C��:��A��#6�6�C��1�%F�#G�G�C� �J�J�,�,�Q�/O�-P�RU�V� �J�J�L�*>��>�?���+�+�+�%�<�<��q�"&�)*�	"*� +�+��
�
�
� � ��#C�!D�c�J�:���:�:�>�>�"3�4�8H�H��J�J�0�1��
�
�&�&�(�-�-�c�2����
��
�
�^_�`l�m�n���!���	����
!��!�!�"2�3��	��7�7�b�=��1�2�C��:��A��.�.�C��1�>�?�?�C��J�J�$�$�Q�'G�%H�#�N��J�J�L����
!�s^�%8D=�=Q�	AM.�!F;�2	M.�;G�AM.�EM.�.Q�;Q�<*N-�-Q�:Q�;BQ�Qc
��\4PR4\PP	\
PPR44pVPPFqp\PP	\PPVP44V8XgKP\P!VP4Ks	VP4VPP!4VP"P%\&P(4VP"P+\-R44VP.P14p\2P4!RRP7\9V44,4VPP;RR4F2pWC9gK\2P<!RV,4\?4pM	VPPARRR	4'g\2P4!R
4R	#VPP;RR4FopW@P.9gKVP.V,PB'gK:VPDPGVPP;VR44Kq	\2P4!R
VPD,4W0PH,
pV\?VPD4,pVP.PK4p\2P4!RRP7V4,4V\?V4,pVPPARRR	4'g!\2P4!R4\?4p\2P4!RV,4\2P4!R4VP"PM4p\?4p\OV4FAp	VP.PQW�PR4'dK0VPUV	4KC	VP.PW4;_uu_4\YV4F�wr�VP[V
\]\_V44,R,^,4W�PD9gKOVP"Pa4VP.PcW�VPDR	R7'g\2P4!RV	4K�VPeV	4K�	\YV4F�wr�VP[V
\]\_V44,R,^,^2,4VP"Pa4VP.PcW�VPDRR7'g\2P4!RV	4K�VPeV	4K�	VP.Pg4\hPj!VP.4pVPm4VP.Pq4VP.Pr^8�Ed\2P4!R4VP.Pu4\?4pVP.PW4;_uu_4\YV4F�wr�VP[V
\]\_V44,R,4VP"Pa4VP.PcW�VPDR	R7'g\2P4!RV	4K�VPeV	4K�	RRR4VFQp	W�P.9gKVP.V	,Pv'dK:\2P4!RV	4KS	RRR4\2P4!R4VPy4VP.P{4p\2P4!RRP7VUu.uFqDP|NK	up4,4\-R4p
\-R4\-R4.p\_V4^8�d�VP"PW�^VR4'd]VP"P�4pVP"P�VP.4pVP.P�VV4VP�4VPP�4VP�'gVP�4R	# \dE	K5i;i \ndELVi;i +'giEL;i +'giEL�;iuupi \�\�3d_p\2P<!RT,4TP"P=\-R4\-R 4R!T,4Rp?EL
Rp?ii;i)"�POSTUPGRADEr�zSearching for obsolete softwarer�rVrcryzXthe BaseMetaPkg '%s' is in the obsolete list, something is wrong, ignoring the obsoletes�RemoveObsoletesTzSkipping obsolete Removalr�rdzforced_obsoletes: %szUnused dependencies: %sz0Skipping RemoveObsoletes as stated in the configzremove_candidates: '%s'z Start checking for obsolete pkgsgY@)�auto_fixz:'%s' scheduled for remove but not safe to remove, skippingFzuresolve_by_keep() failed to resolve conflicts from removing obsolete packages, falling back to slower implementation.Nz*obsolete package '%s' could not be removedz!Finish checking for obsolete pkgsz1The following packages are marked for removal: %szRemove obsolete packages?�_Keep�_Removez,cache.commit() in doPostUpgrade() failed: %srXz[A problem occurred during the clean-up. Please see the below message for more information. r�)I�
get_telemetry�	add_stagerjrlr�r�r�r�r�r��abspath�destfile�unlinkr�r�r��PostUpgrader|�setStepr�CLEANUPr}r~rr�rvrwrmrgr�r�r�rtr�r��extendr��_getUnusedDependenciesr�r8�isRemoveCandidater�rA�actiongroup�	enumerater��floatr&r��tryMarkObsoleteForRemovalr@�_startAptResolverLogr5�ProblemResolver�resolve_by_keep�	Exception�_stopAptResolverLog�broken_countrPr��doner
r�rr�rZr\rr�r`�PostCleanupr��runPostInstallScripts)r�rrT�now_obsoleter��remove_candidates�unused_dependenciesr��scheduled_remover~rB�prrr��actionsr8r_r�s&                 r)�
doPostUpgrade�#DistUpgradeController.doPostUpgradesz����!�!�-�0��W�W�_�_��N�N�#�#�$:�;�=�
��L�L�&�&�D��w�w���r�w�w���t�}�}�=�>�*�L���I�I�d�m�m�,�'�	
����	
�����!��
�
���4�<�<�(��
�
����"C� D�E��z�z�3�3�5���
�
�n�s�x�x��|�0D�'E�E�F�
�;�;�&�&�x��?�C��"��
�
�x�{~�~��"�u���	@��{�{�)�)�(�3D�d�K�K��M�M�5�6���;�;�&�&�x�
�;�C��j�j� �T�Z�Z��_�%A�%A�%A��%�%�,�,�T�[�[�-@�-@��EV�-W�X�<�	�
�
�,�t�/D�/D�D�E�)�+=�+=�=���S��!6�!6�7�7��#�j�j�?�?�A���
�
�/����:M�1N�N�O��S�!4�5�5���{�{�)�)�(�3D�d�K�K��M�M�L�M� #����
�
�/�2C�C�D��
�
�8�9��:�:�0�0�2���5���-�.�G��:�:�/�/��9[�9[�\�\�!�(�(��1�/��Z�Z�
#�
#�
%�
%� )�*;� <�������5��->�)?�#@�!@�%� G�!� K�L��3�3�3��J�J�,�,�.��:�:�?�?��\`�\q�\q�}A�?�B�B��
�
�&b�dk�l�(�,�,�W�5�!=�!*�*;� <�������5��->�)?�#@�!@�%� G�!� K�b� P�Q��
�
�(�(�*��z�z�;�;�G�X\�Xm�Xm�x}�;�~�~��M�M�"^�`g�h�$�(�(��1�
!=�
�J�J�+�+�-��$�$�T�Z�Z�0�B�
��"�"�$�
�J�J�*�*�,��z�z�&�&��*��
�
�V�W��
�
� � �"�#&�5� ��Z�Z�+�+�-�-�(1�2C�(D��� ����5��5F�1G�+H�)H�%�(O�P��
�
�0�0�2�#�z�z�C�C�G�`d�`u�`u�AE�C� F� F�#�M�M�*f�ho�p�,�0�0��9�
)E�.�,���z�z�)��
�
�7�+�9�9�9��M�M�"N�PW�X�,�Y&�f	�
�
�9�:��
�
���*�*�(�(�*���
�
�I�C�H�H�jq�Ur�jq�cf�V^�V^�jq�Ur�Ls�s�t��/�0���W�:�q��|�,��
��L�1���J�J�%�%�g��7�E�J�J��
�
�5�5�7�I��
�
�5�5�d�j�j�A�I�
-��
�
�!�!�)�I�6�	
���!�	
�����!��#�#�#��&�&�(���]�����h�
��
��.�-�-��E&�
%�
%��pVs�� ��)�
-��
�
�L�q�P�Q��
�
� � ��#8�!9�!"�$3�"4�$(�!�8�	-�-��
-�s��= f�<Ag�E5g�
f%�Bg�/B8f7	�'g� g�+g�.g�(g$�f"�!f"�%f4�0g�3f4�4g�7g
�	g�g	�$i�5Ai�ic	���VP'd5VPP4VPP4VPP	RR4F�p\
PPV4'g \P!RV,4KG\P!RV,4\V4VPP4PV.RR7K�	VP'dVPP#4R
#R
# \d,p\P !RT:RT:R	24R
p?EKR
p?ii;i)z�
scripts that are run in any case after the distupgrade finished
whether or not it was successful

Cache lock is released during script runs in the event that the
PostInstallScripts require apt or dpkg changes.
rc�PostInstallScriptsz!PostInstallScript: '%s' not foundzRunning PostInstallScript: '%s'T)�hiddenz!got error from PostInstallScript z (r�N)rr�r�r�r�rjrlr�rvr�rwrr|r�r�r|r��get_lock)r��scriptr�s&  r)r��+DistUpgradeController.runPostInstallScripts�s����:�:�:��J�J�#�#�%��J�J�'�'�)��k�k�)�)�(�3G�H�F��7�7�>�>�&�)�)���� C�f� L�M���M�M�;�f�D�E�
X�"�6�*��
�
�&�&�(�-�-�v�h�t�-�D�I��:�:�:��J�J���!����
X��
�
�F�TU�V�W�W��
X�s�7D3�3E)�>E$�$E)c��\P!R4\VR4'dFVPP	VP
4VP
4VP4VPP\R44VPP4VP4\P!^4R#)z1abort the upgrade, cleanup (as much as possible) zabort calledr!rYN)rvrw�hasattrr!�restore_backupr�r\r`r|r}r~r�r�r�r�rus&r)r��DistUpgradeController.abort�s����
�
�n�%��4��#�#��L�L�'�'��(?�(?�@��'�'�)��#�#�%�	
�
�
����"C� D�E��
�
������������r�c��\P!V4F�p\P!RV,4VF�pV^,pV^,pV^,pW@P9d"\P
!RV,4R#VPV,p\
VPRR4pVR8wgK�\P!W�V4R8XgK�R#	K�	\P
!RV,4R#)z*check if a given depends can be satisfied zchecking: '%s' z_checkDep: '%s' not in cacheFr�NTzdepends '%s' is not satisfied)	r��
parse_dependsrvrwrr��getattr�	installed�	check_dep)	r��depstr�or_group�dep�depname�ver�operr��instvers	&&       r)�	_checkDep�DistUpgradeController._checkDep�s����-�-�f�5�H��M�M�+�h�6�7����a�&���!�f���1�v���*�*�,��M�M�"@�7�"J�K� ��z�z�'�*��!�$�.�.�)�T�B���t�O��%�%�g�3�7�4�?�� �6�	�
�
�5��>�?�r�c��\P!R4RpVPPRR4pVP	VPPVP
PPR44VF�p\P!RV4WPV4,pV'dK;VP
P\R4\RV,44\P!^4K�	V#)zcheck if depends are satisfied zcheckViewDepends()Tr��Dependsz
depends: '%s'z!Required depends is not installedz/The required dependency '%s' is not installed. )
rvrwr�r�rrr|rzr{r�r�r~r�r�)r�r��dependsr�s&   r)r�&DistUpgradeController.checkViewDepends�s����
�
�*�+����+�+�%�%�f�Y�7�����t�{�{�*�*�4�:�:�+?�+?�+H�+H�+4�6�	7��C��M�M�/�3�/��>�>�#�&�&�C��3��
�
� � ��#F�!G�!"�$1�36�$7�"8�9��������
r�c��VPR4p\V4wr4rVpRV9dVPR4^,pV:RV:V:2pVPFwpVPR4p\	W�4'dR#VPR4^,p	VPV	4'gKY\P!RV,4R#	R#)zcheck if uri is a known mirror r��@r�Tz//z)found apt-cacher/apt-torrent style uri %sF)�rstripr
r�r�rr�rvrw)
r�r�raw_uri�scheme�netlocrl�query�fragment�mirror�mirror_host_parts
&&        r)r5�DistUpgradeController.isMirror�s����*�*�S�/��08��0A�-���X��&�=��\�\�#�&�q�)�F�#�V�T�2���(�(�F��]�]�3�'�F���%�%�� &�|�|�D�1�!�4���|�|�,�-�-��
�
�I�C�O�P��)�r�c��VPR4pVPF(pVPR4p\W!4'gK'R#	R#)z.check if uri is an allowed third-party mirror r�TF)r�r�r)r�rr�s&& r)r��(DistUpgradeController.isThirdPartyMirrors@���j�j��o���+�+�F��]�]�3�'�F���%�%��,�r�c�\�VPP\R44VPP\P
4VP
4'g�\P!R4\PPR4'dHVPP\R4\R44\P!RR.4MDVPP\R4\R44\P!R4VP4VP4'gVP4VP!R	^R
7VP#4VP%4'gVP4VPP\P&4VPP\R44VP)4^8:dVP+4VP-4'gVP4VP!4'gVP4VPP\R44VP#RR
7VP.P14VnVP54VP6'd VP.P94VnVP:P=4VP>PARR4EF{pWP.9g5VP.PCVP.V,4'dKH\P!RV,4WP.9d\P!RV,4MOVP.PCVP.V,4'g\P!RV,4VPP\R4\R4V,4\PPR4'd\P!RR.4M\P!R4VP4EK~	VPP\R44VPE4'gVP4VPG4VPP\PH4VPP\R44VPK4'gVP4VPP\PL4VPP\R44VPO4'g?VPP\R4\R44VP4TP#RR
7TP.P94TnTP:P=4TPP\R44TPS4'gTP4TPP\PL4TPP\R44TPU4'gUTPW4TPPY\R4\R44\ZP\!^4TP_4\PPR4'd\P`!R4TPP\Pb4TPP\R44\e4Pg4\i4'g�TPk4'dfTPPm4\oRRR R!7;_uu_4pTPqR"4R#R#R#4TPPs4M8TPPu4'd\P!.R$O4\ZP\!^4R# \PdTP4EL�i;i +'giL�;i)%zChecking package managerzself.prepare() failedz/usr/bin/apport-bugzPreparing the upgrade failedzXPreparing the system for the upgrade failed so a bug reporting process is being started.z
apport-bugzubuntu-release-upgrader-corez�Preparing the system for the upgrade failed. To report a bug install apport and then execute 'apport-bug ubuntu-release-upgrader'.z.Missing apport-bug, bug report not autocreatedF)r�r�zUpdating repository informationT)r�rcryz@No '%s' available/downloadable after sources.list rewrite+updatez'%s' was not in the cachez'%s' was not downloadablezInvalid package informationa�After updating your package information, the essential package '%s' could not be located. This may be because you have no official mirrors listed in your software sources, or because of excessive load on the mirror you are using. See /etc/apt/sources.list for the current list of configured software sources.
In the case of an overloaded mirror, you may want to try the upgrade again later.r	�Fetching�	UpgradingzUpgrade infeasiblezQThe upgrade could not be completed, there were errors during the upgrade process.�Upgrade complete�KThe upgrade has completed but there were errors during the upgrade process.z:/var/lib/ubuntu-release-upgrader/release-upgrade-availablezSystem upgrade is complete.z/run/launcher-commandzw+zutf-8)�encodingzaction: reboot
N�z/usr/bin/systemctl�rebootz--check-inhibitors=no);r|r}r~rpr�PREPAREr
rvr�rjrlr�r��Popenr�r$r�r�r��MODIFY_SOURCESr%rTr�rr�r��_warn_about_foreign_packagesrrr��+ensure_recommends_are_installed_on_desktopsr�r��anyVersionDownloadabler�_inhibitIdle�FETCHr=�INSTALLrU�KeyboardInterruptrrQr�r�r�r�r�rn�REBOOTrjrr	�_inside_WSL�adviseExitOtherWSLr8r?�adviseRestartWSL�confirmRestart)r�r�r@s&  r)�fullUpgrade�!DistUpgradeController.fullUpgrades<���
�
����"<� =�>��
�
���4�<�<�(��|�|�~�~��M�M�1�2��w�w�~�~�3�4�4��
�
� � ��#A�!B�!"�$4�"5�6�� � �,�0N�!O�P��
�
� � ��#A�!B�!"�$?�"@�A�
�
�
�,�-��J�J�L�� � �"�"��J�J�L�	
�
�
��Q�
�7������'�'�)�)��J�J�L�c	��J�J���t�2�2�3��J�J�#�#�A�&G�$H�I�
�$�$�&�!�+��+�+�-��+�+�-�-��
�
���=�=�?�?��
�
��
�J�J�#�#�A�&@�$A�B�
�N�N��N�=�
37�*�*�2M�2M�2O�D�/��-�-�/�����"&�*�*�"=�"=�"?����K�K�C�C�E�
�{�{�*�*�8�N�C���z�z�)��
�
�9�9�$�*�*�S�/�J�J�
�M�M�"d�gj�"j�k��*�*�,��
�
�&A�C�&G�H�!�Z�Z�>�>�t�z�z�#��O�O��
�
�&A�C�&G�H��J�J�$�$�Q�'D�%E�%&�(R�&S�*-�&-�
.��w�w�~�~�&;�<�<�"�(�(�,�8V�)W�X��
�
�'4�5��J�J�L�?D�F
�J�J�#�#�A�&?�$@�A��&�&�(�(��
�
������
�J�J���t�z�z�*��J�J�#�#�A�j�M�2��-�-�/�/��
�
��
�J�J���t�|�|�,��J�J�#�#�A�k�N�3��/�/�1�1��
�
� � ��#7�!8�!"�$.�"/�0��
�
��	
���D��9��*�*�5�5�7������?�?�A��
�
����";� <�=��#�#�%�%��J�J�L�	
�
�
���4�<�<�(��
�
����+��/��!�!�#�#��&�&�(��J�J�"�"�1�%7�#8�#$�&0�$1�
2�

�H�H�Q�K�	
�����7�7�>�>�V�W�W��I�I�R�S�	
�
�
���4�;�;�'��
�
����"?� @�A������������!�!��
�
�-�-�/��1�4�'�J�J�a��G�G�.�/�K��
�
�+�+�-����*�*�,�,�� � �!Z�[��H�H�Q�K���_!�	��J�J�L�	��RK�J�s:�*Bc9�2%c9�Dc9�<A<c9�9H)c9�4d�9d�d�d+	c�V�VPP4VP4#r�)r|r�r�rus&r)�run�DistUpgradeController.run�s!���
�
� � �"����!�!r�c�(�VPP\P4VPP	\P
4VPP	\P4RVnVP4VP4'gR#VP4'gR#VPP\P4VPP\R44VP4'gR#VPP\P4VPP\R44VP!4'g1VPP#\R4\R44R#VP%4'g1VPP#\R4\R44R#\&P(P+\,4'd;VPP/4'd\0P2!.RO4R#VPP#\R4\R44R#)	z+partial upgrade mode, useful for repairing TFr�r�r�r�z"The partial upgrade was completed.r�)r|rprr��hideStepr�r�r�r
r�rr�r}r~r=r�rQr�r�rjrlr��REBOOT_REQUIRED_FILEr�r�r�rus&r)�doPartialUpgrade�&DistUpgradeController.doPartialUpgrade�s����
�
���4�<�<�(��
�
���D�/�/�0��
�
���D�K�K�(�#��������'�'�)�)���"�"�$�$���
�
���4�:�:�&��
�
����*�
�.��)�)�+�+���
�
���4�<�<�(��
�
����+��/��!�!�#�#��J�J�"�"�1�%7�#8�#$�&0�$1�
2���!�!�#�#��J�J�"�"�1�%7�#8�#$�&0�$1�
2��
�7�7�>�>�.�/�/��z�z�(�(�*�*�� � �!Z�[��
�J�J�"�"�1�%7�#8�#$�%I�#J�
L�r�c��\P!R4^RIp\P!RR4pVPRV4pV\PR&VPRR4p\P!4^8Xd+VP4;pe\P!V4VP4VnVPPRR4pVPVRR7pVPRR	4\R
4p\R4p	X\PR&\P!\P!44VP$P'W�4R# \ d�p
XR9dCRp
?
X\PR&\P!\P!44R#\P!R\#T
4,4\R
4p\R4p	Rp
?
L�Rp
?
ii;i X\PR&\P!\P!44i;i)zinhibit screensaverN�DBUS_SESSION_BUS_ADDRESSr-�XDG_SESSION_TYPEzorg.freedesktop.ScreenSaverz/org/freedesktop/ScreenSaver)�dbus_interfacerKzUpgrading UbuntuzLock screen disabledzOYour lock screen has been disabled and will remain disabled during the upgrade.zfailed to inhibit screensaver: zUnable to disable lock screenz�It is highly recommended that the lock screen be disabled during the upgrade to prevent later issues. Please ensure your screen lock is disabled before continuing.)r-�tty)rvrw�dbusrjrs�get_user_envr��getuid�get_user_uid�seteuid�
SessionBusr��
get_object�	Interface�Inhibitr~r|r�r|r�)r�r��bus_address_copy�bus_address_user�xdg_session_type�uid�proxy�screensaverr��messager�s&          r)r��"DistUpgradeController._inhibitIdles����
�
�+�,�/	$�� "�y�y�)C�R�H��#�0�0�*� � ��6F�B�J�J�1�2�#�0�0�1C�R�H���	�	��q� ��)�)�+�+��8��
�
�3��!%��� 1�D���%�%�0�0�1N�1O�Q�E��.�.��?\�.�]�K���� 9�;M�N��.�/�G��7�8�G�6F�B�J�J�1�2��J�J�r�y�y�{�#��
�
���w�0���
	7��;�.��6F�B�J�J�1�2��J�J�r�y�y�{�#�
�M�M�;�c�!�f�D�E��7�8�G��6�7�G��
	7��6F�B�J�J�1�2��J�J�r�y�y�{�#�s6�DE3�3H
�>H�H�<H�H�H
�
H�>Ic�@�\PPR4#)z#/proc/sys/fs/binfmt_misc/WSLInterop)rjrlr�rus&r)r��!DistUpgradeController._inside_WSL=s���w�w�~�~�C�D�Dr�c���\P!RPRPVP444\P!RPRPVP
444VP
'gR#\
R4p\
R4pVP
P4FYwr4VfVPPV4pVeVPpM\
R4pV\
VR
RVR	24,
pK[	V\
R
4,
pVPPW4'dR#VP4R#)z&Foreign (before rewriting sources): {}rVz%Foreign (after rewriting sources): {}NzForeign Packages Installedz<The following unofficial packages are currently installed:

zunknown originz.<25zInstalled from: r0z�

It is recommended to install supported versions from the Ubuntu archive, and try the upgrade again.

Do you want to continue the upgrade anyways?)
rvrwrrmr�r�r~r�r�originr|r�r�)r�r��bodyr��pkg_filer�s&     r)r��2DistUpgradeController._warn_about_foreign_packages@s.���
�
�4�
�V�C�H�H�T�?�?�@�
A�	
�	�
�
�3�
�V�C�H�H�T�@�@�A�
B�	
�
�2�2�2���/�0���L�
��!%� C� C� I� I� K��T����=�=�A�A�$�G���#�!�����+�,���A��d��#3�F�8�2�>�?�?�D�!L�	
��
;�
�	
���:�:�&�&�v�4�4���J�J�Lr�c�N�VPfR#VPP#r�)rt�pw_uidrus&r)r��"DistUpgradeController.get_user_uidk�#���"�"�*���&�&�-�-�-r�c�N�VPfR#VPP#r�)rt�pw_gidrus&r)�get_user_gid�"DistUpgradeController.get_user_gidqr�r�c�N�VPfR#VPP#r�)rt�pw_namerus&r)�
get_user_name�#DistUpgradeController.get_user_namews#���"�"�*���&�&�.�.�.r�c�N�VPfR#VPP#r�)rt�pw_dirrus&r)�
get_user_home�#DistUpgradeController.get_user_home}r�r�c
���VP4pVf=\\P\P
!\P44h\P!RRRVR2RRRR.VO3/VB#)	Nzsystemd-run�--user�-M�@.hostz--waitz--pipez-qz--�r�r�r^�EINVALrj�strerrorr�r�)r��args�kwargs�users&&, r)�run_as_user�!DistUpgradeController.run_as_user�sz���!�!�#���<��%�,�,����E�L�L�(A�B�B��~�~������f�o�����	
��	
�
��
�	
r�c���VPRRV2.\PR7PP	4P4pV'gV#V# \dTu#i;i)zB
Helper to access variables from the invoking user's environment.
�echo�$)�stdout)rr��PIPErr=r>r�)r�r+�default�vs&&& r)r��"DistUpgradeController.get_user_env�sj��	�� � ��1�S�E��#�!���!���f�V�V�X�e�e�g�
�����H���	��N�	�s�AA�A�A�
A*�)A*c���VP4pVf=\\P\P
!\P44h\P!RRRVR2.VO4#)N�	systemctlrrrr)r�rr
s&& r)�systemctl_as_user�'DistUpgradeController.systemctl_as_user�sd���!�!�#���<��%�,�,����E�L�L�(A�B�B��~�~������f�o�
��	
�
�	
r�) r�r�r�rtr�r�r|r�r�rr�rnr�r�r�r�r�r�r�r�r�ror�r�rr!r�r�r�r�r�r�)NN)TF)TNr�);r{�
__module__�__qualname__�__firstlineno__�__doc__r�r�r�r�r�r�r
rr%rTr\r`rjrnrvrr�r�r�r�r�r�rrrrr$r=r�rIrUrQr�r�r�r�rr5r�r�r�r�r�r�r�r�r�r�r�rr�r�__static_attributes__�__classdictcell__)�
__classdict__s@r)rErEts1����=�R5�h!$�FK�:	�9�v�>;�z&�4�@,�D?�@�(
R�R���8F�P�.4�(-�^�B-�^7�t�>
�q��E�N
�L�6�0`�DW�r"�4��&�(�,�{�z"�%�N41�lE�)�V.�.�/�.�
�&�"
�
r�rE)@r5r�r9r�rXr�rjr�r.rvrMr�r�r�rpr^�configparserrrr��	telemetryrrj�utilsrrrr	r
rr�urllib.parser
�DistUpgradeViewr�DistUpgradeCacher�DistUpgradeConfigParserrr�
aptsourcesrr�DistInfo�aptsources.sourceslistrrrr�DistUpgradeGettextrr~rrrr�DistUpgradeApportrr�r*r4rCr rE�r�r)�<module>r-s���.��
���
�	��
������
��&�9�+�#�#�#�"�!�%�6�0� �"��(�(���/�/�
-�(��8�8�*�1����� 
�F� 
r�

Youez - 2016 - github.com/yon3zu
LinuXploit