403Webshell
Server IP : 146.190.157.162  /  Your IP : 216.73.216.102
Web Server : Apache
System : Linux ubuntu-s-2vcpu-4gb-amd-sfo3-01-KIT-DIGITAL 6.5.0-44-generic #44-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 7 15:10:09 UTC 2024 x86_64
User : businessweek ( 639)
PHP Version : 8.2.10-2ubuntu2.2
Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_signal,pcntl_signal_dispatch,pcntl_getpriority,pcntl_setpriority,dl,putenv,parse_ini_file,show_source
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__/DistUpgradeViewKDE.cpython-311.pyc
�

�-e¤��H�	ddlmZe��dkre�ddlmZddlmZmZmZm	Z	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZmZddlmZmZmZmZn?#e$r7ddlmZddlmZmZmZm	Z	m
Z
ddlmZmZmZm
Z
mZmZmZmZmZmZmZmZmZmZYnwxYwdd	lZdd	lZdd	l Z dd	l!Z!dd	l"Z"dd	l#Z#dd	l$Z$dd	l%Z%dd	l&Z&dd	l'Z'dd	l(Z(dd	l)Z)dd
l*m+Z+m,Z,ddl-m-Z-m.Z.m/Z/m0Z0ddl1m2Z2dd
l3m4Z5dd	l6Z6dd	l7Z7ddl8m7Z9ddl8m:Z:ddl;m;Z;d2d�Z<d�Z=d�Z>gfd�Z?d�Z@ej@e_Ae@e_@Gd�d��ZBGd�de��ZCGd�de$jDjEjF��ZGGd�de$jDjEjH��ZIGd�d e0��ZJGd!�d"e/��ZKGd#�d$e��ZLGd%�d&e-��ZMeNd'k�r�eM��ZOeO�Pd(d)��ejQdd*kryeOjR�S��ZTeTdkr e"jUd+g��ejV��	eOjR�W��e
jX��e!jYd-���9ejQdd.kr�eZejQd/��5Z[e[�\��Z]d	d	d	��n#1swxYwYe]D];Z^eOjR�_e^��e
jX��e!jYd0���<	e
jX���e$j`��ZaejQdd	�D]SZbeaebjcr*eaebjdseaeb�ed,�1���9eaeb�f���Tea�geOjheOji��	e
jX���d	S)3�)�get_dist�trusty�)�uic)�Qt�QLocale�QTranslator�PYQT_VERSION�QTimer)
�	QTextEdit�QApplication�QDialog�QMessageBox�QDialogButtonBox�QTreeWidgetItem�QPushButton�QWidget�QHBoxLayout�QLabel)�QTextOption�QPixmap�QIcon�QTextCursor)rrrr
rrrrrrrrrrN)�
run_apport�apport_crash)�DistUpgradeView�FuzzyTimeToStr�InstallProgress�AcquireProgress)�DistUpgradeConfig)�get)�gettext)�unicode_gettext)�
QUrlOpener�strictc�\�t|t��r|�d|��S|S)N�UTF-8)�
isinstance�bytes�decode)�s�errorss  �@/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeViewKDE.py�utf8r.Ms-���!�U�����x�x���(�(�(���c��tj�|��rtj||��dStd|z��dS)Nzerror, can't find file: )�os�path�existsr�loadUi�print)�file�parents  r-r4r4TsL��	�w�~�~�d���1��
�4�� � � � � �	�(�4�/�0�0�0�0�0r/c�b�tj�|��rt|��SdS�N)r1r2r3r)r2s r-�_find_pixmapr:[s)��	�w�~�~�d�����t�}�}���4r/c��tt��tkrtj|��S|D]$}t|��}|rt|��cS�%dSr9)�typer
�intr�	fromThemer:)�name�	fallbacksr2�pixmaps    r-�_iconrB`se���L���S� � ���t�$�$�$��	%�	%�D�!�$�'�'�F��
%��V�}�}�$�$�$�
%��4r/c�\�|���s|�|��dSdSr9)�isMaximized�origAdjustSize��selfs r-�
adjustSizerHqs:�������"����D�!�!�!�!�!�"�"r/c�6�eZdZdZdZd	d�Zd�Zd�Zd�Zd�Z	dS)
�
_OSReleasez/etc/os-releaseTc��i|_d|_tj|_t
j�|j��sdS|���d|_|r|�	��dSdS)NFT)
�result�validrJ�OS_RELEASE_FILEr6r1r2�isfile�parse�inject_lsb_compat)rG�
lsb_compats  r-�__init__z_OSRelease.__init__{su�������
��.��	��w�~�~�d�i�(�(�	��F��
�
������
��	%��"�"�$�$�$�$�$�	%�	%r/c�@�|jd|jd<|jd|jd<|j�d��|jd<|jds"|j�d��|jd<|j�d��|jd	<dS)
N�IDzDistributor ID�PRETTY_NAME�Description�VERSION_CODENAME�Codename�UBUNTU_CODENAME�
VERSION_ID�Release)rLr!rFs r-rQz_OSRelease.inject_lsb_compat�s���(,��D�(9���$�%�%)�[��%?���M�"�"&�+�/�/�2D�"E�"E���J���{�:�&�	I�&*�k�o�o�6G�&H�&H�D�K�
�#�!%�����!>�!>���I���r/c���t|jd��}|D]7}|���}|s�|j|�dd����8|���dS)N�r�=r)�openr6�strip�parse_entry�split�close)rG�f�lines   r-rPz_OSRelease.parse�sl�����C� � ���	2�	2�D��:�:�<�<�D��
���D��d�j�j��a�0�0�1�1�1�	���	�	�	�	�	r/c��|�|��}|dkr*t|t��r|�d��}||j|<dS)N�ID_LIKE� )�parse_valuer(�strrcrL)rG�key�values   r-rbz_OSRelease.parse_entry�sT��� � ��'�'���)���
�5�#� 6� 6���K�K��$�$�E� ���C���r/c�d�tj|��}t|��dkr|dS|S)Nrr)�shlexrc�len)rGrm�valuess   r-rjz_OSRelease.parse_value�s1����U�#�#���v�;�;�!����!�9���
r/N)T)
�__name__�
__module__�__qualname__�DEFAULT_OS_RELEASE_FILErNrSrQrPrbrj�r/r-rJrJwso������/��'�O�%�%�%�%�?�?�?����!�!�!�����r/rJc�6�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�DumbTerminalz A very dumb terminal c�4�tj|d|��||_|�d��|�d��|�tj��|�d��|�	d��d|_
dS)z2 really dumb terminal with simple editing support ��	Monospace�FTN)rrS�installProgress�
setFontFamily�setFontPointSize�setWordWrapModer�NoWrap�setUndoRedoEnabled�setOverwriteMode�_block)rGr}�parent_frames   r-rSzDumbTerminal.__init__�s�����4��\�2�2�2�.������;�'�'�'����a� � � ����[�/�0�0�0�����&�&�&����d�#�#�#�����r/c��tj��\|_|j_|jdkrdt
jd<|jS)�
pty voodoor�dumb�TERM)�pty�fork�	child_pidr}�	master_fdr1�environrFs r-r�zDumbTerminal.fork�s;��;>�8�:�:�8����-�7��>�Q���!'�B�J�v���~�r/c� �tj|jjgggd��\}}}t|��dkrAt	j|jjd��}|�t|����tj	��dS)Nr�)
�selectr}r�rpr1�read�insertWithTermCodesr.r
�
processEvents)rG�rlist�wlist�xlistrfs     r-�update_interfacezDumbTerminal.update_interface�s~�� &�
�t�/C�/M�.N�r�RT�VW� X� X����u��u�:�:��>�>��7�4�/�9�3�?�?�D��$�$�T�$�Z�Z�0�0�0��"�$�$�$�$�$r/c�:�d}|D]�}t|��dkr>|�|��|������d}�S|t	d��kr�g|t	d��kr�{||z
}��|�|��dS)z support basic terminal codes rzr|�
�N)�ord�insertPlainText�
textCursor�deletePreviousChar�chr)rG�text�display_text�cs    r-r�z DumbTerminal.insertWithTermCodes�s������
	"�
	"�A��1�v�v��{�{��$�$�\�2�2�2����!�!�4�4�6�6�6�����c�"�g�g�����c�!�f�f������!������\�*�*�*�*�*r/c��t|jd��sdS|���tjkr.tj|jjtd����dS|�	��sdStj|jj|�	���
