+
    4Ssi�7  ã                   ó  € ^ RI t ^ RIt^ RIHtHt ^ RIHtHt  ! R R]4      t	 ! R R]P                  4      t ! R R	]P                  4      t ! R
 R]P                  4      t ! R R]P                  4      t ! R R]P                  4      t ! R R]P                  4      t ! R R]P                  4      t ! R R]P                  4      t ! R R]P                  4      t/ tR t]! 4        ARR ltR tR tR tR tR tR# ) é    N)Ú	dnsserverÚdnsp)ÚWERRORErrorÚwerrorc                   ó   € ] tR t^-tRtR# )ÚDNSParseError© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r	   ó    Ú1/usr/lib/python3/dist-packages/samba/dnsserver.pyr   r   -   s   † Ûr   r   c                   óf   a a€ ] tR t^1t o^R]P
                  ^ 3V 3R llt]RR l4       tRt	Vt
V ;t# )ÚARecordé„  c                óŒ   <€ \         SV `  4        \        P                  V n        WE,          V n        W n        W0n        Wn        R # ©N)	ÚsuperÚ__init__r   Ú
DNS_TYPE_AÚwTypeÚdwFlagsÚdwSerialÚdwTtlSecondsÚdata)ÚselfÚip_addrÚserialÚttlÚrankÚ	node_flagÚ	__class__s   &&&&&&€r   r   ÚARecord.__init__2   s3   ø€ ä‰ÑÔÜ—_‘_ˆŒ
ØÕ'ˆŒØŒØÔØŽ	r   c                ó   € V ! V3/ VB # r   r	   ©Úclsr   ÚsepÚkwargss   &&&,r   Úfrom_stringÚARecord.from_string;   ó   € á�4Ñ"˜6Ñ"Ð"r   ©r   r   r   r   r   r   ©r
   r   r   r   r   ÚDNS_RANK_ZONEr   Úclassmethodr+   r   Ú__classdictcell__Ú__classcell__©r$   Ú__classdict__s   @@r   r   r   1   s3   ù‡ € Ø'(¨c¸×8JÑ8JØ÷ð ó#ó ÷#ð #r   r   c                   óf   a a€ ] tR t^@t o^R]P
                  ^ 3V 3R llt]RR l4       tRt	Vt
