403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /lib/python3.11/site-packages/ansible/module_utils/common/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /lib/python3.11/site-packages/ansible/module_utils/common/__pycache__/parameters.cpython-311.pyc
�

���c_����ddlmZmZmZeZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlmZmZmZddlmZddlmZdd	lmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$dd
l%m&Z&m'Z'ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ddl0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6dd
l7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHed��ZIe:de#d�e;de"d�e<de!d�e=ded�fZJddddddddgd�fddddd d!d"d#�ZKd$ZLeHeEeAe?eCeBeFeGeDeDe@e>d%�ZMd&�ZNd:d'�ZOd;d(�ZPd<d)�ZQd=d+�ZRd,�ZSd-�ZTd.�ZUd>d0�ZVd1�ZWd<d2�ZXd?d3�ZYd<d4�ZZ							d@d5�Z[d6�Z\d7�Z]e^��fd8�Z_d9�Z`dS)A�)�absolute_import�division�print_functionN)�deque)�chain)�is_iterable)�to_bytes�	to_native�to_text)�lenient_lowercase)�warn)�
AliasError�AnsibleFallbackNotFound�AnsibleValidationErrorMultiple�ArgumentTypeError�ArgumentValueError�ElementError�MutuallyExclusiveError�
NoLogError�RequiredByError�
RequiredError�RequiredIfError�RequiredOneOfError�RequiredTogetherError�SubParameterTypeError)�BOOLEANS_FALSE�
BOOLEANS_TRUE)�KeysView�Set�Sequence�Mapping�MutableMapping�
MutableSet�MutableSequence)�binary_type�
integer_types�string_types�	text_type�PY2�PY3)�check_mutually_exclusive�check_required_arguments�check_required_together�check_required_one_of�check_required_if�check_required_by�check_type_bits�check_type_bool�check_type_bytes�check_type_dict�check_type_float�check_type_int�check_type_jsonarg�check_type_list�check_type_path�check_type_raw�check_type_str�required_together)�func�attr�err�required_one_of�required_if�required_by)�
check_modeF)�_debugF)�_diffF)�_keep_remote_filesF)�_nameN)�no_logF)�_remote_tmpN�_selinux_special_fs)�fuse�nfs�vboxsf�ramfs�9p�vfat)�_shellz/bin/sh)�_socket_pathN)�_string_conversion_actionr
)�_syslog_facility�INFO)�_tmpdirN)�
_verbosityr)�ansible_versionz0.0)rC�debug�diff�keep_remote_files�module_namerH�
remote_tmp�selinux_special_fs�shell_executable�socket�string_conversion_action�syslog_facility�tmpdir�	verbosity�version)rCrYrZr[rH)�str�list�dict�bool�int�float�path�raw�jsonarg�json�bytes�bitsc	��t|��s|�d}t�|��}n-|}t|dt	t|������}||fS)a�Returns the callable used to validate a wanted type and the type name.

    :arg wanted: String or callable. If a string, get the corresponding
        validation function from DEFAULT_TYPE_VALIDATORS. If callable,
        get the name of the custom callable and return that for the type_checker.

    :returns: Tuple of callable function or None, and a string that is the name
        of the wanted type.
    Nrf�__name__)�callable�DEFAULT_TYPE_VALIDATORS�get�getattrr
