/usr/lib/rads/venv/lib/python3.13/site-packages/dns/__pycache__
NameSizeModeActions
asyncbackend.cpython-313.pyc34550644editdlrm
asyncquery.cpython-313.pyc376610644editdlrm
asyncresolver.cpython-313.pyc208710644editdlrm
dnssec.cpython-313.pyc514610644editdlrm
dnssectypes.cpython-313.pyc20700644editdlrm
e164.cpython-313.pyc48490644editdlrm
edns.cpython-313.pyc258940644editdlrm
entropy.cpython-313.pyc61100644editdlrm
enum.cpython-313.pyc49300644editdlrm
exception.cpython-313.pyc74740644editdlrm
flags.cpython-313.pyc30980644editdlrm
grange.cpython-313.pyc17750644editdlrm
immutable.cpython-313.pyc38280644editdlrm
inet.cpython-313.pyc65810644editdlrm
ipv4.cpython-313.pyc27190644editdlrm
ipv6.cpython-313.pyc69210644editdlrm
message.cpython-313.pyc859310644editdlrm
name.cpython-313.pyc490600644editdlrm
namedict.cpython-313.pyc43540644editdlrm
nameserver.cpython-313.pyc147060644editdlrm
node.cpython-313.pyc163490644editdlrm
opcode.cpython-313.pyc31400644editdlrm
query.cpython-313.pyc645170644editdlrm
rcode.cpython-313.pyc44530644editdlrm
rdata.cpython-313.pyc386500644editdlrm
rdataclass.cpython-313.pyc35370644editdlrm
rdataset.cpython-313.pyc226570644editdlrm
rdatatype.cpython-313.pyc102390644editdlrm
renderer.cpython-313.pyc159450644editdlrm
resolver.cpython-313.pyc880070644editdlrm
reversename.cpython-313.pyc46930644editdlrm
rrset.cpython-313.pyc123170644editdlrm
serial.cpython-313.pyc54210644editdlrm
set.cpython-313.pyc121210644editdlrm
tokenizer.cpython-313.pyc265250644editdlrm
transaction.cpython-313.pyc288830644editdlrm
tsig.cpython-313.pyc171680644editdlrm
tsigkeyring.cpython-313.pyc28710644editdlrm
ttl.cpython-313.pyc25350644editdlrm
update.cpython-313.pyc161190644editdlrm
version.cpython-313.pyc7620644editdlrm
versioned.cpython-313.pyc148000644editdlrm
win32util.cpython-313.pyc99290644editdlrm
wire.cpython-313.pyc55500644editdlrm
xfr.cpython-313.pyc146710644editdlrm
zone.cpython-313.pyc662180644editdlrm
zonefile.cpython-313.pyc343180644editdlrm
zonetypes.cpython-313.pyc14160644editdlrm
_asyncbackend.cpython-313.pyc49850644editdlrm
_asyncio_backend.cpython-313.pyc145780644editdlrm
_ddr.cpython-313.pyc79590644editdlrm
_features.cpython-313.pyc32360644editdlrm
_immutable_ctx.cpython-313.pyc33350644editdlrm
_trio_backend.cpython-313.pyc137510644editdlrm
__init__.cpython-313.pyc7020644editdlrm
Edit: /usr/lib/rads/venv/lib/python3.13/site-packages/dns/__pycache__/zone.cpython-313.pyc (66218B)
jvSrSSKrSSKrSSKrSSKrSSKJrJrJrJ r J r J r J r J r JrJr SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK rSSK!J"r"J#r#J$r$ "SS\RJRL5r'"SS\'5r("S S \'5r)"S S \'5r*"S S\RJRL5r+"SS\RJRL5r,"SS\RJRL5r-"SS\RJRL5r.S\R^R`S\ \R^R`S\1S\R^R`4Sjr2"SS\RfRh5r5"SS\RlRn5r8\RrRr"SS\855r:"S S!5r;"S"S#\;5r<\RrRr"S$S%\;55r="S&S'\RfR|5r>S\R~RS(\5SS)S(SS(4 S*\S\ \\R^R`\A4S+\R~RS\1S,\S-\ \AS.\1S/\1S0\ \R^RS1\\1\\A4S\54S2jjrDS\R~RS(\5SS)S(SS(4 S*\AS\ \\R^R`\A4S+\R~RS\1S,\S-\ \AS.\1S/\1S0\ \R^RS1\\1\\A4S\54S3jjrES\R~RS(\5SS(S(SS(4 S4\S\ \\R^R`\A4S+\R~RS\1S,\S-\ \AS.\1S/\1S0\ \R^RS1\\1\\A4S\54S5jjrF\5S(S(4S6\S,\S\1S/\1S\54 S7jjrGg)8z DNS Zones.N) AnyCallableIterableIteratorListMutableMappingOptionalSetTupleUnion)DigestHashAlgorithm DigestScheme_digest_hashersc\rSrSrSrSrg)BadZone8zThe DNS zone is malformed.N__name__ __module__ __qualname____firstlineno____doc____static_attributes__r;/usr/lib/rads/venv/lib/python3.13/site-packages/dns/zone.pyrr8s$rrc\rSrSrSrSrg)NoSOA<z)The DNS zone has no SOA RR at its origin.rNrrrrrr<s3rrc\rSrSrSrSrg)NoNS@z+The DNS zone has no NS RRset at its origin.rNrrrrr!r!@s5rr!c\rSrSrSrSrg) UnknownOriginDz!The DNS zone's origin is unknown.rNrrrrr$r$Ds+rr$c\rSrSrSrSrg)UnsupportedDigestSchemeHz(The zone digest's scheme is unsupported.rNrrrrr'r'H2rr'c\rSrSrSrSrg)UnsupportedDigestHashAlgorithmLz(The zone digest's origin is unsupported.rNrrrrr+r+Lr)rr+c\rSrSrSrSrg)NoDigestPz/The DNS zone has no ZONEMD RRset at its origin.rNrrrrr.r.Ps9rr.c\rSrSrSrSrg)DigestVerificationFailureTz#The ZONEMD digest failed to verify.rNrrrrr1r1Ts-rr1nameorigin relativizereturncRUc [S5eUR5(a;URU5(d [S5eU(aURU5nU$UR U5nU(dUnU$![ R Ra [S5ef=f)Nzno zone origin is definedz5name parameter must be a subdomain of the zone originzrelative name too long for zone)KeyError is_absolute is_subdomainr5 derelativizednsr3 NameTooLong)r3r4r5abs_names r_validate_namer?Xs ~233   ((RS S ??6*D K >((0H D Kxx## ><= = >s A<<*B&c\rSrSr%Sr\R Rr\ /\R R4\ S'\ r \ /\ \RR\R R44\ S'Sr\\ /S4\ S'Sr\\ /S4\ S '/S Qr\R(R*S 4S \\\RR\4S \R(R0S\4SjjrSrSrS\\RR\4S\RR4SjrSrSrSr Sr!Sr"Sr#Sr$Sr%Sr&SHS\\RR\4S\S\R R4S jjr'SHS\\RR\4S\S\\R R4S!jjr(S\\RR\4SS4S"jr)\RTRVS4S\\RR\4S#\\RTRX\4S$\\RTRX\4S\S\RZR\4 S%jjr/\RTRVS4S\\RR\4S#\\RTRX\4S$\\RTRX\4S\S\\RZR\4 S&jjr0\RTRV4S\\RR\4S#\\RTRX\4S$\\RTRX\4SS4S'jjr1S\\RR\4S(\RZR\SS4S)jr2\RTRV4S\\RR\4S#\\RTRX\4S$\\RTRX\4S\RfRh4S*jjr5\RTRV4S\\RR\4S#\\RTRX\4S$\\RTRX\4S\\RfRh4S+jjr6\RTRn\RTRV4S#\\RTRX\4S$\\RTRX\4S\8\9\RR\RZR\44S,jjr:\RTRn\RTRV4S#\\RTRX\4S$\\RTRX\4S\8\9\RR\;\RxRz44S-jjr>SIS.\?S/\S\S0\\S1\S2\SS4S3jjr@SIS/\S\S0\\S1\S2\S\4 S4jjrASJS5jrBSKS6\\RRS\RRnRR4S7jjrG\HR4S8\JS9\HS\K4S:jjrL\HR4S8\JS9\HS\RRnRR4S;jjrNSKS<\\RRnRRSS4S=jjrOSLS?jrPSHS(\SS>4S@jjrQS\9\\RR\\\RR44SAjrRSBrSSCrTSDrUSErVSFrWSGrXg)MZonexa^A DNS zone. A ``Zone`` is a mapping from names to nodes. The zone object may be treated like a Python dictionary, e.g. ``zone[name]`` will retrieve the node associated with that name. The *name* may be a ``dns.name.Name object``, or it may be a string. In either case, if the name is relative it is treated as relative to the origin of the zone. node_factory map_factoryNWritableVersionwritable_version_factoryImmutableVersionimmutable_version_factory)rdclassr4nodesr5Tr4rIr5cjUb[U[5(a [RR U5nO4[U[RR 5(d [ S5eUR5(d [ S5eXlX l UR5Ul X0l g)aInitialize a zone object. *origin* is the origin of the zone. It may be a ``dns.name.Name``, a ``str``, or ``None``. If ``None``, then the zone's origin will be set by the first ``$ORIGIN`` line in a zone file. *rdclass*, an ``int``, the zone's rdata class; the default is class IN. *relativize*, a ``bool``, determine's whether domain names are relativized to the zone's origin. The default is ``True``. Nz2origin parameter must be convertible to a DNS namez)origin parameter must be an absolute name) isinstancestrr<r3 from_textName ValueErrorr9r4rIrDrJr5)selfr4rIr5s r__init__ Zone.__init__s$  &#&&++F3 66 !UVV%%'' !LMM  CGCSCSCU $rc[U[5(dgURUR:wd4URUR:wdURUR:wagg)zYTwo zones are equal if they have the same origin, class, and nodes. Returns a ``bool``. FT)rLrArIr4rJrQothers r__eq__ Zone.__eq__sJ%&& LLEMM ){{ell*zzU[[(rc.URU5(+$)z.Are two zones not equal? Returns a ``bool``. )rWrUs r__ne__ Zone.__ne__s ;;u%%%rr3r6c[U[5(a![RR US5nO4[U[RR 5(d [ S5e[XRUR5$)Nz0name parameter must be convertible to a DNS name) rLrMr<r3rNrOr8r?r4r5rQr3s rr?Zone._validate_names] dC 88%%dD1DD#((--00MN NdKKAArcBURU5nURU$Nr?rJrQkeys r __getitem__Zone.__getitem__s !!#&zz#rcBURU5nX RU'gr`ra)rQrcvalues r __setitem__Zone.__setitem__s!!#& 3rc@URU5nURU gr`rarbs r __delitem__Zone.__delitem__s!!#& JJsOrc6URR5$r`)rJ__iter__rQs rrn Zone.__iter__szz""$$rc6URR5$r`rJkeysros rrs Zone.keyszz  rc6URR5$r`)rJvaluesros rrw Zone.valuesszz  ""rc6URR5$r`rJitemsros rr{ Zone.itemszz!!rcZURU5nURRU5$r`r?rJgetrbs rrZone.gets%!!#&zz~~c""rc@URU5nXR;$r`rarbs r __contains__Zone.__contains__s!!#&jj  rFcreatecURU5nURRU5nUc+U(d[eUR 5nX0RU'U$)aFind a node in the zone, possibly creating it. *name*: the name of the node to find. The value may be a ``dns.name.Name`` or a ``str``. If absolute, the name must be a subdomain of the zone's origin. If ``zone.relativize`` is ``True``, then the name will be relativized. *create*, a ``bool``. If true, the node will be created if it does not exist. Raises ``KeyError`` if the name is not known and create was not specified, or if the name was not a subdomain of the origin. Returns a ``dns.node.Node``. )r?rJrr8rCrQr3rnodes r find_nodeZone.find_nodesR&""4(zz~~d# <$$&D#JJt  rcPURX5nU$![a SnU$f=f)a(Get a node in the zone, possibly creating it. This method is like ``find_node()``, except it returns None instead of raising an exception if the node does not exist and creation has not been requested. *name*: the name of the node to find. The value may be a ``dns.name.Name`` or a ``str``. If absolute, the name must be a subdomain of the zone's origin. If ``zone.relativize`` is ``True``, then the name will be relativized. *create*, a ``bool``. If true, the node will be created if it does not exist. Returns a ``dns.node.Node`` or ``None``. N)rr8rs rget_node Zone.get_nodes7( >>$/D  D  s  %%c`URU5nXR;aURU gg)a;Delete the specified node if it exists. *name*: the name of the node to find. The value may be a ``dns.name.Name`` or a ``str``. If absolute, the name must be a subdomain of the zone's origin. If ``zone.relativize`` is ``True``, then the name will be relativized. It is not an error if the node does not exist. Nrar]s r delete_nodeZone.delete_node s/""4( ::  4  rrdtypecoversc$URU5n[RRR U5n[RRR U5nUR X5nUR URX#U5$)a Look for an rdataset with the specified name and type in the zone, and return an rdataset encapsulating it. The rdataset returned is not a copy; changes to it will change the zone. KeyError is raised if the name or type are not found. *name*: the name of the node to find. The value may be a ``dns.name.Name`` or a ``str``. If absolute, the name must be a subdomain of the zone's origin. If ``zone.relativize`` is ``True``, then the name will be relativized. *rdtype*, a ``dns.rdatatype.RdataType`` or ``str``, the rdata type desired. *covers*, a ``dns.rdatatype.RdataType`` or ``str`` the covered type. Usually this value is ``dns.rdatatype.NONE``, but if the rdtype is ``dns.rdatatype.SIG`` or ``dns.rdatatype.RRSIG``, then the covers value will be the rdata type the SIG/RRSIG covers. The library treats the SIG and RRSIG types as if they were a family of types, e.g. RRSIG(A), RRSIG(NS), RRSIG(SOA). This makes RRSIGs much easier to work with than if RRSIGs covering different rdata types were aggregated into a single RRSIG rdataset. *create*, a ``bool``. If true, the node will be created if it does not exist. Raises ``KeyError`` if the name is not known and create was not specified, or if the name was not a subdomain of the origin. Returns a ``dns.rdataset.Rdataset``. )r?r< rdatatype RdataTypemaker find_rdatasetrI)rQr3rrrrs rrZone.find_rdataset/spR""4(((--f5((--f5~~d+!!$,,GGrcRURXX45nU$![a SnU$f=f)a]Look for an rdataset with the specified name and type in the zone. This method is like ``find_rdataset()``, except it returns None instead of raising an exception if the rdataset does not exist and creation has not been requested. The rdataset returned is not a copy; changes to it will change the zone. *name*: the name of the node to find. The value may be a ``dns.name.Name`` or a ``str``. If absolute, the name must be a subdomain of the zone's origin. If ``zone.relativize`` is ``True``, then the name will be relativized. *rdtype*, a ``dns.rdatatype.RdataType`` or ``str``, the rdata type desired. *covers*, a ``dns.rdatatype.RdataType`` or ``str``, the covered type. Usually this value is ``dns.rdatatype.NONE``, but if the rdtype is ``dns.rdatatype.SIG`` or ``dns.rdatatype.RRSIG``, then the covers value will be the rdata type the SIG/RRSIG covers. The library treats the SIG and RRSIG types as if they were a family of types, e.g. RRSIG(A), RRSIG(NS), RRSIG(SOA). This makes RRSIGs much easier to work with than if RRSIGs covering different rdata types were aggregated into a single RRSIG rdataset. *create*, a ``bool``. If true, the node will be created if it does not exist. Raises ``KeyError`` if the name is not known and create was not specified, or if the name was not a subdomain of the origin. Returns a ``dns.rdataset.Rdataset`` or ``None``. N)rr8)rQr3rrrrdatasets r get_rdatasetZone.get_rdataset^s<T ))$GH H   &&cnURU5n[RRR U5n[RRR U5nUR U5nUb>UR URX#5 [U5S:XaURU5 ggg)aGDelete the rdataset matching *rdtype* and *covers*, if it exists at the node specified by *name*. It is not an error if the node does not exist, or if there is no matching rdataset at the node. If the node has no rdatasets after the deletion, it will itself be deleted. *name*: the name of the node to find. The value may be a ``dns.name.Name`` or a ``str``. If absolute, the name must be a subdomain of the zone's origin. If ``zone.relativize`` is ``True``, then the name will be relativized. *rdtype*, a ``dns.rdatatype.RdataType`` or ``str``, the rdata type desired. *covers*, a ``dns.rdatatype.RdataType`` or ``str`` or ``None``, the covered type. Usually this value is ``dns.rdatatype.NONE``, but if the rdtype is ``dns.rdatatype.SIG`` or ``dns.rdatatype.RRSIG``, then the covers value will be the rdata type the SIG/RRSIG covers. The library treats the SIG and RRSIG types as if they were a family of types, e.g. RRSIG(A), RRSIG(NS), RRSIG(SOA). This makes RRSIGs much easier to work with than if RRSIGs covering different rdata types were aggregated into a single RRSIG rdataset. Nr) r?r<rrrrdelete_rdatasetrIlenrrQr3rrrs rrZone.delete_rdatasets:""4(((--f5((--f5}}T"    v >4yA~  & r replacementcURUR:wa [S5eURUS5nURU5 g)akReplace an rdataset at name. It is not an error if there is no rdataset matching I{replacement}. Ownership of the *replacement* object is transferred to the zone; in other words, this method does not store a copy of *replacement* at the node, it stores *replacement* itself. If the node does not exist, it is created. *name*: the name of the node to find. The value may be a ``dns.name.Name`` or a ``str``. If absolute, the name must be a subdomain of the zone's origin. If ``zone.relativize`` is ``True``, then the name will be relativized. *replacement*, a ``dns.rdataset.Rdataset``, the replacement rdataset. z#replacement.rdclass != zone.rdclassTN)rIrPrreplace_rdataset)rQr3rrs rrZone.replace_rdatasets@*   $,, .BC C~~dD) k*rcURU5n[RRR U5n[RRR U5nUR UR URX#5n[RRX@RX#5nURU5 U$)aLook for an rdataset with the specified name and type in the zone, and return an RRset encapsulating it. This method is less efficient than the similar ``find_rdataset()`` because it creates an RRset instead of returning the matching rdataset. It may be more convenient for some uses since it returns an object which binds the owner name to the rdataset. This method may not be used to create new nodes or rdatasets; use ``find_rdataset`` instead. *name*: the name of the node to find. The value may be a ``dns.name.Name`` or a ``str``. If absolute, the name must be a subdomain of the zone's origin. If ``zone.relativize`` is ``True``, then the name will be relativized. *rdtype*, a ``dns.rdatatype.RdataType`` or ``str``, the rdata type desired. *covers*, a ``dns.rdatatype.RdataType`` or ``str``, the covered type. Usually this value is ``dns.rdatatype.NONE``, but if the rdtype is ``dns.rdatatype.SIG`` or ``dns.rdatatype.RRSIG``, then the covers value will be the rdata type the SIG/RRSIG covers. The library treats the SIG and RRSIG types as if they were a family of types, e.g. RRSIG(A), RRSIG(NS), RRSIG(SOA). This makes RRSIGs much easier to work with than if RRSIGs covering different rdata types were aggregated into a single RRSIG rdataset. *create*, a ``bool``. If true, the node will be created if it does not exist. Raises ``KeyError`` if the name is not known and create was not specified, or if the name was not a subdomain of the origin. Returns a ``dns.rrset.RRset`` or ``None``. ) r?r<rrrrJrrIrrsetRRsetupdate)rQr3rrvnamerrs r find_rrsetZone.find_rrsetsX##D)((--f5((--f5::e$224<<P ||VD X rcRURXU5nU$![a SnU$f=f)afLook for an rdataset with the specified name and type in the zone, and return an RRset encapsulating it. This method is less efficient than the similar ``get_rdataset()`` because it creates an RRset instead of returning the matching rdataset. It may be more convenient for some uses since it returns an object which binds the owner name to the rdataset. This method may not be used to create new nodes or rdatasets; use ``get_rdataset()`` instead. *name*: the name of the node to find. The value may be a ``dns.name.Name`` or a ``str``. If absolute, the name must be a subdomain of the zone's origin. If ``zone.relativize`` is ``True``, then the name will be relativized. *rdtype*, a ``dns.rdataset.Rdataset`` or ``str``, the rdata type desired. *covers*, a ``dns.rdataset.Rdataset`` or ``str``, the covered type. Usually this value is ``dns.rdatatype.NONE``, but if the rdtype is ``dns.rdatatype.SIG`` or ``dns.rdatatype.RRSIG``, then the covers value will be the rdata type the SIG/RRSIG covers. The library treats the SIG and RRSIG types as if they were a family of types, e.g. RRSIG(A), RRSIG(NS), RRSIG(SOA). This makes RRSIGs much easier to work with than if RRSIGs covering different rdata types were aggregated into a single RRSIG rdataset. *create*, a ``bool``. If true, the node will be created if it does not exist. Returns a ``dns.rrset.RRset`` or ``None``. N)rr8)rQr3rrrs r get_rrsetZone.get_rrsets:P OOD&9E  E  rc## [RRRU5n[RRRU5nUR 5HUup4UHJnU[RR :Xd$UR U:XdM3URU:XdMEX54v ML MW g7f)a"Return a generator which yields (name, rdataset) tuples for all rdatasets in the zone which have the specified *rdtype* and *covers*. If *rdtype* is ``dns.rdatatype.ANY``, the default, then all rdatasets will be matched. *rdtype*, a ``dns.rdataset.Rdataset`` or ``str``, the rdata type desired. *covers*, a ``dns.rdataset.Rdataset`` or ``str``, the covered type. Usually this value is ``dns.rdatatype.NONE``, but if the rdtype is ``dns.rdatatype.SIG`` or ``dns.rdatatype.RRSIG``, then the covers value will be the rdata type the SIG/RRSIG covers. The library treats the SIG and RRSIG types as if they were a family of types, e.g. RRSIG(A), RRSIG(NS), RRSIG(SOA). This makes RRSIGs much easier to work with than if RRSIGs covering different rdata types were aggregated into a single RRSIG rdataset. N)r<rrrr{ANYrr)rQrrr3rrdss riterate_rdatasetsZone.iterate_rdatasets0s.((--f5((--f5**,JDS]]...JJ&(SZZ6-A+% 'sBB?B?1B?c## [RRRU5n[RRRU5nUR 5Hiup4UH^nU[RR :Xd$UR U:XdM3URU:XdMEUHnX5RU4v M M` Mk g7f)aReturn a generator which yields (name, ttl, rdata) tuples for all rdatas in the zone which have the specified *rdtype* and *covers*. If *rdtype* is ``dns.rdatatype.ANY``, the default, then all rdatas will be matched. *rdtype*, a ``dns.rdataset.Rdataset`` or ``str``, the rdata type desired. *covers*, a ``dns.rdataset.Rdataset`` or ``str``, the covered type. Usually this value is ``dns.rdatatype.NONE``, but if the rdtype is ``dns.rdatatype.SIG`` or ``dns.rdatatype.RRSIG``, then the covers value will be the rdata type the SIG/RRSIG covers. The library treats the SIG and RRSIG types as if they were a family of types, e.g. RRSIG(A), RRSIG(NS), RRSIG(SOA). This makes RRSIGs much easier to work with than if RRSIGs covering different rdata types were aggregated into a single RRSIG rdataset. N) r<rrrr{rrrttl)rQrrr3rrrdatas riterate_rdatasZone.iterate_rdatasPs.((--f5((--f5**,JDS]]...JJ&(SZZ6-A!$#WWe44"% 'sBCC1"Cfsortednl want_comments want_originc \[U[5(a [US5nO[R"U5nUn[ USS5nUcSnUc"[ RRU5n SnO9[U[5(aURU5n OUn UR5nU(a`URceSURR5-n U RU5n URU 5 URU 5 U(a*[UR55n U R!5 OUR5n U HUn X RU URUUS9n U RU5n URU 5 URU 5 MW SSS5 g![a% URU 5 URU5 Nf=f![a& URU 5 URU5 Mf=f!,(df  g=f)aWrite a zone to a file. *f*, a file or `str`. If *f* is a string, it is treated as the name of a file to open. *sorted*, a ``bool``. If True, the default, then the file will be written with the names sorted in DNSSEC order from least to greatest. Otherwise the names will be written in whatever order they happen to have in the zone's dictionary. *relativize*, a ``bool``. If True, the default, then domain names in the output will be relativized to the zone's origin if possible. *nl*, a ``str`` or None. The end of line string. If not ``None``, the output will use the platform's native end-of-line marker (i.e. LF on POSIX, CRLF on Windows). *want_comments*, a ``bool``. If ``True``, emit end-of-line comments as part of writing the file. If ``False``, the default, do not emit them. *want_origin*, a ``bool``. If ``True``, emit a $ORIGIN line at the start of the file. If ``False``, the default, do not emit one. wbencodingNzutf-8 z$ORIGIN )r4r5r)rLrMopen contextlib nullcontextgetattroslinesepencodedecoder4to_textwrite TypeErrorlistrssort)rQrrr5rrrcmfile_encnl_bll_bnamesns rto_file Zone.to_fileqsH a  48DMB''*B 1q*d3H"zzz((2B$$yy*YY[{{...!4!4!66hhx( GGCLGGDM TYY[)  GOO;;)"/ $ hhx( GGCLGGDMCR0! GGAJGGBK *! GGAJGGBK [RsUB5H1"F8A5H "G*+H8,G'$H&G''H*,HHHH H+c[R"5nURXaX#XE5 UR5nUR 5 U$)aReturn a zone's text as though it were written to a file. *sorted*, a ``bool``. If True, the default, then the file will be written with the names sorted in DNSSEC order from least to greatest. Otherwise the names will be written in whatever order they happen to have in the zone's dictionary. *relativize*, a ``bool``. If True, the default, then domain names in the output will be relativized to the zone's origin if possible. *nl*, a ``str`` or None. The end of line string. If not ``None``, the output will use the platform's native end-of-line marker (i.e. LF on POSIX, CRLF on Windows). *want_comments*, a ``bool``. If ``True``, emit end-of-line comments as part of writing the file. If ``False``, the default, do not emit them. *want_origin*, a ``bool``. If ``True``, emit a $ORIGIN line at the start of the output. If ``False``, the default, do not emit one. Returns a ``str``. )ioStringIOrgetvalueclose)rQrr5rrr temp_buffer return_values rr Zone.to_texts@Bkkm  [*-U"++- rcVUR(a[RRnOURceURnUR U[R R5c[eUR U[R R5c[eg)zDo some simple checking of the zone's origin. Raises ``dns.zone.NoSOA`` if there is no SOA RRset. Raises ``dns.zone.NoNS`` if there is no NS RRset. Raises ``KeyError`` if there is no origin node. N) r5r<r3emptyr4rrSOArNSr!r]s r check_originZone.check_originsz ??88>>D;;* **;;D   T3==#4#4 5 =K   T3==#3#3 4 <J =rtxnclUR(a[RRnOURc[ eURnU(a+UR U[RR5nO*URU[RR5nUc[ eUS$)z{Get the zone SOA rdata. Raises ``dns.zone.NoSOA`` if there is no SOA RRset. Returns a ``dns.rdtypes.ANY.SOA.SOA`` Rdata. r) r5r<r3rr4rrrrr)rQr origin_namesoas rget_soa Zone.get_soas~ ??((..K{{" ++K ''+s}}'8'89C##K1B1BCC ;K1v rhash_algorithmschemec [R"U5nU(d[eU[R:wa[ eUR (a[RRnOURceURnU"5n[UR55GHupgURUR5n[USS9Hn Xd:Xa6[RRU R U R"4;aM>[$R&"SU R U R(U R*5n U V s/sHoRUR5PM n n [U 5H<n [$R&"S[-U 55n UR/X-U -U -5 M> M GM UR15$s sn f)Nc2URUR4$r`)rr)rs r&Zone._compute_digest..1s#**cjj9Qr)rcz!HHIz!H)rrr+rSIMPLEr'r5r<r3rr4rr{ to_digestablerZONEMDrrstructpackrIrrrdigest)rQrrhashinforhasherr3r rrnamebufrrrfixedrrdatasrrlens r_compute_digestZone._compute_digestsl #&&~60 0 \(( () ) ??((..K;;* **++K .JD**4;;7I"4-QR&3==+?+?OOOOD, ++HOOX-=-=x||IQQu--dkk:Q#F^E"KKc%j9EMM)"5"="EF,S/}} Rs $GcUR5RnURX5n[RR R R UR[RR X2X5$r`) rserialrr<rdtypesrrrIr)rQrrrrs rcompute_digestZone.compute_digest@s] &&%%n={{%%,, LL#--..  rzonemdcdU(aU/nONURceURUR[RR5nUc[ eUnUH;nUR URUR5nXTR:Xa gM= [e![a MRf=fr`) r4rr<rrr.rrrr Exceptionr1)rQrdigestsrrcomputeds r verify_digestZone.verify_digestKs hG;;* **##DKK1E1EFC{GF //0E0Ev}}U}},-('  s 5B!! B/.B/ Transactionc \[US[USURUR55$)NF)rVersionrJr4ros rreader Zone.readerbs$4aT[[(QRRrc<[X5nUR5 U$r`)r_setup_version)rQrrs rwriter Zone.writeres$,  rcUR(a[RRnO URnURURU4$r`)r5r<r3rr4)rQ effectives rorigin_informationZone.origin_informationjs6 ??I I T__i88rcUR$r`)rIros r get_classZone.get_classts ||rcgr`rrQrs r _end_readZone._end_ready rcgr`rr s r _end_writeZone._end_write|r#rcNURUlURcX0lggr`)rJr4)rQ_versionr4s r_commit_versionZone._commit_versions!]] ;;  K rcg)Nrrros r_get_next_version_idZone._get_next_version_idsr)rJr4rIr5F)TTNFF)r6Nr`)r6r)Yrrrrrr<rNoderCr__annotations__dictrDrr3rOrFr rH __slots__ rdataclassINr rM RdataClassboolrRrWrZr?rdrhrkrnrsrwr{rrrrrrNONErrRdatasetrrrrrrrrrrr rintrRdatarrrrr transactionrrrrrrr bytesrrrr rrrrr!r%r*r-rrrrrArAxs14 L(2sxx}},-=NRK"nSXX]]CHHMM-IJJKRJNhx4E0E'FGNLPx5G1G(HIP-> %sxx}}c123%**% %<"&B5);#<BB %!#"#! ?D#((--,-7; :?D#((--,-7; #((-- 4 !chhmmS&8 9 !d !&7:mm6H6H -HCHHMM3&'-Hcmm--s23-Hcmm--s23 -H  -H    -Hf7:mm6H6H .CHHMM3&'.cmm--s23.cmm--s23 .  . #,,'' ( .h7:mm6H6H $'CHHMM3&'$'cmm--s23$'cmm--s23 $'  $'L+#((--,-+ &D7:mm6G6G69mm6H6H5cmm--s235cmm--s235 % sCIIOO;< = 5H #!W W W  W SM W  W W  W v #! %%% SM %  %  % %N(<@COO778    : ,22 +    J ,22  +        & &  AE(s{{55<<=( (.S$= 9 x &hsxx}}.EE F9   ! rrAc.^\rSrSrS/rU4SjrSrU=r$) VersionedNodeiidc0>[TU]5 SUlgNr)superrRr@)rQ __class__s rrRVersionedNode.__init__s r)r@)rrrrr3rRr __classcell__rDs@rr?r?sIrr?c ^\rSrSrU4Sjr\R RS4S\RRS\R RS\R RS\ S\RR4 U4S jjjr\R RS4S\RRS\R RS\R RS\ S\\RR4 U4S jjjr\R R4S\RRS\R RS\R RSS 4S jjrS \RRSS 4SjrS\ 4SjrSrU=r$)ImmutableVersionedNodeic>[TU]5 URUl[URVs/sH"n[ R RU5PM$ sn5Ulgs snfr`)rCrRr@tuple rdatasetsr<rImmutableRdataset)rQrrrDs rrRImmutableVersionedNode.__init__sM ''<@NN KNSS\\ + +C 0N K  Ks)A*FrIrrrr6cJ>U(a [S5e[TU] XUS5$N immutableF)rrCrrQrIrrrrDs rr$ImmutableVersionedNode.find_rdatasets' K( (w$WfeDDrcJ>U(a [S5e[TU] XUS5$rP)rrCrrRs rr#ImmutableVersionedNode.get_rdatasets' K( (w#GVUCCrNc[S5eNrQr)rQrIrrs rr&ImmutableVersionedNode.delete_rdatasets  $$rrc[S5erWrX)rQrs rr'ImmutableVersionedNode.replace_rdatasets  $$rcgNTrros r is_immutable#ImmutableVersionedNode.is_immutablesr)r@rL)rrrrrRr<rr8r4r6rr7rr9rr rrrr^rrFrGs@rrIrIs +.--*<*< E** E '' E '' E  E    E E+.--*<*< D** D '' D '' D  D #,,'' ( D D+.--*<*< %**% ''% '' %  %%CLL,A,A%d%drrIc Z\rSrSrSS\S\S\\\RR\RR4S\\RR4Sjjr S\RRS \RR4S jrS\RRS \\RR4S jrS\RRS \R R"S \R R"S \\R$R&4SjrSrSrSrg)riNzoner@rJr4cfXlX lUbX0lOUR5UlX@lgr`)rar@rJrDr4)rQrar@rJr4s rrRVersion.__init__s.   J))+DJ rr3r6cV[XRURR5$r`)r?r4rar5r]s rr?Version._validate_namesdKK1E1EFFrcZURU5nURRU5$r`rr]s rrVersion.get_nodes%""4(zz~~d##rrrcxURU5nUcgURURRX#5$r`)rrrarIrs rrVersion.get_rdatasets7 }}T" <  !2!2FCCrc6URR5$r`rrros rrs Version.keysrurc6URR5$r`rzros rr{ Version.itemsr}r)r@rJr4ra)NN)rrrrrAr:r rr<r3rOrr0rRr?rrrrr9rrsr{rrrrrrs IM*.    sxx}}chhmm'CDE  ' G388==GSXX]]G$SXX]]$x /F$ Dhhmm D '' D '' D #,,'' ( D!"rrc^\rSrSrSS\S\4U4SjjjrS\RRS\RR4Sjr S\RRSS4S jr S\RRS \RRSS4S jrS\RRS \R"R$S \R"R$SS4SjrSrU=r$)rEirarc>UR5n[TU] X5 U(d%URR UR5 UR Ul[ 5Ulgr`)r-rCrRrJrr4setchanged)rQrarr@rDs rrRWritableVersion.__init__sQ & & ( " JJ  djj )kk +.5 rr3r6cURU5nURRU5nUbXR;aURR 5n[ US5(aURUlUb%URRUR5 X0RU'URRU5 U$U$)Nr@) r?rJrrqrarChasattrr@rLextendadd)rQr3rnew_nodes r _maybe_cowWritableVersion._maybe_cows""4(zz~~d# <4||3yy--/Hx&&#gg ""))$..9'JJt  LL  T "OKrNcURU5nXR;a)URU URRU5 ggr`)r?rJrqrvr]s rrWritableVersion.delete_nodes?""4( ::  4 LL  T " rrcHURU5nURU5 gr`)rxr)rQr3rrs r put_rdatasetWritableVersion.put_rdatasets t$ h'rrrcURU5nURURRX#5 [ U5S:XaUR U ggrB)rxrrarIrrJrs rrWritableVersion.delete_rdataset$sH t$ TYY..? t9> 4  r)rqr4r/)rrrrrAr7rRr<r3rOrr0rxrrr9r}rrrrrFrGs@rrErEs1T111 sxx}},# #$# (HHMM(-0\\-B-B( ( !hhmm ! '' ! '' !  ! !rrEc0^\rSrSrS\4U4SjjrSrU=r$)rGi0r)c>[TU]URS5 URUlURUlUR H?nUR RU5nU(dM'[U5UR U'MA [RRUR SURR5Ulgr]) rCrRrar@r4rqrJrrIr<rQDictrD)rQr)r3rrDs rrRImmutableVersion.__init__2s t,**nn OOD==$$T*Dt&USLn[TU]XU5 X0lX@lgr`)rCrRr)make_immutable)rQrarr)r read_onlyrDs rrRTransaction.__init__Is'4'  I6 ,rcUR$r`)managerros rraTransaction.zoneOs ||rcURbeURRnUc[nU"URUR 5Ulgr`)r)rrFrErar)rQfactorys rrTransaction._setup_versionSsC||###,,77 ?%Gtyy$*:*:; rc:URRXU5$r`)r)rrQr3rrs r _get_rdatasetTransaction._get_rdatasetZs||((v>>rc`UR(aeURRX5 gr`)rr)r})rQr3rs r _put_rdatasetTransaction._put_rdataset]s!>>!! !!$1rc`UR(aeURRU5 gr`)rr)rr]s r _delete_nameTransaction._delete_nameas!>>!!   &rcbUR(aeURRXU5 gr`)rr)rrs r_delete_rdatasetTransaction._delete_rdatasetes#>>!! $$T6:rc<URRU5SL$r`r)rr]s r _name_existsTransaction._name_existsis||$$T*$66rcjUR(ag[URR5S:$)NFr)rrr)rqros r_changedTransaction._changedls& >>t||++,q0 0rcUR(aURRU5 gU(a[URR 5S:aUR (a2URRnUc[nU"UR5nO URnURRXURR5 gURRU5 grB) rrar!rr)rqrrrHrGr*r4r%)rQcommitrr)s r_end_transactionTransaction._end_transactionrs >> II   % DLL001A5"",,@@?.G!$,,/,, II % %dT\\5H5H I II  &rcTURRcXRlggr`)r)r4)rQr4s r _set_originTransaction._set_origins! <<   &"(LL  'rc#n# URR5HupUHnX4v M M g7fr`)r)r{)rQr3rrs r_iterate_rdatasetsTransaction._iterate_rdatasetss1,,,,.JD &&!/s35c6URR5$r`)r)rsros r_iterate_namesTransaction._iterate_namess||  ""rc8URRU5$r`rr]s r _get_nodeTransaction._get_nodes||$$T**rcURR5upnUcQURRb:URRnU(a[R R nOUnXU4$r`)rrr)r4r<r3r)rQabsoluter5rs r_origin_informationTransaction._origin_informations_,0LL,K,K,M)y   3 3 ?||**HHHNN $ i00r)rr))NF)rrrrrRpropertyrarrrrrrrrrrrrrrrFrGs@rrrHsb- <?2';71 ' )' #+ 1 1rrTFtextrI zone_factoryfilename allow_includer idna_codecallow_directivesc UcSnU"XUS9n U RS5n [RRXUS9n [RR U UU UU S9n U R 5 SSS5 U(aU R5 U $![RRa [RRef=f!,(df  Nc=f)Nzr5T)r)rr) rr< tokenizer TokenizerzonefileReaderreadr$rar)rr4rIr5rrrrrrrartokrs r _from_textrs& J ?D T cmm%%d%L$$   '- %  ) KKM   K ||)) )(((( ( )  sAC B9C  C  Cc *[UUUUUUUUUU 5 $)aBuild a zone object from a zone file format string. *text*, a ``str``, the zone file format input. *origin*, a ``dns.name.Name``, a ``str``, or ``None``. The origin of the zone; if not specified, the first ``$ORIGIN`` statement in the zone file will determine the origin of the zone. *rdclass*, a ``dns.rdataclass.RdataClass``, the zone's rdata class; the default is class IN. *relativize*, a ``bool``, determine's whether domain names are relativized to the zone's origin. The default is ``True``. *zone_factory*, the zone factory to use or ``None``. If ``None``, then ``dns.zone.Zone`` will be used. The value may be any class or callable that returns a subclass of ``dns.zone.Zone``. *filename*, a ``str`` or ``None``, the filename to emit when describing where an error occurred; the default is ``''``. *allow_include*, a ``bool``. If ``True``, the default, then ``$INCLUDE`` directives are permitted. If ``False``, then encoutering a ``$INCLUDE`` will raise a ``SyntaxError`` exception. *check_origin*, a ``bool``. If ``True``, the default, then sanity checks of the origin node will be made by calling the zone's ``check_origin()`` method. *idna_codec*, a ``dns.name.IDNACodec``, specifies the IDNA encoder/decoder. If ``None``, the default IDNA 2003 encoder/decoder is used. *allow_directives*, a ``bool`` or an iterable of `str`. If ``True``, the default, then directives are permitted, and the *allow_include* parameter controls whether ``$INCLUDE`` is permitted. If ``False`` or an empty iterable, then no directive processing is done and any directive-like text will be treated as a regular owner name. If a non-empty iterable, then only the listed directives (including the ``$``) are allowed. Raises ``dns.zone.NoSOA`` if there is no SOA RRset. Raises ``dns.zone.NoNS`` if there is no NS RRset. Raises ``KeyError`` if there is no origin node. Returns a subclass of ``dns.zone.Zone``. )r) rr4rIr5rrrrrrs rrNrNs0x    rrc [U[5(aUcUn[U5n O[R"U5n U n[ UUUUUUUUUU 5 sSSS5 $!,(df  O=fe)aRead a zone file and build a zone object. *f*, a file or ``str``. If *f* is a string, it is treated as the name of a file to open. *origin*, a ``dns.name.Name``, a ``str``, or ``None``. The origin of the zone; if not specified, the first ``$ORIGIN`` statement in the zone file will determine the origin of the zone. *rdclass*, an ``int``, the zone's rdata class; the default is class IN. *relativize*, a ``bool``, determine's whether domain names are relativized to the zone's origin. The default is ``True``. *zone_factory*, the zone factory to use or ``None``. If ``None``, then ``dns.zone.Zone`` will be used. The value may be any class or callable that returns a subclass of ``dns.zone.Zone``. *filename*, a ``str`` or ``None``, the filename to emit when describing where an error occurred; the default is ``''``. *allow_include*, a ``bool``. If ``True``, the default, then ``$INCLUDE`` directives are permitted. If ``False``, then encoutering a ``$INCLUDE`` will raise a ``SyntaxError`` exception. *check_origin*, a ``bool``. If ``True``, the default, then sanity checks of the origin node will be made by calling the zone's ``check_origin()`` method. *idna_codec*, a ``dns.name.IDNACodec``, specifies the IDNA encoder/decoder. If ``None``, the default IDNA 2003 encoder/decoder is used. *allow_directives*, a ``bool`` or an iterable of `str`. If ``True``, the default, then directives are permitted, and the *allow_include* parameter controls whether ``$INCLUDE`` is permitted. If ``False`` or an empty iterable, then no directive processing is done and any directive-like text will be treated as a regular owner name. If a non-empty iterable, then only the listed directives (including the ``$``) are allowed. Raises ``dns.zone.NoSOA`` if there is no SOA RRset. Raises ``dns.zone.NoNS`` if there is no NS RRset. Raises ``KeyError`` if there is no origin node. Returns a subclass of ``dns.zone.Zone``. N)rLrMrrrr) rr4rIr5rrrrrrrs r from_filersrz!S  H04Q  # #A & q            5s A A+xfrcSnUGH"nUcMU(a URnOURSRnURSRnU"XgUS9nURHnURR UR5n U (d(UR 5n XRUR'U RURURURS5n U RUR5 UHn U RU 5 M M GM% Uc [S5eU(aUR5 U$)aConvert the output of a zone transfer generator into a zone object. *xfr*, a generator of ``dns.message.Message`` objects, typically ``dns.query.xfr()``. *relativize*, a ``bool``, determine's whether domain names are relativized to the zone's origin. The default is ``True``. It is essential that the relativize setting matches the one specified to the generator. *check_origin*, a ``bool``. If ``True``, the default, then sanity checks of the origin node will be made by calling the zone's ``check_origin()`` method. Raises ``dns.zone.NoSOA`` if there is no SOA RRset. Raises ``dns.zone.NoNS`` if there is no NS RRset. Raises ``KeyError`` if there is no origin node. Raises ``ValueError`` if no messages are yielded by the generator. Returns a subclass of ``dns.zone.Zone``. NrrTzempty transfer)r4answerr3rIrJrrCrrr update_ttlrrvrPr) rrr5rzrr4rIrznodezrdsrds rfrom_xfrres> A  9!))hhqk))GVDAXXEGGKK +E(&+ #&&u}}ellELLRVWD OOEII & " y)**  Hr)Hrrrrrtypingrrrrrrr r r r dns.exceptionr< dns.grange dns.immutabledns.namedns.node dns.rdatadns.rdataclass dns.rdataset dns.rdatatypedns.rdtypes.ANY.SOAdns.rdtypes.ANY.ZONEMD dns.rrset dns.tokenizerdns.transactiondns.ttl dns.zonefile dns.zonetypesr rr exception DNSExceptionrrr!r$r'r+r.r1r3rOr7r?r<TransactionManagerrArr0r?rQrIrrErGrr4r5rMr6 IDNACodecrrNrrrrrrs$    LL%cmm((%4G4676,G,3cmm8833S]]%?%?3:s}})):. : :. ((-- SXX]] # XX]] @N 3?? - -N rCHHMM*]**Z&"&"R<!g<!~ w  .S1#//--S1p37),):):"/337' ' U388==#-. /'^^ & &' '  ' sm '''++,'D(3-/0' 'X37),):):"/337G G U388==#-. /G^^ & &G G  G sm GGG++,GD(3-/0G GX37),):):"/337P P U388==#-. /P^^ & &P P  P sm PPP++,PD(3-/0P Pj 5 5 5 5  5  5 r