d����dS)z$ send (ascii) key events to the pty r�Nr|zutf-8)�hasattrr}rlr�
Key_Backspacer1�writer�r�r��encode)rG�evs  r-�
keyPressEventzDumbTerminal.keyPressEvent�s����t�+�[�9�9�	��F�
�6�6�8�8�r�'�'�'��H�T�)�3�S��V�V�<�<�<��F��w�w�y�y�	��F�
���%�/������1A�1A�'�1J�1J�K�K�K�K�Kr/c�r�|jrdSd|_|�tj��d|_dS)z: helper that ensures that the cursor is always at the end NTF)r��
moveCursorr�EndrFs r-�onCursorPositionChangedz$DumbTerminal.onCursorPositionChanged�s7���;�	��F���������(�(�(�����r/N)
rrrsrt�__doc__rSr�r�r�r�r�rvr/r-rxrx�sw������ � �
�
�
����%�%�%�+�+�+�&L�L�L� ����r/rxc�*�eZdZdZd�Zd�Zd�Zd�ZdS)�KDECdromProgressAdapterz Report the cdrom add progress c�X�|jj|_|jj|_||_dSr9)�window_main�label_status�status�progressbar_cache�progressbarr7�rGr7s  r-rSz KDECdromProgressAdapter.__init__�s(���(�5���!�-�?�������r/c���|r|j�|��|j�t	|jt
|j��z����tj	��dS)z; update is called regularly so that the gui can be redrawn N)
r��setTextr��setValuer=rm�float�
totalStepsr
r�)rGr��steps   r-�updatezKDECdromProgressAdapter.update�se���	$�
�+�
�
�d�
#�
#�
#���!�!�#�d�j��t��1G�1G�&G�"H�"H�I�I�I��"�$�$�$�$�$r/c��dS)N)FrzrvrFs r-�ask_cdrom_namez&KDECdromProgressAdapter.ask_cdrom_names���{r/c��dS)NFrvrFs r-�change_cdromz$KDECdromProgressAdapter.change_cdroms���ur/N)rrrsrtr�rSr�r�r�rvr/r-r�r��sV������)�)����
%�%�%��������r/r�c�0��eZdZdZd�Zd�fd�	Zd�Z�xZS)�
KDEOpProgressz methods on the progress bar c�"�||_||_dSr9)r��progressbar_label)rGr�r�s   r-rSzKDEOpProgress.__init__
s��$�d��0�d���r/Nc����tt|���|��|j�t|j����tj��dSr9)	�superr�r�r�r�r=�percentr
r�)rGr��	__class__s  �r-r�zKDEOpProgress.updatesY����M�4� � �'�'��0�0�0������D�L� 1� 1�2�2�2�� �"�"�"�"�"r/c�:�|j�d��dS�Nrz)r�r�rFs r-�donezKDEOpProgress.dones��
��$�$�R�(�(�(�(�(r/r9)rrrsrtr�rSr�r��
__classcell__�r�s@r-r�r�sa�������%�%�1�1�1�#�#�#�#�#�#�)�)�)�)�)�)�)r/r�c�0�eZdZdZd�Zd�Zd�Zd�Zd�ZdS)�KDEAcquireProgressAdapterz? methods for updating the progress bar while fetching packages c��tj|��|jj|_|jj|_||_dSr9)rrSr�r�r�r��progressr7r�s  r-rSz"KDEAcquireProgressAdapter.__init__&s8��� ��&�&�&��(�5����*�<��
�����r/c���td��||fz}tj|jjtd��|tjtj��}|tjkrdSdS)Nz&Please insert '%s' into the drive '%s'zMedia ChangeTF)�_r�questionr7r��Ok�Cancel)rG�medium�drive�msg�changes     r-�media_changez&KDEAcquireProgressAdapter.media_change-s^��
�6�7�7�6�%�.�H�c��#�D�K�$;�Q�~�=N�=N�PS�U`�Uc�ep�ew�x�x�f�	�;�>�	!�	!��t�
�Ur/c��tj|��|j�d��|j���dS)Nr)r�startr�r�r��showrFs r-r�zKDEAcquireProgressAdapter.start4sC����d�#�#�#��
���q�!�!�!���������r/c��|jjj�d��|j�td����dS)N�  zFetching is complete)r7r��
progress_textr�r�r�rFs r-�stopzKDEAcquireProgressAdapter.stop:sC�����-�5�5�d�;�;�;�����A�4�5�5�6�6�6�6�6r/c�L�tj||��|j�t	|j����|jdz}||jkr|j}|jdkr�tj
|j��}t|t��r&|�
tj����}|j�t%d��||j|fz��|jjj�dt%d��t-|j��zzdz��nU|j�t%d��||jfz��|jjj�d��t1j��d	S)
z\ we don't have a mainloop in this application, we just call processEvents here and elsewhererrz!Fetching file %li of %li at %sB/sz<i>�About %s remainingz</i>zFetching file %li of %lir�T)r�pulser�r�r=r��
current_items�total_items�current_cps�apt_pkg�size_to_strr(r)r*�locale�getpreferredencodingr�r�r�r7r�r�r�etar
r�)rG�owner�current_itemr�s    r-r�zKDEAcquireProgressAdapter.pulse>s{��	��d�E�*�*�*��
���s�4�<�0�0�1�1�1��)�A�-���$�*�*�*��+�L���a���!�-�d�.>�?�?�K��+�u�-�-�
P�)�0�0��1L�1N�1N�O�O���K����"E� F� F�,�X\�Xh�ju�Iv� v�w�w�w��K�#�1�9�9�%�!�DX�BY�BY�\j�ko�ks�\t�\t�Bt�:t�w}�:}�~�~�~�~��K����"<� =� =��t�O_�@`� `�a�a�a��K�#�1�9�9�$�?�?�?��"�$�$�$��tr/N)	rrrsrtr�rSr�r�r�r�rvr/r-r�r�!se������I�I����������7�7�7�����r/r�c�R�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
S)�KDEInstallProgressAdapterz?methods for updating the progress bar while installing packages��c���tj|��d|_|jj|_|jj|_|jj|_||_	tdd��|_
nf#t$rY}tj
d|z��tjdkrtjj|_
ntj|_
Yd}~nd}~wwxYwt$j�dd��dS)Nz/var/log/dist-upgrade/term.log�wbzCan not open terminal log: '%s'�3zDPkg::StopOnError�False)rrS�_cacher�r�r�r�r�r7r`�
_terminal_log�	Exception�logging�error�sys�version�stdout�bufferr��config�set)rGr7�es   r-rSz"KDEInstallProgressAdapter.__init__\s���� ��&�&�&����"�.�;����*�<��
�#�/�=������	0�!%�&F�t�!L�!L�D�����	0�	0�	0��M�;�a�?�@�@�@��{�c�!�!�%(�Z�%6��"�"�%(�Z��"����������
	0����	����.�w�7�7�7�7�7s�A-�-
C�7AC�Cc�d�tj|��d|_|j�td����|j�d��|j�d��d|_	d|_
d|_|jj
j�d��dS)NFzApplying changesrri�T)r�start_update�finishedr�r�r�r�r�r��
start_time�time_ui�
last_activityr7r��showTerminalButton�
setEnabledrFs r-rz&KDEInstallProgressAdapter.start_updateos����$�T�*�*�*���
�	
��!�!�!�$6�"7�"7�8�8�8��
���q�!�!�!���"�"�3�'�'�'������� ������2�=�=�d�C�C�C�C�Cr/c��tj|||��tjd|�d|�d���tjdd��|vrdStd��|z}td��|z}d	|�d
|��}t
|jj��}td|��|j�
|��|j�|��|dkr4|j
�|��|j
���n|j
���|���|���dS)Nz!got an error from dpkg for pkg: 'z': '�'�dpkgz*dependency problems - leaving unconfiguredFzCould not install '%s'zThe upgrade will continue but the '%s' package may not be in a working state. Please consider submitting a bug report about it.�<big><b>�</b></big><br />�dialog_error.ui)rr�r�r"�dgettextr�rr7r�r4�translate_widget_children�label_errorr��textview_errorr��hiderH�exec_)rG�pkg�errormsg�summaryr��dialogues      r-r�zKDEInstallProgressAdapter.error~s_����d�C��2�2�2��
�
�c�c�c�8�8�8�T�U�U�U���F�$P�Q�Q�U]�]�]����,�-�-��3���'�(�(�*-�.���18�����=���4�;�2�3�3��� �(�+�+�+���-�-�h�7�7�7���$�$�S�)�)�)��t����#�+�+�H�5�5�5��#�(�(�*�*�*�*��#�(�(�*�*�*��������������r/c��tjd|z��tj��}td��|z}td��}d|�d|��}t	|jj��|_td|j��|jj	�
|��|jj���|jj
j�|j��t"j�|��s|dz}t"j�d��rtdd	||g}t)j|t(j�
�����d}|�dd
��}|jj�
|��n,|jj�
td����|j���}	|xjtj��|z
z
c_|	tjkrt#j|jd��dSt#j|jd��dS)z6ask question in case conffile has been changed by userz.got a conffile-prompt from dpkg for file: '%s'z/Replace the customized configuration file
'%s'?ztYou will lose any changes you have made to this configuration file if you choose to replace it with a newer version.z"<span weight="bold" size="larger">z </span> 

zdialog_conffile.uiz
.dpkg-distz
/usr/bin/diffz-u)rrr'�replacez The 'diff' command was not foundsy
sn
N)r��debug�timer�rr7r��confDialoguer4�label_conffiler��textview_conffiler�show_difference_button�clicked�connect�showConffiler1r2r3�
subprocess�Popen�PIPE�communicater*rr�Acceptedr�r�)
rG�current�newr��prim�sec�markup�cmd�diffrLs
          r-�conffilez"KDEInstallProgressAdapter.conffile�s���
�F��P�Q�Q�Q��	�����C�D�D�w�N���#�$�$���OS�d�d�TW�TW�X��#�D�K�$;�<�<����#�T�%6�7�7�7���(�0�0��8�8�8���+�0�0�2�2�2�	
��0�8�@�@��AR�S�S�S��w�~�~�g�&�&�	)��L�(�'��7�>�>�/�*�*�	]� �$���5�#��!�#�j�o�>�>�>�J�J�L�L�Q�O�$����W�i�0�0�$�
�
�
-�
5�
5�d�
;�
;�
;�
;�
�
�
-�
5�
5�a�8Z�6[�6[�
\�
\�
\��"�(�(�*�*������	���e�+�+����W�%�%�%��H�T�^�V�,�,�,�,�,��H�T�^�V�,�,�,�,�,r/c�n�|jj���rL|jj���|jj�t
d����dS|jj���|jj�t
d����dS)NzShow Difference >>>z<<< Hide Difference)r#r%�	isVisiblerr&r�r�r�rFs r-r)z&KDEInstallProgressAdapter.showConffile�s�����.�8�8�:�:�	W���/�4�4�6�6�6���4�<�<�Q�?T�=U�=U�V�V�V�V�V���/�4�4�6�6�6���4�<�<�Q�?T�=U�=U�V�V�V�V�Vr/c�@�tj��\|_|_|jdkrQdtjd<dtjvstjddkrdtjd<dtjd<t
jd	|jz��|jS)
r�rr�r��DEBIAN_FRONTEND�kde�noninteractive�none�APT_LISTCHANGES_FRONTENDz fork pid is: %s)r�r�r�r�r1r�r�r!rFs r-r�zKDEInstallProgressAdapter.fork�s���+.�8�:�:�(������>�Q���!'�B�J�v��!���3�3��
�,�-��6�6�0@��
�,�-�5;�B�J�1�2��
�(�4�>�9�:�:�:��~�r/c��|jdkrtj��|_|j�t	|j����|j�t|�	������|dkr�tj��|_
d|_|j
|jz
}||jz}t|��|z}d|jz
|z}|dkr?|dkr9|j�td��t!|��z��d	S|j�d��d	Sd	S)
zupdate progress bar and labelrg�?FgY@g�N@i�r�riN)r
r"r�r�r=r�r�r�r.rar�activity_timeout_reportedrr�r�r�r)rGrr�r��delta�time_per_percentr�s       r-�
status_changez'KDEInstallProgressAdapter.status_change�s-���?�c�!�!� �I�K�K�$�/��
���s�4�<�0�0�1�1�1���!�!�$�v�|�|�~�~�"6�"6�7�7�7��S�=�=�#�y�{�{�$�
�+0�$�
(��$�t��6�%�
�4�<�
�%�#�E�l�l�7�2�
����%�)9�9�#�
�4�Z�Z�C�:�.�.���&�&�q�)=�'>�'>��PS�AT�AT�'T�U�U�U�U�U���&�&�s�+�+�+�+�+��=r/c�:�|j�d��dSr�)r�r�rFs r-�
finish_updatez'KDEInstallProgressAdapter.finish_update�s����!�!�"�%�%�%�%�%r/c�8�		tj|jgggd��\}}}t|��dkrctj|jd��}|j�|��|jj�	t|d�����nn?n=#t$r0}t|��tjd|z��Yd}~n	d}~wwxYw��	tj|��n>#t"$r1}tjd|j�d	|�d
���d|_Yd}~nd}~wwxYw|jdkr�|j|jzt+j��kr�|jsl	tjd|j�d
|j����d
���n,#t4$rtjd|jz��YnwxYwd|_|jjj���t=j��t+j d��dS)z�
        no mainloop in this application, just call processEvents lots here
        it's also important to sleep for a minimum amount of time
        Trr�r )r,z&error reading from self.master_fd '%s'Nz@got ValueError from InstallProgress.update_interface. Line was 'z' (�)rzzno activity on terminal for z
 seconds (z&no activity on terminal for %s secondsg{�G�z�?)!r�r�rpr1r�r�r�r7�
terminal_textr�r.r�r5r�r!rr��
ValueErrorr�r�TIMEOUT_TERMINAL_ACTIVITYr"r@�warningr�r��UnicodeEncodeErrorr��
konsole_framer�r
r��sleep)rGr�r�r�rfrs      r-r�z*KDEInstallProgressAdapter.update_interface�s���
	�
�(.�
�t�~�6F�r�"�a�(P�(P�%���u��u�:�:��>�>��7�4�>�3�7�7�D��&�,�,�T�2�2�2��K�-�A�A��T�)�4�4�4�6�6�6�6��6���
�
�
��a�����
�F��J�K�K�K����������
����
	� 	�
�
*�4�
0�
0�
0�
0���	�	�	�
�-�-�fj�fo�fo�fo�qr�qr�qr�s�
t�
t�
t��$�)�)�)�)�)�)�����	����
���!�!����!?�?�4�9�;�;�N�N��/�2�
m����QU�Qo�Qo�Qo�qu�rC�rH�rH�rJ�rJ�rJ�rJ�!K�L�L�L�L��%�
m�
m�
m��� H�D�Lj� k�l�l�l�l�l�
m����-1�D�*�
�+�
!�
/�
4�
4�
6�
6�
6��"�$�$�$��
�4�����sB�BB�
C�&&C�C�C0�0
D+�:'D&�&D+�%7F�&G�Gc��	|���tj|jtj��\}}||jkrn�H|Sr9)r�r1�waitpidr��WNOHANG)rG�pid�ress   r-�
wait_childz$KDEInstallProgressAdapter.wait_childsN��	��!�!�#�#�#���D�N�2�:�>�>�J�S�#��d�n�$�$��		��
r/N)rrrsrtr�rJrSrr�r6r)r�rCrEr�rTrvr/r-r�r�Vs�������I�I�!$��8�8�8�&
D�
D�
D����2#-�#-�#-�JW�W�W�
�
�
�,�,�,�.&�&�&�(�(�(�T����r/r�c� �eZdZd�Zd�Zd�ZdS)�UpgraderMainWindowc�N�tj|��td|��dS)Nzwindow_main.ui)rrSr4rFs r-rSzUpgraderMainWindow.__init__"s*�����������&�&�&�&�&r/c��||_dSr9)r7)rG�	parentRefs  r-�	setParentzUpgraderMainWindow.setParent's
������r/c��|j���}|r|���dS|���dSr9)r7�on_window_main_delete_event�accept�ignore)rG�eventrds   r-�
closeEventzUpgraderMainWindow.closeEvent*s?����7�7�9�9���	��L�L�N�N�N�N�N��L�L�N�N�N�N�Nr/N)rrrsrtrSrZr`rvr/r-rVrV sA������'�'�'�
 � � �����r/rVc���eZdZdZdd�Zd�Zd d�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Z�fd�Zd d�Zd d�Z	d!d�Zd�Zd"d�Zd#d�Zd�Zd�Zd$d�Zd�Z�xZS)%�DistUpgradeViewKDEz$KDE frontend of the distUpgrade toolNc�$�tj|��t���d��t	jd��}|�tj��|r|dkrWtj	�
tj��d��}ttj����|_
nd}t|��|_
	tjd|��tjd��n.#t"$r!}t	jd|z��Yd}~nd}~wwxYwdtjvrt#d	���d
tjd<dtjd
<dtjd<d
tjd<t)dg��|_t-|j��}t/t0��t2kr*|�t7j��ddd��n)|�t7j��ddd��|j�|��t=�����tAdddg���}|j�!|��tE��|_#|j#�$|��|j#�%��d|_&tO|j#j(|j#j)��|_*tW|��|_,t[|��|_.t_|��|_0|j1td_3|j#j4�5d��|j#j4j6�7|j8��tjd|��tjd��|�9��tu��j;d}|r|dkrd}|j
�<dd��}	t{j>���?|	��}
|j#j@�A��}|�Bd|��}|�Bd|
��}|j#j@�C|��|j#jD�E��t�|j#jD��|_G|j#jD�Hd d!��t�|j0|j#jD��|_J|jG�K|jJ��|jJ�%��t�jMd"|jN��|j�O��dS)#N�KDE�PyQt4�.�moz)/usr/share/locale/ubuntu-release-upgraderzubuntu-release-upgraderzError setting locales (%s)�DISPLAYzNo DISPLAY in os.environ foundr;�QT_PLATFORM_PLUGIN�TRUE�KDE_FULL_SESSION�5�KDE_SESSION_VERSION�QT_QPA_PLATFORMTHEME�qtr�z/usr/share/qt5/translationsz/usr/share/qt4/translationszsystem-software-updatez=/usr/share/icons/oxygen/48x48/apps/system-software-update.pngz5/usr/share/icons/hicolor/48x48/apps/adept_manager.png�r@FrV�Ubuntu�Kubuntu�Sources�Toz%siXi��
)PrrS�
get_telemetry�set_updater_typer��	getLogger�setLevel�INFOr1r2�join�getcwdr rr"�bindtextdomain�
textdomainr�rKr�r
�appr	r<r
r=�loadr�system�installTranslatorr$�setupUrlHandlesrB�
setWindowIconrVr�rZr��	prev_stepr�r�r��_opCacheProgressr��_acquireProgressr��_cdromProgressr��_installProgress�_handleExceptionr��
excepthookr
rr'r(�showTerminalrrJrLr!�distro_info�UbuntuDistroInfor�label_titler�r r�rMrr�konsole_frame_layout�setMinimumSizerxrH�	addWidgetr�
singleShot�exitMainLoopMidFlightr)rG�datadir�logdir�logger�	localedirr�
translator�messageIconr?�to_dist�
to_version�title_strings            r-rSzDistUpgradeViewKDE.__init__4s���� ��&�&�&����(�(��/�/�/��"�7�+�+�������%�%�%��	3�'�S�.�.��G�L�L�����T�2�2�)�)�"�)�+�+�6�6�$�+�+�?�)�)�'�2�2�$�+�	<�
�
 �!:�I�
F�
F�
F�
�
�6�
7�
7�
7�
7���	<�	<�	<�
�/�6��:�
;�
;�
;�
;�
;�
;�
;�
;�����	<����
�B�J�&�&��<�=�=�=�,1��
�'�(�*0��
�%�&�-0��
�(�)�-2��
�)�*��!:� ;�<�<���!���*�*�
������$�$��O�O�G�N�,�,�d�C�9V�W�W�W�W��O�O�G�N�,�,�d�C�9V�W�W�W���"�"�:�.�.�.����$�$�&�&�&��4�'f�'^�'`�a�a�a��	
����{�+�+�+�-�/�/�����"�"�4�(�(�(����������� -�d�.>�.P�RV�Rb�Rp� q� q��� 9�$� ?� ?���5�d�;�;��� 9�$� ?� ?����.�����+�6�6�u�=�=�=���+�3�;�;�D�<M�N�N�N�	��8��C�C�C���4�5�5�5��&�&�(�(�(��|�|�"�=�1���	�t�x�'�'��D��+�/�/�)�T�2�2�� �1�3�3�;�;�G�D�D�
��'�3�8�8�:�:��#�+�+�H�d�;�;��#�+�+�D�*�=�=����$�,�,�\�:�:�:�	
��&�+�+�-�-�-�$/��0@�0N�$O�$O��!���&�5�5�c�3�?�?�?�)�$�*?��AQ�A_�`�`����!�+�+�D�,>�?�?�?�����!�!�!�	��"�d�8�9�9�9���������s�)D	�	
D4�D/�/D4c�V�td��|j���dS)Nr�)r5r�exitrFs r-r�z(DistUpgradeViewKDE.exitMainLoopMidFlight�s$��
�%�&�&�&���
�
�����r/c�H�|dkr|j}t|t��st|t��r�t	|�����dkr)|�tjdd����nA|�tt	|���������|�
��dkrA|�
��D].}|�|��|�|���-dSdS)N�Error�kdelibs)
r�r(rrrk�windowTitle�setWindowTitler"rr��children�translate_widgetr)rG�parentWidget�widgets   r-rz,DistUpgradeViewKDE.translate_widget_children�s���4����+�L��l�G�,�,�	R�
�<��0Q�0Q�	R��<�+�+�-�-�.�.�'�9�9��+�+�W�-=�i��-Q�-Q�R�R�R�R��+�+�A�s�<�3K�3K�3M�3M�/N�/N�,P�,P�Q�Q�Q�� � �"�"�d�*�*�&�/�/�1�1�
7�
7���%�%�f�-�-�-��.�.�v�6�6�6�6�+�*�
7�
7r/c�$�t|t��st|t���rbt|�����dkrNtjdtjd��d���}|�t|d����dSt|�����dkrNtjdtjd��d���}|�t|d����dSt|�����dkrY|�tt|��������dd����dSdSdS)	Nz&Cancelr�T)�fallback�&Closerzr��&)r(rrrkr�r"�translationr~r�r#r�r )rGr�r�s   r-r�z#DistUpgradeViewKDE.translate_widget�sh���f�f�%�%�
	J��F�K�)H�)H�
	J��6�;�;�=�=�!�!�Y�.�.�!�-��w�1�)�<�<�t�M�M�M������w�	�B�B�C�C�C�C�C��V�[�[�]�]�#�#�x�/�/�!�-��w�1�)�<�<�t�M�M�M������w��A�A�B�B�B�B�B��V�[�[�]�]�#�#�r�)�)�����#�f�k�k�m�m�"4�"4� 5� 5� =� =�c�3� G� G�I�I�I�I�I�
	J�
	J�*�)r/c��t|t��st|t��rdStj|||��}tjdd�|��z��t|||��t��s�d�tj|||����}t|j��}td|��|�
|j��|j�|��|���|���t'jd��dS)zCrash handler.Nz)not handled exception in KDE frontend:
%s�
rzrr)�
issubclass�KeyboardInterrupt�
SystemExit�	traceback�format_exceptionr�r�r{rrrr�r4r�dialog�crash_detailr�rHrr�r�)rG�exctype�excvalue�exctb�lines�tbtextr�s       r-r�z#DistUpgradeViewKDE._handleException�s$��
�w� 1�2�2�	��w�
�+�+�	��F��*�7�H�e�D�D���
�B�T�Y�Y�u�EU�EU�U�V�V�V�	�W�h��.�.�.��|�|�	��W�W�Y�7���5�Q�Q�R�R�F��T�-�.�.�F��$�f�-�-�-��*�*�4�;�7�7�7���'�'��/�/�/��������L�L�N�N�N��������r/c��|jj���rK|jj���|jj�t
d����nJ|jj���|jj�t
d����|j���dS)NzShow Terminal >>>z<<< Hide Terminal)	r�rMr8rr
r�r�r�rHrFs r-r�zDistUpgradeViewKDE.showTerminal�s�����)�3�3�5�5�	P���*�/�/�1�1�1���/�7�7��:M�8N�8N�O�O�O�O���*�/�/�1�1�1���/�7�7��:M�8N�8N�O�O�O���#�#�%�%�%�%�%r/c��|jSr9)r�rFs r-�getAcquireProgressz%DistUpgradeViewKDE.getAcquireProgress�����$�$r/c�(�||j_|jSr9)r�r�)rG�caches  r-�getInstallProgressz%DistUpgradeViewKDE.getInstallProgress�s��',���$��$�$r/c��|jSr9)r�rFs r-�getOpCacheProgressz%DistUpgradeViewKDE.getOpCacheProgress�r�r/c��|jSr9)r�rFs r-�getCdromProgressz#DistUpgradeViewKDE.getCdromProgress�s���"�"r/c�D�|jj�|��dSr9)r�r�r�)rGr�s  r-�
update_statusz DistUpgradeViewKDE.update_status�s"����%�-�-�c�2�2�2�2�2r/c���t|jd|jz��}t|jd|jz��}|���|���dS)N�image_step%i�label_step%i)�getattrr�rmr)rGr��image�labels    r-�hideStepzDistUpgradeViewKDE.hideStep�sR����(��$�*�)D�E�E����(��$�*�)D�E�E��
�
�
����
�
�
�����r/c��|j}|rot|jd|jz��}t	dgd����}|�|�dd����|���dSdS)Nr�z
dialog-cancel)z7/usr/share/icons/oxygen/16x16/actions/dialog-cancel.pngz@/usr/lib/kde4/share/icons/oxygen/16x16/actions/dialog-cancel.pngz4/usr/share/icons/crystalsvg/16x16/actions/cancel.pngrp�)r�r�r�rmrB�	setPixmaprAr�)rGr�r��
cancelIcons    r-�abortzDistUpgradeViewKDE.abort�s����~���	��D�,�^�d�j�-H�I�I�E���*b�*b�*b�c�c�c�J�
�O�O�J�-�-�b�"�5�5�6�6�6��J�J�L�L�L�L�L�	�	r/c�
��tt|���|��tdgd����}tdgd����}|jr�t|jd|jjz��}t|jd|jjz��}|�|�	dd����|�
��||_t|jd|jz��}t|jd|jz��}|�|�	dd����|�
��|�d	|���zd
z��dS)Nz	dialog-ok)z3/usr/share/icons/oxygen/16x16/actions/dialog-ok.pngz</usr/lib/kde4/share/icons/oxygen/16x16/actions/dialog-ok.pngz0/usr/share/icons/crystalsvg/16x16/actions/ok.pngrpzarrow-right)z5/usr/share/icons/oxygen/16x16/actions/arrow-right.pngz>/usr/lib/kde4/share/icons/oxygen/16x16/actions/arrow-right.pngz9/usr/share/icons/crystalsvg/16x16/actions/1rightarrow.pngr�r�r�z<b>z</b>)
r�rb�setSteprBr�r�r�rmr�rAr�r�r�)rGr��okIcon�	arrowIconr�r�r�s      �r-r�zDistUpgradeViewKDE.setStep�s}���
� �4�(�(�0�0��6�6�6��{�"V�"V�"V�W�W�W���-�%b�%b�%b�c�c�c�	�
�>�	��D�,�^�d�n�>R�-R�S�S�E��D�,�^�d�n�>R�-R�S�S�E��O�O�F�M�M�"�b�1�1�2�2�2��J�J�L�L�L������(��$�*�)D�E�E����(��$�*�)D�E�E��
���	�(�(��R�0�0�1�1�1�
�
�
����
�
�
�e�e�j�j�l�l�*�V�3�4�4�4�4�4r/c�x�d|�d|��}t|j��}td|��|�|��|j�|��|dkr4|j�|��|j���n|j���|�	td����tdgd����}|j�
|�dd����|���|���dS)	Nrrr�Informationzdialog-information)z;/usr/share/icons/oxygen/48x48/status/dialog-information.pngzD/usr/lib/kde4/share/icons/oxygen/48x48/status/dialog-information.pngz=/usr/share/icons/crystalsvg/32x32/actions/messagebox_info.pngrp�0)rr�r4rrr�rr�rr�r�rBr�r�rArHr�rGrr��extended_msgrr�s      r-�informationzDistUpgradeViewKDE.informationsG���07�����<���4�+�,�,��� �(�+�+�+��&�&�x�0�0�0���$�$�S�)�)�)��4����#�+�+�L�9�9�9��#�(�(�*�*�*�*��#�(�(�*�*�*�����-� 0� 0�1�1�1��0�'h�'h�'h�i�i�i��	�� � ��!3�!3�B��!;�!;�<�<�<��������������r/c�4�d|�d|��}t|j��}td|��|�|��|j�|��|dkr4|j�|��|j���n|j���tdgd����}|j
�|�dd����|�
��|���dS)	Nrrrzdialog-error)z5/usr/share/icons/oxygen/48x48/status/dialog-error.pngz>/usr/lib/kde4/share/icons/oxygen/48x48/status/dialog-error.pngzA/usr/share/icons/crystalsvg/32x32/actions/messagebox_critical.pngrpr�F)rr�r4rrr�rr�rrBr�r�rArHrr�s      r-r�zDistUpgradeViewKDE.error/s)���.5�g�g�s�s�;���4�+�,�,��� �(�+�+�+��&�&�x�0�0�0���$�$�S�)�)�)��4����#�+�+�L�9�9�9��#�(�(�*�*�*�*��#�(�(�*�*�*��N�'l�'l�'l�m�m�m��	�� � ��!3�!3�B��!;�!;�<�<�<��������������ur/Tc
�j
�tj|||||��t|j��|_td|j��|jj���|jjj	�
|j��|�|j��|jj�
tj���t#d����|jj�
tj���t)����|jj�
tj���t#d��dz��t+dgd����}|jj�|�dd����|d	kr�|d
�dd��}|jj�
tj���|��|d
�dd��}	|jj�
tj���|	��d|z}
|jj�|
��|jj�|j��|jj���|jj�dg��|jj� �����|j!D]P}|jj�"d
tG|jjt#d��|j$zg�����Q|j%D]P}|jj�"d
tG|jjt#d��|j$zg�����Q|j&D]P}|jj�"d
tG|jjt#d��|j$zg�����Q|j'D]P}
|jj�"d
tG|jjt#d��|
j$zg�����Q|j(D]P}|jj�"d
tG|jjt#d��|j$zg�����Q|j�)��|j�*��}|tj+krdSdS)zshow the changes dialoguezdialog_changes.uiz&Start Upgrade�Details� >>>zdialog-warning)z7/usr/share/icons/oxygen/48x48/status/dialog-warning.pngz@/usr/lib/kde4/share/icons/oxygen/48x48/status/dialog-warning.pngz@/usr/share/icons/crystalsvg/32x32/actions/messagebox_warning.pngrpr�Nrr�rzrz<big><b>%s</b></big>�PackageszNo longer supported %sz	Remove %szRemove (was auto installed) %sz
Install %sz
Upgrade %sTF),r�confirmChangesrr��changesDialoguer4�treeview_detailsr�	buttonBox�
helpRequestedr(�showChangesDialogueDetailsr�buttonrr�r�r��Help�setIconrrB�question_pixmapr�rAr r��
label_summary�
label_changes�confirmChangesMessage�clear�setHeaderLabels�header�	demotions�insertTopLevelItemrr?�toRemove�toRemoveAuto�	toInstall�	toUpgraderHrr.)rGr�changesr��downloadSize�actions�removal_boldr��cancel�confirm�summaryText�demoted�rm�inst�uprSs                r-r�z!DistUpgradeViewKDE.confirmChangesGs���
	�&�t�W�g�y�'3�	5�	5�	5�&�t�'7�8�8����"�D�$8�9�9�9���-�2�2�4�4�4���&�4�<�<�T�=\�]�]�]��&�&�t�';�<�<�<���&�-�-�.>�.A�B�B�J�J�1�M]�K^�K^�_�_�_���&�-�-�.>�.C�D�D�L�L�U�W�W�U�U�U���&�-�-�.>�.C�D�D�L�L�Q�y�\�\�\b�Mb�c�c�c��,�'k�'k�'k�l�l�l��	