�type)�wanted�type_checkers  �K/usr/lib/python3.11/site-packages/ansible/module_utils/common/parameters.py�_get_type_validatorr|{se���F���
F��>��F�.�2�2�6�:�:��������Y�t�F�|�|�-D�-D�E�E������c��|�t||��}t|�����t|�����zS�N)�_handle_aliasesrg�keys)�
argument_spec�
parameters�aliasess   r{�_get_legal_inputsr��sE����!�-��<�<����������$�}�'9�'9�';�';�"<�"<�<�<r}c�l�|�t||��}t��}|���D]~}||vrx|}|rt||gz��}|�|��|�Jt||��}g}	|D]}
|
|vr�|	�|
���|�||	|fi���|S)a�Check keys in parameters against those provided in legal_inputs
    to ensure they contain legal values. If legal_inputs are not supplied,
    they will be generated using the argument_spec.

    :arg argument_spec: Dictionary of parameters, their type, and valid values.
    :arg parameters: Dictionary of parameters.
    :arg legal_inputs: List of valid key names property names. Overrides values
        in argument_spec.
    :arg options_context: List of parent keys for tracking the context of where
        a parameter is defined.

    :returns: Set of unsupported parameters. Empty set if no unsupported parameters
        are found.
    )r��setr��tuple�addr��append�update)r�r��legal_inputs�options_context�store_supported�unsupported_parameters�k�context�supported_aliases�supported_params�options           r{�_get_unsupported_parametersr��s��� ��(��
�C�C�� �U�U��
�_�_�
�
�Y�Y���L� � ��G��
7���1�#� 5�6�6��"�&�&�w�/�/�/��*�$3�M�:�$N�$N�!�#%� �*�4�4�F��!2�2�2� �$�+�+�F�3�3�3�3��&�&��2B�DU�1V�'W�X�X�X��!�!r}c�r�i}|���D�]\}}|�dd��}|�dd��}|�dd��}	|�K||�dg��D].}
|
�d��|vr|�|
���/|�|	rtd|z���|���t	|��rt|ttf��rtd	���|D]3}
|||
<|
|vr(||vr|�|�||
f��||
||<�4�� |S)
aUProcess aliases from an argument_spec including warnings and deprecations.

    Modify ``parameters`` by adding a new key for each alias with the supplied
    value from ``parameters``.

    If a list is provided to the alias_warnings parameter, it will be filled with tuples
    (option, alias) in every case where both an option and its alias are specified.

    If a list is provided to alias_deprecations, it will be populated with dictionaries,
    each containing deprecation information for each alias found in argument_spec.

    :param argument_spec: Dictionary of parameters, their type, and valid values.
    :type argument_spec: dict

    :param parameters: Dictionary of parameters.
    :type parameters: dict

    :param alias_warnings:
    :type alias_warnings: list

    :param alias_deprecations:
    :type alias_deprecations: list
    r�N�default�requiredF�deprecated_aliases�namezBinternal error: required and default are mutually exclusive for %sz/internal error: aliases must be a list or tuple)	�itemsrvr��
ValueErrorr�
isinstancer%r(�	TypeError)r�r��alias_warnings�alias_deprecations�aliases_resultsr��vr�r�r��aliass           r{r�r��s}��2�O��%�%�'�'�2�2���A��%�%�	�4�(�(���%�%�	�4�(�(���5�5��U�+�+���)�&�q�)�-�-�.B�B�G�G�
5�
5���9�9�V�$�$�
�2�2�&�-�-�e�4�4�4����8���a�de�e�f�f�f��?���7�#�#�	O�z�'�K��;S�'T�'T�	O��M�N�N�N��	2�	2�E�%&�O�E�"��
�"�"��
�?�?�~�'A�"�)�)�1�e�*�5�5�5� *�5� 1�
�1�
��	2��r}�c	���g}|���D�]R\}}||v�rG|r	|�d|�d�}n|}|�d���C|�d|z|�d��|�d��d���nW|�d���B|�d|z|�d��|�d��d	���|�d
��}|�t||}t|t��r|g}t|t
��r?|D]<}	t|	t��r%|�t||	|������=��T|S)a�Return a list of deprecations

    :arg argument_spec: An argument spec dictionary
    :arg parameters: Dictionary of parameters

    :returns: List of dictionaries containing a message and version in which
        the deprecated parameter will be removed, or an empty list.

    :Example return:

    .. code-block:: python

        [
            {
                'msg': "Param 'deptest' is deprecated. See the module docs for more information",
                'version': '2.9'
            }
        ]
    z["z"]�removed_at_dateNzBParam '%s' is deprecated. See the module docs for more information�removed_from_collection)�msg�date�collection_name�removed_in_version)r�rer��options)�prefix)r�rvr�r�r!rg�extend�_list_deprecations)
r�r�r��deprecations�arg_name�arg_opts�
sub_prefix�sub_argument_spec�
sub_arguments�
sub_paramss
          r{r�r��s���*�L�+�1�1�3�3�v�v���(��z�!�!��
&�+1�6�6�8�8�8�<�
�
�%�
��|�|�-�.�.�:��#�#�_�bl�l�$�L�L�):�;�;�'/�|�|�4M�'N�'N�%�%�����
���2�3�3�?��#�#�_�bl�l�'�|�|�,@�A�A�'/�|�|�4M�'N�'N�%�%����!)���Y� 7� 7�� �,� *�8� 4�
��m�W�5�5�4�%2�O�M��m�T�2�2�v�&3�v�v�
�%�j�'�:�:�v�(�/�/�0B�CT�V`�is�0t�0t�0t�u�u�u����r}c
�r�t��}|���D�]�\}}|�dd��rp|�|d��}|rX	|�t	|����n4#t
$r'}td|�dt
|�������d}~wwxYw|�d��}|��|�d��}|�|��}	|	��|dks |d	kr�|�d
d��dkr�t|	t��s|	g}	|	D]�}
t|
t��rt|
��}
t|
t��s$td�||
|�����|�t||
���������|S)
z�Return set of no log values

    :arg argument_spec: An argument spec dictionary
    :arg params: Dictionary of all parameters

    :returns: :class:`set` of strings that should be hidden from output:
    rHFNzFailed to convert "z": r�rxrhrg�elementsr�zXValue '{1}' in the sub parameter field '{0}' must by a {2}, not '{1.__class__.__name__}')r�r�rvr��_return_datastructure_namer�r
