ó
    cÛ–i‡†  ã                   ó6  • S r SrSSKrSSKrSSKrSSKJrJr  SSKJ	r	J
r
Jr  SSKJr  SSKJr  SSKJr  SS	KJrJrJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  S r  SS jr S r!S r"S r#S r$S r%S r&S\RN                  0r(S r)S r*  SS jr+g)z3Support code for upgrading from Samba 3 to Samba 4.ÚrestructuredTexté    N)ÚLdbÚregistry)Ú	provisionÚProvisioningErrorÚsetsysvolacl)Ú	FILL_FULL)Úpassdb)Úparam)ÚlsaÚsamrÚsecurity)Údom_sid)ÚCredentials)Údsdb)Úndr_pack)Úunix2nttime)Úgenerate_random_passwordc                 óÐ  • [         R                  " 5       nU R                  5       Ul        SU;   a5  [         R                  " [        US   5      [         R                  S5      US'   SU;   a5  [         R                  " [        US   5      [         R                  S5      US'   SU;   aF  US   n[        U* S-  5      n[         R                  " [        U5      [         R                  S	5      US
'   SU;   a[  US   nUS:X  d  US:X  d  US:X  a  SnO[        U* S-  5      n[         R                  " [        U5      [         R                  S5      US'   SU;   aE  US   n[        US-  5      n	[         R                  " [        U	5      [         R                  S5      US'    U R                  U5        g! [         R                   a%  n
UR                  S[        U
5      5         Sn
A
gSn
A
ff = f)z~Import a Samba 3 policy.

:param samdb: Samba4 SAM database
:param policy: Samba3 account policy
:param logger: Logger object
zmin password lengthÚminPwdLengthÚa01zpassword historyÚpwdHistoryLengthÚa02zminimum password ageg    ÐcAÚ	minPwdAgeÚa03zmaximum password ageéÿÿÿÿr   l   ÿÿ lûÿÿÿ         Ú	maxPwdAgeÚa04zlockout durationé<   ÚlockoutDurationÚa05z"Could not set account policy, (%s)N)ÚldbÚMessageÚget_default_basednÚdnÚMessageElementÚstrÚFLAG_MOD_REPLACEÚintr   ÚmodifyÚLdbErrorÚwarn)ÚsamdbÚpolicyÚloggerÚmÚmin_pw_age_unixÚmin_pw_age_ntÚmax_pw_age_unixÚmax_pw_age_ntÚlockout_duration_minsÚlockout_duration_ntÚes              Ú//usr/lib/python3/dist-packages/samba/upgrade.pyÚimport_sam_policyr9   )   sÎ  € ô  	�Š‹€AØ×#Ñ#Ó%€A„Dà Ó&Ü×%Ò%¤c¨&Ð1FÑ*GÓ&HÜ&)×&:Ñ&:¸NóLˆˆ%‰ð ˜VÓ#Ü×%Ò%¤c¨&Ð1CÑ*DÓ&EÜ&)×&:Ñ&:Ð<NóPˆˆ%‰ð  Ó'Ø Ð!7Ñ8ˆÜ˜_Ð,°Ñ4Ó5ˆÜ×%Ò%¤c¨-Ó&8¼#×:NÑ:NØ&1ó3ˆˆ%‰ð  Ó'Ø Ð!7Ñ8ˆØ˜bÓ  O°qÓ$8¸OÈzÓ<YØ/‰Mä Ð 0°CÑ 8Ó9ˆMä×%Ò%¤c¨-Ó&8¼#×:NÑ:NØ&1ó3ˆˆ%‰ð ˜VÓ#Ø &Ð'9Ñ :ÐÜ)Ð*?À"Ñ*DÓEÐä×%Ò%¤cÐ*=Ó&>Ü&)×&:Ñ&:Ð<MóOˆˆ%‰ðBØ�‰�Q�øÜ�<‰<ó BØ�‰Ð8¼#¸a»&×AÑAûðBús   ÆF, Æ,G%Ç G Ç G%c                 óÊ  •  [         R                  " 5       n[         R                  " US[        U5      -  5      Ul        US:X  a–  [         R
                  " [        U5      [         R                  S5      US'   [         R
                  " [        U5      [         R                  S5      US'   [         R
                  " [        U5      [         R                  S5      US'   [         R
                  " [        U5      [         R                  S5      US'   UR                  U5        g! [         R                   a/  n	U R                  S[        U5      [        U	5      5         Sn	A	gSn	A	ff = f)	a7  Add posix attributes for the user/group

:param samdb: Samba4 sam.ldb database
:param sid: user/group sid
:param nisdomain: name of the (fake) NIS domain
:param xid_type: type of id (ID_TYPE_UID/ID_TYPE_GID)
:param home: user homedir (Unix homepath)
:param shell: user shell
:param pgid: users primary group id
ú<SID=%s>ÚID_TYPE_UIDÚunixHomeDirectoryÚ
loginShellÚ	gidNumberÚmsSFU30NisDomainz7Could not add posix attrs for AD entry for sid=%s, (%s)N)
r"   r#   ÚDnr'   r%   r&   r(   r*   r+   r,   )
r/   r-   ÚsidÚ	nisdomainÚxid_typeÚhomeÚshellÚpgidr0   r7   s
             r8   Úadd_posix_attrsrH   a   s  € ðÜ�KŠK‹MˆÜ�vŠv�e˜Z¬#¨c«(Ñ2Ó3ˆŒØ�}Ó$Ü%(×%7Ò%7Ü�D“	œ3×/Ñ/Ð1Dó&FˆAÐ!Ñ"ä!×0Ò0Ü�E“
œC×0Ñ0°,ó@ˆAˆl‰Oä ×/Ò/Ü�D“	œ3×/Ñ/°ó>ˆAˆk‰Nô !$× 2Ò 2Ü�	‹NœC×0Ñ0Ð2Dó!FˆÐ
Ñð 	�‰�Q�øÜ�<‰<ó Ø�‰ØEÜ�‹H”c˜!“f÷	ñ 	ûðús   ‚DD ÄE"Ä3%EÅE"c           
      óÊ  •  [         R                  " 5       n[         R                  " U S[        U5      -  5      Ul        US:X  a\  [         R
                  " [        U5      [         R                  S5      US'   [         R
                  " S[         R                  S5      US'   OaUS:X  a[  [         R
                  " [        U5      [         R                  S5      US'   [         R
                  " S[         R                  S5      US'   U R                  U5        g
! [         R                   a:  nUR                  S	[        U5      [        U5      U[        U5      5         S
nAg
S
nAff = f)zÂCreate idmap entry

:param samdb: Samba4 sam.ldb database
:param sid: user/group sid
:param xid: user/group id
:param xid_type: type of id (ID_TYPE_UID/ID_TYPE_GID)
:param logger: Logger object
r;   r<   Ú	uidNumberÚposixAccountÚobjectClassÚID_TYPE_GIDr?   Ú
posixGroupz?Could not modify AD idmap entry for sid=%s, id=%s, type=%s (%s)N)r"   r#   rA   r'   r%   r&   r(   ÚFLAG_MOD_ADDr*   r+   r,   )r-   rB   ÚxidrD   r/   r0   r7   s          r8   Úadd_ad_posix_idmap_entryrQ   ƒ   s  € ð2Ü�KŠK‹MˆÜ�vŠv�e˜Z¬#¨c«(Ñ2Ó3ˆŒØ�}Ó$Ü ×/Ò/Ü�C“œ#×.Ñ.°ó=ˆAˆk‰Nä"×1Ò1Ø¤× 0Ñ 0°-ó AˆAˆmÒà˜Ó&Ü ×/Ò/Ü�C“œ#×.Ñ.°ó=ˆAˆk‰Nä"×1Ò1Øœc×.Ñ.°ó ?ˆAˆmÑð 	�‰�Q�øÜ�<‰<ó 2Ø�‰ØMÜ�‹H”c˜#“h ¬#¨a«&÷	2ñ 	2ûð2ús   ‚DD ÄE"Ä(0EÅE"c           
      ó†  • SnU R                  S[        U5      -  S9nUR                  S:X  a  SnU(       a©   [        R                  " 5       nUS   S   R                  UR                  5      Ul        [        R                  " [        U5      [        R                  S5      US'   [        R                  " U[        R                  S	5      US	'   U R                  U5        g U R                  S[        U5      -  [        U5      S[        U5      U[        U5      S.5        g! [        R                   a:  nUR                  S
[        U5      [        U5      U[        U5      5         SnAgSnAff = f! [        R                   a:  nUR                  S[        U5      [        U5      U[        U5      5         SnAgSnAff = f)zÂCreate idmap entry

:param idmapdb: Samba4 IDMAP database
:param sid: user/group sid
:param xid: user/group id
:param xid_type: type of id (ID_TYPE_UID/ID_TYPE_GID)
:param logger: Logger object
FzobjectSid=%s)Ú
expressioné   Tr   r%   Ú	xidNumberÚtypez<Could not modify idmap entry for sid=%s, id=%s, type=%s (%s)NzCN=%sÚsidMap)r%   ÚcnrL   Ú	objectSidrV   rU   z9Could not add idmap entry for sid=%s, id=%s, type=%s (%s))Úsearchr'   Úcountr"   r#   Úcopyr%   r&   r(   r*   r+   r,   Úaddr   )	ÚidmapdbrB   rP   rD   r/   ÚfoundÚmsgr0   r7   s	            r8   Úadd_idmap_entryra   ¢   sn  € ð €EØ
�.‰. N´S¸³XÑ$=ˆ.Ð
>€CØ
‡y�y�Aƒ~Øˆæð	6Ü—’“ˆAØ�q‘6˜$‘<×$Ñ$ Q§U¡UÓ+ˆAŒDÜ ×/Ò/Ü�C“œ#×.Ñ.°ó=ˆAˆk‰Nä×*Ò*Øœ#×.Ñ.°ó8ˆAˆf‰Ià�N‰N˜1Õð
	6Ø�K‰K˜w¬¨S«Ñ1Ü" 3›xØ(0Ü&.¨s£mØ!)Ü&)¨#£hñ0õ 1øô �|‰|ó 	6Ø�K‰KØNÜ�C“œ#˜c›( H¬c°!«f÷6ñ 6ûð	6ûô �|‰|ó 	6Ø�K‰KØKÜ�C“œ#˜c›( H¬c°!«f÷6ñ 6ûð	6ús0   ¸B'D! Ã!?E2 Ä!E/Ä50E*Å*E/Å2G Æ0F;Æ;G c                 óø  •  UR                  5       n[	        UR                  5       UR                  5       5      nUn[        R                  " 5       n[        R                  " U S5      Ul
        [        R                  " [        U5      [        R                  S5      US'   [        R                  " [        U5      [        R                  S5      US'   U R                  U5        UR                  5        HS  u  p‰US:X  a  Sn
OUS	:X  a  S
n
OUR                  SU5        M+  UR                  X˜5      n[!        U [#        U5      XšU5        MU     g! [         a%  nUR                  S[        U5      5         SnAgSnAff = f)z‘Import idmap data.

:param idmapdb: Samba4 IDMAP database
:param samba3_idmap: Samba3 IDMAP database to import from
:param logger: Logger object
z(Cannot open idmap database, Ignoring: %sNz	CN=CONFIGÚ
lowerBoundÚ
lowerboundrU   ÚUIDr<   ÚGIDrM   z+Wrong type of entry in idmap (%s), Ignoring)Úget_idmap_dbÚIOErrorr,   r'   ÚmaxÚget_user_hwmÚget_group_hwmr"   r#   rA   r%   r&   r(   r*   ÚidsÚget_sidra   r   )r^   Úsamba3r/   Úsamba3_idmapr7   Ú
currentxidrd   r0   Úid_typerP   rD   rB   s               r8   Úimport_idmaprr   Í   s:  € ðØ×*Ñ*Ó,ˆô
 �\×.Ñ.Ó0°,×2LÑ2LÓ2NÓO€JØ€Jô 	�Š‹€AÜ�6Š6�'˜;Ó'€A„DÜ×(Ò(ÜˆJ‹œ×-Ñ-¨|ó=€A€l�Oä×'Ò'ÜˆJ‹œ×-Ñ-¨{ó<€A€k�Nà‡N�N�1Ôà$×(Ñ(Ö*‰ˆØ�eÓØ$‰HØ˜ÓØ$‰Hà�K‰KÐEÀwÔOÙà×"Ñ" 3Ó0ˆÜ˜¤¨£¨s¸fÖEò +øô! ó Ø�‰Ð>ÄÀAÃÔGÜûðús   ‚E
 Å

E9ÅE4Å4E9c                 óØ  •  U R                  S[        UR                  5      -  [        R                  S9nSnU(       a;  UR                  S[        UR                  5      UR                  WS   S   S   5        gUR                  [        R                  :X  aE  UR                  R                  5       u  p‰U[        R                  " [        R                   5      :w  a  g[        R"                  " 5       n
[        R$                  " U S	5      U
l        U
R&                  R)                  SS
UR                  5        U
R&                  R+                  U R-                  5       5        [        R.                  " S[        R0                  S5      U
S'   [        R.                  " [3        UR                  5      [        R0                  S5      U
S'   [        R.                  " UR                  [        R0                  S5      U
S'   UR4                  (       a3  [        R.                  " UR4                  [        R0                  S5      U
S'   UR                  [        R6                  :X  d  UR                  [        R                  :X  a@  [        R.                  " [        [8        R:                  5      [        R0                  S5      U
S'    U R=                  U
S/S9  g! [        R
                   aE  nUR                  u  pgU[        R                  :X  a  Sn SnAGNÏ[        R
                  " Xg5      eSnAff = f! [        R
                   a0  nUR                  SUR                  [        U5      5         SnAgSnAff = f)zŠAdd or modify group from group mapping entry

param samdb: Samba4 SAM database
param groupmap: Groupmap entry
param logger: Logger object
r;   )ÚbaseÚscopeTFNzJGroup already exists sid=%s, groupname=%s existing_groupname=%s, Ignoring.r   ÚsAMAccountNamezCN=X,CN=UsersÚCNÚgrouprL   rY   ÚdescriptionÚ	groupTypezrelax:0)Úcontrolsz Could not add group name=%s (%s))rZ   r'   rB   r"   Ú
SCOPE_BASEr+   ÚargsÚERR_NO_SUCH_OBJECTr,   Únt_nameÚsid_name_user   ÚSID_NAME_WKN_GRPÚsplitr   r   ÚSID_BUILTINr#   rA   r%   Úset_componentÚadd_baser$   r&   rO   r   ÚcommentÚSID_NAME_ALIASr   Ú!GTYPE_SECURITY_DOMAIN_LOCAL_GROUPr]   )r-   Úgroupmapr/   r`   r_   Úe1ÚecodeÚemsgÚgroup_dom_sidÚridr0   r7   s               r8   Úadd_group_from_mapping_entryr�   ô   sœ  € ð	,Ø�l‰lØœc (§,¡,Ó/Ñ/´s·~±~ð ð Gˆàˆö Ø�‰Ð`Ü˜Ÿ™Ó% x×'7Ñ'7¸¸Q¹Ð@PÑ9QÐRSÑ9Tõ	Vð × Ñ ¤C×$8Ñ$8Ó8à#+§<¡<×#5Ñ#5Ó#7Ñ ˆ]Ø¤×!1Ò!1´(×2FÑ2FÓ!GÓGØä�KŠK‹Mˆä�vŠv�e˜_Ó-ˆŒØ	�‰×Ñ˜1˜d H×$4Ñ$4Ô5Ø	�‰�‰�e×.Ñ.Ó0Ô1Ü×-Ò-¨g´s×7GÑ7GÈÓWˆˆ-ÑÜ×+Ò+¬H°X·\±\Ó,BÄC×DTÑDTØ,7ó9ˆˆ+‰ä!×0Ò0°×1AÑ1AÄ3×CSÑCSØ1AóCˆÐ
Ñð ××Ü"×1Ò1°(×2BÑ2BÄC×DTÑDTØ2?ó AˆAˆmÑð × Ñ ¤C×$6Ñ$6Ó6¸(×:OÑ:OÔSV×SgÑSgÓ:gÜ ×/Ò/´´D×4ZÑ4ZÓ0[Ü03×0@Ñ0@À+óOˆAˆk‰Nð	VØ�I‰I�a 9 +ˆIÒ.øôM �<‰<ó ,ØŸ™‰ˆØ”C×*Ñ*Ó*ØŽEä—,’,˜uÓ+Ð+ûð,ûôN �|‰|ó 	VØ�K‰KÐ:¸H×<LÑ<LÌcÐRSËf×UÑUûð	Vús5   ‚6K	 Ê7L% Ë	L"Ë$LÌLÌL"Ì%M)Ì9&M$Í$M)c           
      ó   • U H‘  n[         R                  " 5       n[         R                  " U S[        UR                  5      -  5      Ul        [         R                  " S[        U5      -  [         R                  S5      US'    U R                  U5        M“     g	! [         R                   a   nUR                  u  pxU[         R                  :X  a#  UR                  SXAR                  U5         S	nAMï  U[         R                  :X  a!  [        SU< SUR                  < SU< 35      e[        SU< SUR                  < SU< 35      eS	nAff = f)
z�Add user/member to group/alias

param samdb: Samba4 SAM database
param group: Groupmap object
param members: List of member SIDs
param logger: Logger object
r;   Úmemberr   z/skipped re-adding member '%s' to group '%s': %szCould not add member 'z' to group 'z0' as either group or user record doesn't exist: z': N)r"   r#   rA   r'   rB   r%   r&   rO   r*   r+   r}   ÚERR_ENTRY_ALREADY_EXISTSÚdebugr~   r   )	r-   rx   Úmembersr/   Ú
member_sidr0   r7   r‹   rŒ   s	            r8   Úadd_users_to_groupr–   ,  s  € ó ˆ
Ü�KŠK‹MˆÜ�vŠv�e˜Z¬#¨e¯i©i«.Ñ8Ó9ˆŒÜ×%Ò% j´3°z³?Ñ&BÄC×DTÑDTÐV^Ó_ˆˆ%‰ð		wØ�L‰L˜ŽOò øô �|‰|ó 	wØŸF™F‰MˆUØœ×4Ñ4Ó4Ø—‘ÐNÐPZ×\eÑ\eÐgk×lÒlØœ#×0Ñ0Ó0Ý'ó  GQð  SX÷  S\ô  S\ò  ^bð  )có  dð  då'ÓYcÐej×enÔenÒptÐ(uÓvÐvûð	wús   ÂBÂEÂ-?EÃ2AEÅEc                 ó¸  • SnUR                  5        GH$  u  nu  pEnUS-  n[        UR                  SS5      S   S5      nUS:X  a  SnO3US-  (       a  [        U5      S:”  a  SnOSnO[        U5      S:”  a  SnOSnU[        R                  " 5       :”  a  Sn	OSn	US	-  S
-	  n
U R                  S[        UR                  S5      5      -  UR                  S5      S   UR                  S5      S   S[        U5      [        U	5      [        U
5      [        R                  " U5      S[        U5      US.5        GM'     U R                  SSS[        U5      S.5        g)z’Import settings from a Samba3 WINS database.

:param samba4_winsdb: WINS database to import to
:param samba3_winsdb: WINS database to import from
r   rT   Ú#é   é   é   é€   é   é`   é   zname=%s,type=0x%sÚ
winsRecordÚ0)r%   rV   ÚnamerL   Ú
recordTypeÚrecordStateÚnodeTypeÚ
expireTimeÚisStaticÚ	versionIDÚaddressz
cn=VERSIONÚVERSIONÚwinsMaxVersion)r%   rX   rL   Ú
maxVersionN)
Úitemsr)   r‚   ÚlenÚtimer]   Útupler'   r"   Ú
timestring)Úsamba4_winsdbÚsamba3_winsdbÚ
version_idr¢   ÚttlÚipsÚnb_flagsrV   ÚrTypeÚrStateÚnTypes              r8   Úimport_winsr»   E  sL  € ð €Jà(5×(;Ñ(;×(=Ñ$ˆÑ#�˜(Ø�a‰ˆ
ä�4—:‘:˜c 1Ó% aÑ(¨"Ó-ˆà�4‹<Ø‰EØ�D�[Ü�3‹x˜!‹|Ø‘à‘ä�3‹x˜!‹|Ø‘à�à”—’“ÓØ‰FàˆFà˜T‘/ aÑ'ˆà×ÑÐ!4´u¸T¿Z¹ZÈ»_Ó7MÑ!MØ#'§:¡:¨c£?°1Ñ#5Ø#'§:¡:¨c£?°1Ñ#5Ø*6Ü),¨U«Ü*-¨f«+Ü'*¨5£zÜ),¯ª¸Ó)<Ø'*Ü(+¨J«Ø&)ñ
+÷ 
	,ñ3 )>ðJ ×Ñ˜\Ø&Ø&6Ü%(¨£_ñ6õ 7ó    ÚHKLMc                 ó
  ^ • U 4S jnUR                  5        Hh  nU" U5      nUR                  U5       H  nU" U5        M     UR                  U5      R                  5        H  u  nu  pxUR	                  XgU5        M     Mj     g)z§Import a Samba 3 registry database into the Samba 4 registry.

:param samba4_registry: Samba 4 registry handle.
:param samba3_regdb: Samba 3 registry database handle.
c                 ó„   >• U R                  SS5      u  p[        U   nU R                  SS5      n TR                  X 5      $ )NÚ/rT   Ú\)r‚   ÚSAMBA3_PREDEF_NAMESÚreplaceÚ
create_key)ÚkeypathÚpredef_nameÚ	predef_idÚsamba4_registrys      €r8   Úensure_key_existsÚ*import_registry.<locals>.ensure_key_exists„  sA   ø€ Ø!(§¡¨s°AÓ!6ÑˆÜ'¨Ñ4ˆ	Ø—/‘/ # tÓ,ˆØ×)Ñ)¨)Ó=Ð=r¼   N)ÚkeysÚsubkeysÚvaluesr­   Ú	set_value)	rÈ   Úsamba3_regdbrÉ   ÚkeyÚ
key_handleÚsubkeyÚ
value_nameÚ
value_typeÚ
value_datas	   `        r8   Úimport_registryrÖ   ~  s{   ø€ õ>ð × Ñ Ö"ˆÙ& sÓ+ˆ
Ø"×*Ñ*¨3Ö/ˆFÙ˜fÖ%ñ 0à6B×6IÑ6IÈ#Ó6N×6TÑ6TÖ6VÑ2ˆZÑ1˜*Ø× Ñ  ¸ÖDó 7Wò	 #r¼   c           	      ó  •  UR                  U[        R                  SU-  U/S9nUR                  S::  a  US   U   S   $ U R	                  SX45        [
        e! [        R                   a  n[        SU< SU< SU< 35      eS	nAff = f)
zæGet posix attributes from a samba3 ldap backend
:param ldbs: a list of ldb connection objects
:param base_dn: the base_dn of the connection
:param user: the user to get the attribute for
:param attr: the attribute to be retrieved
z%(&(objectClass=posixAccount)(uid=%s)))ru   rS   ÚattrsrT   r   z0LDAP entry for user %s contains more than one %szFailed to retrieve attribute z
 for user z, the error is: N)rZ   r"   ÚSCOPE_SUBTREEr[   ÚwarningÚKeyErrorr+   r   )r/   Ú
ldb_objectÚbase_dnÚuserÚattrr`   r7   s          r8   Ú get_posix_attr_from_ldap_backendrà   ’  s—   € ðØ×Ñ ¬s×/@Ñ/@Ø,SØ/3ñ-5Ø>B¸Vð  ð Eˆð �9‰9˜‹>à�q‘6˜$‘< ‘?Ð"à�N‰NÐMÈtÔZÜˆNøô �<‰<ó sÝÓcgÓimÒopÐ qÓrÐrûðsús   ‚$A ÁB	Á-BÂB	c                 ó,  • U R                   R                  5       nU R                   R                  S5      nU R                   R                  S5      n	U R                   R                  S5      n
U R                   R                  S5      c  U R                   R                  SS5         U R	                  5       nU(       d%  UR                  5       S   nUR                  SU5        U	(       d9  US:X  d  US:X  a  [        S5      eUR                  5       n	UR                  SU	5        Sn UR                  U
5      nU R                   R                  S5      R                  S5      S   R                  5       S:X  ax  U R                   R                  S5      nU R                   R                  S5      nUR!                  U5      nUc  [        S5      eUR#                  S5      R                  S5      nSnOSnSnSnUR%                  5         [&        R(                  " U R                   R                  S5      5        U R+                  5       n [&        R,                  " 5       n UR3                  SU
-  5      nUR4                  R                  5       u  nnUR7                  S5        UR9                  5       nUR7                  S 5        UR;                  5       n0 nU GHÅ  nUR<                  R                  5       u  nnUU:X  a  UU:¼  a  US!-   nUR>                  [@        RB                  :X  a6   URE                  UR<                  5      nUU[        UR<                  5      '   M†  UR>                  [@        RJ                  :X  a6   URM                  UR<                  5      nUU[        UR<                  5      '   MÚ  UR>                  [@        RN                  :X  a›  UR<                  R                  5       u  nnU[P        RR                  " [P        RT                  5      :w  a  URG                  S#URH                  5        GM\   URE                  UR<                  5      nUU[        UR<                  5      '   GM“  URG                  S$URH                  UR<                  UR>                  5        GMÈ     UR7                  S%5        URW                  S5      n 0 n!0 n"Sn#U  GHÓ  n$U(       a  UU$S&   :X  a  M  U$S'   n%U$S&   S:  a  UR7                  S(U$S&   U%5        M<  U$S&   U:¼  a  U$S&   S!-   nUR3                  U%5      n&U&RX                  [Z        R\                  [Z        R^                  -  [Z        R`                  -  [Z        Rb                  -  -  n'U'[Z        R`                  :X  aM  URG                  S)U%SS* -  5        U&RX                  [Z        R`                  ) -  [Z        R^                  -  U&l,        GOàU'[Z        Rb                  :X  a  URG                  S+U%SS* -  5        GM=  U'[Z        R^                  :X  a   U%S*   S,:w  a  URG                  S-U%-  5        GMq  U'[Z        R\                  [Z        R^                  -  :X  aB  U%S*   S,:X  a9  URG                  S.U%-  5        U&RX                  [Z        R\                  ) -  U&l,        GOU'[Z        R\                  [Z        R`                  -  :X  aA  U%S*   S,:X  a8  URG                  S/U%-  5        U&RX                  [Z        R\                  ) -  U&l,        O±U'S:X  a,  U%S*   S,:w  a#  U&RX                  [Z        R\                  -  U&l,        OU'[Z        R\                  :X  d  U'[Z        R^                  :X  a  OV[        S0U%U&RX                  [Z        R\                  [Z        R^                  [Z        R`                  [Z        Rb                  4-  5      eU&U!U%'    URe                  U&R4                  5      S   U"U%'   U#(       d  U%Rm                  5       S1:X  a  U%n#U%Rm                  5       S2:X  a  U%n# URo                  U&5      n(U( Hr  n[        U5      U;   aG  U&R4                  U[        U5         ;  a)  U[        U5         Rq                  U&R4                  5        MW  MY  U&R4                  /U[        U5      '   Mt     GMÖ     UR7                  S4U5        [        U V)s/ s H  n)U)RH                  PM     sn)5      n*[        U  V+s/ s H  n+U+S'   PM
     sn+5      n,U*Rs                  U,5      n-U-(       a9  UR/                  S55        U- H  n.UR/                  S6U.-  5        M     [        S75      e[        U V)s/ s H  n)[        U)R<                  5      PM     sn)5      n/[u        U5      [u        U/5      :w  a  [        S85      e[        U  V+s/ s H  n+S9UU+S&   4-  PM     sn+5      n0[u        U 5      [u        U05      :w  a  [        S:5      eU/Rs                  U05      n1U1(       aB  UR/                  S;5        U1 H   nUR/                  S6[        U5      -  5        M"     [        S<5      e0 n20 n30 n4U(       a¦  [w        5       n5U5Ry                  U R                   5        U5R{                  U5        U5R}                  U5        U R                   R                  S5      R                  SS!5      S!   R                  S=5      n6U6R                  5        H  n7 [        U7U5S>9n8  O   UR7                  SA5        URW                  S5      n U  HÛ  n$U$S'   n%U%U"R…                  5       ;   d  M   U(       a  [‡        UW8WU%SB5      U2U%'   O$[f        Rh                  " U%5      Rˆ                  U2U%'     U(       a  [‡        UW8WU%SC5      U3U%'   O$[f        Rh                  " U%5      RŒ                  U3U%'     U(       a  [‡        UW8WU%SD5      U4U%'   M¸  [f        Rh                  " U%5      RŽ                  U4U%'   MÝ     UR7                  SE5        Sn9 U R‘                  5       n9US:X  d  US:X  d  SGnU#(       a  [“        SHSI5      n:OSn:[•        X40 SJU_SU	_SKU_SLU_SMU_SNU_SOU:_SP[–        R˜                  _SQU
Rm                  5       _SRU_SSU_ST[š        _SUU_SVU_SWS_SXU_SYS_6n;U;R�                  U5        UR7                  SZ5        U9(       a)  [Ÿ        [        U;R                   R¢                  5      U95        UR7                  S[5        [¥        U;R¦                  UU5        UR7                  S\5        [©        U;Rª                  X5        [¬        R®                  " 5       n<U<R±                  U;R                   R²                  5        U<R                  SU;R                   R                  S5      5        U<R                  S]U;R                   R                  S]5      5        U<R                  S^U;R                   R                  S^5      5        [&        R´                  " U<R                  S5      5      n=U;R¦                  R·                  5         UR7                  S_5         UR7                  S`5        U Hˆ  n)U)R¸                  S*:w  d  M  [»        U;R¦                  U)U5        [½        U;R¦                  U)R<                  U)R¸                  SaU5        [¿        U;R¦                  U)R<                  URm                  5       SaUSb9  MŠ     UR7                  Sc5        U;R¦                  RÃ                  5         UR7                  Sd5        UR7                  Se5        U! GHŸ  n%U%Rm                  5       S2:X  an  U!U%   R4                  [S        [        U5      Sf-   5      :w  aF  UR/                  SgU!U%   R4                  < Sh[S        [        U5      Sf-   5      < 35        [        Si5      eU%Rm                  5       S1:X  aK  U!U%   R4                  [S        [        U5      Sf-   5      :X  a  URG                  Sj5        OURG                  Sk5        U=RÅ                  U!U%   5        U%U";   d  GM  [½        U;R¦                  U!U%   R4                  U"U%   SlU5        U%U2;   d  GM4  U2U%   c  GM=  U%U3;   d  GMF  U3U%   c  GMO  U%U4;   d  GMX  U4U%   c  GMa  [¿        U;R¦                  U!U%   R4                  URm                  5       SlU2U%   U3U%   U4U%   USm9  GM¢     UR7                  Sn5        U;R¦                  R·                  5          U HL  n)[        U)R<                  5      U;   d  M  [Ç        U;R¦                  U)U[        U)R<                  5         U5        MN     UR7                  So5        U;R¦                  RÃ                  5         U#(       a½  UR7                  Sp5        U=R3                  S25      n>U!U#   RÈ                  U>ld        U!U#   RÊ                  (       a  U!U#   RÊ                  U>le        U!U#   RÌ                  U>lf        U!U#   RÎ                  (       a  U!U#   RÎ                  U>lg        U=RÑ                  U>5        UR7                  SqU#5        U;R                  Sr:X  aª  [Ó        U;R¦                  U;R                   RÔ                  U;R                   RÖ                  U;R                   RØ                  [P        RR                  " U;RÚ                  5      U;RÜ                  RÞ                  U;RÜ                  Rà                  U;R                   U5	        gg! [
         a1  n[        SU R                  S5      < S	[        U5      < S
35      eSnAff = f! [         a    Sn GNf = f! [&        R.                   a    [1        SU-  5      ef = f! [&        R.                   a    Sn GNÿf = f! [&        R.                   a4  nURG                  S"URH                  UR<                  U5         SnAGM   SnAff = f! [&        R.                   a4  nURG                  S"URH                  UR<                  U5         SnAGMK  SnAff = f! [&        R.                   a4  nURG                  S"URH                  UR<                  U5         SnAGM–  SnAff = f! [&        R.                   a:     [f        Rh                  " U%5      Rj                  U"U%'    GNÏ! [         a      GNÝf = ff = f! [&        R.                   a*  nURG                  S3U%U&R4                  U5         SnAGM4  SnAff = fs  sn)f s  sn+f s  sn)f s  sn+f ! [€        R‚                   a  n[        S?U7< S@U< 35      eSnAff = f! [         a     G	Nå[Š         a     G	Nñf = f! [         a     G	NÃ[Š         a     G	NÏf = f! [         a     G
M}  [Š         a     G
MŠ  f = f! [
         a&  nURG                  SF[        U5      5         SnAG	N¶SnAff = f!   U;R¦                  RÁ                  5         e = f!   U;R¦                  RÁ                  5         e = f)szÃUpgrade from samba3 database to samba4 AD database

:param samba3: samba3 object
:param logger: Logger object
:param targetdir: samba4 database directory
:param session_info: Session information
Ú	workgroupÚrealmznetbios namezldapsam:trustedNÚyeszCould not open 'zsecrets.tdbz ', the Samba3 secrets database: zN.  Perhaps you specified the incorrect smb.conf, --testparm or --dbdir option?r   z6No workgroup specified in smb.conf file, assuming '%s'ÚROLE_DOMAIN_BDCÚROLE_DOMAIN_PDCzéNo realm specified in smb.conf file and being a DC. That upgrade path doesn't work! Please add a 'realm' directive to your old smb.conf to let us know which one you want to use (it is the DNS name of the AD domain you wish to create.z2No realm specified in smb.conf file, assuming '%s'iè  zpassdb backendÚ:Úldapsamzldap suffixzldap admin dnz¬ldapsam passdb backend detected but no LDAP Bind PW found in secrets.tdb for user %s.  Please point this tool at the secrets.tdb that was used by the previous installation.zutf-8Ú TFzprivate dirz(Can't find domain sid for '%s', Exiting.z%s$zExporting account policyzExporting groupsrT   z4Ignoring group '%s' %s listed but then not found: %szOIgnoring 'well known' group '%s' (should already be in AD, and have no members)z+Ignoring group '%s' %s with sid_name_use=%dzExporting usersrŽ   Úaccount_namez-  Skipping wellknown rid=%d (for username=%s)zk  Demoting BDC account trust for %s, this DC must be elevated to an AD DC using 'samba-tool domain dcpromo'r   zZ  Skipping inter-domain trust from domain %s, this trust must be re-created as an AD trustÚ$zŸ  Skipping account %s that has ACB_WSTRUST (W) set but does not end in $.  This account can not have worked, and is probably left over from a misconfiguration.zŽ  Fixing account %s which had both ACB_NORMAL (U) and ACB_WSTRUST (W) set.  Account will be marked as ACB_WSTRUST (W), i.e. as a domain memberz�  Fixing account %s which had both ACB_NORMAL (U) and ACB_SVRTRUST (S) set.  Account will be marked as ACB_WSTRUST (S), i.e. as a domain membera  Failed to upgrade due to invalid account %s, account control flags 0x%08X must have exactly one of
ACB_NORMAL (N, 0x%08X), ACB_WSTRUST (W 0x%08X), ACB_SVRTRUST (S 0x%08X) or ACB_DOMTRUST (D 0x%08X).

Please fix this account before attempting to upgrade again
ÚrootÚadministratorz)Ignoring group memberships of '%s' %s: %szNext rid = %dz4Following names are both user names and group names:z   %sz5Please remove common user/group names before upgrade.z9Please remove duplicate group sid entries before upgrade.z%s-%uz8Please remove duplicate user sid entries before upgrade.z,Following sids are both user and group sids:z3Please remove duplicate sid entries before upgrade.Ú")Úcredentialsz!Could not open ldb connection to z, the error message is: zExporting posix attributesÚhomeDirectoryr>   r?   zReading WINS databasez'Cannot open wins database, Ignoring: %sÚNONEé   é    Ú	targetdirÚdomainÚ	domainsidÚnext_ridÚdc_ridÚ	adminpassÚdom_for_fun_levelÚhostnameÚmachinepassÚ
serverroleÚ
samdb_fillÚuseeadbÚdns_backendÚuse_rfc2307Ú	use_ntvfsÚskip_sysvolaclzImporting WINS databasezImporting Account policyzImporting idmap databasezstate directoryzlock directoryzAdding groupszImporting groupsrM   )r-   rB   rC   rD   r/   z+Committing 'add groups' transaction to diskzAdding userszImporting usersz-500z8User 'Administrator' in your existing directory has SID z, expected it to be zPUser 'Administrator' in your existing directory does not have SID ending in -500z,User root has been replaced by AdministratorzbUser root has been kept in the directory, it should be removed in favour of the Administrator userr<   )r-   rB   rC   rD   rE   rF   rG   r/   zAdding users to groupsz4Committing 'add users to groups' transaction to diskz"Setting password for administratorz<Administrator password has been set to password of user '%s'z"active directory domain controller)qÚlpÚserver_roleÚgetÚsetÚget_secrets_dbrh   r   Úprivatedir_pathr'   ÚdomainsrÚ   ÚupperÚget_machine_passwordrÛ   r‚   ÚstripÚget_ldap_bind_pwÚdecodeÚcloser
   Úset_secrets_dirÚ
get_sam_dbÚget_global_sam_sidÚerrorÚ	ExceptionÚgetsampwnamÚuser_sidÚinfoÚget_account_policyÚenum_group_mappingrB   r€   r   r‡   Úenum_aliasmemr,   r   ÚSID_NAME_DOM_GRPÚenum_group_membersr�   r   r   rƒ   Úsearch_usersÚ	acct_ctrlr   Ú
ACB_NORMALÚACB_WSTRUSTÚACB_SVRTRUSTÚACB_DOMTRUSTÚ	sid_to_idÚpwdÚgetpwnamÚpw_uidÚlowerÚenum_group_membershipsÚappendÚintersectionr®   r   ÚguessÚset_bind_dnÚset_passwordr   r"   r+   rË   rà   Úpw_dirÚ
IndexErrorÚpw_shellÚpw_gidÚget_wins_dbr   r   r   ÚDS_DOMAIN_FUNCTION_2003r	   Úreport_loggerr»   ÚpathsÚwinsdbr9   r-   rr   ÚidmapÚs3paramÚget_contextÚloadÚ
configfileÚPDBÚtransaction_startÚgidr�   rQ   rH   Útransaction_cancelÚtransaction_commitÚadd_sam_accountr–   Ú	nt_passwdÚlanman_passwdÚpass_last_set_timeÚ
pw_historyÚupdate_sam_accountr   ÚsysvolÚroot_uidÚroot_gidrö   ÚnamesÚ	dnsdomainÚdomaindn)?rn   r/   rô   Úsession_inforÿ   r   r  rý   Ú
domainnamerã   ÚnetbiosnameÚ
secrets_dbr7   r÷   rü   rÝ   ÚldapuserÚldappassÚldapÚs3dbrö   ÚmachineacctÚ_Ú
machineridr.   Ú	grouplistÚgroupmembersrx   rB   rŽ   r”   r�   ÚuserlistÚuserdataÚuidsÚ
admin_userÚentryÚusernamerÞ   Ú	acct_typeÚgroup_membershipsÚgÚgroup_namesÚuÚ
user_namesÚcommon_namesr¢   Ú
group_sidsÚ	user_sidsÚcommon_sidsÚhomesÚshellsÚpgidsÚcredsÚurlsÚurlrÜ   r³   rù   ÚresultÚ
new_lp_ctxÚ	s4_passdbÚadmin_userdatas?                                                                  r8   Úupgrade_from_samba3ru  ¨  s  € ð —‘×&Ñ&Ó(€Jà—‘—‘˜{Ó+€JØ�I‰I�M‰M˜'Ó"€EØ—)‘)—-‘- Ó/€Kà‡y�y‡}�}Ð&Ó'Ñ/Ø�	‰	�‰Ð'¨Ô/ðXØ×*Ñ*Ó,ˆ
ö Ø×'Ñ'Ó)¨!Ñ,ˆ
Ø�‰ÐOØ!ô	#ö ØÐ*Ó*¨jÐ<MÓ.MÜ#ð  %Pó  Qð  Qà×$Ñ$Ó&ˆEØ�N‰NÐOØ ô"ð €HðØ ×5Ñ5°kÓBˆð ‡y�y‡}�}Ð%Ó&×,Ñ,¨SÓ1°!Ñ4×:Ñ:Ó<À	ÓIØ—)‘)—-‘- Ó.ˆØ—9‘9—=‘= Ó1ˆØ×.Ñ.¨xÓ8ˆØÑÜ#ð  %Só  Tð  TØ—?‘? 7Ó+×1Ñ1°&Ó9ˆØ‰àˆØˆØˆð ×ÑÔô ×Ò˜6Ÿ9™9Ÿ=™=¨Ó7Ô8Ø×ÑÓ€DðQÜ×-Ò-Ó/ˆ	ð
5Ø×&Ñ& u¨{Ñ':Ó;ˆð $×,Ñ,×2Ñ2Ó4‰ˆˆ:ð ‡K�KÐ*Ô+Ø×$Ñ$Ó&€Fð ‡K�KÐ"Ô#Ø×'Ñ'Ó)€IØ€LÜˆØ—9‘9—?‘?Ó$‰ˆˆSØ�)ÓØ�h‹Ø ™7�ð ×Ñ¤×!3Ñ!3Ó3ðØ×,Ñ,¨U¯Y©YÓ7�Ø/6�œS §¡›^Ó,ð
 ×Ñ¤3×#7Ñ#7Ó7ðØ×1Ñ1°%·)±)Ó<�Ø/6�œS §¡›^Ó,ð
 ×Ñ¤3×#7Ñ#7Ó7Ø#(§9¡9§?¡?Ó#4Ñ ˆ]˜CØ¤×!1Ò!1´(×2FÑ2FÓ!GÓGØ—‘ÐmØ!ŸM™Mô+âðØ×,Ñ,¨U¯Y©YÓ7�Ø/6�œS §¡›^Ô,ð �K‰KÐEØŸ™ u§y¡y°%×2DÑ2DôFâñQ ðV ‡K�KÐ!Ô"Ø× Ñ  Ó#€HØ€HØ€DØ€JÜˆÞ˜*¨¨e©Ó4ÙØ˜Ñ(ˆØ�‰<˜$ÓØ�K‰KÐGÈÈuÉÐW_Ô`ÙØ�‰<˜8Ó#Ø˜U‘| aÑ'ˆHà×Ñ Ó)ˆØ—^‘^¤t§¡Ü'+×'7Ñ'7ñ(8ä'+×'8Ñ'8ñ(9ô (,×'8Ñ'8ñ(9ñ :ˆ	ð œ×)Ñ)Ó)Ø�K‰Kð  Fð  IQð  RUð  SUð  IVñ  Vô  WØ"Ÿn™n´×0AÑ0AÐ/AÑAÄT×EUÑEUÑUˆDŽNàœ$×+Ñ+Ó+Ø�K‰KÐtÐwð  ADð  BDð  xEñ  Eô  FÚàœ4×+Ñ+Ó,°¸"±ÀÓ1DØ�K‰Kð  zð  }Eñ  Eô  FÚàœ4Ÿ?™?¬T×-=Ñ-=Ñ=Ó>À8ÈBÁ<ÐSVÓCVØ�K‰Kð  ið  ltñ  tô  uØ"Ÿn™n´·±Ð/?Ñ?ˆDŽNàœ4Ÿ?™?¬T×->Ñ->Ñ>Ó?ÀHÈRÁLÐTWÓDWØ�K‰Kð  jð  muñ  uô  vØ"Ÿn™n´·±Ð/?Ñ?ˆD�Nà˜!‹^ ¨¡°Ó 3Ø"Ÿn™n¬t¯©Ñ>ˆD�Nàœ4Ÿ?™?Ó*¨i¼4×;KÑ;KÓ.KØô $ð %ð
 (0°·±Ü'+§¡¼×8HÑ8HÌ$×J[ÑJ[Ô]a×]nÑ]nð'pñ%pó qð qð "ˆ�Ñð	Ø!Ÿ^™^¨D¯M©MÓ:¸1Ñ=ˆD�‰Nö ˜hŸn™nÓ.°&Ó8Ø!ˆJØ�>‰>Ó˜Ó.Ø!ˆJð
	4Ø $× ;Ñ ;¸DÓ AÐÛ*�Ü�u“: Ó-Ø—}‘}¨L¼¸U»Ñ,DÓDØ$¤S¨£ZÑ0×7Ñ7¸¿¹ÖFñ Eð 15·±¨�L¤ U£Ó,ô +ñE ðX ‡K�K� Ô*ô ©)Ó4ª) Q�q—y”y©)Ñ4Ó5€KÜ±Ó:²¨A�a˜Ô'±Ñ:Ó;€JØ×+Ñ+¨JÓ7€LÞØ�‰ÐKÔLÛ ˆDØ�L‰L˜ 4™Ö(ñ !äÐ WÓXÐXô ©)Ó4ª) Q”c˜!Ÿ%™%–j©)Ñ4Ó5€JÜ
ˆ9ƒ~œ˜Z›Ó(ÜÐ [Ó\Ð\Ü¹hÓGºh¸�W 	¨1¨U©8Ð4Ô4¹hÑGÓH€IÜ
ˆ8ƒ}œ˜I›Ó&ÜÐ ZÓ[Ð[Ø×)Ñ)¨)Ó4€KÞØ�‰ÐCÔDÛˆCØ�L‰L˜¤3 s£8Ñ+Ö,ñ äÐ UÓVÐVð €EØ€FØ€EÞÜ“ˆØ�‰�F—I‘IÔØ×Ñ˜(Ô#Ø×Ñ˜8Ô$Ø�y‰y�}‰}Ð-Ó.×4Ñ4°S¸!Ó<¸QÑ?×EÑEÀcÓJˆØ—:‘:–<ˆCðÜ  °%Ñ8�
ñ ñ  ð ‡K�KÐ,Ô-Ø× Ñ  Ó#€HÛˆØ˜Ñ(ˆØ�t—y‘y“{Õ"ðÞÜ&FÀvÈzÐ[bÐdlÐn}Ó&~�E˜(’Oä&)§l¢l°8Ó&<×&CÑ&C�E˜(’OðÞÜ'GÈÐPZÐ\cÐemÐo{Ó'|�F˜8Ò$ä'*§|¢|°HÓ'=×'FÑ'F�F˜8Ò$ðÞÜ&FÀvÈzÐ[bÐdlÐnyÓ&z�E˜(“Oä&)§l¢l°8Ó&<×&CÑ&C�E˜(“Oñ7 ðB ‡K�KÐ'Ô(Ø€MðGØ×*Ñ*Ó,ˆð Ð+Ó+¨zÐ=NÓ/NØˆö
 Ü,¨R°Ó4‰	àˆ	ô �vò AÙ!*ðAÙ27ðAÙ@JðAá!*ðAá5=ðAñ )ðAñ 5>ðAô *.×)EÒ)Eð	Að
 !,× 1Ñ 1Ô 3ðAñ
 BMðAñ #-ðAõ :CðAñ  'ðAñ 5@ðAñ NRðAñ "+ðAñ <@ðA€Fð ×Ñ˜Ô ð ‡K�KÐ)Ô*æÜ”C˜Ÿ™×+Ñ+Ó,¨mÔ<ð ‡K�KÐ*Ô+Ü�f—l‘l F¨FÔ3ð ‡K�KÐ*Ô+Ü�—‘˜vÔ.ô ×$Ò$Ó&€JØ‡O�O�F—I‘I×(Ñ(Ô)Ø‡N�N�= &§)¡)§-¡-°Ó">Ô?Ø‡N�NÐ$ f§i¡i§m¡mÐ4EÓ&FÔGØ‡N�NÐ# V§Y¡Y§]¡]Ð3CÓ%DÔEô —
’
˜:Ÿ>™>Ð*:Ó;Ó<€Ið ‡L�L×"Ñ"Ô$à
‡K�K�Ô ðà�‰Ð&Ô'ÛˆAà�u‰u˜�{Ü,¨V¯\©\¸1¸fÔEÜ(¨¯©°q·u±u¸a¿e¹eÀ]ÐTZÔ[Ü f§l¡l¸¿¹È×IYÑIYÓI[Ðfsð  }Cô  Dñ ð ‡K�KÐ=Ô>Ø
‡L�L×#Ñ#Ô%à
‡K�K�Ôð ‡K�KÐ!Ô"ÜˆØ�>‰>Ó˜Ó.Ø˜Ñ!×*Ñ*¬g´c¸)³nÀvÑ6MÓ.NÓNØ—’Ðs{ð  }Eñ  tF÷  tOô  tOô  QXô  Y\ð  ]fó  Ygð  jpñ  Ypõ  Qqð  rô  sÜ'Ð(zÓ{Ð{Ø�>‰>Ó˜vÓ%Ø˜Ñ!×*Ñ*¬g´c¸)³nÀvÑ6MÓ.NÓNØ—‘ÐJÕKà—‘ð  Aô  Bà×!Ñ! (¨8Ñ"4Ô5Ø�tÖÜ$ V§\¡\°8¸HÑ3E×3NÑ3NÐPTÐU]ÑP^Ð`mÐouÔvØ˜EÖ!¨¨h©Ô(CØ˜FÖ"¨°Ñ)9Ô)EØ˜EÖ!¨¨h©Ô(CÜ f§l¡l¸ÀÑ8J×8SÑ8SÐ_i×_oÑ_oÓ_qð  }Jð  QVð  W_ñ  Q`ð  hnð  owñ  hxð  Dð  EMñ  Nð  W]õ  ^ñ# ð& ‡K�KÐ(Ô)à
‡L�L×"Ñ"Ô$ðÛˆAÜ�1—5‘5‹z˜\Õ)Ü" 6§<¡<°°LÄÀQÇUÁUÃÑ4LÈfÖUñ ð ‡K�KÐFÔGØ
‡L�L×#Ñ#Ô%ö Ø�‰Ð8Ô9Ø"×.Ñ.¨Ó?ˆØ#+¨JÑ#7×#AÑ#AˆÔ Ø�JÑ×-×-Ø+3°JÑ+?×+MÑ+MˆNÔ(Ø,4°ZÑ,@×,SÑ,SˆÔ)Ø�JÑ×*×*Ø(0°Ñ(<×(GÑ(GˆNÔ%Ø×$Ñ$ ^Ô4Ø�‰ÐRÐT^Ô_à×ÑÐAÓAÜ�V—\‘\ 6§<¡<×#6Ñ#6Ø—\‘\×*Ñ*¨F¯L©L×,AÑ,AÜ×%Ò% f×&6Ñ&6Ó7¸¿¹×9OÑ9OØ—\‘\×*Ñ*¨F¯I©I°yõ	Bð Bøô[ ó XÝð  io÷  iñ  ið  @Mö  iNô  PSð  TUö  PVð  !Wó  Xð  	XûðXûô* ó Ø‹ðûô4 �<‰<ó QÜÐBÀZÑOÓPÐPðQûô �<‰<ó Ø‹
ðûô0 —<‘<ó Ø—‘ÐRØ!ŸM™M¨5¯9©9°aô9æûðûô —<‘<ó Ø—‘ÐRØ!ŸM™M¨5¯9©9°aô9æûðûô —<‘<ó Ø—‘ÐRØ!ŸM™M¨5¯9©9°aô9æûðûôH �|‰|ó 	ðÜ!$§¢¨hÓ!7×!>Ñ!>��X”øÜó Ûðúð	ûô& �|‰|ó 	4Ø�K‰KÐCØ  $§-¡-°÷4ó 4ûð	4üò 5ùÚ:ùò 5ùò Høô. —<‘<ó tÝ'ÓknÒpqÐ(rÓsÐsûðtûô ó ÚÜó Úðûô ó ÚÜó Úðûô ó ÛÜó Ûðûô ó GØ�‰Ð=¼sÀ1»v×FÒFûðGûð@à�‰×'Ñ'Ô)ØûðJà�‰×'Ñ'Ô)Øús  Â%AK8 Ä$AL6 ÉAM	 ÉAM/ Ì 3ANÍ43AOÐ,3AP"Þ8!AQ-àB	AR>â6AS?ãATåAT	æATë
ATì,AUí#AUí+AUî#AUî*AU<ï#AU<ð AV ø>$AW ù&A7AW ÁC<AW. ÁD2AW. ÁK8
AL3ÁL,AL.ÁL.AL3ÁL6AMÁMAMÁM	#AM,ÁM/AN	ÁNAN	ÁNAOÁN (AOÁOAOÁOAPÁO+(APÁPAPÁP"AQ*ÁP6(AQ%ÁQ%AQ*ÁQ-AR;ÁR#AR(ÁR(
AR7ÁR2AR;ÁR6AR7ÁR7AR;ÁR>AS<ÁSAS7ÁS7AS<ÁTAT?ÁT'AT:ÁT:AT?ÁU
AUÁU	AUÁUAUÁU
AU9ÁU,	AU9ÁU8AU9ÁU<
AVÁV
	AVÁVAVÁV
AWÁV%AWÁWAWÁWAW+ÁW.AX)NNN)NFNF),Ú__doc__Ú__docformat__r"   r¯   r%  Úsambar   r   Úsamba.provisionr   r   r   Úsamba.provision.commonr	   Úsamba.samba3r
   r   r9  Úsamba.dcerpcr   r   r   Úsamba.dcerpc.securityr   Úsamba.credentialsr   r   Ú	samba.ndrr   r   r   r9   rH   rQ   ra   rr   r�   r–   r»   ÚHKEY_LOCAL_MACHINErÂ   rÖ   rà   ru  © r¼   r8   Ú<module>r‚     s¯   ðñ& :à"€ã 
Û Û 
ç ß FÑ FÝ ,Ý Ý )ß ,Ñ ,Ý )Ý )Ý Ý Ý Ý *ò5Bðp CGØ%)ôòD2ò>(6òV$FòN5Vòpwò217ðj 	�×+Ñ+ðÐ ò
Eò(ð, AEØCHõfBr¼   