V ;t# )Ú
AAAARecordr   c                óŒ   <€ \         SV `  4        \        P                  V n        WE,          V n        W n        W0n        Wn        R # r   )	r   r   r   ÚDNS_TYPE_AAAAr   r   r   r   r   )r   Úip6_addrr    r!   r"   r#   r$   s   &&&&&&€r   r   ÚAAAARecord.__init__B   s5   ø€ ä‰ÑÔÜ×'Ñ'ˆŒ
ØÕ'ˆŒØŒØÔØŽ	r   c                ó   € V ! V3/ VB # r   r	   r'   s   &&&,r   r+   ÚAAAARecord.from_stringK   r-   r   r.   r   r/   r4   s   @@r   r7   r7   @   s3   ù‡ € à()¨s¸×9KÑ9KØ÷ð ó#ó ÷#ð #r   r7   c                   óf   a a€ ] tR t^Pt o^R]P
                  ^ 3V 3R llt]RR l4       tRt	Vt
V ;t# )Ú	PTRRecordr   c                óâ   <€ \         SV `  4        \        P                  V n        WE,          V n        W n        W0n        \        P                  ! 4       pWn
        \        V4      Vn        W`n        R # r   )r   r   r   ÚDNS_TYPE_PTRr   r   r   r   r   ÚDNS_RPC_NAMEÚstrÚlenr   )r   Úptrr    r!   r"   r#   Úptr_namer$   s   &&&&&& €r   r   ÚPTRRecord.__init__R   sS   ø€ ä‰ÑÔÜ×&Ñ&ˆŒ
ØÕ'ˆŒØŒØÔÜ×)Ò)Ó+ˆØŒÜ˜3“xˆŒØŽ	r   c                ó   € V ! V3/ VB # r   r	   r'   s   &&&,r   r+   ÚPTRRecord.from_string^   r-   r   r.   r   r/   r4   s   @@r   r?   r?   P   s3   ù‡ € à#$¨#°D×4FÑ4FØ÷
ð ó#ó ÷#ð #r   r?   c                   óf   a a€ ] tR t^ct o^R]P
                  ^ 3V 3R llt]RR l4       tRt	Vt
V ;t# )ÚCNAMERecordr   c                óâ   <€ \         SV `  4        \        P                  V n        WE,          V n        W n        W0n        \        P                  ! 4       pWn
        \        V4      Vn        W`n        R # r   )r   r   r   ÚDNS_TYPE_CNAMEr   r   r   r   r   rB   rC   rD   r   )r   Úcnamer    r!   r"   r#   Ú
cname_namer$   s   &&&&&& €r   r   ÚCNAMERecord.__init__e   sS   ø€ ä‰ÑÔÜ×(Ñ(ˆŒ
ØÕ'ˆŒØŒØÔÜ×+Ò+Ó-ˆ
ØŒÜ˜U›ˆ
ŒØŽ	r   c                ó   € V ! V3/ VB # r   r	   r'   s   &&&,r   r+   ÚCNAMERecord.from_stringq   r-   r   r.   r   r/   r4   s   @@r   rK   rK   c   s3   ù‡ € à%&¨C°d×6HÑ6HØ÷
ð ó#ó ÷#ð #r   rK   c                   óf   a a€ ] tR t^vt o^R]P
                  ^ 3V 3R llt]RR l4       tRt	Vt
V ;t# )ÚNSRecordr   c                óâ   <€ \         SV `  4        \        P                  V n        WE,          V n        W n        W0n        \        P                  ! 4       pWn
        \        V4      Vn        W`n        R # r   )r   r   r   ÚDNS_TYPE_NSr   r   r   r   r   rB   rC   rD   r   )r   Ú
dns_serverr    r!   r"   r#   Únsr$   s   &&&&&& €r   r   ÚNSRecord.__init__x   sS   ø€ ä‰ÑÔÜ×%Ñ%ˆŒ
ØÕ'ˆŒØŒØÔÜ×#Ò#Ó%ˆØŒÜ�Z“ˆŒØŽ	r   c                ó   € V ! V3/ VB # r   r	   r'   s   &&&,r   r+   ÚNSRecord.from_string„   r-   r   r.   r   r/   r4   s   @@r   rT   rT   v   s3   ù‡ € à*+°¸4×;MÑ;MØ÷
ð ó#ó ÷#ð #r   rT   c                   óf   a a€ ] tR t^‰t o^R]P
                  ^ 3V 3R llt]RR l4       tRt	Vt
V ;t# )ÚMXRecordr   c                ó  <€ \         SV `  4        \        P                  V n        WV,          V n        W0n        W@n        \        P                  ! 4       pW'n
        WP                  n        \        V4      VP                  n        Wpn        R # r   )r   r   r   ÚDNS_TYPE_MXr   r   r   r   r   ÚDNS_RPC_RECORD_NAME_PREFERENCEÚwPreferenceÚnameExchangerC   rD   r   )	r   Úmail_serverÚ
preferencer    r!   r"   r#   Úmxr$   s	   &&&&&&& €r   r   ÚMXRecord.__init__‹   sc   ø€ ä‰ÑÔÜ×%Ñ%ˆŒ
ØÕ'ˆŒØŒØÔÜ×5Ò5Ó7ˆØ#ŒØ)�‰ÔÜ! +Ó.ˆ�‰ÔØŽ	r   c                óž   €  VP                  V4      w  rE\        V4      pT ! YE3/ TB #   \         d   p\        R T,          4      ThRp?ii ; i)z?MX data must have server and priority (space separated), not %rN)ÚsplitÚintÚ
ValueErrorr   )r(   r   r)   r*   ÚserverÚpriorityÚes   &&&,   r   r+   ÚMXRecord.from_string˜   sg   € ð	KØ#Ÿz™z¨#›ÑˆFÜ˜8“}ˆHñ �6Ñ. vÑ.Ð.øô ô 	KÜð !<Ø>Bõ!Có DØIJðKûð	Kús   ‚) ©A´AÁAr.   r   r/   r4   s   @@r   r]   r]   ‰   s3   ù‡ € à78¸cØ×(Ñ(°A÷ð ó/ó ÷/ð /r   r]   c                   ó‚   a a€ ] tR t^£t o^RRRRR]P
                  ]P                  3V 3R llt]RR l4       t	Rt