r�rgr'r4r!�format�_list_no_log_values)r��params�
no_log_valuesr�r��
no_log_object�er��wanted_type�sub_parameters�	sub_params           r{r�r�5s����E�E�M�+�1�1�3�3�!`�!`���(��<�<��%�(�(�	]�"�J�J�x��6�6�M��
]�]�!�(�(�)C�M�)R�)R�S�S�S�S�� �]�]�]�#�)�H�H�H�i�XY�l�l�l�$[�\�\�\�����]����%�L�L��3�3���(�"�,�,�v�.�.�K�#�Z�Z��1�1�N��)��&�(�(�[�F�-B�-B�x�|�|�T^�`b�Gc�Gc�gm�Gm�Gm�%�n�d�;�;�:�*8�)9��%3�
`�
`�	�&�i��>�>�C�(7�	�(B�(B�I�)�)�W�=�=�u�"+�-K�KQ�6�RZ�\e�gr�Ks�Ks�#u�#u�u�&�,�,�-@�AR�T]�-^�-^�_�_�_�_���s�"A;�;
B,�"B'�'B,c#�bK�t|ttf��r|rt|d���V�dSt|t��r5|���D]}t
|d��D]}|V���dSt|��r|D]}t
|��D]}|V���dS|�t|t��rdSt|ttt��tgz����rt|d���V�dStdt|��z���)zu Return native stringified values from datastructures.

    For use with removing sensitive values pre-jsonification.�surrogate_or_strict��errorsN��
simplerepr)�	nonstringzUnknown parameter type: %s)r�r(r%r
r!r�r�rrir�rgr&rkr�rx)�obj�element�
subelements   r{r�r�es~�����#�	�;�/�0�0�D��	?��C�(=�>�>�>�>�>�>���	�C��	!�	!�D��y�y�{�{�	!�	!�G�8����D�D�
!�
!�
� � � � � �
!�	!�	!�
�S�	�	�
D��	!�	!�G�8��A�A�
!�
!�
� � � � � �
!�	!�	!�

��
�3��-�-����	�C��t�M�2�2�e�W�<�=�=�	>�	>�D���|�4�4�4�4�4�4�4�4��4��S�	�	�B�C�C�Cr}c���t|ttf��r�|}t|t��rd}trt	|d���}n/t|t��rd}t
rt
|d���}||vrdS|D]}|�|d��}�|r)t|t��rt
|dd�	��}�n|s)t|t��rt	|dd�	��}�n�|}�n�t|t��rJt|t��rt|����}ng}|�||f��|}�n�t|t��rVt|t��rt|����}nt��}|�||f��|}�n"t|t��rIt|t ��rt|����}ni}|�||f��|}n�t|t#t%t&t(t*t,f������r%t/|dd�	��}||vrdS|D]	}||vrdS�
n]t|t0jt0jf��r|���}n"t7d
t|���d|�����|S)a�
    Helper function for :meth:`remove_values`.

    :arg value: The value to check for strings that need to be stripped
    :arg no_log_strings: set of strings which must be stripped out of any values
    :arg deferred_removals: List which holds information about nested
        containers that have to be iterated for removals.  It is passed into
        this function so that more entries can be added to it if value is
        a container type.  The format of each entry is a 2-tuple where the first
        element is the ``value`` parameter and the second value is a new
        container to copy the elements of ``value`` into once iterated.

    :returns: if ``value`` is a scalar, returns ``value`` with two exceptions:

        1. :class:`~datetime.datetime` objects which are changed into a string representation.
        2. objects which are in ``no_log_strings`` are replaced with a placeholder
           so that no sensitive data is leaked.

        If ``value`` is a container type, returns a new empty container.

    ``deferred_removals`` is added to as a side-effect of this function.

    .. warning:: It is up to the caller to make sure the order in which value
        is passed in is correct.  For instance, higher level containers need
        to be passed in before lower level containers. For example, given
        ``{'level1': {'level2': 'level3': [True]} }`` first pass in the
        dictionary for ``level1``, then the dict for ``level2``, and finally
        the list for ``level3``.
    Tr�r�F�#VALUE_SPECIFIED_IN_NO_LOG_PARAMETERz********zutf-8�surrogate_then_replace)�encodingr��Value of unknown type: �, )r�r(r%r)r	r*r�replacer r$rxr�rr#r�r!r"r�rr&rkri�NoneTyper
