1// Code generated by "go run duplicate_generate.go"; DO NOT EDIT.
2
3package dns
4
5// isDuplicate() functions
6
7func (r1 *A) isDuplicate(_r2 RR) bool {
8	r2, ok := _r2.(*A)
9	if !ok {
10		return false
11	}
12	_ = r2
13	if !r1.A.Equal(r2.A) {
14		return false
15	}
16	return true
17}
18
19func (r1 *AAAA) isDuplicate(_r2 RR) bool {
20	r2, ok := _r2.(*AAAA)
21	if !ok {
22		return false
23	}
24	_ = r2
25	if !r1.AAAA.Equal(r2.AAAA) {
26		return false
27	}
28	return true
29}
30
31func (r1 *AFSDB) isDuplicate(_r2 RR) bool {
32	r2, ok := _r2.(*AFSDB)
33	if !ok {
34		return false
35	}
36	_ = r2
37	if r1.Subtype != r2.Subtype {
38		return false
39	}
40	if !isDuplicateName(r1.Hostname, r2.Hostname) {
41		return false
42	}
43	return true
44}
45
46func (r1 *ANY) isDuplicate(_r2 RR) bool {
47	r2, ok := _r2.(*ANY)
48	if !ok {
49		return false
50	}
51	_ = r2
52	return true
53}
54
55func (r1 *APL) isDuplicate(_r2 RR) bool {
56	r2, ok := _r2.(*APL)
57	if !ok {
58		return false
59	}
60	_ = r2
61	if len(r1.Prefixes) != len(r2.Prefixes) {
62		return false
63	}
64	for i := 0; i < len(r1.Prefixes); i++ {
65		if !r1.Prefixes[i].equals(&r2.Prefixes[i]) {
66			return false
67		}
68	}
69	return true
70}
71
72func (r1 *AVC) isDuplicate(_r2 RR) bool {
73	r2, ok := _r2.(*AVC)
74	if !ok {
75		return false
76	}
77	_ = r2
78	if len(r1.Txt) != len(r2.Txt) {
79		return false
80	}
81	for i := 0; i < len(r1.Txt); i++ {
82		if r1.Txt[i] != r2.Txt[i] {
83			return false
84		}
85	}
86	return true
87}
88
89func (r1 *CAA) isDuplicate(_r2 RR) bool {
90	r2, ok := _r2.(*CAA)
91	if !ok {
92		return false
93	}
94	_ = r2
95	if r1.Flag != r2.Flag {
96		return false
97	}
98	if r1.Tag != r2.Tag {
99		return false
100	}
101	if r1.Value != r2.Value {
102		return false
103	}
104	return true
105}
106
107func (r1 *CDNSKEY) isDuplicate(_r2 RR) bool {
108	r2, ok := _r2.(*CDNSKEY)
109	if !ok {
110		return false
111	}
112	_ = r2
113	if r1.Flags != r2.Flags {
114		return false
115	}
116	if r1.Protocol != r2.Protocol {
117		return false
118	}
119	if r1.Algorithm != r2.Algorithm {
120		return false
121	}
122	if r1.PublicKey != r2.PublicKey {
123		return false
124	}
125	return true
126}
127
128func (r1 *CDS) isDuplicate(_r2 RR) bool {
129	r2, ok := _r2.(*CDS)
130	if !ok {
131		return false
132	}
133	_ = r2
134	if r1.KeyTag != r2.KeyTag {
135		return false
136	}
137	if r1.Algorithm != r2.Algorithm {
138		return false
139	}
140	if r1.DigestType != r2.DigestType {
141		return false
142	}
143	if r1.Digest != r2.Digest {
144		return false
145	}
146	return true
147}
148
149func (r1 *CERT) isDuplicate(_r2 RR) bool {
150	r2, ok := _r2.(*CERT)
151	if !ok {
152		return false
153	}
154	_ = r2
155	if r1.Type != r2.Type {
156		return false
157	}
158	if r1.KeyTag != r2.KeyTag {
159		return false
160	}
161	if r1.Algorithm != r2.Algorithm {
162		return false
163	}
164	if r1.Certificate != r2.Certificate {
165		return false
166	}
167	return true
168}
169
170func (r1 *CNAME) isDuplicate(_r2 RR) bool {
171	r2, ok := _r2.(*CNAME)
172	if !ok {
173		return false
174	}
175	_ = r2
176	if !isDuplicateName(r1.Target, r2.Target) {
177		return false
178	}
179	return true
180}
181
182func (r1 *CSYNC) isDuplicate(_r2 RR) bool {
183	r2, ok := _r2.(*CSYNC)
184	if !ok {
185		return false
186	}
187	_ = r2
188	if r1.Serial != r2.Serial {
189		return false
190	}
191	if r1.Flags != r2.Flags {
192		return false
193	}
194	if len(r1.TypeBitMap) != len(r2.TypeBitMap) {
195		return false
196	}
197	for i := 0; i < len(r1.TypeBitMap); i++ {
198		if r1.TypeBitMap[i] != r2.TypeBitMap[i] {
199			return false
200		}
201	}
202	return true
203}
204
205func (r1 *DHCID) isDuplicate(_r2 RR) bool {
206	r2, ok := _r2.(*DHCID)
207	if !ok {
208		return false
209	}
210	_ = r2
211	if r1.Digest != r2.Digest {
212		return false
213	}
214	return true
215}
216
217func (r1 *DLV) isDuplicate(_r2 RR) bool {
218	r2, ok := _r2.(*DLV)
219	if !ok {
220		return false
221	}
222	_ = r2
223	if r1.KeyTag != r2.KeyTag {
224		return false
225	}
226	if r1.Algorithm != r2.Algorithm {
227		return false
228	}
229	if r1.DigestType != r2.DigestType {
230		return false
231	}
232	if r1.Digest != r2.Digest {
233		return false
234	}
235	return true
236}
237
238func (r1 *DNAME) isDuplicate(_r2 RR) bool {
239	r2, ok := _r2.(*DNAME)
240	if !ok {
241		return false
242	}
243	_ = r2
244	if !isDuplicateName(r1.Target, r2.Target) {
245		return false
246	}
247	return true
248}
249
250func (r1 *DNSKEY) isDuplicate(_r2 RR) bool {
251	r2, ok := _r2.(*DNSKEY)
252	if !ok {
253		return false
254	}
255	_ = r2
256	if r1.Flags != r2.Flags {
257		return false
258	}
259	if r1.Protocol != r2.Protocol {
260		return false
261	}
262	if r1.Algorithm != r2.Algorithm {
263		return false
264	}
265	if r1.PublicKey != r2.PublicKey {
266		return false
267	}
268	return true
269}
270
271func (r1 *DS) isDuplicate(_r2 RR) bool {
272	r2, ok := _r2.(*DS)
273	if !ok {
274		return false
275	}
276	_ = r2
277	if r1.KeyTag != r2.KeyTag {
278		return false
279	}
280	if r1.Algorithm != r2.Algorithm {
281		return false
282	}
283	if r1.DigestType != r2.DigestType {
284		return false
285	}
286	if r1.Digest != r2.Digest {
287		return false
288	}
289	return true
290}
291
292func (r1 *EID) isDuplicate(_r2 RR) bool {
293	r2, ok := _r2.(*EID)
294	if !ok {
295		return false
296	}
297	_ = r2
298	if r1.Endpoint != r2.Endpoint {
299		return false
300	}
301	return true
302}
303
304func (r1 *EUI48) isDuplicate(_r2 RR) bool {
305	r2, ok := _r2.(*EUI48)
306	if !ok {
307		return false
308	}
309	_ = r2
310	if r1.Address != r2.Address {
311		return false
312	}
313	return true
314}
315
316func (r1 *EUI64) isDuplicate(_r2 RR) bool {
317	r2, ok := _r2.(*EUI64)
318	if !ok {
319		return false
320	}
321	_ = r2
322	if r1.Address != r2.Address {
323		return false
324	}
325	return true
326}
327
328func (r1 *GID) isDuplicate(_r2 RR) bool {
329	r2, ok := _r2.(*GID)
330	if !ok {
331		return false
332	}
333	_ = r2
334	if r1.Gid != r2.Gid {
335		return false
336	}
337	return true
338}
339
340func (r1 *GPOS) isDuplicate(_r2 RR) bool {
341	r2, ok := _r2.(*GPOS)
342	if !ok {
343		return false
344	}
345	_ = r2
346	if r1.Longitude != r2.Longitude {
347		return false
348	}
349	if r1.Latitude != r2.Latitude {
350		return false
351	}
352	if r1.Altitude != r2.Altitude {
353		return false
354	}
355	return true
356}
357
358func (r1 *HINFO) isDuplicate(_r2 RR) bool {
359	r2, ok := _r2.(*HINFO)
360	if !ok {
361		return false
362	}
363	_ = r2
364	if r1.Cpu != r2.Cpu {
365		return false
366	}
367	if r1.Os != r2.Os {
368		return false
369	}
370	return true
371}
372
373func (r1 *HIP) isDuplicate(_r2 RR) bool {
374	r2, ok := _r2.(*HIP)
375	if !ok {
376		return false
377	}
378	_ = r2
379	if r1.HitLength != r2.HitLength {
380		return false
381	}
382	if r1.PublicKeyAlgorithm != r2.PublicKeyAlgorithm {
383		return false
384	}
385	if r1.PublicKeyLength != r2.PublicKeyLength {
386		return false
387	}
388	if r1.Hit != r2.Hit {
389		return false
390	}
391	if r1.PublicKey != r2.PublicKey {
392		return false
393	}
394	if len(r1.RendezvousServers) != len(r2.RendezvousServers) {
395		return false
396	}
397	for i := 0; i < len(r1.RendezvousServers); i++ {
398		if !isDuplicateName(r1.RendezvousServers[i], r2.RendezvousServers[i]) {
399			return false
400		}
401	}
402	return true
403}
404
405func (r1 *HTTPS) isDuplicate(_r2 RR) bool {
406	r2, ok := _r2.(*HTTPS)
407	if !ok {
408		return false
409	}
410	_ = r2
411	if r1.Priority != r2.Priority {
412		return false
413	}
414	if !isDuplicateName(r1.Target, r2.Target) {
415		return false
416	}
417	if len(r1.Value) != len(r2.Value) {
418		return false
419	}
420	if !areSVCBPairArraysEqual(r1.Value, r2.Value) {
421		return false
422	}
423	return true
424}
425
426func (r1 *KEY) isDuplicate(_r2 RR) bool {
427	r2, ok := _r2.(*KEY)
428	if !ok {
429		return false
430	}
431	_ = r2
432	if r1.Flags != r2.Flags {
433		return false
434	}
435	if r1.Protocol != r2.Protocol {
436		return false
437	}
438	if r1.Algorithm != r2.Algorithm {
439		return false
440	}
441	if r1.PublicKey != r2.PublicKey {
442		return false
443	}
444	return true
445}
446
447func (r1 *KX) isDuplicate(_r2 RR) bool {
448	r2, ok := _r2.(*KX)
449	if !ok {
450		return false
451	}
452	_ = r2
453	if r1.Preference != r2.Preference {
454		return false
455	}
456	if !isDuplicateName(r1.Exchanger, r2.Exchanger) {
457		return false
458	}
459	return true
460}
461
462func (r1 *L32) isDuplicate(_r2 RR) bool {
463	r2, ok := _r2.(*L32)
464	if !ok {
465		return false
466	}
467	_ = r2
468	if r1.Preference != r2.Preference {
469		return false
470	}
471	if !r1.Locator32.Equal(r2.Locator32) {
472		return false
473	}
474	return true
475}
476
477func (r1 *L64) isDuplicate(_r2 RR) bool {
478	r2, ok := _r2.(*L64)
479	if !ok {
480		return false
481	}
482	_ = r2
483	if r1.Preference != r2.Preference {
484		return false
485	}
486	if r1.Locator64 != r2.Locator64 {
487		return false
488	}
489	return true
490}
491
492func (r1 *LOC) isDuplicate(_r2 RR) bool {
493	r2, ok := _r2.(*LOC)
494	if !ok {
495		return false
496	}
497	_ = r2
498	if r1.Version != r2.Version {
499		return false
500	}
501	if r1.Size != r2.Size {
502		return false
503	}
504	if r1.HorizPre != r2.HorizPre {
505		return false
506	}
507	if r1.VertPre != r2.VertPre {
508		return false
509	}
510	if r1.Latitude != r2.Latitude {
511		return false
512	}
513	if r1.Longitude != r2.Longitude {
514		return false
515	}
516	if r1.Altitude != r2.Altitude {
517		return false
518	}
519	return true
520}
521
522func (r1 *LP) isDuplicate(_r2 RR) bool {
523	r2, ok := _r2.(*LP)
524	if !ok {
525		return false
526	}
527	_ = r2
528	if r1.Preference != r2.Preference {
529		return false
530	}
531	if !isDuplicateName(r1.Fqdn, r2.Fqdn) {
532		return false
533	}
534	return true
535}
536
537func (r1 *MB) isDuplicate(_r2 RR) bool {
538	r2, ok := _r2.(*MB)
539	if !ok {
540		return false
541	}
542	_ = r2
543	if !isDuplicateName(r1.Mb, r2.Mb) {
544		return false
545	}
546	return true
547}
548
549func (r1 *MD) isDuplicate(_r2 RR) bool {
550	r2, ok := _r2.(*MD)
551	if !ok {
552		return false
553	}
554	_ = r2
555	if !isDuplicateName(r1.Md, r2.Md) {
556		return false
557	}
558	return true
559}
560
561func (r1 *MF) isDuplicate(_r2 RR) bool {
562	r2, ok := _r2.(*MF)
563	if !ok {
564		return false
565	}
566	_ = r2
567	if !isDuplicateName(r1.Mf, r2.Mf) {
568		return false
569	}
570	return true
571}
572
573func (r1 *MG) isDuplicate(_r2 RR) bool {
574	r2, ok := _r2.(*MG)
575	if !ok {
576		return false
577	}
578	_ = r2
579	if !isDuplicateName(r1.Mg, r2.Mg) {
580		return false
581	}
582	return true
583}
584
585func (r1 *MINFO) isDuplicate(_r2 RR) bool {
586	r2, ok := _r2.(*MINFO)
587	if !ok {
588		return false
589	}
590	_ = r2
591	if !isDuplicateName(r1.Rmail, r2.Rmail) {
592		return false
593	}
594	if !isDuplicateName(r1.Email, r2.Email) {
595		return false
596	}
597	return true
598}
599
600func (r1 *MR) isDuplicate(_r2 RR) bool {
601	r2, ok := _r2.(*MR)
602	if !ok {
603		return false
604	}
605	_ = r2
606	if !isDuplicateName(r1.Mr, r2.Mr) {
607		return false
608	}
609	return true
610}
611
612func (r1 *MX) isDuplicate(_r2 RR) bool {
613	r2, ok := _r2.(*MX)
614	if !ok {
615		return false
616	}
617	_ = r2
618	if r1.Preference != r2.Preference {
619		return false
620	}
621	if !isDuplicateName(r1.Mx, r2.Mx) {
622		return false
623	}
624	return true
625}
626
627func (r1 *NAPTR) isDuplicate(_r2 RR) bool {
628	r2, ok := _r2.(*NAPTR)
629	if !ok {
630		return false
631	}
632	_ = r2
633	if r1.Order != r2.Order {
634		return false
635	}
636	if r1.Preference != r2.Preference {
637		return false
638	}
639	if r1.Flags != r2.Flags {
640		return false
641	}
642	if r1.Service != r2.Service {
643		return false
644	}
645	if r1.Regexp != r2.Regexp {
646		return false
647	}
648	if !isDuplicateName(r1.Replacement, r2.Replacement) {
649		return false
650	}
651	return true
652}
653
654func (r1 *NID) isDuplicate(_r2 RR) bool {
655	r2, ok := _r2.(*NID)
656	if !ok {
657		return false
658	}
659	_ = r2
660	if r1.Preference != r2.Preference {
661		return false
662	}
663	if r1.NodeID != r2.NodeID {
664		return false
665	}
666	return true
667}
668
669func (r1 *NIMLOC) isDuplicate(_r2 RR) bool {
670	r2, ok := _r2.(*NIMLOC)
671	if !ok {
672		return false
673	}
674	_ = r2
675	if r1.Locator != r2.Locator {
676		return false
677	}
678	return true
679}
680
681func (r1 *NINFO) isDuplicate(_r2 RR) bool {
682	r2, ok := _r2.(*NINFO)
683	if !ok {
684		return false
685	}
686	_ = r2
687	if len(r1.ZSData) != len(r2.ZSData) {
688		return false
689	}
690	for i := 0; i < len(r1.ZSData); i++ {
691		if r1.ZSData[i] != r2.ZSData[i] {
692			return false
693		}
694	}
695	return true
696}
697
698func (r1 *NS) isDuplicate(_r2 RR) bool {
699	r2, ok := _r2.(*NS)
700	if !ok {
701		return false
702	}
703	_ = r2
704	if !isDuplicateName(r1.Ns, r2.Ns) {
705		return false
706	}
707	return true
708}
709
710func (r1 *NSAPPTR) isDuplicate(_r2 RR) bool {
711	r2, ok := _r2.(*NSAPPTR)
712	if !ok {
713		return false
714	}
715	_ = r2
716	if !isDuplicateName(r1.Ptr, r2.Ptr) {
717		return false
718	}
719	return true
720}
721
722func (r1 *NSEC) isDuplicate(_r2 RR) bool {
723	r2, ok := _r2.(*NSEC)
724	if !ok {
725		return false
726	}
727	_ = r2
728	if !isDuplicateName(r1.NextDomain, r2.NextDomain) {
729		return false
730	}
731	if len(r1.TypeBitMap) != len(r2.TypeBitMap) {
732		return false
733	}
734	for i := 0; i < len(r1.TypeBitMap); i++ {
735		if r1.TypeBitMap[i] != r2.TypeBitMap[i] {
736			return false
737		}
738	}
739	return true
740}
741
742func (r1 *NSEC3) isDuplicate(_r2 RR) bool {
743	r2, ok := _r2.(*NSEC3)
744	if !ok {
745		return false
746	}
747	_ = r2
748	if r1.Hash != r2.Hash {
749		return false
750	}
751	if r1.Flags != r2.Flags {
752		return false
753	}
754	if r1.Iterations != r2.Iterations {
755		return false
756	}
757	if r1.SaltLength != r2.SaltLength {
758		return false
759	}
760	if r1.Salt != r2.Salt {
761		return false
762	}
763	if r1.HashLength != r2.HashLength {
764		return false
765	}
766	if r1.NextDomain != r2.NextDomain {
767		return false
768	}
769	if len(r1.TypeBitMap) != len(r2.TypeBitMap) {
770		return false
771	}
772	for i := 0; i < len(r1.TypeBitMap); i++ {
773		if r1.TypeBitMap[i] != r2.TypeBitMap[i] {
774			return false
775		}
776	}
777	return true
778}
779
780func (r1 *NSEC3PARAM) isDuplicate(_r2 RR) bool {
781	r2, ok := _r2.(*NSEC3PARAM)
782	if !ok {
783		return false
784	}
785	_ = r2
786	if r1.Hash != r2.Hash {
787		return false
788	}
789	if r1.Flags != r2.Flags {
790		return false
791	}
792	if r1.Iterations != r2.Iterations {
793		return false
794	}
795	if r1.SaltLength != r2.SaltLength {
796		return false
797	}
798	if r1.Salt != r2.Salt {
799		return false
800	}
801	return true
802}
803
804func (r1 *NULL) isDuplicate(_r2 RR) bool {
805	r2, ok := _r2.(*NULL)
806	if !ok {
807		return false
808	}
809	_ = r2
810	if r1.Data != r2.Data {
811		return false
812	}
813	return true
814}
815
816func (r1 *OPENPGPKEY) isDuplicate(_r2 RR) bool {
817	r2, ok := _r2.(*OPENPGPKEY)
818	if !ok {
819		return false
820	}
821	_ = r2
822	if r1.PublicKey != r2.PublicKey {
823		return false
824	}
825	return true
826}
827
828func (r1 *PTR) isDuplicate(_r2 RR) bool {
829	r2, ok := _r2.(*PTR)
830	if !ok {
831		return false
832	}
833	_ = r2
834	if !isDuplicateName(r1.Ptr, r2.Ptr) {
835		return false
836	}
837	return true
838}
839
840func (r1 *PX) isDuplicate(_r2 RR) bool {
841	r2, ok := _r2.(*PX)
842	if !ok {
843		return false
844	}
845	_ = r2
846	if r1.Preference != r2.Preference {
847		return false
848	}
849	if !isDuplicateName(r1.Map822, r2.Map822) {
850		return false
851	}
852	if !isDuplicateName(r1.Mapx400, r2.Mapx400) {
853		return false
854	}
855	return true
856}
857
858func (r1 *RFC3597) isDuplicate(_r2 RR) bool {
859	r2, ok := _r2.(*RFC3597)
860	if !ok {
861		return false
862	}
863	_ = r2
864	if r1.Rdata != r2.Rdata {
865		return false
866	}
867	return true
868}
869
870func (r1 *RKEY) isDuplicate(_r2 RR) bool {
871	r2, ok := _r2.(*RKEY)
872	if !ok {
873		return false
874	}
875	_ = r2
876	if r1.Flags != r2.Flags {
877		return false
878	}
879	if r1.Protocol != r2.Protocol {
880		return false
881	}
882	if r1.Algorithm != r2.Algorithm {
883		return false
884	}
885	if r1.PublicKey != r2.PublicKey {
886		return false
887	}
888	return true
889}
890
891func (r1 *RP) isDuplicate(_r2 RR) bool {
892	r2, ok := _r2.(*RP)
893	if !ok {
894		return false
895	}
896	_ = r2
897	if !isDuplicateName(r1.Mbox, r2.Mbox) {
898		return false
899	}
900	if !isDuplicateName(r1.Txt, r2.Txt) {
901		return false
902	}
903	return true
904}
905
906func (r1 *RRSIG) isDuplicate(_r2 RR) bool {
907	r2, ok := _r2.(*RRSIG)
908	if !ok {
909		return false
910	}
911	_ = r2
912	if r1.TypeCovered != r2.TypeCovered {
913		return false
914	}
915	if r1.Algorithm != r2.Algorithm {
916		return false
917	}
918	if r1.Labels != r2.Labels {
919		return false
920	}
921	if r1.OrigTtl != r2.OrigTtl {
922		return false
923	}
924	if r1.Expiration != r2.Expiration {
925		return false
926	}
927	if r1.Inception != r2.Inception {
928		return false
929	}
930	if r1.KeyTag != r2.KeyTag {
931		return false
932	}
933	if !isDuplicateName(r1.SignerName, r2.SignerName) {
934		return false
935	}
936	if r1.Signature != r2.Signature {
937		return false
938	}
939	return true
940}
941
942func (r1 *RT) isDuplicate(_r2 RR) bool {
943	r2, ok := _r2.(*RT)
944	if !ok {
945		return false
946	}
947	_ = r2
948	if r1.Preference != r2.Preference {
949		return false
950	}
951	if !isDuplicateName(r1.Host, r2.Host) {
952		return false
953	}
954	return true
955}
956
957func (r1 *SIG) isDuplicate(_r2 RR) bool {
958	r2, ok := _r2.(*SIG)
959	if !ok {
960		return false
961	}
962	_ = r2
963	if r1.TypeCovered != r2.TypeCovered {
964		return false
965	}
966	if r1.Algorithm != r2.Algorithm {
967		return false
968	}
969	if r1.Labels != r2.Labels {
970		return false
971	}
972	if r1.OrigTtl != r2.OrigTtl {
973		return false
974	}
975	if r1.Expiration != r2.Expiration {
976		return false
977	}
978	if r1.Inception != r2.Inception {
979		return false
980	}
981	if r1.KeyTag != r2.KeyTag {
982		return false
983	}
984	if !isDuplicateName(r1.SignerName, r2.SignerName) {
985		return false
986	}
987	if r1.Signature != r2.Signature {
988		return false
989	}
990	return true
991}
992
993func (r1 *SMIMEA) isDuplicate(_r2 RR) bool {
994	r2, ok := _r2.(*SMIMEA)
995	if !ok {
996		return false
997	}
998	_ = r2
999	if r1.Usage != r2.Usage {
1000		return false
1001	}
1002	if r1.Selector != r2.Selector {
1003		return false
1004	}
1005	if r1.MatchingType != r2.MatchingType {
1006		return false
1007	}
1008	if r1.Certificate != r2.Certificate {
1009		return false
1010	}
1011	return true
1012}
1013
1014func (r1 *SOA) isDuplicate(_r2 RR) bool {
1015	r2, ok := _r2.(*SOA)
1016	if !ok {
1017		return false
1018	}
1019	_ = r2
1020	if !isDuplicateName(r1.Ns, r2.Ns) {
1021		return false
1022	}
1023	if !isDuplicateName(r1.Mbox, r2.Mbox) {
1024		return false
1025	}
1026	if r1.Serial != r2.Serial {
1027		return false
1028	}
1029	if r1.Refresh != r2.Refresh {
1030		return false
1031	}
1032	if r1.Retry != r2.Retry {
1033		return false
1034	}
1035	if r1.Expire != r2.Expire {
1036		return false
1037	}
1038	if r1.Minttl != r2.Minttl {
1039		return false
1040	}
1041	return true
1042}
1043
1044func (r1 *SPF) isDuplicate(_r2 RR) bool {
1045	r2, ok := _r2.(*SPF)
1046	if !ok {
1047		return false
1048	}
1049	_ = r2
1050	if len(r1.Txt) != len(r2.Txt) {
1051		return false
1052	}
1053	for i := 0; i < len(r1.Txt); i++ {
1054		if r1.Txt[i] != r2.Txt[i] {
1055			return false
1056		}
1057	}
1058	return true
1059}
1060
1061func (r1 *SRV) isDuplicate(_r2 RR) bool {
1062	r2, ok := _r2.(*SRV)
1063	if !ok {
1064		return false
1065	}
1066	_ = r2
1067	if r1.Priority != r2.Priority {
1068		return false
1069	}
1070	if r1.Weight != r2.Weight {
1071		return false
1072	}
1073	if r1.Port != r2.Port {
1074		return false
1075	}
1076	if !isDuplicateName(r1.Target, r2.Target) {
1077		return false
1078	}
1079	return true
1080}
1081
1082func (r1 *SSHFP) isDuplicate(_r2 RR) bool {
1083	r2, ok := _r2.(*SSHFP)
1084	if !ok {
1085		return false
1086	}
1087	_ = r2
1088	if r1.Algorithm != r2.Algorithm {
1089		return false
1090	}
1091	if r1.Type != r2.Type {
1092		return false
1093	}
1094	if r1.FingerPrint != r2.FingerPrint {
1095		return false
1096	}
1097	return true
1098}
1099
1100func (r1 *SVCB) isDuplicate(_r2 RR) bool {
1101	r2, ok := _r2.(*SVCB)
1102	if !ok {
1103		return false
1104	}
1105	_ = r2
1106	if r1.Priority != r2.Priority {
1107		return false
1108	}
1109	if !isDuplicateName(r1.Target, r2.Target) {
1110		return false
1111	}
1112	if len(r1.Value) != len(r2.Value) {
1113		return false
1114	}
1115	if !areSVCBPairArraysEqual(r1.Value, r2.Value) {
1116		return false
1117	}
1118	return true
1119}
1120
1121func (r1 *TA) isDuplicate(_r2 RR) bool {
1122	r2, ok := _r2.(*TA)
1123	if !ok {
1124		return false
1125	}
1126	_ = r2
1127	if r1.KeyTag != r2.KeyTag {
1128		return false
1129	}
1130	if r1.Algorithm != r2.Algorithm {
1131		return false
1132	}
1133	if r1.DigestType != r2.DigestType {
1134		return false
1135	}
1136	if r1.Digest != r2.Digest {
1137		return false
1138	}
1139	return true
1140}
1141
1142func (r1 *TALINK) isDuplicate(_r2 RR) bool {
1143	r2, ok := _r2.(*TALINK)
1144	if !ok {
1145		return false
1146	}
1147	_ = r2
1148	if !isDuplicateName(r1.PreviousName, r2.PreviousName) {
1149		return false
1150	}
1151	if !isDuplicateName(r1.NextName, r2.NextName) {
1152		return false
1153	}
1154	return true
1155}
1156
1157func (r1 *TKEY) isDuplicate(_r2 RR) bool {
1158	r2, ok := _r2.(*TKEY)
1159	if !ok {
1160		return false
1161	}
1162	_ = r2
1163	if !isDuplicateName(r1.Algorithm, r2.Algorithm) {
1164		return false
1165	}
1166	if r1.Inception != r2.Inception {
1167		return false
1168	}
1169	if r1.Expiration != r2.Expiration {
1170		return false
1171	}
1172	if r1.Mode != r2.Mode {
1173		return false
1174	}
1175	if r1.Error != r2.Error {
1176		return false
1177	}
1178	if r1.KeySize != r2.KeySize {
1179		return false
1180	}
1181	if r1.Key != r2.Key {
1182		return false
1183	}
1184	if r1.OtherLen != r2.OtherLen {
1185		return false
1186	}
1187	if r1.OtherData != r2.OtherData {
1188		return false
1189	}
1190	return true
1191}
1192
1193func (r1 *TLSA) isDuplicate(_r2 RR) bool {
1194	r2, ok := _r2.(*TLSA)
1195	if !ok {
1196		return false
1197	}
1198	_ = r2
1199	if r1.Usage != r2.Usage {
1200		return false
1201	}
1202	if r1.Selector != r2.Selector {
1203		return false
1204	}
1205	if r1.MatchingType != r2.MatchingType {
1206		return false
1207	}
1208	if r1.Certificate != r2.Certificate {
1209		return false
1210	}
1211	return true
1212}
1213
1214func (r1 *TSIG) isDuplicate(_r2 RR) bool {
1215	r2, ok := _r2.(*TSIG)
1216	if !ok {
1217		return false
1218	}
1219	_ = r2
1220	if !isDuplicateName(r1.Algorithm, r2.Algorithm) {
1221		return false
1222	}
1223	if r1.TimeSigned != r2.TimeSigned {
1224		return false
1225	}
1226	if r1.Fudge != r2.Fudge {
1227		return false
1228	}
1229	if r1.MACSize != r2.MACSize {
1230		return false
1231	}
1232	if r1.MAC != r2.MAC {
1233		return false
1234	}
1235	if r1.OrigId != r2.OrigId {
1236		return false
1237	}
1238	if r1.Error != r2.Error {
1239		return false
1240	}
1241	if r1.OtherLen != r2.OtherLen {
1242		return false
1243	}
1244	if r1.OtherData != r2.OtherData {
1245		return false
1246	}
1247	return true
1248}
1249
1250func (r1 *TXT) isDuplicate(_r2 RR) bool {
1251	r2, ok := _r2.(*TXT)
1252	if !ok {
1253		return false
1254	}
1255	_ = r2
1256	if len(r1.Txt) != len(r2.Txt) {
1257		return false
1258	}
1259	for i := 0; i < len(r1.Txt); i++ {
1260		if r1.Txt[i] != r2.Txt[i] {
1261			return false
1262		}
1263	}
1264	return true
1265}
1266
1267func (r1 *UID) isDuplicate(_r2 RR) bool {
1268	r2, ok := _r2.(*UID)
1269	if !ok {
1270		return false
1271	}
1272	_ = r2
1273	if r1.Uid != r2.Uid {
1274		return false
1275	}
1276	return true
1277}
1278
1279func (r1 *UINFO) isDuplicate(_r2 RR) bool {
1280	r2, ok := _r2.(*UINFO)
1281	if !ok {
1282		return false
1283	}
1284	_ = r2
1285	if r1.Uinfo != r2.Uinfo {
1286		return false
1287	}
1288	return true
1289}
1290
1291func (r1 *URI) isDuplicate(_r2 RR) bool {
1292	r2, ok := _r2.(*URI)
1293	if !ok {
1294		return false
1295	}
1296	_ = r2
1297	if r1.Priority != r2.Priority {
1298		return false
1299	}
1300	if r1.Weight != r2.Weight {
1301		return false
1302	}
1303	if r1.Target != r2.Target {
1304		return false
1305	}
1306	return true
1307}
1308
1309func (r1 *X25) isDuplicate(_r2 RR) bool {
1310	r2, ok := _r2.(*X25)
1311	if !ok {
1312		return false
1313	}
1314	_ = r2
1315	if r1.PSDNAddress != r2.PSDNAddress {
1316		return false
1317	}
1318	return true
1319}
1320
1321func (r1 *ZONEMD) isDuplicate(_r2 RR) bool {
1322	r2, ok := _r2.(*ZONEMD)
1323	if !ok {
1324		return false
1325	}
1326	_ = r2
1327	if r1.Serial != r2.Serial {
1328		return false
1329	}
1330	if r1.Scheme != r2.Scheme {
1331		return false
1332	}
1333	if r1.Hash != r2.Hash {
1334		return false
1335	}
1336	if r1.Digest != r2.Digest {
1337		return false
1338	}
1339	return true
1340}
1341