??????????????
Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 173

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 174

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 175

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 176

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 177

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 178
 Udac,@`s ddlmZmZmZidd6dd6dd6dd 6d d 6d d 6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d!6d"d#6d$d%6d&d'6d(d)6Zdd*lZdd*lZdd*lZdd*lZdd*l Z dd*l Z dd*l Z dd*l Z dd*l Z dd*lZdd*lZdd*lZdd*lZdd*lZdd*lZdd*lZdd*lZdd*lZdd*lZdd*lZdd*lZdd*lZdd+lmZdd,lmZmZydd*l Z e!Z"Wne#k r e$Z"nXydd-l%m&Z&e!Z'Wne#k r?e$Z'nXe$Z(ydd*l)Z)e!Z(Wne#k ronXe*e+Z,dd.l-m.Z.d/d0l/m0Z0m1Z1m2Z2dd1l3m4Z4m5Z6m7Z8dd2l9m:Z:m;Z;m<Z<m=Z=ydd3l>m?Z?Wn9e#k r5Z@eAd4jBe0e@ejCd/nXeDZEydd*lFZFx0d5d6fD]"ZGeHeFeGe+ZIeIr}Pnq[WeIe+krd7d8d9d:d;d<fZInx!eID]ZJeHeFeJeEeJlXmYZYdd?lZm[Z\m]Z^m_Z`maZambZbmcZcdd@ldmeZemfZfmgZgddAlhmiZimjZjddBlkmlZlmmZmmnZnmoZompZpddClqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZyddDlzm{Z{m|Z|m}Z}ddEl~mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddFlmZddGlmZmZmZmZeeQeTfZejdHejZe{ZyeWnek reyZnXyeWnek rexZnXejZe+adIZeDdJeDdKdLdMeDdNeDdOeDdPeDdQeDdReDdSeDdTdUgdVeDdWeDdKdXdYe$dZeDdKdXd[eDd\e!d]eDd^eDd_eDd`eDdaeDdbeDdKdXdYe$dceddgfZejdeZejdfZejdgZejdhZejdi djdkfkZdidlfejdi ko"djfknZep0eZe rjeAdmdnjejjejCd/ndoZdpZdqZdrZdsZdtZeduZe+dvZdwZe+e+dxZdyeNfdzYZd{efd|YZd}Zd*S(~i(tabsolute_importtdivisiontprint_functiontnoatimetAtappendtat compressedtctnocowtCtnodumptdtdirsynctDtextentstet encryptedtEt blocksizetht immutabletitindexedtIt journalledtjtinlinetNtzerotst synchronoustStnotailttt blockroottTtundeletetut compressedrawtXtcompresseddirtytZN(tdeque(tchaintrepeat(tjournal(t selectorsi(t to_nativetto_bytestto_text(tjsonifytcontainer_to_bytestcontainer_to_text(tlenient_lowercasetbytes_to_humanthuman_to_bytest SIZE_RANGES(tjsonsJ {{"msg": "Error: ansible requires the stdlib json: {0}", "failed": true}}tavailable_algorithmst algorithmstmd5tsha1tsha224tsha256tsha384tsha512(tKeysViewtMappingtMutableMappingtSequencetMutableSequencetSett MutableSet(t get_bin_path(t _PERM_BITSt_EXEC_PERM_BITSt _DEFAULT_PERMt is_executabletformat_attributestget_flags_from_attributes(tget_distributiontget_distribution_versiontget_platform_subclass(t get_exceptiont literal_eval(thandle_aliasestlist_deprecationstlist_no_log_valuest PASS_VARSt PASS_BOOLS(tPY2tPY3tbt binary_typet integer_typest iteritemst string_typest text_type(tmaptreducet shlex_quote(tcheck_missing_parameterstcheck_mutually_exclusivetcheck_required_argumentstcheck_required_bytcheck_required_iftcheck_required_one_oftcheck_required_togethert count_termstcheck_type_booltcheck_type_bitstcheck_type_bytestcheck_type_floattcheck_type_inttcheck_type_jsonargtcheck_type_listtcheck_type_dicttcheck_type_pathtcheck_type_rawtcheck_type_strt safe_eval(tget_all_subclasses(tBOOLEANStBOOLEANS_FALSEt BOOLEANS_TRUEtbooleansB^(?:.+[-_\s])?pass(?:[-_\s]?(?:word|phrase|wrd|wd)?)(?:[-_\s].+)?$cO`s5x(|D] }|tjkrtj|SqWtdS(s Load value from environment N(tostenvirontAnsibleFallbackNotFound(targstkwargstarg((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt env_fallbacks tmodettypetrawtownertgrouptseusertseroletseleveltsetypet attributestaliasestattrtsrctfollowtbooltdefaulttforcetcontenttno_logtbackupt remote_srctregexpt delimitertdirectory_modet unsafe_writestfallbacktANSIBLE_UNSAFE_WRITESs^[-]{0,2}pass[-]?(word|wd)?s[+=-]s[^ugo]s [^rwxXstugo]iiiisy {"failed": true, "msg": "Ansible requires a minimum of Python2 version 2.6 or Python3 version 3.5. Current version: %s"}tcC`s tjS(s+ **Deprecated** Use :py:func:`platform.system` directly. :returns: Name of the platform the module is running on in a native string Returns a native string that labels the platform ("Linux", "Solaris", etc). Currently, this is the result of calling :py:func:`platform.system`. (tplatformtsystem(((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt get_platform&s cO`s"t|}t||j|S(sV**Deprecated**: Use ansible.module_utils.common.sys_info.get_platform_subclass instead(RStsupert__new__(tclsRRt platform_cls((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytload_platform_subclass8s cC`stt|S(sQ**Deprecated**: Use ansible.module_utils.common._utils.get_all_subclasses instead(tlistt_get_all_subclasses(R((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRz>scC`st|ttfr|}t|trNt}trt|dd}qn3t|trt}trt|dd}qn||krdSx |D]}|j |d }qW|rt|trt|dddd}q| rt|trt|dddd}q|}nt|t rpt|t rNt |}ng}|j ||f|}nWt|trt|trt |}n t}|j ||f|}nt|trt|trt |}ni}|j ||f|}nt|ttttttfrt|dddd}||krfdSx^|D]}||krmdSqmWn=t|tjr|j}ntd t ||f|S( s 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``. terrorstsurrogate_or_strictt#VALUE_SPECIFIED_IN_NO_LOG_PARAMETERt*itencodingsutf-8tsurrogate_then_replacesValue of unknown type: %s, %ss********(t isinstanceRbR^tTrueR[R1tFalseR\R2treplaceRFRGRRRHRItsetRDREttupleR,R_tfloatRtNoneTypeR0tdatetimet isoformatt TypeError(tvaluetno_log_stringstdeferred_removalstnative_str_valuet value_is_texttomit_met new_valuet stringy_value((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt_remove_values_conditionsFs`       '    c C`st}g|D]}t|dd^q}t|||}x|r|j\}}t|trx|jD](\}}t|||} | ||/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt remove_valuess" %  cC`smt|ttfr|St|trft|trIt|}ng}|j||f|St|trt|trt|}n t }|j||f|St|t rt|t rt|}ni}|j||f|St|t t ttttfr.|St|tjtjfrM|Stdt||fdS(sW Helper method to sanitize_keys() to build deferred_removals and avoid deep recursion. sValue of unknown type: %s, %sN(RRbR^RFRGRRRHRIRRDRERR,R_RRRRtdateR(RRt ignore_keysRR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt_sanitize_keys_conditionss2 'c C`sgt}g|D]}t|dd^q}t||||}x|rb|j\}}t|trx|jD]n\}} ||ks|jdrt| |||||/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt sanitize_keyss& %   cC`st|}g}t|}|}d}xM|ryy|jdd|}Wn)tk rw|jd|d|!PnXd }|}x|s$y|jdd|}Wntk rd}nXy|jd|d|}Wqtk r |dkr|jd|d|!Pn|}qqXqW|r-|jd|||!|jdd|jd|||d!|}q-q-Wdj|}|rt||}n|S( s; Remove strings that look like passwords from log messages it@is://t:is********RN( R0tlentrindext ValueErrortinsertRtindextjoinR(tdatat no_log_valuestoutputtbegint prev_begintseptendtsep_search_end((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytheuristic_log_sanitizesF           cC`sgtd k rt}nttjdkrtjjtjdrrttjdd}|j }|j qtjd}t r|j ddd}qn*t rtjj }ntjjj }|aytj|jd}Wn(tk rtdtjdnXt r,t|}ny |dSWn(tk rbtdtjdnXd S( s1 read the modules parameters and store them globally. This function may be needed for certain very dynamic custom modules which want to process the parameters that are being handed the module. Since this is so closely tied to the implementation of modules we cannot guarantee API stability for it (it may change between versions) however we will try not to break it gratuitously. It is certainly more future-proof to call this function and consume its outputs than to implement the logic inside it as a copy in your own code. itrbsutf-8Rtsurrogateescapes {"msg": "Error: Module unable to decode valid JSON on stdin. Unable to figure out what parameters were passed", "failed": true}tANSIBLE_MODULE_ARGSs {"msg": "Error: Module unable to locate ANSIBLE_MODULE_ARGS in json data from stdin. Unable to figure out what parameters were passed", "failed": true}N(t _ANSIBLE_ARGSRRtsystargvRtpathtisfiletopentreadtcloseR\tencodeR[tstdintbufferR:tloadstdecodeRtprinttexittjson_dict_unicode_to_bytestKeyError(Rtfdtparams((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt _load_paramsUs4          cC`s^tj}d||tjf}|r9|d|7}n|rP|d|7}n|d7}|S(NsDFailed to import the required Python library (%s) on %s's Python %s.s This is required %s.s See %s for more info.s Please read module documentation and install in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter(RtnodeRt executable(tlibrarytreasonturlthostnametmsg((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytmissing_required_libs  RcB`seZRS((t__name__t __module__(((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRst AnsibleModulecB`sReZeeeeeeeeeed ZedZdZeeedZdZ dZ dZ dZ dd Z d Zed Zd Zd ZdZedZeedZeedZeedZeedZdZedZedZedZeedZdZ eedZ!eedZ"dZ#dZ$eeddZ%eed Z&eeed!Z'ed"Z(ed#Z)ed$Z*ed%Z+ed&Z,eed'Z-ed(Z.eed)Z/eed*Z0d+Z1d,Z2d-Z3d.Z4d/Z5d0Z6d1Z7d2Z8d3Z9d4Z:d5Z;eedd6Z<d7Z=d8Z>eed9Z?eeed:Z@eed;ZAd<ZBd=ZCd>ZDed?ZEd@ZFdAZGeedBZHdCZIdDZJdEZKdFZLdGZMdHZNdIZOdJZPedKZQdLZRdMZSdNZTdOZUdPZVdQZWdRZXedSZYdTZZdUZ[dVZ\eeeeeeeeeeedWdXeeedYZ]dZZ^d[Z_e_Z`ed\ZaebZbed]ZcRS(^c C`sdtjjt|_||_| |_t|_||_ ||_ |dkr]t }t} nt } ||_ ||_||_||_| |_| |_g|_t|_t|_d|_d|_d|_i|_g|_g|_i|_d|_i|_g|_t |_!d|_"|rhx<t#j$D]+\} }| |jkr6||j| d6|j?d6|_@|s|jA|jB|jC|jD||jE||jF| |jG| n|j4dt|jH|j s+|jIn|jJ| r`|jdkr`|jKdddndS(s7 Common code for quickly building an ansible module in Python (although you can write modules with anything that can return JSON). See :ref:`developing_modules_general` for a general introduction and :ref:`developing_program_flow_modules` for more detailed explanation. iRs2 {"failed": true, "msg": "Module alias error: %s"}itpretstrRtdictRtintRRRtjsonargR:tbytestbitsturitzfssSetting check_invalid_arguments is deprecated and will be removed. Update the code for this module In the future, AnsibleModule will always check for invalid arguments.tversions2.9N(RR(LRRtbasenamet__file__t_namet argument_spectsupports_check_modeRt check_modet bypass_checksRRRtcheck_invalid_argumentstmutually_exclusivetrequired_togethertrequired_one_oft required_ift required_byt cleanup_filest_debugt_difft _socket_patht_shellt _verbositytrun_command_environ_updatet _warningst _deprecationst_cleant_string_conversion_actionRt _legal_inputsRt_options_contextt_tmpdirtFILE_COMMON_ARGUMENTSRRRRt_set_fallbackst_handle_aliasesRRRR0RRt_handle_no_log_valuest _check_localet_check_argumentst_check_mutually_exclusivet _set_defaultst_check_type_strt_check_type_listt_check_type_dictt_check_type_boolt_check_type_intt_check_type_floatt_check_type_patht_check_type_rawt_check_type_jsonargt_check_type_bytest_check_type_bitst _CHECK_ARGUMENT_TYPES_DISPATCHERt_check_required_argumentst_check_argument_typest_check_argument_valuest_check_required_togethert_check_required_one_oft_check_required_ift_check_required_byt_handle_optionst_log_invocationt_set_cwdt deprecate(tselfRRRRRRR tadd_file_common_argsRR!R"t"module_set_check_invalid_argumentstktvR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt__init__s                                                         cC`sn|jdkrgd}|jdk rHtjjtjj|j}n|dk rtjj| rytj|ddWn<t t fk r}|j d|t |fd}qX|j d|ndt j }ytjd|d|}Wn<t t fk r;}|jdd ||t |fnX|js[tjtj|n||_n|jS( NRisCUnable to use %s as temporary directory, failing back to system: %ssModule remote_tmp %s did not exist and was created with a mode of 0700, this may cause issues when running as another user. To avoid this, create the remote_tmp dir with the correct permissions manuallysansible-moduletmp-%s-tprefixtdirRsDFailed to create remote module tmp path at dir %s with prefix %s: %s(R0Rt _remote_tmpRRt expandusert expandvarstexiststmakedirstOSErrortIOErrortwarnR0ttimettempfiletmkdtempt fail_jsont_keep_remote_filestatexittregistertshutiltrmtree(RPtbasedirRtbasefilettmpdir((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRk s0$       cC`sMt|tr3|jj||jd|ntdt|dS(Ns [WARNING] %sswarn requires a string not a %s(RRaR*RtlogRR(RPtwarning((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR_GscC`sat|trG|jji|d6|d6|jd||fntdt|dS(NRRsEPRECATION WARNING] %s %ss$deprecate requires a string not a %s(RRaR+RRlRR(RPRRRtcollection_name((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyROOs   cC`s|jd|jdd}|dkr.iStjjtjj|}t|dd}|jdtrtjj|rtjj |}t |}n|jdd}|jdd}|jdd}|jd d}|jd d}|jd d} |jd d} ||| g} |j rL| j | n|j |} xGtt| D]3} | dk rn| | d krn| | | | /usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytload_file_common_arguments\s6 $ cC`s(ts tStjdkr tStSdS(Ni(t HAVE_SELINUXRtselinuxtis_selinux_mls_enabledR(RP((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRus cC`s}ts_|jd}|dk r[|j|\}}}|dkr[|jddq[ntStjdkrutStSdS(NtselinuxenablediRsWAborting, target uses selinux but python bindings (libselinux-python) aren't installed!i( R{RJRt run_commandRcRR|tis_selinux_enabledR(RPt seenabledtrctoutterr((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytselinux_enableds  cC`s/dddg}|jr+|jdn|S(N(RRuR(RPtcontext((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytselinux_initial_contexts icC`s|j}t s |j r$|Sy"tjt|dd|}Wntk rZ|SX|ddkro|S|djdd}|S(NRRiiiRi(RR{RR|t matchpathconR0R]tsplit(RPRRRtret((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRvs " cC`s|j}t s |j r$|Sytjt|dd}WnXtk r}|jtjkr|j d|dd|q|j d|ddnX|ddkr|S|d j d d }|S( NRRRRspath %s does not exists"failed to retrieve selinux contextiiiRi( RR{RR|tlgetfilecon_rawR0R]terrnotENOENTRcR(RPRRRR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytselinux_contexts cC`sdt|dd}|r9tjjtjj|}ntj|}|j}|j}||fS(NRR(R1RRRYRZtlstattst_uidtst_gid(RPRtexpandRxtsttuidtgid((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytuser_and_groups!  cC`st}t|trt}ntjjttjjtjj |dd}x(tjj |s~tjj |}qWW|r|St |ddS(NRR( RRR^RRRRtR1RYRZtismounttdirnameR2(RPRt path_is_bytesRx((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytfind_mount_points 6c C`sy)tdd}|j}|jWntk rCtdfSX|j|}x|D]{}|jdd\}}}} } t|t|krZx9|j D]+} | |kr|j |} t | fSqWqZqZWtdfS(s Returns a tuple containing (True, selinux_context) if the given path is on a NFS or other 'special' fs mount point, otherwise the return will be (False, None). s /proc/mountstrt iN( Rt readlinesRt ExceptionRRRRR1t_selinux_special_fsRR( RPRtft mount_datatpath_mount_pointtlinetdevicet mount_pointtfstypetoptionstresttfstspecial_context((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytis_special_selinux_paths    ! cC`s:t s|j r|S|j|}|j||tS(N(R{RRvtset_context_if_differentR(RPRtchangedR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytset_default_selinux_contextsc C`st s|j r|S|j|r+tS|j|}t|}|j|\}}|rj|}nxtt|D]q} t|| kr}|| dk r|| || kr|| || /usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRsD  $       %  c C`s|dkr|St|dd}|rItjjtjj|}n|j|r\tS|j||\}}yt |} Wnat k ryt j |j } Wqtk rt|}|jd|dd|qXnX|| kr|dk rQd|kri|d/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytset_owner_if_different0sB !   "        $ c C`s|dkr|St|dd}|rItjjtjj|}n|j|r\tS|j||\}}yt |} Wnat k ryt j |j } Wqtk rt|}|jd|dd|qXnX|| kr|dk rQd|kri|d/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytset_group_if_differentYsB !   "          c C`sn|dkr|St|dd}|rItjjtjj|}ntj|}|j|rktSt |t s>yt |d}Wq>t k r:y|j ||}WnAt k r}t |}|jd|dddt|nX|tj|kr;t |}|jd|ddd|q;q>Xntj|j} | |krj|dk rd |kri|d /usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytset_mode_if_differentsz !   &       # !  c C`s|dkr|St|dd}|rItjjtjj|}n|j|r\tS|j|}d}|j dr|d}|d}n|j dd |ks|dkr|j d } | r| d ||f|g} t}|dk r_d |kri|d /usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytset_attributes_if_differentsB !  $      &cC`si}|jdt}|r|d|g}y|j|\}}}|dkr|j}|djddj|d<|dj|d/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRs    c C`s0tj|j}x|jdD]}tj|}tj|}|jd}|dk}|dksy|dkrd}ntj|rt d|nxt |D]s\} } t j| rt d|nxB|D]:} |j || | |} |j | || | |}qWqWq"W|S(s This enables symbolic chmod string parsing as stated in the chmod man-page This includes things like: "u=rw-x+X,g=r-x+X,o=r-x+X" t,iRRtugos$bad symbolic permission for mode: %s(RRRRtMODE_OPERATOR_REtfindalltpoptUSERS_REtmatchRt enumeratetPERMS_REt#_get_octal_mode_from_symbolic_permst_apply_operation_to_mode( RRt symbolic_modeRRtpermlisttoperstuserst use_umasktidxtpermstusert mode_to_apply((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRs"   (cC`s|dkr|dkr+tjtjB}n>|dkrJtjtjB}n|dkritjtjB}n|tA}||@|B}n6|dkr||B}n|dkr|||@}n|S(NRR&tgtoRR(RtS_IRWXUtS_ISUIDtS_IRWXGtS_ISGIDtS_IRWXOtS_ISVTXt PERM_BITS(RtoperatorRt current_modetmaskt inverse_maskR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR>s        c`stj|j}tj|j}|t@dk}|p=|}tjd}tj||tA} |riitjd6d6itj d6d6itj d6d6} n0iidd6d6idd6d6idd6d6} ii|r| tj @ntj d6|r| tj @ntj d6|r+| tj@ntjd6tj d 6dd 6|tj@d6|tj@d >d6|tj@d >d6d6i|r| tj@ntjd6|r| tj@ntjd6|r| tj @ntj d6tjd 6dd 6|tj@d ?d6|tj@d6|tj@d >d6d6i|r3| tj@ntjd6|rP| tj@ntjd6|rm| tj @ntj d6dd 6tjd 6|tj@d ?d6|tj@d ?d6|tj@d6d6x+| jD]\} } | j| qWfd } t| |dS(NiR(R&RRRtwtxRR"iic`s||BS(N((Rtperm(Rtuser_perms_to_modes(s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt or_reduces(RRRtS_ISDIRtEXEC_PERM_BITSRtumaskRtS_IXUSRtS_IXGRPtS_IXOTHtS_IRUSRtS_IWUSRRRRRtS_IRGRPtS_IWGRPRtS_IROTHtS_IWOTHRRtupdateRd(RRRRRt is_directorythas_x_permissionstapply_X_permissionRt rev_umasktX_permstkeyRR ((RR s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRQs`      cC`s|j|d|d||}|j|d|d|||}|j|d|d|||}|j|d|d|||}|j|d|d|||}|S(NRRqRRRR(RRRRR(RPt file_argsRRR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytset_fs_attributes_if_differentscC`s|jotjj| S(N(RRRR[(RPt file_path((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRscC`s|j||||S(N(R (RPRRRR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt%set_directory_attributes_if_differentscC`s|j||||S(N(R (RPRRRR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt set_file_attributes_if_differentsc C`s|jd|jdd}|dkr.|St|dd}tjj|r|j|\}}||d<||d/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt add_path_infos>           cC`sytjtjdWntjk rgtjtjddtjd/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR5s   Rc C`sF|dkr|j}n|dkr0|j}ng}t||d|\}|_x6|D].\}}|jjd||||fq[Wg}xS|jD]E} d|| jkrx&|| dD]}|j|qWqqWxV|D]N} | d|jkr|jjid| dd6| j dd6qqW|S(Ntalias_warningss(Both option %s and its alias %s are set.tdeprecated_aliasestnamesBAlias '%s' is deprecated. See the module docs for more informationRR( RRRRVR.R*RtkeysR+Rr( RPtspectparamt option_prefixR7t alias_resultstoptiontaliasR8Rt deprecation((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR3s&    &  cC`s|dkr|j}n|dkr0|j}ny|jjt||Wn:tk r}|jddt|didd6nX|j j t ||dS(NRsOFailure when processing no_log parameters. Module invocation will be hidden. %st invocationsHIDDEN DUE TO FAILUREt module_args( RRRRRRXRRcR0R+textendRW(RPR;R<tte((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR4s     c C`s*d|_t}|dkr*|j}n|dkrB|j}n|dkrZ|j}nx<t|jD](}|rm||krm|j|qmqmWxt D]}d|}||kr+|t krt |t |d|j ||nt |t |d||||jkre|j|=qeqt |t |dst |t |dt |dqqW|rd|jdjtt|f}|jr|ddj|j7}n|d djt|j7}|jd |n|jr&|j r&|jd td d |jndS( NtLOG_USERs _ansible_%siis*Unsupported parameters for (%s) module: %ss, s found in %s.s -> s! Supported parameters include: %sRtskippeds.remote module (%s) does not support check mode(t_syslog_facilityRRRRR.RR:RRYRZtsetattrR~RRRtsortedR/RcRRt exit_jsonR( RPRR;R<t legal_inputstunsupported_parametersRSt param_keyR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR6s:            ('( #cC`s%|dkr|j}nt||S(N(RRRm(RPtcheckR<((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt _count_terms>s  cC`s|dkr|j}nyt||WnUtk r}t|}|jrm|ddj|j7}n|jd|nXdS(Ns found in %ss -> R(RRRgRR0R/RRc(RPR;R<RR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR7Cs    cC`s|dkrdS|dkr(|j}nyt||WnUtk r}t|}|jr}|ddj|j7}n|jd|nXdS(Ns found in %ss -> R(RRRkRR0R/RRc(RPR;R<RR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRIOs     cC`s|dkrdS|dkr(|j}nyt||WnUtk r}t|}|jr}|ddj|j7}n|jd|nXdS(Ns found in %ss -> R(RRRlRR0R/RRc(RPR;R<RR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRH^s     cC`si|dkrdS|dkr(|j}nyt||Wn)tk rd}|jdt|nXdS(NR(RRRiRRcR0(RPR;R<R((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRKls   cC`s|dkr|j}n|dkr0|j}nyt||WnUtk r}t|}|jr|ddj|j7}n|jd|nXdS(Ns found in %ss -> R( RRRRhRR0R/RRc(RPR;R<RR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyREws      cC`s|dkrdS|dkr(|j}nyt||WnUtk r}t|}|jr}|ddj|j7}n|jd|nXdS(sA ensure that parameters which conditionally required are present Ns found in %ss -> R(RRRjRR0R/RRc(RPR;R<RR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRJs     c C`s|d kr|j}n|d kr0|j}nx|jD]\}}|jdd }|d krmq=nt|trt|ttf r||krt||t r`dj g||D]}||kr|^q}|rdj g|D]}t |^q} d|| |f} |j rJ| ddj |j 7} n|j d| qq|||krd } ||dkrt|} tj|} t| dkr| \|| RRiRs'value of %s must be one of: %s, got: %ss<internal error: choices for argument %s are not iterable: %sN(RRRRRrRt SEQUENCETYPER^RbRRR0R/RcR6R|t intersectionRR}( RPR;R<RSRTRQtitemt diff_listRt choices_strRtlowered_choicestoverlap((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRGsR     % 2(   (  cC`st|||S(N(Ry(RPRtlocalstinclude_exceptions((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRyscC`sitd6td6td6}|j|jt}yt||SWntk rd}|jdkr|j}tt|q|jdkrdj|t ||}|j t|t|ddSnXdS(NterrorR_tignores4quote the entire value to ensure it does not change.sThe value {0!r} (type {0.__class__.__name__}) in a string field was converted to {1!r} (type string). If this does not look like what you expect, {2}RR( RRRrR-RxRt capitalizeR0tformatR2R_(RPRtoptstallow_conversiont common_msgR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR9s"   cC`s t|S(N(Rt(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR:scC`s t|S(N(Ru(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR;scC`s t|S(N(Rn(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR<scC`s t|S(N(Rr(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR=scC`s t|S(N(Rq(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR>scC`s t|S(N(Rv(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR?scC`s t|S(N(Rs(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRAscC`s t|S(N(Rw(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR@scC`s t|S(N(Rp(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRBscC`s t|S(N(Ro(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRCsc C`s_|dkr|j}n|dkr0|j}nx(|jD]\}}|jdd}|dks|dkr=|jdddkr=|jdd}|jdtr|dk r=|j|dkri||/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRLsX    0 (    "  cC`st|sc|dkr!d}ny|j|}Wqtk r_|jdd||fqXn$|}t|dtt|}||fS(NR Rs6implementation error: unknown type %s requested for %sR (tcallableRRDRRctgetattrR0R(RPReRSt type_checker((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt_get_wanted_type?s    !c C`s|j||\}}g}x|D]}y|j||Wq%ttfk r}d|} |jr| ddj|j7} n| dt||t|f7} |jd| q%Xq%W|S(NsElements value for option %ss found in '%s's -> s6 is of type %s and we were unable to convert to %s: %sR( RlRRRR/RRR0Rc( RPReR<tvaluesRkt wanted_nametvalidated_paramsRRR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt_handle_elementsQs   #c C`s|d kr|j}n|d kr0|j}nx|jD]\}}|jdd }||krmq=n||}|d krq=n|j||\}}y||||<|jdd } | r_|dkst||t r?d||f} |jr"| ddj |j7} n| d7} |j d| n|j | ||||| s9, elements value check is supported only with 'list' typeRsargument %s is of type %ss( and we were unable to convert to %s: %sN(RRRRRrRlRRR/RRcRpRRRR0( RPR;R<RSRTReRRkRntwanted_elementsRR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRF_s:          $ cC`s|dkr|j}n|dkr0|j}nx|jD]u\}}|jdd}||kr=|dk sz| r=|jdtr|r|jj|n|||/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR8s    c C`s&|dkr|j}n|dkr0|j}nx|jD]\}}|jdd}|d}g}i}||kr=|dk r=x0|dD]$} t| tr| }q| }qWy|||} Wntk rq=qX|jdtr| r|j j | n| ||/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR2s*        cC`st|_dS(s read the input and set the params attribute. This method is for backwards compatibility. The guts of the function were moved out in 2.1 so that custom modules could read the parameters. N(RR(RP((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRscC`s^trZd|j}tt|jtj}tjt|d|tjtj|ndS(Ns ansible-%si( t HAS_SYSLOGRRjtsyslogRHRFtopenlogR tLOG_INFO(RPRtmoduletfacility((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt_log_to_syslogs  cC`s!|jr|jd|ndS(Ns [debug] %s(R$Rl(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytdebugs c C`s|js|dkr!t}nd|j}t|trR|jdd}nt|ttfstdt |nt|trt |jdd|j }nt ||j }t r|}n|j dd}trdtjjtfg}x1|D])}|j|jt||fq Wyutrtt|jtjd?}tjdd||fd |t|n#tjdd||ft|Wqtk r|j|qXq|j|ndS( Ns ansible-%ssutf-8Rsmsg should be a string (got %s)tMODULEitMESSAGEu%s %stSYSLOG_FACILITY(RRRRRR^RRbRRRRR\Rt has_journalRRRRRtupperR RvRjRwRHRFR.tsendR^R|( RPRtlog_argsRzt journal_msgt syslog_msgt journal_argsRR{((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRls>    !  ' c C`st}x |jD]}|jj||}|jj|i}|jdd }|d krtj|rd||<|jd|q|j |rd||/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRMs*    ;cC`sy<tj}tj|tjtjBs7tn|SWntk rxu|jtjjdt j gD]K}y1tj|tjtjBrtj ||SWqqtk rqqXqqWnXdS(Ns$HOME( RtgetcwdtaccesstF_OKtR_OKRRkRRZRat gettempdirtchdirR(RPtcwd((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRNs   +   cC`sLd}yt|||}Wn)tk rG}|jdt|nX|S(sQ Find system executable in PATH. :param arg: The executable to find. :param required: if executable is not found and required is ``True``, fail_json :param opt_dirs: optional list of directories to search in addition to ``PATH`` :returns: if found return full path; otherwise return None RN(RRJRRcR2(RPRtrequiredtopt_dirstbin_pathR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRJ,s cC`sN|dkr|Syt|SWn)tk rI}|jdt|nXdS(s!Convert the argument to a booleanRN(RR~RRcR0(RPRR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR~>s  cC`s>yt|SWn)tk r9}|jdt|nXdS(NR(R3t UnicodeErrorRcR2(RPRR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR3HscC`s tj|S(N(R:R(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt from_jsonNscC`s&||jkr"|jj|ndS(N(R#R(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytadd_cleanup_fileQscC`s%x|jD]}|j|q WdS(N(R#tcleanup(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytdo_cleanup_filesUscC`s|j|d|kr0i|jd6|d/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt_return_formattedYs.     !& cK`s(|j|j|tjddS(s' return from the module, without error iN(RRRR(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRK|s  cK`sd|krtdnt|d/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRcs  4*)  cC`sN|s dSyt|j|Wn)tk rI}|jdt|nXdS(NR(RfRRRcR0(RPtrequired_paramsR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytfail_on_missing_paramss cC`s!t|dd}tjj|s(d Stjj|rQ|jdd|nt|dri|}nKyt|}Wn7t k r|jdd||dj tfnXd }t tjj |d }|j |}x&|r |j||j |}qW|j|jS( sh Return hex digest of local file for a digest_method specified by name, or None if file is not present. RRRs+attempted to take checksum of directory: %st hexdigestsFCould not hash file '%s' with algorithm '%s'. Available algorithms: %ss, i@iRNi(R1RRR[RR-RcRtAVAILABLE_HASH_ALGORITHMSRRRRtRRRR(RPtfilenamet algorithmt b_filenamet digest_methodRtinfiletblock((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytdigest_from_files(      cC`s+dtkrtdn|j|dS(s Return MD5 hex digest of local file using digest_from_file(). Do not use this function unless you have no other choice for: 1) Optional backwards compatibility 2) Compatibility with a third party protocol This function will not work on systems complying with FIPS-140-2. Most uses of this function can use the module.sha1 function instead. R=s1MD5 not available. Possibly running in FIPS mode(RRR(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR=s cC`s|j|dS(s@ Return SHA1 hex digest of local file using digest_from_file(). R>(R(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR>scC`s|j|dS(sC Return SHA-256 hex digest of local file using digest_from_file(). R@(R(RPR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR@scC`sd}tjj|rtjdtjtj}d|tj|f}y|j||Wqtj t fk r}|j dd||t |fqXn|S(s[make a date-marked backup of the specified file, return True or False on success or failureRs%Y-%m-%d@%H:%M:%S~s%s.%s.%sRs%Could not make backup of %s to %s: %s( RRR[R`tstrftimet localtimetgetpidtpreserved_copyRgR6R^RcR0(RPtfnt backupdesttextR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt backup_locals!*cC`s`tjj|r\ytj|Wq\tk rX}tjjd|t|fq\XndS(Nscould not cleanup %s: %s( RRR[tunlinkR]RtstderrtwriteR0(RPttmpfileR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRs cC`stj|||jrA|j|}|j||tnyhtj|}tj|}|r|j|jks|j |j krtj ||j|j nWn+t k r}|j t j krqnX|j|}|jdd}|j||tdS(s=Copy a file with preserved ownership, permissions and contextRRN(Rgtcopy2RRRRRRRRtchownR]RRRRrRR(RPRRoRt dest_statttmp_statRtcurrent_attribs((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyRs  *  c C`sd}d}t|dd}t|dd}tjj|raytj|}tj||jt@tj ||j |j t tdrt |drytj ||jWqtk r }x@dD]1} t t| r|jtt| krPqqWqXnWn+tk r?}|jtjkr@q@nX|jr|j|}qn|jr|j|}ntjj| } ytj||Wnttfk r1}|jtjtjtjtjtjgkr|jdd||t|fd tjq2tjj |} tjj!|} d} d}zy(t"j#d d d | d | \}}WnQttfk r}dtjj |t|f} nt$k rd} nXWd| r|r|j%||q|jd| d tjnX|r2t|dd}zytj&|yt'j(||Wn!tk rqt'j)||nX|jr|j*||t+nyYtj|}|r|j |j ks|j |j krtj ||j |j nWn+tk r}|jtjkrqnXytj||Wn|t'j,ttfk r}|rx|jtjkrx|j%||q|jdd|||t|fd tjnXWngt'j,ttfk r}|r|j%||q|jdd||t|fd tjnXWd|j-|Xq2nX| rtj.d}tj.|tj|t/|@y#tj |tj0tj1Wqtk rqXn|jr|j*||t+ndS(satomically move src to dest, copying attributes from dest, returns true on success it uses os.rename to ensure this as it is an atomic operation, rest of the function is to work around limitations, corner cases and ensure selinux context is saved if possibleRRtchflagstst_flagst EOPNOTSUPPtENOTSUPRs$Could not replace file: %s to %s: %sRRVs .ansible_tmpRWtsuffixsQThe destination directory (%s) is not writable by the current user. Error was: %ssFailed creating tmp file for atomic move. This usually happens when using Python3 less than Python3.5. Please use Python2.x or Python3.5 or greater.Ns=Unable to make %s into to %s, failed final rename from %s: %ss$Failed to replace file: %s to %s: %si(RR(2RR1RRR[RRRRRRRRRRR]RRjRRRRvtrenameR^tEXDEVRtETXTBSYtEBUSYRcR0RRRRRatmkstempRt_unsafe_writesRRgtmoveRRRR6RRt DEFAULT_PERMtgeteuidtgetegid(RPRRoRRRtb_srctb_destRRtcreatingt b_dest_dirtb_suffixt error_msgt tmp_dest_namet tmp_dest_fdtb_tmp_dest_nameRR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt atomic_move s '   -2(%     *   .7 #  cC`syjd}}z2t|d}t|d}tj||Wd|rU|jn|rh|jnXWnNtjttfk r}|jdd||t |fdt j nXdS(NtwbRRs/Could not write data to file (%s) from (%s): %sR( RRRgt copyfileobjRR6R]R^RcR0RR(RPRRotout_desttin_srcR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR s  "cC`sT|jsM|}tr6t|trTt|}qTnt|trTt|}nt|ttfr{tj|}ng}t }xd|DD]}|rt }|j dqnt j |r |j d}|dkr|j d|| qq t}nt||j}|j |qWdjd|D|_n|jS(Ncs`s|]}t|VqdS(N(R0(t.0R((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pys ss********Ris %s=********Rcs`s|]}t|VqdS(N(Re(RR((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pys s(R,R[RRbR1R^R2tshlexRRRt PASSWD_ARG_RERtfindRRRR(RPRt to_clean_argst clean_argst is_passwdRtsep_idx((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt _clean_args s4    cC`s2tr.tjdkr.tjtjtjndS(Ntwin32(R[RRtsignaltSIGPIPEtSIG_DFL(RP((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyt_restore_signal_handlers ssutf-8Rc'C`sW d'|_t|tttfsFd}|jddd|d|nt}| r t|trdjg|D]}t t |dd^qn}nt |dd}|rt |dd}|d |g}q|j d(krt |j ddd |g}qt }nt|ttfrjt r=t |dd}ntrXt|dd }ntj|}n|rg|D]<}|d'k rwt tjjtjj|dd^qw}n1g|D]$}|d'k rt |dd^q}d'}| rt| trAtr#t | dd } qAt rAt | dd} qAnytj| tj}Wqtjk r|jdd qXnd }d'}d'}i}xC|jjD]2\}}tjj|d'||<|tj|Bt:j:| j8j;t:j<t:j:| j8j;t:j=tj>Bn|r|s|d"7}nt|trt |}n| j?j@|| j?jAnxFt r5|#jBd#}$x|$D]~\}}%|jCjD}&|&tEd krL|#jF|jCn|jC| j6krk|!|&7}!q |jC| j8kr |"|&7}"q q W|r|jG|!r| r| rt*|!d$| d|}!nd|!d%fSn|$ s|#jH r| jId'k rPq|#jH r| jId'kr| jJPqqW| j6jA| j8jA|#jA| jK}Wnt't(fk r}|j/d&|j0|t*|f|jd|j)dt*|d|j0|nvtLk rH }|j/d&|j0|t*t+j,f|jdddt*|dt+j,d|j0|nXx@|jD]2\}}|d'kr{ tj|=qV |tj|/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR s.< 7! L1!           * (   >A   &     &1,;  4  cC`sHtjjtjj|}t|d}|j||jdS(NR(RRRZRYRRR(RPRR tfh((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytappend_to_file s cC`s t|S(N(R7(RPR)((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR7 scC`s t||S(N(R8(RPtnumbertisbits((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR8 scC`sUytj|d}Wn8tk rPy tj}WqQtk rLd}qQXnX|S(Nii(#(RRRtPIPE_BUF(Rt buffer_size((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytget_buffer_size s   (dR R RRRUtpropertyRkR_RORzRuRRRvRRRRRRRRRRRRt classmethodRt staticmethodRRR RR"R#R0R5R3R4R6RPR7RIRHRKRERJRGRyR9R:R;R<R=R>R?RAR@RBRCRLRlRpRFR8R2RR|R}RlRMRNRJR~R3RRRRRKRcRRR=R>R@RRRRRRRRR"R7t pretty_bytesR8RNR'(((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pyR s  }'  4         -))T+ -E  (  )     3           A  %   4 !      #          #  #    cC`stjjtjjtS(N(RRRRtR(((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytget_module_path s(t __future__RRRtFILE_ATTRIBUTESt__main__ReRRRRR4RRRRRRRgRRRRRaR`Rttypest collectionsR+t itertoolsR,R-RwRRvt ImportErrorRtsystemdR.RR{R|RRRtansible.module_utils.compatR/t_textR0R1R2t+ansible.module_utils.common.text.convertersR3R4RR5tjson_dict_bytes_to_unicodet+ansible.module_utils.common.text.formattersR6R7R8R9t(ansible.module_utils.common._json_compatR:RRR^RRRthashlibt attributeRjR<RR=RRRtshat/ansible.module_utils.common._collections_compatRCRDRERFRGRHRIt#ansible.module_utils.common.processRJt ansible.module_utils.common.fileRKRRLR RMRRNRORPt$ansible.module_utils.common.sys_infoRQRRRStansible.module_utils.pycompat24RTRUt&ansible.module_utils.common.parametersRVRWRXRYRZtansible.module_utils.sixR[R\R]R^R_R`RaRbtansible.module_utils.six.movesRcRdRet&ansible.module_utils.common.validationRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyt"ansible.module_utils.common._utilsRzRt)ansible.module_utils.parsing.convert_boolR{R|R}R~t frozensetRRRRRtimaptunicodet NameErrort basestringt _literal_evalRRR1RRRRt version_infot_PY3_MINt_PY2_MINt_PY_MINRRt splitlinesRRRRRRRRRRtobjectR R,(((s>/usr/lib/python2.7/site-packages/ansible/module_utils/basic.pytsV                                  "         4.(: "                 ',     [ ! &, A 8l