�datetimer��	isoformatr�)�value�no_log_strings�deferred_removals�native_str_value�
value_is_text�omit_me�	new_value�
stringy_values        r{�_remove_values_conditionsr�~s#��<�%�)�[�1�2�2�;P� ���e�Y�'�'�	P� �M��
Q�#+�E�:O�#P�#P�#P� ��
��{�
+�
+�	P�!�M��
P�#*�5�9N�#O�#O�#O� ��~�-�-�8�8�%�	J�	J�G�/�7�7���I�I����	%�Z�(8�+�F�F�	%��,�w�G_�`�`�`�E�E��	%�:�.>�	�#J�#J�	%��-��H`�a�a�a�E�E�$�E�E�	�E�8�	$�	$�#P��e�_�-�-�	�#��U���
�
�I�I��I�� � �%��!3�4�4�4����	�E�3�	�	�P��e�Z�(�(�	�#��U���
�
�I�I����I�� � �%��!3�4�4�4����	�E�7�	#�	#�P��e�^�,�,�	�#��U���
�
�I�I��I�� � �%��!3�4�4�4����	�E�5��}�u�d�H�6M�!N�!N�O�O�	P�	P�P�!�%�'�BW�X�X�X�
��N�*�*�8�8�%�	=�	=�G��-�'�'�<�<�<�(�	=�
�E�H�-�x�}�=�	>�	>�P����!�!����i�4��;�;�;�;���N�O�O�O��Lr}Tc��t��}|���D]U\}}|�dd��}||vr6|�|r2|�dd��r|r|�|��|||<�V|S)a�Set default values for parameters when no value is supplied.

    Modifies parameters directly.

    :arg argument_spec: Argument spec
    :type argument_spec: dict

    :arg parameters: Parameters to evaluate
    :type parameters: dict

    :kwarg set_default: Whether or not to set the default values
    :type set_default: bool

    :returns: Set of strings that should not be logged.
    :rtype: set
    r�NrHF)r�r�rvr�)r�r��set_defaultr��paramr�r�s       r{�
_set_defaultsr��s���$�E�E�M�%�+�+�-�-�
(�
(���u��)�)�I�t�,�,���
�"�"��(;�{�(;��y�y��5�)�)�
+�g�
+��!�!�'�*�*�*� '�J�u����r}c��t|ttf��r|St|t��rHt|t��rt|����}ng}|�||f��|St|t��rTt|t��rt|����}nt��}|�||f��|St|t��rHt|t��rt|����}ni}|�||f��|St|ttttt t"f������r|St|t$jt$jf��r|St)dt|���d|�����)za Helper method to :func:`sanitize_keys` to build ``deferred_removals`` and avoid deep recursion. r�r�)r�r(r%r r$rxr�rr#r�r!r"r�rr&rkrir�r�r�r�)r�r��ignore_keysr�r�s     r{�_sanitize_keys_conditionsr�s����%�)�[�1�2�2�����%��"�"���e�_�-�-�	�#��U���
�
�I�I��I�� � �%��!3�4�4�4����%������e�Z�(�(�	�#��U���
�
�I�I����I�� � �%��!3�4�4�4����%��!�!���e�^�,�,�	�#��U���
�
�I�I��I�� � �%��!3�4�4�4����%��u�]�U�D�(�4K�L�L�M�M�N�N�����%�(�+�X�]�;�<�<����
�)�t�E�{�{�{�{�E�E�J�
K�
K�Kr}c��|�t��}t|��\}}g}i}|dkrot|t��rZt|t��r||d<n?t|t��r*t|�����d|d<|D]�}		|�||	fi|����� #ttf$rv}
d|z}|r|dd�
|��zz
}|dt|	���d|�d	t|
����z
}|�t|����Yd}
~
��d}
~
wwxYw|S)
Nrfr�rzElements value for option '%s'z found in '%s'� -> z is of type �" and we were unable to convert to �: )rr|r�r'rhrgr�r�r�r��joinrxr
r)r��	parameter�valuesr�r�rz�wanted_element_type�validated_parameters�kwargsr�r�r�s            r{�_validate_elementsr�'s���
�~�/�1�1��(;�K�(H�(H�%�L�%����F��e�#�#�
�;��(M�(M�#��i��.�.�	8�'�F�7�O�O�
�	�4�
(�
(�	8�"�9�>�>�#3�#3�4�4�Q�7�F�7�O��-�-��	-� �'�'���U�(E�(E�f�(E�(E�F�F�F�F���:�&�	-�	-�	-�2�Y�>�C��
G��'�&�+�+�o�*F�*F�F�F���C�t�TY�{�{�{�{�\o�\o�\o�qz�{|�q}�q}�q}�~�~�C��M�M�,�s�+�+�,�,�,�,�,�,�,�,�����	-���� �s�!B>�>E�A,E�Ec	���|�t��}|���D�]�\}}||vr�||}|��|�d��}t|��\}	}
i}|
dkrFt	|t
��r1t
|�����d|d<|r||d<	|	|fi|��||<|�dd��}|r�||}
|dkst	|
t��sMd	|
�d
|
�d�}|r|dd
�|��zz
}|dz
}|�	t|����t|||
||��||<��8#ttf$rw}d|�dt|����}|r|dd
�|��zz
}|d|
�dt|����z
}|�	t|����Yd}~���d}~wwxYwdS)a&Validate that parameter types match the type in the argument spec.

    Determine the appropriate type checker function and run each
    parameter value through that function. All error messages from type checker
    functions are returned. If any parameter fails to validate, it will not
    be in the returned parameters.

    :arg argument_spec: Argument spec
    :type argument_spec: dict

    :arg parameters: Parameters
    :type parameters: dict

    :kwarg prefix: Name of the parent key that contains the spec. Used in the error message
    :type prefix: str

    :kwarg options_context: List of contexts?
    :type options_context: list

    :returns: Two item tuple containing validated and coerced parameters
              and a list of any errors that were encountered.
    :rtype: tuple

    Nrxrfrr�r�r�rgz
