@dialecte/scl 0.1.19 → 0.1.20

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.
@@ -21445,14 +21445,14 @@ function $(a) {
21445
21445
  const e = {};
21446
21446
  for (const [t, i] of Object.entries(a))
21447
21447
  for (const n of i) {
21448
- const s = e[n.resolution] ??= /* @__PURE__ */ new Map();
21448
+ const u = e[n.resolution] ??= /* @__PURE__ */ new Map();
21449
21449
  for (const r of n.target) {
21450
- const u = s.get(r) ?? [];
21451
- u.push({
21450
+ const s = u.get(r) ?? [];
21451
+ s.push({
21452
21452
  refTagName: t,
21453
21453
  uuidAttr: n.attribute.uuid,
21454
21454
  pathAttr: n.attribute.path
21455
- }), s.set(r, u);
21455
+ }), u.set(r, s);
21456
21456
  }
21457
21457
  }
21458
21458
  return e;
@@ -21510,8 +21510,8 @@ const te = /* @__PURE__ */ new Set(["SourceRef", "ControlRef", "DOS", "SDS", "DA
21510
21510
  ExtRef: { type: "attribute", attr: "intAddr", separator: "." },
21511
21511
  ExtCtrl: { type: "attribute", attr: "intAddr", separator: "." },
21512
21512
  // Process section - named path contributors (targets of lnode / ied-address resolution)
21513
- SourceRef: { type: "attribute", attr: "input", separator: "." },
21514
- ControlRef: { type: "attribute", attr: "output", separator: "." },
21513
+ SourceRef: { type: "sourceRef" },
21514
+ ControlRef: { type: "controlRef" },
21515
21515
  // Process section - data specifications (6-100, dot-separated)
21516
21516
  DOS: { type: "name", separator: "." },
21517
21517
  DAS: { type: "name", separator: "." },
@@ -21558,6 +21558,10 @@ const te = /* @__PURE__ */ new Set(["SourceRef", "ControlRef", "DOS", "SDS", "DA
21558
21558
  return [...ae];
21559
21559
  case "attribute":
21560
21560
  return [a.attr];
21561
+ case "sourceRef":
21562
+ return ["input", "inputInst", "pDA"];
21563
+ case "controlRef":
21564
+ return ["output", "outputInst"];
21561
21565
  }
21562
21566
  })
21563
21567
  );
@@ -21568,41 +21572,59 @@ function ne(a) {
21568
21572
  case "name": {
21569
21573
  const e = a.separator ?? "/";
21570
21574
  return (t) => {
21571
- const i = P(t, "name");
21575
+ const i = b(t, "name");
21572
21576
  return i ? { segment: i, separator: e } : null;
21573
21577
  };
21574
21578
  }
21575
21579
  case "lnClass":
21576
21580
  return (e) => {
21577
- const t = P(e, "lnClass");
21581
+ const t = b(e, "lnClass");
21578
21582
  if (!t) return null;
21579
- const i = P(e, "prefix") ?? "", n = P(e, "inst") ?? P(e, "lnInst") ?? "";
21583
+ const i = b(e, "prefix") ?? "", n = b(e, "inst") ?? b(e, "lnInst") ?? "";
21580
21584
  return { segment: `${i}${t}${n}`, separator: "/" };
21581
21585
  };
21582
21586
  case "attribute":
21583
21587
  return (e) => {
21584
- const t = P(e, a.attr);
21588
+ const t = b(e, a.attr);
21585
21589
  return t ? { segment: t, separator: a.separator } : null;
21586
21590
  };
21591
+ case "sourceRef":
21592
+ return (e) => {
21593
+ const t = b(e, "input");
21594
+ if (!t) return null;
21595
+ let i = t;
21596
+ const n = b(e, "inputInst");
21597
+ n && n !== "1" && (i += `(${n})`);
21598
+ const u = b(e, "pDA");
21599
+ return u && (i += `.${u}`), { segment: i, separator: "." };
21600
+ };
21601
+ case "controlRef":
21602
+ return (e) => {
21603
+ const t = b(e, "output");
21604
+ if (!t) return null;
21605
+ let i = t;
21606
+ const n = b(e, "outputInst");
21607
+ return n && n !== "1" && (i += `(${n})`), { segment: i, separator: "." };
21608
+ };
21587
21609
  }
21588
21610
  }
21589
21611
  const re = Object.fromEntries(
21590
21612
  Object.entries(y).map(([a, e]) => [a, ne(e)])
21591
21613
  );
