+
    ˜qgj*'  ã                   óf   € ^ RI t ^ RIHtHtHt ] P
                  ! ]4      tR tRR lt	R t
RR ltR# )	é    N)Ú	lifecycleÚ
type_utilsÚutilc                 óÂ  € \        V \        4      '       d    V P                  4       P                  R 4      p \        V \        4      '       Ed$   / pV  EF  p\        V\
        4      '       d¸   VP                  4        F¡  w  r4\        V\        \        34      '       g'   \        R\        P                  ! V4      ,          4      h\        V\        4      '       d$   VP                  V. 4      P                  V4       K€  VP                  V. 4      P                  V4       K£  	  KÑ  \        V\        4      '       d   W!9  d   . W&   Kó  Kõ  \        R\        P                  ! V4      ,          4      h	  Tp / p\        V \
        4      '       d4   V P                  4        F  w  rg\        P                  ! V4      WV&   K  	  V# \        R\        P                  ! V 4      ,          4      h)Ú,zBad group member type %szUnknown group name type %sz@Group config must be list, dict or string type only but found %s)Ú
isinstanceÚstrÚstripÚsplitÚlistÚdictÚitemsÚ	TypeErrorr   Úobj_nameÚ
setdefaultÚextendÚappendr   Úuniq_merge_sorted)Úgrp_cfgÚ	c_grp_cfgÚiÚkÚvÚgroupsÚgrp_nameÚgrp_memberss   &       Ú;/usr/lib/python3/dist-packages/cloudinit/distros/ug_util.pyÚ_normalize_groupsr      s‡  € Ü�'œ3×ÒØ—-‘-“/×'Ñ'¨Ó,ˆä�'œ4× Ó Øˆ	ÜˆAÜ˜!œT×"Ò"ØŸG™GžI‘D�AÜ% a¬$´¨×5Ò5Ü'Ø6Ü)×2Ò2°1Ó5õ7óð ô
 " !¤T×*Ò*Ø!×,Ñ,¨Q°Ó3×:Ñ:¸1Ö=à!×,Ñ,¨Q°Ó3×:Ñ:¸1Ö=ó &ô ˜Aœs×#Ò#ØÔ%Ø#%�I“Lñ &ô  Ø0´J×4GÒ4GÈÓ4JÕKóð ñ# ð( ˆà€FÜ�'œ4× Ò Ø%,§]¡]¦_Ñ!ˆHÜ#×5Ò5°kÓBˆFÓñ &5ð €Mô	 ØNÜ×"Ò" 7Ó+õ-ó
ð 	
ó    c                 óª  € \        V \        4      '       dÑ   . pV P                  4        F·  w  r4\        V\        \        \
        \        34      '       d;   \        P                  ! V4      '       d   VP                  \        V4      4       Kc  Ke  \        V\        4      '       d   W4R &   VP                  V4       K’  \        R\        P                  ! V4      : RV: 24      h	  Tp M,\        V \        4      '       d   \        P                  ! V 4      p / pV  FÖ  p\        V\        \        34      '       d6   \        P                  ! V4       F  pV'       g   K  Wu9  g   K  / WW&   K  	  KT  \        V\        4      '       dI   VP!                  R R4      pVP#                  V4      ;'       g    / p	\        P$                  ! W–.4      WX&   K²  \        R\        P                  ! V4      ,          4      h	  V'       dk   / p
VP                  4        FR  w  r¼/ pVP                  4        F3  w  r4VP'                  RR4      P)                  4       pV'       g   K/  WMV&   K5  	  WÚV&   KT  	  T
pRpV'       d½   RV9   d¶   VP!                  R4      pV'       d�   VP+                  4       pVP!                  R 4      pVP!                  R. 4      pVP!                  V/ 4      pVP#                  R. 4      p\        P                  ! VV4      pR	P-                  V4      VR&   \        P$                  ! VWñ.4      W^&   VP                  4        F  w  r¼V'       d   W¾8H  MR
VR&   K  	  V# )ÚnamezUnmappable user value type z	 for key ÚdefaultzDUser config must be dictionary/list or string  types only and not %sÚ-Ú_Nr   r   F)r   r   r   ÚboolÚintÚfloatr	   r   Úis_truer   r   r   r   r   r   Ú
uniq_mergeÚpopÚgetÚmergemanydictÚreplacer
   ÚcopyÚjoin)Úu_cfgÚdef_user_cfgÚad_ucfgr   r   ÚusersÚuser_configÚuÚnÚprev_configÚc_usersÚunameÚuconfigÚ	c_uconfigÚdef_userÚ
