403Webshell
Server IP : 88.99.149.37  /  Your IP : 216.73.216.141
Web Server : nginx/1.31.2
System : Linux server-88-99-149-37 6.12.0-124.56.5.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Fri May 15 06:12:08 EDT 2026 x86_64
User : muralimurth ( 1015)
PHP Version : 8.4.23
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3.12/site-packages/dnf/cli/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3.12/site-packages/dnf/cli/__pycache__/cli.cpython-312.pyc
�

�j�����dZddlmZddlmZddlmZ	ddlmZddlm	Z	ddl
Z
ddlmZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZd	d
lmZddlmZddlmZmZddlZddlZddlZddl Zddl!Zddl"Zddl#Zddl$Zddl%Zddl&Zddl'Zddl(Zddl)Zddl*Zddl+Zddl,Zddl-Zddl.Zddl/Zddl0Zddl1Zddl2Zddl3Zddl4Zddl5Zddl6Zddl7Zddl8Zddl9Zddl:Zddl;Zddl<Zddl=Zddl>Zddl?Zddl@ZddlAZddlBZddlCZddlDZddlEZddlFZej�d
�ZHdd�ZId�ZJd�ZKd�ZLGd�dej��ZNGd�deO�ZPy#e$r
ddlmZY��>wxYw)z/
Command line interface yum class and related.
�)�print_function)�absolute_import)�unicode_literals)�Sequence)�defaultdictN)�fnmatch�)�output)�CliError)�ucd�_�dnfc�<�t|j�dzt|j�zt|�z}t|j�}t|j�}d|fd|fd|ffD]*\}}||j|d�|||xxdz
cc<�,y)zl Get the length of each pkg's column. Add that to data.
        This "knows" about simpleList and printVer. r	�na�ver�ridrN)�len�name�arch�evr�
_from_repo�
setdefault)�data�pkg�indentrrr�d�vs        �0/usr/lib/python3.12/site-packages/dnf/cli/cli.py�_add_pkg_simple_list_lensr_s���

�S�X�X���	�S����]�	*�S��[�	8�B�

�c�g�g�,�C�

�c�n�n�
�C��"�:��s�|�e�S�\�:���A��Q����1�a� ��Q���
�a��
�;�c��iiid�}|j|j|j|j|j|j
fD]}|D]}t
||���t|j�dkDr.|jD]\}}t
||�t
||d���!|d|d|dg}|j|d�	�}|d|d|d
fS)zA Work out the dynamic size of the columns to pass to fmtColumns. )rrrrz    )rrrrr	)�remainder_column�)�	installed�	available�extras�
autoremove�updates�recentrr�	obsoletes�obsoletesTuples�calcColumns)r
�yplr�lstr�npkg�opkg�columnss        r�_list_cmd_calc_columnsr2js����r�2�.�D��
�
�s�}�}�c�j�j�#�.�.����S�Z�Z�)���C�%�d�C�0��)��3�=�=��A���/�/�L�T�4�%�d�D�1�%�d�D��A�0�
��J��U��T�%�[�1�D� �f� � ���:�G�
�Q�Z�K�'�!�*��w�q�z�k�2�2r c	���d�}tjj|�}d}|j�j	�j|��D�]}|rt
d�d}|jdk(r)|j�d|j�d|j��}n5|j�d	|j�d|j�d|j��}|jj|j�}t
td
�||||j�fz�t
td�|j r|j nd||j"�fz���y)Nc�T�tjdtj|��S)N�%c)�time�strftime�gmtime)�xs r�
sm_ui_timez"print_versions.<locals>.sm_ui_time|s���}�}�T�4�;�;�q�>�2�2r F)r�T�0�-�.�:z  Installed: %s-%s at %sz  Built    : %s at %s)r�sack�
rpmdb_sack�queryr$�filterm�print�epoch�version�releaser�term�boldrr
�installtime�packager�	buildtime)	�pkgs�baser
r:rA�donerrrs	         r�print_versionsrP{s��3����$�$�T�*�J��D����!�+�+�-�5�5�4�5�@����"�I����9�9��� #���S�[�[�#�(�(�C�C�#&�9�9�#&�;�;����S�X�X�G�C��{�{������)��
�a�*�+�d�C�.8����.I�.K�K�	L�
�a�'�(�C�L�L�C�L�L�b�,6�s�}�}�,E�,G�G�	H�Ar c	��td�}|j�D]1\}}tj|j	||d|d���3y)NzTThe operation would result in switching of module '{0}' stream '{1}' to stream '{2}'rr	)r
�items�logger�warning�format)�switchedModules�msg1�
moduleName�streamss    r�report_module_switchrZ�sJ�����D�.�4�4�6��
�G����t�{�{�:�w�q�z�7�1�:�F�G� 7r c���eZdZdZd�fd�	Zd�fd�	Zd�Zd�Zd�Zd�Z	dd	�Z
d
�Zggdfd�Zdd�Z
		dd
�Z�fd�Zd�Z�xZS)�BaseCliz#This is the base class for yum cli.c���|xstjj�}tt|�|��t
j||j�|_y)N)�conf)rr^�Conf�superr\�__init__r
�Output)�selfr^�	__class__s  �rrazBaseCli.__init__�s?����&�s�x�x�}�}���
�g�t�%�4�%�0��m�m�D�$�)�)�4��r c���tjjr�|jjs�t|jj��}|r]t|�td�jtjj��}tjj|��|j}|j j#|�}|rt$j'|�|r�g}g}d}|D]�}	|	j(tjj*vr|j-|	j.��E|	j(tjj0vs�ld}|j-|	j.���|`|s|j j5|�n|j j7||�|sT|jj9�s:|j:�r[|j:j<s|j:j>�r.|jj@rGt$j'td�jtjjB���n^d|jjDvrFt$j'td�jtjjB���tjjFjI�xrOtJjLjO|jjP�dk(xr|jj@}
d	}d}|
�r>|jjRd
k(r2t$j'td��tUtd���|jjRd
vsJ�tjjG�}|jW�s�d}|jjRdk(r2t$j'td��tUtd���|jjRdk(sJ�|jY�st$j'td��tZjj\|_/tatb�}
|D]b}te|jf�D]H}|jjhD]-}tk||�s�|
|jlj-|��/�J�d|
r�t$j'td��|
jo�D]9\}}t$j'|�|D]}t$j'd|z���;tUtd���|jjRdk(rtUtd���tZjjp|_/|js�rD|jjts|j jw�stUtd���|r2|r0|jy�nt$j'td��y	|ror\t$j'td��	|j jz}|j}||j j~|�|j�|�|jj@ry	t�|t��s|g}t!j��gtc|�z}t�t�|��/|�}|�^|j�j�|g�d}tj�j<j�|j�|j��}nd	}|r�t��t�dj�|j j�|���t��|D]Q}	|	j�tZjj�k(s�+tjjtd���|S#tjj�$rq}tj�jj�t�|��}td�d|zz}t��tjj|��d	}~wwxYw)z�Take care of package downloading, checking, user
        confirmation and actually running the transaction.

        :param display: `rpm.callback.TransactionProgress` object(s)
        :return: history database transaction ID or None
        aQIt is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.
It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset <module_name>' command. After you reset the module, you can install the other stream.��progTFz7{prog} will only download packages for the transaction.�testzP{prog} will only download packages, install gpg keys, and check the transaction.�/N�persistz:Persistent transactions aren't supported on bootc systems.zOperation aborted.)�auto�	transientrkz�This bootc system is configured to be read-only. Pass --transient to perform this transaction in a transient overlay which will reset when the system reboots.rlz�A transient overlay will be created on /usr that will be discarded on reboot. Keep in mind that changes to /etc and /var will still persist, and packages commonly modify these directories.z�This operation would modify the following paths, possibly introducing inconsistencies when the transient overlay on /usr is discarded. See the usr_drift_protected_paths configuration option for more information.z  %szeOperation aborted. Pass --setopt=usr_drift_protected_paths= to disable this check and proceed anyway.z;Transient transactions are only supported on bootc systems.zNothing to do.zDownloading Packages:zError downloading packages:z
%sr�
zTransaction failed)UrrN�WITH_MODULESr^�module_stream_switch�dict�_moduleContainer�getSwitchedStreamsrZr
rU�util�	MAIN_PROG�
exceptions�Error�transactionr
�list_transactionrS�info�action�FORWARD_ACTIONS�appendr�BACKWARD_ACTIONS�_ts�reportRemoveSize�reportDownloadSize�	isChanged�_history�group�env�downloadonly�MAIN_PROG_UPPER�tsflags�_BootcSystem�is_bootc_system�os�path�realpath�installroot�persistencer�is_writable�is_unlocked_transient�libdnf� TransactionPersistence_TRANSIENT�_persistencer�list�sorted�files�usr_drift_protected_pathsr�nevrarR�TransactionPersistence_PERSIST�
_promptWanted�assumeno�userconfirm�
make_writable�download_callback_total_cb�download_packages�progress�
DownloadError�cli�indent_blockrrD�gpgsigcheck�
isinstancer�CliTransactionDisplayr`r\�do_transaction�history�old�db�RPMTransaction�_trans�join�post_transaction_output�state�TransactionItemState_ERROR)rc�displayrV�msg�trans�pkg_str�install_pkgs�rmpkgs�install_only�tsi�is_bootc_transaction�bootc_system�bootc_system_needs_unlock�transaction_protected_pathsr�
pkg_file_path�protected_patternr��protected_paths�protected_path�total_cb�e�specific�errstr�tidrds                         �rr�zBaseCli.do_transaction�s�����8�8� � ��9�9�1�1�"&�t�'<�'<�'O�'O�'Q�"R��"�(��9��V�W�X^�W]� �X�X�/�/�X^�X1�	��.�.�.�.�s�3�3�� � ���+�+�.�.�u�5����K�K�� ���L��F��L����:�:����!@�!@�@� �'�'����0��Z�Z�3�?�?�#C�#C�C�#(�L��M�M�#�'�'�*���� ����,�,�V�4����.�.�|�\�J��D�)�)�3�3�5����D�M�M�$7�$7�4�=�=�;L�;L��y�y�%�%����A�W�X�_�_����1�1�`�3�4��4�9�9�,�,�,����A�-�.�.4�f�#�(�(�:R�:R�f�.S�U�$'�8�8�#8�#8�#H�#H�#J�$+���� � ����!6�!6�7�3�>�$+��I�I�*�*�*�
!� �L�(-�%�#��9�9�(�(�I�5��K�K��"^� _�`�"�1�%9�#:�;�;��y�y�,�,�0E�E�E�E�"�x�x�4�4�6��#�/�/�1�04�-��y�y�,�,��6����A�'<�%=�>�'�q�)=�'>�?�?��9�9�0�0�K�?�?�?�'�=�=�?����A�'K�%L�M�%+�$6�$6�$W�$W��!�/:�$�.?�+� �C�)/��	�	�):�
�15���1T�1T�-�&�}�6G�H� ;�C�I�I� F� M� M�m� \�2U�*;�!�
/��K�K��#i�!j�k�3N�2S�2S�2U�.������E�*�.=�N�"�K�K���(?�@�/>�3V�#�1�&M�$N�O�O��9�9�(�(�K�7�"�1�%b�#c�d�d�$*�$6�$6�$U�$U��!��!�!�#��9�9�%�%�T�[�[�-D�-D�-F�"�1�%9�#:�;�;�� 9��*�*�,��K�K��*�+�,�������A�5�6�7�	7�#�{�{�E�E�H��*�*�<����9M�9M�x�X�
���\�*��9�9�!�!���'�8�,��i�G��/�/�1�2�T�'�]�B���G�T�1�'�:���?��L�L�$�$�c�U�+�A�.�E��F�F�L�L�/�/����e�l�l�K�E��E��
�G��$�)�)�D�K�K�?�?��F�G�H��G����9�9�� 2� 2� M� M�M��.�.�.�.�q�1E�/F�G�G���
��I�~�~�3�3�7�"�w�w�~�~�:�:�3�q�6�B�H��<�=���@Q�Q�F��G��.�.�.�.�v�6�6��
7�s�	=`9�9c�A,c�cc����g}|D]�}�j|�\}}|dk(r�|dk(r��jjxr�jj}tj
rtj
j
�s*|s(tjjtd����fd�}	�j||���|j|���|rD|D]}	tj!|	��tjjtd���y#tjjtf$r%}|jt|��Yd}~��_d}~wwxYw)aPerform GPG signature verification on the given packages,
        installing keys if possible.

        :param pkgs: a list of package objects to verify the GPG
           signatures of
        :raises: Will raise :class:`Error` if there's a problem
        rr	zTRefusing to automatically import keys when running unattended.
Use "-y" to override.c�8���jj�S�N)r
r�)r9�y�zrcs   �r�<lambda>z%BaseCli.gpgsigcheck.<locals>.<lambda>cs���T�[�[�%<�%<�%>r NzGPG check FAILED)�_sig_check_pkgr^�	assumeyesr��sys�stdin�isattyrrurvr
�_get_key_for_package�
ValueErrorr|�strrS�critical)
rcrM�error_messages�po�result�errmsg�ay�fnr�r�s
`         rr�zBaseCli.gpgsigcheckKs6������B�!�0�0��4�N�F�F���{���1���Y�Y�(�(�C����1C�1C�-C���	�	����)9�)9�);�R��.�.�.�.�q�2A�0B�C�C�
?��2��-�-�b�"�5��%�%�f�-�/�2�%������$�&��.�.�&�&�q�);�'<�=�=������,�,�j�9�2�"�)�)�#�a�&�1�1��2�s�5D"�"#E*�E%�%E*c�6�d}|jjjd|j�D];}|tj
}|s�tjj|d�}n|jD�cgc]}|�|d|kDr|��}}|Scc}w)zBReturn list of changelogs for package newer then installed versionNrr�	timestamp)
�_rpmconn�readonly_ts�dbMatchr�rpm�RPMTAG_CHANGELOGTIME�datetime�date�
fromtimestamp�
changelogs)rc�package�newest�mi�changelogtimes�chlog�chlogss       r�latest_changelogszBaseCli.latest_changelogsrs������-�-�+�+�3�3�F�G�L�L�I�B��� 8� 8�9�N��!���4�4�^�A�5F�G���	J�
&-�%7�%7�D�%7�E��^�u�[�'9�F�'B��%7��D��
��Ds�?Bc	���d|djd��dtjj|d��dtjj|d��d�}|S)z*Return changelog formatted as in spec filez* r�r5� �authorrm�text)r7r�i18nr)rc�	changelog�	chlog_strs   r�format_changelogzBaseCli.format_changelog�sP��
�k�"�+�+�D�1��H�H�L�L��8�,�-��H�H�L�L��6�*�+�-�	��r c
���t�}|D];}|j|jxs|jg�j	|��=t|j
��D]�}||}ttd�jdj|D�cgc]
}t|���c}���|j|d�D]}t|j|�����ycc}w)NzChangelogs for {}�, r)rpr�source_namerr|r��keysrDr
rUr�r�r�r�)rc�packages�bysrpm�pr��bin_packagesr�chls        r�print_changelogszBaseCli.print_changelogs�s�������A����a�m�m�5�q�v�v�r�:�A�A�!�D��"�&�+�+�-�0�K�!�+�.�L��!�'�(�/�/��	�	�|�:\�|��3�s�8�|�:\�0]�^�_��-�-�l�1�o�>���d�+�+�C�0�1�?�1��:\s�C+Fc
��|jd||��}|jjs|jjr6|jd||��}|j|_|j|_|�r�t|j|�}t|j�dkD�ri}|jjjd}	|	rvt|j�D]^}
|
j�}tjj|�s�3|
j!�s�D|
||
j"|
j$f<�`|jj&}|jj(}
|jj+|jdd||||
d��	�|r|j-|j�t|j�dkDrat/t1d
��t|jt3j4d���D] }|jj7|d|���"|jxs|jS)
z?Check updates matching given *patterns* in selected repository.�upgrades)�reponamer*rrIr;r���=�not in)�
outputType�highlight_nar1�highlight_modes�Obsoleting Packages��key�r1)�returnPkgListsr^r*�verboser+r2r
rr(rH�MODEr��localPkgr�r��exists�verifyLocalPkgrr�color_update_local�color_update_remote�listPkgsr�rDr
�operator�
itemgetter�updatesObsoletesList)rc�patternsr�print_r�r-�typlr1�
local_pkgs�	highlightr��local�cul�cur�obtups               r�
check_updateszBaseCli.check_updates�s����!�!�*�h��!�J���9�9���$�)�)�"3�"3��&�&�{�H�x�&�P�D� �N�N�C�M�"&�"6�"6�C���,�T�[�[�#�>�G��3�;�;��!�#��
� �K�K�,�,�1�1�&�9�	��$�S�[�[�1�� "���
���7�7�>�>�%�0�R�5F�5F�5H�=?�J�������'9�:�2�
�i�i�2�2���i�i�3�3�����$�$�S�[�[�"��+5�w�58�S�.I�%�K���)�)�#�+�+�6��3�=�=�!�A�%��a�-�.�/�#�C�$7�$7�(0�(;�(;�A�(>�@�E��K�K�4�4�U�K�=D�5�F�@�
�{�{�+�c�m�m�+r c�t�|jj�}t|�dk(r|j�n|D]}|j|��|jj�|z
}|dkrE|jj	�s*td�}tjj|��yy)ab Upgrade or downgrade packages to match the latest versions available
            in the enabled repositories.

            :return: (exit_code, [ errors ])

            exit_code is::
                0 = we're done, exit
                1 = we've errored, exit with error string
                2 = we've got work yet to do, onto the next stage
        rz4No packages marked for distribution synchronization.N)	�_goal�
req_lengthr�distro_sync�req_has_distupgrade_allr
rrurv)rc�userlist�oldcount�pkg_spec�cntr�s      r�distro_sync_userlistzBaseCli.distro_sync_userlist�s����:�:�(�(�*���x�=�A������$��� � ��*�%��j�j�#�#�%��0���!�8�D�J�J�>�>�@��J�K�C��.�.�&�&�s�+�+�A�8r c��d}|D]}	|j||��d}�|D]}	|j||��d}�|s(tjjt
d���y#tjj$rV}tjt
d�|jjj|j��Yd}~��d}~wwxYw#tjj$rO}t
d�}	tj|	|jjj|��Yd}~��#d}~wtjj$rW}tjt
d�|jjj|j��Yd}~���d}~wtjj$rJ�wxYw)	aaAttempt to take the user specified list of packages or
        wildcards and downgrade them. If a complete version number is
        specified, attempt to downgrade them to the specified version

        :param specs: a list of names or wildcards specifying packages to downgrade
        :param file_pkgs: a list of pkg objects from local files
        F)�strictTzNo match for argument: %sNzNo package %s available.z6Packages for argument %s available, but not installed.z!No packages marked for downgrade.)�package_downgraderru�MarkingErrorrSryr
r
rHrI�location�downgrade_to�PackageNotFoundError�PackagesNotInstalledErrorr)rv)
rc�specs�	file_pkgsr-r�rr��arg�errr�s
          r�
downgradePkgszBaseCli.downgradePkgs�s������C�
A��&�&�s�6�&�:�����C�

��!�!�#�f�!�5������.�.�&�&�q�)L�'M�N�N���#�>�>�.�.�
A����A�9�:� �K�K�,�,�1�1�#�,�,�?�A�A��
A���>�>�6�6�
=��2�3�����C����!1�!1�!6�!6�s�!;�<�<���>�>�;�;�
A����A�V�W� �K�K�,�,�1�1�#�,�,�?�A�A���>�>�.�.�
��u�
�s=�A(�C�(C�AC�C�G�;AE� G�%AF7�7#Gc��	�	|jjjd}|j||||��}i}i}i}	d}
|dk(rt	|j|�}
|ra|j
rU|j|jz|jzD],}|j|jf}||vs	|||kDs�(|||<�.|rG|jr;|jD],}|j|jf}||vs	|||kDs�(|||<�.|r_|jrSt|j�D];}
|
jt j"k7s�!|
|	|
j|
jf<�=|j$j&}|j$j(}|j$j*}|j$j,}|jj/|j
t1d�|||
||||d���}|j$j2}|j$j4}|j$j6}|j$j8}|jj/|jt1d�|||
||||d	���}|jj/|j:t1d
�||
��}|jj/|j<t1d�||
��}|j$j>}|j$j@}|jj/|jt1d
�||	|
||d���}tC|jD�dkDr||dk(rwtC|jD�}tGt1d��t|jHtKjLd���D] }|jjO|d|
���"n2|jj/|jDt1d�||
��}|jj/|jPt1d�||
��}tC|�rR|dk(rL|dk(rF|dk(r@|dk(r:|dk(r4|dk(r.|dk(r(tRjTjWt1d���yyyyyyyy#tRjTjV$r} dtY| �gfcYd} ~ Sd} ~ wwxYw)zJOutput selection *pkgnarrow* of packages matching *patterns* and *repoid*.rI)�installed_availablerNr�zInstalled Packages)�>�<rr)rr1rzAvailable Packages)r<r;rrzAutoremove PackagesrzExtra PackageszAvailable Upgradesrrrr	r*zRecently Added PackageszNo matching Packages to listr	)-r
rHrrr2r$�hidden_available�reinstall_available�
old_availablerrr%�hidden_installedr(r�r�hawkey�SYSTEM_REPO_NAMEr^�color_list_installed_older�color_list_installed_newer�color_list_installed_reinstall�color_list_installed_extrarr
�color_list_available_upgrade�color_list_available_downgrade�color_list_available_reinstall�color_list_available_installr'r&rrrr*rDr+rrrr)rrurvr�)!rc�basecmd�	pkgnarrowrrrr-�update_pkgs�	inst_pkgsrr1rr
r��clio�clin�clir�clie�rip�clau�clad�clar�clai�rap�raep�reprr�rup�ropr �rrapr�s!                                 r�output_packageszBaseCli.output_packages�s���U	N����(�(�-�-�f�5�I��%�%��8��X�&�W�C�
�K��I��J��G��&� �0����c�B���S�]�]� �0�0��3�3�4��-�-�.�C��8�8�S�X�X�.�C��+�-��{�3�7G�1G�+.��C�(�.��S�]�]��/�/�C��8�8�S�X�X�.�C��)�+�s�Y�s�^�/C�),�	�#��0�
�S�[�[� ����-�B��{�{�f�&=�&=�=�9;�
�B�G�G�R�W�W�#5�6�.�
�9�9�7�7�D��9�9�7�7�D��9�9�;�;�D��9�9�7�7�D��+�+�&�&�s�}�}�a�8L�6M�w�-8�'�7;�4�7;��1N�'�O�C��9�9�9�9�D��9�9�;�;�D��9�9�;�;�D��9�9�9�9�D��+�+�&�&�s�}�}�a�8L�6M�w�-6��7;�4�7;��1N�'�O�C��;�;�'�'�����:O�8P� '��(�:�D��+�+�&�&�s�z�z�1�5E�3F��(/�'�1�C��)�)�.�.�C��)�)�/�/�C��+�+�&�&�s�{�{�A�6J�4K�W�-7��7:�s�0K�'�M�C�
�3�=�=�!�A�%�'�V�*;��#�-�-�(���a�-�.�/�#�C�$7�$7�(0�(;�(;�A�(>�@�E��K�K�4�4�U�K�=D�5�F�@�
�k�k�*�*�3�=�=�!�<Q�:R�$+�W�+�>���;�;�'�'��
�
�A�6O�4P�!(�'�(�;�D��8�}��A�I�#��(�s�a�x�C�1�H��PQ��VZ�^_�V_�dg�kl�dl��n�n�*�*�1�-K�+L�M�M�em�V_��H�x�(�I���_�~�~�#�#�	��s�1�v�h�;���	�s�8R)�)S�
S�S�Sc�v�d}d}|r
|dk(rd}d}n|r	|dk(rd}d}|j||d|��}|jjr<|jD]-}|jr�|r�|j
j
|��/|r"|j
|_|j|_|rg|_|rg|_|S)a#Return a :class:`dnf.yum.misc.GenericHolder` object containing
        lists of package objects that match the given names or wildcards.

        :param pkgnarrow: a string specifying which types of packages
           lists to produce, such as updates, installed, available, etc.
        :param patterns: a list of names or wildcards specifying
           packages to list
        :param installed_available: whether the available package list
           is present as .hidden_available when doing all, available,
           or installed
        :param reponame: limit packages list to the given repository

        :return: a :class:`dnf.yum.misc.GenericHolder` instance with the
           following lists defined::

             available = list of packageObjects
             installed = list of packageObjects
             upgrades = tuples of packageObjects (updating, installed)
             extras = list of packageObjects
             obsoletes = tuples of packageObjects (obsoleting, installed)
             recent = list of packageObjects
        Fr$T�allr%)�ignore_caser)	�_do_package_listsr^�showdupesfromreposr>r$r%r|r=r@)	rcrLrr:r�done_hidden_available�done_hidden_installedr-rs	         rrzBaseCli.returnPkgListsLs���2!&�� %���9��#;�$(�!��I�
 �Y�+�%=�$(�!��I��$�$��x�T�H�%�F���9�9�'�'��.�.���}�}�-B��M�M�(�(��-�/��#&�=�=�C� �#&�=�=�C� � ��C�M� ��C�M��
r c���|jj}d|j_g}g}|D]:}tt|�|�\}}|j|�|j|��<t
|�D]}|jj|||��!||j_|s(tjjtd���y)a�Print out a list of packages that provide the given file or
        feature.  This a cli wrapper to the provides methods in the
        rpmdb and pkgsack.

        :param args: the name of a file or feature to search for
        :return: (exit_code, [ errors ])

        exit_code is::

            0 = we're done, exit
            1 = we've errored, exit with error string
            2 = we've got work yet to do, onto the next stage
        Tz{No matches found. If searching for a file, try specifying the full path or using a wildcard prefix ("*/") at the beginning.N)
r^rcr`r\�provides�extendr�r
�matchcallback_verboserrurvr
)
rc�args�old_sdup�matches�used_search_strings�specrB�used_search_stringrrds
         �rrgzBaseCli.provides~s�����9�9�/�/��'+��	�	�$��� ���D�(-�g�t�(E�d�(K�%�E�%��N�N�5�!��&�&�'9�:���'�?�C��K�K�-�-�c�3F��M�#�'/��	�	�$���.�.�&�&�q�*T�(U�V�
V�r c�^�|jjr|jjsyy)NFT)r^r�r��rcs rr�zBaseCli._promptWanted�s!���9�9���t�y�y�'9�'9��r r�)�)rrNTF)r`rrN)r`NFN)�__name__�
__module__�__qualname__�__doc__rar�r�r�r�r�r!r+r8r^rrgr��
__classcell__)rds@rr\r\�sd���-�5�
f�P%>�N��
2�$,�L,�.#%��5� O�DWN�r8<�;?�0�dV�Br r\c��eZdZd�Zd�Zd�Zd�Zd�Zdd�Zdd�Z	dd	�Z
dd
�Zejfd�Zd�Zd
�Zd�Zd�Zy)�Clic��
�||_i|_d|_tjj
j
�|_|jtjjjj�|jtjjjj�|jtjjjj�|jtjjj j"�|jtjjj$j&�|jtjjj(j*�|jtjjj,j.�|jtjjj0j2�|jtjjj4j6�|jtjjj8j:�|jtjjj<j>�|jtjjj@jB�|jtjjjDjF�|jtjjjHjJ�|jtjjjLjN�|jtjjjPjR�|jtjjjTjV�|jtjjjXjZ�|jtjjj\j^�|jtjjj`jb�|jtjjjdjf�|jtjjjhjj�|jtjjjljn�|jtjjjp�|jtjjjr�|jtjjjt�|jtjjjv�|jtjjjx�|jtjjjz�yr�)>rN�cli_commands�commandrr��demand�DemandSheet�demands�register_command�commands�alias�AliasCommandr'�AutoremoveCommand�check�CheckCommand�clean�CleanCommand�
distrosync�DistroSyncCommand�deplist�DeplistCommand�	downgrade�DowngradeCommandr��GroupCommandr��HistoryCommand�install�InstallCommand�	makecache�MakeCacheCommand�mark�MarkCommand�module�
ModuleCommand�	reinstall�ReinstallCommand�remove�
RemoveCommand�repolist�RepoListCommand�	repoquery�RepoQueryCommand�search�
SearchCommand�shell�ShellCommand�swap�SwapCommand�
updateinfo�UpdateInfoCommand�upgrade�UpgradeCommand�upgrademinimal�UpgradeMinimalCommand�InfoCommand�ListCommand�ProvidesCommand�CheckUpdateCommand�RepoPkgsCommand�HelpCommand)rcrNs  rrazCli.__init__�s ����	��������w�w�~�~�1�1�3������c�g�g�.�.�4�4�A�A�B����c�g�g�.�.�9�9�K�K�L����c�g�g�.�.�4�4�A�A�B����c�g�g�.�.�4�4�A�A�B����c�g�g�.�.�9�9�K�K�L����c�g�g�.�.�6�6�E�E�F����c�g�g�.�.�8�8�I�I�J����c�g�g�.�.�4�4�A�A�B����c�g�g�.�.�6�6�E�E�F����c�g�g�.�.�6�6�E�E�F����c�g�g�.�.�8�8�I�I�J����c�g�g�.�.�3�3�?�?�@����c�g�g�.�.�5�5�C�C�D����c�g�g�.�.�8�8�I�I�J����c�g�g�.�.�5�5�C�C�D����c�g�g�.�.�7�7�G�G�H����c�g�g�.�.�8�8�I�I�J����c�g�g�.�.�5�5�C�C�D����c�g�g�.�.�4�4�A�A�B����c�g�g�.�.�3�3�?�?�@����c�g�g�.�.�9�9�K�K�L����c�g�g�.�.�6�6�E�E�F����c�g�g�.�.�=�=�S�S�T����c�g�g�.�.�:�:�;����c�g�g�.�.�:�:�;����c�g�g�.�.�>�>�?����c�g�g�.�.�A�A�B����c�g�g�.�.�>�>�?����c�g�g�.�.�:�:�;r c��|jj|�|jr�|jj�D]p\}}|jjj||jj|g��}|j|�|jj|df��r|jrQ|jjdd�|jj|jD�cgc]}|df��c}�t�}	|jD]�\}}|jjj|�}	|	sc|jjjr2|dk(r-t!d�}
t"j$j'|
|z��|j)|�|dk(r|	j+���|	j-���	|D]!}t0j=t!d�|��#|jj>jA�}|�$|jjjC�}|D]D}
|jjjE|
�}|s�+|jFjI��F|jjJjM�\}|j_'|jjjQ�jS|�tKjT|j|jjJ�}|jjjQ�jW|�ycc}w#t"j$j.$rO}t0j3|�|j4j7�t9j:d�Yd}~���d}~wwxYw)N)�baseurl�enabler)�*�disablezUnknown repo: '%s'r	zNo repository match: %s),rN�read_all_repos�repofrompathrR�repos�add_new_repor^�_configure_from_options�repos_edr|�repo�insertrh�set�get_matchingr-r
rru�	RepoError�addr�r��ConfigErrorrSr��	optparser�
print_helpr��exitrT�_repo_persistor�get_expired_reposr��get�_repo�expirer
�setup_progress_callbacks�_ds_callbackr`�set_progress_bar�CliKeyImport�_set_key_import)rc�opts�labelr��	this_repo�r�notmatchr��	operationr�r�r��
expired_reposr�bar�
key_imports                r�_configure_reposzCli._configure_repos�s����	�	� � ��&����#�0�0�6�6�8���t� �I�I�O�O�8�8���	�	���Y]�X^�8�_�	��1�1�$�7��
�
�$�$�e�X�%6�7�	 9��9�9��M�M� � ��$4�5��M�M� � ����!C��A�1�h�-��!C�D��5��	�%)�]�]�!��y��9�9�?�?�7�7��=����y�y�~�~�,�,��h�1F�� 4�5��!�n�n�6�6�s�T�z�B�B��L�L��&���(��O�O�%��$�$�&�&3�"�D��N�N�1�6�7��>���	�	�1�1�C�C�E�
�� � �I�I�O�O�0�0�2�M� �C��9�9�?�?�&�&�s�+�D���
�
�!�!�#�!�)-�	�	�(8�(8�(Q�(Q�(S�%��d�i�i�$��	�	������.�.�s�3��(�(����D�I�I�4D�4D�E�
��	�	������-�-�j�9��M"D��$�~�~�)�)�	��O�O�A���N�N�%�%�'��H�H�Q�K�K��	�s �M,�CM1�1O�AO�Oc��tjdjtjj
��tjj�tjtjjd|j�tjtjjd|jjj�tjtjjd|jjj�tjd|jjj �y)Nz{prog} version: %srfzCommand: %szInstallroot: %szReleasever: %szcachedir: %s)rS�debugrUrrsr��const�VERSION�log�logging�DDEBUG�	cmdstringrNr^r��
releasever�cachedirrqs r�_log_essentialszCli._log_essentials�s������)�0�0�c�h�h�6N�6N�0�O��Y�Y�&�&�	(��
�
�3�;�;�%�%�%�t�~�~�	7��
�
�3�;�;�%�%�)�4�9�9�>�>�+E�+E�	G��
�
�3�;�;�%�%�'7��	�	���1�1�	3����^�T�Y�Y�^�^�%<�%<�=r c�(�|j}|jj}|jrFtj
j
�s(tjjtd���|jr|j�D]	}d|_�|js |jjjrdd|jj_
|j�D]5}|j j#tj$j&��7n�|j(r0|j�D]}|j j+��nT|j,sH|j�D]5}|j j#tj$j.��7|j0rJ|jj3|jj4rdnd|jj6��yy)Nz[This command has to be run with superuser privileges (under the root user on most systems).TrkF)�load_system_repo�load_available_repos)rrNr��	root_userrrs�	am_i_rootrurvr
r��iter_enabled�load_metadata_other�	cacheonlyr^�valuesr��setSyncStrategyr��SYNC_ONLY_CACHE�freshest_metadatar��fresh_metadata�	SYNC_LAZY�sack_activation�	fill_sackr��available_repos)rcrr�r�s    r�_process_demandszCli._process_demands	s���,�,���	�	��������8�8�%�%�'��n�n�*�*��A�B�C�C�����*�*�,��+/��(�-�����	�	��� 8� 8�'+�D�I�I�N�N�$�������
�
�*�*�3�8�8�+C�+C�D�'��(�(�!�.�.�0�D��J�J�%�%�'�1��+�+�!�L�L�N�D��J�J�.�.�s�x�x�/A�/A�B�+��"�"��I�I���+/�<�<�+H�+H��e�%)�\�\�%A�%A�
 �
C�#r c�4�|j}|jj|�}|��tj	td�|tjd�|jjjrftj	td�jtjjtjj��|�t �tj	td�jtjj���t �||�|_tj#tj$j&d|�tj#tj$j&d	|�y)
z,Check that the requested CLI command exists.Nz)No such command: %s. Please use %s --helprzLIt could be a {PROG} plugin command, try: "{prog} install 'dnf-command(%s)'")rg�PROGzRIt could be a {prog} plugin command, but loading of plugins is currently disabled.rfzBase command: %szExtra commands: %s)r|r{r�rSr�r
r��argvrNr^�pluginsrUrrsrtr�rr�r�r�)rcr�rjrK�command_clss     r�_parse_commandszCli._parse_commands(s1���,�,���'�'�+�+�G�4�����O�O�A�I�J�#�S�X�X�a�[�
2��y�y�~�~�%�%�����#N�!O�OU�v����+�+�#�(�(�2J�2J�PV�PL�MT�V��N�����#R�!S�SY�SY����1�1�TZ�T3�4��N�"�4�(����
�
�3�;�;�%�%�'9�7�C��
�
�3�;�;�%�%�';�T�Br Nc��tjjj�}|j	|�}|�(tjj
j
�n||_|jj|�}|jr�ttjj�t|jjj |j|jj"�t%j&d�|j(rd|_d|_|j.r&tjj0x|_|_	|j2rn|jjj5d|jjj6tjj8�d|j:_|jjj=|�|j?|j@|jB|jD�d|vr%|jF|jj_#|jjjI�|j`��|j`|jj_0|jjjbsA|jdd
vr3tPjStUd��t%j&d�|jfs|jhrB|jddk7r3tPjStUd
��t%j&d�|jj�5tmjntqjr|jjdz��|jju|jvd�|jjy|jz|j||�|jju|jvd�|jds/|jj�t%j&d�||j_@|jj�dz|_B|jj�D]}|xj�d|zz
c_B�|j��	|j�||�|j�r:|jj|jd�t%j&d�|jj�|jd|�}|j�r,|j�|j:_Id|j_J|j�r|j�|j:_K|j�rd|jj_M|j�rd|jj_N|jdj��|jj��|jj��|j�|�|jj��|jjj=|�|jdj��|jjj`r�tj�j�|jjj`�|jjj`|jj�j��_Y|jjj�dk7rN|jj"j�j�|jjj���t�j�d�dvr�d}|jj�j��D]}|j�r�d|_`d}�|jjj�sd|jj_ad}|rtPj�tUd��yyy#tjJjLtNf$r?}tPjStUd�|�t%j&d�Yd}~��ed}~wtV$rk}tYt[|���d	t]|j^���}tPjStUd�|�t%j&d�Yd}~���d}~wwxYw#t�$rt%j&d�Y���wxYw)aParse command line arguments, and set up :attr:`self.base.conf` and
        :attr:`self.cmds`, as well as logger objects in base instance.

        :param args: a list of command line arguments
        :param option_parser: a class for parsing cli options
        Nrr#r�TrzConfig error: %sr	�: )�downloadzsystem-upgrade�reposync�
modulesynczb--destdir or --downloaddir must be used with --downloadonly or download or system-upgrade command.zconfig-managerz_--enable, --set-enabled and --disable, --set-disabled must be used with config-manager command.�<�main�pluginr�z%s rk)�colorz%_pkgverify_level)�	signaturer`Fz�Warning: Enforcing GPG signature check globally as per active RPM security policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message))crr��aliases�Aliases�resolve�
option_parser�OptionParserr��parse_main_argsrFrDr�r�rPrNr^�history_record_packagesr
r�r��quiet�
debuglevel�
errorlevelr
�
VERBOSE_LEVELr��
_set_value�system_cachedir�PRIO_DEFAULTrr��_read_conf_filer��releasever_major�releasever_minorr�_adjust_conf_optionsrur�r�rSr�r
�IOErrorrr��repr�filename�destdirr�r|�set_enabled�set_disabled�	sleeptimer6�sleep�random�	randrange�add_commandsr{�init_plugins�
disableplugin�enablepluginr�rjrgr�r�r�r�help�parse_command_args�allowerasing�
allow_erasing�_allow_erasingr��debugsolver�debug_solverr*�
pre_configure�pre_configure_plugins�_activate_persistorr��configure_plugins�	configurers�
ensure_dirr�r`�pkgdirrrH�reinitr��expandMacror��gpgcheck�localpkg_gpgcheckrT)	rcrjrr	r�r�r6�forcingr�s	         rr4z
Cli.configure>se���'�'�/�/�)�)�+�����t�$���$����.�.�;�;�=�*7�	
���~�~�-�-�d�3���<�<��#�)�)�#�#�$��4�9�9�>�>�A�A�4�9�9��9�9�+�+�
-��H�H�Q�K��:�:��D�O��D�O��<�<�03�	�	�0G�0G�G�D�O�d�o�	��~�~��	�	���)�)�*�d�i�i�n�n�6T�6T�*-�(�(�*?�*?�A�)-����&��I�I�N�N�2�2�4�8�� � ����$�2G�2G��I^�I^�_���~�&*�i�i��	�	���#��I�I�N�N�/�/�1��<�<�#�%)�\�\�D�I�I�N�N�"��9�9�>�>�.�.�4�<�<�HL�4L�����#K�!L����������� 1� 1�t�|�|�GW�7W��O�O��>�?�
@�
�H�H�Q�K��>�>�%��J�J�v�'�'�����(;�<�=�	
���#�#�D�$5�$5�v�>��	�	���t�1�1�4�3D�3D�d�K����#�#�D�$5�$5�h�?�
�|�|��N�N�%�%�'��H�H�Q�K���	�	�����,�,�s�2����9�9�>�>�C��N�N�e�c�k�)�N�"�	
����	�� � ��t�,�
�9�9��N�N�%�%�d�l�l�3��H�H�Q�K��~�~�0�0����t�D�����)-�):�):�D�L�L�&�'+�D�I�I�$��!�!�-1�-C�-C�D�L�L�*����*.�D�I�I�N�N�'��>�>�'+�D�I�I�N�N�$����"�"�$��	�	�'�'�)�	
�	�	�%�%�'����d�#��	�	�#�#�%��	�	���.�.�t�4������ ��9�9�>�>�!�!��H�H����	�	��� 6� 6�7�+/�9�9�>�>�+A�+A�D�I�I�O�O���!�(��9�9�>�>���6�)��I�I���!�!�(�(�t�y�y�~�~�/C�/C�(�D��?�?�.�/�3G�G��G��	�	���4�4�6���=�=�� $��
���	7�
�9�9�>�>�3�3�37��	�	���0��������E����H��o���*�*�J�7�	��O�O�A�0�1�1�5��H�H�Q�K�K���	���A��K��a�j�j�)9�:�A��O�O�A�0�1�1�5��H�H�Q�K�K��	��X�	��H�H�Q�K�	�s8� Db�e�#e�(4c"�"e�.A e�e�e>�=e>c�V�tjjd�}|jj}|jd�|j
d�|jd�}|jd�tjjk(rVtjj|�s7tjjtd�j!|���|j#tjj$��|j
d�}|jd�tjjk(rd}|j&}|j)||jd���d}	d}
|�:|j*�.tj,j/|j0�\}}	}
n(|dk(r#tj,j/|�\}}	}
d	�}|j2}|j4}
|||j*�|_|||	|�|_|||
|
�|_|j*�t6j9td
��dD]}|j;|��|jj<j?|�|�|S)N�config�config_file_pathzConfig file "{}" does not exist)�priority�reposdir�varsdirri)rAc��|D]}|��|cSyr�rr)rjr6s  r�or_elsez$Cli._read_conf_file.<locals>.or_else�s�����?��J��r zPUnable to detect release version (use '--releasever' to specify release version))r��logdir�
persistdir) rr��TimerrNr^�_check_remote_file�_search_inside_installroot�
_get_value�
_get_priority�PRIO_COMMANDLINEr�r��isfilerur�r
rU�read�PRIO_MAINCONFIG�
substitutions�update_from_etcr�r��detect_releaseversr�rrrSrT�prepend_installroot�_logging�_setup_from_dnf_conf)rcr�rr�timerr^r�	from_root�subst�	det_major�	det_minorrC�old_releasever_major�old_releasever_minor�opts               rrzCli._read_conf_file�s6�����!�!�(�+���y�y�~�~��	
��� 2�3�	
�'�'�(:�;��?�?�#5�6�����1�2�c�h�h�6O�6O�O��G�G�N�N�8�,��.�.�,�,�Q�/P�-Q�-X�-X�Ya�-b�c�c�	
�	�	�3�8�8�3�3�	�4��3�3�J�?�	����i�(�C�H�H�,E�,E�E��I��"�"��
���i�����1K��L��	��	���$�/�/�"9�/2�w�w�/I�/I�$�JZ�JZ�/[�,�J�	�9�
�3�
�/2�w�w�/I�/I�*�/U�,�J�	�9�	� $�4�4��#�4�4��!�*�d�o�o�>��� '�(8�)�EY� Z��� '�(8�)�EY� Z����?�?�"��N�N�1�0�1�
2�8�C��$�$�S�)�8�	
�	�	���/�/��5�
���r c��|�|�yg}|js|r|jd�|js|r|jd�|js|r|jd�|js|r|jd�|j
j
|||j|j|j|j��y)zz

        :param opts:
        :param cmp_type: string supported "eq", "gte"
        :param all:
        :return:
        N�bugfix�enhancement�
newpackage�security)�types�advisory�bugzilla�cves�severity)r^r|r_r`rarN�add_security_filtersrcrdrerf)rcr��cmp_typer`rbs     r� _populate_update_security_filterz$Cli._populate_update_security_filters���
�L�s�{�����;�;�#��L�L��"����s��L�L��'��?�?�c��L�L��&��=�=�C��L�L��$��	�	�&�&�x�u�t�}�}�04�
�
�D�I�I�04�
�
�	'�	?r c���|�/|jjjj|�|�0|jjjj|�yy)z�
        Change minimal logger level for terminal output to stdout and stderr according to specific
        command requirements
        @param stdout: logging.INFO, logging.WARNING, ...
        @param stderr:logging.INFO, logging.WARNING, ...
        N)rNrS�stdout_handler�setLevel�stderr_handler)rc�stdout�stderrs   r�redirect_loggerzCli.redirect_logger$sQ�����I�I���-�-�6�6�v�>����I�I���-�-�6�6�v�>�r c���tjjj|�}||jj
_|jjj�j|�yr�)	rr�r��MultiFileProgressMeterrNr
r�r`r�)rc�for�s   r�redirect_repo_progresszCli.redirect_repo_progress1sM���7�7�#�#�:�:�2�>��$,��	�	���!��	�	������.�.�x�8r c�x�|jjj�}|�y|jjj�j	|j
��}|j
�}|j	d��|}|D]
}||kDs�	|}�||kDrtd|z�td|z�yy)N)rgra)�
advisory_typez,Security: %s is an installed security updatez-Security: %s is the currently running version)rNr@�get_running_kernelrBrCrr$rD)rc�kernel�q�ikpkgrs     r�_check_running_kernelzCli._check_running_kernel6s��������2�2�4���>���I�I�N�N� � �"�*�*�F�K�K�*�@��
�K�K�M��	�	�	�
�	�+����C��U�{�����6�>��@�5�H�I��A�F�J�K�r c��t|jj��tjjt
dj||����)Nz)argument {}: not allowed with argument {})rDr��print_usagerrurvr
rU)rc�option_string_1�option_string_2s   r�_option_conflictzCli._option_conflictHsH��
�d�n�n�(�(�*�+��n�n�"�"�1�%P�%W�%W��_�&.�$/�0�	0r c��|jD]J}||jvr+tjj	td�|z��||j|<�Ly)zRegister a Command. :apizCommand "%s" already definedN)r	r{rrur�r
)rcr�rs   rr�zCli.register_commandMsQ���'�'�D��t�(�(�(��n�n�0�0��3Q�1R�UY�1Y�Z�Z�&1�D���d�#�(r c�J�|j�|jjjr`tjt
d�djtt|jjj���z�|jjjr`tjt
d�djtt|jjj���z�|jjj�D]�}|jr\tjt
d�|jzdzdjtt|j���z�|js�xtjt
d�|jzdzdjtt|j���z���|jj�S)a2Call the base command, and pass it the extended commands or
           arguments.

        :return: (exit_code, [ errors ])

        exit_code is::

            0 = we're done, exit
            1 = we've errored, exit with error string
            2 = we've got work yet to do, onto the next stage
        zExcludes in dnf.conf: r�zIncludes in dnf.conf: zExcludes in repo rzIncludes in repo )r�rNr^�excludepkgsrSr�r
r�r�r��includepkgsr�r��idr|�run)rcr�s  rr�zCli.runTsx��	
�����9�9�>�>�%�%��L�L��*�+�d�i�i��s�4�9�9�>�>�C]�C]�?^�8_�.`�`�
b��9�9�>�>�%�%��L�L��*�+�d�i�i��s�4�9�9�>�>�C]�C]�?^�8_�.`�`�
b��I�I�O�O�0�0�2�D�������Q�2�3�d�g�g�=��D�#�y�y���D�4D�4D�0E�)F�G�H�I�������Q�2�3�d�g�g�=��D�#�y�y���D�4D�4D�0E�)F�G�H�I�3��|�|���!�!r r�)NNN)�eqN)NN)rsrtrurar�r�r�r�r4rrirpr�rortr{r�r�r�rrr rryry�sY��"<�H1:�f	>�C�>C�,M�`;�z?�2?�),�
�
�9�
L�$0�
2�"r ry)r;)Qrv�
__future__rrr�collections.abcr�ImportError�collectionsrr�rr�rr�r#r�r�r6rA�libdnf.transactionr�r;r
�dnf.clir�dnf.i18nrr
r�dnf.cli.aliases�dnf.cli.commands�dnf.cli.commands.alias�dnf.cli.commands.autoremove�dnf.cli.commands.check�dnf.cli.commands.clean�dnf.cli.commands.deplist�dnf.cli.commands.distrosync�dnf.cli.commands.downgrade�dnf.cli.commands.group�dnf.cli.commands.history�dnf.cli.commands.install�dnf.cli.commands.makecache�dnf.cli.commands.mark�dnf.cli.commands.module�dnf.cli.commands.reinstall�dnf.cli.commands.remove�dnf.cli.commands.repolist�dnf.cli.commands.repoquery�dnf.cli.commands.search�dnf.cli.commands.shell�dnf.cli.commands.swap�dnf.cli.commands.updateinfo�dnf.cli.commands.upgrade�dnf.cli.commands.upgrademinimal�dnf.cli.demand�dnf.cli.format�dnf.cli.option_parser�dnf.conf�dnf.conf.substitutions�	dnf.const�dnf.db.history�dnf.exceptions�dnf.logging�
dnf.persistor�
dnf.plugin�dnf.rpm�dnf.sack�dnf.transaction�dnf.util�dnf.yum.misc�	getLoggerrSrr2rPrZ�Baser\�objectryrrr r�<module>r�s+��(�&�&�'�%�(�$�����	�
�
�
��
�����
����"����"�!����!���!�� �!����"��&�����������������	��	�	�5�	!���3�"H�2H�H�c�h�h�H�VK"�&�K"��Q�%�$�$�%�s�E�E�E

Youez - 2016 - github.com/yon3zu
LinuXploit