@talkjs/core 1.3.0 → 1.4.0

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.
@@ -529,12 +529,12 @@ class T extends x {
529
529
  this.connection.call("SUBSCRIBE", ["users"], { ids: e2 }).then((e3) => this.subscribeCalls.forEach((t2) => t2.deferred.resolve(e3)));
530
530
  }
531
531
  }
532
- class S extends x {
532
+ class I extends x {
533
533
  constructor(e2, t2, s2) {
534
534
  super(s2, () => this.sendMutate()), this.conversationId = e2, this.connection = t2, this.calls = [];
535
535
  }
536
536
  canPush(e2, t2) {
537
- return !!S.isCorrectBatchTypeFor(e2, t2) && t2[1] === this.conversationId;
537
+ return !!I.isCorrectBatchTypeFor(e2, t2) && t2[1] === this.conversationId;
538
538
  }
539
539
  static isCorrectBatchTypeFor(e2, t2) {
540
540
  return s(t2, ["conversations", "*", "participants", "*"]) && ("PUT" === e2 || "POST" === e2 || "PATCH" === e2);
@@ -555,7 +555,7 @@ class S extends x {
555
555
  });
556
556
  }
557
557
  }
558
- class I {
558
+ class S {
559
559
  constructor(e2, t2, s2) {
560
560
  this.pendingBatch = null, this.connection = new E(e2, t2, s2);
561
561
  }
@@ -577,9 +577,9 @@ class I {
577
577
  }
578
578
  createEmptyBatchFor(e2, t2) {
579
579
  if (T.isCorrectBatchTypeFor(e2, t2)) return new T(this.connection, () => this.pendingBatch = null);
580
- if (S.isCorrectBatchTypeFor(e2, t2)) {
580
+ if (I.isCorrectBatchTypeFor(e2, t2)) {
581
581
  const e3 = t2[1];
582
- return new S(e3, this.connection, () => this.pendingBatch = null);
582
+ return new I(e3, this.connection, () => this.pendingBatch = null);
583
583
  }
584
584
  return null;
585
585
  }
@@ -587,7 +587,7 @@ class I {
587
587
  const D = { 200: "RESOLVE", 400: "RESOLVE", 401: "RETRY", 402: "RESOLVE", 403: "RESOLVE", 404: "RESOLVE", 405: "RESOLVE", 409: "RESOLVE", 429: "DELAY", 500: "DELAY" };
588
588
  class M {
589
589
  constructor(e2, t2, s2) {
590
- this.throttler = new F(), this.alive = true, this.connection = new I(e2, t2, s2);
590
+ this.throttler = new F(), this.alive = true, this.connection = new S(e2, t2, s2);
591
591
  }
592
592
  call(e2, t2, s2) {
593
593
  return __async(this, null, function* () {
@@ -636,7 +636,7 @@ class F {
636
636
  function B(e2) {
637
637
  return e2.map((e3) => encodeURIComponent(e3)).join();
638
638
  }
639
- class R {
639
+ class N {
640
640
  constructor() {
641
641
  this.paths = {};
642
642
  }
@@ -656,9 +656,9 @@ class R {
656
656
  Object.values(this.paths).forEach((t2) => e2(t2));
657
657
  }
658
658
  }
659
- class N {
659
+ class R {
660
660
  constructor(e2, t2, s2) {
661
- this.handlers = s2, this.targetSubscriptions = new R(), this.connection = new M(e2, t2, { onUpstreamRestarting: () => this.handlers.onUpstreamRestarting(), onSubscriptionsLost: () => {
661
+ this.handlers = s2, this.targetSubscriptions = new N(), this.connection = new M(e2, t2, { onUpstreamRestarting: () => this.handlers.onUpstreamRestarting(), onSubscriptionsLost: () => {
662
662
  this.targetSubscriptions.forEach((e3) => {
663
663
  this.resubscribe(e3);
664
664
  }), this.handlers.onResubscribeSent();
@@ -692,10 +692,10 @@ class N {
692
692
  return this.connection.isConnected();
693
693
  }
694
694
  }
695
- function P(e2, t2) {
695
+ function _(e2, t2) {
696
696
  return void 0 === t2 ? e2 : t2;
697
697
  }
698
- function _(e2, t2) {
698
+ function P(e2, t2) {
699
699
  if (void 0 === t2) return e2;
700
700
  if (null === t2) return {};
701
701
  const s2 = __spreadValues({}, e2);
@@ -921,7 +921,7 @@ class G extends q {
921
921
  this.mutate(e2, (s2) => {
922
922
  const n2 = s2.value.snapshot;
923
923
  if (null === n2) return console.warn("[TalkJS] Received a 'used edited' event for a user that we thought didn't exist."), s2;
924
- return c({ snapshot: { id: n2.id, name: P(n2.name, t2.diff.name), custom: _(n2.custom, t2.diff.custom), locale: P(n2.locale, t2.diff.locale), photoUrl: P(n2.photoUrl, t2.diff.photoUrl), role: P(n2.role, t2.diff.role), welcomeMessage: P(n2.welcomeMessage, t2.diff.welcomeMessage) }, lastChanged: e2 });
924
+ return c({ snapshot: { id: n2.id, name: _(n2.name, t2.diff.name), custom: P(n2.custom, t2.diff.custom), locale: _(n2.locale, t2.diff.locale), photoUrl: _(n2.photoUrl, t2.diff.photoUrl), role: _(n2.role, t2.diff.role), welcomeMessage: _(n2.welcomeMessage, t2.diff.welcomeMessage) }, lastChanged: e2 });
925
925
  });
926
926
  }
927
927
  getFromCache() {
@@ -1129,7 +1129,7 @@ class ne extends W {
1129
1129
  messageEdited(e2, t2) {
1130
1130
  this.mutate(e2, (s2) => {
1131
1131
  if (null === s2.value.data) return s2;
1132
- return c({ lastChanged: e2, sender: s2.value.sender, data: { id: s2.value.data.id, type: s2.value.data.type, createdAt: s2.value.data.createdAt, origin: s2.value.data.origin, referencedMessageId: s2.value.data.referencedMessageId, editedAt: P(s2.value.data.editedAt, t2.diff.editedAt), custom: _(s2.value.data.custom, t2.diff.custom), content: P(s2.value.data.content, t2.diff.content) } });
1132
+ return c({ lastChanged: e2, sender: s2.value.sender, data: { id: s2.value.data.id, type: s2.value.data.type, createdAt: s2.value.data.createdAt, origin: s2.value.data.origin, referencedMessageId: s2.value.data.referencedMessageId, editedAt: _(s2.value.data.editedAt, t2.diff.editedAt), custom: P(s2.value.data.custom, t2.diff.custom), content: _(s2.value.data.content, t2.diff.content) } });
1133
1133
  });
1134
1134
  }
1135
1135
  messageDeleted(e2, t2) {
@@ -1509,7 +1509,7 @@ class de extends W {
1509
1509
  participantEdited(e2, t2) {
1510
1510
  this.mutate(e2, (s2) => {
1511
1511
  if (null === s2.value.data) return s2;
1512
- return c({ lastChanged: e2, user: s2.value.user, data: { id: s2.value.data.id, access: P(s2.value.data.access, t2.diff.access), notify: P(s2.value.data.notify, t2.diff.notify), joinedAt: s2.value.data.joinedAt } });
1512
+ return c({ lastChanged: e2, user: s2.value.user, data: { id: s2.value.data.id, access: _(s2.value.data.access, t2.diff.access), notify: _(s2.value.data.notify, t2.diff.notify), joinedAt: s2.value.data.joinedAt } });
1513
1513
  });
1514
1514
  }
1515
1515
  participantDeleted(e2, t2) {
@@ -1825,11 +1825,61 @@ class be extends q {
1825
1825
  }
1826
1826
  function ye(e2, t2) {
1827
1827
  const s2 = t2;
1828
- return { id: e2.id, createdAt: e2.createdAt, subject: P(e2.subject, s2.subject), photoUrl: P(e2.photoUrl, s2.photoUrl), welcomeMessages: P(e2.welcomeMessages, s2.welcomeMessages), custom: _(e2.custom, s2.custom), lastMessageAt: P(e2.lastMessageAt, s2.lastMessageAt), unreadMessageCount: P(e2.unreadMessageCount, s2.unreadMessageCount), isUnread: P(e2.isUnread, s2.isUnread), access: P(e2.access, s2.access), notify: P(e2.notify, s2.notify), readUntil: P(e2.readUntil, s2.readUntil), everyoneReadUntil: P(e2.everyoneReadUntil, s2.everyoneReadUntil), joinedAt: e2.joinedAt };
1828
+ return { id: e2.id, createdAt: e2.createdAt, subject: _(e2.subject, s2.subject), photoUrl: _(e2.photoUrl, s2.photoUrl), welcomeMessages: _(e2.welcomeMessages, s2.welcomeMessages), custom: P(e2.custom, s2.custom), lastMessageAt: _(e2.lastMessageAt, s2.lastMessageAt), unreadMessageCount: _(e2.unreadMessageCount, s2.unreadMessageCount), isUnread: _(e2.isUnread, s2.isUnread), access: _(e2.access, s2.access), notify: _(e2.notify, s2.notify), readUntil: _(e2.readUntil, s2.readUntil), everyoneReadUntil: _(e2.everyoneReadUntil, s2.everyoneReadUntil), joinedAt: e2.joinedAt };
1829
+ }
1830
+ class Ce extends q {
1831
+ constructor(e2, t2, s2, n2) {
1832
+ super(s2, n2), this.userId = e2, this.realtimeClient = t2, this.unsubscribeDebounceMs = 1e3;
1833
+ }
1834
+ fetchInitial(e2) {
1835
+ return __async(this, null, function* () {
1836
+ const t2 = this.realtimeClient.internalSubscribe(["users", this.userId]), s2 = yield this.realtimeClient.call("GET", ["users", this.userId, "online"], {}, { bypassCache: true });
1837
+ return s2.ok || "server" !== s2.where || 404 !== s2.value.status || "USER_NOT_FOUND" !== s2.value.errorCode ? s2.ok ? c({ lastChanged: e2, user: t2, data: s2.value.data }) : s2 : c({ lastChanged: e2, user: t2, data: null });
1838
+ });
1839
+ }
1840
+ equal(e2, t2) {
1841
+ return O(e2.data, t2.data);
1842
+ }
1843
+ teardownNested(e2) {
1844
+ e2.user.unsubscribe();
1845
+ }
1846
+ anyChildChanged(e2, t2, s2) {
1847
+ return __async(this, null, function* () {
1848
+ return s2.user.store.changedBetween(e2, t2);
1849
+ });
1850
+ }
1851
+ loadNested(e2, t2) {
1852
+ return __async(this, null, function* () {
1853
+ const s2 = yield t2.user.store.getDeep(e2);
1854
+ if (!s2.ok) return s2;
1855
+ const n2 = s2.value.snapshot;
1856
+ return null === t2.data || null === n2 ? c({ snapshot: null }) : c({ snapshot: __spreadValues({ user: n2 }, t2.data) });
1857
+ });
1858
+ }
1859
+ userCreated(e2, t2) {
1860
+ const s2 = this.fetchInitial(e2);
1861
+ this.mutate(e2, (e3) => null !== e3.value.data ? (s2.then((e4) => {
1862
+ e4.ok && this.teardownNested(e4.value);
1863
+ }), e3) : s2);
1864
+ }
1865
+ userOnlineChanged(e2, t2) {
1866
+ this.mutate(e2, (s2) => null === s2.value.data ? s2 : c({ lastChanged: e2, user: s2.value.user, data: t2.diff }));
1867
+ }
1868
+ getFromCache() {
1869
+ return __async(this, null, function* () {
1870
+ const e2 = yield this.mostRecentState.resultPromise;
1871
+ if (!e2.ok) return l("NOT_IN_CACHE");
1872
+ if (null === e2.value.data) {
1873
+ return h({ status: 404, errorCode: "USER_NOT_FOUND", reasons: ["No user with that ID exists"] });
1874
+ }
1875
+ const _a2 = e2.value, { user: t2 } = _a2, s2 = __objRest(_a2, ["user"]);
1876
+ return c({ status: 200, data: __spreadValues({}, s2.data) });
1877
+ });
1878
+ }
1829
1879
  }
1830
- class Ce {
1880
+ class Ae {
1831
1881
  constructor(e2, t2, s2) {
1832
- this.realtimeClient = s2, this.convDataStores = {}, this.storeMap = {}, this.emitMutex = new U(), this.seqOffset = 0, this.seqInThisConnection = 0, this.refetchOnNextNetworkLoss = true, this.connection = new N(e2, t2, { onUpstreamRestarting: () => {
1882
+ this.realtimeClient = s2, this.convDataStores = {}, this.storeMap = {}, this.emitMutex = new U(), this.seqOffset = 0, this.seqInThisConnection = 0, this.refetchOnNextNetworkLoss = true, this.connection = new R(e2, t2, { onUpstreamRestarting: () => {
1833
1883
  this.refetchOnNextNetworkLoss = false;
1834
1884
  }, onReady: () => {
1835
1885
  this.refetchOnNextNetworkLoss = true;
@@ -1841,7 +1891,7 @@ class Ce {
1841
1891
  }
1842
1892
  }, onResubscribeError: (e3, t3) => {
1843
1893
  var _a2;
1844
- (_a2 = this.storeMap[Ae(e3)]) == null ? void 0 : _a2.setError(t3);
1894
+ (_a2 = this.storeMap[Ee(e3)]) == null ? void 0 : _a2.setError(t3);
1845
1895
  }, onPublish: (e3, t3) => {
1846
1896
  this.seqInThisConnection = e3;
1847
1897
  const s3 = this.seq;
@@ -1862,44 +1912,46 @@ class Ce {
1862
1912
  }));
1863
1913
  }
1864
1914
  handlePublish(e2, t2) {
1865
- var _a2, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t2, _u, _v, _w, _x, _y;
1915
+ var _a2, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t2, _u, _v, _w, _x, _y, _z, _A;
1866
1916
  switch (t2.type) {
1867
1917
  case "user.created":
1868
- return (_a2 = this.storeMap[`/users/${t2.userId}`]) == null ? void 0 : _a2.userCreated(e2, t2), void ((_b = this.storeMap["/me/conversations"]) == null ? void 0 : _b.userCreated(e2, t2));
1918
+ return (_a2 = this.storeMap[`/users/${t2.userId}`]) == null ? void 0 : _a2.userCreated(e2, t2), (_b = this.storeMap["/me/conversations"]) == null ? void 0 : _b.userCreated(e2, t2), void ((_c = this.storeMap[`/users/${t2.userId}/online`]) == null ? void 0 : _c.userCreated(e2, t2));
1869
1919
  case "user.edited":
1870
- return void ((_c = this.storeMap[`/users/${t2.userId}`]) == null ? void 0 : _c.userEdited(e2, t2));
1920
+ return void ((_d = this.storeMap[`/users/${t2.userId}`]) == null ? void 0 : _d.userEdited(e2, t2));
1871
1921
  case "side.created":
1872
- return (_d = this.convDataStores[t2.conversationId]) == null ? void 0 : _d.sideCreated(e2, t2), (_e2 = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _e2.sideCreated(e2, t2), (_f = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _f.sideCreated(e2, t2), void ((_g = this.storeMap["/me/conversations"]) == null ? void 0 : _g.sideCreated(e2, t2));
1922
+ return (_e2 = this.convDataStores[t2.conversationId]) == null ? void 0 : _e2.sideCreated(e2, t2), (_f = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _f.sideCreated(e2, t2), (_g = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _g.sideCreated(e2, t2), void ((_h = this.storeMap["/me/conversations"]) == null ? void 0 : _h.sideCreated(e2, t2));
1873
1923
  case "side.edited":
1874
- return (_h = this.convDataStores[t2.conversationId]) == null ? void 0 : _h.sideEdited(e2, t2), void ((_i = this.storeMap["/me/conversations"]) == null ? void 0 : _i.sideEdited(e2, t2));
1924
+ return (_i = this.convDataStores[t2.conversationId]) == null ? void 0 : _i.sideEdited(e2, t2), void ((_j = this.storeMap["/me/conversations"]) == null ? void 0 : _j.sideEdited(e2, t2));
1875
1925
  case "side.deleted":
1876
- return (_j = this.convDataStores[t2.conversationId]) == null ? void 0 : _j.sideDeleted(e2, t2), (_k = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _k.sideDeleted(e2, t2), (_l = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _l.sideDeleted(e2, t2), (_m = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _m.sideDeleted(e2, t2), void ((_n = this.storeMap["/me/conversations"]) == null ? void 0 : _n.sideDeleted(e2, t2));
1926
+ return (_k = this.convDataStores[t2.conversationId]) == null ? void 0 : _k.sideDeleted(e2, t2), (_l = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _l.sideDeleted(e2, t2), (_m = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _m.sideDeleted(e2, t2), (_n = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _n.sideDeleted(e2, t2), void ((_o = this.storeMap["/me/conversations"]) == null ? void 0 : _o.sideDeleted(e2, t2));
1877
1927
  case "conversation.edited":
1878
- return void ((_o = this.convDataStores[t2.conversationId]) == null ? void 0 : _o.conversationEdited(e2, t2));
1928
+ return void ((_p = this.convDataStores[t2.conversationId]) == null ? void 0 : _p.conversationEdited(e2, t2));
1879
1929
  case "message.created":
1880
- return void ((_p = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _p.messageCreated(e2, t2));
1930
+ return void ((_q = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _q.messageCreated(e2, t2));
1881
1931
  case "message.edited":
1882
- return void ((_q = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _q.messageEdited(e2, t2));
1932
+ return void ((_r = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _r.messageEdited(e2, t2));
1883
1933
  case "message.deleted":
1884
- return void ((_r = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _r.messageDeleted(e2, t2));
1934
+ return void ((_s = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _s.messageDeleted(e2, t2));
1885
1935
  case "typing.available":
1886
- return void ((_s = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _s.typingAvailable(e2, t2));
1936
+ return void ((_t2 = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _t2.typingAvailable(e2, t2));
1887
1937
  case "typing.changed":
1888
- return void ((_t2 = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _t2.typingChanged(e2, t2));
1938
+ return void ((_u = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _u.typingChanged(e2, t2));
1889
1939
  case "conversation.cleared":
1890
- return void ((_u = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _u.conversationCleared(e2, t2));
1940
+ return void ((_v = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _v.conversationCleared(e2, t2));
1891
1941
  case "participant.edited":
1892
- return (_v = this.convDataStores[t2.conversationId]) == null ? void 0 : _v.participantEdited(e2, t2), void ((_w = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _w.participantEdited(e2, t2));
1942
+ return (_w = this.convDataStores[t2.conversationId]) == null ? void 0 : _w.participantEdited(e2, t2), void ((_x = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _x.participantEdited(e2, t2));
1893
1943
  case "participant.created":
1894
- return void ((_x = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _x.participantCreated(e2, t2));
1944
+ return void ((_y = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _y.participantCreated(e2, t2));
1895
1945
  case "participant.deleted":
1896
- return void ((_y = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _y.participantDeleted(e2, t2));
1946
+ return void ((_z = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _z.participantDeleted(e2, t2));
1947
+ case "user.online.changed":
1948
+ return void ((_A = this.storeMap[`/users/${t2.userId}/online`]) == null ? void 0 : _A.userOnlineChanged(e2, t2));
1897
1949
  }
1898
1950
  }
1899
1951
  call(e2, t2, n2, r2) {
1900
1952
  return __async(this, null, function* () {
1901
1953
  if (!r2.bypassCache && "GET" === e2) {
1902
- const e3 = Ae(t2);
1954
+ const e3 = Ee(t2);
1903
1955
  if (e3 in this.storeMap) {
1904
1956
  const t3 = e3, s2 = this.storeMap[t3];
1905
1957
  if (s2 && "getFromCache" in s2) {
@@ -1964,7 +2016,7 @@ class Ce {
1964
2016
  }, a2;
1965
2017
  }
1966
2018
  getOrCreateStore(e2) {
1967
- const t2 = Ae(e2);
2019
+ const t2 = Ee(e2);
1968
2020
  if (t2 in this.storeMap) return this.storeMap[t2];
1969
2021
  this.connection.subscribe(e2).then((e3) => {
1970
2022
  e3.ok || s2.setError(e3);
@@ -1987,6 +2039,7 @@ class Ce {
1987
2039
  if (s(e2, ["me", "conversations", "*", "participants"])) return new pe(e2[2], this.realtimeClient, this.emitMutex, t2);
1988
2040
  if (s(e2, ["me", "conversations", "*", "typing"])) return new he(e2[2], this.realtimeClient, this.emitMutex, t2);
1989
2041
  if (s(e2, ["me", "conversations"])) return new ge((e3) => this.subscribeConvData(e3), this.realtimeClient, this.emitMutex, t2);
2042
+ if (s(e2, ["users", "*", "online"])) return new Ce(e2[1], this.realtimeClient, this.emitMutex, t2);
1990
2043
  throw "Unreachable";
1991
2044
  }
1992
2045
  subscribeConvData(e2) {
@@ -2001,12 +2054,12 @@ class Ce {
2001
2054
  return this.convDataStores[t2] = s2, { store: s2, unsubscribe: s2.registerInternalSubscription() };
2002
2055
  }
2003
2056
  }
2004
- function Ae(e2) {
2057
+ function Ee(e2) {
2005
2058
  return `/${e2.join("/")}`;
2006
2059
  }
2007
- class Ee {
2060
+ class ke {
2008
2061
  constructor(e2, t2, s2) {
2009
- this.userId = t2, this.alive = true, this.connection = new Ce(e2, s2, this), s2.onTokenRefreshFailed(() => {
2062
+ this.userId = t2, this.alive = true, this.connection = new Ae(e2, s2, this), s2.onTokenRefreshFailed(() => {
2010
2063
  this.destroy();
2011
2064
  });
2012
2065
  }
@@ -2031,7 +2084,7 @@ class Ee {
2031
2084
  listMessages(e2, t2) {
2032
2085
  return __async(this, null, function* () {
2033
2086
  const s2 = yield this.call("GET", ["me", "conversations", e2, "messages"], t2);
2034
- if (!s2.ok) return ke(s2, "Listing messages in " + e2);
2087
+ if (!s2.ok) return xe(s2, "Listing messages in " + e2);
2035
2088
  const n2 = s2.value.data.data, r2 = yield Promise.all(n2.map((t3) => this.createMessageSnapshot(t3, e2))), i2 = r2.find((e3) => !e3.ok);
2036
2089
  if (void 0 !== i2 && !i2.ok) return i2;
2037
2090
  return c(r2.map(({ value: e3 }) => e3));
@@ -2060,7 +2113,7 @@ class Ee {
2060
2113
  const s2 = yield this.call("GET", ["me", "conversations", e2, "messages", t2], {});
2061
2114
  if (!s2.ok && "server" === s2.where && 404 === s2.value.status) return c(null);
2062
2115
  if (!s2.ok && "server" === s2.where && 403 === s2.value.status && "NOT_A_PARTICIPANT" === s2.value.errorCode) return c(null);
2063
- if (!s2.ok) return ke(s2, `Fetching referenced message ${t2} in conversation ${e2}`);
2116
+ if (!s2.ok) return xe(s2, `Fetching referenced message ${t2} in conversation ${e2}`);
2064
2117
  const n2 = s2.value.data, r2 = yield this.getUser(n2.senderId);
2065
2118
  if (!r2.ok) return r2;
2066
2119
  const i2 = r2.value;
@@ -2071,7 +2124,7 @@ class Ee {
2071
2124
  return __async(this, null, function* () {
2072
2125
  const t2 = yield this.call("GET", ["users", e2], { includePrivateFields: false });
2073
2126
  if (!t2.ok && "server" === t2.where && 404 === t2.value.status) return c(null);
2074
- if (!t2.ok) return ke(t2, "Get user " + e2);
2127
+ if (!t2.ok) return xe(t2, "Get user " + e2);
2075
2128
  return c(this.createUserSnapshot(t2.value.data));
2076
2129
  });
2077
2130
  }
@@ -2082,15 +2135,15 @@ class Ee {
2082
2135
  return { id: e2.id, type: e2.type, sender: t2, referencedMessageId: e2.referencedMessageId, custom: e2.custom, createdAt: e2.createdAt, editedAt: e2.editedAt, origin: e2.origin, content: e2.content, plaintext: te(e2.content, {}) };
2083
2136
  }
2084
2137
  }
2085
- function ke(e2, t2) {
2138
+ function xe(e2, t2) {
2086
2139
  return "server" === e2.where ? h(__spreadProps(__spreadValues({}, e2.value), { operation: t2 })) : e2;
2087
2140
  }
2088
- function xe(e2, s2) {
2141
+ function Te(e2, s2) {
2089
2142
  var _a2;
2090
2143
  if (s2.ok) return s2.value;
2091
2144
  throw "SESSION_DESTROYED" === s2.value ? new Error(`${e2} failed because the session was destroyed`) : new Error(t((_a2 = s2.value.operation) != null ? _a2 : e2, s2.value));
2092
2145
  }
2093
- class Te {
2146
+ class Ie {
2094
2147
  constructor(e2, t2) {
2095
2148
  this.id = e2, this._realtimeClient = t2;
2096
2149
  }
@@ -2100,7 +2153,7 @@ class Te {
2100
2153
  get() {
2101
2154
  return __async(this, null, function* () {
2102
2155
  const e2 = yield this._realtimeClient.getUser(this.brandedId);
2103
- return xe("Get user " + this.id, e2);
2156
+ return Te("Get user " + this.id, e2);
2104
2157
  });
2105
2158
  }
2106
2159
  set(t2) {
@@ -2120,6 +2173,9 @@ class Te {
2120
2173
  subscribe(e2) {
2121
2174
  return this._realtimeClient.subscribe(["users", this.brandedId], e2);
2122
2175
  }
2176
+ subscribeOnline(e2) {
2177
+ return this._realtimeClient.subscribe(["users", this.brandedId, "online"], e2);
2178
+ }
2123
2179
  }
2124
2180
  class Se {
2125
2181
  constructor(e2, t2, s2) {
@@ -2165,7 +2221,7 @@ class Se {
2165
2221
  });
2166
2222
  }
2167
2223
  }
2168
- function Ie(e2) {
2224
+ function De(e2) {
2169
2225
  const t2 = "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
2170
2226
  let s2 = 0;
2171
2227
  const n2 = [], r2 = e2 === s2;
@@ -2183,7 +2239,7 @@ function Ie(e2) {
2183
2239
  if (20 != a2.length) throw new Error("Length should be 20.");
2184
2240
  return a2;
2185
2241
  }
2186
- const De = (e2, t2, s2 = void 0) => function(e3, t3) {
2242
+ const Me = (e2, t2, s2 = void 0) => function(e3, t3) {
2187
2243
  return e3.reduce((e4, s3, n2) => e4.concat(t3(s3, n2)), []);
2188
2244
  }(e2, (e3) => {
2189
2245
  if ("string" == typeof e3) return t2(e3, s2);
@@ -2196,14 +2252,14 @@ const De = (e2, t2, s2 = void 0) => function(e3, t3) {
2196
2252
  case "bulletList":
2197
2253
  case "bulletpoint":
2198
2254
  case "bulletPoint":
2199
- return [{ type: e3.type, children: De(e3.children, t2, e3.type) }];
2255
+ return [{ type: e3.type, children: Me(e3.children, t2, e3.type) }];
2200
2256
  case "link":
2201
- return [{ type: e3.type, url: e3.url, children: De(e3.children, t2, e3.type) }];
2257
+ return [{ type: e3.type, url: e3.url, children: Me(e3.children, t2, e3.type) }];
2202
2258
  case "actionlink":
2203
2259
  case "actionLink":
2204
2260
  case "actionbutton":
2205
2261
  case "actionButton":
2206
- return [{ type: e3.type, action: e3.action, params: e3.params, children: De(e3.children, t2, e3.type) }];
2262
+ return [{ type: e3.type, action: e3.action, params: e3.params, children: Me(e3.children, t2, e3.type) }];
2207
2263
  case "mention":
2208
2264
  case "autolink":
2209
2265
  case "autoLink":
@@ -2218,7 +2274,7 @@ const De = (e2, t2, s2 = void 0) => function(e3, t3) {
2218
2274
  return [e3];
2219
2275
  }
2220
2276
  });
2221
- function Me(e2, t2) {
2277
+ function Fe(e2, t2) {
2222
2278
  return (s2) => {
2223
2279
  const n2 = s2;
2224
2280
  let r2 = 0;
@@ -2231,29 +2287,29 @@ function Me(e2, t2) {
2231
2287
  return r2 < s2.length && i2.push(s2.substring(r2)), i2;
2232
2288
  };
2233
2289
  }
2234
- const Fe = "’'()[]{}<>:,‒–—―…!.«»-‐?‘’“”;/⁄␠·&@*\\•^¤¢$€£¥₩₪†‡°¡¿¬#№%‰‱¶′§~¨_|¦⁂☞∴‽※".replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
2235
- var Be = ((e2) => (e2[e2.italic = 1] = "italic", e2[e2.strikethrough = 2] = "strikethrough", e2[e2.bold = 4] = "bold", e2))(Be || {});
2290
+ const Be = "’'()[]{}<>:,‒–—―…!.«»-‐?‘’“”;/⁄␠·&@*\\•^¤¢$€£¥₩₪†‡°¡¿¬#№%‰‱¶′§~¨_|¦⁂☞∴‽※".replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
2291
+ var Ne = ((e2) => (e2[e2.italic = 1] = "italic", e2[e2.strikethrough = 2] = "strikethrough", e2[e2.bold = 4] = "bold", e2))(Ne || {});
2236
2292
  const Re = [0, 1, 2, 3, 4, 5, 6].map((e2) => {
2237
2293
  const t2 = [];
2238
2294
  return 1 & e2 || t2.push(/_([^\s_].*?[^\s_])_|_([^\s_])_/), 2 & e2 || t2.push(/~([^\s~].*?[^\s~])~|~([^\s~])~/), 4 & e2 || t2.push(/\*([^\s*].*?[^\s*])\*|\*([^\s*])\*/), new RegExp(t2.map((e3) => e3.source).join("|"), "g");
2239
- }), Ne = { _: 1, "*": 4, "~": 2 };
2295
+ }), _e = { _: 1, "*": 4, "~": 2 };
2240
2296
  function Pe(e2) {
2241
- return _e(e2, 0);
2297
+ return Oe(e2, 0);
2242
2298
  }
2243
- function _e(e2, t2 = 0) {
2299
+ function Oe(e2, t2 = 0) {
2244
2300
  const s2 = Re[t2], n2 = s2 ? function(e3) {
2245
- const t3 = Oe.getOrCompute(e3, () => new RegExp(`(?:^|[\\s${Fe}])(?:${e3.source})(?=[\\s${Fe}]|$)`, "g")), s3 = Me(t3, (e4) => {
2301
+ const t3 = Ue.getOrCompute(e3, () => new RegExp(`(?:^|[\\s${Be}])(?:${e3.source})(?=[\\s${Be}]|$)`, "g")), s3 = Fe(t3, (e4) => {
2246
2302
  const t4 = e4[0][1], s4 = e4[1] || e4[2] || e4[3] || e4[4] || e4[5] || e4[6];
2247
- return [" ", { type: Be[Ne[t4]], children: [s4] }];
2303
+ return [" ", { type: Ne[_e[t4]], children: [s4] }];
2248
2304
  });
2249
2305
  return (e4) => {
2250
2306
  const [t4, ...n3] = s3(" " + e4);
2251
2307
  return t4.length > 1 && n3.unshift(t4.substring(1)), n3;
2252
2308
  };
2253
2309
  }(s2) : () => [e2];
2254
- return De(n2(e2), (e3, s3) => "bold" === s3 || "italic" === s3 || "strikethrough" === s3 ? _e(e3, t2 | Be[s3]) : [e3]);
2310
+ return Me(n2(e2), (e3, s3) => "bold" === s3 || "italic" === s3 || "strikethrough" === s3 ? Oe(e3, t2 | Ne[s3]) : [e3]);
2255
2311
  }
2256
- const Oe = function() {
2312
+ const Ue = function() {
2257
2313
  const e2 = function() {
2258
2314
  try {
2259
2315
  return /* @__PURE__ */ new WeakMap();
@@ -2269,18 +2325,18 @@ const Oe = function() {
2269
2325
  return e2.set(t2, n2), n2;
2270
2326
  } };
2271
2327
  }();
2272
- function Ue(e2, t2) {
2328
+ function je(e2, t2) {
2273
2329
  if (Array.prototype.indexOf) return e2.indexOf(t2);
2274
2330
  for (var s2 = 0, n2 = e2.length; s2 < n2; s2++) if (e2[s2] === t2) return s2;
2275
2331
  return -1;
2276
2332
  }
2277
- function je(e2, t2) {
2333
+ function $e(e2, t2) {
2278
2334
  for (var s2 = e2.length - 1; s2 >= 0; s2--) true === t2(e2[s2]) && e2.splice(s2, 1);
2279
2335
  }
2280
- function $e(e2) {
2336
+ function We(e2) {
2281
2337
  throw new Error("Unhandled case for value: '" + e2 + "'");
2282
2338
  }
2283
- var We = function() {
2339
+ var qe = function() {
2284
2340
  function e2(e3) {
2285
2341
  void 0 === e3 && (e3 = {}), this.tagName = "", this.attrs = {}, this.innerHTML = "", this.whitespaceRegex = /\s+/, this.tagName = e3.tagName || "", this.attrs = e3.attrs || {}, this.innerHTML = e3.innerHtml || e3.innerHTML || "";
2286
2342
  }
@@ -2299,11 +2355,11 @@ var We = function() {
2299
2355
  }, e2.prototype.setClass = function(e3) {
2300
2356
  return this.setAttr("class", e3);
2301
2357
  }, e2.prototype.addClass = function(e3) {
2302
- for (var t2, s2 = this.getClass(), n2 = this.whitespaceRegex, r2 = s2 ? s2.split(n2) : [], i2 = e3.split(n2); t2 = i2.shift(); ) -1 === Ue(r2, t2) && r2.push(t2);
2358
+ for (var t2, s2 = this.getClass(), n2 = this.whitespaceRegex, r2 = s2 ? s2.split(n2) : [], i2 = e3.split(n2); t2 = i2.shift(); ) -1 === je(r2, t2) && r2.push(t2);
2303
2359
  return this.getAttrs().class = r2.join(" "), this;
2304
2360
  }, e2.prototype.removeClass = function(e3) {
2305
2361
  for (var t2, s2 = this.getClass(), n2 = this.whitespaceRegex, r2 = s2 ? s2.split(n2) : [], i2 = e3.split(n2); r2.length && (t2 = i2.shift()); ) {
2306
- var a2 = Ue(r2, t2);
2362
+ var a2 = je(r2, t2);
2307
2363
  -1 !== a2 && r2.splice(a2, 1);
2308
2364
  }
2309
2365
  return this.getAttrs().class = r2.join(" "), this;
@@ -2329,12 +2385,12 @@ var We = function() {
2329
2385
  return t2.join(" ");
2330
2386
  }, e2;
2331
2387
  }();
2332
- var qe = function() {
2388
+ var He = function() {
2333
2389
  function e2(e3) {
2334
2390
  void 0 === e3 && (e3 = {}), this.newWindow = false, this.truncate = {}, this.className = "", this.newWindow = e3.newWindow || false, this.truncate = e3.truncate || {}, this.className = e3.className || "";
2335
2391
  }
2336
2392
  return e2.prototype.build = function(e3) {
2337
- return new We({ tagName: "a", attrs: this.createAttrs(e3), innerHtml: this.processAnchorText(e3.getAnchorText()) });
2393
+ return new qe({ tagName: "a", attrs: this.createAttrs(e3), innerHtml: this.processAnchorText(e3.getAnchorText()) });
2338
2394
  }, e2.prototype.createAttrs = function(e3) {
2339
2395
  var t2 = { href: e3.getAnchorHref() }, s2 = this.createCssClass(e3);
2340
2396
  return s2 && (t2.class = s2), this.newWindow && (t2.target = "_blank", t2.rel = "noopener noreferrer"), this.truncate && this.truncate.length && this.truncate.length < e3.getAnchorText().length && (t2.title = e3.getAnchorHref()), t2;
@@ -2404,7 +2460,7 @@ var qe = function() {
2404
2460
  }(e4, t3, s3);
2405
2461
  }(e3, s2);
2406
2462
  }, e2;
2407
- }(), He = function() {
2463
+ }(), Ge = function() {
2408
2464
  function e2(e3) {
2409
2465
  this.__jsduckDummyDocProp = null, this.matchedText = "", this.offset = 0, this.tagBuilder = e3.tagBuilder, this.matchedText = e3.matchedText, this.offset = e3.offset;
2410
2466
  }
@@ -2419,30 +2475,30 @@ var qe = function() {
2419
2475
  }, e2.prototype.buildTag = function() {
2420
2476
  return this.tagBuilder.build(this);
2421
2477
  }, e2;
2422
- }(), Ge = function(e2, t2) {
2423
- return Ge = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e3, t3) {
2478
+ }(), Le = function(e2, t2) {
2479
+ return Le = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e3, t3) {
2424
2480
  e3.__proto__ = t3;
2425
2481
  } || function(e3, t3) {
2426
2482
  for (var s2 in t3) t3.hasOwnProperty(s2) && (e3[s2] = t3[s2]);
2427
- }, Ge(e2, t2);
2483
+ }, Le(e2, t2);
2428
2484
  };
2429
- function Le(e2, t2) {
2485
+ function ze(e2, t2) {
2430
2486
  function s2() {
2431
2487
  this.constructor = e2;
2432
2488
  }
2433
- Ge(e2, t2), e2.prototype = null === t2 ? Object.create(t2) : (s2.prototype = t2.prototype, new s2());
2489
+ Le(e2, t2), e2.prototype = null === t2 ? Object.create(t2) : (s2.prototype = t2.prototype, new s2());
2434
2490
  }
2435
- var ze, Je = function() {
2436
- return Je = Object.assign || function(e2) {
2491
+ var Je, Ye = function() {
2492
+ return Ye = Object.assign || function(e2) {
2437
2493
  for (var t2, s2 = 1, n2 = arguments.length; s2 < n2; s2++) for (var r2 in t2 = arguments[s2]) Object.prototype.hasOwnProperty.call(t2, r2) && (e2[r2] = t2[r2]);
2438
2494
  return e2;
2439
- }, Je.apply(this, arguments);
2440
- }, Ye = function(e2) {
2495
+ }, Ye.apply(this, arguments);
2496
+ }, Qe = function(e2) {
2441
2497
  function t2(t3) {
2442
2498
  var s2 = e2.call(this, t3) || this;
2443
2499
  return s2.email = "", s2.email = t3.email, s2;
2444
2500
  }
2445
- return Le(t2, e2), t2.prototype.getType = function() {
2501
+ return ze(t2, e2), t2.prototype.getType = function() {
2446
2502
  return "email";
2447
2503
  }, t2.prototype.getEmail = function() {
2448
2504
  return this.email;
@@ -2451,12 +2507,12 @@ var ze, Je = function() {
2451
2507
  }, t2.prototype.getAnchorText = function() {
2452
2508
  return this.email;
2453
2509
  }, t2;
2454
- }(He), Qe = function(e2) {
2510
+ }(Ge), Ve = function(e2) {
2455
2511
  function t2(t3) {
2456
2512
  var s2 = e2.call(this, t3) || this;
2457
2513
  return s2.serviceName = "", s2.hashtag = "", s2.serviceName = t3.serviceName, s2.hashtag = t3.hashtag, s2;
2458
2514
  }
2459
- return Le(t2, e2), t2.prototype.getType = function() {
2515
+ return ze(t2, e2), t2.prototype.getType = function() {
2460
2516
  return "hashtag";
2461
2517
  }, t2.prototype.getServiceName = function() {
2462
2518
  return this.serviceName;
@@ -2477,12 +2533,12 @@ var ze, Je = function() {
2477
2533
  }, t2.prototype.getAnchorText = function() {
2478
2534
  return "#" + this.hashtag;
2479
2535
  }, t2;
2480
- }(He), Ve = function(e2) {
2536
+ }(Ge), Ze = function(e2) {
2481
2537
  function t2(t3) {
2482
2538
  var s2 = e2.call(this, t3) || this;
2483
2539
  return s2.serviceName = "twitter", s2.mention = "", s2.mention = t3.mention, s2.serviceName = t3.serviceName, s2;
2484
2540
  }
2485
- return Le(t2, e2), t2.prototype.getType = function() {
2541
+ return ze(t2, e2), t2.prototype.getType = function() {
2486
2542
  return "mention";
2487
2543
  }, t2.prototype.getMention = function() {
2488
2544
  return this.mention;
@@ -2505,12 +2561,12 @@ var ze, Je = function() {
2505
2561
  var t3 = e2.prototype.getCssClassSuffixes.call(this), s2 = this.getServiceName();
2506
2562
  return s2 && t3.push(s2), t3;
2507
2563
  }, t2;
2508
- }(He), Ze = function(e2) {
2564
+ }(Ge), Ke = function(e2) {
2509
2565
  function t2(t3) {
2510
2566
  var s2 = e2.call(this, t3) || this;
2511
2567
  return s2.number = "", s2.plusSign = false, s2.number = t3.number, s2.plusSign = t3.plusSign, s2;
2512
2568
  }
2513
- return Le(t2, e2), t2.prototype.getType = function() {
2569
+ return ze(t2, e2), t2.prototype.getType = function() {
2514
2570
  return "phone";
2515
2571
  }, t2.prototype.getPhoneNumber = function() {
2516
2572
  return this.number;
@@ -2521,12 +2577,12 @@ var ze, Je = function() {
2521
2577
  }, t2.prototype.getAnchorText = function() {
2522
2578
  return this.matchedText;
2523
2579
  }, t2;
2524
- }(He), Ke = function(e2) {
2580
+ }(Ge), Xe = function(e2) {
2525
2581
  function t2(t3) {
2526
2582
  var s2 = e2.call(this, t3) || this;
2527
2583
  return s2.url = "", s2.urlMatchType = "scheme", s2.protocolUrlMatch = false, s2.protocolRelativeMatch = false, s2.stripPrefix = { scheme: true, www: true }, s2.stripTrailingSlash = true, s2.decodePercentEncoding = true, s2.schemePrefixRegex = /^(https?:\/\/)?/i, s2.wwwPrefixRegex = /^(https?:\/\/)?(www\.)?/i, s2.protocolRelativeRegex = /^\/\//, s2.protocolPrepended = false, s2.urlMatchType = t3.urlMatchType, s2.url = t3.url, s2.protocolUrlMatch = t3.protocolUrlMatch, s2.protocolRelativeMatch = t3.protocolRelativeMatch, s2.stripPrefix = t3.stripPrefix, s2.stripTrailingSlash = t3.stripTrailingSlash, s2.decodePercentEncoding = t3.decodePercentEncoding, s2;
2528
2584
  }
2529
- return Le(t2, e2), t2.prototype.getType = function() {
2585
+ return ze(t2, e2), t2.prototype.getType = function() {
2530
2586
  return "url";
2531
2587
  }, t2.prototype.getUrlMatchType = function() {
2532
2588
  return this.urlMatchType;
@@ -2554,19 +2610,19 @@ var ze, Je = function() {
2554
2610
  return t3;
2555
2611
  }
2556
2612
  }, t2;
2557
- }(He), Xe = function(e2) {
2613
+ }(Ge), et = function(e2) {
2558
2614
  this.__jsduckDummyDocProp = null, this.tagBuilder = e2.tagBuilder;
2559
- }, et = /[A-Za-z]/, tt = /[\d]/, st = /[\D]/, nt = /\s/, rt = /['"]/, it = /[\x00-\x1F\x7F]/, at = /A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source, ot = at + /\u2700-\u27bf\udde6-\uddff\ud800-\udbff\udc00-\udfff\ufe0e\ufe0f\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0\ud83c\udffb-\udfff\u200d\u3299\u3297\u303d\u3030\u24c2\ud83c\udd70-\udd71\udd7e-\udd7f\udd8e\udd91-\udd9a\udde6-\uddff\ude01-\ude02\ude1a\ude2f\ude32-\ude3a\ude50-\ude51\u203c\u2049\u25aa-\u25ab\u25b6\u25c0\u25fb-\u25fe\u00a9\u00ae\u2122\u2139\udc04\u2600-\u26FF\u2b05\u2b06\u2b07\u2b1b\u2b1c\u2b50\u2b55\u231a\u231b\u2328\u23cf\u23e9-\u23f3\u23f8-\u23fa\udccf\u2935\u2934\u2190-\u21ff/.source + /\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F/.source, ut = /0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19/.source, ct = ot + ut, lt = ot + ut, ht = "(?:[" + ut + "]{1,3}\\.){3}[" + ut + "]{1,3}", dt = "[" + lt + "](?:[" + lt + "\\-]{0,61}[" + lt + "])?", pt = function(e2) {
2560
- return "(?=(" + dt + "))\\" + e2;
2561
- }, ft = function(e2) {
2562
- return "(?:" + pt(e2) + "(?:\\." + pt(e2 + 1) + "){0,126}|" + ht + ")";
2563
- }, mt = new RegExp("[" + lt + "]"), gt = /(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|vermögensberatung|xn--3oq18vl8pn36a|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|vermögensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|afamilycompany|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|spreadbetting|travelchannel|wolterskluwer|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|rightathome|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pbt977c|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|சிங்கப்பூர்|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nationwide|newholland|nextdirect|onyourside|properties|protection|prudential|realestate|republican|restaurant|schaeffler|swiftcover|tatamotors|technology|telefonica|university|vistaprint|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|fujixerox|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|honeywell|institute|insurance|kuokgroup|ladbrokes|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|scjohnson|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--tckwe|xn--vhquv|yodobashi|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|budapest|builders|business|capetown|catering|catholic|chrysler|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|esurance|etisalat|everbank|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|movistar|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|symantec|training|uconnect|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|السعودية|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|cartier|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|iselect|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lancome|lanxess|lasalle|latrobe|leclerc|liaison|limited|lincoln|markets|metlife|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|shriram|singles|staples|starhub|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|католик|اتصالات|الجزائر|العليان|پاکستان|كاثوليك|موبايلي|இந்தியா|abarth|abbott|abbvie|active|africa|agency|airbus|airtel|alipay|alsace|alstom|anquan|aramco|author|bayern|beauty|berlin|bharti|blanco|bostik|boston|broker|camera|career|caseih|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|mobily|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|piaget|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|warman|webcam|xihuan|yachts|yandex|zappos|москва|онлайн|ابوظبي|ارامكو|الاردن|المغرب|امارات|فلسطين|مليسيا|भारतम्|இலங்கை|ファッション|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|dodge|drive|dubai|earth|edeka|email|epost|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glade|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|intel|irish|iveco|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|lixil|loans|locus|lotte|lotto|lupin|macys|mango|media|miami|money|mopar|movie|nadex|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|zippo|ایران|بازار|بھارت|سودان|سورية|همراه|भारोत|संगठन|বাংলা|భారత్|ഭാരതം|嘉里大酒店|aarp|able|adac|aero|aigo|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|doha|duck|duns|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|raid|read|reit|rent|rest|rich|rmit|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scor|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|дети|сайт|بارت|بيتك|ڀارت|تونس|شبكة|عراق|عمان|موقع|भारत|ভারত|ভাৰত|ਭਾਰਤ|ભારત|ଭାରତ|ಭಾರತ|ලංකා|グーグル|クラウド|ポイント|大众汽车|组织机构|電訊盈科|香格里拉|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bnl|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceb|ceo|cfa|cfd|com|crs|csc|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jcp|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|off|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|qvc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|srl|srt|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|бел|ком|қаз|мкд|мон|орг|рус|срб|укр|հայ|קום|عرب|قطر|كوم|مصر|कॉम|नेट|คอม|ไทย|ストア|セール|みんな|中文网|天主教|我爱你|新加坡|淡马锡|诺基亚|飞利浦|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|ελ|бг|ею|рф|გე|닷넷|닷컴|삼성|한국|コム|世界|中信|中国|中國|企业|佛山|信息|健康|八卦|公司|公益|台湾|台灣|商城|商店|商标|嘉里|在线|大拿|娱乐|家電|工行|广东|微博|慈善|手机|手表|招聘|政务|政府|新闻|时尚|書籍|机构|游戏|澳門|点看|珠宝|移动|网址|网店|网站|网络|联通|谷歌|购物|通販|集团|食品|餐厅|香港)/, vt = new RegExp("[" + lt + "!#$%&'*+/=?^_`{|}~-]"), wt = new RegExp("^" + gt.source + "$"), bt = function(e2) {
2615
+ }, tt = /[A-Za-z]/, st = /[\d]/, nt = /[\D]/, rt = /\s/, it = /['"]/, at = /[\x00-\x1F\x7F]/, ot = /A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source, ut = ot + /\u2700-\u27bf\udde6-\uddff\ud800-\udbff\udc00-\udfff\ufe0e\ufe0f\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0\ud83c\udffb-\udfff\u200d\u3299\u3297\u303d\u3030\u24c2\ud83c\udd70-\udd71\udd7e-\udd7f\udd8e\udd91-\udd9a\udde6-\uddff\ude01-\ude02\ude1a\ude2f\ude32-\ude3a\ude50-\ude51\u203c\u2049\u25aa-\u25ab\u25b6\u25c0\u25fb-\u25fe\u00a9\u00ae\u2122\u2139\udc04\u2600-\u26FF\u2b05\u2b06\u2b07\u2b1b\u2b1c\u2b50\u2b55\u231a\u231b\u2328\u23cf\u23e9-\u23f3\u23f8-\u23fa\udccf\u2935\u2934\u2190-\u21ff/.source + /\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F/.source, ct = /0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19/.source, lt = ut + ct, ht = ut + ct, dt = "(?:[" + ct + "]{1,3}\\.){3}[" + ct + "]{1,3}", pt = "[" + ht + "](?:[" + ht + "\\-]{0,61}[" + ht + "])?", ft = function(e2) {
2616
+ return "(?=(" + pt + "))\\" + e2;
2617
+ }, mt = function(e2) {
2618
+ return "(?:" + ft(e2) + "(?:\\." + ft(e2 + 1) + "){0,126}|" + dt + ")";
2619
+ }, gt = new RegExp("[" + ht + "]"), vt = /(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|vermögensberatung|xn--3oq18vl8pn36a|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|vermögensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|afamilycompany|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|spreadbetting|travelchannel|wolterskluwer|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|rightathome|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pbt977c|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|சிங்கப்பூர்|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nationwide|newholland|nextdirect|onyourside|properties|protection|prudential|realestate|republican|restaurant|schaeffler|swiftcover|tatamotors|technology|telefonica|university|vistaprint|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|fujixerox|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|honeywell|institute|insurance|kuokgroup|ladbrokes|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|scjohnson|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--tckwe|xn--vhquv|yodobashi|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|budapest|builders|business|capetown|catering|catholic|chrysler|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|esurance|etisalat|everbank|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|movistar|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|symantec|training|uconnect|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|السعودية|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|cartier|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|iselect|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lancome|lanxess|lasalle|latrobe|leclerc|liaison|limited|lincoln|markets|metlife|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|shriram|singles|staples|starhub|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|католик|اتصالات|الجزائر|العليان|پاکستان|كاثوليك|موبايلي|இந்தியா|abarth|abbott|abbvie|active|africa|agency|airbus|airtel|alipay|alsace|alstom|anquan|aramco|author|bayern|beauty|berlin|bharti|blanco|bostik|boston|broker|camera|career|caseih|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|mobily|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|piaget|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|warman|webcam|xihuan|yachts|yandex|zappos|москва|онлайн|ابوظبي|ارامكو|الاردن|المغرب|امارات|فلسطين|مليسيا|भारतम्|இலங்கை|ファッション|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|dodge|drive|dubai|earth|edeka|email|epost|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glade|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|intel|irish|iveco|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|lixil|loans|locus|lotte|lotto|lupin|macys|mango|media|miami|money|mopar|movie|nadex|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|zippo|ایران|بازار|بھارت|سودان|سورية|همراه|भारोत|संगठन|বাংলা|భారత్|ഭാരതം|嘉里大酒店|aarp|able|adac|aero|aigo|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|doha|duck|duns|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|raid|read|reit|rent|rest|rich|rmit|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scor|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|дети|сайт|بارت|بيتك|ڀارت|تونس|شبكة|عراق|عمان|موقع|भारत|ভারত|ভাৰত|ਭਾਰਤ|ભારત|ଭାରତ|ಭಾರತ|ලංකා|グーグル|クラウド|ポイント|大众汽车|组织机构|電訊盈科|香格里拉|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bnl|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceb|ceo|cfa|cfd|com|crs|csc|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jcp|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|off|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|qvc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|srl|srt|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|бел|ком|қаз|мкд|мон|орг|рус|срб|укр|հայ|קום|عرب|قطر|كوم|مصر|कॉम|नेट|คอม|ไทย|ストア|セール|みんな|中文网|天主教|我爱你|新加坡|淡马锡|诺基亚|飞利浦|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|ελ|бг|ею|рф|გე|닷넷|닷컴|삼성|한국|コム|世界|中信|中国|中國|企业|佛山|信息|健康|八卦|公司|公益|台湾|台灣|商城|商店|商标|嘉里|在线|大拿|娱乐|家電|工行|广东|微博|慈善|手机|手表|招聘|政务|政府|新闻|时尚|書籍|机构|游戏|澳門|点看|珠宝|移动|网址|网店|网站|网络|联通|谷歌|购物|通販|集团|食品|餐厅|香港)/, wt = new RegExp("[" + ht + "!#$%&'*+/=?^_`{|}~-]"), bt = new RegExp("^" + vt.source + "$"), yt = function(e2) {
2564
2620
  function t2() {
2565
2621
  var t3 = null !== e2 && e2.apply(this, arguments) || this;
2566
- return t3.localPartCharRegex = vt, t3.strictTldRegex = wt, t3;
2622
+ return t3.localPartCharRegex = wt, t3.strictTldRegex = bt, t3;
2567
2623
  }
2568
- return Le(t2, e2), t2.prototype.parseMatches = function(e3) {
2569
- for (var t3 = this.tagBuilder, s2 = this.localPartCharRegex, n2 = this.strictTldRegex, r2 = [], i2 = e3.length, a2 = new yt(), o2 = { m: "a", a: "i", i: "l", l: "t", t: "o", o: ":" }, u2 = 0, c2 = 0, l2 = a2; u2 < i2; ) {
2624
+ return ze(t2, e2), t2.prototype.parseMatches = function(e3) {
2625
+ for (var t3 = this.tagBuilder, s2 = this.localPartCharRegex, n2 = this.strictTldRegex, r2 = [], i2 = e3.length, a2 = new Ct(), o2 = { m: "a", a: "i", i: "l", l: "t", t: "o", o: ":" }, u2 = 0, c2 = 0, l2 = a2; u2 < i2; ) {
2570
2626
  var h2 = e3.charAt(u2);
2571
2627
  switch (c2) {
2572
2628
  case 0:
@@ -2594,7 +2650,7 @@ var ze, Je = function() {
2594
2650
  b2(h2);
2595
2651
  break;
2596
2652
  default:
2597
- $e(c2);
2653
+ We(c2);
2598
2654
  }
2599
2655
  u2++;
2600
2656
  }
@@ -2603,7 +2659,7 @@ var ze, Je = function() {
2603
2659
  "m" === e4 ? y2(1) : s2.test(e4) && y2();
2604
2660
  }
2605
2661
  function p2(e4, t4) {
2606
- ":" === e4 ? s2.test(t4) ? (c2 = 2, l2 = new yt(Je(Je({}, l2), { hasMailtoPrefix: true }))) : C2() : o2[e4] === t4 || (s2.test(t4) ? c2 = 2 : "." === t4 ? c2 = 3 : "@" === t4 ? c2 = 4 : C2());
2662
+ ":" === e4 ? s2.test(t4) ? (c2 = 2, l2 = new Ct(Ye(Ye({}, l2), { hasMailtoPrefix: true }))) : C2() : o2[e4] === t4 || (s2.test(t4) ? c2 = 2 : "." === t4 ? c2 = 3 : "@" === t4 ? c2 = 4 : C2());
2607
2663
  }
2608
2664
  function f2(e4) {
2609
2665
  "." === e4 ? c2 = 3 : "@" === e4 ? c2 = 4 : s2.test(e4) || C2();
@@ -2612,19 +2668,19 @@ var ze, Je = function() {
2612
2668
  "." === e4 || "@" === e4 ? C2() : s2.test(e4) ? c2 = 2 : C2();
2613
2669
  }
2614
2670
  function g2(e4) {
2615
- mt.test(e4) ? c2 = 5 : C2();
2671
+ gt.test(e4) ? c2 = 5 : C2();
2616
2672
  }
2617
2673
  function v2(e4) {
2618
- "." === e4 ? c2 = 7 : "-" === e4 ? c2 = 6 : mt.test(e4) || A2();
2674
+ "." === e4 ? c2 = 7 : "-" === e4 ? c2 = 6 : gt.test(e4) || A2();
2619
2675
  }
2620
2676
  function w2(e4) {
2621
- "-" === e4 || "." === e4 ? A2() : mt.test(e4) ? c2 = 5 : A2();
2677
+ "-" === e4 || "." === e4 ? A2() : gt.test(e4) ? c2 = 5 : A2();
2622
2678
  }
2623
2679
  function b2(e4) {
2624
- "." === e4 || "-" === e4 ? A2() : mt.test(e4) ? (c2 = 5, l2 = new yt(Je(Je({}, l2), { hasDomainDot: true }))) : A2();
2680
+ "." === e4 || "-" === e4 ? A2() : gt.test(e4) ? (c2 = 5, l2 = new Ct(Ye(Ye({}, l2), { hasDomainDot: true }))) : A2();
2625
2681
  }
2626
2682
  function y2(e4) {
2627
- void 0 === e4 && (e4 = 2), c2 = e4, l2 = new yt({ idx: u2 });
2683
+ void 0 === e4 && (e4 = 2), c2 = e4, l2 = new Ct({ idx: u2 });
2628
2684
  }
2629
2685
  function C2() {
2630
2686
  c2 = 0, l2 = a2;
@@ -2637,14 +2693,14 @@ var ze, Je = function() {
2637
2693
  (function(e4) {
2638
2694
  var t4 = e4.split(".").pop() || "", s4 = t4.toLowerCase();
2639
2695
  return n2.test(s4);
2640
- })(i3) && r2.push(new Ye({ tagBuilder: t3, matchedText: s3, offset: l2.idx, email: i3 }));
2696
+ })(i3) && r2.push(new Qe({ tagBuilder: t3, matchedText: s3, offset: l2.idx, email: i3 }));
2641
2697
  }
2642
2698
  C2();
2643
2699
  }
2644
2700
  }, t2;
2645
- }(Xe), yt = function(e2) {
2701
+ }(et), Ct = function(e2) {
2646
2702
  void 0 === e2 && (e2 = {}), this.idx = void 0 !== e2.idx ? e2.idx : -1, this.hasMailtoPrefix = !!e2.hasMailtoPrefix, this.hasDomainDot = !!e2.hasDomainDot;
2647
- }, Ct = function() {
2703
+ }, At = function() {
2648
2704
  function e2() {
2649
2705
  }
2650
2706
  return e2.isValid = function(e3, t2) {
@@ -2662,16 +2718,16 @@ var ze, Je = function() {
2662
2718
  return !(!e3 || t2 && this.hasFullProtocolRegex.test(t2) || -1 !== e3.indexOf("."));
2663
2719
  }, e2.urlMatchDoesNotHaveAtLeastOneWordChar = function(e3, t2) {
2664
2720
  return !(!e3 || !t2) && (!this.hasFullProtocolRegex.test(t2) && !this.hasWordCharAfterProtocolRegex.test(e3));
2665
- }, e2.hasFullProtocolRegex = /^[A-Za-z][-.+A-Za-z0-9]*:\/\//, e2.uriSchemeRegex = /^[A-Za-z][-.+A-Za-z0-9]*:/, e2.hasWordCharAfterProtocolRegex = new RegExp(":[^\\s]*?[" + at + "]"), e2.ipRegex = /[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?(:[0-9]*)?\/?$/, e2;
2666
- }(), At = (ze = new RegExp("[/?#](?:[" + lt + "\\-+&@#/%=~_()|'$*\\[\\]{}?!:,.;^✓]*[" + lt + "\\-+&@#/%=~_()|'$*\\[\\]{}✓])?"), new RegExp(["(?:", "(", /(?:[A-Za-z][-.+A-Za-z0-9]{0,63}:(?![A-Za-z][-.+A-Za-z0-9]{0,63}:\/\/)(?!\d+\/?)(?:\/\/)?)/.source, ft(2), ")", "|", "(", "(//)?", /(?:www\.)/.source, ft(6), ")", "|", "(", "(//)?", ft(10) + "\\.", gt.source, "(?![-" + ct + "])", ")", ")", "(?::[0-9]+)?", "(?:" + ze.source + ")?"].join(""), "gi")), Et = new RegExp("[" + lt + "]"), kt = function(e2) {
2721
+ }, e2.hasFullProtocolRegex = /^[A-Za-z][-.+A-Za-z0-9]*:\/\//, e2.uriSchemeRegex = /^[A-Za-z][-.+A-Za-z0-9]*:/, e2.hasWordCharAfterProtocolRegex = new RegExp(":[^\\s]*?[" + ot + "]"), e2.ipRegex = /[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?(:[0-9]*)?\/?$/, e2;
2722
+ }(), Et = (Je = new RegExp("[/?#](?:[" + ht + "\\-+&@#/%=~_()|'$*\\[\\]{}?!:,.;^✓]*[" + ht + "\\-+&@#/%=~_()|'$*\\[\\]{}✓])?"), new RegExp(["(?:", "(", /(?:[A-Za-z][-.+A-Za-z0-9]{0,63}:(?![A-Za-z][-.+A-Za-z0-9]{0,63}:\/\/)(?!\d+\/?)(?:\/\/)?)/.source, mt(2), ")", "|", "(", "(//)?", /(?:www\.)/.source, mt(6), ")", "|", "(", "(//)?", mt(10) + "\\.", vt.source, "(?![-" + lt + "])", ")", ")", "(?::[0-9]+)?", "(?:" + Je.source + ")?"].join(""), "gi")), kt = new RegExp("[" + ht + "]"), xt = function(e2) {
2667
2723
  function t2(t3) {
2668
2724
  var s2 = e2.call(this, t3) || this;
2669
- return s2.stripPrefix = { scheme: true, www: true }, s2.stripTrailingSlash = true, s2.decodePercentEncoding = true, s2.matcherRegex = At, s2.wordCharRegExp = Et, s2.stripPrefix = t3.stripPrefix, s2.stripTrailingSlash = t3.stripTrailingSlash, s2.decodePercentEncoding = t3.decodePercentEncoding, s2;
2725
+ return s2.stripPrefix = { scheme: true, www: true }, s2.stripTrailingSlash = true, s2.decodePercentEncoding = true, s2.matcherRegex = Et, s2.wordCharRegExp = kt, s2.stripPrefix = t3.stripPrefix, s2.stripTrailingSlash = t3.stripTrailingSlash, s2.decodePercentEncoding = t3.decodePercentEncoding, s2;
2670
2726
  }
2671
- return Le(t2, e2), t2.prototype.parseMatches = function(e3) {
2727
+ return ze(t2, e2), t2.prototype.parseMatches = function(e3) {
2672
2728
  for (var t3, s2 = this.matcherRegex, n2 = this.stripPrefix, r2 = this.stripTrailingSlash, i2 = this.decodePercentEncoding, a2 = this.tagBuilder, o2 = [], u2 = function() {
2673
2729
  var s3 = t3[0], u3 = t3[1], l2 = t3[4], h2 = t3[5], d2 = t3[9], p2 = t3.index, f2 = h2 || d2, m2 = e3.charAt(p2 - 1);
2674
- if (!Ct.isValid(s3, u3)) return "continue";
2730
+ if (!At.isValid(s3, u3)) return "continue";
2675
2731
  if (p2 > 0 && "@" === m2) return "continue";
2676
2732
  if (p2 > 0 && f2 && c2.wordCharRegExp.test(m2)) return "continue";
2677
2733
  if (/\?$/.test(s3) && (s3 = s3.substr(0, s3.length - 1)), c2.matchHasUnbalancedClosingParen(s3)) s3 = s3.substr(0, s3.length - 1);
@@ -2687,7 +2743,7 @@ var ze, Je = function() {
2687
2743
  s3 = s3.substr(w2), u3 = u3.substr(w2), p2 += w2;
2688
2744
  }
2689
2745
  var b2 = u3 ? "scheme" : l2 ? "www" : "tld", y2 = !!u3;
2690
- o2.push(new Ke({ tagBuilder: a2, matchedText: s3, offset: p2, urlMatchType: b2, url: s3, protocolUrlMatch: y2, protocolRelativeMatch: !!f2, stripPrefix: n2, stripTrailingSlash: r2, decodePercentEncoding: i2 }));
2746
+ o2.push(new Xe({ tagBuilder: a2, matchedText: s3, offset: p2, urlMatchType: b2, url: s3, protocolUrlMatch: y2, protocolRelativeMatch: !!f2, stripPrefix: n2, stripTrailingSlash: r2, decodePercentEncoding: i2 }));
2691
2747
  }, c2 = this; null !== (t3 = s2.exec(e3)); ) u2();
2692
2748
  return o2;
2693
2749
  }, t2.prototype.matchHasUnbalancedClosingParen = function(e3) {
@@ -2707,58 +2763,58 @@ var ze, Je = function() {
2707
2763
  if (!e3) return -1;
2708
2764
  var s2 = 0;
2709
2765
  t3 && (s2 = e3.indexOf(":"), e3 = e3.slice(s2));
2710
- var n2 = new RegExp("^((.?//)?[-." + lt + "]*[-" + lt + "]\\.[-" + lt + "]+)").exec(e3);
2766
+ var n2 = new RegExp("^((.?//)?[-." + ht + "]*[-" + ht + "]\\.[-" + ht + "]+)").exec(e3);
2711
2767
  return null === n2 ? -1 : (s2 += n2[1].length, e3 = e3.slice(n2[1].length), /^[^-.A-Za-z0-9:\/?#]/.test(e3) ? s2 : -1);
2712
2768
  }, t2;
2713
- }(Xe), xt = new RegExp("#[_" + lt + "]{1,139}(?![_" + lt + "])", "g"), Tt = new RegExp("[^" + lt + "]"), St = function(e2) {
2769
+ }(et), Tt = new RegExp("#[_" + ht + "]{1,139}(?![_" + ht + "])", "g"), It = new RegExp("[^" + ht + "]"), St = function(e2) {
2714
2770
  function t2(t3) {
2715
2771
  var s2 = e2.call(this, t3) || this;
2716
- return s2.serviceName = "twitter", s2.matcherRegex = xt, s2.nonWordCharRegex = Tt, s2.serviceName = t3.serviceName, s2;
2772
+ return s2.serviceName = "twitter", s2.matcherRegex = Tt, s2.nonWordCharRegex = It, s2.serviceName = t3.serviceName, s2;
2717
2773
  }
2718
- return Le(t2, e2), t2.prototype.parseMatches = function(e3) {
2774
+ return ze(t2, e2), t2.prototype.parseMatches = function(e3) {
2719
2775
  for (var t3, s2 = this.matcherRegex, n2 = this.nonWordCharRegex, r2 = this.serviceName, i2 = this.tagBuilder, a2 = []; null !== (t3 = s2.exec(e3)); ) {
2720
2776
  var o2 = t3.index, u2 = e3.charAt(o2 - 1);
2721
2777
  if (0 === o2 || n2.test(u2)) {
2722
2778
  var c2 = t3[0], l2 = t3[0].slice(1);
2723
- a2.push(new Qe({ tagBuilder: i2, matchedText: c2, offset: o2, serviceName: r2, hashtag: l2 }));
2779
+ a2.push(new Ve({ tagBuilder: i2, matchedText: c2, offset: o2, serviceName: r2, hashtag: l2 }));
2724
2780
  }
2725
2781
  }
2726
2782
  return a2;
2727
2783
  }, t2;
2728
- }(Xe), It = new RegExp(/(?:(?:(?:(\+)?\d{1,3}[-\040.]?)?\(?\d{3}\)?[-\040.]?\d{3}[-\040.]?\d{4})|(?:(\+)(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-\040.]?(?:\d[-\040.]?){6,12}\d+))([,;]+[0-9]+#?)*/.source + "|" + /(0([1-9]{1}-?[1-9]\d{3}|[1-9]{2}-?\d{3}|[1-9]{2}\d{1}-?\d{2}|[1-9]{2}\d{2}-?\d{1})-?\d{4}|0[789]0-?\d{4}-?\d{4}|050-?\d{4}-?\d{4})/.source, "g"), Dt = function(e2) {
2784
+ }(et), Dt = new RegExp(/(?:(?:(?:(\+)?\d{1,3}[-\040.]?)?\(?\d{3}\)?[-\040.]?\d{3}[-\040.]?\d{4})|(?:(\+)(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-\040.]?(?:\d[-\040.]?){6,12}\d+))([,;]+[0-9]+#?)*/.source + "|" + /(0([1-9]{1}-?[1-9]\d{3}|[1-9]{2}-?\d{3}|[1-9]{2}\d{1}-?\d{2}|[1-9]{2}\d{2}-?\d{1})-?\d{4}|0[789]0-?\d{4}-?\d{4}|050-?\d{4}-?\d{4})/.source, "g"), Mt = function(e2) {
2729
2785
  function t2() {
2730
2786
  var t3 = null !== e2 && e2.apply(this, arguments) || this;
2731
- return t3.matcherRegex = It, t3;
2787
+ return t3.matcherRegex = Dt, t3;
2732
2788
  }
2733
- return Le(t2, e2), t2.prototype.parseMatches = function(e3) {
2789
+ return ze(t2, e2), t2.prototype.parseMatches = function(e3) {
2734
2790
  for (var t3, s2 = this.matcherRegex, n2 = this.tagBuilder, r2 = []; null !== (t3 = s2.exec(e3)); ) {
2735
2791
  var i2 = t3[0], a2 = i2.replace(/[^0-9,;#]/g, ""), o2 = !(!t3[1] && !t3[2]), u2 = 0 == t3.index ? "" : e3.substr(t3.index - 1, 1), c2 = e3.substr(t3.index + i2.length, 1), l2 = !u2.match(/\d/) && !c2.match(/\d/);
2736
- this.testMatch(t3[3]) && this.testMatch(i2) && l2 && r2.push(new Ze({ tagBuilder: n2, matchedText: i2, offset: t3.index, number: a2, plusSign: o2 }));
2792
+ this.testMatch(t3[3]) && this.testMatch(i2) && l2 && r2.push(new Ke({ tagBuilder: n2, matchedText: i2, offset: t3.index, number: a2, plusSign: o2 }));
2737
2793
  }
2738
2794
  return r2;
2739
2795
  }, t2.prototype.testMatch = function(e3) {
2740
- return st.test(e3);
2796
+ return nt.test(e3);
2741
2797
  }, t2;
2742
- }(Xe), Mt = new RegExp("@[_" + lt + "]{1,50}(?![_" + lt + "])", "g"), Ft = new RegExp("@[_." + lt + "]{1,30}(?![_" + lt + "])", "g"), Bt = new RegExp("@[-_." + lt + "]{1,50}(?![-_" + lt + "])", "g"), Rt = new RegExp("[^" + lt + "]"), Nt = function(e2) {
2798
+ }(et), Ft = new RegExp("@[_" + ht + "]{1,50}(?![_" + ht + "])", "g"), Bt = new RegExp("@[_." + ht + "]{1,30}(?![_" + ht + "])", "g"), Nt = new RegExp("@[-_." + ht + "]{1,50}(?![-_" + ht + "])", "g"), Rt = new RegExp("[^" + ht + "]"), _t = function(e2) {
2743
2799
  function t2(t3) {
2744
2800
  var s2 = e2.call(this, t3) || this;
2745
- return s2.serviceName = "twitter", s2.matcherRegexes = { twitter: Mt, instagram: Ft, soundcloud: Bt }, s2.nonWordCharRegex = Rt, s2.serviceName = t3.serviceName, s2;
2801
+ return s2.serviceName = "twitter", s2.matcherRegexes = { twitter: Ft, instagram: Bt, soundcloud: Nt }, s2.nonWordCharRegex = Rt, s2.serviceName = t3.serviceName, s2;
2746
2802
  }
2747
- return Le(t2, e2), t2.prototype.parseMatches = function(e3) {
2803
+ return ze(t2, e2), t2.prototype.parseMatches = function(e3) {
2748
2804
  var t3, s2 = this.serviceName, n2 = this.matcherRegexes[this.serviceName], r2 = this.nonWordCharRegex, i2 = this.tagBuilder, a2 = [];
2749
2805
  if (!n2) return a2;
2750
2806
  for (; null !== (t3 = n2.exec(e3)); ) {
2751
2807
  var o2 = t3.index, u2 = e3.charAt(o2 - 1);
2752
2808
  if (0 === o2 || r2.test(u2)) {
2753
2809
  var c2 = t3[0].replace(/\.+$/g, ""), l2 = c2.slice(1);
2754
- a2.push(new Ve({ tagBuilder: i2, matchedText: c2, offset: o2, serviceName: s2, mention: l2 }));
2810
+ a2.push(new Ze({ tagBuilder: i2, matchedText: c2, offset: o2, serviceName: s2, mention: l2 }));
2755
2811
  }
2756
2812
  }
2757
2813
  return a2;
2758
2814
  }, t2;
2759
- }(Xe);
2815
+ }(et);
2760
2816
  function Pt(e2, t2) {
2761
- for (var s2, n2 = t2.onOpenTag, r2 = t2.onCloseTag, i2 = t2.onText, a2 = t2.onComment, o2 = t2.onDoctype, u2 = new _t(), c2 = 0, l2 = e2.length, h2 = 0, d2 = 0, p2 = u2; c2 < l2; ) {
2817
+ for (var s2, n2 = t2.onOpenTag, r2 = t2.onCloseTag, i2 = t2.onText, a2 = t2.onComment, o2 = t2.onDoctype, u2 = new Ot(), c2 = 0, l2 = e2.length, h2 = 0, d2 = 0, p2 = u2; c2 < l2; ) {
2762
2818
  var f2 = e2.charAt(c2);
2763
2819
  switch (h2) {
2764
2820
  case 0:
@@ -2798,10 +2854,10 @@ function Pt(e2, t2) {
2798
2854
  T2(f2);
2799
2855
  break;
2800
2856
  case 12:
2801
- S2(f2);
2857
+ I2(f2);
2802
2858
  break;
2803
2859
  case 13:
2804
- I2();
2860
+ S2();
2805
2861
  break;
2806
2862
  case 14:
2807
2863
  D2(f2);
@@ -2816,16 +2872,16 @@ function Pt(e2, t2) {
2816
2872
  B2(f2);
2817
2873
  break;
2818
2874
  case 18:
2819
- R2(f2);
2875
+ N2(f2);
2820
2876
  break;
2821
2877
  case 19:
2822
- N2(f2);
2878
+ R2(f2);
2823
2879
  break;
2824
2880
  case 20:
2825
- P2(f2);
2881
+ _2(f2);
2826
2882
  break;
2827
2883
  default:
2828
- $e(h2);
2884
+ We(h2);
2829
2885
  }
2830
2886
  c2++;
2831
2887
  }
@@ -2833,25 +2889,25 @@ function Pt(e2, t2) {
2833
2889
  "<" === e3 && O2();
2834
2890
  }
2835
2891
  function g2(e3) {
2836
- "!" === e3 ? h2 = 13 : "/" === e3 ? (h2 = 2, p2 = new _t(Je(Je({}, p2), { isClosing: true }))) : "<" === e3 ? O2() : et.test(e3) ? (h2 = 3, p2 = new _t(Je(Je({}, p2), { isOpening: true }))) : (h2 = 0, p2 = u2);
2892
+ "!" === e3 ? h2 = 13 : "/" === e3 ? (h2 = 2, p2 = new Ot(Ye(Ye({}, p2), { isClosing: true }))) : "<" === e3 ? O2() : tt.test(e3) ? (h2 = 3, p2 = new Ot(Ye(Ye({}, p2), { isOpening: true }))) : (h2 = 0, p2 = u2);
2837
2893
  }
2838
2894
  function v2(e3) {
2839
- nt.test(e3) ? (p2 = new _t(Je(Je({}, p2), { name: j2() })), h2 = 4) : "<" === e3 ? O2() : "/" === e3 ? (p2 = new _t(Je(Je({}, p2), { name: j2() })), h2 = 12) : ">" === e3 ? (p2 = new _t(Je(Je({}, p2), { name: j2() })), U2()) : et.test(e3) || tt.test(e3) || ":" === e3 || _2();
2895
+ rt.test(e3) ? (p2 = new Ot(Ye(Ye({}, p2), { name: j2() })), h2 = 4) : "<" === e3 ? O2() : "/" === e3 ? (p2 = new Ot(Ye(Ye({}, p2), { name: j2() })), h2 = 12) : ">" === e3 ? (p2 = new Ot(Ye(Ye({}, p2), { name: j2() })), U2()) : tt.test(e3) || st.test(e3) || ":" === e3 || P2();
2840
2896
  }
2841
2897
  function w2(e3) {
2842
- ">" === e3 ? _2() : et.test(e3) ? h2 = 3 : _2();
2898
+ ">" === e3 ? P2() : tt.test(e3) ? h2 = 3 : P2();
2843
2899
  }
2844
2900
  function b2(e3) {
2845
- nt.test(e3) || ("/" === e3 ? h2 = 12 : ">" === e3 ? U2() : "<" === e3 ? O2() : "=" === e3 || rt.test(e3) || it.test(e3) ? _2() : h2 = 5);
2901
+ rt.test(e3) || ("/" === e3 ? h2 = 12 : ">" === e3 ? U2() : "<" === e3 ? O2() : "=" === e3 || it.test(e3) || at.test(e3) ? P2() : h2 = 5);
2846
2902
  }
2847
2903
  function y2(e3) {
2848
- nt.test(e3) ? h2 = 6 : "/" === e3 ? h2 = 12 : "=" === e3 ? h2 = 7 : ">" === e3 ? U2() : "<" === e3 ? O2() : rt.test(e3) && _2();
2904
+ rt.test(e3) ? h2 = 6 : "/" === e3 ? h2 = 12 : "=" === e3 ? h2 = 7 : ">" === e3 ? U2() : "<" === e3 ? O2() : it.test(e3) && P2();
2849
2905
  }
2850
2906
  function C2(e3) {
2851
- nt.test(e3) || ("/" === e3 ? h2 = 12 : "=" === e3 ? h2 = 7 : ">" === e3 ? U2() : "<" === e3 ? O2() : rt.test(e3) ? _2() : h2 = 5);
2907
+ rt.test(e3) || ("/" === e3 ? h2 = 12 : "=" === e3 ? h2 = 7 : ">" === e3 ? U2() : "<" === e3 ? O2() : it.test(e3) ? P2() : h2 = 5);
2852
2908
  }
2853
2909
  function A2(e3) {
2854
- nt.test(e3) || ('"' === e3 ? h2 = 8 : "'" === e3 ? h2 = 9 : /[>=`]/.test(e3) ? _2() : "<" === e3 ? O2() : h2 = 10);
2910
+ rt.test(e3) || ('"' === e3 ? h2 = 8 : "'" === e3 ? h2 = 9 : /[>=`]/.test(e3) ? P2() : "<" === e3 ? O2() : h2 = 10);
2855
2911
  }
2856
2912
  function E2(e3) {
2857
2913
  '"' === e3 && (h2 = 11);
@@ -2860,22 +2916,22 @@ function Pt(e2, t2) {
2860
2916
  "'" === e3 && (h2 = 11);
2861
2917
  }
2862
2918
  function x2(e3) {
2863
- nt.test(e3) ? h2 = 4 : ">" === e3 ? U2() : "<" === e3 && O2();
2919
+ rt.test(e3) ? h2 = 4 : ">" === e3 ? U2() : "<" === e3 && O2();
2864
2920
  }
2865
2921
  function T2(e3) {
2866
- nt.test(e3) ? h2 = 4 : "/" === e3 ? h2 = 12 : ">" === e3 ? U2() : "<" === e3 ? O2() : (h2 = 4, c2--);
2922
+ rt.test(e3) ? h2 = 4 : "/" === e3 ? h2 = 12 : ">" === e3 ? U2() : "<" === e3 ? O2() : (h2 = 4, c2--);
2867
2923
  }
2868
- function S2(e3) {
2869
- ">" === e3 ? (p2 = new _t(Je(Je({}, p2), { isClosing: true })), U2()) : h2 = 4;
2924
+ function I2(e3) {
2925
+ ">" === e3 ? (p2 = new Ot(Ye(Ye({}, p2), { isClosing: true })), U2()) : h2 = 4;
2870
2926
  }
2871
- function I2(t3) {
2872
- "--" === e2.substr(c2, 2) ? (c2 += 2, p2 = new _t(Je(Je({}, p2), { type: "comment" })), h2 = 14) : "DOCTYPE" === e2.substr(c2, 7).toUpperCase() ? (c2 += 7, p2 = new _t(Je(Je({}, p2), { type: "doctype" })), h2 = 20) : _2();
2927
+ function S2(t3) {
2928
+ "--" === e2.substr(c2, 2) ? (c2 += 2, p2 = new Ot(Ye(Ye({}, p2), { type: "comment" })), h2 = 14) : "DOCTYPE" === e2.substr(c2, 7).toUpperCase() ? (c2 += 7, p2 = new Ot(Ye(Ye({}, p2), { type: "doctype" })), h2 = 20) : P2();
2873
2929
  }
2874
2930
  function D2(e3) {
2875
- "-" === e3 ? h2 = 15 : ">" === e3 ? _2() : h2 = 16;
2931
+ "-" === e3 ? h2 = 15 : ">" === e3 ? P2() : h2 = 16;
2876
2932
  }
2877
2933
  function M2(e3) {
2878
- "-" === e3 ? h2 = 18 : ">" === e3 ? _2() : h2 = 16;
2934
+ "-" === e3 ? h2 = 18 : ">" === e3 ? P2() : h2 = 16;
2879
2935
  }
2880
2936
  function F2(e3) {
2881
2937
  "-" === e3 && (h2 = 17);
@@ -2883,24 +2939,24 @@ function Pt(e2, t2) {
2883
2939
  function B2(e3) {
2884
2940
  h2 = "-" === e3 ? 18 : 16;
2885
2941
  }
2886
- function R2(e3) {
2942
+ function N2(e3) {
2887
2943
  ">" === e3 ? U2() : "!" === e3 ? h2 = 19 : "-" === e3 || (h2 = 16);
2888
2944
  }
2889
- function N2(e3) {
2945
+ function R2(e3) {
2890
2946
  "-" === e3 ? h2 = 17 : ">" === e3 ? U2() : h2 = 16;
2891
2947
  }
2892
- function P2(e3) {
2948
+ function _2(e3) {
2893
2949
  ">" === e3 ? U2() : "<" === e3 && O2();
2894
2950
  }
2895
- function _2() {
2951
+ function P2() {
2896
2952
  h2 = 0, p2 = u2;
2897
2953
  }
2898
2954
  function O2() {
2899
- h2 = 1, p2 = new _t({ idx: c2 });
2955
+ h2 = 1, p2 = new Ot({ idx: c2 });
2900
2956
  }
2901
2957
  function U2() {
2902
2958
  var t3 = e2.slice(d2, p2.idx);
2903
- t3 && i2(t3, d2), "comment" === p2.type ? a2(p2.idx) : "doctype" === p2.type ? o2(p2.idx) : (p2.isOpening && n2(p2.name, p2.idx), p2.isClosing && r2(p2.name, p2.idx)), _2(), d2 = c2 + 1;
2959
+ t3 && i2(t3, d2), "comment" === p2.type ? a2(p2.idx) : "doctype" === p2.type ? o2(p2.idx) : (p2.isOpening && n2(p2.name, p2.idx), p2.isClosing && r2(p2.name, p2.idx)), P2(), d2 = c2 + 1;
2904
2960
  }
2905
2961
  function j2() {
2906
2962
  var t3 = p2.idx + (p2.isClosing ? 2 : 1);
@@ -2908,9 +2964,9 @@ function Pt(e2, t2) {
2908
2964
  }
2909
2965
  d2 < c2 && (s2 = e2.slice(d2, c2), i2(s2, d2), d2 = c2 + 1);
2910
2966
  }
2911
- var _t = function(e2) {
2967
+ var Ot = function(e2) {
2912
2968
  void 0 === e2 && (e2 = {}), this.idx = void 0 !== e2.idx ? e2.idx : -1, this.type = e2.type || "tag", this.name = e2.name || "", this.isOpening = !!e2.isOpening, this.isClosing = !!e2.isClosing;
2913
- }, Ot = function() {
2969
+ }, Ut = function() {
2914
2970
  function e2(t2) {
2915
2971
  void 0 === t2 && (t2 = {}), this.version = e2.version, this.urls = {}, this.email = true, this.phone = true, this.hashtag = false, this.mention = false, this.newWindow = true, this.stripPrefix = { scheme: true, www: true }, this.stripTrailingSlash = true, this.decodePercentEncoding = true, this.truncate = { length: 0, location: "end" }, this.className = "", this.replaceFn = null, this.context = void 0, this.sanitizeHtml = false, this.matchers = null, this.tagBuilder = null, this.urls = this.normalizeUrlsCfg(t2.urls), this.email = "boolean" == typeof t2.email ? t2.email : this.email, this.phone = "boolean" == typeof t2.phone ? t2.phone : this.phone, this.hashtag = t2.hashtag || this.hashtag, this.mention = t2.mention || this.mention, this.newWindow = "boolean" == typeof t2.newWindow ? t2.newWindow : this.newWindow, this.stripPrefix = this.normalizeStripPrefixCfg(t2.stripPrefix), this.stripTrailingSlash = "boolean" == typeof t2.stripTrailingSlash ? t2.stripTrailingSlash : this.stripTrailingSlash, this.decodePercentEncoding = "boolean" == typeof t2.decodePercentEncoding ? t2.decodePercentEncoding : this.decodePercentEncoding, this.sanitizeHtml = t2.sanitizeHtml || false;
2916
2972
  var s2 = this.mention;
@@ -2973,19 +3029,19 @@ var _t = function(e2) {
2973
3029
  }
2974
3030
  return e3;
2975
3031
  }, e2.prototype.removeUnwantedMatches = function(e3) {
2976
- return this.hashtag || je(e3, function(e4) {
3032
+ return this.hashtag || $e(e3, function(e4) {
2977
3033
  return "hashtag" === e4.getType();
2978
- }), this.email || je(e3, function(e4) {
3034
+ }), this.email || $e(e3, function(e4) {
2979
3035
  return "email" === e4.getType();
2980
- }), this.phone || je(e3, function(e4) {
3036
+ }), this.phone || $e(e3, function(e4) {
2981
3037
  return "phone" === e4.getType();
2982
- }), this.mention || je(e3, function(e4) {
3038
+ }), this.mention || $e(e3, function(e4) {
2983
3039
  return "mention" === e4.getType();
2984
- }), this.urls.schemeMatches || je(e3, function(e4) {
3040
+ }), this.urls.schemeMatches || $e(e3, function(e4) {
2985
3041
  return "url" === e4.getType() && "scheme" === e4.getUrlMatchType();
2986
- }), this.urls.wwwMatches || je(e3, function(e4) {
3042
+ }), this.urls.wwwMatches || $e(e3, function(e4) {
2987
3043
  return "url" === e4.getType() && "www" === e4.getUrlMatchType();
2988
- }), this.urls.tldMatches || je(e3, function(e4) {
3044
+ }), this.urls.tldMatches || $e(e3, function(e4) {
2989
3045
  return "url" === e4.getType() && "tld" === e4.getUrlMatchType();
2990
3046
  }), e3;
2991
3047
  }, e2.prototype.parseText = function(e3, t2) {
@@ -3005,99 +3061,99 @@ var _t = function(e2) {
3005
3061
  return s2.push(e3.substring(n2)), s2.join("");
3006
3062
  }, e2.prototype.createMatchReturnVal = function(e3) {
3007
3063
  var t2;
3008
- return this.replaceFn && (t2 = this.replaceFn.call(this.context, e3)), "string" == typeof t2 ? t2 : false === t2 ? e3.getMatchedText() : t2 instanceof We ? t2.toAnchorString() : e3.buildTag().toAnchorString();
3064
+ return this.replaceFn && (t2 = this.replaceFn.call(this.context, e3)), "string" == typeof t2 ? t2 : false === t2 ? e3.getMatchedText() : t2 instanceof qe ? t2.toAnchorString() : e3.buildTag().toAnchorString();
3009
3065
  }, e2.prototype.getMatchers = function() {
3010
3066
  if (this.matchers) return this.matchers;
3011
- var e3 = this.getTagBuilder(), t2 = [new St({ tagBuilder: e3, serviceName: this.hashtag }), new bt({ tagBuilder: e3 }), new Dt({ tagBuilder: e3 }), new Nt({ tagBuilder: e3, serviceName: this.mention }), new kt({ tagBuilder: e3, stripPrefix: this.stripPrefix, stripTrailingSlash: this.stripTrailingSlash, decodePercentEncoding: this.decodePercentEncoding })];
3067
+ var e3 = this.getTagBuilder(), t2 = [new St({ tagBuilder: e3, serviceName: this.hashtag }), new yt({ tagBuilder: e3 }), new Mt({ tagBuilder: e3 }), new _t({ tagBuilder: e3, serviceName: this.mention }), new xt({ tagBuilder: e3, stripPrefix: this.stripPrefix, stripTrailingSlash: this.stripTrailingSlash, decodePercentEncoding: this.decodePercentEncoding })];
3012
3068
  return this.matchers = t2;
3013
3069
  }, e2.prototype.getTagBuilder = function() {
3014
3070
  var e3 = this.tagBuilder;
3015
- return e3 || (e3 = this.tagBuilder = new qe({ newWindow: this.newWindow, truncate: this.truncate, className: this.className })), e3;
3016
- }, e2.version = "3.14.3", e2.AnchorTagBuilder = qe, e2.HtmlTag = We, e2.matcher = { Email: bt, Hashtag: St, Matcher: Xe, Mention: Nt, Phone: Dt, Url: kt }, e2.match = { Email: Ye, Hashtag: Qe, Match: He, Mention: Ve, Phone: Ze, Url: Ke }, e2;
3071
+ return e3 || (e3 = this.tagBuilder = new He({ newWindow: this.newWindow, truncate: this.truncate, className: this.className })), e3;
3072
+ }, e2.version = "3.14.3", e2.AnchorTagBuilder = He, e2.HtmlTag = qe, e2.matcher = { Email: yt, Hashtag: St, Matcher: et, Mention: _t, Phone: Mt, Url: xt }, e2.match = { Email: Qe, Hashtag: Ve, Match: Ge, Mention: Ze, Phone: Ke, Url: Xe }, e2;
3017
3073
  }();
3018
- function Ut(e2, t2 = e2) {
3074
+ function jt(e2, t2 = e2) {
3019
3075
  return { type: "autolink", url: e2, text: t2 };
3020
3076
  }
3021
- const jt = Me(/<!!mention:([^>\s]*?)\|(.*?)>/gm, ([e2, t2, s2]) => /* @__PURE__ */ function(e3, t3) {
3077
+ const $t = Fe(/<!!mention:([^>\s]*?)\|(.*?)>/gm, ([e2, t2, s2]) => /* @__PURE__ */ function(e3, t3) {
3022
3078
  return { type: "mention", id: e3, text: t3 };
3023
- }(decodeURIComponent(t2), s2)), $t = Me(/<!!customemoji:(.*?)>/gm, ([e2, t2]) => /* @__PURE__ */ function(e3) {
3079
+ }(decodeURIComponent(t2), s2)), Wt = Fe(/<!!customemoji:(.*?)>/gm, ([e2, t2]) => /* @__PURE__ */ function(e3) {
3024
3080
  return { type: "customemoji", text: e3 };
3025
- }(t2)), Wt = Me(/<((?:https?|mailto):.*?)\|(.*?)>/gi, ([e2, t2, s2]) => /* @__PURE__ */ function(e3, t3 = []) {
3081
+ }(t2)), qt = Fe(/<((?:https?|mailto):.*?)\|(.*?)>/gi, ([e2, t2, s2]) => /* @__PURE__ */ function(e3, t3 = []) {
3026
3082
  return { type: "link", url: e3, children: t3 };
3027
- }(t2, [s2])), qt = Me(/<actionlink:([^|]+)[|]([^>]*)>/gi, ([e2, t2, s2]) => {
3028
- const { action: n2, params: r2 } = Gt(t2);
3083
+ }(t2, [s2])), Ht = Fe(/<actionlink:([^|]+)[|]([^>]*)>/gi, ([e2, t2, s2]) => {
3084
+ const { action: n2, params: r2 } = Lt(t2);
3029
3085
  return /* @__PURE__ */ function(e3, t3, s3 = []) {
3030
3086
  return { type: "actionlink", action: e3, params: t3, children: s3 };
3031
3087
  }(n2, r2, [s2]);
3032
- }), Ht = Me(/<actionbutton:([^|]+)[|]([^>]*)>/gi, ([e2, t2, s2]) => {
3033
- const { action: n2, params: r2 } = Gt(t2);
3088
+ }), Gt = Fe(/<actionbutton:([^|]+)[|]([^>]*)>/gi, ([e2, t2, s2]) => {
3089
+ const { action: n2, params: r2 } = Lt(t2);
3034
3090
  return /* @__PURE__ */ function(e3, t3, s3 = []) {
3035
3091
  return { type: "actionbutton", action: e3, params: t3, children: s3 };
3036
3092
  }(n2, r2, [s2]);
3037
3093
  });
3038
- function Gt(e2) {
3094
+ function Lt(e2) {
3039
3095
  const t2 = e2.indexOf("?");
3040
3096
  if (-1 === t2) return { action: e2, params: {} };
3041
3097
  return { action: e2.slice(0, t2), params: Object.fromEntries(new URLSearchParams(e2.slice(t2))) };
3042
3098
  }
3043
- const Lt = Me(/(?:^|\n)(?:\s*[-*+]\s+[^\n]+(?:\n|$))+/g, ([e2]) => /* @__PURE__ */ function(e3 = []) {
3099
+ const zt = Fe(/(?:^|\n)(?:\s*[-*+]\s+[^\n]+(?:\n|$))+/g, ([e2]) => /* @__PURE__ */ function(e3 = []) {
3044
3100
  return { type: "bulletlist", children: e3 };
3045
- }([e2.startsWith("\n") ? e2.slice(1) : e2])), zt = Me(/^\s*[-*+]\s+([^\n]+)(?:\n|$)/gm, ([e2, t2]) => ({ type: "bulletpoint", children: [t2] })), Jt = (e2) => {
3101
+ }([e2.startsWith("\n") ? e2.slice(1) : e2])), Jt = Fe(/^\s*[-*+]\s+([^\n]+)(?:\n|$)/gm, ([e2, t2]) => ({ type: "bulletpoint", children: [t2] })), Yt = (e2) => {
3046
3102
  const t2 = /(?:^|[^-:/\w])([(+]?[0-9](?:[-_+ ().]?[0-9]){5,11}[0-9])(?:[^-:/\w]|$)/g;
3047
3103
  let s2 = 0;
3048
3104
  const n2 = [];
3049
3105
  for (const r2 of J(e2, t2)) {
3050
3106
  const t3 = r2[0], i2 = r2[1], a2 = t3.startsWith(i2) ? r2.index : r2.index + 1;
3051
3107
  a2 - s2 > 0 && n2.push(e2.substring(s2, a2));
3052
- const o2 = Ut("tel:" + i2.replace(/[^0-9+]/g, ""), i2);
3108
+ const o2 = jt("tel:" + i2.replace(/[^0-9+]/g, ""), i2);
3053
3109
  n2.push(o2), s2 = a2 + i2.length;
3054
3110
  }
3055
3111
  return s2 < e2.length && n2.push(e2.substring(s2)), n2;
3056
- }, Yt = (e2) => Wt(e2).flatMap((e3) => "string" == typeof e3 ? Qt(e3) : ["<", ...Qt(e3.url), ...Qt("|" + e3.children[0] + ">")]), Qt = (e2) => {
3057
- const t2 = Ot.parse(e2, { urls: true, email: true, phone: false, hashtag: false, mention: false }), s2 = [];
3112
+ }, Qt = (e2) => qt(e2).flatMap((e3) => "string" == typeof e3 ? Vt(e3) : ["<", ...Vt(e3.url), ...Vt("|" + e3.children[0] + ">")]), Vt = (e2) => {
3113
+ const t2 = Ut.parse(e2, { urls: true, email: true, phone: false, hashtag: false, mention: false }), s2 = [];
3058
3114
  let n2 = 0;
3059
3115
  for (const r2 of t2) {
3060
3116
  const t3 = r2.getOffset(), i2 = r2.getMatchedText(), a2 = i2.length;
3061
3117
  let o2 = i2;
3062
- r2 instanceof Ye ? o2 = "mailto:" + r2.getEmail() : r2 instanceof Ke && (o2 = r2.getUrl()), t3 > n2 && s2.push(e2.substring(n2, t3)), s2.push(Ut(o2, i2)), n2 = t3 + a2;
3118
+ r2 instanceof Qe ? o2 = "mailto:" + r2.getEmail() : r2 instanceof Xe && (o2 = r2.getUrl()), t3 > n2 && s2.push(e2.substring(n2, t3)), s2.push(jt(o2, i2)), n2 = t3 + a2;
3063
3119
  }
3064
3120
  return n2 < e2.length && s2.push(e2.substring(n2)), s2;
3065
- }, Vt = ["Codeblock", "Codespan", "FormattedLink", "Wikitext", "Autolink", "Actions", "Mention", "Mention", "BulletPoint", "CustomEmoji"];
3066
- function Zt(e2 = { except: [] }) {
3121
+ }, Zt = ["Codeblock", "Codespan", "FormattedLink", "Wikitext", "Autolink", "Actions", "Mention", "Mention", "BulletPoint", "CustomEmoji"];
3122
+ function Kt(e2 = { except: [] }) {
3067
3123
  var _a2;
3068
- const t2 = { multilineSteps: [], singlelineSteps: [] }, s2 = (_a2 = e2.except) != null ? _a2 : Vt.filter((t3) => !e2.only.includes(t3));
3069
- return s2.includes("BulletPoint") || t2.multilineSteps.push(Lt, zt), s2.includes("Mention") || t2.singlelineSteps.push(jt), s2.includes("CustomEmoji") || t2.singlelineSteps.push($t), s2.includes("Codespan") || t2.multilineSteps.push(Me(/```([^]+?)```/g, ([e3, t3]) => ({ type: "codespan", text: t3 }))), s2.includes("FormattedLink") || t2.singlelineSteps.push(Wt), s2.includes("Actions") || (t2.singlelineSteps.push(qt), t2.singlelineSteps.push(Ht)), s2.includes("Wikitext") || t2.singlelineSteps.push(Pe), s2.includes("Autolink") || t2.singlelineSteps.push(Yt, Jt), t2;
3124
+ const t2 = { multilineSteps: [], singlelineSteps: [] }, s2 = (_a2 = e2.except) != null ? _a2 : Zt.filter((t3) => !e2.only.includes(t3));
3125
+ return s2.includes("BulletPoint") || t2.multilineSteps.push(zt, Jt), s2.includes("Mention") || t2.singlelineSteps.push($t), s2.includes("CustomEmoji") || t2.singlelineSteps.push(Wt), s2.includes("Codespan") || t2.multilineSteps.push(Fe(/```([^]+?)```/g, ([e3, t3]) => ({ type: "codespan", text: t3 }))), s2.includes("FormattedLink") || t2.singlelineSteps.push(qt), s2.includes("Actions") || (t2.singlelineSteps.push(Ht), t2.singlelineSteps.push(Gt)), s2.includes("Wikitext") || t2.singlelineSteps.push(Pe), s2.includes("Autolink") || t2.singlelineSteps.push(Qt, Yt), t2;
3070
3126
  }
3071
- const Kt = function(e2) {
3127
+ const Xt = function(e2) {
3072
3128
  const t2 = RegExp(`[^${e2}]+${e2}?|${e2}`, "g");
3073
3129
  return (e3) => Array.from(e3.match(t2) || []);
3074
3130
  }("\n");
3075
- function Xt(e2, t2 = { except: [] }) {
3131
+ function es(e2, t2 = { except: [] }) {
3076
3132
  let s2 = function(e3, t3) {
3077
3133
  let s3 = [e3];
3078
- return s3 = es(s3, t3.multilineSteps), s3 = es(s3, [Kt]), s3 = es(s3, t3.singlelineSteps), s3 = ts(s3), s3;
3079
- }(e2, Zt(t2));
3080
- return s2 = ss(s2, false), s2;
3134
+ return s3 = ts(s3, t3.multilineSteps), s3 = ts(s3, [Xt]), s3 = ts(s3, t3.singlelineSteps), s3 = ss(s3), s3;
3135
+ }(e2, Kt(t2));
3136
+ return s2 = ns(s2, false), s2;
3081
3137
  }
3082
- function es(e2, t2) {
3083
- return t2.reduce((e3, t3) => De(e3, t3), e2);
3138
+ function ts(e2, t2) {
3139
+ return t2.reduce((e3, t3) => Me(e3, t3), e2);
3084
3140
  }
3085
- function ts(e2) {
3141
+ function ss(e2) {
3086
3142
  const t2 = [];
3087
3143
  let s2 = -1;
3088
- for (const n2 of e2) "string" == typeof n2 ? "string" == typeof t2[s2] ? t2[s2] += n2 : t2[++s2] = n2 : t2[++s2] = "children" in n2 ? __spreadProps(__spreadValues({}, n2), { children: ts(n2.children) }) : n2;
3144
+ for (const n2 of e2) "string" == typeof n2 ? "string" == typeof t2[s2] ? t2[s2] += n2 : t2[++s2] = n2 : t2[++s2] = "children" in n2 ? __spreadProps(__spreadValues({}, n2), { children: ss(n2.children) }) : n2;
3089
3145
  return t2;
3090
3146
  }
3091
- function ss(e2, t2) {
3147
+ function ns(e2, t2) {
3092
3148
  const s2 = [];
3093
3149
  let n2 = [];
3094
3150
  for (let r2 = 0; r2 < e2.length; r2++) {
3095
3151
  const i2 = e2[r2];
3096
- "string" == typeof i2 ? n2.push(i2) : "children" in i2 ? (n2.length > 0 && (s2.push(n2.join("")), n2 = []), i2.children = ss(i2.children, t2 || "link" === i2.type || "actionbutton" === i2.type || "actionlink" === i2.type), s2.push(i2)) : "autolink" === i2.type && t2 ? n2.push(i2.text) : (n2.length > 0 && (s2.push(n2.join("")), n2 = []), s2.push(i2));
3152
+ "string" == typeof i2 ? n2.push(i2) : "children" in i2 ? (n2.length > 0 && (s2.push(n2.join("")), n2 = []), i2.children = ns(i2.children, t2 || "link" === i2.type || "actionbutton" === i2.type || "actionlink" === i2.type), s2.push(i2)) : "autolink" === i2.type && t2 ? n2.push(i2.text) : (n2.length > 0 && (s2.push(n2.join("")), n2 = []), s2.push(i2));
3097
3153
  }
3098
3154
  return n2.length > 0 && (s2.push(n2.join("")), n2 = []), s2;
3099
3155
  }
3100
- class ns {
3156
+ class rs {
3101
3157
  constructor(e2, t2, s2) {
3102
3158
  this.id = e2, this.conversationId = t2, this._realtimeClient = s2;
3103
3159
  }
@@ -3113,12 +3169,12 @@ class ns {
3113
3169
  if (!t2.ok && "server" === t2.where && 404 === t2.value.status) return null;
3114
3170
  if (!t2.ok && "server" === t2.where && 403 === t2.value.status && "NOT_A_PARTICIPANT" === t2.value.errorCode) return null;
3115
3171
  const s2 = e("Get message " + this.id, t2), n2 = yield this._realtimeClient.createMessageSnapshot(s2, this.brandedConversationId);
3116
- return xe("Get message " + this.id, n2);
3172
+ return Te("Get message " + this.id, n2);
3117
3173
  });
3118
3174
  }
3119
3175
  edit(t2) {
3120
3176
  return __async(this, null, function* () {
3121
- const s2 = { content: rs(t2), custom: "string" == typeof t2 ? void 0 : t2.custom }, n2 = yield this._realtimeClient.call("PATCH", ["conversations", this.brandedConversationId, "messages", this.brandedId], s2);
3177
+ const s2 = { content: is(t2), custom: "string" == typeof t2 ? void 0 : t2.custom }, n2 = yield this._realtimeClient.call("PATCH", ["conversations", this.brandedConversationId, "messages", this.brandedId], s2);
3122
3178
  e(`Edit message ${this.id} in conversation ${this.conversationId}`, n2);
3123
3179
  });
3124
3180
  }
@@ -3129,16 +3185,16 @@ class ns {
3129
3185
  });
3130
3186
  }
3131
3187
  }
3132
- function rs(e2) {
3188
+ function is(e2) {
3133
3189
  if ("string" == typeof e2) {
3134
- return [{ type: "text", children: Xt(e2) }];
3190
+ return [{ type: "text", children: es(e2) }];
3135
3191
  }
3136
3192
  if ("text" in e2 && e2.text) {
3137
- return [{ type: "text", children: Xt(e2.text) }];
3193
+ return [{ type: "text", children: es(e2.text) }];
3138
3194
  }
3139
3195
  if ("content" in e2 && e2.content) return e2.content;
3140
3196
  }
3141
- class is {
3197
+ class as {
3142
3198
  constructor(e2, t2) {
3143
3199
  this.id = e2, this._realtimeClient = t2, this.uselessObjForTypeCheck = { subject: null, photoUrl: null, welcomeMessages: null, custom: null, access: null, notify: null };
3144
3200
  }
@@ -3152,13 +3208,13 @@ class is {
3152
3208
  return new Se("string" == typeof e2 ? e2 : e2.id, this.id, this._realtimeClient);
3153
3209
  }
3154
3210
  message(e2) {
3155
- return new ns(e2, this.brandedId, this._realtimeClient);
3211
+ return new rs(e2, this.brandedId, this._realtimeClient);
3156
3212
  }
3157
3213
  get() {
3158
3214
  return __async(this, null, function* () {
3159
3215
  const t2 = this._realtimeClient.listMessages(this.brandedId, { limit: 1 }), s2 = yield this._realtimeClient.call("GET", ["me", "conversations", this.brandedId], {});
3160
3216
  if (!s2.ok && "server" === s2.where && 404 === s2.value.status) return null;
3161
- const n2 = e("Get conversation " + this.id, s2), r2 = xe("Get last message in conversation " + this.id, yield t2), i2 = 0 === r2.length ? null : r2[0];
3217
+ const n2 = e("Get conversation " + this.id, s2), r2 = Te("Get last message in conversation " + this.id, yield t2), i2 = 0 === r2.length ? null : r2[0];
3162
3218
  return this._realtimeClient.createConversationSnapshotPreloaded(n2, i2);
3163
3219
  });
3164
3220
  }
@@ -3201,8 +3257,8 @@ class is {
3201
3257
  }
3202
3258
  send(t2) {
3203
3259
  return __async(this, null, function* () {
3204
- const s2 = { content: as(t2), referencedMessageId: os(t2), custom: "string" == typeof t2 ? void 0 : t2.custom, idempotencyKey: Ie((/* @__PURE__ */ new Date()).getTime()) }, n2 = yield this._realtimeClient.call("POST", ["conversations", this.brandedId, "messages"], s2), r2 = e("Send message to conversation " + this.id, n2);
3205
- return new ns(r2.id, this.brandedId, this._realtimeClient);
3260
+ const s2 = { content: os(t2), referencedMessageId: us(t2), custom: "string" == typeof t2 ? void 0 : t2.custom, idempotencyKey: De((/* @__PURE__ */ new Date()).getTime()) }, n2 = yield this._realtimeClient.call("POST", ["conversations", this.brandedId, "messages"], s2), r2 = e("Send message to conversation " + this.id, n2);
3261
+ return new rs(r2.id, this.brandedId, this._realtimeClient);
3206
3262
  });
3207
3263
  }
3208
3264
  subscribeMessages(e2) {
@@ -3224,21 +3280,21 @@ class is {
3224
3280
  });
3225
3281
  }
3226
3282
  }
3227
- function as(e2) {
3283
+ function os(e2) {
3228
3284
  if ("string" == typeof e2) {
3229
- return [{ type: "text", children: Xt(e2) }];
3285
+ return [{ type: "text", children: es(e2) }];
3230
3286
  }
3231
3287
  if ("text" in e2) {
3232
- return [{ type: "text", children: Xt(e2.text) }];
3288
+ return [{ type: "text", children: es(e2.text) }];
3233
3289
  }
3234
3290
  return e2.content;
3235
3291
  }
3236
- function os(e2) {
3292
+ function us(e2) {
3237
3293
  if ("string" == typeof e2) return;
3238
3294
  const t2 = e2.referencedMessage;
3239
3295
  return void 0 !== t2 ? "string" == typeof t2 ? t2 : t2.id : void 0;
3240
3296
  }
3241
- class us {
3297
+ class cs {
3242
3298
  constructor(e2, t2, s2) {
3243
3299
  this.realtimeWsApiUrl = e2, this.internalHttpApiUrl = t2, this.restApiHttpUrl = s2;
3244
3300
  }
@@ -3250,10 +3306,10 @@ class us {
3250
3306
  return this.realtimeWsApiUrl + `/${e2}/realtime/${i2}?talkjs-client-build=${r2 != null ? r2 : "standalone"}&talkjs-core=${s2}&talkjs-client-id=${n2}`;
3251
3307
  }
3252
3308
  }
3253
- function cs({ method: e2, url: t2, data: s2, options: n2, attempts: r2, shouldRetry: i2, authProvider: o2 }) {
3309
+ function ls({ method: e2, url: t2, data: s2, options: n2, attempts: r2, shouldRetry: i2, authProvider: o2 }) {
3254
3310
  var _a2;
3255
3311
  (!r2 || r2 <= 0) && (r2 = 1);
3256
- const u2 = { "x-talkjs-client-build": "jssdk-dev", "x-talkjs-client-date": "2025-06-17T08:01:14.864Z" };
3312
+ const u2 = { "x-talkjs-client-build": "jssdk-dev", "x-talkjs-client-date": "2025-07-08T10:01:42.871Z" };
3257
3313
  s2 instanceof FormData || (u2["Content-Type"] = (_a2 = n2 == null ? void 0 : n2.contentType) != null ? _a2 : "application/json");
3258
3314
  return a(r2, () => __async(this, null, function* () {
3259
3315
  if (o2) {
@@ -3265,19 +3321,19 @@ function cs({ method: e2, url: t2, data: s2, options: n2, attempts: r2, shouldRe
3265
3321
  throw e3;
3266
3322
  });
3267
3323
  }), { initialDelay: 0.2, log: void 0, shouldRetry: (s3) => __async(this, null, function* () {
3268
- return o2 && 401 === s3.status ? (vs.log(`401 error from ${e2} ${t2}, ${yield o2.getToken()}`), o2.refreshToken(), true) : i2 ? i2(s3) : !("status" in s3 && s3.status >= 400 && s3.status < 500);
3324
+ return o2 && 401 === s3.status ? (ws.log(`401 error from ${e2} ${t2}, ${yield o2.getToken()}`), o2.refreshToken(), true) : i2 ? i2(s3) : !("status" in s3 && s3.status >= 400 && s3.status < 500);
3269
3325
  }) }).catch((s3) => {
3270
3326
  if (Math.random() < 0.1 && !t2.toString().startsWith("https://capture.trackjs.com")) {
3271
3327
  const n3 = `Network Error for ${e2} ${t2}`;
3272
3328
  if ("undefined" != typeof window) if (s3 instanceof Response) {
3273
- s3.clone().text().then((e3) => vs.log(`${n3} ${s3.status} ${e3} (10% logged)`));
3274
- } else vs.log(`${n3} ${s3} (10% logged)`);
3329
+ s3.clone().text().then((e3) => ws.log(`${n3} ${s3.status} ${e3} (10% logged)`));
3330
+ } else ws.log(`${n3} ${s3} (10% logged)`);
3275
3331
  console.error("[TalkJS]", n3);
3276
3332
  }
3277
3333
  throw s3;
3278
3334
  });
3279
3335
  }
3280
- const { cdnHost: ls, appHost: hs, restHost: ds, realtimeHost: ps, appProtocol: fs, appWsProtocol: ms } = function() {
3336
+ const { cdnHost: hs, appHost: ds, restHost: ps, realtimeHost: fs, appProtocol: ms, appWsProtocol: gs } = function() {
3281
3337
  if ("undefined" == typeof window) return { cdnHost: "test-hostname", appHost: "test-hostname", appProtocol: "http:", appWsProtocol: "ws:" };
3282
3338
  const e2 = function() {
3283
3339
  if (document.currentScript) return document.currentScript.src;
@@ -3302,11 +3358,11 @@ const { cdnHost: ls, appHost: hs, restHost: ds, realtimeHost: ps, appProtocol: f
3302
3358
  }(n2), a2 = t2.protocol;
3303
3359
  return { cdnHost: s2, appHost: n2, restHost: r2, realtimeHost: i2, appProtocol: a2, appWsProtocol: "https:" === a2 ? "wss:" : "ws:" };
3304
3360
  }();
3305
- const gs = hs.startsWith("app.talkjs.com");
3306
- const vs = "undefined" == typeof window ? { log: (e2) => Promise.resolve(), setData: (e2) => {
3361
+ const vs = ds.startsWith("app.talkjs.com");
3362
+ const ws = "undefined" == typeof window ? { log: (e2) => Promise.resolve(), setData: (e2) => {
3307
3363
  } } : new class {
3308
3364
  constructor(e2) {
3309
- this._timeCreated = Date.now(), this._enabled = gs, this._trackJSData = { customer: { application: "", correlationId: "", sessionId: "", token: "", userId: "", version: "dev-2025-06-17T08:01:14.864Z" }, entry: "direct", environment: { age: Date.now() - this._timeCreated, dependencies: {}, originalUrl: window.location.href, referrer: document.referrer, userAgent: window.navigator.userAgent }, metadata: [], nav: [], network: [], url: window.location.href, stack: "", timestamp: (/* @__PURE__ */ new Date()).toISOString(), version: "dev-2025-06-17T08:01:14.864Z", throttled: 0 }, this._url = `https://capture.trackjs.com/capture?token=${e2}`, this._trackJSData.customer.token = e2;
3365
+ this._timeCreated = Date.now(), this._enabled = vs, this._trackJSData = { customer: { application: "", correlationId: "", sessionId: "", token: "", userId: "", version: "dev-2025-07-08T10:01:42.871Z" }, entry: "direct", environment: { age: Date.now() - this._timeCreated, dependencies: {}, originalUrl: window.location.href, referrer: document.referrer, userAgent: window.navigator.userAgent }, metadata: [], nav: [], network: [], url: window.location.href, stack: "", timestamp: (/* @__PURE__ */ new Date()).toISOString(), version: "dev-2025-07-08T10:01:42.871Z", throttled: 0 }, this._url = `https://capture.trackjs.com/capture?token=${e2}`, this._trackJSData.customer.token = e2;
3310
3366
  }
3311
3367
  setData({ appId: e2, meId: t2, sessionId: s2 }) {
3312
3368
  this._trackJSData.customer.userId = e2, this._trackJSData.customer.sessionId = `${e2}/${t2}`, this._trackJSData.customer.correlationId = s2;
@@ -3316,14 +3372,14 @@ const vs = "undefined" == typeof window ? { log: (e2) => Promise.resolve(), setD
3316
3372
  try {
3317
3373
  if (!this._enabled) return Promise.resolve();
3318
3374
  const t2 = __spreadProps(__spreadValues({}, this._trackJSData), { message: e2 });
3319
- yield cs({ method: "POST", url: this._url, data: JSON.stringify(t2), options: { contentType: "text/plain" } });
3375
+ yield ls({ method: "POST", url: this._url, data: JSON.stringify(t2), options: { contentType: "text/plain" } });
3320
3376
  } catch (e3) {
3321
3377
  console.error("[TalkJS] Failed when sending an error report. Error: ", e3);
3322
3378
  }
3323
3379
  });
3324
3380
  }
3325
3381
  }("970cd0be0fb74630b75c8451051299dc");
3326
- class ws {
3382
+ class bs {
3327
3383
  constructor(e2, t2 = {}) {
3328
3384
  this._onSubscription = t2, this._handlers = {};
3329
3385
  for (const t3 in e2) Object.hasOwnProperty.call(e2, t3) && (this._handlers[t3] = []);
@@ -3368,9 +3424,9 @@ class ws {
3368
3424
  return this.on(e2, t2), { unsubscribe: () => this.off(e2, t2) };
3369
3425
  }
3370
3426
  }
3371
- class bs {
3427
+ class ys {
3372
3428
  constructor(e2, t2, s2, n2, r2, i2) {
3373
- if (this.appId = t2, this.userId = s2, this.tokenFetcher = r2, this.usingBokens = false, this.requestInProgress = false, this.eventEmitter = new ws({ tokenChanged(e3) {
3429
+ if (this.appId = t2, this.userId = s2, this.tokenFetcher = r2, this.usingBokens = false, this.requestInProgress = false, this.eventEmitter = new bs({ tokenChanged(e3) {
3374
3430
  }, tokenRefreshFailed(e3) {
3375
3431
  }, tokenAccepted(e3) {
3376
3432
  } }), this.sessionExpiryWarningTimeoutId = void 0, i2 && (n2 || r2)) throw new Error("[TalkJS] If providing a signature for authentication, you must not provide a token or tokenFetcher.");
@@ -3462,7 +3518,7 @@ class bs {
3462
3518
  const e3 = function(e4) {
3463
3519
  const t3 = e4.split(".");
3464
3520
  if (3 !== t3.length) throw "Token does not contain exactly two `.`. Check that you generated your JWT correctly. It should be `<header>.<payload>.<signature>`.";
3465
- return { header: ys(t3[0]), payload: ys(t3[1]) };
3521
+ return { header: Cs(t3[0]), payload: Cs(t3[1]) };
3466
3522
  }(s2);
3467
3523
  n2 = e3.header, r2 = e3.payload;
3468
3524
  } catch (e3) {
@@ -3476,7 +3532,7 @@ class bs {
3476
3532
  const e3 = this.checkJwtPayload(r2);
3477
3533
  t2.push(...e3);
3478
3534
  }
3479
- if (t2.length) if (this.usingBokens) vs.log(`JWT Errors detected by AuthProvider when using bokens: ${t2.join("\n")}`);
3535
+ if (t2.length) if (this.usingBokens) ws.log(`JWT Errors detected by AuthProvider when using bokens: ${t2.join("\n")}`);
3480
3536
  else {
3481
3537
  console.warn("[TalkJS] Authentication token appears to be generated incorrectly. Will still attempt to authenticate, but TalkJS may not work as expected. See below for a description of any problems and how to fix them.");
3482
3538
  const s3 = t2.length > 1;
@@ -3505,7 +3561,7 @@ class bs {
3505
3561
  sendBokenRequest(e2, t2) {
3506
3562
  return __async(this, null, function* () {
3507
3563
  let s2 = 0;
3508
- const n2 = e2.getBokensUrl(this.appId, this.userId, t2), r2 = yield cs({ method: "GET", url: n2, attempts: 1e4, shouldRetry: (e3) => {
3564
+ const n2 = e2.getBokensUrl(this.appId, this.userId, t2), r2 = yield ls({ method: "GET", url: n2, attempts: 1e4, shouldRetry: (e3) => {
3509
3565
  if (e3 instanceof Error) return true;
3510
3566
  if (401 === e3.status) throw "Check that you provided a valid signature.";
3511
3567
  if (404 === e3.status) throw "Check that you specified the correct App ID.";
@@ -3518,7 +3574,7 @@ class bs {
3518
3574
  });
3519
3575
  }
3520
3576
  }
3521
- function ys(e2) {
3577
+ function Cs(e2) {
3522
3578
  try {
3523
3579
  const t2 = e2.replace(/-/g, "+").replace(/_/g, "/"), s2 = decodeURIComponent(atob(t2).split("").map((e3) => "%" + ("00" + e3.charCodeAt(0).toString(16)).slice(-2)).join(""));
3524
3580
  return JSON.parse(s2);
@@ -3526,8 +3582,8 @@ function ys(e2) {
3526
3582
  throw `Could not base64-decode and JSON-parse token section: ${e2}. Check that you base-64 encoded the section correctly.`;
3527
3583
  }
3528
3584
  }
3529
- const Cs = new us("wss://realtime.talkjs.com/v1", "https://app.talkjs.com/api/v0", "https://api.talkjs.com/v1");
3530
- class As {
3585
+ const As = new cs("wss://realtime.talkjs.com/v1", "https://app.talkjs.com/api/v0", "https://api.talkjs.com/v1");
3586
+ class Es {
3531
3587
  constructor(e2) {
3532
3588
  this.target = e2;
3533
3589
  }
@@ -3535,7 +3591,7 @@ class As {
3535
3591
  return this.target;
3536
3592
  }
3537
3593
  }
3538
- const Es = new class {
3594
+ const ks = new class {
3539
3595
  constructor() {
3540
3596
  this.registry = {};
3541
3597
  }
@@ -3543,7 +3599,7 @@ const Es = new class {
3543
3599
  var _a2;
3544
3600
  const t2 = this.key(e2), s2 = (_a2 = this.registry[t2]) == null ? void 0 : _a2.deref();
3545
3601
  if (s2) return s2;
3546
- const n2 = new xs(e2), r2 = globalThis.WeakRef ? new WeakRef(n2) : new As(n2);
3602
+ const n2 = new Ts(e2), r2 = globalThis.WeakRef ? new WeakRef(n2) : new Es(n2);
3547
3603
  return this.registry[t2] = r2, n2;
3548
3604
  }
3549
3605
  deregister(e2, t2) {
@@ -3554,10 +3610,10 @@ const Es = new class {
3554
3610
  return `${e2}:${t2}`;
3555
3611
  }
3556
3612
  }();
3557
- function ks(e2) {
3558
- return e2.forceCreateNew ? new xs(e2) : Es.getOrCreate(e2);
3613
+ function xs(e2) {
3614
+ return e2.forceCreateNew ? new Ts(e2) : ks.getOrCreate(e2);
3559
3615
  }
3560
- class xs {
3616
+ class Ts {
3561
3617
  constructor(e2) {
3562
3618
  !function(e3) {
3563
3619
  function t3(e4, t4) {
@@ -3567,13 +3623,13 @@ class xs {
3567
3623
  void 0 !== e3.tokenFetcher && t3("function" == typeof e3.tokenFetcher, "The `tokenFetcher` property of TalkSession#constructor must be a function.");
3568
3624
  }(e2);
3569
3625
  const { appId: t2, userId: s2, token: n2, tokenFetcher: r2, signature: i2 } = e2;
3570
- this._appId = t2, this._apiUrls = e2.apiUrls ? new us(e2.apiUrls.realtimeWsApiUrl, e2.apiUrls.internalHttpApiUrl, e2.apiUrls.restApiHttpUrl) : Cs, this._authProvider = new bs(this._apiUrls, t2, s2, n2, r2, i2);
3626
+ this._appId = t2, this._apiUrls = e2.apiUrls ? new cs(e2.apiUrls.realtimeWsApiUrl, e2.apiUrls.internalHttpApiUrl, e2.apiUrls.restApiHttpUrl) : As, this._authProvider = new ys(this._apiUrls, t2, s2, n2, r2, i2);
3571
3627
  const a2 = Math.random().toString().split(".")[1];
3572
- this._realtimeClient = new Ee(this._apiUrls.getRealtimeWsUrl(t2, s2, "1.2.0", a2, e2.clientBuild), s2, this._authProvider), this.currentUser = new Te(this._realtimeClient.userId, this._realtimeClient), this._terminationReason = o(), this._terminationReason.promise.then((e3) => {
3628
+ this._realtimeClient = new ke(this._apiUrls.getRealtimeWsUrl(t2, s2, "1.3.0", a2, e2.clientBuild), s2, this._authProvider), this.currentUser = new Ie(this._realtimeClient.userId, this._realtimeClient), this._terminationReason = o(), this._terminationReason.promise.then((e3) => {
3573
3629
  console.error(`[TalkSession] ${e3}`);
3574
3630
  }), function(e3, t3, s3) {
3575
3631
  return __async(this, null, function* () {
3576
- return cs({ method: "GET", url: `${t3}/${e3}/app`, authProvider: s3 }).then((e4) => 200 === e4.status || 404 !== e4.status && (console.warn(`[TalkJS] Received unexpected ${e4.status} status code when validating app ID. Assuming that the app ID is valid.`), true)).catch((e4) => {
3632
+ return ls({ method: "GET", url: `${t3}/${e3}/app`, authProvider: s3 }).then((e4) => 200 === e4.status || 404 !== e4.status && (console.warn(`[TalkJS] Received unexpected ${e4.status} status code when validating app ID. Assuming that the app ID is valid.`), true)).catch((e4) => {
3577
3633
  if ("string" != typeof e4 && "status" in e4) {
3578
3634
  const t4 = e4;
3579
3635
  return 200 === t4.status || 404 !== t4.status && (console.warn(`[TalkJS] Received unexpected ${t4.status} status code when validating app ID. Assuming that the app ID is valid.`), true);
@@ -3594,40 +3650,40 @@ class xs {
3594
3650
  }), { unsubscribe: () => t2.resolve("UNSUBSCRIBED") };
3595
3651
  }
3596
3652
  user(e2) {
3597
- return new Te(e2, this._realtimeClient);
3653
+ return new Ie(e2, this._realtimeClient);
3598
3654
  }
3599
3655
  conversation(e2) {
3600
- return new is(e2, this._realtimeClient);
3656
+ return new as(e2, this._realtimeClient);
3601
3657
  }
3602
3658
  subscribeConversations(e2) {
3603
3659
  return this._realtimeClient.subscribe(["me", "conversations"], e2);
3604
3660
  }
3605
3661
  terminate(e2) {
3606
- Es.deregister(this._appId, this.currentUser.id), this._terminationReason.resolve(e2), this._realtimeClient.destroy();
3662
+ ks.deregister(this._appId, this.currentUser.id), this._terminationReason.resolve(e2), this._realtimeClient.destroy();
3607
3663
  }
3608
3664
  _isConnected() {
3609
3665
  return this._realtimeClient.isConnected();
3610
3666
  }
3611
3667
  uploadFile(e2, t2) {
3612
- return Ts(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, t2);
3668
+ return Is(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, t2);
3613
3669
  }
3614
3670
  uploadImage(e2, t2) {
3615
- return Ts(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "image" }, t2));
3671
+ return Is(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "image" }, t2));
3616
3672
  }
3617
3673
  uploadVideo(e2, t2) {
3618
- return Ts(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "video" }, t2));
3674
+ return Is(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "video" }, t2));
3619
3675
  }
3620
3676
  uploadAudio(e2, t2) {
3621
- return Ts(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "audio" }, t2));
3677
+ return Is(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "audio" }, t2));
3622
3678
  }
3623
3679
  uploadVoice(e2, t2) {
3624
- return Ts(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "voice" }, t2));
3680
+ return Is(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "voice" }, t2));
3625
3681
  }
3626
3682
  }
3627
- function Ts(_0, _1, _2, _3) {
3683
+ function Is(_0, _1, _2, _3) {
3628
3684
  return __async(this, arguments, function* (e2, t2, s2, { subtype: n2, filename: r2, width: i2, height: a2, duration: o2 }) {
3629
3685
  const u2 = new FormData();
3630
- return u2.set("file", s2, r2), void 0 !== n2 && u2.set("subtype", n2), void 0 !== i2 && u2.set("width", i2.toString()), void 0 !== a2 && u2.set("height", a2.toString()), void 0 !== o2 && u2.set("duration", o2.toString()), cs({ method: "POST", url: e2, data: u2, authProvider: t2 }).then((e3) => e3.json()).then((e3) => e3.attachmentToken).catch((e3) => __async(this, null, function* () {
3686
+ return u2.set("file", s2, r2), void 0 !== n2 && u2.set("subtype", n2), void 0 !== i2 && u2.set("width", i2.toString()), void 0 !== a2 && u2.set("height", a2.toString()), void 0 !== o2 && u2.set("duration", o2.toString()), ls({ method: "POST", url: e2, data: u2, authProvider: t2 }).then((e3) => e3.json()).then((e3) => e3.attachmentToken).catch((e3) => __async(this, null, function* () {
3631
3687
  if (e3 instanceof Response) {
3632
3688
  const t3 = yield e3.json(), s3 = `Unexpected response when uploading file, status code ${e3.status} ${t3.errorCode}, ${t3.reasons}`;
3633
3689
  throw new Error(s3);
@@ -3637,7 +3693,7 @@ function Ts(_0, _1, _2, _3) {
3637
3693
  });
3638
3694
  }
3639
3695
  export {
3640
- ks as getTalkSession,
3696
+ xs as getTalkSession,
3641
3697
  f as registerPolyfills
3642
3698
  };
3643
3699
  //# sourceMappingURL=talkSession.js.map