f} *dZdefZdZGddZy) no_replacereplacec|D]}||vsyy)NTF)whatkeysks :/usr/lib/python3/dist-packages/cloudinit/mergers/m_dict.py_has_anyr s  9 c$eZdZdZdZdZdZy)Mergerc||_t|_tD]}||vs||_nd|v|_t |dd|_d|v|_d|_y)N recurse_str recurse_array recurse_list allow_deleteT) _mergerDEF_MERGE_TYPE_method MERGE_TYPES _recurse_strr _recurse_array _allow_delete _recurse_dict)selfmergeroptsms r __init__zMerger.__init__se %  ADy    *T1&t_nM+t3!r cd}||j|j|j|j|jfz}|S)NzWDictMerger: (method=%s,recurse_str=%s,recurse_dict=%s,recurse_array=%s,allow_delete=%s))rrrrr)rss r __str__zMerger.__str__%sP @   LL               r cfd}|jD]>\}}||vr0|jr|j|*||||||<:|||<@|S)Nclr|St|ttfr(jrjj ||St|t r(jrjj ||St|tr(jrjj ||S|S)N) isinstancelisttuplerrmergestrrdictr)old_vnew_v do_replacers r merge_same_keyz/Merger._do_dict_replace..merge_same_key4s %$/D4G4G||))%77%%$*;*;||))%77%$(T-?-?||))%77Lr )itemsrpop)rvalue merge_withr-r.rvs` ` r _do_dict_replacezMerger._do_dict_replace3si !&&( FQEz9!3!3IIaL-eAh:E!Ha  r c t|ts|S|jdk(r|jt||d}|S|jdk(r|jt||d}|St d|jz)NrTrFzUnknown merge type %s)r%r*rr4NotImplementedError)rr1r2mergeds r _on_dictzMerger._on_dictJs*t-L <<9 $**4; DIF  \\\ )**4; EJF &&=&NO Or N)__name__ __module__ __qualname__rr"r4r8rr r r r s " . r r N)rrr r rr r r<s(  >>r