xasdd6 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xasdd6",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "type": "module",
5
5
  "description": "DNS Query and Spoofing Tool",
6
6
  "main": "./xasdd6.umd.cjs",
package/xasdd6.es.js CHANGED
@@ -474,29 +474,29 @@ var E = T({
474
474
  encodingLength(e) {
475
475
  return E.encodingLength(e) + 2;
476
476
  }
477
- }), ve = T({
477
+ }), j = T({
478
478
  encode(e, t, n) {
479
- t ||= new Uint8Array(ve.encodingLength(e)), n ||= 0;
479
+ t ||= new Uint8Array(j.encodingLength(e)), n ||= 0;
480
480
  let r = n;
481
- return n += 2, E.encode(e.mname, t, n), n += E.encode.bytes, E.encode(e.rname, t, n), n += E.encode.bytes, S(t, e.serial || 0, n), n += 4, S(t, e.refresh || 0, n), n += 4, S(t, e.retry || 0, n), n += 4, S(t, e.expire || 0, n), n += 4, S(t, e.minimum || 0, n), n += 4, C(t, n - r - 2, r), ve.encode.bytes = n - r, t;
481
+ return n += 2, E.encode(e.mname, t, n), n += E.encode.bytes, E.encode(e.rname, t, n), n += E.encode.bytes, S(t, e.serial || 0, n), n += 4, S(t, e.refresh || 0, n), n += 4, S(t, e.retry || 0, n), n += 4, S(t, e.expire || 0, n), n += 4, S(t, e.minimum || 0, n), n += 4, C(t, n - r - 2, r), j.encode.bytes = n - r, t;
482
482
  },
483
483
  decode(e, t) {
484
484
  t ||= 0;
485
485
  let n = t, r = {};
486
- return t += 2, r.mname = E.decode(e, t), t += E.decode.bytes, r.rname = E.decode(e, t), t += E.decode.bytes, r.serial = b(e, t), t += 4, r.refresh = b(e, t), t += 4, r.retry = b(e, t), t += 4, r.expire = b(e, t), t += 4, r.minimum = b(e, t), t += 4, ve.decode.bytes = t - n, r;
486
+ return t += 2, r.mname = E.decode(e, t), t += E.decode.bytes, r.rname = E.decode(e, t), t += E.decode.bytes, r.serial = b(e, t), t += 4, r.refresh = b(e, t), t += 4, r.retry = b(e, t), t += 4, r.expire = b(e, t), t += 4, r.minimum = b(e, t), t += 4, j.decode.bytes = t - n, r;
487
487
  },
488
488
  encodingLength(e) {
489
489
  return 22 + E.encodingLength(e.mname) + E.encodingLength(e.rname);
490
490
  }
491
- }), ye = T({
491
+ }), M = T({
492
492
  encode(e, t, n) {
493
493
  Array.isArray(e) || (e = [e]);
494
494
  for (let t = 0; t < e.length; t++) if (typeof e[t] == "string" && (e[t] = oe(e[t])), !v(e[t])) throw Error("Must be a Buffer");
495
- t ||= new Uint8Array(ye.encodingLength(e)), n ||= 0;
495
+ t ||= new Uint8Array(M.encodingLength(e)), n ||= 0;
496
496
  let r = n;
497
497
  return n += 2, e.forEach(function(e) {
498
498
  t[n++] = e.length, w(e, t, n, 0, e.length), n += e.length;
499
- }), C(t, n - r - 2, r), ye.encode.bytes = n - r, t;
499
+ }), C(t, n - r - 2, r), M.encode.bytes = n - r, t;
500
500
  },
501
501
  decode(e, t) {
502
502
  t ||= 0;
@@ -508,7 +508,7 @@ var E = T({
508
508
  if (--r, r < n) throw Error("Buffer overflow");
509
509
  i.push(e.slice(t, t + n)), t += n, r -= n;
510
510
  }
511
- return ye.decode.bytes = t - n, i;
511
+ return M.decode.bytes = t - n, i;
512
512
  },
513
513
  encodingLength(e) {
514
514
  Array.isArray(e) || (e = [e]);
@@ -517,122 +517,122 @@ var E = T({
517
517
  t += typeof e == "string" ? y(e) + 1 : e.length + 1;
518
518
  }), t;
519
519
  }
520
- }), be = T({
520
+ }), N = T({
521
521
  encode(e, t, n) {
522
- t ||= new Uint8Array(be.encodingLength(e)), n ||= 0, typeof e == "string" && (e = oe(e)), e ||= /* @__PURE__ */ new Uint8Array();
522
+ t ||= new Uint8Array(N.encodingLength(e)), n ||= 0, typeof e == "string" && (e = oe(e)), e ||= /* @__PURE__ */ new Uint8Array();
523
523
  let r = n;
524
524
  n += 2;
525
525
  let i = e.length;
526
- return w(e, t, n, 0, i), n += i, C(t, n - r - 2, r), be.encode.bytes = n - r, t;
526
+ return w(e, t, n, 0, i), n += i, C(t, n - r - 2, r), N.encode.bytes = n - r, t;
527
527
  },
528
528
  decode(e, t) {
529
529
  t ||= 0;
530
530
  let n = t, r = x(e, t);
531
531
  t += 2;
532
532
  let i = e.slice(t, t + r);
533
- return t += r, be.decode.bytes = t - n, i;
533
+ return t += r, N.decode.bytes = t - n, i;
534
534
  },
535
535
  encodingLength(e) {
536
536
  return e ? (v(e) ? e.length : y(e)) + 2 : 2;
537
537
  }
538
- }), j = T({
538
+ }), P = T({
539
539
  encode(e, t, n) {
540
- t ||= new Uint8Array(j.encodingLength(e)), n ||= 0;
540
+ t ||= new Uint8Array(P.encodingLength(e)), n ||= 0;
541
541
  let r = n;
542
- return n += 2, D.encode(e.cpu, t, n), n += D.encode.bytes, D.encode(e.os, t, n), n += D.encode.bytes, C(t, n - r - 2, r), j.encode.bytes = n - r, t;
542
+ return n += 2, D.encode(e.cpu, t, n), n += D.encode.bytes, D.encode(e.os, t, n), n += D.encode.bytes, C(t, n - r - 2, r), P.encode.bytes = n - r, t;
543
543
  },
544
544
  decode(e, t) {
545
545
  t ||= 0;
546
546
  let n = t, r = {};
547
- return t += 2, r.cpu = D.decode(e, t), t += D.decode.bytes, r.os = D.decode(e, t), t += D.decode.bytes, j.decode.bytes = t - n, r;
547
+ return t += 2, r.cpu = D.decode(e, t), t += D.decode.bytes, r.os = D.decode(e, t), t += D.decode.bytes, P.decode.bytes = t - n, r;
548
548
  },
549
549
  encodingLength(e) {
550
550
  return D.encodingLength(e.cpu) + D.encodingLength(e.os) + 2;
551
551
  }
552
- }), M = T({
552
+ }), F = T({
553
553
  encode(e, t, n) {
554
- return t ||= new Uint8Array(M.encodingLength(e)), n ||= 0, E.encode(e, t, n + 2), C(t, E.encode.bytes, n), M.encode.bytes = E.encode.bytes + 2, t;
554
+ return t ||= new Uint8Array(F.encodingLength(e)), n ||= 0, E.encode(e, t, n + 2), C(t, E.encode.bytes, n), F.encode.bytes = E.encode.bytes + 2, t;
555
555
  },
556
556
  decode(e, t) {
557
557
  t ||= 0;
558
558
  let n = E.decode(e, t + 2);
559
- return M.decode.bytes = E.decode.bytes + 2, n;
559
+ return F.decode.bytes = E.decode.bytes + 2, n;
560
560
  },
561
561
  encodingLength(e) {
562
562
  return E.encodingLength(e) + 2;
563
563
  }
564
- }), N = T({
564
+ }), I = T({
565
565
  encode(e, t, n) {
566
- t ||= new Uint8Array(N.encodingLength(e)), n ||= 0, C(t, e.priority || 0, n + 2), C(t, e.weight || 0, n + 4), C(t, e.port || 0, n + 6), E.encode(e.target, t, n + 8);
566
+ t ||= new Uint8Array(I.encodingLength(e)), n ||= 0, C(t, e.priority || 0, n + 2), C(t, e.weight || 0, n + 4), C(t, e.port || 0, n + 6), E.encode(e.target, t, n + 8);
567
567
  let r = E.encode.bytes + 6;
568
- return C(t, r, n), N.encode.bytes = r + 2, t;
568
+ return C(t, r, n), I.encode.bytes = r + 2, t;
569
569
  },
570
570
  decode(e, t) {
571
571
  t ||= 0;
572
572
  let n = x(e, t), r = {};
573
- return r.priority = x(e, t + 2), r.weight = x(e, t + 4), r.port = x(e, t + 6), r.target = E.decode(e, t + 8), N.decode.bytes = n + 2, r;
573
+ return r.priority = x(e, t + 2), r.weight = x(e, t + 4), r.port = x(e, t + 6), r.target = E.decode(e, t + 8), I.decode.bytes = n + 2, r;
574
574
  },
575
575
  encodingLength(e) {
576
576
  return 8 + E.encodingLength(e.target);
577
577
  }
578
- }), P = T({
578
+ }), L = T({
579
579
  encode(e, t, n) {
580
- let r = P.encodingLength(e);
581
- return t ||= new Uint8Array(P.encodingLength(e)), n ||= 0, e.issuerCritical && (e.flags = P.ISSUER_CRITICAL), C(t, r - 2, n), n += 2, t[n] = e.flags || 0, n += 1, D.encode(e.tag, t, n), n += D.encode.bytes, se(t, e.value, n), n += y(e.value), P.encode.bytes = r, t;
580
+ let r = L.encodingLength(e);
581
+ return t ||= new Uint8Array(L.encodingLength(e)), n ||= 0, e.issuerCritical && (e.flags = L.ISSUER_CRITICAL), C(t, r - 2, n), n += 2, t[n] = e.flags || 0, n += 1, D.encode(e.tag, t, n), n += D.encode.bytes, se(t, e.value, n), n += y(e.value), L.encode.bytes = r, t;
582
582
  },
583
583
  decode(e, t) {
584
584
  t ||= 0;
585
585
  let n = x(e, t);
586
586
  t += 2;
587
587
  let r = t, i = {};
588
- return i.flags = e[t], t += 1, i.tag = D.decode(e, t), t += D.decode.bytes, i.value = _(e, t, r + n), i.issuerCritical = !!(i.flags & P.ISSUER_CRITICAL), P.decode.bytes = n + 2, i;
588
+ return i.flags = e[t], t += 1, i.tag = D.decode(e, t), t += D.decode.bytes, i.value = _(e, t, r + n), i.issuerCritical = !!(i.flags & L.ISSUER_CRITICAL), L.decode.bytes = n + 2, i;
589
589
  },
590
590
  encodingLength(e) {
591
591
  return D.encodingLength(e.tag) + D.encodingLength(e.value) + 2;
592
592
  }
593
593
  });
