From: Bob Halley Date: Sat, 4 Apr 2026 15:37:02 +0000 (-0700) Subject: Add HHIT and BRID types (RFC 9886). X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ca8754a3622d3b4813aa7795d1982f4a7d577073;p=thirdparty%2Fdnspython.git Add HHIT and BRID types (RFC 9886). --- diff --git a/dns/rdatatype.py b/dns/rdatatype.py index 23940cf5..2462f7ad 100644 --- a/dns/rdatatype.py +++ b/dns/rdatatype.py @@ -85,6 +85,8 @@ class RdataType(dns.enum.IntEnum): SVCB = 64 HTTPS = 65 DSYNC = 66 + HHIT = 67 + BRID = 68 SPF = 99 UNSPEC = 103 NID = 104 @@ -310,6 +312,8 @@ ZONEMD = RdataType.ZONEMD SVCB = RdataType.SVCB HTTPS = RdataType.HTTPS DSYNC = RdataType.DSYNC +HHIT = RdataType.HHIT +BRID = RdataType.BRID SPF = RdataType.SPF UNSPEC = RdataType.UNSPEC NID = RdataType.NID diff --git a/dns/rdtypes/ANY/BRID.py b/dns/rdtypes/ANY/BRID.py new file mode 100644 index 00000000..dc82082a --- /dev/null +++ b/dns/rdtypes/ANY/BRID.py @@ -0,0 +1,13 @@ +# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license + +import dns.immutable +import dns.rdata +import dns.rdtypes.base64base + + +@dns.immutable.immutable +class BRID(dns.rdtypes.base64base.Base64Base): + """BRID record + + See RFC 9886 + """ diff --git a/dns/rdtypes/base64base.py b/dns/rdtypes/base64base.py new file mode 100644 index 00000000..0418b212 --- /dev/null +++ b/dns/rdtypes/base64base.py @@ -0,0 +1,53 @@ +# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license + +# Copyright (C) 2016 Nominum, Inc. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose with or without fee is hereby granted, +# provided that the above copyright notice and this permission notice +# appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +import base64 + +import dns.exception +import dns.immutable +import dns.rdata +import dns.tokenizer + + +@dns.immutable.immutable +class Base64Base(dns.rdata.Rdata): + """Base type for an rdata whose value is a single base64-encoded bytes.""" + + def __init__(self, rdclass, rdtype, value): + super().__init__(rdclass, rdtype) + self.value = self._as_bytes(value) + + def to_styled_text(self, style: dns.rdata.RdataStyle) -> str: + # Fixed style + style = style.replace(base64_chunk_size=0) + return dns.rdata._styled_base64ify(self.value, style, True) + + @classmethod + def from_text( + cls, rdclass, rdtype, tok, origin=None, relativize=True, relativize_to=None + ): + b64 = tok.concatenate_remaining_identifiers().encode() + value = base64.b64decode(b64) + return cls(rdclass, rdtype, value) + + def _to_wire(self, file, compress=None, origin=None, canonicalize=False): + file.write(self.value) + + @classmethod + def from_wire_parser(cls, rdclass, rdtype, parser, origin=None): + value = parser.get_remaining() + return cls(rdclass, rdtype, value) diff --git a/tests/example b/tests/example index ad404fb9..7f2c66d2 100644 --- a/tests/example +++ b/tests/example @@ -269,3 +269,47 @@ resinfo RESINFO qnamemin exterr=15,16,17 infourl=https://resolve wallet WALLET EXAMPLE 01234567890abcdef dsync DSYNC CDS NOTIFY 5300 notify-endpoint.parent.net. dsync DSYNC CSYNC 128 443 notify-endpoint.parent.net. +hhit01 HHIT ( + gwppM2ZmOCAwMDAwWQFGMIIBQjCB9aAD + AgECAgE1MAUGAytlcDArMSkwJwYDVQQD + DCAyMDAxMDAzZmZlMDAwMDA1NWU2MGEx + NTcxZTkxYTBiNzAeFw0yNTA0MDkyMDU2 + MjZaFw0yNTA0MDkyMTU2MjZaMB0xGzAZ + BgNVBAMMEkRSSVAtUkFBLUEtMTYzNzYt + MDAqMAUGAytlcAMhAJmQ1bBLcqGAZtQJ + K1LH1JlPt8Fr1+jB9ED/qNBP8eE/o0ww + SjAPBgNVHRMBAf8EBTADAQH/MDcGA1Ud + EQEB/wQtMCuHECABAD/+AAAFXmChVx6R + oLeGF2h0dHBzOi8vcmFhLmV4YW1wbGUu + Y29tMAUGAytlcANBALUPjhIB3rwqXQep + r9/VDB+hhtwuWZIw1OUkEuDrF6DCkgc7 + 5widXnXa5/uDfdKL7dZ83mPHm2Tf32Dv + b8AzEw8= +) +brid01 BRID ( + owAAAYIEUQEgAQA//gAKBRMIJGmaS8ay + AogFWIkB+t72Zwrt9mcgAQA//gAABV5g + oVcekaC3mZDVsEtyoYBm1AkrUsfUmU+3 + wWvX6MH0QP+o0E/x4T8gAQA//gAABV5g + oVcekaC3vC9m1JguvXt7W2o4wxPumaT1 + IP3TQN3fQP28hpInSIlsSwq8UCNjm2ad + 7pdTvm2EqfOJQNPKClvRZm4qTO5FDAVY + iQGX4PZnp+72ZyABAD/+AAoFZhXuRdQn + CaDOaB424RQa61YNbna8eWt7fLRU5GPM + sfEt4wo4AQGAPyABAD/+AAAFXmChVx6R + oLfv3q+mLRB3ya5TmjY8+3CzdoDZT9RZ + +XpN5hDiA6JyyxBJvUewxLzPNhTXQp8v + ED71XAE82tMmt3fB4zbzWNQLBViJAQrh + 9mca7/ZnIAEAP/4ACgUmDtQ3ayVuKIIz + /a61BovBSFnRE6Dt/PjcB4FOPdJ2Xmtb + guBNBwWXIAEAP/4ACgVmFe5F1CcJoIjy + CriJCxAyAWTOHPmlHL02MKSpsHviiTze + qwBH9K/Rrz41CYix9HazAIOAZO8FcfU5 + M+WLLJZoaQWBHnMbTQwFWIkB3OL2Z+zw + 9mcgAQA//gAKBRMIJGmaS8ayyS4vnZfo + lg+bXxZU+LCQOfna3FvPBh6sTwzqeejo + d/ogAQA//gAKBSYO1DdrJW4ogOfc8jTi + mYLmTOOyFZoUx2jOOwtB1jnqUJr6bYaw + MoPrR3MlKGBGWsVz1yXNqUURoCqYdwsY + e61vd5i6YJqnAQ== +) diff --git a/tests/example1.good b/tests/example1.good index 038a2c25..43009c8a 100644 --- a/tests/example1.good +++ b/tests/example1.good @@ -21,6 +21,7 @@ apl01 3600 IN APL 1:192.168.32.0/21 !1:192.168.38.0/28 apl02 3600 IN APL 1:224.0.0.0/4 2:ff00::/8 avc01 3600 IN AVC "app-name:WOLFGANG|app-class:OAM|business=yes" b 300 IN CNAME foo.net. +brid01 3600 IN BRID owAAAYIEUQEgAQA//gAKBRMIJGmaS8ayAogFWIkB+t72Zwrt9mcgAQA//gAABV5goVcekaC3mZDVsEtyoYBm1AkrUsfUmU+3wWvX6MH0QP+o0E/x4T8gAQA//gAABV5goVcekaC3vC9m1JguvXt7W2o4wxPumaT1IP3TQN3fQP28hpInSIlsSwq8UCNjm2ad7pdTvm2EqfOJQNPKClvRZm4qTO5FDAVYiQGX4PZnp+72ZyABAD/+AAoFZhXuRdQnCaDOaB424RQa61YNbna8eWt7fLRU5GPMsfEt4wo4AQGAPyABAD/+AAAFXmChVx6RoLfv3q+mLRB3ya5TmjY8+3CzdoDZT9RZ+XpN5hDiA6JyyxBJvUewxLzPNhTXQp8vED71XAE82tMmt3fB4zbzWNQLBViJAQrh9mca7/ZnIAEAP/4ACgUmDtQ3ayVuKIIz/a61BovBSFnRE6Dt/PjcB4FOPdJ2XmtbguBNBwWXIAEAP/4ACgVmFe5F1CcJoIjyCriJCxAyAWTOHPmlHL02MKSpsHviiTzeqwBH9K/Rrz41CYix9HazAIOAZO8FcfU5M+WLLJZoaQWBHnMbTQwFWIkB3OL2Z+zw9mcgAQA//gAKBRMIJGmaS8ayyS4vnZfolg+bXxZU+LCQOfna3FvPBh6sTwzqeejod/ogAQA//gAKBSYO1DdrJW4ogOfc8jTimYLmTOOyFZoUx2jOOwtB1jnqUJr6bYawMoPrR3MlKGBGWsVz1yXNqUURoCqYdwsYe61vd5i6YJqnAQ== c 300 IN A 73.80.65.49 caa01 3600 IN CAA 0 issue "ca.example.net" caa02 3600 IN CAA 0 iodef "mailto:security@example.com" @@ -60,6 +61,7 @@ eui48 3600 IN EUI48 00-00-5e-00-53-2a eui64 3600 IN EUI64 00-00-5e-ef-10-00-00-2a f 300 IN A 73.80.65.52 gpos01 3600 IN GPOS -22.6882 116.8652 250.0 +hhit01 3600 IN HHIT gwppM2ZmOCAwMDAwWQFGMIIBQjCB9aADAgECAgE1MAUGAytlcDArMSkwJwYDVQQDDCAyMDAxMDAzZmZlMDAwMDA1NWU2MGExNTcxZTkxYTBiNzAeFw0yNTA0MDkyMDU2MjZaFw0yNTA0MDkyMTU2MjZaMB0xGzAZBgNVBAMMEkRSSVAtUkFBLUEtMTYzNzYtMDAqMAUGAytlcAMhAJmQ1bBLcqGAZtQJK1LH1JlPt8Fr1+jB9ED/qNBP8eE/o0wwSjAPBgNVHRMBAf8EBTADAQH/MDcGA1UdEQEB/wQtMCuHECABAD/+AAAFXmChVx6RoLeGF2h0dHBzOi8vcmFhLmV4YW1wbGUuY29tMAUGAytlcANBALUPjhIB3rwqXQepr9/VDB+hhtwuWZIw1OUkEuDrF6DCkgc75widXnXa5/uDfdKL7dZ83mPHm2Tf32Dvb8AzEw8= hinfo01 3600 IN HINFO "Generic PC clone" "NetBSD-1.4" hinfo02 3600 IN HINFO "PC" "NetBSD" hip01 3600 IN HIP 2 200100107b1a74df365639cc39f1d578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D diff --git a/tests/example2.good b/tests/example2.good index 129d8cdf..b916443a 100644 --- a/tests/example2.good +++ b/tests/example2.good @@ -21,6 +21,7 @@ apl01.example. 3600 IN APL 1:192.168.32.0/21 !1:192.168.38.0/28 apl02.example. 3600 IN APL 1:224.0.0.0/4 2:ff00::/8 avc01.example. 3600 IN AVC "app-name:WOLFGANG|app-class:OAM|business=yes" b.example. 300 IN CNAME foo.net. +brid01.example. 3600 IN BRID owAAAYIEUQEgAQA//gAKBRMIJGmaS8ayAogFWIkB+t72Zwrt9mcgAQA//gAABV5goVcekaC3mZDVsEtyoYBm1AkrUsfUmU+3wWvX6MH0QP+o0E/x4T8gAQA//gAABV5goVcekaC3vC9m1JguvXt7W2o4wxPumaT1IP3TQN3fQP28hpInSIlsSwq8UCNjm2ad7pdTvm2EqfOJQNPKClvRZm4qTO5FDAVYiQGX4PZnp+72ZyABAD/+AAoFZhXuRdQnCaDOaB424RQa61YNbna8eWt7fLRU5GPMsfEt4wo4AQGAPyABAD/+AAAFXmChVx6RoLfv3q+mLRB3ya5TmjY8+3CzdoDZT9RZ+XpN5hDiA6JyyxBJvUewxLzPNhTXQp8vED71XAE82tMmt3fB4zbzWNQLBViJAQrh9mca7/ZnIAEAP/4ACgUmDtQ3ayVuKIIz/a61BovBSFnRE6Dt/PjcB4FOPdJ2XmtbguBNBwWXIAEAP/4ACgVmFe5F1CcJoIjyCriJCxAyAWTOHPmlHL02MKSpsHviiTzeqwBH9K/Rrz41CYix9HazAIOAZO8FcfU5M+WLLJZoaQWBHnMbTQwFWIkB3OL2Z+zw9mcgAQA//gAKBRMIJGmaS8ayyS4vnZfolg+bXxZU+LCQOfna3FvPBh6sTwzqeejod/ogAQA//gAKBSYO1DdrJW4ogOfc8jTimYLmTOOyFZoUx2jOOwtB1jnqUJr6bYawMoPrR3MlKGBGWsVz1yXNqUURoCqYdwsYe61vd5i6YJqnAQ== c.example. 300 IN A 73.80.65.49 caa01.example. 3600 IN CAA 0 issue "ca.example.net" caa02.example. 3600 IN CAA 0 iodef "mailto:security@example.com" @@ -60,6 +61,7 @@ eui48.example. 3600 IN EUI48 00-00-5e-00-53-2a eui64.example. 3600 IN EUI64 00-00-5e-ef-10-00-00-2a f.example. 300 IN A 73.80.65.52 gpos01.example. 3600 IN GPOS -22.6882 116.8652 250.0 +hhit01.example. 3600 IN HHIT gwppM2ZmOCAwMDAwWQFGMIIBQjCB9aADAgECAgE1MAUGAytlcDArMSkwJwYDVQQDDCAyMDAxMDAzZmZlMDAwMDA1NWU2MGExNTcxZTkxYTBiNzAeFw0yNTA0MDkyMDU2MjZaFw0yNTA0MDkyMTU2MjZaMB0xGzAZBgNVBAMMEkRSSVAtUkFBLUEtMTYzNzYtMDAqMAUGAytlcAMhAJmQ1bBLcqGAZtQJK1LH1JlPt8Fr1+jB9ED/qNBP8eE/o0wwSjAPBgNVHRMBAf8EBTADAQH/MDcGA1UdEQEB/wQtMCuHECABAD/+AAAFXmChVx6RoLeGF2h0dHBzOi8vcmFhLmV4YW1wbGUuY29tMAUGAytlcANBALUPjhIB3rwqXQepr9/VDB+hhtwuWZIw1OUkEuDrF6DCkgc75widXnXa5/uDfdKL7dZ83mPHm2Tf32Dvb8AzEw8= hinfo01.example. 3600 IN HINFO "Generic PC clone" "NetBSD-1.4" hinfo02.example. 3600 IN HINFO "PC" "NetBSD" hip01.example. 3600 IN HIP 2 200100107b1a74df365639cc39f1d578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D diff --git a/tests/example3.good b/tests/example3.good index 038a2c25..43009c8a 100644 --- a/tests/example3.good +++ b/tests/example3.good @@ -21,6 +21,7 @@ apl01 3600 IN APL 1:192.168.32.0/21 !1:192.168.38.0/28 apl02 3600 IN APL 1:224.0.0.0/4 2:ff00::/8 avc01 3600 IN AVC "app-name:WOLFGANG|app-class:OAM|business=yes" b 300 IN CNAME foo.net. +brid01 3600 IN BRID owAAAYIEUQEgAQA//gAKBRMIJGmaS8ayAogFWIkB+t72Zwrt9mcgAQA//gAABV5goVcekaC3mZDVsEtyoYBm1AkrUsfUmU+3wWvX6MH0QP+o0E/x4T8gAQA//gAABV5goVcekaC3vC9m1JguvXt7W2o4wxPumaT1IP3TQN3fQP28hpInSIlsSwq8UCNjm2ad7pdTvm2EqfOJQNPKClvRZm4qTO5FDAVYiQGX4PZnp+72ZyABAD/+AAoFZhXuRdQnCaDOaB424RQa61YNbna8eWt7fLRU5GPMsfEt4wo4AQGAPyABAD/+AAAFXmChVx6RoLfv3q+mLRB3ya5TmjY8+3CzdoDZT9RZ+XpN5hDiA6JyyxBJvUewxLzPNhTXQp8vED71XAE82tMmt3fB4zbzWNQLBViJAQrh9mca7/ZnIAEAP/4ACgUmDtQ3ayVuKIIz/a61BovBSFnRE6Dt/PjcB4FOPdJ2XmtbguBNBwWXIAEAP/4ACgVmFe5F1CcJoIjyCriJCxAyAWTOHPmlHL02MKSpsHviiTzeqwBH9K/Rrz41CYix9HazAIOAZO8FcfU5M+WLLJZoaQWBHnMbTQwFWIkB3OL2Z+zw9mcgAQA//gAKBRMIJGmaS8ayyS4vnZfolg+bXxZU+LCQOfna3FvPBh6sTwzqeejod/ogAQA//gAKBSYO1DdrJW4ogOfc8jTimYLmTOOyFZoUx2jOOwtB1jnqUJr6bYawMoPrR3MlKGBGWsVz1yXNqUURoCqYdwsYe61vd5i6YJqnAQ== c 300 IN A 73.80.65.49 caa01 3600 IN CAA 0 issue "ca.example.net" caa02 3600 IN CAA 0 iodef "mailto:security@example.com" @@ -60,6 +61,7 @@ eui48 3600 IN EUI48 00-00-5e-00-53-2a eui64 3600 IN EUI64 00-00-5e-ef-10-00-00-2a f 300 IN A 73.80.65.52 gpos01 3600 IN GPOS -22.6882 116.8652 250.0 +hhit01 3600 IN HHIT gwppM2ZmOCAwMDAwWQFGMIIBQjCB9aADAgECAgE1MAUGAytlcDArMSkwJwYDVQQDDCAyMDAxMDAzZmZlMDAwMDA1NWU2MGExNTcxZTkxYTBiNzAeFw0yNTA0MDkyMDU2MjZaFw0yNTA0MDkyMTU2MjZaMB0xGzAZBgNVBAMMEkRSSVAtUkFBLUEtMTYzNzYtMDAqMAUGAytlcAMhAJmQ1bBLcqGAZtQJK1LH1JlPt8Fr1+jB9ED/qNBP8eE/o0wwSjAPBgNVHRMBAf8EBTADAQH/MDcGA1UdEQEB/wQtMCuHECABAD/+AAAFXmChVx6RoLeGF2h0dHBzOi8vcmFhLmV4YW1wbGUuY29tMAUGAytlcANBALUPjhIB3rwqXQepr9/VDB+hhtwuWZIw1OUkEuDrF6DCkgc75widXnXa5/uDfdKL7dZ83mPHm2Tf32Dvb8AzEw8= hinfo01 3600 IN HINFO "Generic PC clone" "NetBSD-1.4" hinfo02 3600 IN HINFO "PC" "NetBSD" hip01 3600 IN HIP 2 200100107b1a74df365639cc39f1d578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D diff --git a/tests/example4.good b/tests/example4.good index c5c0d1b6..a7bb4bd3 100644 --- a/tests/example4.good +++ b/tests/example4.good @@ -22,6 +22,7 @@ apl01 3600 IN APL 1:192.168.32.0/21 !1:192.168.38.0/28 apl02 3600 IN APL 1:224.0.0.0/4 2:ff00::/8 avc01 3600 IN AVC "app-name:WOLFGANG|app-class:OAM|business=yes" b 300 IN CNAME foo.net. +brid01 3600 IN BRID owAAAYIEUQEgAQA//gAKBRMIJGmaS8ayAogFWIkB+t72Zwrt9mcgAQA//gAABV5goVcekaC3mZDVsEtyoYBm1AkrUsfUmU+3wWvX6MH0QP+o0E/x4T8gAQA//gAABV5goVcekaC3vC9m1JguvXt7W2o4wxPumaT1IP3TQN3fQP28hpInSIlsSwq8UCNjm2ad7pdTvm2EqfOJQNPKClvRZm4qTO5FDAVYiQGX4PZnp+72ZyABAD/+AAoFZhXuRdQnCaDOaB424RQa61YNbna8eWt7fLRU5GPMsfEt4wo4AQGAPyABAD/+AAAFXmChVx6RoLfv3q+mLRB3ya5TmjY8+3CzdoDZT9RZ+XpN5hDiA6JyyxBJvUewxLzPNhTXQp8vED71XAE82tMmt3fB4zbzWNQLBViJAQrh9mca7/ZnIAEAP/4ACgUmDtQ3ayVuKIIz/a61BovBSFnRE6Dt/PjcB4FOPdJ2XmtbguBNBwWXIAEAP/4ACgVmFe5F1CcJoIjyCriJCxAyAWTOHPmlHL02MKSpsHviiTzeqwBH9K/Rrz41CYix9HazAIOAZO8FcfU5M+WLLJZoaQWBHnMbTQwFWIkB3OL2Z+zw9mcgAQA//gAKBRMIJGmaS8ayyS4vnZfolg+bXxZU+LCQOfna3FvPBh6sTwzqeejod/ogAQA//gAKBSYO1DdrJW4ogOfc8jTimYLmTOOyFZoUx2jOOwtB1jnqUJr6bYawMoPrR3MlKGBGWsVz1yXNqUURoCqYdwsYe61vd5i6YJqnAQ== c 300 IN A 73.80.65.49 caa01 3600 IN CAA 0 issue "ca.example.net" caa02 3600 IN CAA 0 iodef "mailto:security@example.com" @@ -61,6 +62,7 @@ eui48 3600 IN EUI48 00-00-5e-00-53-2a eui64 3600 IN EUI64 00-00-5e-ef-10-00-00-2a f 300 IN A 73.80.65.52 gpos01 3600 IN GPOS -22.6882 116.8652 250.0 +hhit01 3600 IN HHIT gwppM2ZmOCAwMDAwWQFGMIIBQjCB9aADAgECAgE1MAUGAytlcDArMSkwJwYDVQQDDCAyMDAxMDAzZmZlMDAwMDA1NWU2MGExNTcxZTkxYTBiNzAeFw0yNTA0MDkyMDU2MjZaFw0yNTA0MDkyMTU2MjZaMB0xGzAZBgNVBAMMEkRSSVAtUkFBLUEtMTYzNzYtMDAqMAUGAytlcAMhAJmQ1bBLcqGAZtQJK1LH1JlPt8Fr1+jB9ED/qNBP8eE/o0wwSjAPBgNVHRMBAf8EBTADAQH/MDcGA1UdEQEB/wQtMCuHECABAD/+AAAFXmChVx6RoLeGF2h0dHBzOi8vcmFhLmV4YW1wbGUuY29tMAUGAytlcANBALUPjhIB3rwqXQepr9/VDB+hhtwuWZIw1OUkEuDrF6DCkgc75widXnXa5/uDfdKL7dZ83mPHm2Tf32Dvb8AzEw8= hinfo01 3600 IN HINFO "Generic PC clone" "NetBSD-1.4" hinfo02 3600 IN HINFO "PC" "NetBSD" hip01 3600 IN HIP 2 200100107b1a74df365639cc39f1d578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D