��,�6�6�{�7I�7I�"�b�7Q�7Q�R�R�R��d�?�?��Q�Z�'�'��R�0�0�F�� �*�1�1�2B�2I�J�J�R�R�SY�Z�Z�Z��a�j�(�(��b�1�1�G�� �*�1�1�2B�2E�F�F�N�N�w�W�W�W�,�w�6����*�2�2�;�?�?�?���*�2�2�4�3M�N�N�N���-�3�3�5�5�5���-�=�=�z�l�K�K�K���-�4�4�6�6�;�;�=�=�=��~�	o�	o�G�� �1�D�D�Q��X\�Xl�X}�AB�C[�A\�A\�_f�_k�Ak�@l�Im�Im�
o�
o�
o�
o��-�	]�	]�B�� �1�D�D�Q��X\�Xl�X}�AB�CN�AO�AO�RT�RY�AY�@Z�I[�I[�
]�
]�
]�
]��#�	r�	r�B�� �1�D�D�Q��X\�Xl�X}�AB�Cc�Ad�Ad�gi�gn�An�@o�Ip�Ip�
r�
r�
r�
r��N�	`�	`�D�� �1�D�D�Q��X\�Xl�X}�AB�CO�AP�AP�SW�S\�A\�@]�I^�I^�
`�
`�
`�
`��.�	^�	^�B�� �1�D�D�Q��X\�Xl�X}�AB�CO�AP�AP�SU�SZ�AZ�@[�I\�I\�
^�
^�
^�
^�	
��'�'�)�)�)��"�(�(�*�*���'�"�"�"��4��ur/c��|jj���rk|jj���|jj�tj���td��dz��nj|jj�
��|jj�tj���dtd��z��|j���dS)Nr�r�z<<< )r�r�r8rr�r�rr�r�r�r�rHrFs r-r�z-DistUpgradeViewKDE.showChangesDialogueDetailss�����0�:�:�<�<�	h�� �1�6�6�8�8�8�� �*�1�1�2B�2G�H�H�P�P�QR�S\�Q]�Q]�`f�Qf�g�g�g�g�� �1�6�6�8�8�8�� �*�1�1�2B�2G�H�H�P�P�QW�Z[�\e�Zf�Zf�Qf�g�g�g���'�'�)�)�)�)�)r/�Noc��tj|j|d|ztjtjztj��}|tjkrdSdS)Nz<font>TF)rr�r��Yesr)rGrr��default�answers     r-�askYesNoQuestionz#DistUpgradeViewKDE.askYesNoQuestion�sO���%�d�&6���C��Q\�Q`�al�ao�Qo�q|�q�A�A���[�_�$�$��4��ur/r�c�<�ttj||tj|j��}|�tj��}|�tj��}|�td����|dkr|�	|��n|�	|��|�6|�
��}|�|tj
z��|���}|tjkrdSdS)N�Continuer�TF)r�Warning�NoButtonr��	addButton�Applyr�r�r��setDefaultButton�windowFlags�setWindowFlagsr�FramelessWindowHintr)	rGrr�r	�
messageBox�continueButton�cancelButton�flagsr
s	         r-�askCancelContinueQuestionz,DistUpgradeViewKDE.askCancelContinueQuestion�s��� ��!4�g�s�K�DX�Z^�Zj�k�k�
�#�-�-�k�.?�@�@��!�+�+�K�,>�?�?�����q��}�}�-�-�-��h����'�'��5�5�5�5��'�'��7�7�7��?��*�*�,�,�E��%�%�e�b�.D�&D�E�E�E��!�!�#�#���[�&�&�&��4��ur/c��ttjtd��td��tj|j��}|�tj��}|�tj��}|�td���	dd����|�tjdd����|���}|tjkrdSd	S)
NzRestart requiredz<<b><big>Restart the system to complete the upgrade</big></b>z_Restart Nowr�r�r�r�TF)
r�Questionr�rr�rrrr�r r"rr)rGr�	yesButton�noButtonr
s     r-�confirmRestartz!DistUpgradeViewKDE.confirmRestart�s��� ��!5�q�9K�7L�7L�a�QO�OP�OP�R]�Rf�hl�hx�y�y�
��(�(���9�9�	��'�'���7�7�����!�N�+�+�3�3�C��=�=�>�>�>�����)�)�X�>�>�?�?�?��!�!�#�#���[�_�$�$��4��ur/c�,�tj��dSr9)r
r�rFs r-r�z DistUpgradeViewKDE.processEvents�s���"�$�$�$�$�$r/Fc��dSr9rv)rGr	s  r-�
pulseProgressz DistUpgradeViewKDE.pulseProgress�s	��	
�r/c���td��}|�dd��}tj|jtd��|tjtj��}|tjkrdSdS)Nz�<b><big>Cancel the running upgrade?</big></b>