def_configÚ
def_groupsÚparsed_configÚparsed_groupsÚusers_groupss   &&                  r   Ú_normalize_usersrB   I   sÃ  € Ü�%œ×ÒØˆØ—K‘K–M‰DˆAÜ˜!œd¤C¬´Ð4×5Ò5Ü—<’< —?’?Ø—N‘N¤3 q£6Ö*ñ #ä˜Aœt×$Ò$Ø�&‘	Ø—‘˜qÖ!åä!×*Ò*¨1Ö-ªqð2óð ñ "ð ‰Ü	�Eœ3×	Ò	Ü×&Ò& uÓ-ˆà€EÛˆÜ�k¤D¬# ;×/Ò/Ü—_’_ [Ö1�ß‘1˜žØ!�E“Hó 2ô ˜¤T×*Ò*Ø—‘ ¨	Ó2ˆAØŸ)™) A›,×,Ð,¨"ˆKÜ×)Ò)¨;Ð*DÓEˆE‹Häð)Ü,6×,?Ò,?ÀÓ,LõNóð ñ ÷  ØˆØ#Ÿk™kžm‰NˆEØˆIØŸ™ž‘�Ø—I‘I˜c 3Ó'×-Ñ-Ó/�ß‘1Ø#$˜a“Lñ (ð '�E‹Nñ ,ð ˆð €Hß�˜eÔ#Ø—Y‘Y˜yÓ)ˆ
ßð (×,Ñ,Ó.ˆLØ#×'Ñ'¨Ó/ˆHØ%×)Ñ)¨(°BÓ7ˆJð "ŸI™I h°Ó3ˆMØ)×-Ñ-¨h¸Ó;ˆMä×1Ò1°-ÀÓLˆLØ&)§h¡h¨|Ó&<ˆM˜(Ñ#ô #×0Ò0Ø 
Ð9óˆE‰Oð  Ÿ+™+ž-‰ˆß2:˜UÒ.Àˆ�	Óñ (ð €Lr   c                 óp  € V '       g   / p / pR V 9   d�   V R ,          '       d€   V R ,          p\        V\        4      '       d   RV/p\        P                  ! RRRR7       MB\        V\        4      '       g-   \
        P                  R\        P                  ! V4      4       / p/ p VP                  4       p\        P                  ! W#.4      pV P                  R. 4      p\        V\        \        34      '       d'   \        P                  ! R	\        V4       2RR
R7       MB\        V\        4      '       g-   \
        P                  R\        P                  ! V4      4       . pV'       d   \        V\        4      '       d   VP!                  RR/4       MT\        V\        4      '       d    \	        V4      P                  RR4      VR&   M\        V\        4      '       d
   VR,          p/ pRV 9   d   \#        V R,          4      p\%        WT4      pWv3#   \         d    \
        P                  R4        ELi ; i)Úuserr!   z'user' of type stringz22.2zUse 'users' list instead.)Ú
deprecatedÚdeprecated_versionÚextra_messagez?Format for 'user' key must be a string or dictionary and not %sziDistro has not implemented default user access. No distribution provided default user will be normalized.r3   z'users' of type zUse 'users' as a list.z^Format for 'users' key must be a comma-separated string or a dictionary or a list but found %sr"   Tz,defaultr   )r   r	   r   Ú	deprecater   ÚLOGÚwarningr   r   Úget_default_userÚNotImplementedErrorr   r,   r+   Útyper   r   r   rB   )ÚcfgÚdistroÚold_userÚdistro_user_configÚdefault_user_configÚ
base_usersr   r3   s   &&      r   Únormalize_users_groupsrT   ¦   së  € ßØˆð
 €HØ�„}˜˜VŸœØ�v•;ˆä�h¤×$Ò$Ø Ð)ˆHÜ×ÒØ2Ø#)Ø9öô
 ˜H¤d×+Ò+Ü�K‰Kðä×#Ò# HÓ-ôð
 ˆHð Ðð
Ø#×4Ñ4Ó6Ðô ×,Ò,¨hÐ-KÓLÐà—‘˜ "Ó%€JÜ�*œt¤S˜k×*Ò*Ü×ÒØ)¬$¨zÓ*:Ð);Ð<Ø%Ø2ö	
ô
 ˜
¤T×+Ò+Ü�‰ð6ä×Ò 
Ó+ô	
ð
 ˆ
çä�j¤$×'Ò'Ø×Ñ˜v yÐ1Õ2Ü˜
¤D×)Ò)Ü$(¨Ó$4×$8Ñ$8¸ÀDÓ$IˆJ�yÒ!Ü˜
¤C×(Ò(Ø˜*Õ$ˆJà€FØ�3„Ü" 3 x¥=Ó1ˆä˜ZÓ=€EØˆ?ÐøôQ ô 
Ü�‰ðE÷	
ð
ús   Â%H È H5È4H5c                 óÖ   € V '       g   W3# R  p\        \        W0P                  4       4      4      pV'       g   W3# \        V4      ^ ,          pWE,          pVP	                  RR4       WV3# )c                 óH   € V ^,          pV'       d   RV9  d   R# VR,          # )é   r"   F© )ÚentryÚconfigs   & r   Ú	safe_findÚ"extract_default.<locals>.safe_findø   s#   € Ø�q•ˆß˜¨&Ô0ÙØ�iÕ Ð r   r"   N)r   Úfilterr   r   r*   )r3   Údefault_nameÚdefault_configr[   Ú	tmp_usersr!   rZ   s   &&&    r   Úextract_defaultra   ô   sa   € ßØÐ-Ð-ò!ô ”V˜I§{¡{£}Ó5Ó6€IßØÐ-Ð-ä�	‹?˜1Õ€DØ�_€FØ
‡J�Jˆy˜$ÔØˆ>Ðr   )N)NN)ÚloggingÚ	cloudinitr   r   r   Ú	getLoggerÚ__name__rI   r   rB   rT   ra   rX   r   r   Ú<module>rf      s9   ðó ç 1Ñ 1à×Ò˜Ó!€ò%ôbOòzIö\r   