Invalid type z
 for option '�'z found in '%s'.r�z9, elements value check is supported only with 'list' typez
argument 'z
' is of type r�r�)rr�rvr|r�r'rgr�r�r�rr�r�r�rxr
)r�r�r�r�r�r��specr�r�rz�wanted_namer��elements_wanted_typer�r�r�s                r{�_validate_argument_typesr�Csa��4�~�/�1�1��$�*�*�,�,�&2�&2���t��
�"�"���5�!���=���h�h�v�&�&��$7��$D�$D�!��k����%���J�{�L�$I�$I��"�:�?�?�#4�#4�5�5�a�8�F�7�O��
*�#)��x� �	2� ,��U� =� =�f� =� =�J�u��#'�8�8�J��#=�#=� �#�
w�%�e�,���&�(�(�
�8�T�0J�0J�(��?J�{�{�H�H�H�U�C�&�P��0�6�;�;��3O�3O�O�O���V�V�C��M�M�"3�C�"8�"8�9�9�9�$6�7K�U�T\�^m�ou�$v�$v�
�5�!����:�&�	2�	2�	2�	2�38�5�5�$�u�+�+�+�F�C��
H��(�6�;�;��+G�+G�G�G���C����i�XY�l�l�l�[�[�C��M�M�+�C�0�0�1�1�1�1�1�1�1�1�����	2����C&2�&2s�1B*E�G%�.A,G � G%c�P��|�t��}|���D�]~\}}|�d������t�tt
tf���r�t�ttf���s�||v�r�t||t��r��fd�||D��}|r�d�
d��D����}d�
|��}d|�d|�d|��}	|r)d	�|	d
�
|����}	|�t|	������"||�vr�||dkr.tj���}
t!|
��dkr|
\||<||d
kr.t#j���}
t!|
��dkr|
\||<||�vr}d�
d��D����}d|�d|�d||��}	|r)d	�|	d
�
|����}	|�t|	������)d|�d���}	|r)d	�|	d
�
|����}	|�t%|	�������dS)zPEnsure all arguments have the requested values, and there are no stray argumentsN�choicesc���g|]}|�v�|��	S�r�)�.0�itemr�s  �r{�
<listcomp>z-_validate_argument_values.<locals>.<listcomp>�s$��� [� [� [�$�t�SZ�GZ�GZ��GZ�GZ�GZr}r�c�,�g|]}t|����Sr��r
�r��cs  r{r�z-_validate_argument_values.<locals>.<listcomp>����0O�0O�0O�!��1���0O�0O�0Or}z	value of z must be one or more of: z. Got no match for: z{0} found in {1}r��Falser��Truec�,�g|]}t|����Sr�rrs  r{r�z-_validate_argument_values.<locals>.<listcomp>�rr}z must be one of: z, got: z%internal error: choices for argument z are not iterable: )rr�rvr��	frozensetrr r%r(rgr�r�r�rr�intersection�lenrr)r�r�r�r�r�r��	diff_list�choices_str�diff_strr��overlapr�s           @r{�_validate_argument_valuesr�s�����~�/�1�1��$�*�*�,�,�)2�)2���t��(�(�9�%�%���?���g�	�8�X�>�?�?�$	2�
�SZ�]h�js�\t�Hu�Hu�$	2��
�"�"��j��/��6�6�?� [� [� [� [�*�U�2C� [� [� [�I� �?�&*�i�i�0O�0O�w�0O�0O�0O�&P�&P��#'�9�9�Y�#7�#7���`e�`e�`e�gr�gr�gr�t|�t|�}��*�_�"4�";�";�C����_�A]�A]�"^�"^�C��
�
�&8��&=�&=�>�>�>����&�g�5�5�"�%�(�G�3�3�"0�"=�g�"F�"F���w�<�<�1�,�,�3:�0�Z��.�!�%�(�F�2�2�"/�"<�W�"E�"E���w�<�<�1�,�,�3:�0�Z��.�!�%�(��7�7�&*�i�i�0O�0O�w�0O�0O�0O�&P�&P���KP�5�5�R]�R]�R]�_i�jo�_p�_p�q��*�_�"4�";�";�C����_�A]�A]�"^�"^�C��
�
�&8��&=�&=�>�>�>���TY�TY�TY�[b�[b�c�C��
S�(�/�/��V�[�[��5Q�5Q�R�R���M�M�+�C�0�0�1�1�1�1�S)2�)2r}c	
�
�|�g}|�t��}|�t��}|�t��}|�t��}|���D�]�\}	}
|
�d��}|dks"|dk�r�|
�dd��dk�r�|
�d��}|
�dd	��r|�|�|	���i||	<n��|�|	|vs||	���|�|	��t
||	t��rt
||	t��r
||	g}
n||	}
t|
��D�]�\}}|�
t||����t
|t��s&|�td
|	z�����d||	z}|dkr|d|zz
}|dz
}g}g}	t||||��}nO#ttf$r;}i}|�t!t#|������Yd}~nd}~wwxYw|D]\}}t%d
|�|�d|�|�d���� |�b|D]_}|�|�|d��|�d��|�d��|�d��d����`	|�
t'||����nF#t$r9}|�t)t#|������Yd}~nd}~wwxYwt+|||��}|�
t-|||||�����	t/|
�d��||��nF#t$r9}|�t1t#|������Yd}~nd}~wwxYw|�
t3||d	����	t5|||��nF#t$r9}|�t7t#|������Yd}~nd}~wwxYwt9|||||���t;||||���t<D]w}	|d|
�|d��||���0#t$r;}|�|dt#|������Yd}~�pd}~wwxYw|�
t3||����t?|||||||||�	�	���|� �����dS)zAValidate sub argument spec.

    This function is recursive.
    Nrxrhrgr�r�r��apply_defaultsFz3value of '%s' must be of type dict or list of dictsz[%d]�.zBoth option z and its alias z	 are set.r�rer�r�)r�rer�r�)r��mutually_exclusiver�r=r>r?)!rr�rhr�rvr�r�r r'�	enumerater��
set_fallbacksrr�r�r�rr
r
r�rr�r�r+rr�r,rr�r�_ADDITIONAL_CHECKS�_validate_sub_spec�pop)r�r�r�r�r�r�r��supported_parametersr�r�r�ry�sub_specr��idxr��
new_prefixr��alias_deprecations_sub�options_aliasesr�r�r��deprecation�ter��checks                           r{rr�sj�� ����
�~�/�1�1�������
��%�!$�����#�#�v�v��%�+�+�-�-�c"�c"���u����6�"�"���V����&� 0� 0�U�Y�Y�z�2�5N�5N�RX�5X�5X��y�y��+�+�H��y�y�)�5�1�1�
��'�!�~�~�e�,�,�4�,.�
�5�)����!�U�*�%<�%<�
�5�@Q�@Y��
�"�"�5�)�)�)��j��/��:�:�
-�j��TY�IZ�\h�>i�>i�
-�&�u�-�.���%�e�,��'0��':�':�K
V�K
V�#��^��$�$�]�8�^�%L�%L�M�M�M�!�.�$�7�7���M�M�"7�8m�pu�8u�"v�"v�w�w�w��$�e�^�
��V�#�#��&�3�,�.�J��c�!�
�!#��)+�&�<�&5�h��P^�`v�&w�&w�O�O��!�:�.�<�<�<�&(�O��M�M�*�Y�q�\�\�":�":�;�;�;�;�;�;�;�;�����<����&4�s�s�M�F�E��D�:�:�W]�W]�W]�_i�_i�kp�kp�kp�q�r�r�r�r�%�1�'=����*�1�1�.8�j�+�f�:M�:M�$N�'2���y�'A�'A�$/�O�O�F�$;�$;�/:���?P�/Q�/Q�	3�3�����=�!�(�(�)<�X�~�)V�)V�W�W�W�W�� �=�=�=��M�M�*�Y�r�]�]�";�";�<�<�<�<�<�<�<�<�����=���� 1��>�?�[�[��&�-�-�/� �&�$�'�(<�������H�,�U�Y�Y�7K�-L�-L�n�^m�n�n�n�n�� �H�H�H��M�M�"8��1���"F�"F�G�G�G�G�G�G�G�G�����H�����$�$�]�8�^�U�%S�%S�T�T�T�?�,�X�~��W�W�W�W�� �?�?�?��M�M�-�	�!���"=�"=�>�>�>�>�>�>�>�>�����?����)��>�:��gm�n�n�n�n�)�(�N�O�\b�c�c�c�c�/�B�B�E�B�%��f�
�e�i�i��f�
�&>�&>��P_�`�`�`�`��$�B�B�B��
�
�l�e�E�l�9�Q�<�<�&@�&@�A�A�A�A�A�A�A�A�����B�����$�$�]�8�^�%L�%L�M�M�M�#��n�j�/�6�S`�*�,@�BT�V�V�V�V�
���!�!�!��Gc"�c"sx�!G4�4I�1H;�;I�
#K.�.
L1�8/L,�,L1�-$N�
O�/O�O�=P�
Q�/Q
�
Q�,R3�3
S8	�=1S3	�3S8	c�^�|D]$}|tjvrtj|cS�%t�)z$Load value from environment variable)�os�environr)�argsr��args   r{�env_fallbackr&?s=���#�#���"�*����:�c�?�"�"�"��
!�!r}c��t��}|���D]�\}}|�dd��}|d}g}i}||vru|�s|dd�D]}	t|	t��r|	}�|	}�	||i|��}
|�dd��r|
r|�|
��|
||<��#t$rY��wxYw��|S)N�fallbackrrr�rHF)r�r�rvr�rhr�r)r�r�r�r�r�r(�fallback_strategy�
fallback_args�fallback_kwargsr��fallback_values           r{rrHs���E�E�M�%�+�+�-�-�3�3���u��9�9�Z��1�1��$�Q�K���
����
�"�"�'8�'D� �����
)�
)���d�D�)�)�)�&*�O�O�$(�M�M�
3�!2�!2�M�!U�_�!U�!U���9�9�X�u�-�-�6�.�6�!�%�%�n�5�5�5�$2�
�5�!�!��+�
�
�
���
������s�8B3�3
C�?Cc��t��}d�|D��}t||||��}|�r|���\}}t|t��rp|���D]Z\}}||vs|�d��rt||||��||<�4t||d��}	t||||��||	<�[n{|D]x}
t|
|||��}t|t��r|�	|���?t|t��r|�|���jtd���|��|S)aSSanitize the keys in a container object by removing ``no_log`` values from key names.

    This is a companion function to the :func:`remove_values` function. Similar to that function,
    we make use of ``deferred_removals`` to avoid hitting maximum recursion depth in cases of
    large data structures.

    :arg obj: The container object to sanitize. Non-container objects are returned unmodified.
    :arg no_log_strings: A set of string values we do not want logged.
    :kwarg ignore_keys: A set of string values of keys to not sanitize.

    :returns: An object with sanitized keys.
    c�0�g|]}t|d�����S�r�r�r�r��ss  r{r�z!sanitize_keys.<locals>.<listcomp>q�&��Y�Y�Y�Q�i��*?�@�@�@�Y�Y�Yr}�_ansibleNzIUnknown container type encountered when removing private values from keys)