The system could be in an unusable state if you cancel the upgrade. You are strongly advised to resume the upgrade.r�z<br />zCancel Upgrade?TF)r�r rrKr�rr)rGr�r�s   r-r\z.DistUpgradeViewKDE.on_window_main_delete_event�sq���w�x�x���|�|�D�(�+�+���$�T�%5�q�9J�7K�7K�T�S^�Sb�do�dr�s�s���[�_�$�$��4��ur/)NNr9)NT)r)r�)F)rrrsrtr�rSr�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�r"r\r�r�s@r-rbrb2s��������.�.�d�d�d�d�L���
7�7�7�7�J�J�J����6&�&�&�%�%�%�%�%�%�%�%�%�#�#�#�3�3�3����	�	�	�5�5�5�5�5�2����.����237�6�6�6�6�p*�*�*���������(	�	�	�%�%�%�
�
�
�
�	�	�	�	�	�	�	r/rb�__main__zinput box testz�bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar z--test-term�bashTg{�G�z�?z--show-in-terminal�g�������?)�purge)r%)j�utilsr�ImportError�PyQt5r�PyQt5.QtCorerrr	r
r�PyQt5.QtWidgetsrr
rrrrrrrr�PyQt5.QtGuirrrrre�PyQt4.QtCore�PyQt4.QtGuir�r�r�r"r*r��aptr�r�ror1r��DistUpgradeApportrrrrrr�DistUpgradeConfigParserr �	telemetryr!rvr�r"�DistUpgradeGettextr�r#r$r.r4r:rBrHrErJrxr��base�
CdromProgressr��
OpProgressr�r�r�rVrbrr�viewr�argvrHr�rR�callr�r�r�rNr`rer��charsr�r��Cacher�r�is_installed�
is_upgradable�mark_delete�mark_install�commitr�r�rvr/r-�<module>rBs���.?� �������x�z�z�X�����������K�K�K�K�K�K�K�K�K�K�K�K�K�K�������������������������E�D�D�D�D�D�D�D�D�D�D�D�D���?�?�?�������K�K�K�K�K�K�K�K�K�K�K�K�K�K�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�����
�
�
�
�
�
�
�����������������
�
�
�
�������������	�	�	�	�
�
�
�
�7�7�7�7�7�7�7�7�^�^�^�^�^�^�^�^�^�^�^�^�6�6�6�6�6�6�+�+�+�+�+�+�
�
�
�
�����,�,�,�,�,�,�/�/�/�/�/�/�"�"�"�"�"�"�����1�1�1����
�����""�"�"�!�+������1�1�1�1�1�1�1�1�hH�H�H�H�H�9�H�H�H�V�����c�l�/�=����*)�)�)�)�)�C�L�%�0�)�)�)�,2�2�2�2�2��2�2�2�jE�E�E�E�E��E�E�E�T���������$M�M�M�M�M��M�M�M�`�z���	�	�	�	�$����(�*`�a�a�a��X�a�[�M�!�!���#�#�%�%�c�	����
�*�/�6�(�
#�
#�
#�
�#�(�*�*�*��
�
�
-�
-�
/�
/�
/�
$�,�
$�
&�
&�
&�
�$�*�T�
�
�
��
	�X�a�[�(�(�(��4����������&�&�(�(�%����������������������!�
�
�
0�
0�!�
5�
5�
5�
$�,�
$�
&�
&�
&�
�$�*�T�
�
�
�
�'�
$�,�
$�
&�
&�
&�'��#�)�+�+�%�
�X�a�b�b�\� � �c��S�z�� �u�S�z�'?� ��C�j���4��(�(�(�(��C�j��������,�,�t�$�T�%:�;�;�;�#� �l� �"�"�"�#�G�s$�AA�9B
�B
�J%�%J)�,J)

Youez - 2016 - github.com/yon3zu
LinuXploit