21592
- function R(a) {
21614
+ function L(a) {
21593
21615
  const e = re[a.tagName];
21594
21616
  return e ? e(a) : null;
21595
21617
  }
21596
21618
  function x(a) {
21597
21619
  const { record: e, ancestry: t } = a, i = [];
21598
- for (const s of t) {
21599
- const r = R(s);
21600
- r && i.push({ ...r, ref: { tagName: s.tagName, id: s.id } });
21620
+ for (const u of t) {
21621
+ const r = L(u);
21622
+ r && i.push({ ...r, ref: { tagName: u.tagName, id: u.id } });
21601
21623
  }
21602
- const n = R(e);
21624
+ const n = L(e);
21603
21625
  return n && i.push({ ...n, ref: { tagName: e.tagName, id: e.id } }), i.length === 0 ? null : { path: O(i), segments: i };
21604
21626
  }
21605
- function P(a, e) {
21627
+ function b(a, e) {
21606
21628
  return a.attributes.find((t) => t.name === e)?.value;
21607
21629
  }
21608
21630
  function O(a) {
@@ -21623,24 +21645,24 @@ async function E(a, e) {
21623
21645
  async function k(a, e) {
21624
21646
  const { reference: t, target: i } = e, n = ue(t.tagName, i.tagName);
21625
21647
  if (!n) return null;
21626
- const s = n.resolution;
21627
- if (s === f.unsupported) return null;
21628
- if (s === f.behaviorDescription) {
21648
+ const u = n.resolution;
21649
+ if (u === f.unsupported) return null;
21650
+ if (u === f.behaviorDescription) {
21629
21651
  const c = await a.getRecord(i);
21630
- return c ? R(d(c))?.segment ?? null : null;
21652
+ return c ? L(d(c))?.segment ?? null : null;
21631
21653
  }
21632
21654
  const r = await E(a, i);
21633
21655
  if (!r) return null;
21634
- const u = r.path;
21635
- if (s === f.lnode) {
21656
+ const s = r.path;
21657
+ if (u === f.lnode) {
21636
21658
  const c = await a.getRecord(t);
21637
- if (!c) return u;
21659
+ if (!c) return s;
21638
21660
  const l = c.attributes.find((p) => p.name === n.attribute.path)?.value;
21639
- if (!l) return u;
21661
+ if (!l) return s;
21640
21662
  const { qualifier: o } = G(l);
21641
- return o ? `${u}.${o}` : u;
21663
+ return o ? `${s}.${o}` : s;
21642
21664
  }
21643
- return u;
21665
+ return s;
21644
21666
  }
21645
21667
  function ue(a, e) {
21646
21668
  const t = m[a];
@@ -21651,18 +21673,18 @@ async function se(a, e, t) {
21651
21673
  if (!i) return;
21652
21674
  const n = e.attributes.find((p) => p.name === t)?.value;
21653
21675
  if (!n) return;
21654
- let s;
21655
- (i.resolution === f.behaviorDescription || i.resolution === f.iedAddress) && (s = (await a.findAncestors(e, { order: "top-down" })).map((b) => d(b)));
21676
+ let u;
21677
+ (i.resolution === f.behaviorDescription || i.resolution === f.iedAddress) && (u = (await a.findAncestors(e, { order: "top-down" })).map((R) => d(R)));
21656
21678
  const r = B(
21657
21679
  i.resolution,
21658
21680
  t,
21659
21681
  n,
21660
- s
21682
+ u
21661
21683
  );
21662
21684
  if (!r) return;
21663
- const u = M(r.lookupKey);
21664
- if (u.length === 0) return;
21665
- const c = u[u.length - 1], l = u.slice(0, -1), o = await pe({
21685
+ const s = M(r.lookupKey);
21686
+ if (s.length === 0) return;
21687
+ const c = s[s.length - 1], l = s.slice(0, -1), o = await pe({
21666
21688
  query: a,
21667
21689
  targets: i.target,
21668
21690
  segment: c,
@@ -21697,57 +21719,57 @@ function de(a) {
21697
21719
  }
21698
21720
  async function pe(a) {
21699
21721
  const { query: e, targets: t, segment: i, expectedAncestry: n } = a;
21700
- for (const s of t) {
21701
- const r = le[s];
21722
+ for (const u of t) {
21723
+ const r = le[u];
21702
21724
  if (r) {
21703
- const u = await Se({
21725
+ const s = await Se({
21704
21726
  query: e,
21705
- tagName: s,
21727
+ tagName: u,
21706
21728
  segment: i,
21707
21729
  instAttr: r,
21708
21730
  expectedAncestry: n
21709
21731
  });
21710
- if (u) return u;
21732
+ if (s) return s;
21711
21733
  } else {
21712
- const u = await fe({
21734
+ const s = await fe({
21713
21735
  query: e,
21714
- tagName: s,
21736
+ tagName: u,
21715
21737
  segment: i,
21716
21738
  expectedAncestry: n
21717
21739
  });
21718
- if (u) return u;
21740
+ if (s) return s;
21719
21741
  }
21720
21742
  }
21721
21743
  }
21722
21744
  async function Se(a) {
21723
- const { query: e, tagName: t, segment: i, instAttr: n, expectedAncestry: s } = a, r = de(i.segment);
21745
+ const { query: e, tagName: t, segment: i, instAttr: n, expectedAncestry: u } = a, r = de(i.segment);
21724
21746
  if (!r) return;
21725
- const u = await e.findByAttributes({
21747
+ const s = await e.findByAttributes({
21726
21748
  tagName: t,
21727
21749
  attributes: { lnClass: r.lnClass }
21728
21750
  });
21729
- for (const c of u) {
21751
+ for (const c of s) {
21730
21752
  const l = c.attributes.find((p) => p.name === "prefix")?.value ?? "", o = c.attributes.find((p) => p.name === n)?.value ?? "";
21731
- if (!(l !== r.prefix || o !== r.inst) && await V(e, c, s))
21753
+ if (!(l !== r.prefix || o !== r.inst) && await V(e, c, u))
21732
21754
  return c;
21733
21755
  }
21734
21756
  }
21735
21757
  async function fe(a) {
21736
- const { query: e, tagName: t, segment: i, expectedAncestry: n } = a, s = await e.getRecordsByTagName(t);
21737
- for (const r of s) {
21738
- const u = R(d(r));
21739
- if (!(!u || u.segment !== i.segment) && await V(e, r, n))
21758
+ const { query: e, tagName: t, segment: i, expectedAncestry: n } = a, u = await e.getRecordsByTagName(t);
21759
+ for (const r of u) {
21760
+ const s = L(d(r));
21761
+ if (!(!s || s.segment !== i.segment) && await V(e, r, n))
21740
21762
  return r;
21741
21763
  }
21742
21764
  }
21743
21765
  async function V(a, e, t) {
21744
21766
  if (t.length === 0) return !0;
21745
21767
  const i = await a.findAncestors(e), n = [];
21746
- for (let s = i.length - 1; s >= 0; s--) {
21747
- const r = R(d(i[s]));
21768
+ for (let u = i.length - 1; u >= 0; u--) {
21769
+ const r = L(d(i[u]));
21748
21770
  r && n.push(r);
21749
21771
  }
21750
- return n.length !== t.length ? !1 : n.every((s, r) => s.segment === t[r].segment);
21772
+ return n.length !== t.length ? !1 : n.every((u, r) => u.segment === t[r].segment);
21751
21773
  }
21752
21774
  async function me(a, e) {
21753
21775
  const t = M(e);
@@ -21763,41 +21785,41 @@ async function me(a, e) {
21763
21785
  async function v(a) {
21764
21786
  const { query: e, current: t, segments: i, index: n } = a;
21765
21787
  if (n >= i.length) return t;
21766
- const s = t.children ?? [];
21767
- if (s.length === 0) return;
21768
- const r = await e.getRecords(s), u = i[n];
21788
+ const u = t.children ?? [];
21789
+ if (u.length === 0) return;
21790
+ const r = await e.getRecords(u), s = i[n];
21769
21791
  for (const c of r) {
21770
21792
  if (!c) continue;
21771
- const l = R(d(c));
21793
+ const l = L(d(c));
21772
21794
  if (!l) {
21773
21795
  const o = await v({ query: e, current: c, segments: i, index: n });
21774
21796
  if (o) return o;
21775
21797
  continue;
21776
21798
  }
21777
- if (l.segment === u.segment && l.separator === u.separator)
21799
+ if (l.segment === s.segment && l.separator === s.separator)
21778
21800
  return v({ query: e, current: c, segments: i, index: n + 1 });
21779
21801
  }
21780
21802
  }
21781
21803
  async function be(a, e) {
21782
21804
  const { target: t, containerTagName: i } = e, n = await a.getRecord(t);
21783
21805
  if (!n) return [];
21784
- const s = n.attributes.find((c) => c.name === "uuid")?.value;
21785
- if (!s) return [];
21806
+ const u = n.attributes.find((c) => c.name === "uuid")?.value;
21807
+ if (!u) return [];
21786
21808
  const r = Re(n.tagName);
21787
21809
  if (r.length === 0) return [];
21788
- const u = [];
21810
+ const s = [];
21789
21811
  for (const c of r) {
21790
- if (!T(c.refTagName, L)) continue;
21812
+ if (!T(c.refTagName, P)) continue;
21791
21813
  const l = await a.findByAttributes({
21792
21814
  tagName: c.refTagName,
21793
- attributes: { [c.uuidAttr]: s }
21815
+ attributes: { [c.uuidAttr]: u }
21794
21816
  });
21795
21817
  for (const o of l) {
21796
21818
  const p = i ? await Le(a, o, i) : void 0;
21797
- u.push({ ref: o, container: p });
21819
+ s.push({ ref: o, container: p });
21798
21820
  }
21799
21821
  }
21800
- return u;
21822
+ return s;
21801
21823
  }
21802
21824
  function Re(a) {
21803
21825
  const e = [];
@@ -21831,8 +21853,8 @@ function M(a) {
21831
21853
  function G(a) {
21832
21854
  const e = a.split("/"), t = e[e.length - 1], i = t.indexOf(".");
21833
21855
  if (i === -1) return { path: a };
21834
- const n = t.substring(0, i), s = t.substring(i + 1);
21835
- return { path: [...e.slice(0, -1), n].join("/"), qualifier: s || void 0 };
21856
+ const n = t.substring(0, i), u = t.substring(i + 1);
21857
+ return { path: [...e.slice(0, -1), n].join("/"), qualifier: u || void 0 };
21836
21858
  }
21837
21859
  function B(a, e, t, i) {
21838
21860
  return !a || a === f.unsupported ? null : a === f.direct ? { lookupKey: t } : a === f.iedAddress ? Ae(t, i) : a === f.lnode ? Ce(t) : a === f.behaviorDescription ? ge(e, t, i) : null;
@@ -21871,7 +21893,7 @@ function ve(a) {
21871
21893
  if (e === -1) return null;
21872
21894
  const t = [];
21873
21895
  for (let i = 0; i < e; i++) {
21874
- const n = R(a[i]);
21896
+ const n = L(a[i]);
21875
21897
  n && t.push(n);
21876
21898
  }
21877
21899
  return t.length === 0 ? null : O(t);
@@ -21889,22 +21911,22 @@ function he(a) {
21889
21911
  function Ne() {
21890
21912
  const a = /* @__PURE__ */ new Map(), e = [], t = [];
21891
21913
  return {
21892
- beforeImportRecord: (s) => {
21893
- const { record: r, ancestry: u } = s, { tagName: c } = r, l = Fe(r);
21914
+ beforeImportRecord: (u) => {
21915
+ const { record: r, ancestry: s } = u, { tagName: c } = r, l = Fe(r);
21894
21916
  if (l && De.has(c)) {
21895
- const S = x({ record: r, ancestry: u });
21917
+ const S = x({ record: r, ancestry: s });
21896
21918
  S && a.set(S.path, l);
21897
21919
  }
21898
21920
  if (!we.has(c)) return;
21899
- const b = m[c];
21900
- for (const S of b) {
21921
+ const R = m[c];
21922
+ for (const S of R) {
21901
21923
  const C = r.attributes.find(
21902
21924
  (g) => g.name === S.attribute.path
21903
21925
  )?.value;
21904
21926
  if (!C || r.attributes.find(
21905
21927
  (g) => g.name === S.attribute.uuid
21906
21928
  )?.value) continue;
21907
- const A = B(S.resolution, S.attribute.path, C, u);
21929
+ const A = B(S.resolution, S.attribute.path, C, s);
21908
21930
  if (!A) {
21909
21931
  S.resolution === f.unsupported && t.push({
21910
21932
  type: "unsupported-xpath-reference",
@@ -21929,29 +21951,29 @@ function Ne() {
21929
21951
  }
21930
21952
  },
21931
21953
  afterImport: async () => {
21932
- const s = [], r = [...t];
21933
- for (const u of e) {
21934
- const c = a.get(u.lookupKey) ?? (u.fallbackLookupKey ? a.get(u.fallbackLookupKey) : void 0);
21954
+ const u = [], r = [...t];
21955
+ for (const s of e) {
21956
+ const c = a.get(s.lookupKey) ?? (s.fallbackLookupKey ? a.get(s.fallbackLookupKey) : void 0);
21935
21957
  if (!c) {
21936
21958
  r.push({
21937
21959
  type: "unresolved-reference",
21938
- recordId: u.recordId,
21960
+ recordId: s.recordId,
21939
21961
  details: {
21940
- elementTag: u.elementTag,
21941
- uuidAttribute: u.uuidAttributeName,
21942
- pathValue: u.pathValue,
21943
- triedKeys: u.fallbackLookupKey ? [u.lookupKey, u.fallbackLookupKey] : [u.lookupKey]
21962
+ elementTag: s.elementTag,
21963
+ uuidAttribute: s.uuidAttributeName,
21964
+ pathValue: s.pathValue,
21965
+ triedKeys: s.fallbackLookupKey ? [s.lookupKey, s.fallbackLookupKey] : [s.lookupKey]
21944
21966
  }
21945
21967
  });
21946
21968
  continue;
21947
21969
  }
21948
- s.push({
21949
- recordId: u.recordId,
21950
- attributes: [{ name: u.uuidAttributeName, value: c }]
21970
+ u.push({
21971
+ recordId: s.recordId,
21972
+ attributes: [{ name: s.uuidAttributeName, value: c }]
21951
21973
  });
21952
21974
  }
21953
21975
  return a.clear(), e.length = 0, t.length = 0, {
21954
- updates: s,
21976
+ updates: u,
21955
21977
  warnings: r.length > 0 ? r : void 0
21956
21978
  };
21957
21979
  }
@@ -21990,9 +22012,10 @@ const qe = {
21990
22012
  uri: "http://www.iec.ch/61850/2019/SCL/6-100",
21991
22013
  prefix: "eIEC61850-6-100"
21992
22014
  }
21993
- }, L = {
22015
+ }, P = {
21994
22016
  rootElementName: Y,
21995
22017
  singletonElements: j,
22018
+ transparentElements: ["Private"],
21996
22019
  elements: H,
21997
22020
  namespaces: xe,
21998
22021
  attributes: w,
@@ -22006,38 +22029,38 @@ const qe = {
22006
22029
  };
22007
22030
  async function Oe(a) {
22008
22031
  const { childRecord: e, parentRecord: t, query: i } = a;
22009
- if (e.namespace.prefix === L.namespaces.default.prefix)
22032
+ if (e.namespace.prefix === P.namespaces.default.prefix)
22010
22033
  return [];
22011
- const n = t.tagName === "Private", s = t.namespace.prefix === L.namespaces.default.prefix;
22012
- if (!n && !s)
22034
+ const n = t.tagName === "Private", u = t.namespace.prefix === P.namespaces.default.prefix;
22035
+ if (!n && !u)
22013
22036
  return [];
22014
- const r = t.children.find((o) => o.tagName === "Private"), u = {
22037
+ const r = t.children.find((o) => o.tagName === "Private"), s = {
22015
22038
  ...t,
22016
22039
  children: t.children.filter((o) => o.id !== e.id)
22017
22040
  };
22018
22041
  return n ? Ee({ parentRecord: t, childRecord: e, query: i }) : r ? ke({
22019
22042
  existingPrivateRef: r,
22020
22043
  parentRecord: t,
22021
- updatedParentRecord: u,
22044
+ updatedParentRecord: s,
22022
22045
  childRecord: e,
22023
22046
  query: i
22024
22047
  }) : (await i.findAncestors(t)).some(
22025
22048
  (o) => o.tagName === "Private" && o.attributes.some(
22026
22049
  (p) => p.name === "type" && p.value === e.namespace.prefix
22027
22050
  )
22028
- ) ? [] : Ve({ parentRecord: t, updatedParentRecord: u, childRecord: e });
22051
+ ) ? [] : Ve({ parentRecord: t, updatedParentRecord: s, childRecord: e });
22029
22052
  }
22030
22053
  async function Ee(a) {
22031
22054
  const { parentRecord: e, childRecord: t, query: i } = a, n = e;
22032
22055
  if (t.parent?.id === n.id && t.parent?.tagName === "Private")
22033
22056
  return [];
22034
- const s = await U({ privateId: n.id, query: i });
22035
- I(s, {
22057
+ const u = await U({ privateId: n.id, query: i });
22058
+ I(u, {
22036
22059
  detail: "Latest private record not found",
22037
22060
  key: "ELEMENT_NOT_FOUND"
22038
22061
  });
22039
- const { childRecord: r, privateRecord: u } = z({
22040
- privateRecord: s,
22062
+ const { childRecord: r, privateRecord: s } = z({
22063
+ privateRecord: u,
22041
22064
  childRecord: t
22042
22065
  });
22043
22066
  return [
@@ -22048,15 +22071,15 @@ async function Ee(a) {
22048
22071
  },
22049
22072
  {
22050
22073
  status: "updated",
22051
- oldRecord: d(s),
22052
- newRecord: d(u)
22074
+ oldRecord: d(u),
22075
+ newRecord: d(s)
22053
22076
  }
22054
22077
  ];
22055
22078
  }
22056
22079
  async function ke(a) {
22057
- const { existingPrivateRef: e, parentRecord: t, updatedParentRecord: i, childRecord: n, query: s } = a, r = await U({
22080
+ const { existingPrivateRef: e, parentRecord: t, updatedParentRecord: i, childRecord: n, query: u } = a, r = await U({
22058
22081
  privateId: e.id,
22059
- query: s
22082
+ query: u
22060
22083
  });
22061
22084
  if (I(r, {
22062
22085
  detail: "Latest private record not found",
@@ -22090,12 +22113,12 @@ function Ve(a) {
22090
22113
  const { parentRecord: e, updatedParentRecord: t, childRecord: i } = a, n = {
22091
22114
  id: crypto.randomUUID(),
22092
22115
  tagName: "Private",
22093
- namespace: L.namespaces.default,
22116
+ namespace: P.namespaces.default,
22094
22117
  attributes: [{ name: "type", value: i.namespace.prefix }],
22095
22118
  value: "",
22096
22119
  parent: { id: e.id, tagName: e.tagName },
22097
22120
  children: [{ id: i.id, tagName: i.tagName }]
22098
- }, s = {
22121
+ }, u = {
22099
22122
  ...i,
22100
22123
  parent: { id: n.id, tagName: "Private" }
22101
22124
  }, r = {
@@ -22107,7 +22130,7 @@ function Ve(a) {
22107
22130
  {
22108
22131
  status: "updated",
22109
22132
  oldRecord: d(i),
22110
- newRecord: d(s)
22133
+ newRecord: d(u)
22111
22134
  },
22112
22135
  {
22113
22136
  status: "updated",
@@ -22132,23 +22155,23 @@ function z(a) {
22132
22155
  }
22133
22156
  async function h(a) {
22134
22157
  const { uuid: e, entry: t, target: i, query: n } = a;
22135
- if (!T(t.refTagName, L)) return [];
22136
- const s = await n.getRecordsByTagName(t.refTagName), r = [];
22137
- for (const u of s) {
22138
- if (u.attributes.find(
22158
+ if (!T(t.refTagName, P)) return [];
22159
+ const u = await n.getRecordsByTagName(t.refTagName), r = [];
22160
+ for (const s of u) {
22161
+ if (s.attributes.find(
22139
22162
  (S) => S.name === t.uuidAttr
22140
22163
  )?.value !== e) continue;
22141
- const l = { tagName: u.tagName, id: u.id }, o = await Z.query.buildReferencePath(n, { reference: l, target: i });
22142
- if (!o || u.attributes.find(
22164
+ const l = { tagName: s.tagName, id: s.id }, o = await Z.query.buildReferencePath(n, { reference: l, target: i });
22165
+ if (!o || s.attributes.find(
22143
22166
  (S) => S.name === t.pathAttr
22144
22167
  )?.value === o) continue;
22145
- const b = u.attributes.map(
22168
+ const R = s.attributes.map(
22146
22169
  (S) => S.name === t.pathAttr ? { ...S, value: o } : S
22147
22170
  );
22148
22171
  r.push({
22149
22172
  status: "updated",
22150
- oldRecord: d(u),
22151
- newRecord: d({ ...u, attributes: b })
22173
+ oldRecord: d(s),
22174
+ newRecord: d({ ...s, attributes: R })
22152
22175
  });
22153
22176
  }
22154
22177
  return r;
@@ -22169,8 +22192,8 @@ async function Me(a) {
22169
22192
  const { childRecord: e, query: t } = a, i = ee.get(e.tagName);
22170
22193
  if (!i?.length) return [];
22171
22194
  const n = [];
22172
- for (const s of i) {
22173
- const r = await Ge({ childRecord: e, pair: s, query: t });
22195
+ for (const u of i) {
22196
+ const r = await Ge({ childRecord: e, pair: u, query: t });
22174
22197
  r && n.push(r);
22175
22198
  }
22176
22199
  return n;
@@ -22178,13 +22201,13 @@ async function Me(a) {
22178
22201
  async function Ge(a) {
22179
22202
  const { childRecord: e, pair: t, query: i } = a, n = e.attributes.find((o) => o.name === t.uuidAttr)?.value;
22180
22203
  if (!n) return null;
22181
- const s = await Be({
22204
+ const u = await Be({
22182
22205
  uuidValue: n,
22183
22206
  targetTagNames: t.targetTagNames,
22184
22207
  query: i
22185
22208
  });
22186
- if (!s) return null;
22187
- const r = { tagName: e.tagName, id: e.id }, u = { tagName: s.tagName, id: s.id }, c = await k(i, { reference: r, target: u });
22209
+ if (!u) return null;
22210
+ const r = { tagName: e.tagName, id: e.id }, s = { tagName: u.tagName, id: u.id }, c = await k(i, { reference: r, target: s });
22188
22211
  if (!c) return null;
22189
22212
  const l = e.attributes.map(
22190
22213
  (o) => o.name === t.pathAttr ? { ...o, value: c } : o
@@ -22201,63 +22224,63 @@ async function Ge(a) {
22201
22224
  async function Be(a) {
22202
22225
  const { uuidValue: e, targetTagNames: t, query: i } = a;
22203
22226
  for (const n of t) {
22204
- if (!T(n, L)) continue;
22227
+ if (!T(n, P)) continue;
22205
22228
  const r = (await i.getRecordsByTagName(n)).find(
22206
- (u) => u.attributes.find((c) => c.name === "uuid")?.value === e
22229
+ (s) => s.attributes.find((c) => c.name === "uuid")?.value === e
22207
22230
  );
22208
22231
  if (r) return { tagName: r.tagName, id: r.id };
22209
22232
  }
22210
22233
  return null;
22211
22234
  }
22212
22235
  async function Ue(a) {
22213
- const { childRecord: e, query: t } = a, i = e.attributes.find((u) => u.name === "uuid")?.value;
22236
+ const { childRecord: e, query: t } = a, i = e.attributes.find((s) => s.name === "uuid")?.value;
22214
22237
  if (!i) return [];
22215
22238
  const n = N(e.tagName);
22216
22239
  if (n.length === 0) return [];
22217
- const s = { tagName: e.tagName, id: e.id }, r = [];
22218
- for (const u of n) {
22219
- const c = await h({ uuid: i, entry: u, target: s, query: t });
22240
+ const u = { tagName: e.tagName, id: e.id }, r = [];
22241
+ for (const s of n) {
22242
+ const c = await h({ uuid: i, entry: s, target: u, query: t });
22220
22243
  r.push(...c);
22221
22244
  }
22222
22245
  return r;
22223
22246
  }
22224
22247
  async function ze(a) {
22225
- const { childRecord: e, parentRecord: t, query: i } = a, n = await Oe({ childRecord: e, parentRecord: t, query: i }), s = await Ze({ childRecord: e, query: i });
22226
- return [...n, ...s];
22248
+ const { childRecord: e, parentRecord: t, query: i } = a, n = await Oe({ childRecord: e, parentRecord: t, query: i }), u = await Ze({ childRecord: e, query: i });
22249
+ return [...n, ...u];
22227
22250
  }
22228
22251
  async function _e(a) {
22229
22252
  const { cumulativeCloneMappings: e, query: t } = a, { uuidMap: i, uuidToRef: n } = await He(e, t);
22230
22253
  if (i.size === 0) return [];
22231
- const s = [];
22254
+ const u = [];
22232
22255
  for (const { target: r } of e) {
22233
- const u = await Ke({ target: r, uuidMap: i, uuidToRef: n, query: t });
22234
- u && s.push(u);
22256
+ const s = await Ke({ target: r, uuidMap: i, uuidToRef: n, query: t });
22257
+ s && u.push(s);
22235
22258
  }
22236
- return s;
22259
+ return u;
22237
22260
  }
22238
22261
  async function He(a, e) {
22239
22262
  const t = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
22240
- for (const { source: n, target: s } of a)
22241
- await We({ source: n, target: s, query: e, uuidMap: t, uuidToRef: i });
22263
+ for (const { source: n, target: u } of a)
22264
+ await We({ source: n, target: u, query: e, uuidMap: t, uuidToRef: i });
22242
22265
  return { uuidMap: t, uuidToRef: i };
22243
22266
  }
22244
22267
  async function We(a) {
22245
- const { source: e, target: t, query: i, uuidMap: n, uuidToRef: s } = a, r = await i.getRecord(t);
22268
+ const { source: e, target: t, query: i, uuidMap: n, uuidToRef: u } = a, r = await i.getRecord(t);
22246
22269
  if (!r) return;
22247
- const u = e.attributes.find((l) => l.name === "uuid")?.value, c = r.attributes.find((l) => l.name === "uuid")?.value;
22248
- !u || !c || (n.set(u, c), s.set(c, { tagName: r.tagName, id: r.id }));
22270
+ const s = e.attributes.find((l) => l.name === "uuid")?.value, c = r.attributes.find((l) => l.name === "uuid")?.value;
22271
+ !s || !c || (n.set(s, c), u.set(c, { tagName: r.tagName, id: r.id }));
22249
22272
  }
22250
22273
  async function Ke(a) {
22251
- const { target: e, uuidMap: t, uuidToRef: i, query: n } = a, s = e.tagName;
22252
- if (!(s in m)) return null;
22274
+ const { target: e, uuidMap: t, uuidToRef: i, query: n } = a, u = e.tagName;
22275
+ if (!(u in m)) return null;
22253
22276
  const r = await n.getRecord(e);
22254
22277
  if (!r) return null;
22255
- const u = m[s];
22278
+ const s = m[u];
22256
22279
  let c = [...r.attributes], l = !1;
22257
- for (const o of u) {
22280
+ for (const o of s) {
22258
22281
  const p = await Xe({
22259
22282
  pair: o,
22260
- tagName: s,
22283
+ tagName: u,
22261
22284
  refId: r.id,
22262
22285
  updatedAttributes: c,
22263
22286
  uuidMap: t,
@@ -22273,34 +22296,34 @@ async function Ke(a) {
22273
22296
  } : null;
22274
22297
  }
22275
22298
  async function Xe(a) {
22276
- const { pair: e, tagName: t, refId: i, uuidMap: n, uuidToRef: s, query: r } = a;
22277
- let u = [...a.updatedAttributes];
22278
- const c = u.find((S) => S.name === e.attribute.uuid)?.value;
22299
+ const { pair: e, tagName: t, refId: i, uuidMap: n, uuidToRef: u, query: r } = a;
22300
+ let s = [...a.updatedAttributes];
22301
+ const c = s.find((S) => S.name === e.attribute.uuid)?.value;
22279
22302
  if (!c) return null;
22280
22303
  const l = n.get(c);
22281
22304
  if (!l) return null;
22282
22305
  let o = !1;
22283
- const p = Qe(u, e.attribute.uuid, c, l);
22284
- p && (u = p, o = !0);
22285
- const b = await Ye({
22286
- attributes: u,
22306
+ const p = Qe(s, e.attribute.uuid, c, l);
22307
+ p && (s = p, o = !0);
22308
+ const R = await Ye({
22309
+ attributes: s,
22287
22310
  pathAttrName: e.attribute.path,
22288
22311
  newUuid: l,
22289
- uuidToRef: s,
22312
+ uuidToRef: u,
22290
22313
  tagName: t,
22291
22314
  refId: i,
22292
22315
  query: r
22293
22316
  });
22294
- return b && (u = b, o = !0), o ? u : null;
22317
+ return R && (s = R, o = !0), o ? s : null;
22295
22318
  }
22296
22319
  function Qe(a, e, t, i) {
22297
22320
  return i === t ? null : a.map((n) => n.name === e ? { ...n, value: i } : n);
22298
22321
  }
22299
22322
  async function Ye(a) {
22300
- const { attributes: e, pathAttrName: t, newUuid: i, uuidToRef: n, tagName: s, refId: r, query: u } = a, c = n.get(i);
22323
+ const { attributes: e, pathAttrName: t, newUuid: i, uuidToRef: n, tagName: u, refId: r, query: s } = a, c = n.get(i);
22301
22324
  if (!c) return null;
22302
- const l = await Z.query.buildReferencePath(u, {
22303
- reference: { tagName: s, id: r },
22325
+ const l = await Z.query.buildReferencePath(s, {
22326
+ reference: { tagName: u, id: r },
22304
22327
  target: { tagName: c.tagName, id: c.id }
22305
22328
  });
22306
22329
  return !l || e.find((p) => p.name === t)?.value === l ? null : e.map((p) => p.name === t ? { ...p, value: l } : p);
@@ -22309,7 +22332,7 @@ async function je(a) {
22309
22332
  return _e(a);
22310
22333
  }
22311
22334
  function $e(a) {
22312
- const { record: e } = a, { tagName: t, attributes: i } = e, n = L.definition[t];
22335
+ const { record: e } = a, { tagName: t, attributes: i } = e, n = P.definition[t];
22313
22336
  if (!("uuid" in n.attributes.details) || i.find((o) => o.name === "uuid")?.value) return e;
22314
22337
  const c = n.attributes.details.uuid?.namespace, l = i.filter((o) => o.name !== "uuid");
22315
22338
  return {
@@ -22328,11 +22351,11 @@ function Je(a) {
22328
22351
  return $e(a);
22329
22352
  }
22330
22353
  async function et(a) {
22331
- const { oldRecord: e, newRecord: t, query: i } = a, n = [], s = t.attributes.find((r) => r.name === "uuid")?.value;
22332
- if (s) {
22333
- const r = N(t.tagName), u = { tagName: t.tagName, id: t.id };
22354
+ const { oldRecord: e, newRecord: t, query: i } = a, n = [], u = t.attributes.find((r) => r.name === "uuid")?.value;
22355
+ if (u) {
22356
+ const r = N(t.tagName), s = { tagName: t.tagName, id: t.id };
22334
22357
  for (const c of r) {
22335
- const l = await h({ uuid: s, entry: c, target: u, query: i });
22358
+ const l = await h({ uuid: u, entry: c, target: s, query: i });
22336
22359
  n.push(...l);
22337
22360
  }
22338
22361
  }
@@ -22344,27 +22367,27 @@ async function et(a) {
22344
22367
  }
22345
22368
  function tt(a, e) {
22346
22369
  for (const t of ie) {
22347
- const i = a.attributes.find((s) => s.name === t)?.value, n = e.attributes.find((s) => s.name === t)?.value;
22370
+ const i = a.attributes.find((u) => u.name === t)?.value, n = e.attributes.find((u) => u.name === t)?.value;
22348
22371
  if (i !== n) return !0;
22349
22372
  }
22350
22373
  return !1;
22351
22374
  }
22352
22375
  async function at(a) {
22353
- const { newRecord: e, query: t } = a, i = { tagName: e.tagName, id: e.id }, n = await t.findDescendants(i), s = [];
22376
+ const { newRecord: e, query: t } = a, i = { tagName: e.tagName, id: e.id }, n = await t.findDescendants(i), u = [];
22354
22377
  for (const r of Object.values(n))
22355
- for (const u of r) {
22356
- if (u.id === e.id) continue;
22357
- const c = await t.any.getAttribute(u, { name: "uuid" });
22378
+ for (const s of r) {
22379
+ if (s.id === e.id) continue;
22380
+ const c = await t.any.getAttribute(s, { name: "uuid" });
22358
22381
  if (!c) continue;
22359
- const l = N(u.tagName);
22382
+ const l = N(s.tagName);
22360
22383
  if (l.length === 0) continue;
22361
- const o = { tagName: u.tagName, id: u.id };
22384
+ const o = { tagName: s.tagName, id: s.id };
22362
22385
  for (const p of l) {
22363
- const b = await h({ uuid: c, entry: p, target: o, query: t });
22364
- s.push(...b);
22386
+ const R = await h({ uuid: c, entry: p, target: o, query: t });
22387
+ u.push(...R);
22365
22388
  }
22366
22389
  }
22367
- return s;
22390
+ return u;
22368
22391
  }
22369
22392
  async function it(a) {
22370
22393
  return et(a);
@@ -22387,36 +22410,36 @@ function nt(a) {
22387
22410
  async function rt(a) {
22388
22411
  const { record: e, query: t } = a, i = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
22389
22412
  if (await _({ record: e, query: t, ids: i, uuids: n }), n.size === 0) return [];
22390
- const s = [], r = Object.keys(m);
22391
- for (const u of r) {
22392
- const c = await ut({ refTagName: u, subtreeIds: i, subtreeUuids: n, query: t });
22393
- s.push(...c);
22413
+ const u = [], r = Object.keys(m);
22414
+ for (const s of r) {
22415
+ const c = await ut({ refTagName: s, subtreeIds: i, subtreeUuids: n, query: t });
22416
+ u.push(...c);
22394
22417
  }
22395
- return s;
22418
+ return u;
22396
22419
  }
22397
22420
  async function ut(a) {
22398
- const { refTagName: e, subtreeIds: t, subtreeUuids: i, query: n } = a, s = m[e], r = await n.getRecordsByTagName(e), u = [];
22421
+ const { refTagName: e, subtreeIds: t, subtreeUuids: i, query: n } = a, u = m[e], r = await n.getRecordsByTagName(e), s = [];
22399
22422
  for (const c of r) {
22400
22423
  if (t.has(c.id)) continue;
22401
- const l = await st({ refTagName: e, refRecord: c, refPairs: s, subtreeUuids: i, query: n });
22402
- u.push(...l);
22424
+ const l = await st({ refTagName: e, refRecord: c, refPairs: u, subtreeUuids: i, query: n });
22425
+ s.push(...l);
22403
22426
  }
22404
- return u;
22427
+ return s;
22405
22428
  }
22406
22429
  async function st(a) {
22407
- const { refTagName: e, refRecord: t, refPairs: i, subtreeUuids: n, query: s } = a, r = ct({ refPairs: i, refRecord: t, subtreeUuids: n });
22408
- return r.size === 0 ? [] : te.has(e) ? [ot(t, r)] : lt(t, s);
22430
+ const { refTagName: e, refRecord: t, refPairs: i, subtreeUuids: n, query: u } = a, r = ct({ refPairs: i, refRecord: t, subtreeUuids: n });
22431
+ return r.size === 0 ? [] : te.has(e) ? [ot(t, r)] : lt(t, u);
22409
22432
  }
22410
22433
  function ct(a) {
22411
22434
  const { refPairs: e, refRecord: t, subtreeUuids: i } = a, n = /* @__PURE__ */ new Set();
22412
- for (const s of e) {
22435
+ for (const u of e) {
22413
22436
  const r = t.attributes.find(
22414
- (u) => u.name === s.attribute.uuid
22437
+ (s) => s.name === u.attribute.uuid
22415
22438
  )?.value;
22416
22439
  if (!(!r || !i.has(r))) {
22417
- n.add(s.attribute.uuid), n.add(s.attribute.path);
22418
- for (const u of s.companions)
22419
- n.add(u.name);
22440
+ n.add(u.attribute.uuid), n.add(u.attribute.path);
22441
+ for (const s of u.companions)
22442
+ n.add(s.name);
22420
22443
  }
22421
22444
  }
22422
22445
  return n;
@@ -22440,7 +22463,7 @@ async function lt(a, e) {
22440
22463
  if (i) {
22441
22464
  const n = {
22442
22465
  ...i,
22443
- children: i.children.filter((s) => s.id !== a.id)
22466
+ children: i.children.filter((u) => u.id !== a.id)
22444
22467
  };
22445
22468
  t.push({
22446
22469
  status: "updated",
@@ -22454,11 +22477,11 @@ async function lt(a, e) {
22454
22477
  async function _(a) {
22455
22478
  const { record: e, query: t, ids: i, uuids: n } = a;
22456
22479
  i.add(e.id);
22457
- const s = e.attributes.find((r) => r.name === "uuid")?.value;
22458
- s && n.add(s);
22480
+ const u = e.attributes.find((r) => r.name === "uuid")?.value;
22481
+ u && n.add(u);
22459
22482
  for (const r of e.children) {
22460
- const u = await t.getRecord(r);
22461
- u && await _({ record: u, query: t, ids: i, uuids: n });
22483
+ const s = await t.getRecord(r);
22484
+ s && await _({ record: s, query: t, ids: i, uuids: n });
22462
22485
  }
22463
22486
  }
22464
22487
  async function dt(a) {
@@ -22477,7 +22500,7 @@ export {
22477
22500
  bt as H,
22478
22501
  te as K,
22479
22502
  mt as R,
22480
- L as S,
22503
+ P as S,
22481
22504
  m as U,
22482
22505
  X as a,
22483
22506
  ye as b,
@@ -28,6 +28,7 @@ export declare const SCL_NAMESPACES: {
28
28
  export declare const SCL_DIALECTE_CONFIG: {
29
29
  readonly rootElementName: "SCL";
30
30
  readonly singletonElements: readonly ["Communication", "DataTypeTemplates", "Header", "History", "SCL"];
31
+ readonly transparentElements: readonly ["Private"];
31
32
  readonly elements: readonly ["AccessControl", "AccessPoint", "Address", "AllocationRole", "AllocationRoleRef", "AnalogueWiringParameters", "AnalogueWiringParametersRef", "Application", "ApplicationSclRef", "Association", "Authentication", "BDA", "Bay", "BayType", "BehaviorDescription", "BehaviorDescriptionRef", "BehaviorReference", "BinaryWiringParameters", "BinaryWiringParametersRef", "BitRate", "CheckoutID", "ClientLN", "ClientServices", "CommProt", "Communication", "CommunicationServiceSpecifications", "ConductingEquipment", "ConfDataSet", "ConfLNs", "ConfLdName", "ConfLogControl", "ConfReportControl", "ConfSG", "ConfSigRef", "ConnectedAP", "ConnectivityNode", "ControlRef", "ControllingLNode", "DA", "DAI", "DAS", "DAType", "DO", "DOI", "DOS", "DOType", "DataObjectDirectory", "DataSet", "DataSetDirectory", "DataTypeTemplates", "DynAssociation", "DynDataSet", "EnumType", "EnumVal", "EqFunction", "EqSubFunction", "ExtCtrl", "ExtRef", "FCDA", "FileHandling", "Function", "FunctionCatRef", "FunctionCategory", "FunctionCategoryRef", "FunctionRef", "FunctionRole", "FunctionRoleContent", "FunctionSclRef", "FunctionTemplate", "FunctionalSubVariant", "FunctionalVariant", "FunctionalVariantGroup", "FunctionalVariantRef", "GOOSE", "GOOSEMcSecurity", "GOOSESecurity", "GSE", "GSEControl", "GSEDir", "GSESettings", "GSSE", "GeneralEquipment", "GetCBValues", "GetDataObjectDefinition", "GetDataSetValue", "GetDirectory", "GooseParameters", "GooseParametersRef", "Header", "History", "Hitem", "IED", "IEDName", "IEDSourceFiles", "InputVar", "InputVarRef", "Inputs", "IssuerName", "KDC", "L2CommParameters", "L3IPv4CommParameters", "L3IPv6CommParameters", "LDevice", "LN", "LN0", "LNode", "LNodeDataRef", "LNodeInputRef", "LNodeInputs", "LNodeOutputRef", "LNodeOutputs", "LNodeSpecNaming", "LNodeType", "Label", "Labels", "Line", "Log", "LogControl", "LogParameters", "LogParametersRef", "LogSettings", "MaxTime", "McSecurity", "MinRequestedSCDFile", "MinRequestedSCDFiles", "MinTime", "MultiAPPerSubNet", "NeutralPoint", "OptFields", "OutputVar", "OutputVarRef", "Outputs", "P", "PhysConn", "PowerSystemRelation", "PowerSystemRelationRef", "PowerSystemRelations", "PowerTransformer", "Private", "Process", "ProcessEcho", "ProcessResource", "ProcessResourceRef", "ProcessResources", "Project", "ProjectProcessReference", "ProtNs", "Protocol", "ReadWrite", "RedProt", "ReportControl", "ReportParameters", "ReportParametersRef", "ReportSettings", "Resource", "RptEnabled", "SCL", "SCSM", "SDI", "SDO", "SDS", "SGEdit", "SMV", "SMVParameters", "SMVParametersRef", "SMVSecurity", "SMVSettings", "SMVsc", "SVMcSecurity", "SampledValueControl", "SamplesPerSec", "SclFileReference", "SecPerSamples", "Security", "Server", "ServerAt", "ServiceSpecifications", "Services", "SetDataSetValue", "SettingControl", "SettingGroups", "SignalRole", "SmpRate", "SmvOpts", "SourceFiles", "SourceRef", "SubCategory", "SubCheckoutID", "SubEquipment", "SubFunction", "SubFunctionTemplate", "SubNetwork", "Subject", "SubscriberLNode", "Substation", "SupSubscription", "TapChanger", "Terminal", "Text", "TimeSyncProt", "TimerActivatedControl", "TransformerWinding", "TrgOps", "Val", "ValueHandling", "Variable", "VariableApplyTo", "VariableRef", "Voltage", "VoltageLevel"];
32
33
  readonly namespaces: {
33
34
  readonly default: {
@@ -1 +1 @@
1
- {"version":3,"file":"dialecte.config.d.ts","sourceRoot":"","sources":["../../../src/v2019C1/config/dialecte.config.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,aAAa;;;CAGN,CAAA;AAGpB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;CAaG,CAAA;AAEnC,eAAO,MAAM,cAAc;;;;;;;;;CAMjB,CAAA;AAEV,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAaM,CAAA;AAEtC,MAAM,WAAW,MAAO,SAAQ,QAAQ,CAAC,OAAO,mBAAmB,CAAC;CAAG"}
1
+ {"version":3,"file":"dialecte.config.d.ts","sourceRoot":"","sources":["../../../src/v2019C1/config/dialecte.config.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,aAAa;;;CAGN,CAAA;AAGpB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;CAaG,CAAA;AAEnC,eAAO,MAAM,cAAc;;;;;;;;;CAMjB,CAAA;AAEV,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAcM,CAAA;AAEtC,MAAM,WAAW,MAAO,SAAQ,QAAQ,CAAC,OAAO,mBAAmB,CAAC;CAAG"}
@@ -15,6 +15,10 @@ export type ExtractionStrategy = {
15
15
  type: 'attribute';
16
16
  attr: string;
17
17
  separator: '/' | '.';
18
+ } | {
19
+ type: 'sourceRef';
20
+ } | {
21
+ type: 'controlRef';
18
22
  };
19
23
  export declare const PATH_EXTRACTION_CONFIG: Record<string, ExtractionStrategy>;
20
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"path-extraction.d.ts","sourceRoot":"","sources":["../../../../../src/v2019C1/extensions/reference/constants/path-extraction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,kBAAkB,GAC3B;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAAA;CAAE,CAAA;AAE5D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAiErE,CAAA;AAID;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,MAAM,CAa5D,CAAA"}
1
+ {"version":3,"file":"path-extraction.d.ts","sourceRoot":"","sources":["../../../../../src/v2019C1/extensions/reference/constants/path-extraction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,kBAAkB,GAC3B;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAA;AAEzB,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAiErE,CAAA;AAID;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,MAAM,CAiB5D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"path-segment.d.ts","sourceRoot":"","sources":["../../../../../../src/v2019C1/extensions/reference/query/build/path-segment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EACX,WAAW,EAEX,WAAW,EAEX,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAqClD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,IAAI,CAIvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAA;CACjC,GAAG,WAAW,GAAG,IAAI,CAcrB;AAQD,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAMnE"}
1
+ {"version":3,"file":"path-segment.d.ts","sourceRoot":"","sources":["../../../../../../src/v2019C1/extensions/reference/query/build/path-segment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EACX,WAAW,EAEX,WAAW,EAEX,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAyDlD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,IAAI,CAIvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAA;CACjC,GAAG,WAAW,GAAG,IAAI,CAcrB;AAQD,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAMnE"}
@@ -1,5 +1,5 @@
1
- import { R as q, U as w, K as Z, D as J, r as _, a as x, H, S as R } from "../index-ChFpcq4k.js";
2
- import { b as Xt, c as Yt, d as Wt } from "../index-ChFpcq4k.js";
1
+ import { R as q, U as w, K as Z, D as J, r as _, a as x, H, S as R } from "../index-uvKv9uth.js";
2
+ import { b as Xt, c as Yt, d as Wt } from "../index-uvKv9uth.js";
3
3
  import { isChildOf as b, stripAttributes as tt } from "@dialecte/core/helpers";
4
4
  import { invariant as U } from "@dialecte/core/utils";
5
5
  import { createDialecteDocument as et, openDialecteDocument as nt, importXmlFiles as at, exportXmlFile as ot } from "@dialecte/core";
@@ -1,6 +1,6 @@
1
1
  import { CUSTOM_RECORD_ID_ATTRIBUTE as R, CUSTOM_RECORD_ID_ATTRIBUTE_NAME as D } from "@dialecte/core/helpers";
2
2
  import { createTestRunner as r, createTestRecordFactory as n, createXmlAssertions as a, XMLNS_DEV_NAMESPACE as o, createTestDialecte as S } from "@dialecte/core/test";
3
- import { S as e, H as t } from "../index-ChFpcq4k.js";
3
+ import { S as e, H as t } from "../index-uvKv9uth.js";
4
4
  const E = 'xmlns="http://www.iec.ch/61850/2003/SCL"', _ = 'xmlns:eIEC61850-6-100="http://www.iec.ch/61850/2019/SCL/6-100"', i = `${E} ${_} ${o}`, A = r(e, t);
5
5
  async function m(s) {
6
6
  const { xmlString: c } = s;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dialecte/scl",
3
- "version": "0.1.19",
3
+ "version": "0.1.20",
4
4
  "description": "Dialecte - SCL (Substation Configuration Language) sdk",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -47,7 +47,7 @@
47
47
  "prepare": "husky"
48
48
  },
49
49
  "dependencies": {
50
- "@dialecte/core": "0.1.21",
50
+ "@dialecte/core": "0.1.22",
51
51
  "dexie": "4.2.0"
52
52
  },
53
53
  "devDependencies": {