rr��popleftr�r!r��
startswithr�r$r�r#r�r�)r�r�r�r�r��old_data�new_data�old_key�old_elem�new_key�elem�new_elems            r{�
sanitize_keysr=as�������Y�Y�.�Y�Y�Y�N�)�#�~�{�L]�^�^�I�
�q�.�6�6�8�8���(��h��(�(�	q�%-�^�^�%5�%5�
|�
|�!����k�)�)�W�-?�-?�
�-K�-K�)�(A�(�N�\g�iz�({�({�H�W�%�%�8���QU�V�V�G�(A�(�N�\g�iz�({�({�H�W�%�%�
|�!�
q�
q��4�T�>�;�Xi�j�j���h��8�8�q��O�O�H�-�-�-�-���*�5�5�q��L�L��*�*�*�*�#�$o�p�p�p�)�q�,�r}c��t��}d�|D��}t|||��}|r�|���\}}t|t��r1|���D]\}}t|||��}|||<�nz|D]w}	t|	||��}t|t��r|�|���>t|t��r|�	|���itd���|��|S)avRemove strings in ``no_log_strings`` from value.

    If value is a container type, then remove a lot more.

    Use of ``deferred_removals`` exists, rather than a pure recursive solution,
    because of the potential to hit the maximum recursion depth when dealing with
    large amounts of data (see `issue #24560 <https://github.com/ansible/ansible/issues/24560>`_).
    c�0�g|]}t|d�����Sr/rr0s  r{r�z!remove_values.<locals>.<listcomp>�r2r}zKUnknown container type encountered when removing private values from output)rr�r4r�r!r�r$r�r#r�r�)
r�r�r�r�r6r7r8r9r<r;s
          r{�
remove_valuesr@�s>������Y�Y�.�Y�Y�Y�N�)�%��AR�S�S�I�
�s�.�6�6�8�8���(��h��(�(�	s�%-�^�^�%5�%5�
-�
-�!���4�X�~�O`�a�a��$,���!�!�
-�!�
s�
s��4�T�>�K\�]�]���h��8�8�s��O�O�H�-�-�-�-���*�5�5�s��L�L��*�*�*�*�#�$q�r�r�r��s� �r}r)NNN)NN)r�)T)r�NN)r�NNNNNN)a�
__future__rrrrx�
__metaclass__r�r"�collectionsr�	itertoolsr�'ansible.module_utils.common.collectionsr�+ansible.module_utils.common.text.convertersr	r
r�+ansible.module_utils.common.text.formattersr�$ansible.module_utils.common.warningsr
�ansible.module_utils.errorsrrrrrrrrrrrrrr�)ansible.module_utils.parsing.convert_boolrr�/ansible.module_utils.common._collections_compatrrr r!r"r#r$�ansible.module_utils.sixr%r&r'r(r)r*�&ansible.module_utils.common.validationr+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r�r�	PASS_VARS�
PASS_BOOLSrur|r�r�r�r�r�r�r�r�r�r�r�rrr&rrr=r@r�r}r{�<module>rPs3��
A�@�@�@�@�@�@�@�@�@��
�����	�	�	�	�������������?�?�?�?�?�?�T�T�T�T�T�T�T�T�T�T�I�I�I�I�I�I�5�5�5�5�5�5��������������������������������� T�S�S�S�S�S�S�S�������������������������������������������������������������������������*�4��:�:��%�.A�J_�`�`�
"�,=�FX�Y�Y�
�
�o�N�N�
�
�o�N�N�	��(�
��6�"��'�0�2b�2b�2b�c�-�$� E�3��"�)�
�
�	�$L�
������
���!��
��
�
��  � � �6=�=�=�=�&"�&"�&"�&"�R6�6�6�6�r3�3�3�3�l-�-�-�`D�D�D�2[�[�[�|"�"�"�"�J#L�#L�#L�L � � � �8C2�C2�C2�C2�L/2�/2�/2�/2�j�������A"�A"�A"�A"�H"�"�"����24=�9�;�;�)�)�)�)�X����r}

Youez - 2016 - github.com/yon3zu
LinuXploit