594
- P.ISSUER_CRITICAL = 128;
595
- var F = T({
594
+ L.ISSUER_CRITICAL = 128;
595
+ var ve = T({
596
596
  encode(e, t, n) {
597
- t ||= new Uint8Array(F.encodingLength(e)), n ||= 0;
597
+ t ||= new Uint8Array(ve.encodingLength(e)), n ||= 0;
598
598
  let r = n;
599
- return n += 2, C(t, e.preference || 0, n), n += 2, E.encode(e.exchange, t, n), n += E.encode.bytes, C(t, n - r - 2, r), F.encode.bytes = n - r, t;
599
+ return n += 2, C(t, e.preference || 0, n), n += 2, E.encode(e.exchange, t, n), n += E.encode.bytes, C(t, n - r - 2, r), ve.encode.bytes = n - r, t;
600
600
  },
601
601
  decode(e, t) {
602
602
  t ||= 0;
603
603
  let n = t, r = {};
604
- return t += 2, r.preference = x(e, t), t += 2, r.exchange = E.decode(e, t), t += E.decode.bytes, F.decode.bytes = t - n, r;
604
+ return t += 2, r.preference = x(e, t), t += 2, r.exchange = E.decode(e, t), t += E.decode.bytes, ve.decode.bytes = t - n, r;
605
605
  },
606
606
  encodingLength(e) {
607
607
  return 4 + E.encodingLength(e.exchange);
608
608
  }
609
- }), xe = T({
609
+ }), ye = T({
610
610
  encode(e, t, n) {
611
- return t ||= new Uint8Array(xe.encodingLength(e)), n ||= 0, C(t, 4, n), n += 2, a.encode(e, t, n), t;
611
+ return t ||= new Uint8Array(ye.encodingLength(e)), n ||= 0, C(t, 4, n), n += 2, a.encode(e, t, n), t;
612
612
  },
613
613
  decode(e, t) {
614
614
  return t ||= 0, t += 2, a.decode(e, t);
615
615
  },
616
616
  bytes: 6
617
- }), I = T({
617
+ }), be = T({
618
618
  encode(e, t, n) {
619
- return t ||= new Uint8Array(I.encodingLength(e)), n ||= 0, C(t, 16, n), n += 2, o.encode(e, t, n), I.encode.bytes = 18, t;
619
+ return t ||= new Uint8Array(be.encodingLength(e)), n ||= 0, C(t, 16, n), n += 2, o.encode(e, t, n), be.encode.bytes = 18, t;
620
620
  },
621
621
  decode(e, t) {
622
622
  t ||= 0, t += 2;
623
623
  let n = o.decode(e, t);
624
- return I.decode.bytes = 18, n;
624
+ return be.decode.bytes = 18, n;
625
625
  },
626
626
  bytes: 18
627
- }), Se = (e) => new Uint8Array(e), L = T({
627
+ }), xe = (e) => new Uint8Array(e), R = T({
628
628
  encode(e, t, n) {
629
- t ||= new Uint8Array(L.encodingLength(e)), n ||= 0;
629
+ t ||= new Uint8Array(R.encodingLength(e)), n ||= 0;
630
630
  let r = n, i = re(e.code);
631
631
  if (C(t, i, n), n += 2, e.data) C(t, e.data.length, n), n += 2, w(e.data, t, n), n += e.data.length;
632
632
  else switch (i) {
633
633
  case 8:
634
634
  {
635
- let r = e.sourcePrefixLength || 0, i = e.family || c(e.ip, Se), a = l(e.ip, Se), o = Math.ceil(r / 8);
635
+ let r = e.sourcePrefixLength || 0, i = e.family || c(e.ip, xe), a = l(e.ip, xe), o = Math.ceil(r / 8);
636
636
  C(t, o + 4, n), n += 2, C(t, i, n), n += 2, t[n++] = r, t[n++] = e.scopePrefixLength || 0, w(a, t, n, 0, o), n += o;
637
637
  }
638
638
  break;
@@ -654,7 +654,7 @@ var F = T({
654
654
  break;
655
655
  default: throw Error(`Unknown roption code: ${e.code}`);
656
656
  }
657
- return L.encode.bytes = n - r, t;
657
+ return R.encode.bytes = n - r, t;
658
658
  },
659
659
  decode(e, t) {
660
660
  t ||= 0;
@@ -676,7 +676,7 @@ var F = T({
676
676
  n.tags = [];
677
677
  for (let i = 0; i < r; i += 2) n.tags.push(x(e, t)), t += 2;
678
678
  }
679
- return L.decode.bytes = r + 4, n;
679
+ return R.decode.bytes = r + 4, n;
680
680
  },
681
681
  encodingLength(e) {
682
682
  if (e.data) return e.data.length + 4;
@@ -691,73 +691,73 @@ var F = T({
691
691
  }
692
692
  throw Error(`Unknown roption code: ${e.code}`);
693
693
  }
694
- }), R = T({
694
+ }), z = T({
695
695
  encode(e, t, n) {
696
- t ||= new Uint8Array(R.encodingLength(e)), n ||= 0;
697
- let r = n, i = X(e, L);
698
- return C(t, i, n), n = Z(e, L, t, n + 2), R.encode.bytes = n - r, t;
696
+ t ||= new Uint8Array(z.encodingLength(e)), n ||= 0;
697
+ let r = n, i = X(e, R);
698
+ return C(t, i, n), n = Z(e, R, t, n + 2), z.encode.bytes = n - r, t;
699
699
  },
700
700
  decode(e, t) {
701
701
  t ||= 0;
702
702
  let n = t, r = [], i = x(e, t);
703
703
  t += 2;
704
704
  let a = 0;
705
- for (; i > 0;) r[a++] = L.decode(e, t), t += L.decode.bytes, i -= L.decode.bytes;
706
- return R.decode.bytes = t - n, r;
705
+ for (; i > 0;) r[a++] = R.decode(e, t), t += R.decode.bytes, i -= R.decode.bytes;
706
+ return z.decode.bytes = t - n, r;
707
707
  },
708
708
  encodingLength(e) {
709
- return 2 + X(e || [], L);
709
+ return 2 + X(e || [], R);
710
710
  }
711
- }), z = T({
711
+ }), B = T({
712
712
  encode(e, t, n) {
713
- t ||= new Uint8Array(z.encodingLength(e)), n ||= 0;
713
+ t ||= new Uint8Array(B.encodingLength(e)), n ||= 0;
714
714
  let r = n, i = e.key;
715
715
  if (!v(i)) throw Error("Key must be a Buffer");
716
- return n += 2, C(t, e.flags, n), n += 2, t[n] = z.PROTOCOL_DNSSEC, n += 1, t[n] = e.algorithm, n += 1, w(i, t, n, 0, i.length), n += i.length, z.encode.bytes = n - r, C(t, z.encode.bytes - 2, r), t;
716
+ return n += 2, C(t, e.flags, n), n += 2, t[n] = B.PROTOCOL_DNSSEC, n += 1, t[n] = e.algorithm, n += 1, w(i, t, n, 0, i.length), n += i.length, B.encode.bytes = n - r, C(t, B.encode.bytes - 2, r), t;
717
717
  },
718
718
  decode(e, t) {
719
719
  t ||= 0;
720
720
  let n = t, r = {}, i = x(e, t);
721
- if (t += 2, r.flags = x(e, t), t += 2, e[t] !== z.PROTOCOL_DNSSEC) throw Error("Protocol must be 3");
722
- return t += 1, r.algorithm = e[t], t += 1, r.key = e.slice(t, n + i + 2), t += r.key.length, z.decode.bytes = t - n, r;
721
+ if (t += 2, r.flags = x(e, t), t += 2, e[t] !== B.PROTOCOL_DNSSEC) throw Error("Protocol must be 3");
722
+ return t += 1, r.algorithm = e[t], t += 1, r.key = e.slice(t, n + i + 2), t += r.key.length, B.decode.bytes = t - n, r;
723
723
  },
724
724
  encodingLength(e) {
725
725
  return 6 + y(e.key);
726
726
  }
727
727
  });
728
- z.PROTOCOL_DNSSEC = 3, z.ZONE_KEY = 128, z.SECURE_ENTRYPOINT = 32768;
729
- var B = T({
728
+ B.PROTOCOL_DNSSEC = 3, B.ZONE_KEY = 128, B.SECURE_ENTRYPOINT = 32768;
729
+ var V = T({
730
730
  encode(e, t, n) {
731
- t ||= new Uint8Array(B.encodingLength(e)), n ||= 0;
731
+ t ||= new Uint8Array(V.encodingLength(e)), n ||= 0;
732
732
  let r = n, i = e.signature;
733
733
  if (!v(i)) throw Error("Signature must be a Buffer");
734
- return n += 2, C(t, f(e.typeCovered), n), n += 2, t[n] = e.algorithm, n += 1, t[n] = e.labels, n += 1, S(t, e.originalTTL, n), n += 4, S(t, e.expiration, n), n += 4, S(t, e.inception, n), n += 4, C(t, e.keyTag, n), n += 2, E.encode(e.signersName, t, n), n += E.encode.bytes, w(i, t, n, 0, i.length), n += i.length, B.encode.bytes = n - r, C(t, B.encode.bytes - 2, r), t;
734
+ return n += 2, C(t, f(e.typeCovered), n), n += 2, t[n] = e.algorithm, n += 1, t[n] = e.labels, n += 1, S(t, e.originalTTL, n), n += 4, S(t, e.expiration, n), n += 4, S(t, e.inception, n), n += 4, C(t, e.keyTag, n), n += 2, E.encode(e.signersName, t, n), n += E.encode.bytes, w(i, t, n, 0, i.length), n += i.length, V.encode.bytes = n - r, C(t, V.encode.bytes - 2, r), t;
735
735
  },
736
736
  decode(e, t) {
737
737
  t ||= 0;
738
738
  let n = t, r = {}, i = x(e, t);
739
- return t += 2, r.typeCovered = d(x(e, t)), t += 2, r.algorithm = e[t], t += 1, r.labels = e[t], t += 1, r.originalTTL = b(e, t), t += 4, r.expiration = b(e, t), t += 4, r.inception = b(e, t), t += 4, r.keyTag = x(e, t), t += 2, r.signersName = E.decode(e, t), t += E.decode.bytes, r.signature = e.slice(t, n + i + 2), t += r.signature.length, B.decode.bytes = t - n, r;
739
+ return t += 2, r.typeCovered = d(x(e, t)), t += 2, r.algorithm = e[t], t += 1, r.labels = e[t], t += 1, r.originalTTL = b(e, t), t += 4, r.expiration = b(e, t), t += 4, r.inception = b(e, t), t += 4, r.keyTag = x(e, t), t += 2, r.signersName = E.decode(e, t), t += E.decode.bytes, r.signature = e.slice(t, n + i + 2), t += r.signature.length, V.decode.bytes = t - n, r;
740
740
  },
741
741
  encodingLength(e) {
742
742
  return 20 + E.encodingLength(e.signersName) + y(e.signature);
743
743
  }
744
- }), V = T({
744
+ }), H = T({
745
745
  encode(e, t, n) {
746
- t ||= new Uint8Array(V.encodingLength(e)), n ||= 0;
746
+ t ||= new Uint8Array(H.encodingLength(e)), n ||= 0;
747
747
  let r = n;
748
- return n += 2, E.encode(e.mbox || ".", t, n), n += E.encode.bytes, E.encode(e.txt || ".", t, n), n += E.encode.bytes, V.encode.bytes = n - r, C(t, V.encode.bytes - 2, r), t;
748
+ return n += 2, E.encode(e.mbox || ".", t, n), n += E.encode.bytes, E.encode(e.txt || ".", t, n), n += E.encode.bytes, H.encode.bytes = n - r, C(t, H.encode.bytes - 2, r), t;
749
749
  },
750
750
  decode(e, t) {
751
751
  t ||= 0;
752
752
  let n = t, r = {};
753
- return t += 2, r.mbox = E.decode(e, t) || ".", t += E.decode.bytes, r.txt = E.decode(e, t) || ".", t += E.decode.bytes, V.decode.bytes = t - n, r;
753
+ return t += 2, r.mbox = E.decode(e, t) || ".", t += E.decode.bytes, r.txt = E.decode(e, t) || ".", t += E.decode.bytes, H.decode.bytes = t - n, r;
754
754
  },
755
755
  encodingLength(e) {
756
756
  return 2 + E.encodingLength(e.mbox || ".") + E.encodingLength(e.txt || ".");
757
757
  }
758
- }), H = T({
758
+ }), U = T({
759
759
  encode(e, t, n) {
760
- t ||= new Uint8Array(H.encodingLength(e)), n ||= 0;
760
+ t ||= new Uint8Array(U.encodingLength(e)), n ||= 0;
761
761
  let r = n, i = [];
762
762
  for (let t = 0; t < e.length; t++) {
763
763
  let n = f(e[t]);
@@ -767,7 +767,7 @@ var B = T({
767
767
  let r = oe(i[e]);
768
768
  t[n] = e, n += 1, t[n] = r.length, n += 1, w(r, t, n, 0, r.length), n += r.length;
769
769
  }
770
- return H.encode.bytes = n - r, t;
770
+ return U.encode.bytes = n - r, t;
771
771
  },
772
772
  decode(e, t, n) {
773
773
  t ||= 0;
@@ -786,7 +786,7 @@ var B = T({
786
786
  }
787
787
  t += r;
788
788
  }
789
- return H.decode.bytes = t - r, i;
789
+ return U.decode.bytes = t - r, i;
790
790
  },
791
791
  encodingLength(e) {
792
792
  let t = [];
@@ -798,28 +798,28 @@ var B = T({
798
798
  for (let e = 0; e < t.length; e++) t[e] !== void 0 && (n += 2 + Math.ceil((t[e] + 1) / 8));
799
799
  return n;
800
800
  }
801
- }), U = T({
801
+ }), W = T({
802
802
  encode(e, t, n) {
803
- t ||= new Uint8Array(U.encodingLength(e)), n ||= 0;
803
+ t ||= new Uint8Array(W.encodingLength(e)), n ||= 0;
804
804
  let r = n;
805
- return n += 2, E.encode(e.nextDomain, t, n), n += E.encode.bytes, H.encode(e.rrtypes, t, n), n += H.encode.bytes, U.encode.bytes = n - r, C(t, U.encode.bytes - 2, r), t;
805
+ return n += 2, E.encode(e.nextDomain, t, n), n += E.encode.bytes, U.encode(e.rrtypes, t, n), n += U.encode.bytes, W.encode.bytes = n - r, C(t, W.encode.bytes - 2, r), t;
806
806
  },
807
807
  decode(e, t) {
808
808
  t ||= 0;
809
809
  let n = t, r = {}, i = x(e, t);
810
- return t += 2, r.nextDomain = E.decode(e, t), t += E.decode.bytes, r.rrtypes = H.decode(e, t, i - (t - n)), t += H.decode.bytes, U.decode.bytes = t - n, r;
810
+ return t += 2, r.nextDomain = E.decode(e, t), t += E.decode.bytes, r.rrtypes = U.decode(e, t, i - (t - n)), t += U.decode.bytes, W.decode.bytes = t - n, r;
811
811
  },
812
812
  encodingLength(e) {
813
- return 2 + E.encodingLength(e.nextDomain) + H.encodingLength(e.rrtypes);
813
+ return 2 + E.encodingLength(e.nextDomain) + U.encodingLength(e.rrtypes);
814
814
  }
815
- }), W = T({
815
+ }), G = T({
816
816
  encode(e, t, n) {
817
- t ||= new Uint8Array(W.encodingLength(e)), n ||= 0;
817
+ t ||= new Uint8Array(G.encodingLength(e)), n ||= 0;
818
818
  let r = n, i = e.salt;
819
819
  if (!v(i)) throw Error("salt must be a Buffer");
820
820
  let a = e.nextDomain;
821
821
  if (!v(a)) throw Error("nextDomain must be a Buffer");
822
- return n += 2, t[n] = e.algorithm, n += 1, t[n] = e.flags, n += 1, C(t, e.iterations, n), n += 2, t[n] = i.length, n += 1, w(i, t, n, 0, i.length), n += i.length, t[n] = a.length, n += 1, w(a, t, n, 0, a.length), n += a.length, H.encode(e.rrtypes, t, n), n += H.encode.bytes, W.encode.bytes = n - r, C(t, W.encode.bytes - 2, r), t;
822
+ return n += 2, t[n] = e.algorithm, n += 1, t[n] = e.flags, n += 1, C(t, e.iterations, n), n += 2, t[n] = i.length, n += 1, w(i, t, n, 0, i.length), n += i.length, t[n] = a.length, n += 1, w(a, t, n, 0, a.length), n += a.length, U.encode(e.rrtypes, t, n), n += U.encode.bytes, G.encode.bytes = n - r, C(t, G.encode.bytes - 2, r), t;
823
823
  },
824
824
  decode(e, t) {
825
825
  t ||= 0;
@@ -828,146 +828,148 @@ var B = T({
828
828
  let a = e[t];
829
829
  t += 1, r.salt = e.slice(t, t + a), t += a;
830
830
  let o = e[t];
831
- return t += 1, r.nextDomain = e.slice(t, t + o), t += o, r.rrtypes = H.decode(e, t, i - (t - n)), t += H.decode.bytes, W.decode.bytes = t - n, r;
831
+ return t += 1, r.nextDomain = e.slice(t, t + o), t += o, r.rrtypes = U.decode(e, t, i - (t - n)), t += U.decode.bytes, G.decode.bytes = t - n, r;
832
832
  },
833
833
  encodingLength(e) {
834
- return 8 + e.salt.length + e.nextDomain.length + H.encodingLength(e.rrtypes);
834
+ return 8 + e.salt.length + e.nextDomain.length + U.encodingLength(e.rrtypes);
835
835
  }
836
- }), G = T({
836
+ }), K = T({
837
837
  encode(e, t, n) {
838
- t ||= new Uint8Array(G.encodingLength(e)), n ||= 0;
838
+ t ||= new Uint8Array(K.encodingLength(e)), n ||= 0;
839
839
  let r = n, i = e.digest;
840
840
  if (!v(i)) throw Error("Digest must be a Buffer");
841
- return n += 2, C(t, e.keyTag, n), n += 2, t[n] = e.algorithm, n += 1, t[n] = e.digestType, n += 1, w(i, t, n, 0, i.length), n += i.length, G.encode.bytes = n - r, C(t, G.encode.bytes - 2, r), t;
841
+ return n += 2, C(t, e.keyTag, n), n += 2, t[n] = e.algorithm, n += 1, t[n] = e.digestType, n += 1, w(i, t, n, 0, i.length), n += i.length, K.encode.bytes = n - r, C(t, K.encode.bytes - 2, r), t;
842
842
  },
843
843
  decode(e, t) {
844
844
  t ||= 0;
845
845
  let n = t, r = {}, i = x(e, t);
846
- return t += 2, r.keyTag = x(e, t), t += 2, r.algorithm = e[t], t += 1, r.digestType = e[t], t += 1, r.digest = e.slice(t, n + i + 2), t += r.digest.length, G.decode.bytes = t - n, r;
846
+ return t += 2, r.keyTag = x(e, t), t += 2, r.algorithm = e[t], t += 1, r.digestType = e[t], t += 1, r.digest = e.slice(t, n + i + 2), t += r.digest.length, K.decode.bytes = t - n, r;
847
847
  },
848
848
  encodingLength(e) {
849
849
  return 6 + y(e.digest);
850
850
  }
851
851
  });
852
- function Ce(e) {
852
+ function Se(e) {
853
853
  switch (e.toUpperCase()) {
854
- case "A": return xe;
855
- case "PTR": return M;
856
- case "CNAME": return M;
857
- case "DNAME": return M;
858
- case "TXT": return ye;
859
- case "NULL": return be;
860
- case "AAAA": return I;
861
- case "SRV": return N;
862
- case "HINFO": return j;
863
- case "CAA": return P;
854
+ case "A": return ye;
855
+ case "PTR": return F;
856
+ case "CNAME": return F;
857
+ case "DNAME": return F;
858
+ case "TXT": return M;
859
+ case "NULL": return N;
860
+ case "AAAA": return be;
861
+ case "SRV": return I;
862
+ case "HINFO": return P;
863
+ case "CAA": return L;
864
864
  case "NS": return A;
865
- case "SOA": return ve;
866
- case "MX": return F;
867
- case "OPT": return R;
868
- case "DNSKEY": return z;
869
- case "RRSIG": return B;
870
- case "RP": return V;
871
- case "NSEC": return U;
872
- case "NSEC3": return W;
873
- case "DS": return G;
865
+ case "SOA": return j;
866
+ case "MX": return ve;
867
+ case "OPT": return z;
868
+ case "DNSKEY": return B;
869
+ case "RRSIG": return V;
870
+ case "RP": return H;
871
+ case "NSEC": return W;
872
+ case "NSEC3": return G;
873
+ case "DS": return K;
874
874
  }
875
875
  return k;
876
876
  }
877
- var K = T({
877
+ var q = T({
878
878
  encode(e, t, n) {
879
- t ||= new Uint8Array(K.encodingLength(e)), n ||= 0;
879
+ t ||= new Uint8Array(q.encodingLength(e)), n ||= 0;
880
880
  let r = n;
881
881
  if (E.encode(e.name, t, n), n += E.encode.bytes, C(t, f(e.type), n), e.type.toUpperCase() === "OPT") {
882
882
  if (e.name !== ".") throw Error("OPT name must be root.");
883
- C(t, e.udpPayloadSize || 4096, n + 2), t[n + 4] = e.extendedRcode || 0, t[n + 5] = e.ednsVersion || 0, C(t, e.flags || 0, n + 6), n += 8, R.encode(e.options || [], t, n), n += R.encode.bytes;
883
+ C(t, e.udpPayloadSize || 4096, n + 2), t[n + 4] = e.extendedRcode || 0, t[n + 5] = e.ednsVersion || 0, C(t, e.flags || 0, n + 6), n += 8, z.encode(e.options || [], t, n), n += z.encode.bytes;
884
884
  } else {
885
885
  let r = te(e.class === void 0 ? "IN" : e.class);
886
886
  e.flush && (r |= me), C(t, r, n + 2), S(t, e.ttl || 0, n + 4), n += 8;
887
- let i = Ce(e.type);
887
+ let i = Se(e.type);
888
888
  i.encode(e.data, t, n), n += i.encode.bytes;
889
889
  }
890
- return K.encode.bytes = n - r, t;
890
+ return q.encode.bytes = n - r, t;
891
891
  },
892
892
  decode(e, t) {
893
893
  t ||= 0;
894
894
  let n = {}, r = t;
895
- if (n.name = E.decode(e, t), t += E.decode.bytes, n.type = d(x(e, t)), n.type === "OPT") n.udpPayloadSize = x(e, t + 2), n.extendedRcode = e[t + 4], n.ednsVersion = e[t + 5], n.flags = x(e, t + 6), n.flag_do = (n.flags >> 15 & 1) == 1, n.options = R.decode(e, t + 8), t += 8 + R.decode.bytes;
895
+ if (n.name = E.decode(e, t), t += E.decode.bytes, n.type = d(x(e, t)), n.type === "OPT") n.udpPayloadSize = x(e, t + 2), n.extendedRcode = e[t + 4], n.ednsVersion = e[t + 5], n.flags = x(e, t + 6), n.flag_do = (n.flags >> 15 & 1) == 1, n.options = z.decode(e, t + 8), t += 8 + z.decode.bytes;
896
896
  else {
897
897
  let r = x(e, t + 2);
898
898
  n.ttl = b(e, t + 4), n.class = m(r & he), n.flush = !!(r & me);
899
- let i = Ce(n.type);
899
+ let i = Se(n.type);
900
900
  n.data = i.decode(e, t + 8), t += 8 + i.decode.bytes;
901
901
  }
902
- return K.decode.bytes = t - r, n;
902
+ return q.decode.bytes = t - r, n;
903
903
  },
904
904
  encodingLength(e) {
905
905
  let t = e.data !== null && e.data !== void 0 ? e.data : e.options;
906
- return E.encodingLength(e.name) + 8 + Ce(e.type).encodingLength(t);
906
+ return E.encodingLength(e.name) + 8 + Se(e.type).encodingLength(t);
907
907
  }
908
- }), q = T({
908
+ }), J = T({
909
909
  encode(e, t, n) {
910
- t ||= new Uint8Array(q.encodingLength(e)), n ||= 0;
910
+ t ||= new Uint8Array(J.encodingLength(e)), n ||= 0;
911
911
  let r = n;
912
- return E.encode(e.name, t, n), n += E.encode.bytes, C(t, f(e.type), n), n += 2, C(t, te(e.class === void 0 ? "IN" : e.class), n), n += 2, q.encode.bytes = n - r, e;
912
+ return E.encode(e.name, t, n), n += E.encode.bytes, C(t, f(e.type), n), n += 2, C(t, te(e.class === void 0 ? "IN" : e.class), n), n += 2, J.encode.bytes = n - r, e;
913
913
  },
914
914
  decode(e, t) {
915
915
  t ||= 0;
916
916
  let n = t, r = {};
917
- return r.name = E.decode(e, t), t += E.decode.bytes, r.type = d(x(e, t)), t += 2, r.class = m(x(e, t)), t += 2, r.class & ge && (r.class &= _e), q.decode.bytes = t - n, r;
917
+ return r.name = E.decode(e, t), t += E.decode.bytes, r.type = d(x(e, t)), t += 2, r.class = m(x(e, t)), t += 2, r.class & ge && (r.class &= _e), J.decode.bytes = t - n, r;
918
918
  },
919
919
  encodingLength(e) {
920
920
  return E.encodingLength(e.name) + 4;
921
921
  }
922
- }), J = {
922
+ }), Y = {
923
923
  encode: function(e, t, n) {
924
924
  let r = !t;
925
- r && (t = new Uint8Array(Oe(e))), n ||= 0;
925
+ r && (t = new Uint8Array(De(e))), n ||= 0;
926
926
  let i = n;
927
- return e.questions ||= [], e.answers ||= [], e.authorities ||= [], e.additionals ||= [], O.encode(e, t, n), n += O.encode.bytes, n = Z(e.questions, q, t, n), n = Z(e.answers, K, t, n), n = Z(e.authorities, K, t, n), n = Z(e.additionals, K, t, n), J.encode.bytes = n - i, r && Ee.bytes !== t.length ? t.slice(0, Ee.bytes) : t;
927
+ return e.questions ||= [], e.answers ||= [], e.authorities ||= [], e.additionals ||= [], O.encode(e, t, n), n += O.encode.bytes, n = Z(e.questions, J, t, n), n = Z(e.answers, q, t, n), n = Z(e.authorities, q, t, n), n = Z(e.additionals, q, t, n), Y.encode.bytes = n - i, r && Ee.bytes !== t.length ? t.slice(0, Ee.bytes) : t;
928
928
  },
929
929
  decode: function(e, t) {
930
930
  t ||= 0;
931
931
  let n = t, r = O.decode(e, t);
932
- return t += O.decode.bytes, t = ke(r.questions, q, e, t), t = ke(r.answers, K, e, t), t = ke(r.authorities, K, e, t), t = ke(r.additionals, K, e, t), J.decode.bytes = t - n, r;
932
+ return t += O.decode.bytes, t = Oe(r.questions, J, e, t), t = Oe(r.answers, q, e, t), t = Oe(r.authorities, q, e, t), t = Oe(r.additionals, q, e, t), Y.decode.bytes = t - n, r;
933
933
  },
934
934
  encodingLength: function(e) {
935
- return O.encodingLength(e) + X(e.questions || [], q) + X(e.answers || [], K) + X(e.authorities || [], K) + X(e.additionals || [], K);
935
+ return O.encodingLength(e) + X(e.questions || [], J) + X(e.answers || [], q) + X(e.authorities || [], q) + X(e.additionals || [], q);
936
936
  }
937
937
  };
938
- J.encode.bytes = 0, J.decode.bytes = 0;
939
- function Y(e, t) {
938
+ Y.encode.bytes = 0, Y.decode.bytes = 0;
939
+ function Ce(e, t) {
940
940
  if (e.questions) throw Error("Only one .question object expected instead of a .questions array!");
941
941
  let n = Object.assign({ type: t }, e);
942
942
  return n.question && (n.questions = [n.question], delete n.question), n;
943
943
  }
944
944
  var we = {
945
945
  encode: function(e, t, n) {
946
- return t = J.encode(Y(e, "query"), t, n), we.encode.bytes = J.encode.bytes, t;
946
+ return t = Y.encode(Ce(e, "query"), t, n), we.encode.bytes = Y.encode.bytes, t;
947
947
  },
948
948
  decode: function(e, t) {
949
- let n = J.decode(e, t);
950
- return we.decode.bytes = J.decode.bytes, n.questions && (n.question = n.questions[0], delete n.questions), n;
949
+ let n = Y.decode(e, t);
950
+ return we.decode.bytes = Y.decode.bytes, n.questions && (n.question = n.questions[0], delete n.questions), n;
951
951
  },
952
952
  encodingLength: function(e) {
953
- return J.encodingLength(Y(e, "query"));
953
+ return Y.encodingLength(Ce(e, "query"));
954
954
  }
955
955
  };
956
956
  we.encode.bytes = 0, we.decode.bytes = 0;
957
957
  var Te = {
958
958
  encode: function(e, t, n) {
959
- return t = J.encode(Y(e, "response"), t, n), Te.encode.bytes = J.encode.bytes, t;
959
+ return t = Y.encode(Ce(e, "response"), t, n), Te.encode.bytes = Y.encode.bytes, t;
960
960
  },
961
961
  decode: function(e, t) {
962
- let n = J.decode(e, t);
963
- return Te.decode.bytes = J.decode.bytes, n.questions && (n.question = n.questions[0], delete n.questions), n;
962
+ let n = Y.decode(e, t);
963
+ return Te.decode.bytes = Y.decode.bytes, n.questions && (n.question = n.questions[0], delete n.questions), n;
964
964
  },
965
965
  encodingLength: function(e) {
966
- return J.encodingLength(Y(e, "response"));
966
+ return Y.encodingLength(Ce(e, "response"));
967
967
  }
968
968
  };
969
969
  Te.encode.bytes = 0, Te.decode.bytes = 0;
970
- var Ee = J.encode, De = J.decode, Oe = J.encodingLength;
970
+ var Ee = Y.encode;
971
+ Y.decode;
972
+ var De = Y.encodingLength;
971
973
  function X(e, t) {
972
974
  let n = 0;
973
975
  for (let r = 0; r < e.length; r++) n += t.encodingLength(e[r]);
@@ -977,11 +979,11 @@ function Z(e, t, n, r) {
977
979
  for (let i = 0; i < e.length; i++) t.encode(e[i], n, r), r += t.encode.bytes;
978
980
  return r;
979
981
  }
980
- function ke(e, t, n, r) {
982
+ function Oe(e, t, n, r) {
981
983
  for (let i = 0; i < e.length; i++) e[i] = t.decode(n, r), r += t.decode.bytes;
982
984
  return r;
983
985
  }
984
- function Ae(e, t, n, r) {
986
+ function ke(e, t, n, r) {
985
987
  if (t.length !== 64) throw Error(`Charset needs to be 64 characters long! (${t.length})`);
986
988
  let i = /* @__PURE__ */ new Uint8Array(256), a = /* @__PURE__ */ new Uint8Array(64);
987
989
  for (let e = 0; e < 64; e += 1) {
@@ -1030,16 +1032,16 @@ function Ae(e, t, n, r) {
1030
1032
  };
1031
1033
  return s;
1032
1034
  }
1033
- Ae("base64", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", "=", 1);
1034
- var je = Ae("base64-url", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", "=", 2), Me = /* @__PURE__ */ e(((e, t) => {
1035
+ ke("base64", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", "=", 1);
1036
+ var Ae = ke("base64-url", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", "=", 2), je = /* @__PURE__ */ e(((e, t) => {
1035
1037
  t.exports = {};
1036
- })), Q = typeof global < "u" ? global.AbortError : typeof window < "u" ? window.AbortError : null;
1037
- Q ||= class extends Error {
1038
+ })), Me = typeof global < "u" ? global.AbortError : typeof window < "u" ? window.AbortError : null;
1039
+ Me ||= class extends Error {
1038
1040
  constructor(e = "Request aborted.") {
1039
1041
  super(e);
1040
1042
  }
1041
- }, Q.prototype.name = "AbortError", Q.prototype.code = "ABORT_ERR";
1042
- var Ne = typeof globalThis < "u" && globalThis.URL || Me().URL, $ = class extends Error {
1043
+ }, Me.prototype.name = "AbortError", Me.prototype.code = "ABORT_ERR";
1044
+ var Ne = typeof globalThis < "u" && globalThis.URL || je().URL, Q = class extends Error {
1043
1045
  constructor(e, t, n) {
1044
1046
  super("status=" + t + " while requesting " + e + " [" + n + "]"), this.uri = e, this.status = t, this.method = n;
1045
1047
  }
@@ -1053,7 +1055,7 @@ var Ne = typeof globalThis < "u" && globalThis.URL || Me().URL, $ = class extend
1053
1055
  };
1054
1056
  }
1055
1057
  };
1056
- $.prototype.name = "HTTPStatusError", $.prototype.code = "HTTP_STATUS";
1058
+ Q.prototype.name = "HTTPStatusError", Q.prototype.code = "HTTP_STATUS";
1057
1059
  var Pe = class extends Error {
1058
1060
  constructor(e, t) {
1059
1061
  super(e), this.cause = t;
@@ -1227,16 +1229,13 @@ function Qe(e) {
1227
1229
  //#region node_modules/dns-query/lib.browser.mjs
1228
1230
  var $e = "application/dns-message";
1229
1231
  function et() {}
1230
- function tt() {
1231
- throw Error("Only \"doh\" endpoints are supported in the browser");
1232
- }
1233
- async function nt(e, t, n, r) {
1232
+ async function tt(e, t, n, r) {
1234
1233
  let i = t ? t.localStoragePrefix + t.name : null;
1235
1234
  if (i) try {
1236
1235
  let e = JSON.parse(localStorage.getItem(i));
1237
1236
  if (e && e.time > t.maxTime) return e;
1238
1237
  } catch {}
1239
- let { data: a } = await rt(e, "GET", null, n, r), o = {
1238
+ let { data: a } = await nt(e, "GET", null, n, r), o = {
1240
1239
  time: Date.now(),
1241
1240
  data: JSON.parse(_(a))
1242
1241
  };
@@ -1247,10 +1246,10 @@ async function nt(e, t, n, r) {
1247
1246
  }
1248
1247
  return o;
1249
1248
  }
1250
- function rt(e, t, n, r, i) {
1249
+ function nt(e, t, n, r, i) {
1251
1250
  return new Promise((a, o) => {
1252
1251
  let s = new Ne(e);
1253
- t === "GET" && n && (s.search = "?dns=" + je.decode(n));
1252
+ t === "GET" && n && (s.search = "?dns=" + Ae.decode(n));
1254
1253
  let c = s.toString(), l = new XMLHttpRequest();
1255
1254
  l.open(t, c, !0), l.setRequestHeader("Accept", $e), t === "POST" && l.setRequestHeader("Content-Type", $e), l.responseType = "arraybuffer", l.timeout = r, l.ontimeout = u, l.onreadystatechange = f, l.onerror = ee, l.onload = d, t === "POST" ? l.send(n) : l.send(), i && i.addEventListener("abort", m);
1256
1255
  function u() {
@@ -1260,7 +1259,7 @@ function rt(e, t, n, r, i) {
1260
1259
  } catch {}
1261
1260
  }
1262
1261
  function d() {
1263
- if (l.status !== 200) p(new $(c, l.status, t));
1262
+ if (l.status !== 200) p(new Q(c, l.status, t));
1264
1263
  else {
1265
1264
  let e;
1266
1265
  if (typeof l.response == "string") e = g(l.response);
@@ -1272,7 +1271,7 @@ function rt(e, t, n, r, i) {
1272
1271
  }
1273
1272
  function f() {
1274
1273
  if (l.readyState > 1 && l.status !== 200 && l.status !== 0) {
1275
- p(new $(c, l.status, t));
1274
+ p(new Q(c, l.status, t));
1276
1275
  try {
1277
1276
  l.abort();
1278
1277
  } catch {}
@@ -1288,25 +1287,22 @@ function rt(e, t, n, r, i) {
1288
1287
  });
1289
1288
  };
1290
1289
  function ee() {
1291
- p(l.status === 200 ? /* @__PURE__ */ Error("Inexplicable XHR Error") : new $(c, l.status, t));
1290
+ p(l.status === 200 ? /* @__PURE__ */ Error("Inexplicable XHR Error") : new Q(c, l.status, t));
1292
1291
  }
1293
1292
  function m() {
1294
- p(new Q());
1293
+ p(new Me());
1295
1294
  try {
1296
1295
  l.abort();
1297
1296
  } catch {}
1298
1297
  }
1299
1298
  });
1300
1299
  }
1301
- function it(e, t, n, r, i) {
1302
- return rt(e, t, n, r, i);
1303
- }
1304
- function at(e) {
1300
+ function rt(e) {
1305
1301
  return e.filter((e) => e.cors || e.endpoint.cors);
1306
1302
  }
1307
1303
  //#endregion
1308
1304
  //#region node_modules/dns-query/resolvers.mjs
1309
- var ot = {
1305
+ var it = {
1310
1306
  data: [
1311
1307
  {
1312
1308
  name: "adfree.usableprivacy.net",
@@ -2506,8 +2502,8 @@ var ot = {
2506
2502
  };
2507
2503
  //#endregion
2508
2504
  //#region node_modules/dns-query/index.mjs
2509
- function st(e) {
2510
- let t = e.time === null || e.time === void 0 ? Date.now() : e.time, n = at(e.data.map((e) => (e.endpoint = Qe(Object.assign({ name: e.name }, e.endpoint)), e))), r = n.map((e) => e.endpoint);
2505
+ function at(e) {
2506
+ let t = e.time === null || e.time === void 0 ? Date.now() : e.time, n = rt(e.data.map((e) => (e.endpoint = Qe(Object.assign({ name: e.name }, e.endpoint)), e))), r = n.map((e) => e.endpoint);
2511
2507
  return {
2512
2508
  data: {
2513
2509
  resolvers: n,
@@ -2518,31 +2514,8 @@ function st(e) {
2518
2514
  time: t
2519
2515
  };
2520
2516
  }
2521
- var ct = st(ot);
2522
- function lt(e) {
2523
- let t = Object.assign({ type: "query" }, e);
2524
- return delete t.question, t.questions = [], e.question && t.questions.push(e.question), t;
2525
- }
2526
- function ut(e, t, n, r) {
2527
- return r && r.aborted ? Promise.reject(new Q()) : e.protocol === "udp4:" || e.protocol === "udp6:" ? tt(e, t, n, r) : dt(e, t, n, r);
2528
- }
2529
- function dt(e, t, n, r) {
2530
- return it(e.url, e.method, Ee(Object.assign({ flags: 256 }, t)), n, r).then(function(e) {
2531
- let t = e.data, n = e.response, r = e.error;
2532
- if (r === void 0) {
2533
- if (t.length === 0) r = new Pe("Empty.");
2534
- else try {
2535
- let e = De(t);
2536
- return e.response = n, e;
2537
- } catch (e) {
2538
- r = new Pe("Invalid packet (cause=" + e.message + ")", e);
2539
- }
2540
- }
2541
- throw Object.assign(r, { response: n });
2542
- });
2543
- }
2544
- var ft = new Ne("https://martinheidegger.github.io/dns-query/resolvers.json");
2545
- function pt(e) {
2517
+ var ot = at(it), st = new Ne("https://martinheidegger.github.io/dns-query/resolvers.json");
2518
+ function ct(e) {
2546
2519
  return /^@/.test(e);
2547
2520
  }
2548
2521
  new class {
@@ -2550,36 +2523,36 @@ new class {
2550
2523
  this.opts = Object.assign({
2551
2524
  timeout: 5e3,
2552
2525
  update: !0,
2553
- updateURL: ft,
2526
+ updateURL: st,
2554
2527
  persist: !1,
2555
2528
  localStoragePrefix: "dnsquery_",
2556
2529
  maxAge: 3e5
2557
2530
  }, e), this._dataP = null;
2558
2531
  }
2559
2532
  _data(e, t) {
2560
- return !e && this._dataP !== null ? this._dataP.then((e) => e.time < Date.now() - this.opts.maxAge ? this._data(!0, e) : e) : (this._dataP = this.opts.update ? nt(this.opts.updateURL, this.opts.persist ? {
2533
+ return !e && this._dataP !== null ? this._dataP.then((e) => e.time < Date.now() - this.opts.maxAge ? this._data(!0, e) : e) : (this._dataP = this.opts.update ? tt(this.opts.updateURL, this.opts.persist ? {
2561
2534
  name: "resolvers.json",
2562
2535
  localStoragePrefix: this.opts.localStoragePrefix,
2563
2536
  maxTime: Date.now() - this.opts.maxAge
2564
- } : null, this.opts.timeout).then((e) => st({
2537
+ } : null, this.opts.timeout).then((e) => at({
2565
2538
  data: e.data.resolvers,
2566
2539
  time: e.time
2567
- })).catch(() => t || ct) : Promise.resolve(ct), this._dataP);
2540
+ })).catch(() => t || ot) : Promise.resolve(ot), this._dataP);
2568
2541
  }
2569
2542
  data() {
2570
2543
  return this._data(!1).then((e) => e.data);
2571
2544
  }
2572
2545
  endpoints(e) {
2573
2546
  if (e == null) return this.data().then((e) => e.endpoints);
2574
- if (e === "doh" && (e = vt), e === "dns" && (e = yt), typeof e == "function") return this.data().then((t) => t.endpoints.filter(e));
2547
+ if (e === "doh" && (e = lt), e === "dns" && (e = ut), typeof e == "function") return this.data().then((t) => t.endpoints.filter(e));
2575
2548
  if (typeof e == "string" || typeof e[Symbol.iterator] != "function") return Promise.reject(/* @__PURE__ */ Error(`Endpoints (${e}) needs to be iterable (array).`));
2576
- if (e = Array.from(e).filter(Boolean), e.findIndex(pt) === -1) try {
2549
+ if (e = Array.from(e).filter(Boolean), e.findIndex(ct) === -1) try {
2577
2550
  return Promise.resolve(e.map(Qe));
2578
2551
  } catch (e) {
2579
2552
  return Promise.reject(e);
2580
2553
  }
2581
2554
  return this.data().then((t) => e.map((e) => {
2582
- if (pt(e)) {
2555
+ if (ct(e)) {
2583
2556
  let n = t.endpointByName[e.substring(1)];
2584
2557
  if (!n) throw Error(`Endpoint ${e} is not known.`);
2585
2558
  return n;
@@ -2588,36 +2561,61 @@ new class {
2588
2561
  }));
2589
2562
  }
2590
2563
  }();
2591
- function mt(e) {
2592
- return typeof e != "object" || !e ? !1 : typeof e.then == "function";
2564
+ function lt(e) {
2565
+ return e.protocol === "https:" || e.protocol === "http:";
2593
2566
  }
2594
- function ht(e) {
2595
- return mt(e) ? e : Promise.resolve(e);
2567
+ function ut(e) {
2568
+ return e.protocol === "udp4:" || e.protocol === "udp6:";
2596
2569
  }
2597
- function gt(e, t) {
2598
- return t = Object.assign({
2599
- retries: 5,
2600
- timeout: 3e4
2601
- }, t), e.question ? ht(t.endpoints).then((n) => {
2602
- if (!Array.isArray(n) || n.length === 0) throw Error("No endpoints defined to lookup dns records.");
2603
- return _t(n.map(Qe), lt(e), t);
2604
- }).then((e) => (e.question = e.questions[0], delete e.questions, e)) : Promise.reject(/* @__PURE__ */ Error("To request data you need to specify a .question!"));
2570
+ //#endregion
2571
+ //#region src/crypto.js
2572
+ var $ = {
2573
+ name: "AES-GCM",
2574
+ length: 256,
2575
+ tagLength: 128,
2576
+ ivLength: 12,
2577
+ key: "Hello, World!"
2578
+ }, dt = new TextEncoder(), ft = new TextDecoder(), pt;
2579
+ function mt() {
2580
+ return pt ||= crypto.subtle.digest("SHA-256", dt.encode($.key)).then((e) => crypto.subtle.importKey("raw", e, { name: $.name }, !1, ["encrypt", "decrypt"])), pt;
2605
2581
  }
2606
- function _t(e, t, n) {
2607
- let r = e.length === 1 ? e[0] : e[Math.floor(Math.random() * e.length) % e.length];
2608
- return ut(r, t, n.timeout, n.signal).then((e) => (e.endpoint = r.toString(), e), (i) => {
2609
- if (i.name === "AbortError" || n.retries === 0) throw i.endpoint = r.toString(), i;
2610
- return n.retries > 0 && --n.retries, _t(e, t, n);
2611
- });
2582
+ function ht(e) {
2583
+ return Array.from(e, (e) => e.toString(16).padStart(2, "0")).join("");
2612
2584
  }
2613
- function vt(e) {
2614
- return e.protocol === "https:" || e.protocol === "http:";
2585
+ function gt(e) {
2586
+ if (e.length % 2 != 0) throw Error("Invalid ciphertext");
2587
+ let t = new Uint8Array(e.length / 2);
2588
+ for (let n = 0; n < t.length; n++) {
2589
+ let r = Number.parseInt(e.slice(n * 2, n * 2 + 2), 16);
2590
+ if (Number.isNaN(r)) throw Error("Invalid ciphertext");
2591
+ t[n] = r;
2592
+ }
2593
+ return t;
2615
2594
  }
2616
- function yt(e) {
2617
- return e.protocol === "udp4:" || e.protocol === "udp6:";
2595
+ async function _t(e) {
2596
+ let t = crypto.getRandomValues(new Uint8Array($.ivLength)), n = await crypto.subtle.encrypt({
2597
+ name: $.name,
2598
+ iv: t,
2599
+ tagLength: $.tagLength
2600
+ }, await mt(), dt.encode(e)), r = new Uint8Array($.ivLength + n.byteLength);
2601
+ return r.set(t), r.set(new Uint8Array(n), $.ivLength), ht(r);
2602
+ }
2603
+ async function vt(e) {
2604
+ let t = gt(e);
2605
+ if (t.length <= $.ivLength) throw Error("Invalid ciphertext");
2606
+ let n = await crypto.subtle.decrypt({
2607
+ name: $.name,
2608
+ iv: t.slice(0, $.ivLength),
2609
+ tagLength: $.tagLength
2610
+ }, await mt(), t.slice($.ivLength));
2611
+ return ft.decode(n);
2618
2612
  }
2619
2613
  //#endregion
2620
2614
  //#region src/index.js
2621
- console.log("Hello World Custom Library!");
2615
+ (async () => {
2616
+ let e = await _t("Fizz Buzz");
2617
+ console.log("Encrypted:", e);
2618
+ let t = await vt(e);
2619
+ console.log("Decrypted:", t);
2620
+ })();
2622
2621
  //#endregion
2623
- export { gt as query };
package/xasdd6.umd.cjs CHANGED
@@ -1,4 +1,4 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.xasdd6={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),n=/^(\d{1,3}\.){3,3}\d{1,3}$/,r=4,i=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,a=16,o={name:`v4`,size:r,isFormat:e=>n.test(e),encode(e,t,n){n=~~n,t||=new Uint8Array(n+r);let i=e.length,a=0;for(let r=0;r<i;){let i=e.charCodeAt(r++);i===46?(t[n++]=a,a=0):a=a*10+(i-48)}return t[n]=a,t},decode(e,t){return t=~~t,`${e[t++]}.${e[t++]}.${e[t++]}.${e[t]}`}},s={name:`v6`,size:a,isFormat:e=>e.length>0&&i.test(e),encode(e,t,n){n=~~n;let r=n+a,i=-1,o=0,s=0,c=!0,l=!1;t||=new Uint8Array(n+a);for(let a=0;a<e.length;a++){let u=e.charCodeAt(a);u===58?(c?i===-1?n<r&&(i=n):(n<r&&(t[n]=0),n<r-1&&(t[n+1]=0),n+=2):(l===!0?(n<r&&(t[n]=s),n++):(n<r&&(t[n]=o>>8),n<r-1&&(t[n+1]=o&255),n+=2),o=0,s=0),c=!0,l=!1):u===46?(n<r&&(t[n]=s),n++,s=0,o=0,c=!1,l=!0):(c=!1,u>=97?u-=87:u>=65?u-=55:(u-=48,s=s*10+u),o=(o<<4)+u)}if(c===!1)l===!0?(n<r&&(t[n]=s),n++):(n<r&&(t[n]=o>>8),n<r-1&&(t[n+1]=o&255),n+=2);else if(i===0)n<r&&(t[n]=0),n<r-1&&(t[n+1]=0),n+=2;else if(i!==-1){n+=2;for(let e=Math.min(n-1,r-1);e>=i+2;e--)t[e]=t[e-2];t[i]=0,t[i+1]=0,i=n}if(i!==n&&i!==-1)for(n>r-2&&(n=r-2);r>i;)t[--r]=n<r&&n>i?t[--n]:0;else for(;n<r;)t[n++]=0;return t},decode(e,t){t=~~t;let n=``;for(let r=0;r<a;r+=2)r!==0&&(n+=`:`),n+=(e[t+r]<<8|e[t+r+1]).toString(16);return n.replace(/(^|:)0(:0)*:0(:|$)/,`$1::$3`).replace(/:{3,4}/,`::`)}};function c(e){if(o.isFormat(e))return o.size;if(s.isFormat(e))return s.size;throw Error(`Invalid ip address: ${e}`)}function l(e){return c(e)===o.size?1:2}function u(e,t,n){n=~~n;let r=c(e);return typeof t==`function`&&(t=t(n+r)),r===o.size?o.encode(e,t,n):s.encode(e,t,n)}function ee(e,t,n){if(t=~~t,n||=e.length-t,n===o.size)return o.decode(e,t,n);if(n===s.size)return s.decode(e,t,n);throw Error(`Invalid buffer size needs to be ${o.size} for v4 or ${s.size} for v6.`)}function d(e){switch(e){case 1:return`A`;case 10:return`NULL`;case 28:return`AAAA`;case 18:return`AFSDB`;case 42:return`APL`;case 257:return`CAA`;case 60:return`CDNSKEY`;case 59:return`CDS`;case 37:return`CERT`;case 5:return`CNAME`;case 49:return`DHCID`;case 32769:return`DLV`;case 39:return`DNAME`;case 48:return`DNSKEY`;case 43:return`DS`;case 55:return`HIP`;case 13:return`HINFO`;case 45:return`IPSECKEY`;case 25:return`KEY`;case 36:return`KX`;case 29:return`LOC`;case 15:return`MX`;case 35:return`NAPTR`;case 2:return`NS`;case 47:return`NSEC`;case 50:return`NSEC3`;case 51:return`NSEC3PARAM`;case 12:return`PTR`;case 46:return`RRSIG`;case 17:return`RP`;case 24:return`SIG`;case 6:return`SOA`;case 99:return`SPF`;case 33:return`SRV`;case 44:return`SSHFP`;case 32768:return`TA`;case 249:return`TKEY`;case 52:return`TLSA`;case 250:return`TSIG`;case 16:return`TXT`;case 252:return`AXFR`;case 251:return`IXFR`;case 41:return`OPT`;case 255:return`ANY`}return`UNKNOWN_`+e}function f(e){switch(e.toUpperCase()){case`A`:return 1;case`NULL`:return 10;case`AAAA`:return 28;case`AFSDB`:return 18;case`APL`:return 42;case`CAA`:return 257;case`CDNSKEY`:return 60;case`CDS`:return 59;case`CERT`:return 37;case`CNAME`:return 5;case`DHCID`:return 49;case`DLV`:return 32769;case`DNAME`:return 39;case`DNSKEY`:return 48;case`DS`:return 43;case`HIP`:return 55;case`HINFO`:return 13;case`IPSECKEY`:return 45;case`KEY`:return 25;case`KX`:return 36;case`LOC`:return 29;case`MX`:return 15;case`NAPTR`:return 35;case`NS`:return 2;case`NSEC`:return 47;case`NSEC3`:return 50;case`NSEC3PARAM`:return 51;case`PTR`:return 12;case`RRSIG`:return 46;case`RP`:return 17;case`SIG`:return 24;case`SOA`:return 6;case`SPF`:return 99;case`SRV`:return 33;case`SSHFP`:return 44;case`TA`:return 32768;case`TKEY`:return 249;case`TLSA`:return 52;case`TSIG`:return 250;case`TXT`:return 16;case`AXFR`:return 252;case`IXFR`:return 251;case`OPT`:return 41;case`ANY`:return 255;case`*`:return 255}return e.toUpperCase().startsWith(`UNKNOWN_`)?parseInt(e.slice(8)):0}function te(e){switch(e){case 0:return`NOERROR`;case 1:return`FORMERR`;case 2:return`SERVFAIL`;case 3:return`NXDOMAIN`;case 4:return`NOTIMP`;case 5:return`REFUSED`;case 6:return`YXDOMAIN`;case 7:return`YXRRSET`;case 8:return`NXRRSET`;case 9:return`NOTAUTH`;case 10:return`NOTZONE`;case 11:return`RCODE_11`;case 12:return`RCODE_12`;case 13:return`RCODE_13`;case 14:return`RCODE_14`;case 15:return`RCODE_15`}return`RCODE_`+e}function ne(e){switch(e){case 0:return`QUERY`;case 1:return`IQUERY`;case 2:return`STATUS`;case 3:return`OPCODE_3`;case 4:return`NOTIFY`;case 5:return`UPDATE`;case 6:return`OPCODE_6`;case 7:return`OPCODE_7`;case 8:return`OPCODE_8`;case 9:return`OPCODE_9`;case 10:return`OPCODE_10`;case 11:return`OPCODE_11`;case 12:return`OPCODE_12`;case 13:return`OPCODE_13`;case 14:return`OPCODE_14`;case 15:return`OPCODE_15`}return`OPCODE_`+e}function re(e){switch(e){case 1:return`IN`;case 2:return`CS`;case 3:return`CH`;case 4:return`HS`;case 255:return`ANY`}return`UNKNOWN_`+e}function ie(e){switch(e.toUpperCase()){case`IN`:return 1;case`CS`:return 2;case`CH`:return 3;case`HS`:return 4;case`ANY`:return 255}return 0}function ae(e){switch(e){case 1:return`LLQ`;case 2:return`UL`;case 3:return`NSID`;case 5:return`DAU`;case 6:return`DHU`;case 7:return`N3U`;case 8:return`CLIENT_SUBNET`;case 9:return`EXPIRE`;case 10:return`COOKIE`;case 11:return`TCP_KEEPALIVE`;case 12:return`PADDING`;case 13:return`CHAIN`;case 14:return`KEY_TAG`;case 26946:return`DEVICEID`}return e<0?null:`OPTION_${e}`}function oe(e){if(typeof e==`number`)return e;if(!e)return-1;switch(e.toUpperCase()){case`OPTION_0`:return 0;case`LLQ`:return 1;case`UL`:return 2;case`NSID`:return 3;case`OPTION_4`:return 4;case`DAU`:return 5;case`DHU`:return 6;case`N3U`:return 7;case`CLIENT_SUBNET`:return 8;case`EXPIRE`:return 9;case`COOKIE`:return 10;case`TCP_KEEPALIVE`:return 11;case`PADDING`:return 12;case`CHAIN`:return 13;case`KEY_TAG`:return 14;case`DEVICEID`:return 26946;case`OPTION_65535`:return 65535}let t=e.match(/_(\d+)$/);return t?parseInt(t[1],10):-1}var se=55296,p=56320;function ce(e){let t=0,n=e.length;for(let r=0;r<n;r+=1){let i=e.charCodeAt(r);if(i<=127)t+=1;else if(i<=2047)t+=2;else if((i&63488)!==se)t+=3;else{let a=r+1;a===n||i>=p?t+=3:(e.charCodeAt(a)&64512)===p?(r=a,t+=4):t+=3}}return t}function m(e,t,n){let r=e.length;n??=0,t===void 0&&(t=new Uint8Array(ce(e)+n));let i=n;for(let n=0;n<r;n+=1){let a=e.charCodeAt(n);if(a<=127)t[i++]=a;else if(a<=2047)t[i++]=192|(a&1984)>>6,t[i++]=128|a&63;else if((a&63488)!==se)t[i++]=224|(a&61440)>>12,t[i++]=128|(a&4032)>>6,t[i++]=128|a&63;else{let o=n+1;if(o===r||a>=p)t[i++]=239,t[i++]=191,t[i++]=189;else{let r=e.charCodeAt(o);(r&64512)===p?(n=o,a=65536|(a&1023)<<10|r&1023,t[i++]=240|(a&1835008)>>18,t[i++]=128|(a&258048)>>12,t[i++]=128|(a&4032)>>6,t[i++]=128|a&63):(t[i++]=239,t[i++]=191,t[i++]=189)}}}return m.bytes=i-n,t}m.bytes=0;function h(e,t,n){let r=``;t??=0,n??=e.length;for(let i=t;i<n;){let t=e[i++],n;if(t<=128)n=t;else if(t>191&&t<224)n=(t&31)<<6|e[i++]&63;else if(t>239&&t<365){n=((t&7)<<18|(e[i++]&63)<<12|(e[i++]&63)<<6|e[i++]&63)-65536;let a=se|n>>10&1023;r+=String.fromCharCode(a),n=p|n&1023}else n=(t&15)<<12|(e[i++]&63)<<6|e[i++]&63;r+=String.fromCharCode(n)}return h.bytes=n-t,r}h.bytes=0;var g=e=>e instanceof Uint8Array;function _(e){return typeof e==`string`?ce(e):e.byteLength}function le(e){return e instanceof Uint8Array?e:Array.isArray(e)?new Uint8Array(e):m(e)}function ue(e,t,n){if(typeof t!=`string`)throw Error(`unknown input type`);return m(t,e,n),m.bytes}var de=2**24,fe=2**16,pe=256,v=(e,t)=>e[t]*de+e[t+1]*fe+e[t+2]*pe+e[t+3],y=(e,t)=>e[t]<<8|e[t+1],b=(e,t,n)=>(t=+t,e[n+3]=t,t>>>=8,e[n+2]=t,t>>>=8,e[n+1]=t,t>>>=8,e[n]=t,n+4),x=(e,t,n)=>(e[n]=t>>8,e[n+1]=t&255,n+2);function S(e,t,n,r,i){return n<0&&(r-=n,n=0),r<0&&(r=0),i<0?new Uint8Array:n>=t.length||r>=i?0:me(e,t,n,r,i)}function me(e,t,n,r,i){i-r>t.length-n&&(i=r+t.length-n);let a=i-r,o=e.length-r;return a>o&&(a=o),(r!==0||i<e.length)&&(e=new Uint8Array(e.buffer,e.byteOffset+r,a)),t.set(e,n),a}var he=0,ge=32768,_e=32768,ve=-32769,ye=32768,be=-32769;function C({bytes:e=0,encode:t,decode:n,encodingLength:r}){return t.bytes=e,n.bytes=e,{encode:t,decode:n,encodingLength:r||(()=>e)}}var w=C({encode(e,t,n){t||=new Uint8Array(w.encodingLength(e)),n||=0;let r=n,i=e.replace(/^\.|\.$/gm,``);if(i.length){let e=i.split(`.`);for(let r=0;r<e.length;r++){let i=ue(t,e[r],n+1);t[n]=i,n+=i+1}}return t[n++]=0,w.encode.bytes=n-r,t},decode(e,t){t||=0;let n=[],r=t,i=0,a=0,o=!1;for(;;){if(t>=e.length)throw Error(`Cannot decode name (buffer overflow)`);let s=e[t++];if(a+=+!o,s===0)break;if(!(s&192)){if(t+s>e.length)throw Error(`Cannot decode name (buffer overflow)`);if(i+=s+1,i>254)throw Error(`Cannot decode name (name too long)`);n.push(h(e,t,t+s)),t+=s,a+=o?0:s}else if((s&192)==192){if(t+1>e.length)throw Error(`Cannot decode name (buffer overflow)`);let n=y(e,t-1)-49152;if(n>=r)throw Error(`Cannot decode name (bad pointer)`);t=n,r=n,a+=+!o,o=!0}else throw Error(`Cannot decode name (bad label)`)}return w.decode.bytes=a,n.length===0?`.`:n.join(`.`)},encodingLength(e){return e===`.`||e===`..`?1:_(e.replace(/^\.|\.$/gm,``))+2}}),T=C({encode(e,t,n){t||=new Uint8Array(T.encodingLength(e)),n||=0;let r=ue(t,e,n+1);return t[n]=r,T.encode.bytes=r+1,t},decode(e,t){t||=0;let n=e[t],r=h(e,t+1,t+1+n);return T.decode.bytes=n+1,r},encodingLength(e){return _(e)+1}}),E=C({bytes:12,encode(e,t,n){t||=new Uint8Array(E.encodingLength(e)),n||=0;let r=(e.flags||0)&32767,i=e.type===`response`?ge:he;return x(t,e.id||0,n),x(t,r|i,n+2),x(t,e.questions.length,n+4),x(t,e.answers.length,n+6),x(t,e.authorities.length,n+8),x(t,e.additionals.length,n+10),t},decode(e,t){if(t||=0,e.length<12)throw Error(`Header must be 12 bytes`);let n=y(e,t+2);return{id:y(e,t),type:n&ge?`response`:`query`,flags:n&32767,flag_qr:(n>>15&1)==1,opcode:ne(n>>11&15),flag_aa:(n>>10&1)==1,flag_tc:(n>>9&1)==1,flag_rd:(n>>8&1)==1,flag_ra:(n>>7&1)==1,flag_z:(n>>6&1)==1,flag_ad:(n>>5&1)==1,flag_cd:(n>>4&1)==1,rcode:te(n&15),questions:Array(y(e,t+4)),answers:Array(y(e,t+6)),authorities:Array(y(e,t+8)),additionals:Array(y(e,t+10))}},encodingLength(){return 12}}),D=C({encode(e,t,n){t||=new Uint8Array(D.encodingLength(e)),n||=0;let r=e.length;return x(t,r,n),S(e,t,n+2,0,r),D.encode.bytes=r+2,t},decode(e,t){t||=0;let n=y(e,t),r=e.slice(t+2,t+2+n);return D.decode.bytes=n+2,r},encodingLength(e){return e.length+2}}),O=C({encode(e,t,n){return t||=new Uint8Array(O.encodingLength(e)),n||=0,w.encode(e,t,n+2),x(t,w.encode.bytes,n),O.encode.bytes=w.encode.bytes+2,t},decode(e,t){t||=0;let n=y(e,t),r=w.decode(e,t+2);return O.decode.bytes=n+2,r},encodingLength(e){return w.encodingLength(e)+2}}),k=C({encode(e,t,n){t||=new Uint8Array(k.encodingLength(e)),n||=0;let r=n;return n+=2,w.encode(e.mname,t,n),n+=w.encode.bytes,w.encode(e.rname,t,n),n+=w.encode.bytes,b(t,e.serial||0,n),n+=4,b(t,e.refresh||0,n),n+=4,b(t,e.retry||0,n),n+=4,b(t,e.expire||0,n),n+=4,b(t,e.minimum||0,n),n+=4,x(t,n-r-2,r),k.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.mname=w.decode(e,t),t+=w.decode.bytes,r.rname=w.decode(e,t),t+=w.decode.bytes,r.serial=v(e,t),t+=4,r.refresh=v(e,t),t+=4,r.retry=v(e,t),t+=4,r.expire=v(e,t),t+=4,r.minimum=v(e,t),t+=4,k.decode.bytes=t-n,r},encodingLength(e){return 22+w.encodingLength(e.mname)+w.encodingLength(e.rname)}}),A=C({encode(e,t,n){Array.isArray(e)||(e=[e]);for(let t=0;t<e.length;t++)if(typeof e[t]==`string`&&(e[t]=le(e[t])),!g(e[t]))throw Error(`Must be a Buffer`);t||=new Uint8Array(A.encodingLength(e)),n||=0;let r=n;return n+=2,e.forEach(function(e){t[n++]=e.length,S(e,t,n,0,e.length),n+=e.length}),x(t,n-r-2,r),A.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r=y(e,t);t+=2;let i=[];for(;r>0;){let n=e[t++];if(--r,r<n)throw Error(`Buffer overflow`);i.push(e.slice(t,t+n)),t+=n,r-=n}return A.decode.bytes=t-n,i},encodingLength(e){Array.isArray(e)||(e=[e]);let t=2;return e.forEach(function(e){t+=typeof e==`string`?_(e)+1:e.length+1}),t}}),xe=C({encode(e,t,n){t||=new Uint8Array(xe.encodingLength(e)),n||=0,typeof e==`string`&&(e=le(e)),e||=new Uint8Array;let r=n;n+=2;let i=e.length;return S(e,t,n,0,i),n+=i,x(t,n-r-2,r),xe.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r=y(e,t);t+=2;let i=e.slice(t,t+r);return t+=r,xe.decode.bytes=t-n,i},encodingLength(e){return e?(g(e)?e.length:_(e))+2:2}}),Se=C({encode(e,t,n){t||=new Uint8Array(Se.encodingLength(e)),n||=0;let r=n;return n+=2,T.encode(e.cpu,t,n),n+=T.encode.bytes,T.encode(e.os,t,n),n+=T.encode.bytes,x(t,n-r-2,r),Se.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.cpu=T.decode(e,t),t+=T.decode.bytes,r.os=T.decode(e,t),t+=T.decode.bytes,Se.decode.bytes=t-n,r},encodingLength(e){return T.encodingLength(e.cpu)+T.encodingLength(e.os)+2}}),j=C({encode(e,t,n){return t||=new Uint8Array(j.encodingLength(e)),n||=0,w.encode(e,t,n+2),x(t,w.encode.bytes,n),j.encode.bytes=w.encode.bytes+2,t},decode(e,t){t||=0;let n=w.decode(e,t+2);return j.decode.bytes=w.decode.bytes+2,n},encodingLength(e){return w.encodingLength(e)+2}}),Ce=C({encode(e,t,n){t||=new Uint8Array(Ce.encodingLength(e)),n||=0,x(t,e.priority||0,n+2),x(t,e.weight||0,n+4),x(t,e.port||0,n+6),w.encode(e.target,t,n+8);let r=w.encode.bytes+6;return x(t,r,n),Ce.encode.bytes=r+2,t},decode(e,t){t||=0;let n=y(e,t),r={};return r.priority=y(e,t+2),r.weight=y(e,t+4),r.port=y(e,t+6),r.target=w.decode(e,t+8),Ce.decode.bytes=n+2,r},encodingLength(e){return 8+w.encodingLength(e.target)}}),M=C({encode(e,t,n){let r=M.encodingLength(e);return t||=new Uint8Array(M.encodingLength(e)),n||=0,e.issuerCritical&&(e.flags=M.ISSUER_CRITICAL),x(t,r-2,n),n+=2,t[n]=e.flags||0,n+=1,T.encode(e.tag,t,n),n+=T.encode.bytes,ue(t,e.value,n),n+=_(e.value),M.encode.bytes=r,t},decode(e,t){t||=0;let n=y(e,t);t+=2;let r=t,i={};return i.flags=e[t],t+=1,i.tag=T.decode(e,t),t+=T.decode.bytes,i.value=h(e,t,r+n),i.issuerCritical=!!(i.flags&M.ISSUER_CRITICAL),M.decode.bytes=n+2,i},encodingLength(e){return T.encodingLength(e.tag)+T.encodingLength(e.value)+2}});M.ISSUER_CRITICAL=128;var N=C({encode(e,t,n){t||=new Uint8Array(N.encodingLength(e)),n||=0;let r=n;return n+=2,x(t,e.preference||0,n),n+=2,w.encode(e.exchange,t,n),n+=w.encode.bytes,x(t,n-r-2,r),N.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.preference=y(e,t),t+=2,r.exchange=w.decode(e,t),t+=w.decode.bytes,N.decode.bytes=t-n,r},encodingLength(e){return 4+w.encodingLength(e.exchange)}}),we=C({encode(e,t,n){return t||=new Uint8Array(we.encodingLength(e)),n||=0,x(t,4,n),n+=2,o.encode(e,t,n),t},decode(e,t){return t||=0,t+=2,o.decode(e,t)},bytes:6}),P=C({encode(e,t,n){return t||=new Uint8Array(P.encodingLength(e)),n||=0,x(t,16,n),n+=2,s.encode(e,t,n),P.encode.bytes=18,t},decode(e,t){t||=0,t+=2;let n=s.decode(e,t);return P.decode.bytes=18,n},bytes:18}),Te=e=>new Uint8Array(e),F=C({encode(e,t,n){t||=new Uint8Array(F.encodingLength(e)),n||=0;let r=n,i=oe(e.code);if(x(t,i,n),n+=2,e.data)x(t,e.data.length,n),n+=2,S(e.data,t,n),n+=e.data.length;else switch(i){case 8:{let r=e.sourcePrefixLength||0,i=e.family||l(e.ip,Te),a=u(e.ip,Te),o=Math.ceil(r/8);x(t,o+4,n),n+=2,x(t,i,n),n+=2,t[n++]=r,t[n++]=e.scopePrefixLength||0,S(a,t,n,0,o),n+=o}break;case 11:e.timeout?(x(t,2,n),n+=2,x(t,e.timeout,n),n+=2):(x(t,0,n),n+=2);break;case 12:{let r=e.length||0;x(t,r,n),n+=2,t.fill(0,n,n+r),n+=r}break;case 14:{let r=e.tags.length*2;x(t,r,n),n+=2;for(let r of e.tags)x(t,r,n),n+=2}break;default:throw Error(`Unknown roption code: ${e.code}`)}return F.encode.bytes=n-r,t},decode(e,t){t||=0;let n={};n.code=y(e,t),n.type=ae(n.code),t+=2;let r=y(e,t);switch(t+=2,n.data=e.slice(t,t+r),n.code){case 8:n.family=y(e,t),t+=2,n.sourcePrefixLength=e[t++],n.scopePrefixLength=e[t++];{let i=new Uint8Array(n.family===1?4:16);S(e,i,0,t,t+r-4),n.ip=ee(i)}break;case 11:r>0&&(n.timeout=y(e,t),t+=2);break;case 14:n.tags=[];for(let i=0;i<r;i+=2)n.tags.push(y(e,t)),t+=2}return F.decode.bytes=r+4,n},encodingLength(e){if(e.data)return e.data.length+4;switch(oe(e.code)){case 8:{let t=e.sourcePrefixLength||0;return Math.ceil(t/8)+8}case 11:return typeof e.timeout==`number`?6:4;case 12:return e.length+4;case 14:return 4+e.tags.length*2}throw Error(`Unknown roption code: ${e.code}`)}}),I=C({encode(e,t,n){t||=new Uint8Array(I.encodingLength(e)),n||=0;let r=n,i=Y(e,F);return x(t,i,n),n=X(e,F,t,n+2),I.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r=[],i=y(e,t);t+=2;let a=0;for(;i>0;)r[a++]=F.decode(e,t),t+=F.decode.bytes,i-=F.decode.bytes;return I.decode.bytes=t-n,r},encodingLength(e){return 2+Y(e||[],F)}}),L=C({encode(e,t,n){t||=new Uint8Array(L.encodingLength(e)),n||=0;let r=n,i=e.key;if(!g(i))throw Error(`Key must be a Buffer`);return n+=2,x(t,e.flags,n),n+=2,t[n]=L.PROTOCOL_DNSSEC,n+=1,t[n]=e.algorithm,n+=1,S(i,t,n,0,i.length),n+=i.length,L.encode.bytes=n-r,x(t,L.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=y(e,t);if(t+=2,r.flags=y(e,t),t+=2,e[t]!==L.PROTOCOL_DNSSEC)throw Error(`Protocol must be 3`);return t+=1,r.algorithm=e[t],t+=1,r.key=e.slice(t,n+i+2),t+=r.key.length,L.decode.bytes=t-n,r},encodingLength(e){return 6+_(e.key)}});L.PROTOCOL_DNSSEC=3,L.ZONE_KEY=128,L.SECURE_ENTRYPOINT=32768;var R=C({encode(e,t,n){t||=new Uint8Array(R.encodingLength(e)),n||=0;let r=n,i=e.signature;if(!g(i))throw Error(`Signature must be a Buffer`);return n+=2,x(t,f(e.typeCovered),n),n+=2,t[n]=e.algorithm,n+=1,t[n]=e.labels,n+=1,b(t,e.originalTTL,n),n+=4,b(t,e.expiration,n),n+=4,b(t,e.inception,n),n+=4,x(t,e.keyTag,n),n+=2,w.encode(e.signersName,t,n),n+=w.encode.bytes,S(i,t,n,0,i.length),n+=i.length,R.encode.bytes=n-r,x(t,R.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=y(e,t);return t+=2,r.typeCovered=d(y(e,t)),t+=2,r.algorithm=e[t],t+=1,r.labels=e[t],t+=1,r.originalTTL=v(e,t),t+=4,r.expiration=v(e,t),t+=4,r.inception=v(e,t),t+=4,r.keyTag=y(e,t),t+=2,r.signersName=w.decode(e,t),t+=w.decode.bytes,r.signature=e.slice(t,n+i+2),t+=r.signature.length,R.decode.bytes=t-n,r},encodingLength(e){return 20+w.encodingLength(e.signersName)+_(e.signature)}}),z=C({encode(e,t,n){t||=new Uint8Array(z.encodingLength(e)),n||=0;let r=n;return n+=2,w.encode(e.mbox||`.`,t,n),n+=w.encode.bytes,w.encode(e.txt||`.`,t,n),n+=w.encode.bytes,z.encode.bytes=n-r,x(t,z.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.mbox=w.decode(e,t)||`.`,t+=w.decode.bytes,r.txt=w.decode(e,t)||`.`,t+=w.decode.bytes,z.decode.bytes=t-n,r},encodingLength(e){return 2+w.encodingLength(e.mbox||`.`)+w.encodingLength(e.txt||`.`)}}),B=C({encode(e,t,n){t||=new Uint8Array(B.encodingLength(e)),n||=0;let r=n,i=[];for(let t=0;t<e.length;t++){let n=f(e[t]);i[n>>8]===void 0&&(i[n>>8]=[]),i[n>>8][n>>3&31]|=1<<7-(n&7)}for(let e=0;e<i.length;e++)if(i[e]!==void 0){let r=le(i[e]);t[n]=e,n+=1,t[n]=r.length,n+=1,S(r,t,n,0,r.length),n+=r.length}return B.encode.bytes=n-r,t},decode(e,t,n){t||=0;let r=t,i=[];for(;t-r<n;){let n=e[t];t+=1;let r=e[t];t+=1;for(let a=0;a<r;a++){let r=e[t+a];for(let e=0;e<8;e++)if(r&1<<7-e){let t=d(n<<8|a<<3|e);i.push(t)}}t+=r}return B.decode.bytes=t-r,i},encodingLength(e){let t=[];for(let n=0;n<e.length;n++){let r=f(e[n]);t[r>>8]=Math.max(t[r>>8]||0,r&255)}let n=0;for(let e=0;e<t.length;e++)t[e]!==void 0&&(n+=2+Math.ceil((t[e]+1)/8));return n}}),V=C({encode(e,t,n){t||=new Uint8Array(V.encodingLength(e)),n||=0;let r=n;return n+=2,w.encode(e.nextDomain,t,n),n+=w.encode.bytes,B.encode(e.rrtypes,t,n),n+=B.encode.bytes,V.encode.bytes=n-r,x(t,V.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=y(e,t);return t+=2,r.nextDomain=w.decode(e,t),t+=w.decode.bytes,r.rrtypes=B.decode(e,t,i-(t-n)),t+=B.decode.bytes,V.decode.bytes=t-n,r},encodingLength(e){return 2+w.encodingLength(e.nextDomain)+B.encodingLength(e.rrtypes)}}),H=C({encode(e,t,n){t||=new Uint8Array(H.encodingLength(e)),n||=0;let r=n,i=e.salt;if(!g(i))throw Error(`salt must be a Buffer`);let a=e.nextDomain;if(!g(a))throw Error(`nextDomain must be a Buffer`);return n+=2,t[n]=e.algorithm,n+=1,t[n]=e.flags,n+=1,x(t,e.iterations,n),n+=2,t[n]=i.length,n+=1,S(i,t,n,0,i.length),n+=i.length,t[n]=a.length,n+=1,S(a,t,n,0,a.length),n+=a.length,B.encode(e.rrtypes,t,n),n+=B.encode.bytes,H.encode.bytes=n-r,x(t,H.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=y(e,t);t+=2,r.algorithm=e[t],t+=1,r.flags=e[t],t+=1,r.iterations=y(e,t),t+=2;let a=e[t];t+=1,r.salt=e.slice(t,t+a),t+=a;let o=e[t];return t+=1,r.nextDomain=e.slice(t,t+o),t+=o,r.rrtypes=B.decode(e,t,i-(t-n)),t+=B.decode.bytes,H.decode.bytes=t-n,r},encodingLength(e){return 8+e.salt.length+e.nextDomain.length+B.encodingLength(e.rrtypes)}}),U=C({encode(e,t,n){t||=new Uint8Array(U.encodingLength(e)),n||=0;let r=n,i=e.digest;if(!g(i))throw Error(`Digest must be a Buffer`);return n+=2,x(t,e.keyTag,n),n+=2,t[n]=e.algorithm,n+=1,t[n]=e.digestType,n+=1,S(i,t,n,0,i.length),n+=i.length,U.encode.bytes=n-r,x(t,U.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=y(e,t);return t+=2,r.keyTag=y(e,t),t+=2,r.algorithm=e[t],t+=1,r.digestType=e[t],t+=1,r.digest=e.slice(t,n+i+2),t+=r.digest.length,U.decode.bytes=t-n,r},encodingLength(e){return 6+_(e.digest)}});function Ee(e){switch(e.toUpperCase()){case`A`:return we;case`PTR`:return j;case`CNAME`:return j;case`DNAME`:return j;case`TXT`:return A;case`NULL`:return xe;case`AAAA`:return P;case`SRV`:return Ce;case`HINFO`:return Se;case`CAA`:return M;case`NS`:return O;case`SOA`:return k;case`MX`:return N;case`OPT`:return I;case`DNSKEY`:return L;case`RRSIG`:return R;case`RP`:return z;case`NSEC`:return V;case`NSEC3`:return H;case`DS`:return U}return D}var W=C({encode(e,t,n){t||=new Uint8Array(W.encodingLength(e)),n||=0;let r=n;if(w.encode(e.name,t,n),n+=w.encode.bytes,x(t,f(e.type),n),e.type.toUpperCase()===`OPT`){if(e.name!==`.`)throw Error(`OPT name must be root.`);x(t,e.udpPayloadSize||4096,n+2),t[n+4]=e.extendedRcode||0,t[n+5]=e.ednsVersion||0,x(t,e.flags||0,n+6),n+=8,I.encode(e.options||[],t,n),n+=I.encode.bytes}else{let r=ie(e.class===void 0?`IN`:e.class);e.flush&&(r|=_e),x(t,r,n+2),b(t,e.ttl||0,n+4),n+=8;let i=Ee(e.type);i.encode(e.data,t,n),n+=i.encode.bytes}return W.encode.bytes=n-r,t},decode(e,t){t||=0;let n={},r=t;if(n.name=w.decode(e,t),t+=w.decode.bytes,n.type=d(y(e,t)),n.type===`OPT`)n.udpPayloadSize=y(e,t+2),n.extendedRcode=e[t+4],n.ednsVersion=e[t+5],n.flags=y(e,t+6),n.flag_do=(n.flags>>15&1)==1,n.options=I.decode(e,t+8),t+=8+I.decode.bytes;else{let r=y(e,t+2);n.ttl=v(e,t+4),n.class=re(r&ve),n.flush=!!(r&_e);let i=Ee(n.type);n.data=i.decode(e,t+8),t+=8+i.decode.bytes}return W.decode.bytes=t-r,n},encodingLength(e){let t=e.data!==null&&e.data!==void 0?e.data:e.options;return w.encodingLength(e.name)+8+Ee(e.type).encodingLength(t)}}),G=C({encode(e,t,n){t||=new Uint8Array(G.encodingLength(e)),n||=0;let r=n;return w.encode(e.name,t,n),n+=w.encode.bytes,x(t,f(e.type),n),n+=2,x(t,ie(e.class===void 0?`IN`:e.class),n),n+=2,G.encode.bytes=n-r,e},decode(e,t){t||=0;let n=t,r={};return r.name=w.decode(e,t),t+=w.decode.bytes,r.type=d(y(e,t)),t+=2,r.class=re(y(e,t)),t+=2,r.class&ye&&(r.class&=be),G.decode.bytes=t-n,r},encodingLength(e){return w.encodingLength(e.name)+4}}),K={encode:function(e,t,n){let r=!t;r&&(t=new Uint8Array(Ae(e))),n||=0;let i=n;return e.questions||=[],e.answers||=[],e.authorities||=[],e.additionals||=[],E.encode(e,t,n),n+=E.encode.bytes,n=X(e.questions,G,t,n),n=X(e.answers,W,t,n),n=X(e.authorities,W,t,n),n=X(e.additionals,W,t,n),K.encode.bytes=n-i,r&&Oe.bytes!==t.length?t.slice(0,Oe.bytes):t},decode:function(e,t){t||=0;let n=t,r=E.decode(e,t);return t+=E.decode.bytes,t=je(r.questions,G,e,t),t=je(r.answers,W,e,t),t=je(r.authorities,W,e,t),t=je(r.additionals,W,e,t),K.decode.bytes=t-n,r},encodingLength:function(e){return E.encodingLength(e)+Y(e.questions||[],G)+Y(e.answers||[],W)+Y(e.authorities||[],W)+Y(e.additionals||[],W)}};K.encode.bytes=0,K.decode.bytes=0;function q(e,t){if(e.questions)throw Error(`Only one .question object expected instead of a .questions array!`);let n=Object.assign({type:t},e);return n.question&&(n.questions=[n.question],delete n.question),n}var J={encode:function(e,t,n){return t=K.encode(q(e,`query`),t,n),J.encode.bytes=K.encode.bytes,t},decode:function(e,t){let n=K.decode(e,t);return J.decode.bytes=K.decode.bytes,n.questions&&(n.question=n.questions[0],delete n.questions),n},encodingLength:function(e){return K.encodingLength(q(e,`query`))}};J.encode.bytes=0,J.decode.bytes=0;var De={encode:function(e,t,n){return t=K.encode(q(e,`response`),t,n),De.encode.bytes=K.encode.bytes,t},decode:function(e,t){let n=K.decode(e,t);return De.decode.bytes=K.decode.bytes,n.questions&&(n.question=n.questions[0],delete n.questions),n},encodingLength:function(e){return K.encodingLength(q(e,`response`))}};De.encode.bytes=0,De.decode.bytes=0;var Oe=K.encode,ke=K.decode,Ae=K.encodingLength;function Y(e,t){let n=0;for(let r=0;r<e.length;r++)n+=t.encodingLength(e[r]);return n}function X(e,t,n,r){for(let i=0;i<e.length;i++)t.encode(e[i],n,r),r+=t.encode.bytes;return r}function je(e,t,n,r){for(let i=0;i<e.length;i++)e[i]=t.decode(n,r),r+=t.decode.bytes;return r}function Me(e,t,n,r){if(t.length!==64)throw Error(`Charset needs to be 64 characters long! (${t.length})`);let i=new Uint8Array(256),a=new Uint8Array(64);for(let e=0;e<64;e+=1){let n=t.charCodeAt(e);if(n>255)throw Error(`Character #${e} in charset [code=${n}, char=${t.charAt(e)}] is too high! (max=255)`);if(i[n]!==0)throw Error(`Character [code=${n}, char=${t.charAt(e)}] is more than once in the charset!`);i[n]=e,a[e]=n}let o=n.charCodeAt(0),s={name:e,encodingLength(e){let t=e.length,n=t*.75|0;return e.charCodeAt(t-1)===o?e.charCodeAt(t-2)===o?n-2:n-1:n},encode(e,t,n){t??=new Uint8Array(s.encodingLength(e)),n??=0;let r=e.length;e.charCodeAt(r-1)===o&&(e.charCodeAt(r-2)===o?r-=2:--r);let a=r%4,c=r-a,l=n,u=0;for(;u<c;){let n=i[e.charCodeAt(u)]<<18|i[e.charCodeAt(u+1)]<<12|i[e.charCodeAt(u+2)]<<6|i[e.charCodeAt(u+3)];t[l++]=n>>16,t[l++]=n>>8,t[l++]=n,u+=4}if(a===3){let n=i[e.charCodeAt(u)]<<10|i[e.charCodeAt(u+1)]<<4|i[e.charCodeAt(u+2)]>>2;t[l++]=n>>8,t[l++]=n}else a===2&&(t[l++]=i[e.charCodeAt(u)]<<2|i[e.charCodeAt(u+1)]>>4);return s.encode.bytes=l-n,t},decode(e,t,n){t??=0,n??=e.length;let i=n-t,c=i%3,l=t+i-c,u=[];for(let n=t;n<l;n+=3){let t=e[n]<<16|e[n+1]<<8|e[n+2];u.push(a[t>>18&63],a[t>>12&63],a[t>>6&63],a[t&63])}if(c===2){let t=(e[n-2]<<8)+e[n-1];u.push(a[t>>10],a[t>>4&63],a[t<<2&63]),r===1&&u.push(o)}else if(c===1){let t=e[n-1];u.push(a[t>>2],a[t<<4&63]),r===1&&u.push(o,o)}return s.decode.bytes=i,String.fromCharCode.apply(String,u)}};return s}Me(`base64`,`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,`=`,1);var Ne=Me(`base64-url`,`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,`=`,2),Pe=t(((e,t)=>{t.exports={}})),Z=typeof global<`u`?global.AbortError:typeof window<`u`?window.AbortError:null;Z||=class extends Error{constructor(e=`Request aborted.`){super(e)}},Z.prototype.name=`AbortError`,Z.prototype.code=`ABORT_ERR`;var Fe=typeof globalThis<`u`&&globalThis.URL||Pe().URL,Q=class extends Error{constructor(e,t,n){super(`status=`+t+` while requesting `+e+` [`+n+`]`),this.uri=e,this.status=t,this.method=n}toJSON(){return{code:this.code,uri:this.uri,status:this.status,method:this.method,endpoint:this.endpoint}}};Q.prototype.name=`HTTPStatusError`,Q.prototype.code=`HTTP_STATUS`;var Ie=class extends Error{constructor(e,t){super(e),this.cause=t}toJSON(){return{message:this.message,endpoint:this.endpoint,code:this.code,cause:Be(this.cause)}}};Ie.prototype.name=`ResponseError`,Ie.prototype.code=`RESPONSE_ERR`;var Le=class extends Error{constructor(e){super(`Timeout (t=`+e+`).`),this.timeout=e}toJSON(){return{code:this.code,endpoint:this.endpoint,timeout:this.timeout}}};Le.prototype.name=`TimeoutError`,Le.prototype.code=`ETIMEOUT`;var Re=/^((\d{1,3}\.){3,3}\d{1,3})(:(\d{2,5}))?$/,ze=/^((::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?)(:(\d{2,5}))?$/i;function Be(e){if(typeof e==`string`)return{message:e};try{let t=JSON.stringify(e);if(t!==`{}`)return JSON.parse(t)}catch{}let t={message:String(e.message||e)};return e.code!==void 0&&(t.code=String(e.code)),t}var Ve=/^(([a-z0-9]+:)\/\/)?([^/[\s:]+|\[[^\]]+\])?(:([^/\s]+))?(\/[^\s]*)?(.*)$/,He=/\[(post|get|((ipv4|ipv6|name)=([^\]]+)))\]/gi,Ue=/\[(((pk|name)=([^\]]+)))\]/gi;function We(e){let t=Ve.exec(e),n=t[2]||`https:`,r=t[3],i=t[5],a=t[6],o=t[7];if(n===`https:`||n===`http:`){let e=Ge(o,He);return{name:e.name,protocol:n,ipv4:e.ipv4,ipv6:e.ipv6,host:r,port:i,path:a,method:e.post?`POST`:`GET`}}if(n===`udp:`||n===`udp4:`||n===`udp6:`){let t=Ge(o,Ue),a=/^\[(.*)\]$/.exec(r);if(a&&n===`udp4:`)throw Error(`Endpoint parsing error: Cannot use ipv6 host with udp4: (endpoint=${e})`);if(!a&&n===`udp6:`)throw Error(`Endpoint parsing error: Incorrectly formatted host for udp6: (endpoint=${e})`);return a?new Ze({protocol:`udp6:`,ipv6:a[1],port:i,pk:t.pk,name:t.name}):new Xe({protocol:`udp4:`,ipv4:r,port:i,pk:t.pk,name:t.name})}throw new Ke(n,e)}function Ge(e,t){t.lastIndex=0;let n={};for(;;){let r=t.exec(e);if(!r)break;r[2]?n[r[3].toLowerCase()]=r[4]:n[r[1].toLowerCase()]=!0}return n}var Ke=class extends Error{constructor(e,t){super(`Invalid Endpoint: unsupported protocol "${e}" for endpoint: ${t}, supported protocols: ${qe.join(`, `)}`),this.protocol=e,this.endpoint=t}toJSON(){return{code:this.code,endpoint:this.endpoint,timeout:this.timeout}}};Ke.prototype.name=`InvalidProtocolError`,Ke.prototype.code=`EPROTOCOL`;var qe=[`http:`,`https:`,`udp4:`,`udp6:`],Je=class{constructor(e,t){this.name=e.name||null,this.protocol=e.protocol;let n=typeof e.port==`string`?e.port=parseInt(e.port,10):e.port;if(n==null)this.port=t?this.protocol===`https:`?443:80:e.pk?443:53;else if(typeof n!=`number`&&!isNaN(n))throw Error(`Invalid Endpoint: port "${e.port}" needs to be a number: ${JSON.stringify(e)}`);else this.port=n}toJSON(){return this.toString()}},Ye=class extends Je{constructor(e){super(e,!1),this.pk=e.pk||null}toString(){let e=this.port===(this.pk?443:53)?``:`:${this.port}`,t=this.pk?` [pk=${this.pk}]`:``,n=this.name?` [name=${this.name}]`:``;return`udp://${this.ipv4||`[${this.ipv6}]`}${e}${t}${n}`}},Xe=class extends Ye{constructor(e){if(super(Object.assign({protocol:`udp4:`},e)),!e.ipv4||typeof e.ipv4!=`string`)throw Error(`Invalid Endpoint: .ipv4 "${e.ipv4}" needs to be set: ${JSON.stringify(e)}`);this.ipv4=e.ipv4}},Ze=class extends Ye{constructor(e){if(super(Object.assign({protocol:`udp6:`},e)),!e.ipv6||typeof e.ipv6!=`string`)throw Error(`Invalid Endpoint: .ipv6 "${e.ipv6}" needs to be set: ${JSON.stringify(e)}`);this.ipv6=e.ipv6}};function Qe(e){return ze.test(e)&&!Re.test(e)?`[${e}]`:e}var $e=class extends Je{constructor(e){if(super(Object.assign({protocol:`https:`},e),!0),e.host||(e.ipv4&&(e.host=e.ipv4),e.ipv6&&(e.host=`[${e.ipv6}]`)),!e.host||typeof e.host!=`string`)throw Error(`Invalid Endpoint: host "${e.path}" needs to be set: ${JSON.stringify(e)}`);if(this.host=e.host,this.path=e.path||`/dns-query`,this.method=/^post$/i.test(e.method)?`POST`:`GET`,this.ipv4=e.ipv4,this.ipv6=e.ipv6,!this.ipv6){let e=ze.exec(this.host);e&&(this.ipv6=e[1])}this.ipv4||Re.test(this.host)&&(this.ipv4=this.host);let t=`${this.protocol}//${Qe(this.host)}:${this.port}${this.path}`;try{this.url=new Fe(t)}catch(e){throw Error(e.message+` [${t}]`)}}toString(){let e=this.protocol===`https:`?``:`http://`,t=this.port===(this.protocol===`https:`?443:80)?``:`:${this.port}`,n=this.method===`GET`?``:` [post]`,r=this.path===`/dns-query`?``:this.path,i=this.name?` [name=${this.name}]`:``,a=this.ipv4&&this.ipv4!==this.host?` [ipv4=${this.ipv4}]`:``,o=this.ipv6&&this.ipv6!==this.host?` [ipv6=${this.ipv6}]`:``;return`${e}${Qe(this.host)}${t}${r}${n}${a}${o}${i}`}};function $(e){let t;if(typeof e==`string`)t=We(e);else{if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Can not convert ${e} to an endpoint`);if(e instanceof Je)return e;t=e}(t.protocol===null||t.protocol===void 0)&&(t.protocol=`https:`);let n=t.protocol;if(n===`udp4:`)return new Xe(t);if(n===`udp6:`)return new Ze(t);if(n===`https:`||n===`http:`)return new $e(t);throw new Ke(n,JSON.stringify(t))}var et=`application/dns-message`;function tt(){}function nt(){throw Error(`Only "doh" endpoints are supported in the browser`)}async function rt(e,t,n,r){let i=t?t.localStoragePrefix+t.name:null;if(i)try{let e=JSON.parse(localStorage.getItem(i));if(e&&e.time>t.maxTime)return e}catch{}let{data:a}=await it(e,`GET`,null,n,r),o={time:Date.now(),data:JSON.parse(h(a))};if(i)try{localStorage.setItem(i,JSON.stringify(o))}catch{o.time=null}return o}function it(e,t,n,r,i){return new Promise((a,o)=>{let s=new Fe(e);t===`GET`&&n&&(s.search=`?dns=`+Ne.decode(n));let c=s.toString(),l=new XMLHttpRequest;l.open(t,c,!0),l.setRequestHeader(`Accept`,et),t===`POST`&&l.setRequestHeader(`Content-Type`,et),l.responseType=`arraybuffer`,l.timeout=r,l.ontimeout=u,l.onreadystatechange=d,l.onerror=te,l.onload=ee,t===`POST`?l.send(n):l.send(),i&&i.addEventListener(`abort`,ne);function u(){f(new Le(r));try{l.abort()}catch{}}function ee(){if(l.status!==200)f(new Q(c,l.status,t));else{let e;if(typeof l.response==`string`)e=m(l.response);else if(l.response instanceof Uint8Array)e=l.response;else if(Array.isArray(l.response)||l.response instanceof ArrayBuffer)e=new Uint8Array(l.response);else throw Error(`Unprocessable response `+l.response);f(null,e)}}function d(){if(l.readyState>1&&l.status!==200&&l.status!==0){f(new Q(c,l.status,t));try{l.abort()}catch{}}}let f=function(e,t){f=tt,i&&i.removeEventListener(`abort`,ne),a(e?{error:e,response:l}:{data:t,response:l})};function te(){f(l.status===200?Error(`Inexplicable XHR Error`):new Q(c,l.status,t))}function ne(){f(new Z);try{l.abort()}catch{}}})}function at(e,t,n,r,i){return it(e,t,n,r,i)}function ot(e){return e.filter(e=>e.cors||e.endpoint.cors)}var st={data:[{name:`adfree.usableprivacy.net`,endpoint:{protocol:`https:`,host:`adfree.usableprivacy.net`},description:`Public updns DoH service with advertising, tracker and malware filters.
1
+ (function(e){typeof define==`function`&&define.amd?define([],e):e()})(function(){var e=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),t=/^(\d{1,3}\.){3,3}\d{1,3}$/,n=4,r=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,i=16,a={name:`v4`,size:n,isFormat:e=>t.test(e),encode(e,t,r){r=~~r,t||=new Uint8Array(r+n);let i=e.length,a=0;for(let n=0;n<i;){let i=e.charCodeAt(n++);i===46?(t[r++]=a,a=0):a=a*10+(i-48)}return t[r]=a,t},decode(e,t){return t=~~t,`${e[t++]}.${e[t++]}.${e[t++]}.${e[t]}`}},o={name:`v6`,size:i,isFormat:e=>e.length>0&&r.test(e),encode(e,t,n){n=~~n;let r=n+i,a=-1,o=0,s=0,c=!0,l=!1;t||=new Uint8Array(n+i);for(let i=0;i<e.length;i++){let u=e.charCodeAt(i);u===58?(c?a===-1?n<r&&(a=n):(n<r&&(t[n]=0),n<r-1&&(t[n+1]=0),n+=2):(l===!0?(n<r&&(t[n]=s),n++):(n<r&&(t[n]=o>>8),n<r-1&&(t[n+1]=o&255),n+=2),o=0,s=0),c=!0,l=!1):u===46?(n<r&&(t[n]=s),n++,s=0,o=0,c=!1,l=!0):(c=!1,u>=97?u-=87:u>=65?u-=55:(u-=48,s=s*10+u),o=(o<<4)+u)}if(c===!1)l===!0?(n<r&&(t[n]=s),n++):(n<r&&(t[n]=o>>8),n<r-1&&(t[n+1]=o&255),n+=2);else if(a===0)n<r&&(t[n]=0),n<r-1&&(t[n+1]=0),n+=2;else if(a!==-1){n+=2;for(let e=Math.min(n-1,r-1);e>=a+2;e--)t[e]=t[e-2];t[a]=0,t[a+1]=0,a=n}if(a!==n&&a!==-1)for(n>r-2&&(n=r-2);r>a;)t[--r]=n<r&&n>a?t[--n]:0;else for(;n<r;)t[n++]=0;return t},decode(e,t){t=~~t;let n=``;for(let r=0;r<i;r+=2)r!==0&&(n+=`:`),n+=(e[t+r]<<8|e[t+r+1]).toString(16);return n.replace(/(^|:)0(:0)*:0(:|$)/,`$1::$3`).replace(/:{3,4}/,`::`)}};function s(e){if(a.isFormat(e))return a.size;if(o.isFormat(e))return o.size;throw Error(`Invalid ip address: ${e}`)}function c(e){return s(e)===a.size?1:2}function l(e,t,n){n=~~n;let r=s(e);return typeof t==`function`&&(t=t(n+r)),r===a.size?a.encode(e,t,n):o.encode(e,t,n)}function u(e,t,n){if(t=~~t,n||=e.length-t,n===a.size)return a.decode(e,t,n);if(n===o.size)return o.decode(e,t,n);throw Error(`Invalid buffer size needs to be ${a.size} for v4 or ${o.size} for v6.`)}function d(e){switch(e){case 1:return`A`;case 10:return`NULL`;case 28:return`AAAA`;case 18:return`AFSDB`;case 42:return`APL`;case 257:return`CAA`;case 60:return`CDNSKEY`;case 59:return`CDS`;case 37:return`CERT`;case 5:return`CNAME`;case 49:return`DHCID`;case 32769:return`DLV`;case 39:return`DNAME`;case 48:return`DNSKEY`;case 43:return`DS`;case 55:return`HIP`;case 13:return`HINFO`;case 45:return`IPSECKEY`;case 25:return`KEY`;case 36:return`KX`;case 29:return`LOC`;case 15:return`MX`;case 35:return`NAPTR`;case 2:return`NS`;case 47:return`NSEC`;case 50:return`NSEC3`;case 51:return`NSEC3PARAM`;case 12:return`PTR`;case 46:return`RRSIG`;case 17:return`RP`;case 24:return`SIG`;case 6:return`SOA`;case 99:return`SPF`;case 33:return`SRV`;case 44:return`SSHFP`;case 32768:return`TA`;case 249:return`TKEY`;case 52:return`TLSA`;case 250:return`TSIG`;case 16:return`TXT`;case 252:return`AXFR`;case 251:return`IXFR`;case 41:return`OPT`;case 255:return`ANY`}return`UNKNOWN_`+e}function f(e){switch(e.toUpperCase()){case`A`:return 1;case`NULL`:return 10;case`AAAA`:return 28;case`AFSDB`:return 18;case`APL`:return 42;case`CAA`:return 257;case`CDNSKEY`:return 60;case`CDS`:return 59;case`CERT`:return 37;case`CNAME`:return 5;case`DHCID`:return 49;case`DLV`:return 32769;case`DNAME`:return 39;case`DNSKEY`:return 48;case`DS`:return 43;case`HIP`:return 55;case`HINFO`:return 13;case`IPSECKEY`:return 45;case`KEY`:return 25;case`KX`:return 36;case`LOC`:return 29;case`MX`:return 15;case`NAPTR`:return 35;case`NS`:return 2;case`NSEC`:return 47;case`NSEC3`:return 50;case`NSEC3PARAM`:return 51;case`PTR`:return 12;case`RRSIG`:return 46;case`RP`:return 17;case`SIG`:return 24;case`SOA`:return 6;case`SPF`:return 99;case`SRV`:return 33;case`SSHFP`:return 44;case`TA`:return 32768;case`TKEY`:return 249;case`TLSA`:return 52;case`TSIG`:return 250;case`TXT`:return 16;case`AXFR`:return 252;case`IXFR`:return 251;case`OPT`:return 41;case`ANY`:return 255;case`*`:return 255}return e.toUpperCase().startsWith(`UNKNOWN_`)?parseInt(e.slice(8)):0}function p(e){switch(e){case 0:return`NOERROR`;case 1:return`FORMERR`;case 2:return`SERVFAIL`;case 3:return`NXDOMAIN`;case 4:return`NOTIMP`;case 5:return`REFUSED`;case 6:return`YXDOMAIN`;case 7:return`YXRRSET`;case 8:return`NXRRSET`;case 9:return`NOTAUTH`;case 10:return`NOTZONE`;case 11:return`RCODE_11`;case 12:return`RCODE_12`;case 13:return`RCODE_13`;case 14:return`RCODE_14`;case 15:return`RCODE_15`}return`RCODE_`+e}function ee(e){switch(e){case 0:return`QUERY`;case 1:return`IQUERY`;case 2:return`STATUS`;case 3:return`OPCODE_3`;case 4:return`NOTIFY`;case 5:return`UPDATE`;case 6:return`OPCODE_6`;case 7:return`OPCODE_7`;case 8:return`OPCODE_8`;case 9:return`OPCODE_9`;case 10:return`OPCODE_10`;case 11:return`OPCODE_11`;case 12:return`OPCODE_12`;case 13:return`OPCODE_13`;case 14:return`OPCODE_14`;case 15:return`OPCODE_15`}return`OPCODE_`+e}function m(e){switch(e){case 1:return`IN`;case 2:return`CS`;case 3:return`CH`;case 4:return`HS`;case 255:return`ANY`}return`UNKNOWN_`+e}function te(e){switch(e.toUpperCase()){case`IN`:return 1;case`CS`:return 2;case`CH`:return 3;case`HS`:return 4;case`ANY`:return 255}return 0}function ne(e){switch(e){case 1:return`LLQ`;case 2:return`UL`;case 3:return`NSID`;case 5:return`DAU`;case 6:return`DHU`;case 7:return`N3U`;case 8:return`CLIENT_SUBNET`;case 9:return`EXPIRE`;case 10:return`COOKIE`;case 11:return`TCP_KEEPALIVE`;case 12:return`PADDING`;case 13:return`CHAIN`;case 14:return`KEY_TAG`;case 26946:return`DEVICEID`}return e<0?null:`OPTION_${e}`}function re(e){if(typeof e==`number`)return e;if(!e)return-1;switch(e.toUpperCase()){case`OPTION_0`:return 0;case`LLQ`:return 1;case`UL`:return 2;case`NSID`:return 3;case`OPTION_4`:return 4;case`DAU`:return 5;case`DHU`:return 6;case`N3U`:return 7;case`CLIENT_SUBNET`:return 8;case`EXPIRE`:return 9;case`COOKIE`:return 10;case`TCP_KEEPALIVE`:return 11;case`PADDING`:return 12;case`CHAIN`:return 13;case`KEY_TAG`:return 14;case`DEVICEID`:return 26946;case`OPTION_65535`:return 65535}let t=e.match(/_(\d+)$/);return t?parseInt(t[1],10):-1}var ie=55296,h=56320;function ae(e){let t=0,n=e.length;for(let r=0;r<n;r+=1){let i=e.charCodeAt(r);if(i<=127)t+=1;else if(i<=2047)t+=2;else if((i&63488)!==ie)t+=3;else{let a=r+1;a===n||i>=h?t+=3:(e.charCodeAt(a)&64512)===h?(r=a,t+=4):t+=3}}return t}function g(e,t,n){let r=e.length;n??=0,t===void 0&&(t=new Uint8Array(ae(e)+n));let i=n;for(let n=0;n<r;n+=1){let a=e.charCodeAt(n);if(a<=127)t[i++]=a;else if(a<=2047)t[i++]=192|(a&1984)>>6,t[i++]=128|a&63;else if((a&63488)!==ie)t[i++]=224|(a&61440)>>12,t[i++]=128|(a&4032)>>6,t[i++]=128|a&63;else{let o=n+1;if(o===r||a>=h)t[i++]=239,t[i++]=191,t[i++]=189;else{let r=e.charCodeAt(o);(r&64512)===h?(n=o,a=65536|(a&1023)<<10|r&1023,t[i++]=240|(a&1835008)>>18,t[i++]=128|(a&258048)>>12,t[i++]=128|(a&4032)>>6,t[i++]=128|a&63):(t[i++]=239,t[i++]=191,t[i++]=189)}}}return g.bytes=i-n,t}g.bytes=0;function _(e,t,n){let r=``;t??=0,n??=e.length;for(let i=t;i<n;){let t=e[i++],n;if(t<=128)n=t;else if(t>191&&t<224)n=(t&31)<<6|e[i++]&63;else if(t>239&&t<365){n=((t&7)<<18|(e[i++]&63)<<12|(e[i++]&63)<<6|e[i++]&63)-65536;let a=ie|n>>10&1023;r+=String.fromCharCode(a),n=h|n&1023}else n=(t&15)<<12|(e[i++]&63)<<6|e[i++]&63;r+=String.fromCharCode(n)}return _.bytes=n-t,r}_.bytes=0;var v=e=>e instanceof Uint8Array;function y(e){return typeof e==`string`?ae(e):e.byteLength}function oe(e){return e instanceof Uint8Array?e:Array.isArray(e)?new Uint8Array(e):g(e)}function se(e,t,n){if(typeof t!=`string`)throw Error(`unknown input type`);return g(t,e,n),g.bytes}var ce=2**24,le=2**16,ue=256,b=(e,t)=>e[t]*ce+e[t+1]*le+e[t+2]*ue+e[t+3],x=(e,t)=>e[t]<<8|e[t+1],S=(e,t,n)=>(t=+t,e[n+3]=t,t>>>=8,e[n+2]=t,t>>>=8,e[n+1]=t,t>>>=8,e[n]=t,n+4),C=(e,t,n)=>(e[n]=t>>8,e[n+1]=t&255,n+2);function w(e,t,n,r,i){return n<0&&(r-=n,n=0),r<0&&(r=0),i<0?new Uint8Array:n>=t.length||r>=i?0:de(e,t,n,r,i)}function de(e,t,n,r,i){i-r>t.length-n&&(i=r+t.length-n);let a=i-r,o=e.length-r;return a>o&&(a=o),(r!==0||i<e.length)&&(e=new Uint8Array(e.buffer,e.byteOffset+r,a)),t.set(e,n),a}var fe=0,pe=32768,me=32768,he=-32769,ge=32768,_e=-32769;function T({bytes:e=0,encode:t,decode:n,encodingLength:r}){return t.bytes=e,n.bytes=e,{encode:t,decode:n,encodingLength:r||(()=>e)}}var E=T({encode(e,t,n){t||=new Uint8Array(E.encodingLength(e)),n||=0;let r=n,i=e.replace(/^\.|\.$/gm,``);if(i.length){let e=i.split(`.`);for(let r=0;r<e.length;r++){let i=se(t,e[r],n+1);t[n]=i,n+=i+1}}return t[n++]=0,E.encode.bytes=n-r,t},decode(e,t){t||=0;let n=[],r=t,i=0,a=0,o=!1;for(;;){if(t>=e.length)throw Error(`Cannot decode name (buffer overflow)`);let s=e[t++];if(a+=+!o,s===0)break;if(!(s&192)){if(t+s>e.length)throw Error(`Cannot decode name (buffer overflow)`);if(i+=s+1,i>254)throw Error(`Cannot decode name (name too long)`);n.push(_(e,t,t+s)),t+=s,a+=o?0:s}else if((s&192)==192){if(t+1>e.length)throw Error(`Cannot decode name (buffer overflow)`);let n=x(e,t-1)-49152;if(n>=r)throw Error(`Cannot decode name (bad pointer)`);t=n,r=n,a+=+!o,o=!0}else throw Error(`Cannot decode name (bad label)`)}return E.decode.bytes=a,n.length===0?`.`:n.join(`.`)},encodingLength(e){return e===`.`||e===`..`?1:y(e.replace(/^\.|\.$/gm,``))+2}}),D=T({encode(e,t,n){t||=new Uint8Array(D.encodingLength(e)),n||=0;let r=se(t,e,n+1);return t[n]=r,D.encode.bytes=r+1,t},decode(e,t){t||=0;let n=e[t],r=_(e,t+1,t+1+n);return D.decode.bytes=n+1,r},encodingLength(e){return y(e)+1}}),O=T({bytes:12,encode(e,t,n){t||=new Uint8Array(O.encodingLength(e)),n||=0;let r=(e.flags||0)&32767,i=e.type===`response`?pe:fe;return C(t,e.id||0,n),C(t,r|i,n+2),C(t,e.questions.length,n+4),C(t,e.answers.length,n+6),C(t,e.authorities.length,n+8),C(t,e.additionals.length,n+10),t},decode(e,t){if(t||=0,e.length<12)throw Error(`Header must be 12 bytes`);let n=x(e,t+2);return{id:x(e,t),type:n&pe?`response`:`query`,flags:n&32767,flag_qr:(n>>15&1)==1,opcode:ee(n>>11&15),flag_aa:(n>>10&1)==1,flag_tc:(n>>9&1)==1,flag_rd:(n>>8&1)==1,flag_ra:(n>>7&1)==1,flag_z:(n>>6&1)==1,flag_ad:(n>>5&1)==1,flag_cd:(n>>4&1)==1,rcode:p(n&15),questions:Array(x(e,t+4)),answers:Array(x(e,t+6)),authorities:Array(x(e,t+8)),additionals:Array(x(e,t+10))}},encodingLength(){return 12}}),k=T({encode(e,t,n){t||=new Uint8Array(k.encodingLength(e)),n||=0;let r=e.length;return C(t,r,n),w(e,t,n+2,0,r),k.encode.bytes=r+2,t},decode(e,t){t||=0;let n=x(e,t),r=e.slice(t+2,t+2+n);return k.decode.bytes=n+2,r},encodingLength(e){return e.length+2}}),A=T({encode(e,t,n){return t||=new Uint8Array(A.encodingLength(e)),n||=0,E.encode(e,t,n+2),C(t,E.encode.bytes,n),A.encode.bytes=E.encode.bytes+2,t},decode(e,t){t||=0;let n=x(e,t),r=E.decode(e,t+2);return A.decode.bytes=n+2,r},encodingLength(e){return E.encodingLength(e)+2}}),j=T({encode(e,t,n){t||=new Uint8Array(j.encodingLength(e)),n||=0;let r=n;return n+=2,E.encode(e.mname,t,n),n+=E.encode.bytes,E.encode(e.rname,t,n),n+=E.encode.bytes,S(t,e.serial||0,n),n+=4,S(t,e.refresh||0,n),n+=4,S(t,e.retry||0,n),n+=4,S(t,e.expire||0,n),n+=4,S(t,e.minimum||0,n),n+=4,C(t,n-r-2,r),j.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.mname=E.decode(e,t),t+=E.decode.bytes,r.rname=E.decode(e,t),t+=E.decode.bytes,r.serial=b(e,t),t+=4,r.refresh=b(e,t),t+=4,r.retry=b(e,t),t+=4,r.expire=b(e,t),t+=4,r.minimum=b(e,t),t+=4,j.decode.bytes=t-n,r},encodingLength(e){return 22+E.encodingLength(e.mname)+E.encodingLength(e.rname)}}),M=T({encode(e,t,n){Array.isArray(e)||(e=[e]);for(let t=0;t<e.length;t++)if(typeof e[t]==`string`&&(e[t]=oe(e[t])),!v(e[t]))throw Error(`Must be a Buffer`);t||=new Uint8Array(M.encodingLength(e)),n||=0;let r=n;return n+=2,e.forEach(function(e){t[n++]=e.length,w(e,t,n,0,e.length),n+=e.length}),C(t,n-r-2,r),M.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r=x(e,t);t+=2;let i=[];for(;r>0;){let n=e[t++];if(--r,r<n)throw Error(`Buffer overflow`);i.push(e.slice(t,t+n)),t+=n,r-=n}return M.decode.bytes=t-n,i},encodingLength(e){Array.isArray(e)||(e=[e]);let t=2;return e.forEach(function(e){t+=typeof e==`string`?y(e)+1:e.length+1}),t}}),N=T({encode(e,t,n){t||=new Uint8Array(N.encodingLength(e)),n||=0,typeof e==`string`&&(e=oe(e)),e||=new Uint8Array;let r=n;n+=2;let i=e.length;return w(e,t,n,0,i),n+=i,C(t,n-r-2,r),N.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r=x(e,t);t+=2;let i=e.slice(t,t+r);return t+=r,N.decode.bytes=t-n,i},encodingLength(e){return e?(v(e)?e.length:y(e))+2:2}}),P=T({encode(e,t,n){t||=new Uint8Array(P.encodingLength(e)),n||=0;let r=n;return n+=2,D.encode(e.cpu,t,n),n+=D.encode.bytes,D.encode(e.os,t,n),n+=D.encode.bytes,C(t,n-r-2,r),P.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.cpu=D.decode(e,t),t+=D.decode.bytes,r.os=D.decode(e,t),t+=D.decode.bytes,P.decode.bytes=t-n,r},encodingLength(e){return D.encodingLength(e.cpu)+D.encodingLength(e.os)+2}}),F=T({encode(e,t,n){return t||=new Uint8Array(F.encodingLength(e)),n||=0,E.encode(e,t,n+2),C(t,E.encode.bytes,n),F.encode.bytes=E.encode.bytes+2,t},decode(e,t){t||=0;let n=E.decode(e,t+2);return F.decode.bytes=E.decode.bytes+2,n},encodingLength(e){return E.encodingLength(e)+2}}),I=T({encode(e,t,n){t||=new Uint8Array(I.encodingLength(e)),n||=0,C(t,e.priority||0,n+2),C(t,e.weight||0,n+4),C(t,e.port||0,n+6),E.encode(e.target,t,n+8);let r=E.encode.bytes+6;return C(t,r,n),I.encode.bytes=r+2,t},decode(e,t){t||=0;let n=x(e,t),r={};return r.priority=x(e,t+2),r.weight=x(e,t+4),r.port=x(e,t+6),r.target=E.decode(e,t+8),I.decode.bytes=n+2,r},encodingLength(e){return 8+E.encodingLength(e.target)}}),L=T({encode(e,t,n){let r=L.encodingLength(e);return t||=new Uint8Array(L.encodingLength(e)),n||=0,e.issuerCritical&&(e.flags=L.ISSUER_CRITICAL),C(t,r-2,n),n+=2,t[n]=e.flags||0,n+=1,D.encode(e.tag,t,n),n+=D.encode.bytes,se(t,e.value,n),n+=y(e.value),L.encode.bytes=r,t},decode(e,t){t||=0;let n=x(e,t);t+=2;let r=t,i={};return i.flags=e[t],t+=1,i.tag=D.decode(e,t),t+=D.decode.bytes,i.value=_(e,t,r+n),i.issuerCritical=!!(i.flags&L.ISSUER_CRITICAL),L.decode.bytes=n+2,i},encodingLength(e){return D.encodingLength(e.tag)+D.encodingLength(e.value)+2}});L.ISSUER_CRITICAL=128;var ve=T({encode(e,t,n){t||=new Uint8Array(ve.encodingLength(e)),n||=0;let r=n;return n+=2,C(t,e.preference||0,n),n+=2,E.encode(e.exchange,t,n),n+=E.encode.bytes,C(t,n-r-2,r),ve.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.preference=x(e,t),t+=2,r.exchange=E.decode(e,t),t+=E.decode.bytes,ve.decode.bytes=t-n,r},encodingLength(e){return 4+E.encodingLength(e.exchange)}}),ye=T({encode(e,t,n){return t||=new Uint8Array(ye.encodingLength(e)),n||=0,C(t,4,n),n+=2,a.encode(e,t,n),t},decode(e,t){return t||=0,t+=2,a.decode(e,t)},bytes:6}),be=T({encode(e,t,n){return t||=new Uint8Array(be.encodingLength(e)),n||=0,C(t,16,n),n+=2,o.encode(e,t,n),be.encode.bytes=18,t},decode(e,t){t||=0,t+=2;let n=o.decode(e,t);return be.decode.bytes=18,n},bytes:18}),xe=e=>new Uint8Array(e),R=T({encode(e,t,n){t||=new Uint8Array(R.encodingLength(e)),n||=0;let r=n,i=re(e.code);if(C(t,i,n),n+=2,e.data)C(t,e.data.length,n),n+=2,w(e.data,t,n),n+=e.data.length;else switch(i){case 8:{let r=e.sourcePrefixLength||0,i=e.family||c(e.ip,xe),a=l(e.ip,xe),o=Math.ceil(r/8);C(t,o+4,n),n+=2,C(t,i,n),n+=2,t[n++]=r,t[n++]=e.scopePrefixLength||0,w(a,t,n,0,o),n+=o}break;case 11:e.timeout?(C(t,2,n),n+=2,C(t,e.timeout,n),n+=2):(C(t,0,n),n+=2);break;case 12:{let r=e.length||0;C(t,r,n),n+=2,t.fill(0,n,n+r),n+=r}break;case 14:{let r=e.tags.length*2;C(t,r,n),n+=2;for(let r of e.tags)C(t,r,n),n+=2}break;default:throw Error(`Unknown roption code: ${e.code}`)}return R.encode.bytes=n-r,t},decode(e,t){t||=0;let n={};n.code=x(e,t),n.type=ne(n.code),t+=2;let r=x(e,t);switch(t+=2,n.data=e.slice(t,t+r),n.code){case 8:n.family=x(e,t),t+=2,n.sourcePrefixLength=e[t++],n.scopePrefixLength=e[t++];{let i=new Uint8Array(n.family===1?4:16);w(e,i,0,t,t+r-4),n.ip=u(i)}break;case 11:r>0&&(n.timeout=x(e,t),t+=2);break;case 14:n.tags=[];for(let i=0;i<r;i+=2)n.tags.push(x(e,t)),t+=2}return R.decode.bytes=r+4,n},encodingLength(e){if(e.data)return e.data.length+4;switch(re(e.code)){case 8:{let t=e.sourcePrefixLength||0;return Math.ceil(t/8)+8}case 11:return typeof e.timeout==`number`?6:4;case 12:return e.length+4;case 14:return 4+e.tags.length*2}throw Error(`Unknown roption code: ${e.code}`)}}),z=T({encode(e,t,n){t||=new Uint8Array(z.encodingLength(e)),n||=0;let r=n,i=X(e,R);return C(t,i,n),n=Z(e,R,t,n+2),z.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r=[],i=x(e,t);t+=2;let a=0;for(;i>0;)r[a++]=R.decode(e,t),t+=R.decode.bytes,i-=R.decode.bytes;return z.decode.bytes=t-n,r},encodingLength(e){return 2+X(e||[],R)}}),B=T({encode(e,t,n){t||=new Uint8Array(B.encodingLength(e)),n||=0;let r=n,i=e.key;if(!v(i))throw Error(`Key must be a Buffer`);return n+=2,C(t,e.flags,n),n+=2,t[n]=B.PROTOCOL_DNSSEC,n+=1,t[n]=e.algorithm,n+=1,w(i,t,n,0,i.length),n+=i.length,B.encode.bytes=n-r,C(t,B.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=x(e,t);if(t+=2,r.flags=x(e,t),t+=2,e[t]!==B.PROTOCOL_DNSSEC)throw Error(`Protocol must be 3`);return t+=1,r.algorithm=e[t],t+=1,r.key=e.slice(t,n+i+2),t+=r.key.length,B.decode.bytes=t-n,r},encodingLength(e){return 6+y(e.key)}});B.PROTOCOL_DNSSEC=3,B.ZONE_KEY=128,B.SECURE_ENTRYPOINT=32768;var V=T({encode(e,t,n){t||=new Uint8Array(V.encodingLength(e)),n||=0;let r=n,i=e.signature;if(!v(i))throw Error(`Signature must be a Buffer`);return n+=2,C(t,f(e.typeCovered),n),n+=2,t[n]=e.algorithm,n+=1,t[n]=e.labels,n+=1,S(t,e.originalTTL,n),n+=4,S(t,e.expiration,n),n+=4,S(t,e.inception,n),n+=4,C(t,e.keyTag,n),n+=2,E.encode(e.signersName,t,n),n+=E.encode.bytes,w(i,t,n,0,i.length),n+=i.length,V.encode.bytes=n-r,C(t,V.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=x(e,t);return t+=2,r.typeCovered=d(x(e,t)),t+=2,r.algorithm=e[t],t+=1,r.labels=e[t],t+=1,r.originalTTL=b(e,t),t+=4,r.expiration=b(e,t),t+=4,r.inception=b(e,t),t+=4,r.keyTag=x(e,t),t+=2,r.signersName=E.decode(e,t),t+=E.decode.bytes,r.signature=e.slice(t,n+i+2),t+=r.signature.length,V.decode.bytes=t-n,r},encodingLength(e){return 20+E.encodingLength(e.signersName)+y(e.signature)}}),H=T({encode(e,t,n){t||=new Uint8Array(H.encodingLength(e)),n||=0;let r=n;return n+=2,E.encode(e.mbox||`.`,t,n),n+=E.encode.bytes,E.encode(e.txt||`.`,t,n),n+=E.encode.bytes,H.encode.bytes=n-r,C(t,H.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.mbox=E.decode(e,t)||`.`,t+=E.decode.bytes,r.txt=E.decode(e,t)||`.`,t+=E.decode.bytes,H.decode.bytes=t-n,r},encodingLength(e){return 2+E.encodingLength(e.mbox||`.`)+E.encodingLength(e.txt||`.`)}}),U=T({encode(e,t,n){t||=new Uint8Array(U.encodingLength(e)),n||=0;let r=n,i=[];for(let t=0;t<e.length;t++){let n=f(e[t]);i[n>>8]===void 0&&(i[n>>8]=[]),i[n>>8][n>>3&31]|=1<<7-(n&7)}for(let e=0;e<i.length;e++)if(i[e]!==void 0){let r=oe(i[e]);t[n]=e,n+=1,t[n]=r.length,n+=1,w(r,t,n,0,r.length),n+=r.length}return U.encode.bytes=n-r,t},decode(e,t,n){t||=0;let r=t,i=[];for(;t-r<n;){let n=e[t];t+=1;let r=e[t];t+=1;for(let a=0;a<r;a++){let r=e[t+a];for(let e=0;e<8;e++)if(r&1<<7-e){let t=d(n<<8|a<<3|e);i.push(t)}}t+=r}return U.decode.bytes=t-r,i},encodingLength(e){let t=[];for(let n=0;n<e.length;n++){let r=f(e[n]);t[r>>8]=Math.max(t[r>>8]||0,r&255)}let n=0;for(let e=0;e<t.length;e++)t[e]!==void 0&&(n+=2+Math.ceil((t[e]+1)/8));return n}}),W=T({encode(e,t,n){t||=new Uint8Array(W.encodingLength(e)),n||=0;let r=n;return n+=2,E.encode(e.nextDomain,t,n),n+=E.encode.bytes,U.encode(e.rrtypes,t,n),n+=U.encode.bytes,W.encode.bytes=n-r,C(t,W.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=x(e,t);return t+=2,r.nextDomain=E.decode(e,t),t+=E.decode.bytes,r.rrtypes=U.decode(e,t,i-(t-n)),t+=U.decode.bytes,W.decode.bytes=t-n,r},encodingLength(e){return 2+E.encodingLength(e.nextDomain)+U.encodingLength(e.rrtypes)}}),G=T({encode(e,t,n){t||=new Uint8Array(G.encodingLength(e)),n||=0;let r=n,i=e.salt;if(!v(i))throw Error(`salt must be a Buffer`);let a=e.nextDomain;if(!v(a))throw Error(`nextDomain must be a Buffer`);return n+=2,t[n]=e.algorithm,n+=1,t[n]=e.flags,n+=1,C(t,e.iterations,n),n+=2,t[n]=i.length,n+=1,w(i,t,n,0,i.length),n+=i.length,t[n]=a.length,n+=1,w(a,t,n,0,a.length),n+=a.length,U.encode(e.rrtypes,t,n),n+=U.encode.bytes,G.encode.bytes=n-r,C(t,G.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=x(e,t);t+=2,r.algorithm=e[t],t+=1,r.flags=e[t],t+=1,r.iterations=x(e,t),t+=2;let a=e[t];t+=1,r.salt=e.slice(t,t+a),t+=a;let o=e[t];return t+=1,r.nextDomain=e.slice(t,t+o),t+=o,r.rrtypes=U.decode(e,t,i-(t-n)),t+=U.decode.bytes,G.decode.bytes=t-n,r},encodingLength(e){return 8+e.salt.length+e.nextDomain.length+U.encodingLength(e.rrtypes)}}),K=T({encode(e,t,n){t||=new Uint8Array(K.encodingLength(e)),n||=0;let r=n,i=e.digest;if(!v(i))throw Error(`Digest must be a Buffer`);return n+=2,C(t,e.keyTag,n),n+=2,t[n]=e.algorithm,n+=1,t[n]=e.digestType,n+=1,w(i,t,n,0,i.length),n+=i.length,K.encode.bytes=n-r,C(t,K.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=x(e,t);return t+=2,r.keyTag=x(e,t),t+=2,r.algorithm=e[t],t+=1,r.digestType=e[t],t+=1,r.digest=e.slice(t,n+i+2),t+=r.digest.length,K.decode.bytes=t-n,r},encodingLength(e){return 6+y(e.digest)}});function Se(e){switch(e.toUpperCase()){case`A`:return ye;case`PTR`:return F;case`CNAME`:return F;case`DNAME`:return F;case`TXT`:return M;case`NULL`:return N;case`AAAA`:return be;case`SRV`:return I;case`HINFO`:return P;case`CAA`:return L;case`NS`:return A;case`SOA`:return j;case`MX`:return ve;case`OPT`:return z;case`DNSKEY`:return B;case`RRSIG`:return V;case`RP`:return H;case`NSEC`:return W;case`NSEC3`:return G;case`DS`:return K}return k}var q=T({encode(e,t,n){t||=new Uint8Array(q.encodingLength(e)),n||=0;let r=n;if(E.encode(e.name,t,n),n+=E.encode.bytes,C(t,f(e.type),n),e.type.toUpperCase()===`OPT`){if(e.name!==`.`)throw Error(`OPT name must be root.`);C(t,e.udpPayloadSize||4096,n+2),t[n+4]=e.extendedRcode||0,t[n+5]=e.ednsVersion||0,C(t,e.flags||0,n+6),n+=8,z.encode(e.options||[],t,n),n+=z.encode.bytes}else{let r=te(e.class===void 0?`IN`:e.class);e.flush&&(r|=me),C(t,r,n+2),S(t,e.ttl||0,n+4),n+=8;let i=Se(e.type);i.encode(e.data,t,n),n+=i.encode.bytes}return q.encode.bytes=n-r,t},decode(e,t){t||=0;let n={},r=t;if(n.name=E.decode(e,t),t+=E.decode.bytes,n.type=d(x(e,t)),n.type===`OPT`)n.udpPayloadSize=x(e,t+2),n.extendedRcode=e[t+4],n.ednsVersion=e[t+5],n.flags=x(e,t+6),n.flag_do=(n.flags>>15&1)==1,n.options=z.decode(e,t+8),t+=8+z.decode.bytes;else{let r=x(e,t+2);n.ttl=b(e,t+4),n.class=m(r&he),n.flush=!!(r&me);let i=Se(n.type);n.data=i.decode(e,t+8),t+=8+i.decode.bytes}return q.decode.bytes=t-r,n},encodingLength(e){let t=e.data!==null&&e.data!==void 0?e.data:e.options;return E.encodingLength(e.name)+8+Se(e.type).encodingLength(t)}}),J=T({encode(e,t,n){t||=new Uint8Array(J.encodingLength(e)),n||=0;let r=n;return E.encode(e.name,t,n),n+=E.encode.bytes,C(t,f(e.type),n),n+=2,C(t,te(e.class===void 0?`IN`:e.class),n),n+=2,J.encode.bytes=n-r,e},decode(e,t){t||=0;let n=t,r={};return r.name=E.decode(e,t),t+=E.decode.bytes,r.type=d(x(e,t)),t+=2,r.class=m(x(e,t)),t+=2,r.class&ge&&(r.class&=_e),J.decode.bytes=t-n,r},encodingLength(e){return E.encodingLength(e.name)+4}}),Y={encode:function(e,t,n){let r=!t;r&&(t=new Uint8Array(De(e))),n||=0;let i=n;return e.questions||=[],e.answers||=[],e.authorities||=[],e.additionals||=[],O.encode(e,t,n),n+=O.encode.bytes,n=Z(e.questions,J,t,n),n=Z(e.answers,q,t,n),n=Z(e.authorities,q,t,n),n=Z(e.additionals,q,t,n),Y.encode.bytes=n-i,r&&Ee.bytes!==t.length?t.slice(0,Ee.bytes):t},decode:function(e,t){t||=0;let n=t,r=O.decode(e,t);return t+=O.decode.bytes,t=Oe(r.questions,J,e,t),t=Oe(r.answers,q,e,t),t=Oe(r.authorities,q,e,t),t=Oe(r.additionals,q,e,t),Y.decode.bytes=t-n,r},encodingLength:function(e){return O.encodingLength(e)+X(e.questions||[],J)+X(e.answers||[],q)+X(e.authorities||[],q)+X(e.additionals||[],q)}};Y.encode.bytes=0,Y.decode.bytes=0;function Ce(e,t){if(e.questions)throw Error(`Only one .question object expected instead of a .questions array!`);let n=Object.assign({type:t},e);return n.question&&(n.questions=[n.question],delete n.question),n}var we={encode:function(e,t,n){return t=Y.encode(Ce(e,`query`),t,n),we.encode.bytes=Y.encode.bytes,t},decode:function(e,t){let n=Y.decode(e,t);return we.decode.bytes=Y.decode.bytes,n.questions&&(n.question=n.questions[0],delete n.questions),n},encodingLength:function(e){return Y.encodingLength(Ce(e,`query`))}};we.encode.bytes=0,we.decode.bytes=0;var Te={encode:function(e,t,n){return t=Y.encode(Ce(e,`response`),t,n),Te.encode.bytes=Y.encode.bytes,t},decode:function(e,t){let n=Y.decode(e,t);return Te.decode.bytes=Y.decode.bytes,n.questions&&(n.question=n.questions[0],delete n.questions),n},encodingLength:function(e){return Y.encodingLength(Ce(e,`response`))}};Te.encode.bytes=0,Te.decode.bytes=0;var Ee=Y.encode;Y.decode;var De=Y.encodingLength;function X(e,t){let n=0;for(let r=0;r<e.length;r++)n+=t.encodingLength(e[r]);return n}function Z(e,t,n,r){for(let i=0;i<e.length;i++)t.encode(e[i],n,r),r+=t.encode.bytes;return r}function Oe(e,t,n,r){for(let i=0;i<e.length;i++)e[i]=t.decode(n,r),r+=t.decode.bytes;return r}function ke(e,t,n,r){if(t.length!==64)throw Error(`Charset needs to be 64 characters long! (${t.length})`);let i=new Uint8Array(256),a=new Uint8Array(64);for(let e=0;e<64;e+=1){let n=t.charCodeAt(e);if(n>255)throw Error(`Character #${e} in charset [code=${n}, char=${t.charAt(e)}] is too high! (max=255)`);if(i[n]!==0)throw Error(`Character [code=${n}, char=${t.charAt(e)}] is more than once in the charset!`);i[n]=e,a[e]=n}let o=n.charCodeAt(0),s={name:e,encodingLength(e){let t=e.length,n=t*.75|0;return e.charCodeAt(t-1)===o?e.charCodeAt(t-2)===o?n-2:n-1:n},encode(e,t,n){t??=new Uint8Array(s.encodingLength(e)),n??=0;let r=e.length;e.charCodeAt(r-1)===o&&(e.charCodeAt(r-2)===o?r-=2:--r);let a=r%4,c=r-a,l=n,u=0;for(;u<c;){let n=i[e.charCodeAt(u)]<<18|i[e.charCodeAt(u+1)]<<12|i[e.charCodeAt(u+2)]<<6|i[e.charCodeAt(u+3)];t[l++]=n>>16,t[l++]=n>>8,t[l++]=n,u+=4}if(a===3){let n=i[e.charCodeAt(u)]<<10|i[e.charCodeAt(u+1)]<<4|i[e.charCodeAt(u+2)]>>2;t[l++]=n>>8,t[l++]=n}else a===2&&(t[l++]=i[e.charCodeAt(u)]<<2|i[e.charCodeAt(u+1)]>>4);return s.encode.bytes=l-n,t},decode(e,t,n){t??=0,n??=e.length;let i=n-t,c=i%3,l=t+i-c,u=[];for(let n=t;n<l;n+=3){let t=e[n]<<16|e[n+1]<<8|e[n+2];u.push(a[t>>18&63],a[t>>12&63],a[t>>6&63],a[t&63])}if(c===2){let t=(e[n-2]<<8)+e[n-1];u.push(a[t>>10],a[t>>4&63],a[t<<2&63]),r===1&&u.push(o)}else if(c===1){let t=e[n-1];u.push(a[t>>2],a[t<<4&63]),r===1&&u.push(o,o)}return s.decode.bytes=i,String.fromCharCode.apply(String,u)}};return s}ke(`base64`,`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,`=`,1);var Ae=ke(`base64-url`,`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,`=`,2),je=e(((e,t)=>{t.exports={}})),Me=typeof global<`u`?global.AbortError:typeof window<`u`?window.AbortError:null;Me||=class extends Error{constructor(e=`Request aborted.`){super(e)}},Me.prototype.name=`AbortError`,Me.prototype.code=`ABORT_ERR`;var Ne=typeof globalThis<`u`&&globalThis.URL||je().URL,Q=class extends Error{constructor(e,t,n){super(`status=`+t+` while requesting `+e+` [`+n+`]`),this.uri=e,this.status=t,this.method=n}toJSON(){return{code:this.code,uri:this.uri,status:this.status,method:this.method,endpoint:this.endpoint}}};Q.prototype.name=`HTTPStatusError`,Q.prototype.code=`HTTP_STATUS`;var Pe=class extends Error{constructor(e,t){super(e),this.cause=t}toJSON(){return{message:this.message,endpoint:this.endpoint,code:this.code,cause:Re(this.cause)}}};Pe.prototype.name=`ResponseError`,Pe.prototype.code=`RESPONSE_ERR`;var Fe=class extends Error{constructor(e){super(`Timeout (t=`+e+`).`),this.timeout=e}toJSON(){return{code:this.code,endpoint:this.endpoint,timeout:this.timeout}}};Fe.prototype.name=`TimeoutError`,Fe.prototype.code=`ETIMEOUT`;var Ie=/^((\d{1,3}\.){3,3}\d{1,3})(:(\d{2,5}))?$/,Le=/^((::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?)(:(\d{2,5}))?$/i;function Re(e){if(typeof e==`string`)return{message:e};try{let t=JSON.stringify(e);if(t!==`{}`)return JSON.parse(t)}catch{}let t={message:String(e.message||e)};return e.code!==void 0&&(t.code=String(e.code)),t}var ze=/^(([a-z0-9]+:)\/\/)?([^/[\s:]+|\[[^\]]+\])?(:([^/\s]+))?(\/[^\s]*)?(.*)$/,Be=/\[(post|get|((ipv4|ipv6|name)=([^\]]+)))\]/gi,Ve=/\[(((pk|name)=([^\]]+)))\]/gi;function He(e){let t=ze.exec(e),n=t[2]||`https:`,r=t[3],i=t[5],a=t[6],o=t[7];if(n===`https:`||n===`http:`){let e=Ue(o,Be);return{name:e.name,protocol:n,ipv4:e.ipv4,ipv6:e.ipv6,host:r,port:i,path:a,method:e.post?`POST`:`GET`}}if(n===`udp:`||n===`udp4:`||n===`udp6:`){let t=Ue(o,Ve),a=/^\[(.*)\]$/.exec(r);if(a&&n===`udp4:`)throw Error(`Endpoint parsing error: Cannot use ipv6 host with udp4: (endpoint=${e})`);if(!a&&n===`udp6:`)throw Error(`Endpoint parsing error: Incorrectly formatted host for udp6: (endpoint=${e})`);return a?new Ye({protocol:`udp6:`,ipv6:a[1],port:i,pk:t.pk,name:t.name}):new Je({protocol:`udp4:`,ipv4:r,port:i,pk:t.pk,name:t.name})}throw new We(n,e)}function Ue(e,t){t.lastIndex=0;let n={};for(;;){let r=t.exec(e);if(!r)break;r[2]?n[r[3].toLowerCase()]=r[4]:n[r[1].toLowerCase()]=!0}return n}var We=class extends Error{constructor(e,t){super(`Invalid Endpoint: unsupported protocol "${e}" for endpoint: ${t}, supported protocols: ${Ge.join(`, `)}`),this.protocol=e,this.endpoint=t}toJSON(){return{code:this.code,endpoint:this.endpoint,timeout:this.timeout}}};We.prototype.name=`InvalidProtocolError`,We.prototype.code=`EPROTOCOL`;var Ge=[`http:`,`https:`,`udp4:`,`udp6:`],Ke=class{constructor(e,t){this.name=e.name||null,this.protocol=e.protocol;let n=typeof e.port==`string`?e.port=parseInt(e.port,10):e.port;if(n==null)this.port=t?this.protocol===`https:`?443:80:e.pk?443:53;else if(typeof n!=`number`&&!isNaN(n))throw Error(`Invalid Endpoint: port "${e.port}" needs to be a number: ${JSON.stringify(e)}`);else this.port=n}toJSON(){return this.toString()}},qe=class extends Ke{constructor(e){super(e,!1),this.pk=e.pk||null}toString(){let e=this.port===(this.pk?443:53)?``:`:${this.port}`,t=this.pk?` [pk=${this.pk}]`:``,n=this.name?` [name=${this.name}]`:``;return`udp://${this.ipv4||`[${this.ipv6}]`}${e}${t}${n}`}},Je=class extends qe{constructor(e){if(super(Object.assign({protocol:`udp4:`},e)),!e.ipv4||typeof e.ipv4!=`string`)throw Error(`Invalid Endpoint: .ipv4 "${e.ipv4}" needs to be set: ${JSON.stringify(e)}`);this.ipv4=e.ipv4}},Ye=class extends qe{constructor(e){if(super(Object.assign({protocol:`udp6:`},e)),!e.ipv6||typeof e.ipv6!=`string`)throw Error(`Invalid Endpoint: .ipv6 "${e.ipv6}" needs to be set: ${JSON.stringify(e)}`);this.ipv6=e.ipv6}};function Xe(e){return Le.test(e)&&!Ie.test(e)?`[${e}]`:e}var Ze=class extends Ke{constructor(e){if(super(Object.assign({protocol:`https:`},e),!0),e.host||(e.ipv4&&(e.host=e.ipv4),e.ipv6&&(e.host=`[${e.ipv6}]`)),!e.host||typeof e.host!=`string`)throw Error(`Invalid Endpoint: host "${e.path}" needs to be set: ${JSON.stringify(e)}`);if(this.host=e.host,this.path=e.path||`/dns-query`,this.method=/^post$/i.test(e.method)?`POST`:`GET`,this.ipv4=e.ipv4,this.ipv6=e.ipv6,!this.ipv6){let e=Le.exec(this.host);e&&(this.ipv6=e[1])}this.ipv4||Ie.test(this.host)&&(this.ipv4=this.host);let t=`${this.protocol}//${Xe(this.host)}:${this.port}${this.path}`;try{this.url=new Ne(t)}catch(e){throw Error(e.message+` [${t}]`)}}toString(){let e=this.protocol===`https:`?``:`http://`,t=this.port===(this.protocol===`https:`?443:80)?``:`:${this.port}`,n=this.method===`GET`?``:` [post]`,r=this.path===`/dns-query`?``:this.path,i=this.name?` [name=${this.name}]`:``,a=this.ipv4&&this.ipv4!==this.host?` [ipv4=${this.ipv4}]`:``,o=this.ipv6&&this.ipv6!==this.host?` [ipv6=${this.ipv6}]`:``;return`${e}${Xe(this.host)}${t}${r}${n}${a}${o}${i}`}};function Qe(e){let t;if(typeof e==`string`)t=He(e);else{if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Can not convert ${e} to an endpoint`);if(e instanceof Ke)return e;t=e}(t.protocol===null||t.protocol===void 0)&&(t.protocol=`https:`);let n=t.protocol;if(n===`udp4:`)return new Je(t);if(n===`udp6:`)return new Ye(t);if(n===`https:`||n===`http:`)return new Ze(t);throw new We(n,JSON.stringify(t))}var $e=`application/dns-message`;function et(){}async function tt(e,t,n,r){let i=t?t.localStoragePrefix+t.name:null;if(i)try{let e=JSON.parse(localStorage.getItem(i));if(e&&e.time>t.maxTime)return e}catch{}let{data:a}=await nt(e,`GET`,null,n,r),o={time:Date.now(),data:JSON.parse(_(a))};if(i)try{localStorage.setItem(i,JSON.stringify(o))}catch{o.time=null}return o}function nt(e,t,n,r,i){return new Promise((a,o)=>{let s=new Ne(e);t===`GET`&&n&&(s.search=`?dns=`+Ae.decode(n));let c=s.toString(),l=new XMLHttpRequest;l.open(t,c,!0),l.setRequestHeader(`Accept`,$e),t===`POST`&&l.setRequestHeader(`Content-Type`,$e),l.responseType=`arraybuffer`,l.timeout=r,l.ontimeout=u,l.onreadystatechange=f,l.onerror=ee,l.onload=d,t===`POST`?l.send(n):l.send(),i&&i.addEventListener(`abort`,m);function u(){p(new Fe(r));try{l.abort()}catch{}}function d(){if(l.status!==200)p(new Q(c,l.status,t));else{let e;if(typeof l.response==`string`)e=g(l.response);else if(l.response instanceof Uint8Array)e=l.response;else if(Array.isArray(l.response)||l.response instanceof ArrayBuffer)e=new Uint8Array(l.response);else throw Error(`Unprocessable response `+l.response);p(null,e)}}function f(){if(l.readyState>1&&l.status!==200&&l.status!==0){p(new Q(c,l.status,t));try{l.abort()}catch{}}}let p=function(e,t){p=et,i&&i.removeEventListener(`abort`,m),a(e?{error:e,response:l}:{data:t,response:l})};function ee(){p(l.status===200?Error(`Inexplicable XHR Error`):new Q(c,l.status,t))}function m(){p(new Me);try{l.abort()}catch{}}})}function rt(e){return e.filter(e=>e.cors||e.endpoint.cors)}var it={data:[{name:`adfree.usableprivacy.net`,endpoint:{protocol:`https:`,host:`adfree.usableprivacy.net`},description:`Public updns DoH service with advertising, tracker and malware filters.
2
2
  Hosted in Europe by @usableprivacy, details see: https://docs.usableprivacy.com`,country:`Germany`,location:{lat:51.2993,long:9.491},filter:!0},{name:`adguard-dns-doh`,endpoint:{protocol:`https:`,host:`dns.adguard.com`,ipv4:`94.140.15.15`},description:`Remove ads and protect your computer from malware (over DoH)`,country:`France`,location:{lat:48.8582,long:2.3387},filter:!0},{name:`adguard-dns-family-doh`,endpoint:{protocol:`https:`,host:`dns-family.adguard.com`,ipv4:`94.140.15.16`},description:`Adguard DNS with safesearch and adult content blocking (over DoH)`,country:`France`,location:{lat:48.8582,long:2.3387},filter:!0},{name:`adguard-dns-unfiltered-doh`,endpoint:{protocol:`https:`,host:`dns-unfiltered.adguard.com`,ipv4:`94.140.14.140`},description:`AdGuard public DNS servers without filters (over DoH)`,country:`France`,location:{lat:48.8582,long:2.3387}},{name:`ahadns-doh-chi`,endpoint:{protocol:`https:`,host:`doh.chi.ahadns.net`,cors:!0},description:`A zero logging DNS with support for DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT). Blocks ads, malware, trackers, viruses, ransomware, telemetry and more. No persistent logs. DNSSEC. Hosted in Chicago, USA. By https://ahadns.com/
3
3
  Server statistics can be seen at: https://statistics.ahadns.com/?server=chi`,country:`United States`,location:{lat:41.8483,long:-87.6517},filter:!0,cors:!0},{name:`ahadns-doh-in`,endpoint:{protocol:`https:`,host:`doh.in.ahadns.net`,cors:!0},description:`A zero logging DNS with support for DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT). Blocks ads, malware, trackers, viruses, ransomware, telemetry and more. No persistent logs. DNSSEC. Hosted in Mumbai, India. By https://ahadns.com/
4
4
  Server statistics can be seen at: https://statistics.ahadns.com/?server=in`,country:`India`,location:{lat:19.0748,long:72.8856},filter:!0,cors:!0},{name:`ahadns-doh-la`,endpoint:{protocol:`https:`,host:`doh.la.ahadns.net`,cors:!0},description:`A zero logging DNS with support for DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT). Blocks ads, malware, trackers, viruses, ransomware, telemetry and more. No persistent logs. DNSSEC. Hosted in Los Angeles, USA. By https://ahadns.com/
@@ -84,4 +84,4 @@ https://www.switch.ch
84
84
  Provides protection against malware, but does not block ads.`,filter:!0},{name:`uncensoreddns-dk-ipv4`,endpoint:{protocol:`https:`,host:`unicast.uncensoreddns.org`},description:`Also known as censurfridns.
85
85
  DoH, no logs, no filter, DNSSEC, unicast hosted in Denmark - https://blog.uncensoreddns.org`,country:`Denmark`,location:{lat:55.7123,long:12.0564}},{name:`uncensoreddns-ipv4`,endpoint:{protocol:`https:`,host:`anycast.uncensoreddns.org`},description:`Also known as censurfridns.
86
86
  DoH, no logs, no filter, DNSSEC, anycast - https://blog.uncensoreddns.org`,country:`Denmark`,location:{lat:55.7123,long:12.0564}},{name:`v.dnscrypt.uk-doh-ipv4`,endpoint:{protocol:`https:`,host:`v.dnscrypt.uk`},description:`DoH, no logs, uncensored, DNSSEC. Hosted in London UK on Digital Ocean
87
- https://www.dnscrypt.uk`,country:`United Kingdom`,location:{lat:51.4964,long:-.1224}}],time:1654187067783};function ct(e){let t=e.time===null||e.time===void 0?Date.now():e.time,n=ot(e.data.map(e=>(e.endpoint=$(Object.assign({name:e.name},e.endpoint)),e))),r=n.map(e=>e.endpoint);return{data:{resolvers:n,resolverByName:n.reduce((e,t)=>(e[t.name]=t,e),{}),endpoints:r,endpointByName:r.reduce((e,t)=>(e[t.name]=t,e),{})},time:t}}var lt=ct(st);function ut(e){let t=Object.assign({type:`query`},e);return delete t.question,t.questions=[],e.question&&t.questions.push(e.question),t}function dt(e,t,n,r){return r&&r.aborted?Promise.reject(new Z):e.protocol===`udp4:`||e.protocol===`udp6:`?nt(e,t,n,r):ft(e,t,n,r)}function ft(e,t,n,r){return at(e.url,e.method,Oe(Object.assign({flags:256},t)),n,r).then(function(e){let t=e.data,n=e.response,r=e.error;if(r===void 0){if(t.length===0)r=new Ie(`Empty.`);else try{let e=ke(t);return e.response=n,e}catch(e){r=new Ie(`Invalid packet (cause=`+e.message+`)`,e)}}throw Object.assign(r,{response:n})})}var pt=new Fe(`https://martinheidegger.github.io/dns-query/resolvers.json`);function mt(e){return/^@/.test(e)}new class{constructor(e){this.opts=Object.assign({timeout:5e3,update:!0,updateURL:pt,persist:!1,localStoragePrefix:`dnsquery_`,maxAge:3e5},e),this._dataP=null}_data(e,t){return!e&&this._dataP!==null?this._dataP.then(e=>e.time<Date.now()-this.opts.maxAge?this._data(!0,e):e):(this._dataP=this.opts.update?rt(this.opts.updateURL,this.opts.persist?{name:`resolvers.json`,localStoragePrefix:this.opts.localStoragePrefix,maxTime:Date.now()-this.opts.maxAge}:null,this.opts.timeout).then(e=>ct({data:e.data.resolvers,time:e.time})).catch(()=>t||lt):Promise.resolve(lt),this._dataP)}data(){return this._data(!1).then(e=>e.data)}endpoints(e){if(e==null)return this.data().then(e=>e.endpoints);if(e===`doh`&&(e=yt),e===`dns`&&(e=bt),typeof e==`function`)return this.data().then(t=>t.endpoints.filter(e));if(typeof e==`string`||typeof e[Symbol.iterator]!=`function`)return Promise.reject(Error(`Endpoints (${e}) needs to be iterable (array).`));if(e=Array.from(e).filter(Boolean),e.findIndex(mt)===-1)try{return Promise.resolve(e.map($))}catch(e){return Promise.reject(e)}return this.data().then(t=>e.map(e=>{if(mt(e)){let n=t.endpointByName[e.substring(1)];if(!n)throw Error(`Endpoint ${e} is not known.`);return n}return $(e)}))}};function ht(e){return typeof e!=`object`||!e?!1:typeof e.then==`function`}function gt(e){return ht(e)?e:Promise.resolve(e)}function _t(e,t){return t=Object.assign({retries:5,timeout:3e4},t),e.question?gt(t.endpoints).then(n=>{if(!Array.isArray(n)||n.length===0)throw Error(`No endpoints defined to lookup dns records.`);return vt(n.map($),ut(e),t)}).then(e=>(e.question=e.questions[0],delete e.questions,e)):Promise.reject(Error(`To request data you need to specify a .question!`))}function vt(e,t,n){let r=e.length===1?e[0]:e[Math.floor(Math.random()*e.length)%e.length];return dt(r,t,n.timeout,n.signal).then(e=>(e.endpoint=r.toString(),e),i=>{if(i.name===`AbortError`||n.retries===0)throw i.endpoint=r.toString(),i;return n.retries>0&&--n.retries,vt(e,t,n)})}function yt(e){return e.protocol===`https:`||e.protocol===`http:`}function bt(e){return e.protocol===`udp4:`||e.protocol===`udp6:`}console.log(`Hello World Custom Library!`),e.query=_t});
87
+ https://www.dnscrypt.uk`,country:`United Kingdom`,location:{lat:51.4964,long:-.1224}}],time:1654187067783};function at(e){let t=e.time===null||e.time===void 0?Date.now():e.time,n=rt(e.data.map(e=>(e.endpoint=Qe(Object.assign({name:e.name},e.endpoint)),e))),r=n.map(e=>e.endpoint);return{data:{resolvers:n,resolverByName:n.reduce((e,t)=>(e[t.name]=t,e),{}),endpoints:r,endpointByName:r.reduce((e,t)=>(e[t.name]=t,e),{})},time:t}}var ot=at(it),st=new Ne(`https://martinheidegger.github.io/dns-query/resolvers.json`);function ct(e){return/^@/.test(e)}new class{constructor(e){this.opts=Object.assign({timeout:5e3,update:!0,updateURL:st,persist:!1,localStoragePrefix:`dnsquery_`,maxAge:3e5},e),this._dataP=null}_data(e,t){return!e&&this._dataP!==null?this._dataP.then(e=>e.time<Date.now()-this.opts.maxAge?this._data(!0,e):e):(this._dataP=this.opts.update?tt(this.opts.updateURL,this.opts.persist?{name:`resolvers.json`,localStoragePrefix:this.opts.localStoragePrefix,maxTime:Date.now()-this.opts.maxAge}:null,this.opts.timeout).then(e=>at({data:e.data.resolvers,time:e.time})).catch(()=>t||ot):Promise.resolve(ot),this._dataP)}data(){return this._data(!1).then(e=>e.data)}endpoints(e){if(e==null)return this.data().then(e=>e.endpoints);if(e===`doh`&&(e=lt),e===`dns`&&(e=ut),typeof e==`function`)return this.data().then(t=>t.endpoints.filter(e));if(typeof e==`string`||typeof e[Symbol.iterator]!=`function`)return Promise.reject(Error(`Endpoints (${e}) needs to be iterable (array).`));if(e=Array.from(e).filter(Boolean),e.findIndex(ct)===-1)try{return Promise.resolve(e.map(Qe))}catch(e){return Promise.reject(e)}return this.data().then(t=>e.map(e=>{if(ct(e)){let n=t.endpointByName[e.substring(1)];if(!n)throw Error(`Endpoint ${e} is not known.`);return n}return Qe(e)}))}};function lt(e){return e.protocol===`https:`||e.protocol===`http:`}function ut(e){return e.protocol===`udp4:`||e.protocol===`udp6:`}var $={name:`AES-GCM`,length:256,tagLength:128,ivLength:12,key:`Hello, World!`},dt=new TextEncoder,ft=new TextDecoder,pt;function mt(){return pt||=crypto.subtle.digest(`SHA-256`,dt.encode($.key)).then(e=>crypto.subtle.importKey(`raw`,e,{name:$.name},!1,[`encrypt`,`decrypt`])),pt}function ht(e){return Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``)}function gt(e){if(e.length%2!=0)throw Error(`Invalid ciphertext`);let t=new Uint8Array(e.length/2);for(let n=0;n<t.length;n++){let r=Number.parseInt(e.slice(n*2,n*2+2),16);if(Number.isNaN(r))throw Error(`Invalid ciphertext`);t[n]=r}return t}async function _t(e){let t=crypto.getRandomValues(new Uint8Array($.ivLength)),n=await crypto.subtle.encrypt({name:$.name,iv:t,tagLength:$.tagLength},await mt(),dt.encode(e)),r=new Uint8Array($.ivLength+n.byteLength);return r.set(t),r.set(new Uint8Array(n),$.ivLength),ht(r)}async function vt(e){let t=gt(e);if(t.length<=$.ivLength)throw Error(`Invalid ciphertext`);let n=await crypto.subtle.decrypt({name:$.name,iv:t.slice(0,$.ivLength),tagLength:$.tagLength},await mt(),t.slice($.ivLength));return ft.decode(n)}(async()=>{let e=await _t(`Fizz Buzz`);console.log(`Encrypted:`,e);let t=await vt(e);console.log(`Decrypted:`,t)})()});