VtV ;t# )	Ú	SOARecordr   iX  i€Q i  c                óš  <€ \         SV `  4        \        P                  V n        Wš,          V n        W0n        W€n        \        P                  ! 4       pW;n
        WKn        W[n        Wkn        W{n        WP                  n        \#        V4      VP                  n        W+P$                  n        \#        V4      VP$                  n        W°n        R # r   )r   r   r   ÚDNS_TYPE_SOAr   r   r   r   r   ÚDNS_RPC_RECORD_SOAÚ
dwSerialNoÚ	dwRefreshÚdwRetryÚdwExpireÚdwMinimumTtlÚNamePrimaryServerrC   rD   ÚZoneAdministratorEmailr   )r   ÚmnameÚrnamer    ÚrefreshÚretryÚexpireÚminimumr!   r"   r#   Úsoar$   s   &&&&&&&&&&& €r   r   ÚSOARecord.__init__¥   s›   ø€ ô 	‰ÑÔÜ×&Ñ&ˆŒ
ØÕ'ˆŒØŒØÔÜ×*Ò*Ó,ˆØŒØŒØŒØŒØ"ÔØ$)×ÑÔ!Ü$'¨£Jˆ×ÑÔ!Ø).×"Ñ"Ô&Ü),¨U«ˆ×"Ñ"Ô&ØŽ	r   c                óö   € VP                  V4      p\        V4      ^8w  d   \        R4      h \        ^^4       F  p\	        WE,          4      WE&   K  	  T ! T/ TB #   \
         d   p\        R4      ThRp?ii ; i)é   zhData requires 7 space separated elements - nameserver, email, serial, refresh, retry, expire, minimumttlzBSOA serial, refresh, retry, expire, minimumttl' should be integersN)rh   rD   r   Úrangeri   rj   )r(   r   r)   r*   ÚargsÚirm   s   &&&,   r   r+   ÚSOARecord.from_string¹   sŠ   € à�z‰z˜#‹ˆÜˆt‹9˜Œ>Üð !Eó Fð Fð	=Ü˜1˜a–[�Ü˜d�g›,�“ñ !ñ
 �DÐ#˜FÑ#Ð#øô ô 	=Üð !5ó 6Ø;<ð=ûð	=ús   ®&A ÁA8Á'A3Á3A8r.   r   )r
   r   r   r   r   r0   ÚDNS_RPC_FLAG_AUTH_ZONE_ROOTr   r1   r+   r   r2   r3   r4   s   @@r   rp   rp   £   sB   ù‡ € à,-°sÀ#Ø t°¸D×<NÑ<NØ×;Ñ;÷ð( ó$ó ÷$ð $r   rp   c                   ój   a a€ ] tR t^Ét o^ ^d^R]P
                  ^ 3V 3R llt]RR l4       tRt	Vt
V ;t# )Ú	SRVRecordr   c	                ó.  <€ \         S
V `  4        \        P                  V n        Wx,          V n        WPn        W`n        \        P                  ! 4       p	W9n
        WIn        W)n        WP                  n        \        V4      V	P                  n        W�n        R # r   )r   r   r   ÚDNS_TYPE_SRVr   r   r   r   r   ÚDNS_RPC_RECORD_SRVÚ	wPriorityÚwWeightÚwPortÚ
nameTargetrC   rD   r   )r   ÚtargetÚportrl   Úweightr    r!   r"   r#   Úsrvr$   s   &&&&&&&&& €r   r   ÚSRVRecord.__init__Ë   sl   ø€ ä‰ÑÔÜ×&Ñ&ˆŒ
ØÕ'ˆŒØŒØÔÜ×*Ò*Ó,ˆØ ŒØŒØŒ	Ø#�‰ÔÜ  ›[ˆ�‰ÔØŽ	r   c                ó
  €  VP                  V4      w  rErg T\        T4      \        T4      \        T4      3p	T ! T	/ TB #   \         d   p\        R T,          4      ThRp?ii ; i  \         d   p\        R4      ThRp?ii ; i)zXSRV data must have four space separated elements: server, port, priority, weight; not %rNz/SRV port, priority, and weight must be integers)rh   rj   r   ri   )
