+
    ˜qgj  ã                   óÎ  a € R t0 t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIH	t	H
t
  ^ RIt]P                  t]P                  ! ]P                  ]P                  ! ]4      R7      t] ^ k ]P,                  ! ]4      t ! R R]P2                  P4                  P6                  4      t ! R	 R
]4      tR#   ]]3 d(     ^ RIHt ]P*                  t Lf  ] d    R t  Lsi ; ii ; i)é    N)ÚAny)ÚsubpÚutil)Úsalt)Úbcryptc                ó   € \        R4      h)z˜Raise when called so that importing this module doesn't throw
ImportError when this module is not used. In this case, crypt
and passlib are not needed.
z/crypt and passlib not found, missing dependency)ÚImportError)Ú_s   &Ú:/usr/lib/python3/dist-packages/cloudinit/distros/netbsd.pyÚblowfish_hashr      s   € ô
 ØAóð ó    c                   ó”   a a€ ] tR t^*t oRtRtR.t. ROtV 3R ltR t	V3R lR lt
RR	 ltR
 tR tRR ltR tRR/R ltRtVtV ;t# )ÚNetBSDzG
Distro subclass for NetBSD.

(N.B. OpenBSD inherits from this class.)
z*/usr/pkg/etc/sudoers.d/90-cloud-init-usersÚgroupaddc                óà   <€ \         SV `  WV4       \        P                  P	                  R 4      '       d'   . ROV n        . ROV n        . ROV n        . ROV n        R# RR.V n        R.V n        R# )	z/usr/pkg/bin/pkginÚpkg_addz-UÚ
pkg_deleteN)Úpkginú-yÚinstall)r   r   Úremove)r   r   Úupdate)r   r   zfull-upgrade)	ÚsuperÚ__init__ÚosÚpathÚexistsÚpkg_cmd_install_prefixÚpkg_cmd_remove_prefixÚpkg_cmd_update_prefixÚpkg_cmd_upgrade_prefix)ÚselfÚnameÚcfgÚpathsÚ	__class__s   &&&&€r   r   ÚNetBSD.__init__?   s]   ø€ Ü‰Ñ˜ EÔ*Ü�7‰7�>‰>Ð.×/Ò/Ú*DˆDÔ'Ú)BˆDÔ&Ú)BˆDÔ&Ú*IˆDÖ'à+4°dÐ*;ˆDÔ'Ø*6¨ˆDÖ&r   c                ó   € R RW!.# )Úusermodú-G© )r"   Úmember_nameÚ
group_names   &&&r   Ú_get_add_member_to_group_cmdÚ#NetBSD._get_add_member_to_group_cmdJ   s   € Ø˜4 Ð9Ð9r   c                ó    <€ V ^8„  d   QhRS[ /# )é   Úreturn)Úbool)ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚNetBSD.__annotate__M   s   ø€ ÷ 7ñ 7©$ñ 7r   c           
     ó@  € \         P                  ! V4      '       d   \        P                  RV4       R# R.pR.pRRRRRR	R
RRR/pRRRRRR/pVP	                  4        F„  w  rxWu9   d:   V'       d2   \        V\        4      '       d   VP                  WW,          V.4       KD  Wv9   g   KL  V'       g   KV  VP                  Wg,          4       VP                  Wg,          4       K†  	  RV9  g   RV9  d   VR.,          pVR.,          pW1.,          pWA.,          p\        P                  RV4        \        P                  ! W4R7       TP                  RR4      p	T	e   T P                  YRR7       R#   \         d    \         P                  ! \        RT4       h i ; i)zf
Add a user to the system using standard tools

Returns False if user already exists, otherwise True.
z!User %s already exists, skipping.FÚuseraddÚhomedirz-dÚgecosz-cÚprimary_groupz-gÚgroupsr*   Úshellz-sÚno_user_groupz--no-user-groupÚsystemz--systemÚno_log_initz--no-log-initÚno_create_homez-mzAdding user %s)Ú	logstringzFailed to create user %sÚpasswdNT)Úhashed)r   Úis_userÚLOGÚinfoÚitemsÚ
isinstanceÚstrÚextendÚappendr   Ú	ExceptionÚlogexcÚgetÚ
set_passwd)
r"   r#   ÚkwargsÚadduser_cmdÚlog_adduser_cmdÚadduser_optsÚadduser_flagsÚkeyÚvalÚ
passwd_vals
   &&,       r   Úadd_userÚNetBSD.add_userM   s‰  € ô �<Š<˜×ÒÜ�H‰HÐ8¸$Ô?Ùà �kˆØ$˜+ˆð �tØ�TØ˜TØ�dØ�Tð
ˆð Ð.Ø�jØ˜?ð
ˆð Ÿ™ž‰HˆCØÔ"§s¬z¸#¼s×/CÒ/CØ×"Ñ" LÕ$5°sÐ#;Ö<àÖ%¯#©#Ø×"Ñ" =Õ#5Ô6Ø×&Ñ& }Õ'9Ö:ñ 'ð  6Ô)¨X¸VÔ-CØ˜D˜6Õ!ˆKØ ˜vÕ%ˆOà�vÕˆØ˜6Õ!ˆô 	�‰Ð! 4Ô(ð	Ü�IŠI�kÕ=ð —Z‘Z ¨$Ó/ˆ
ØÒ!Ø�O‰O˜D°TˆOÔ:ñ øô ô 	Ü�KŠKœÐ7¸Ô>Øð	ús   Ä2E4 Å4)FFc                óà   € V'       d   TpM\        V4      p \        P                  ! R RWA.4       T P                  T4       R#   \         d    \        P                  ! \
        RT4       h i ; i)r)   z-pzFailed to set password for %sN)r   r   rN   r   rO   rG   Úunlock_passwd)r"   ÚuserrD   rE   Ú	hashed_pws   &&&& r   rQ   ÚNetBSD.set_passwd†   sa   € ßØ‰Iä% fÓ-ˆIð	Ü�IŠI�y $¨	Ð8Ô9ð 	×Ñ˜4Ö øô ô 	Ü�KŠKœÐ<¸dÔCØð	ús   ˜A Á)A-c                ó”   €  \         P                   ! R RRV.4       R#   \         d    \        P                  ! \        RT4       h i ; i)r)   ú-CÚyeszFailed to lock user %sN©r   rN   r   rO   rG   ©r"   r#   s   &&r   Úlock_passwdÚNetBSD.lock_passwd“   s?   € ð	Ü�IŠI�y $¨¨tÐ4Ö5øÜô 	Ü�KŠKœÐ5°tÔ<Øð	úó	   ‚ ž)Ac                ó”   €  \         P                   ! R RRV.4       R#   \         d    \        P                  ! \        RT4       h i ; i)r)   rb   ÚnozFailed to unlock user %sNrd   re   s   &&r   r]   ÚNetBSD.unlock_passwdš   s?   € ð	Ü�IŠI�y $¨¨dÐ3Ö4øÜô 	Ü�KŠKœÐ7¸Ô>Øð	úrh   c                ó0   € \         P                  R 4       R# )zCannot set the locale.N)rG   Údebug)r"   ÚlocaleÚout_fns   &&&r   Úapply_localeÚNetBSD.apply_locale¡   s   € Ü�	‰	Ð*Ö+r   c                ól   € \         P                  ! 4       p\         P                  ! 4       pRRV RV R2/# )z9Return env vars used in NetBSD package_command operationsÚPKG_PATHz1http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/Ú/z/All)ÚplatformÚreleaseÚmachine)r"   Ú
os_releaseÚos_archs   &  r   Ú_get_pkg_cmd_environÚNetBSD._get_pkg_cmd_environ¤   sB   € ä×%Ò%Ó'ˆ
Ü×"Ò"Ó$ˆàðØ�9˜A˜j˜\¨ð/ð
ð 	
r   Úforcec               ó   € R # ©Nr+   )r"   r|   s   &$r   Úupdate_package_sourcesÚNetBSD.update_package_sources¯   s   € Ùr   )r   r   r    r!   )z^{username}::z'^{username}:\*\*\*\*\*\*\*\*\*\*\*\*\*:z1^{username}:\*LOCKED\*\*\*\*\*\*\*\*\*\*\*\*\*\*:)Fr~   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úci_sudoers_fnÚgroup_add_cmd_prefixÚ#shadow_empty_locked_passwd_patternsr   r.   rZ   rQ   rf   r]   rp   rz   r   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r&   r5   s   @@r   r   r   *   sa   ù‡ € ñð A€MØ&˜<Ðò+Ð'õ	8ò:÷7ð 7ôr!òòô,ò	
ð¨e÷ ô r   r   c                   ó   € ] tR t^³tRtR# )ÚDistror+   N)r�   r‚   rƒ   r„   r‰   r+   r   r   r�   r�   ³   s   † Ûr   r�   c                ó@   € V ^8„  d   Qh/ ^ \         9   d
   \        ;R&   # )r1   r   )Ú__conditional_annotations__r   )r4   s   "r   r6   r6      s   € × Ñ ÷ò ”3ñ ò r   )r�   Ú	functoolsÚloggingr   ru   Útypingr   Úcloudinit.distros.bsdÚ	cloudinitr   r   ÚcryptÚMETHOD_BLOWFISHr   ÚpartialÚmksaltr   r	   ÚAttributeErrorÚpasslib.hashr   ÚhashÚ	getLoggerr�   rG   ÚdistrosÚbsdÚBSDr   r�   r6   )r�   s   @r   Ú<module>r       sÖ   øð÷
 Ð Û Û 	Û Ý ã ß  ðÛà× Ñ €DØ"×*Ò*Ø�‰Ø�\Š\˜$Óô€Mó ð* ×Ò˜Ó!€ôFˆY×Ñ×"Ñ"×&Ñ&ô FôR	ˆVö 	øð{ 	�^Ð$ô ðÝ'àŸ™ŠøØô 	õ	ð	úðús*   ªAB4 Â4	C$Â>CÃ
C ÃC$ÃC Ã C$