r(   r   r)   r*   r“   r”   rl   r•   rm   r†   s
   &&&,      r   r+   ÚSRVRecord.from_stringÚ   s£   € ð	8Ø-1¯Z©Z¸«_Ñ*ˆF˜(ð	;ØœC ›I¤s¨8£}´c¸&³kÐBˆDñ
 �DÐ#˜FÑ#Ð#øô ô 	8Üð !)ð ,0õ!0ó 1ð 78ð8ûð	8ûô ô 	;Üð !3ó 4Ø9:ð;ûð	;ús.   ‚A  —!A& Á A#ÁAÁA#Á&BÁ1A=Á=Br.   r   r/   r4   s   @@r   r‹   r‹   É   s7   ù‡ € à./¸ÀAÈ3Ø×(Ñ(°A÷ð ó$ó ÷$ð $r   r‹   c                   óf   a a€ ] tR t^ìt o^R]P
                  ^ 3V 3R llt]RR l4       tRt	Vt
V ;t# )Ú	TXTRecordr   c                ó¢  <€ \         S
V `  4        \        P                  V n        WE,          V n        W n        W0n        \        V\        4      '       d   V.p. pV F?  p\        P                  ! 4       pWxn	        \        V4      Vn        VP                  V4       KA  	  \        P                  ! 4       p	\        V4      V	n        Win	        W�n        R # r   )r   r   r   ÚDNS_TYPE_TXTr   r   r   r   Ú
isinstancerC   r   rB   rD   ÚappendÚDNS_RPC_RECORD_STRINGÚcountr   )r   Úslistr    r!   r"   r#   ÚnamesÚsÚnameÚtxtr$   s   &&&&&&    €r   r   ÚTXTRecord.__init__î   s¢   ø€ ä‰ÑÔÜ×&Ñ&ˆŒ
ØÕ'ˆŒØŒØÔÜ�eœS×!Ò!Ø�GˆEØˆÛˆAÜ×)Ò)Ó+ˆDØŒHÜ˜1“vˆDŒHØ�L‰L˜Öñ	 ô
 ×-Ò-Ó/ˆÜ˜“JˆŒ	ØŒØŽ	r   c                ó@   € \         P                  ! V4      pV ! V3/ VB # r   )Úshlexrh   )r(   r   r)   r*   r¢   s   &&&, r   r+   ÚTXTRecord.from_string  s    € ä—’˜DÓ!ˆÙ�5Ñ#˜FÑ#Ð#r   r.   r   r/   r4   s   @@r   r›   r›   ì   s3   ù‡ € à%&¨C°d×6HÑ6HØ÷ð( ó$ó ÷$ð $r   r›   c                  ó¼   € \        4       P                  4        F?  w  rV RR R8X  g   K  V RR p \        \        RV ,           4      pV\        V &   V\        V&   KA  	  R# )é   NÚRecordÚ	DNS_TYPE_iúÿÿÿ)ÚglobalsÚitemsÚgetattrr   Ú_RECORD_TYPE_LUT)ÚkÚvÚflags      r   Ú_setup_record_type_lutr¶     sV   € Ü“	—‘Ö!‰ˆØˆRˆSˆ6�XÖØ�#�2�ˆAÜœ4 ¨q¥Ó1ˆDØ"#Ô˜QÑØ%&Ô˜TÓ"ó "r   c                óÒ   € \        V \        4      '       d   V P                  4       p  \        V ,          pTP                  ! T3RT/TB #   \         d   p\        R4      ThRp?ii ; i)z²Get a DNS record of type t based on the data string.
Additional keywords (ttl, rank, etc) can be passed in.

t can be a dnsp.DNS_TYPE_* integer or a string like "A", "TXT", etc.
zUnsupported record typeNr)   )rž   rC   Úupperr²   ÚKeyErrorr   r+   )Útr   r)   r*   r­   rm   s   &&&,  r   Úrecord_from_stringr»     sh   € ô �!”S×ÒØ�G‰G‹Iˆð>Ü! !Õ$ˆð ×Ò˜dÑ6¨Ð6¨vÑ6Ð6øô ô >ÜÐ5Ó6¸AÐ=ûð>ús   ¨A
 Á
A&ÁA!Á!A&c                 óž   € V P                  4       p \        \        R V,           4      #   \         d   p\	        RT ,          4      ThRp?ii ; i)r®   zUnknown type of DNS record %sN)r¸   r±   r   ÚAttributeErrorr   )Úrec_typeÚrtyperm   s   &  r   Úflag_from_stringrÀ   (  sK   € Ø�N‰NÓ€EðOÜ”t˜[¨5Õ0Ó1Ð1øÜô OÜÐ;¸hÕFÓGÈQÐNûðOús   ’) ©A´AÁAc                  óR   € \        V / VB p\        P                  ! 4       pW#n        V# r   )r»   r   ÚDNS_RPC_RECORD_BUFÚrec)r†   r*   rÃ   Úbufs   *,  r   Úrecbuf_from_stringrÅ   0  s)   € Ü
˜dÐ
- fÑ
-€CÜ
×
&Ò
&Ó
(€CØ„GØ€Jr   c                ó¨   € V P                   P                  R4      P                  4       VP                   P                  R4      P                  4       8H  # )z%Match dns name (of type DNS_RPC_NAME)Ú.)rC   ÚrstripÚlower)Ún1Ún2s   &&r   Údns_name_equalrÌ   7  s9   € à�6‰6�=‰=˜Ó×#Ñ#Ó%¨¯©¯©°sÓ);×)AÑ)AÓ)CÑCÐCr   c                ó–   € \         P                  ! \         P                  V 4      p\         P                  ! \         P                  V4      # )z.Convert an AAAA address into a canonical form.)ÚsocketÚ	inet_ptonÚAF_INET6Ú	inet_ntop)ÚaddrÚpackeds   & r   Úipv6_normaliserÔ   <  s/   € ä×ÒœfŸo™o¨tÓ4€FÜ×ÒœFŸO™O¨VÓ4Ð4r   c                ó„  € \        WE4      p\        P                  p V P                  \        P                  ^ WVRWGRR4
      w  r‰T	'       d   T	P                  ^ 8X  d   R# T	P                  ^ ,          P                   EFý  pTP                  T8w  d   K  RpT\        P                  8X  d    TP                  TP                  8X  d   RpEM¤T\        P                   8X  d2   \#        TP                  4      \#        TP                  4      8X  d   RpEM^T\        P$                  8X  d+   \'        TP                  TP                  4      '       d   RpEMT\        P(                  8X  d+   \'        TP                  TP                  4      '       d   RpEMàT\        P*                  8X  d+   \'        TP                  TP                  4      '       d   RpEM¡T\        P,                  8X  dn   \'        TP                  P.                  TP                  P.                  4      '       d2   TP                  P0                  TP                  P0                  8X  d   RpEMT\        P2                  8X  dÌ   TP                  P4                  TP                  P4                  8X  d›   TP                  P6                  TP                  P6                  8X  dl   TP                  P8                  TP                  P8                  8X  d=   \'        TP                  P:                  TP                  P:                  4      '       d   RpEM?T\        P<                  8X  Ede   TP                  P>                  TP                  P>                  8X  Ed4   TP                  P@                  TP                  P@                  8X  Ed   TP                  PB                  TP                  PB                  8X  dÕ   TP                  PD                  TP                  PD                  8X  d¦   TP                  PF                  TP                  PF                  8X  dw   \'        TP                  PH                  TP                  PH                  4      '       d=   \'        TP                  PJ                  TP                  PJ                  4      '       d   RpMÅT\        PL                  8X  d±   TP                  P                  TP                  P                  8X  d‚   Rp\O        TP                  P                  4       F\  pT;'       dP    TP                  PP                  T,          PP                  TP                  PP                  T,          PP                  8H  pK^  	  T'       g   EKü  Tu # 	  R#   \
         d4   p
T
P                  ^ ,          \        P                  8X  d    Rp
?
R# T
hRp
?
ii ; i)z1Find a dns record that matches the specified dataNFT))r»   r   ÚDNS_RPC_VIEW_AUTHORITY_DATAÚDnssrvEnumRecords2ÚDNS_CLIENT_VERSION_LONGHORNr   r†   r   Ú"WERR_DNS_ERROR_NAME_DOES_NOT_EXISTr¡   rÃ   Úrecordsr   r   r   r   r9   rÔ   rA   rÌ   rM   rV   r_   rb   ra   r�   r�   r�   r‘   r’   rr   rt   ru   rv   rw   rx   ry   rz   r�   r…   rC   )Údns_connrk   Úzoner¥   Úrecord_typer   ÚurecÚselect_flagsÚbuflenÚresrm   rÃ   Úfoundr‡   s   &&&&&&        r   Údns_record_matchrã   B  sÞ  € ô ˜kÓ0€Dä×8Ñ8€Lð	Ø×1Ñ1Ü×1Ñ1°1°fÀDÈ$Ø t¨Tó3‰ˆ÷ �#—)‘)˜q”.Ùà�w‰w�q�z×!Õ!ˆØ�9‰9˜Ô#ÙàˆØœ$Ÿ/™/Ô)Ø�x‰x˜4Ÿ9™9Ô$Ø�ùØœD×.Ñ.Ô.Ü˜cŸh™hÓ'¬>¸$¿)¹)Ó+DÔDØ�ùØœD×-Ñ-Ô-Ü˜cŸh™h¨¯	©	×2Ò2Ø�ùØœD×/Ñ/Ô/Ü˜cŸh™h¨¯	©	×2Ò2Ø�ùØœD×,Ñ,Ô,Ü˜cŸh™h¨¯	©	×2Ò2Ø�ùØœD×,Ñ,Ô,Ü˜cŸh™h×3Ñ3°T·Y±Y×5KÑ5K×LÒLØ�x‰x×#Ñ# t§y¡y×'<Ñ'<Ô<Ø�ùØœD×-Ñ-Ô-Ø�x‰x×!Ñ! T§Y¡Y×%8Ñ%8Ô8Ø�x‰x×Ñ 4§9¡9×#4Ñ#4Ô4Ø�x‰x�~‰~ §¡§¡Ô0Ü˜cŸh™h×1Ñ1°4·9±9×3GÑ3G×HÒHØ�ùØœD×-Ñ-Õ-Ø�x‰x×"Ñ" d§i¡i×&:Ñ&:Õ:Ø�x‰x×!Ñ! T§Y¡Y×%8Ñ%8Õ8Ø�x‰x×Ñ 4§9¡9×#4Ñ#4Ô4Ø�x‰x× Ñ  D§I¡I×$6Ñ$6Ô6Ø�x‰x×$Ñ$¨¯	©	×(>Ñ(>Ô>Ü˜cŸh™h×8Ñ8Ø"Ÿi™i×9Ñ9÷;ò ;ä˜cŸh™h×=Ñ=Ø"Ÿi™i×>Ñ>÷@ò @à�øØœD×-Ñ-Ô-Ø�x‰x�~‰~ §¡§¡Ô0Ø�Ü˜sŸx™xŸ~™~Ö.�AØ!÷ Jð JØ ŸX™XŸ\™\¨!�_×0Ñ0°D·I±I·M±MÀ!Õ4D×4HÑ4HÑHò ñ /÷ Š5ØŠJñc "ñf øô{ ô Ø�6‰6�!�9œ×AÑAÔAõ Øˆûðús   �(V ÖV?Ö&V:Ö8V:Ö:V?r   )r©   rÎ   Úsamba.dcerpcr   r   Úsambar   r   rj   r   ÚDNS_RPC_RECORDr   r7   r?   rK   rT   r]   rp   r‹   r›   r²   r¶   r»   rÀ   rÅ   rÌ   rÔ   rã   r	   r   r   Ú<module>rç      sü   ðó& Û ß (ß %ô.	�Jô 	ô#ˆi×&Ñ&ô #ô#�×)Ñ)ô #ô #�	×(Ñ(ô #ô&#�)×*Ñ*ô #ô&#ˆy×'Ñ'ô #ô&/ˆy×'Ñ'ô /ô4#$�	×(Ñ(ô #$ôL $�	×(Ñ(ô  $ôF$�	×(Ñ(ô $ð> Ð ò'ñ Ô Øô7ò OòòDò
5ôSr   