@ebusd/ebus-typespec 0.19.0 → 0.21.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.
@@ -1,4 +1,4 @@
1
- import { type CompilerHost, type EmitContext, type Model, type Namespace, type Program, type Union } from "@typespec/compiler";
1
+ import { type CompilerHost, type EmitContext, type Model, type Namespace, type Program, type Type, type Union, type UnionVariant } from "@typespec/compiler";
2
2
  import { CodeTypeEmitter, type AssetEmitter, type Context, type EmittedSourceFile, type EmitterOutput, type SourceFile } from "@typespec/compiler/emitter-framework";
3
3
  import { type EbusdEmitterOptions } from "./lib.js";
4
4
  export declare class EbusdEmitter extends CodeTypeEmitter<EbusdEmitterOptions> {
@@ -8,6 +8,11 @@ export declare class EbusdEmitter extends CodeTypeEmitter<EbusdEmitterOptions> {
8
8
  private translations;
9
9
  constructor(emitter: AssetEmitter<string, EbusdEmitterOptions>, includes?: boolean | undefined, withMinMax?: boolean | undefined, translations?: Map<string, string>);
10
10
  programContext(program: Program): Context;
11
+ mapConditions(idModel: Type | undefined, sf: SourceFile<object>, program: Program, circuit: string, model: Model | UnionVariant, fallbackNs?: Namespace): string;
12
+ getNearestZzNamespace(sf: SourceFile<Object>, model: Model, referencedBy?: Union): {
13
+ nearestCircuit: string | undefined;
14
+ nearestZz: number | undefined;
15
+ };
11
16
  modelDeclaration(model: Model, name: string): EmitterOutput<string>;
12
17
  modelPropertiesRw(model: Model, activeWrite?: boolean, broadcastOrMasterTarget?: boolean, write?: boolean): EmitterOutput<string>;
13
18
  unionDeclaration(union: Union, name: string): EmitterOutput<string>;
@@ -3,7 +3,7 @@ import { CodeTypeEmitter, StringBuilder, code } from "@typespec/compiler/emitter
3
3
  import { DuplicateTracker } from "@typespec/compiler/utils";
4
4
  import jsYaml from "js-yaml";
5
5
  import { basename, extname } from "path";
6
- import { getAuth, getChain, getConditions, getConstValue, getDivisor, getId, getInherit, getMaxBits, getOut, getPassive, getPoll, getQq, getSourceAddr, getUnit, getValues, getWrite, getZz, isSourceAddr } from "./decorators.js";
6
+ import { getAuth, getChain, getConditions, getConstValue, getDivisor, getId, getInherit, getMaxBits, getOut, getPassive, getPoll, getQq, getSourceAddr, getStep, getUnit, getValues, getWrite, getZz, isSourceAddr } from "./decorators.js";
7
7
  import { StateKeys, reportDiagnostic } from "./lib.js";
8
8
  const hex = (v) => v === undefined ? '' : (0x100 | v).toString(16).substring(1);
9
9
  const hexs = (vs) => vs ? vs.map(hex).join('') : '';
@@ -17,25 +17,6 @@ const normName = {
17
17
  message: (s) => pascalCase(s),
18
18
  field: (s) => s ? s.toLowerCase() : s,
19
19
  };
20
- const mapConds = (idModel, sf, conds) => conds?.map(c => {
21
- const values = c.length > 1 ? (c[1].match(/^[<>=]/) ? '' : '=') + c.slice(1).join(';') : '';
22
- const ref = c[0];
23
- let propName = ref.kind === 'ModelProperty' ? ref.name : '';
24
- const model = propName ? ref.model : ref;
25
- let modelName = model?.name;
26
- let condName = (modelName + (propName === 'value' ? '' : '_' + propName)).toLowerCase();
27
- let circuitName = '';
28
- if (idModel && model === idModel) {
29
- modelName = '';
30
- circuitName = 'scan';
31
- propName = propName.toUpperCase(); // todo support lowercase in ebusd as well
32
- }
33
- else {
34
- modelName = (modelName || '').toLowerCase();
35
- }
36
- sf.imports.set(condName, [`[${condName}]`, circuitName, '', modelName, '', propName]);
37
- return `[${condName + values}]`;
38
- }).join('');
39
20
  export class EbusdEmitter extends CodeTypeEmitter {
40
21
  includes;
41
22
  withMinMax;
@@ -54,27 +35,52 @@ export class EbusdEmitter extends CodeTypeEmitter {
54
35
  scope: sourceFile.globalScope,
55
36
  };
56
37
  }
57
- modelDeclaration(model, name) {
38
+ mapConditions(idModel, sf, program, circuit, model, fallbackNs) {
39
+ const conds = getConditions(program, model) || (fallbackNs && getConditions(program, fallbackNs));
40
+ // const ns = target.kind==='UnionVariant' ? target.type.kind==='Namespace' ? target.type.namespace : undefined : target.namespace;
41
+ // let ownZz = ns ? getZz(context.program, ns) : undefined;
42
+ return conds?.map(c => {
43
+ const values = c.length > 2 ? (c[2].match(/^[<>=]/) ? '' : '=') + c.slice(2).join(';') : '';
44
+ const ref = c[0];
45
+ let propName = ref.kind === 'ModelProperty' ? ref.name : '';
46
+ const model = propName ? ref.model : ref;
47
+ const { nearestZz: modelZz, nearestCircuit: modelCirc } = model ? this.getNearestZzNamespace(sf, model) : {};
48
+ const zz = c[1] !== undefined ? c[1] : modelZz;
49
+ let modelName = model?.name;
50
+ let condName = (modelName + (zz === undefined ? '' : '_' + hex(zz)) + (propName === 'value' ? '' : '_' + propName)).toLowerCase();
51
+ let circuitName = '';
52
+ if (idModel && model === idModel) {
53
+ modelName = '';
54
+ circuitName = 'scan';
55
+ propName = propName.toUpperCase(); // todo support lowercase in ebusd as well
56
+ }
57
+ else {
58
+ if (modelCirc && modelCirc !== circuit) {
59
+ circuitName = modelCirc;
60
+ condName = modelCirc + '_' + condName;
61
+ }
62
+ modelName = (modelName || '').toLowerCase();
63
+ }
64
+ sf.imports.set(condName, [`[${condName}]`, circuitName, '', modelName, hex(zz), propName]);
65
+ return `[${condName + values}]`;
66
+ }).join('') || '';
67
+ }
68
+ getNearestZzNamespace(sf, model, referencedBy) {
58
69
  const program = this.emitter.getProgram();
59
- const decls = [];
60
- const context = this.emitter.getContext();
61
- if (!program.stateSet(StateKeys.id).has(model) || context.exclude) {
62
- return this.emitter.result.none();
63
- }
64
- const sf = this.#getCurrentSourceFile();
65
70
  let nearestNamespace;
66
71
  let nearestCircuit;
67
72
  let nearestZz;
68
- for (const frame of [model, context.referencedBy]) {
69
- if (!frame)
73
+ for (const frame of [model, referencedBy]) {
74
+ if (!frame) {
70
75
  continue;
76
+ }
71
77
  // get "file" namespace
72
78
  const fp = fileParent(frame.node);
73
79
  for (let n = fp && frame.namespace; n; n = n.namespace) {
74
80
  if (n?.name === 'Ebus') {
75
81
  break;
76
82
  }
77
- if (frame !== context.referencedBy && fileParent(n.node) !== fp) {
83
+ if (frame === referencedBy && fileParent(n.node) !== fp) {
78
84
  break;
79
85
  }
80
86
  if (!nearestNamespace) {
@@ -95,7 +101,7 @@ export class EbusdEmitter extends CodeTypeEmitter {
95
101
  }
96
102
  if (!nearestCircuit) {
97
103
  let fileCircuit = basename(fp.path, extname(fp.path));
98
- if (context.referencedBy && fileCircuit.endsWith('_inc')
104
+ if (referencedBy && fileCircuit.endsWith('_inc')
99
105
  || extname(sf?.path) === '.inc' && fileCircuit === basename(sf.path, '.inc') + '_inc') {
100
106
  fileCircuit = ''; // leave circuit blank in include files unless the circuit name was set explicitly
101
107
  }
@@ -112,6 +118,18 @@ export class EbusdEmitter extends CodeTypeEmitter {
112
118
  nearestCircuit = nearestNamespace && nearestNamespace.toLowerCase() === fileCircuit ? nearestNamespace : fileCircuit;
113
119
  }
114
120
  }
121
+ return { nearestCircuit, nearestZz };
122
+ }
123
+ modelDeclaration(model, name) {
124
+ const program = this.emitter.getProgram();
125
+ const decls = [];
126
+ const context = this.emitter.getContext();
127
+ if (!program.stateSet(StateKeys.id).has(model) || context.exclude) {
128
+ return this.emitter.result.none();
129
+ }
130
+ const sf = this.#getCurrentSourceFile();
131
+ let { nearestCircuit, nearestZz } = this.getNearestZzNamespace(sf, model, context.referencedBy);
132
+ const circuit = nearestCircuit || '';
115
133
  if (nearestCircuit) {
116
134
  nearestCircuit = nearestCircuit.split('.')[0]; // strip off further other suffixes
117
135
  const nearestCircuitLower = nearestCircuit.toLowerCase();
@@ -124,7 +142,7 @@ export class EbusdEmitter extends CodeTypeEmitter {
124
142
  }
125
143
  }
126
144
  const [idModel] = program.resolveTypeReference('Ebus.Id.Id');
127
- const conds = (context.conds || '') + mapConds(idModel, sf, getConditions(program, model) || (model.namespace && getConditions(program, model.namespace)) || []);
145
+ const conds = (context.conds || '') + this.mapConditions(idModel, sf, program, circuit, model, model.namespace);
128
146
  for (const inheritFrom of getInherit(program, model) ?? [undefined]) {
129
147
  let write = getWrite(program, model) ?? getWrite(program, inheritFrom);
130
148
  const passive = getPassive(program, model) ?? getPassive(program, inheritFrom);
@@ -352,6 +370,7 @@ export class EbusdEmitter extends CodeTypeEmitter {
352
370
  if (minv !== undefined && maxv !== undefined) {
353
371
  res.min = minv;
354
372
  res.max = maxv;
373
+ res.step = getStep(program, s);
355
374
  }
356
375
  }
357
376
  res.unit ??= getUnit(program, s);
@@ -408,7 +427,7 @@ export class EbusdEmitter extends CodeTypeEmitter {
408
427
  res.dir === (write ? 'm' : 's') ? '' : res.dir,
409
428
  typ,
410
429
  divisor,
411
- ...(this.withMinMax ? [res.min !== undefined && res.max !== undefined ? `${res.min}-${res.max}` : ''] : []),
430
+ ...(this.withMinMax ? [res.min !== undefined && res.max !== undefined ? `${res.min}-${res.max}${res.step !== undefined ? `:${res.step}` : ''}` : ''] : []),
412
431
  res.unit,
413
432
  escape(res.comment),
414
433
  ];
@@ -452,7 +471,7 @@ export class EbusdEmitter extends CodeTypeEmitter {
452
471
  return;
453
472
  }
454
473
  const isLoad = typeof uv.name === 'string' && !!uv.name;
455
- const conds = mapConds(idModel, sf, getConditions(program, uv) || []);
474
+ const conds = this.mapConditions(idModel, sf, program, '', uv);
456
475
  addInclude(uv.type, this.#getDoc(uv), conds, isLoad);
457
476
  });
458
477
  return this.emitter.result.declaration(name, decls.join('\n'));
@@ -471,7 +490,7 @@ export class EbusdEmitter extends CodeTypeEmitter {
471
490
  return;
472
491
  }
473
492
  const namespace = uv.type;
474
- const conds = mapConds(idModel, sf, getConditions(program, uv) || []);
493
+ const conds = this.mapConditions(idModel, sf, program, '', uv);
475
494
  const isLoad = typeof uv.name === 'string' && uv.name;
476
495
  if (isLoad) {
477
496
  const referenceContext = this.#mkContext(namespace.node, namespace, undefined, true);
@@ -1 +1 @@
1
- {"version":3,"file":"csv_emitter.js","sourceRoot":"","sources":["../../src/csv_emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"csv_emitter.js","sourceRoot":"","sources":["../../src/csv_emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,IAAI,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAsN,MAAM,oBAAoB,CAAC;AAC5Y,OAAO,EAAC,eAAe,EAAE,aAAa,EAAE,IAAI,EAAiI,MAAM,sCAAsC,CAAC;AAC1N,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC1D,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AACvC,OAAO,EACL,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EACvH,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EACjF,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,SAAS,EAAE,gBAAgB,EAA2B,MAAM,UAAU,CAAC;AAE/E,MAAM,GAAG,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,KAAG,SAAS,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACzF,MAAM,IAAI,GAAG,CAAC,EAAa,EAAU,EAAE,CAAC,EAAE,CAAA,CAAC,CAAA,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC;AACnE,MAAM,UAAU,GAAG,CAAC,CAAO,EAA8B,EAAE,CAAE,CAAwB,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/H,MAAM,oBAAoB,GAAG,CAAC,KAAoB,EAAoC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;AAChJ,MAAM,MAAM,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3G,MAAM,UAAU,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,IAAE,GAAG,IAAI,EAAE,IAAE,GAAG,CAAC;AACnD,MAAM,QAAQ,GAA0E;IACtF,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA,CAAC,CAAA,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC;IACjF,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;CACtC,CAAA;AAED,MAAM,OAAO,YAAa,SAAQ,eAAoC;IAII;IAC9D;IACA;IALV,mBAAmB,GAAG,IAAI,gBAAgB,EAA4B,CAAC;IACvE,iBAAiB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEvD,YAAY,OAAkD,EAAU,QAAkB,EAChF,UAAoB,EACpB,eAAe,IAAI,GAAG,EAAkB;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC;QAHuD,aAAQ,GAAR,QAAQ,CAAU;QAChF,eAAU,GAAV,UAAU,CAAU;QACpB,iBAAY,GAAZ,YAAY,CAA4B;IAElD,CAAC;IAED,cAAc,CAAC,OAAgB;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrD,OAAO;YACL,KAAK,EAAE,UAAU,CAAC,WAAW;SAC9B,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,OAAuB,EAAE,EAAsB,EAAE,OAAgB,EAAE,OAAe,EAAE,KAAyB,EAAE,UAAsB;QACjJ,MAAM,KAAK,GAA2D,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,IAAE,CAAC,UAAU,IAAE,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QACtJ,mIAAmI;QACnI,2DAA2D;QAC3D,OAAO,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;YACpB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,GAAG,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,QAAQ,GAAG,GAAG,CAAC,IAAI,KAAG,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAE,GAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAY,CAAC;YACrE,MAAM,EAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3G,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7C,IAAI,SAAS,GAAG,KAAK,EAAE,IAAI,CAAC;YAC5B,IAAI,QAAQ,GAAG,CAAC,SAAS,GAAC,CAAC,EAAE,KAAG,SAAS,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,GAAG,GAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAC,CAAC,QAAQ,KAAG,OAAO,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,GAAG,GAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9G,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,OAAO,IAAI,KAAK,KAAG,OAAO,EAAE,CAAC;gBAC/B,SAAS,GAAG,EAAE,CAAC;gBACf,WAAW,GAAG,MAAM,CAAC;gBACrB,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,0CAA0C;YAC/E,CAAC;iBAAM,CAAC;gBACN,IAAI,SAAS,IAAI,SAAS,KAAG,OAAO,EAAE,CAAC;oBACrC,WAAW,GAAG,SAAS,CAAC;oBACxB,QAAQ,GAAG,SAAS,GAAC,GAAG,GAAC,QAAQ,CAAC;gBACpC,CAAC;gBACD,SAAS,GAAG,CAAC,SAAS,IAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,CAAC;YACD,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,QAAQ,GAAG,EAAC,WAAW,EAAC,EAAE,EAAC,SAAU,EAAC,GAAG,CAAC,EAAE,CAAC,EAAC,QAAQ,CAAC,CAAC,CAAC;YACvF,OAAO,IAAI,QAAQ,GAAC,MAAM,GAAG,CAAC;QAChC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC;IAClB,CAAC;IAGD,qBAAqB,CAAC,EAAsB,EAAE,KAAY,EAAE,YAAoB;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1C,IAAI,gBAAkC,CAAC;QACvC,IAAI,cAAgC,CAAC;QACrC,IAAI,SAA2B,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YACD,uBAAuB;YACvB,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,IAAY,CAAC,CAAC;YAC1C,KAAK,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBACrD,IAAI,CAAC,EAAE,IAAI,KAAG,MAAM,EAAE,CAAC;oBACrB,MAAM;gBACR,CAAC;gBACD,IAAI,KAAK,KAAG,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,EAAE,EAAE,CAAC;oBACpD,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC5B,CAAC;gBACD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC7B,IAAI,EAAE,KAAG,SAAS,EAAE,CAAC;oBACnB,uDAAuD;oBACvD,yCAAyC;oBACzC,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,cAAc,GAAG,CAAC,CAAC,IAAI,IAAI,gBAAgB,CAAC;oBAC9C,CAAC;oBACD,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,qDAAqD;wBACrD,SAAS,GAAG,EAAE,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,IAAI,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,IAAI,YAAY,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;uBAC7C,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,KAAG,MAAM,IAAI,WAAW,KAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAC,MAAM,EAAE,CAAC;oBAChF,WAAW,GAAG,EAAE,CAAC,CAAC,kFAAkF;gBACtG,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACrC,IAAI,KAAK,CAAC,MAAM,GAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;wBAC1D,sEAAsE;wBACvE,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACzB,CAAC;yBAAM,IAAI,KAAK,CAAC,MAAM,GAAC,CAAC,EAAE,CAAC;wBAC1B,WAAW,GAAG,EAAE,CAAC,CAAC,6BAA6B;oBACjD,CAAC;gBACH,CAAC;gBACD,cAAc,GAAG,gBAAgB,IAAI,gBAAgB,CAAC,WAAW,EAAE,KAAG,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC;YACrH,CAAC;QACH,CAAC;QACD,OAAO,EAAC,cAAc,EAAE,SAAS,EAAC,CAAC;IACrC,CAAC;IACD,gBAAgB,CAAC,KAAY,EAAE,IAAY;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACxC,IAAI,EAAC,cAAc,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9F,MAAM,OAAO,GAAG,cAAc,IAAE,EAAE,CAAC;QACnC,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC;YAClF,MAAM,mBAAmB,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,KAAK,CAAC,MAAM,GAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBAC3D,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB;gBACrC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,mBAAmB,EAAE,CAAC;oBACrC,cAAc,GAAG,EAAE,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,IAAE,EAAE,CAAC,GAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5G,KAAK,MAAM,WAAW,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,IAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAClE,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC/E,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,SAAS,CAAC;YAC3E,IAAI,KAAK,KAAG,KAAK,EAAE,CAAC;gBAClB,KAAK,GAAG,IAAI,CAAC;gBACb,IAAI,EAAE,KAAG,SAAS,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxC,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;oBAChC,IAAI,KAAK,KAAG,SAAS,EAAE,CAAC;wBACtB,gBAAgB,CAAC,OAAO,EAAE;4BACxB,IAAI,EAAE,qBAAqB;4BAC3B,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE;4BAC1B,MAAM,EAAE,KAAK;yBACd,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,EAAE,GAAG,KAAK,CAAC;oBACb,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,uBAAuB,GAAG,KAAK,CAAC;YACpC,IAAI,EAAE,KAAK,IAAI,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpC,yCAAyC;gBACzC,IAAI,OAAO,KAAG,SAAS,EAAE,CAAC;oBACxB,yDAAyD;oBACzD,KAAK,KAAK,IAAI,CAAC;gBACjB,CAAC;gBACD,uBAAuB,GAAG,IAAI,CAAC;YACjC,CAAC;iBAAM,IAAI,EAAE,KAAG,IAAI,EAAE,CAAC,CAAC,mDAAmD;gBACzE,EAAE,GAAG,SAAS,CAAC;YACjB,CAAC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACzE,yDAAyD;YACzD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,SAAS,EAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,UAAU,GAAG,WAAW,IAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,IAAE,CAAC,OAAO,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;YACrH,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,IAAE,CAAC,OAAO,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAC9F,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,wCAAwC;YACzG,iFAAiF;YACjF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,IAAE,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACzE,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;gBAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,QAAQ,IAAI,YAAY,CAAC;oBACzB,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;oBACxE,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;wBAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;wBACnB,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAC,CAAC,GAAC,YAAY,CAAC,MAAM,EAAE,CAAC;4BAChD,SAAS,GAAG,CAAC,IAAI,gBAAgB,CAAC;wBACpC,CAAC;6BAAM,CAAC;4BACN,QAAQ,IAAI,IAAI,YAAY,GAAG,CAAC,GAAG,YAAY,EAAE,CAAC;wBACpD,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,SAAS,EAAE,CAAC;oBACd,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,gBAAgB;wBACtB,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;wBAC7C,MAAM,EAAE,KAAK;qBACd,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,GAAG,IAAI,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,IAAI,EAAE,CAAC,MAAM,GAAC,CAAC,EAAE,CAAC;gBAChB,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;oBACzB,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC,CAAC,kCAAkC;YACxC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,IAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YAC1G,CAAC;YACD,IAAI,EAAE,KAAG,SAAS,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,CAAC,EAAE,CAAC;gBAChE,iDAAiD;gBACjD,EAAE,GAAG,SAAS,CAAC;YACjB,CAAC;YACD,IAAI,cAAc,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAC,cAAc,CAAC,WAAW,EAAE,GAAC,GAAG,CAAC,EAAE,CAAC;gBACvF,cAAc,GAAG,SAAS,CAAC;YAC7B,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACvE,MAAM,IAAI,GAAG,SAAS,KAAG,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAClE,mEAAmE;YACnE,oDAAoD;YACpD,MAAM,OAAO,GAAG,CAAC,KAAK,GAAC,SAAS,GAAC,CAAC,IAAI,IAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;YAC3J,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,UAAU,CAAA,CAAC,CAAA,CAAC,UAAU,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,iBAAiB,CAAC,KAAY,EAAE,WAAqB,EAAE,uBAAiC,EAAE,KAAe;QACvG,MAAM,CAAC,GAAG,IAAI,aAAa,EAAE,CAAA;QAC7B,IAAI,KAAK,GAAG,IAAI,CAAA;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,WAAoC,CAAC;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC;QAE9F,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAG,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAG,eAAe,EAAE,CAAC;gBAC5D,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAG,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,SAAS,GAAC,EAAE,GAAC,WAAW,EAAE,CAAC;oBAC3E,4CAA4C;oBAC5C,2FAA2F;oBAC3F,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;oBACtD,UAAU,CAAC,MAAM,CAAC,GAAG,GAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;oBACvC,SAAS,EAAE,CAAC;oBACZ,2CAA2C;oBAC3C,WAAW,GAAG,CAAC,CAAC;oBAChB,IAAI,CAAC,cAAc,IAAI,UAAU,CAAC,MAAM,GAAC,EAAE,GAAC,CAAC,GAAC,CAAC,GAAC,WAAW,EAAE,CAAC;wBAC5D,mDAAmD;wBACnD,cAAc,GAAG,IAAI,CAAC;wBACtB,gBAAgB,CAAC,OAAO,EAAE;4BACxB,IAAI,EAAE,gBAAgB;4BACtB,MAAM,EAAE,KAAK;4BACb,MAAM,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,EAAC;yBACxD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACvB,iBAAiB,GAAG,IAAI,CAAC;wBACzB,gBAAgB,CAAC,OAAO,EAAE;4BACxB,IAAI,EAAE,oBAAoB;4BAC1B,MAAM,EAAE,KAAK;4BACb,MAAM,EAAE,EAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAC;yBACtB,CAAC,CAAC;oBACL,CAAC;oBACD,WAAW,GAAG,SAAS,CAAC;gBAC1B,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE,CAAC;gBAC9B,+CAA+C;gBAC/C,WAAW,GAAG,SAAS,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,IAAI,GAAG,GAAG,EAAW,CAAC;YACtB,IAAI,CAAC,GAAyB,CAAC,CAAC;YAChC,IAAI,KAAK,GAA8B,SAAS,CAAC;YACjD,GAAG,CAAC;gBACF,MAAM,OAAO,GAAG,KAAK,CAAC;gBACtB,sEAAsE;gBACtE,KAAK,GAAG,CAAC,CAAC,IAAI,KAAG,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC;oBAC1F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;oBACtE,CAAC,CAAC,SAAS,CAAC;gBACd,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/C,GAAG,GAAG,EAAC,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAC,CAAC;gBAC/B,CAAC;gBACD,IAAI,CAAC,CAAC,IAAI,KAAG,eAAe,EAAE,CAAC;oBAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;wBACf,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;oBACrB,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,KAAG,OAAO,EAAE,CAAC;oBAC3B,yDAAyD;oBACzD,IAAI,GAAG,CAAC,MAAM,KAAG,SAAS,EAAE,CAAC;wBAC3B,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;wBAC7F,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;4BACnC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;4BACvB,gBAAgB,CAAC,OAAO,EAAE;gCACxB,IAAI,EAAE,eAAe;gCACrB,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,EAAE;gCAC1F,MAAM,EAAE,KAAK;6BACd,CAAC,CAAC;wBACL,CAAC;6BAAM,IAAI,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;4BACjC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBAChD,CAAC;oBACH,CAAC;oBACD,MAAM,CAAC,yBAAyB;gBAClC,CAAC;gBACD,GAAG,CAAC,MAAM,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC7F,GAAG,CAAC,YAAY,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,KAAG,CAAC,CAAC;gBAChF,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAG,eAAe,EAAE,CAAC;oBACzC,MAAM,EAAC,GAAG,EAAE,SAAS,EAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAkB,CAAC,IAAI,EAAE,CAAC;oBACnE,IAAI,GAAG,KAAG,SAAS,EAAE,CAAC;wBACpB,IAAI,uBAAuB,IAAI,GAAG,KAAG,KAAK,EAAE,CAAC;4BAC3C,gBAAgB,CAAC,OAAO,EAAE;gCACxB,IAAI,EAAE,WAAW;gCACjB,MAAM,EAAE,EAAG;gCACX,MAAM,EAAE,CAAC;6BACV,CAAC,CAAC;wBACL,CAAC;wBACD,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;wBAC1B,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAG,SAAS,IAAI,CAAC,KAAG,CAAC,EAAE,CAAC;oBAC3B,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC;oBAC/C,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,MAAM,GAAa,EAAE,CAAC;wBAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAG,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAC,GAAG,GAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC1G,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACN,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;wBACrC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;4BACrB,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;wBACjC,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACrC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACrC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC7C,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;wBACf,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;wBACf,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;gBACD,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,IAAI,WAAW,EAAE,CAAC;wBAChB,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBAC1C,WAAW,GAAG,SAAS,CAAC;oBAC1B,CAAC;oBACD,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClC,CAAC;gBACD,IAAI,CAAC,CAAC,IAAI,KAAG,eAAe,EAAE,CAAC;oBAC7B,CAAC,GAAG,CAAC,CAAC,IAA4B,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;wBAClB,MAAM;oBACR,CAAC;oBACD,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;gBACnB,CAAC;YACH,CAAC,QAAQ,IAAI,EAAE;YACf,WAAW,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE;oBAC3C,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,GAAG,CAAC,SAAS,KAAG,SAAS,IAAI,CAAC,CAAC,KAAK,KAAG,GAAG,CAAC,SAAS,EAAE,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,kEAAkE;YAClE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,GAAG,GAAC,GAAG,CAAC,OAAO,CAAA,CAAC,CAAA,GAAG,CAAC,OAAO,CAAC;gBAClF,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE;oBACvC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,GAAG,GAAW,GAAG,CAAC,IAAI,CAAC;YAC3B,IAAI,GAAG,CAAC,MAAM,GAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAG,GAAG,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpB,uCAAuC;oBACvC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAC,GAAG,GAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,GAAC,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,KAAG,GAAG,EAAE,CAAC;gBACnD,sCAAsC;gBACtC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAC,GAAG,GAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACtB,GAAG,IAAI,GAAG,GAAC,CAAC,GAAG,CAAC,YAAY,CAAA,CAAC,CAAA,GAAG,CAAA,CAAC,CAAA,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/C,CAAC;YACD,qDAAqD;YACrD,MAAM,KAAK,GAAG;gBACZ,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;gBACzB,GAAG,CAAC,GAAG,KAAG,CAAC,KAAK,CAAA,CAAC,CAAA,GAAG,CAAA,CAAC,CAAA,GAAG,CAAC,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,GAAG,CAAC,GAAG;gBACpC,GAAG;gBACH,OAAO;gBACP,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAG,SAAS,IAAI,GAAG,CAAC,GAAG,KAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,KAAG,SAAS,CAAA,CAAC,CAAA,IAAI,GAAG,CAAC,IAAI,EAAE,CAAA,CAAC,CAAA,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChJ,GAAG,CAAC,IAAI;gBACR,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;aACpB,CAAC;YACF,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;YACD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAA,GAAG,CAAC,EAAE,CAAA;IACnB,CAAC;IAED,gBAAgB,CAAC,KAAY,EAAE,IAAY;QACzC,IAAI,IAAI,KAAG,WAAW,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,CAAC,EAAa,EAAE,OAAgB,EAAE,KAAc,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE;YACrF,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,IAAY,CAAC,CAAC;YACvC,IAAI,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,GAAC,MAAM,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAI,MAAM,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,KAAK,GAAC,GAAG,GAAC,CAAC,MAAM,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAChG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;YAC7B,CAAC;YACD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,KAAG,WAAW,EAAE,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;gBACxD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC/D,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1C,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,gBAAgB,CAAC,OAAO,EAAE;gBACxB,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,EAA4B;gBACpC,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,wCAAwC;QAC7E,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,KAAG,WAAW,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,MAAM,SAAS,GAAG,EAAE,CAAC,IAAiB,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC;YACtD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBACrF,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO;uBAClE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,KAAG,CAAC,EAAE,CAAC;oBAC5E,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAC,gBAAgB,EAAC,CAAC,CAAA,CAAC,iDAAiD;gBACjH,CAAC;gBACD,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC7B,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAC,gBAAgB,EAAE,OAAO,EAAC,CAAC,CAAA;gBACtE,OAAO,OAAO,CAAC,KAAK,CAAC;gBACrB,OAAO,OAAO,CAAC,YAAY,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0EAA0E;IAC5I,CAAC;IAEO,KAAK,CAAa;IAC1B,UAAU,CAAC,IAAU,EAAE,OAAO,GAAC,KAAK;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,sBAAsB,EAAE,CAAC;gBAC7D,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,IAAI,qBAAqB,CAAC,IAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,mBAAmB;QACjB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;oBAC1C,IAAI,EAAE,cAAc;oBACpB,MAAM,EAAE,EAAE,EAAE,EAAE;oBACd,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAiC;QACjD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAExD,+EAA+E;YAC/E,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,EAAE,CAAC;gBACtD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;YAC/B,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;gBACxC,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,OAAO,EAAE,SAAS,CAAC,QAAQ;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,UAAU,CAAC,UAA8B;QACvC,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACrE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACnC,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAC,CAAC;QAC/C,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,aAAa,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;aACtC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC,6CAA6C;aAC/E,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACxC,OAAO;YACL,QAAQ,EACN,gDAAgD;kBAC/C,iCAAiC;kBACjC,CAAC,IAAI,CAAC,UAAU,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,EAAE,CAAC;kBAC7B,gBAAgB;kBAChB,CAAC,CAAC,MAAM,EAAE;kBACV,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAC,IAAI;YACvC,IAAI,EAAE,UAAU,CAAC,IAAI;SACtB,CAAC;IACJ,CAAC;IAGD,qBAAqB;QACnB,IAAI,KAAK,GAAkB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;QAC3D,OAAO,KAAK,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,EAAE,UAAU,CAAC;IAC3B,CAAC;IAED,2DAA2D;IAC3D,4DAA4D;IAC5D,iCAAiC;IACjC,oEAAoE;IACpE,+CAA+C;IAC/C,aAAa;IACb,kCAAkC;IAClC,sCAAsC;IACtC,sBAAsB;IACtB,UAAU;IACV,MAAM;IACN,IAAI;IAEJ,gBAAgB,CAAC,SAAoB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,uBAAuB,CAAC,KAAY,EAAE,SAAiB;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAY,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,UAAU,CAAC,IAAU,EAAE,SAAqB,EAAE,GAAW,EAAE,OAAO,GAAG,KAAK;QACxE,2DAA2D;QAC3D,eAAe;QACf,IAAI;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC7C,IAAI,UAAU,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAClD,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,EAAE,IAAI,KAAG,MAAM,EAAE,CAAC,CAAC,kBAAkB;gBACxC,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,SAAS,IAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,WAAW,GAAG,EAAE,EAAE,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,8DAA8D;QAC9D,IAAI,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtD,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;YACzB,CAAC;YACD,IAAI,IAAI,KAAG,WAAW,EAAE,CAAC;gBACvB,IAAI,GAAG,EAAE,CAAC;YACZ,CAAC;YACD,GAAG,GAAG,KAAK,CAAC;YACZ,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACzF,sBAAsB;YACtB,IAAI,GAAG,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,IAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACnF,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAE,IAAI,KAAG,IAAI,CAAA,CAAC,CAAA,IAAI,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,GAAG,IAAI,EAAE,CAAC;QAC3D,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CACxC,GAAG,QAAQ,IAAI,GAAG,EAAE,CACrB,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAClC,UAAU,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO;YACL,KAAK,EAAE,UAAU,CAAC,WAAW;YAC7B,MAAM,EAAE,OAAO;YACf,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,oEAAoE;QACpE,kEAAkE;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,MAAY;QAClB,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClF,CAAC;CAEF;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAkB,EAAE,QAAkB,EAAE,UAAoB,EAAE,eAAwB;IAC/H,IAAI,YAAiC,CAAC;IACtC,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAA8B,CAAC,EAAE,CAAC;gBACpE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvC,kBAAkB;oBAClB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,mBAAoB,SAAQ,YAAY;QAC5C,YAAY,OAAkD;YAC5D,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC;KACF;IAAA,CAAC;IACF,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAyC;IACrE,MAAM,OAAO;IACb,wCAAwC;IACxC,OAAO,CAAC,eAAe,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9J,OAAO,CAAC,WAAW,EAAE,CAAC;IACtB,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;AAC9B,CAAC"}
@@ -4,9 +4,20 @@ import type { DecoratorContext, Enum, Model, ModelProperty, Namespace, Numeric,
4
4
  *
5
5
  * @param context Decorator context.
6
6
  * @param target Decorator target.
7
- * @param values the value to set.
7
+ * @param property the referenced model property, or a model in case of existance check or single property only.
8
+ * @param values the optional alternative values the property needs to match.
8
9
  */
9
10
  export declare function $condition(context: DecoratorContext, target: Model | Namespace | UnionVariant, property: ModelProperty | Model, ...values: string[]): void;
11
+ /**
12
+ * Implementation of the `@conditionExt` decorator.
13
+ *
14
+ * @param context Decorator context.
15
+ * @param target Decorator target.
16
+ * @param property the referenced model property, or a model in case of existance check or single property only.
17
+ * @param zz the target address ZZ.
18
+ * @param values the optional alternative values the property needs to match.
19
+ */
20
+ export declare function $conditionExt(context: DecoratorContext, target: Model | Namespace | UnionVariant, property: ModelProperty | Model, zz: Numeric, ...values: string[]): void;
10
21
  /**
11
22
  * Accessor for the `@condition` decorator.
12
23
  *
@@ -14,7 +25,7 @@ export declare function $condition(context: DecoratorContext, target: Model | Na
14
25
  * @param target Decorator target.
15
26
  * @returns value if provided on the given target or undefined.
16
27
  */
17
- export declare function getConditions(program: Program, target: Model | Namespace | UnionVariant): [ModelProperty | Model, ...string[]][];
28
+ export declare function getConditions(program: Program, target: Model | Namespace | UnionVariant): [ModelProperty | Model, number | undefined, ...string[]][];
18
29
  /**
19
30
  * Implementation of the `@write` decorator.
20
31
  *
@@ -348,6 +359,22 @@ export declare function $factor(context: DecoratorContext, target: Scalar | Mode
348
359
  * @returns value if provided on the given target or undefined.
349
360
  */
350
361
  export declare function getDivisor(program: Program, target: Scalar | ModelProperty): number | undefined;
362
+ /**
363
+ * Implementation of the `@step` decorator.
364
+ *
365
+ * @param context Decorator context.
366
+ * @param target Decorator target.
367
+ * @param value the value to set.
368
+ */
369
+ export declare function $step(context: DecoratorContext, target: Scalar | ModelProperty, value: Numeric): void;
370
+ /**
371
+ * Accessor for the `@step` decorator.
372
+ *
373
+ * @param program TypeSpec program.
374
+ * @param target Decorator target.
375
+ * @returns value if provided on the given target or undefined.
376
+ */
377
+ export declare function getStep(program: Program, target: Scalar | ModelProperty): number | undefined;
351
378
  /**
352
379
  * Implementation of the `@values` decorator.
353
380
  *
@@ -5,14 +5,31 @@ import { StateKeys, reportDiagnostic } from "./lib.js";
5
5
  *
6
6
  * @param context Decorator context.
7
7
  * @param target Decorator target.
8
- * @param values the value to set.
8
+ * @param property the referenced model property, or a model in case of existance check or single property only.
9
+ * @param values the optional alternative values the property needs to match.
9
10
  */
10
11
  export function $condition(context, target, property, ...values) {
12
+ conditionImpl(context, target, property, undefined, ...values);
13
+ }
14
+ /**
15
+ * Implementation of the `@conditionExt` decorator.
16
+ *
17
+ * @param context Decorator context.
18
+ * @param target Decorator target.
19
+ * @param property the referenced model property, or a model in case of existance check or single property only.
20
+ * @param zz the target address ZZ.
21
+ * @param values the optional alternative values the property needs to match.
22
+ */
23
+ export function $conditionExt(context, target, property, zz, ...values) {
24
+ conditionImpl(context, target, property, zz, ...values);
25
+ }
26
+ function conditionImpl(context, target, property, zz, ...values) {
27
+ const dest = zz !== undefined ? getNum(zz) : undefined;
11
28
  const prev = (context.program.stateMap(StateKeys.condition).get(target) || []);
12
- if (target.kind === 'Namespace' && prev.some(([p]) => p.name === property.name)) {
29
+ if (target.kind === 'Namespace' && prev.some(([p, z]) => p.name === property.name && z === dest)) {
13
30
  return;
14
31
  }
15
- context.program.stateMap(StateKeys.condition).set(target, [...prev, [property, ...values]]);
32
+ context.program.stateMap(StateKeys.condition).set(target, [...prev, [property, dest, ...values]]);
16
33
  }
17
34
  /**
18
35
  * Accessor for the `@condition` decorator.
@@ -690,6 +707,37 @@ export function $factor(context, target, value) {
690
707
  export function getDivisor(program, target) {
691
708
  return getNum(program.stateMap(StateKeys.divisor).get(target));
692
709
  }
710
+ /**
711
+ * Implementation of the `@step` decorator.
712
+ *
713
+ * @param context Decorator context.
714
+ * @param target Decorator target.
715
+ * @param value the value to set.
716
+ */
717
+ export function $step(context, target, value) {
718
+ const val = getNum(value);
719
+ if (!isNumericType(context.program, getPropertyType(target))
720
+ || val === undefined || val <= 0
721
+ || context.program.stateMap(StateKeys.step).has(target)) {
722
+ reportDiagnostic(context.program, {
723
+ code: "banned-step",
724
+ target: context.getArgumentTarget(0),
725
+ format: { value: value.toString() },
726
+ });
727
+ return;
728
+ }
729
+ context.program.stateMap(StateKeys.step).set(target, val);
730
+ }
731
+ /**
732
+ * Accessor for the `@step` decorator.
733
+ *
734
+ * @param program TypeSpec program.
735
+ * @param target Decorator target.
736
+ * @returns value if provided on the given target or undefined.
737
+ */
738
+ export function getStep(program, target) {
739
+ return getNum(program.stateMap(StateKeys.step).get(target));
740
+ }
693
741
  /**
694
742
  * Implementation of the `@values` decorator.
695
743
  *
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
package/dist/src/lib.d.ts CHANGED
@@ -29,6 +29,9 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
29
29
  "banned-factor": {
30
30
  readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
31
31
  };
32
+ "banned-step": {
33
+ readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
34
+ };
32
35
  "banned-values": {
33
36
  readonly default: import("@typespec/compiler").CallableMessage<["detail"]>;
34
37
  };
@@ -62,11 +65,11 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
62
65
  "missing-decorator": {
63
66
  readonly default: import("@typespec/compiler").CallableMessage<["which"]>;
64
67
  };
65
- }, EbusdEmitterOptions, "values" | "reverse" | "unit" | "id" | "condition" | "write" | "passive" | "poll" | "auth" | "qq" | "zz" | "chain" | "inherit" | "example" | "bcd" | "hex" | "maxBits" | "out" | "divisor" | "constValue">;
68
+ }, EbusdEmitterOptions, "values" | "reverse" | "unit" | "id" | "condition" | "write" | "passive" | "poll" | "auth" | "qq" | "zz" | "chain" | "inherit" | "example" | "bcd" | "hex" | "maxBits" | "out" | "divisor" | "step" | "constValue">;
66
69
  export declare const $flags: {
67
70
  decoratorArgMarshalling: string;
68
71
  };
69
- export declare const reportDiagnostic: <C extends "banned-source-address" | "banned-target-address" | "banned-write-target" | "banned-auth" | "banned-divisor" | "banned-factor" | "banned-values" | "banned-type" | "banned-length" | "banned-in" | "duplicate-id" | "short-id" | "banned-inheritance" | "duplicate-name" | "multiple-decorator" | "invalid-length" | "missing-decorator", M extends keyof {
72
+ export declare const reportDiagnostic: <C extends "banned-source-address" | "banned-target-address" | "banned-write-target" | "banned-auth" | "banned-divisor" | "banned-factor" | "banned-step" | "banned-values" | "banned-type" | "banned-length" | "banned-in" | "duplicate-id" | "short-id" | "banned-inheritance" | "duplicate-name" | "multiple-decorator" | "invalid-length" | "missing-decorator", M extends keyof {
70
73
  "banned-source-address": {
71
74
  readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
72
75
  };
@@ -85,6 +88,9 @@ export declare const reportDiagnostic: <C extends "banned-source-address" | "ban
85
88
  "banned-factor": {
86
89
  readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
87
90
  };
91
+ "banned-step": {
92
+ readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
93
+ };
88
94
  "banned-values": {
89
95
  readonly default: import("@typespec/compiler").CallableMessage<["detail"]>;
90
96
  };
@@ -137,6 +143,9 @@ export declare const reportDiagnostic: <C extends "banned-source-address" | "ban
137
143
  "banned-factor": {
138
144
  readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
139
145
  };
146
+ "banned-step": {
147
+ readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
148
+ };
140
149
  "banned-values": {
141
150
  readonly default: import("@typespec/compiler").CallableMessage<["detail"]>;
142
151
  };
@@ -170,7 +179,7 @@ export declare const reportDiagnostic: <C extends "banned-source-address" | "ban
170
179
  "missing-decorator": {
171
180
  readonly default: import("@typespec/compiler").CallableMessage<["which"]>;
172
181
  };
173
- }, C, M>) => void, createDiagnostic: <C extends "banned-source-address" | "banned-target-address" | "banned-write-target" | "banned-auth" | "banned-divisor" | "banned-factor" | "banned-values" | "banned-type" | "banned-length" | "banned-in" | "duplicate-id" | "short-id" | "banned-inheritance" | "duplicate-name" | "multiple-decorator" | "invalid-length" | "missing-decorator", M extends keyof {
182
+ }, C, M>) => void, createDiagnostic: <C extends "banned-source-address" | "banned-target-address" | "banned-write-target" | "banned-auth" | "banned-divisor" | "banned-factor" | "banned-step" | "banned-values" | "banned-type" | "banned-length" | "banned-in" | "duplicate-id" | "short-id" | "banned-inheritance" | "duplicate-name" | "multiple-decorator" | "invalid-length" | "missing-decorator", M extends keyof {
174
183
  "banned-source-address": {
175
184
  readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
176
185
  };
@@ -189,6 +198,9 @@ export declare const reportDiagnostic: <C extends "banned-source-address" | "ban
189
198
  "banned-factor": {
190
199
  readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
191
200
  };
201
+ "banned-step": {
202
+ readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
203
+ };
192
204
  "banned-values": {
193
205
  readonly default: import("@typespec/compiler").CallableMessage<["detail"]>;
194
206
  };
@@ -241,6 +253,9 @@ export declare const reportDiagnostic: <C extends "banned-source-address" | "ban
241
253
  "banned-factor": {
242
254
  readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
243
255
  };
256
+ "banned-step": {
257
+ readonly default: import("@typespec/compiler").CallableMessage<["value"]>;
258
+ };
244
259
  "banned-values": {
245
260
  readonly default: import("@typespec/compiler").CallableMessage<["detail"]>;
246
261
  };
@@ -274,4 +289,4 @@ export declare const reportDiagnostic: <C extends "banned-source-address" | "ban
274
289
  "missing-decorator": {
275
290
  readonly default: import("@typespec/compiler").CallableMessage<["which"]>;
276
291
  };
277
- }, C, M>) => import("@typespec/compiler").Diagnostic, StateKeys: Record<"values" | "reverse" | "unit" | "id" | "condition" | "write" | "passive" | "poll" | "auth" | "qq" | "zz" | "chain" | "inherit" | "example" | "bcd" | "hex" | "maxBits" | "out" | "divisor" | "constValue", symbol>;
292
+ }, C, M>) => import("@typespec/compiler").Diagnostic, StateKeys: Record<"values" | "reverse" | "unit" | "id" | "condition" | "write" | "passive" | "poll" | "auth" | "qq" | "zz" | "chain" | "inherit" | "example" | "bcd" | "hex" | "maxBits" | "out" | "divisor" | "step" | "constValue", symbol>;
package/dist/src/lib.js CHANGED
@@ -59,6 +59,12 @@ export const $lib = createTypeSpecLibrary({
59
59
  default: paramMessage `Invalid factor value "${"value"}".`,
60
60
  },
61
61
  },
62
+ "banned-step": {
63
+ severity: "error",
64
+ messages: {
65
+ default: paramMessage `Invalid step value "${"value"}".`,
66
+ },
67
+ },
62
68
  "banned-values": {
63
69
  severity: "error",
64
70
  messages: {
@@ -148,6 +154,7 @@ export const $lib = createTypeSpecLibrary({
148
154
  reverse: { description: "reverse representation" },
149
155
  unit: { description: "unit" },
150
156
  divisor: { description: "divisor" },
157
+ step: { description: "step" },
151
158
  values: { description: "known values" },
152
159
  constValue: { description: "const value" },
153
160
  },
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
package/docs.md CHANGED
@@ -87,6 +87,7 @@ Available ruleSets:
87
87
  - [`@base`](#@base)
88
88
  - [`@chain`](#@chain)
89
89
  - [`@condition`](#@condition)
90
+ - [`@conditionExt`](#@conditionext)
90
91
  - [`@constValue`](#@constvalue)
91
92
  - [`@divisor`](#@divisor)
92
93
  - [`@example`](#@example)
@@ -99,6 +100,7 @@ Available ruleSets:
99
100
  - [`@passive`](#@passive)
100
101
  - [`@poll`](#@poll)
101
102
  - [`@qq`](#@qq)
103
+ - [`@step`](#@step)
102
104
  - [`@unit`](#@unit)
103
105
  - [`@values`](#@values)
104
106
  - [`@write`](#@write)
@@ -164,7 +166,8 @@ Define chained message IDs.
164
166
 
165
167
  #### `@condition`
166
168
 
167
- Define the condition(s) for the whole message (if given multiple times, all conditions must be met).
169
+ Define a condition for the whole message by checking an own model or property.
170
+ This decorator and `@conditionExt` can be used multiple times to check that all conditions are met.
168
171
 
169
172
  ```typespec
170
173
  @Ebus.condition(property: ModelProperty | Model, ...values: valueof string[])
@@ -176,10 +179,31 @@ Define the condition(s) for the whole message (if given multiple times, all cond
176
179
 
177
180
  ##### Parameters
178
181
 
179
- | Name | Type | Description |
180
- | -------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
181
- | property | `union ModelProperty \| Model` | the referenced model property, or a model in case of existance check or single property only. |
182
- | values | `valueof model string[]` | the optional alternative values the property needs to match (one of the values must match for the condition to be met). |
182
+ | Name | Type | Description |
183
+ | -------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
184
+ | property | `union ModelProperty \| Model` | the referenced model property, or a model in case of existance check or single property only. |
185
+ | values | `valueof model string[]` | the optional alternative values the property needs to match (one of the values must match for the condition to be met).<br />For numeric values, a single value (e.g. "18"), a value range separated by dash (e.g. "19-22"), or a value range with comparison (e.g. "<=5", ">10") can be used.<br />For string values, the value needs to be put in single quotes (e.g. 'abc'). |
186
+
187
+ #### `@conditionExt`
188
+
189
+ Define a condition for the whole message by checking another target address model or property.
190
+ This decorator and `@condition` can be used multiple times to check that all conditions are met.
191
+
192
+ ```typespec
193
+ @Ebus.conditionExt(property: ModelProperty | Model, zz: valueof Ebus.target, ...values: valueof string[])
194
+ ```
195
+
196
+ ##### Target
197
+
198
+ `union Namespace | Model | UnionVariant`
199
+
200
+ ##### Parameters
201
+
202
+ | Name | Type | Description |
203
+ | -------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
204
+ | property | `union ModelProperty \| Model` | the referenced model property, or a model in case of existance check or single property only. |
205
+ | zz | `valueof scalar Ebus.target` | the target address ZZ. |
206
+ | values | `valueof model string[]` | the optional alternative values the property needs to match (one of the values must match for the condition to be met).<br />For numeric values, a single value (e.g. "18"), a value range separated by dash (e.g. "19-22"), or a value range with comparison (e.g. "<=5", ">10") can be used.<br />For string values, the value needs to be put in single quotes (e.g. 'abc'). |
183
207
 
184
208
  #### `@constValue`
185
209
 
@@ -399,6 +423,24 @@ Define the source address.
399
423
  | ----- | ---------------------------- | ---------------------- |
400
424
  | value | `valueof scalar Ebus.source` | the source address QQ. |
401
425
 
426
+ #### `@step`
427
+
428
+ Define the increment/decrement step value (useful in combination with `@minValue` and/or `@maxValue`).
429
+
430
+ ```typespec
431
+ @Ebus.step(value: valueof numeric)
432
+ ```
433
+
434
+ ##### Target
435
+
436
+ `union numeric | ModelProperty`
437
+
438
+ ##### Parameters
439
+
440
+ | Name | Type | Description |
441
+ | ----- | ------------------------ | ----------------------------------- |
442
+ | value | `valueof scalar numeric` | the increment/decrement step value. |
443
+
402
444
  #### `@unit`
403
445
 
404
446
  Define the unit.
@@ -7,11 +7,26 @@ namespace Ebus;
7
7
 
8
8
 
9
9
  /**
10
- * Define the condition(s) for the whole message (if given multiple times, all conditions must be met).
10
+ * Define a condition for the whole message by checking an own model or property.
11
+ * This decorator and `@conditionExt` can be used multiple times to check that all conditions are met.
11
12
  * @param property the referenced model property, or a model in case of existance check or single property only.
12
13
  * @param values the optional alternative values the property needs to match (one of the values must match for the condition to be met).
14
+ * For numeric values, a single value (e.g. "18"), a value range separated by dash (e.g. "19-22"), or a value range with comparison (e.g. "<=5", ">10") can be used.
15
+ * For string values, the value needs to be put in single quotes (e.g. 'abc').
13
16
  */
14
- extern dec condition(target: Namespace|Model|UnionVariant, property: ModelProperty|Model, ...values: valueof string[]);
17
+ extern dec condition(target: Namespace|Model|UnionVariant, property: ModelProperty|Model,
18
+ ...values: valueof string[]);
19
+
20
+ /**
21
+ * Define a condition for the whole message by checking another target address model or property.
22
+ * This decorator and `@condition` can be used multiple times to check that all conditions are met.
23
+ * @param property the referenced model property, or a model in case of existance check or single property only.
24
+ * @param zz the target address ZZ.
25
+ * @param values the optional alternative values the property needs to match (one of the values must match for the condition to be met).
26
+ * For numeric values, a single value (e.g. "18"), a value range separated by dash (e.g. "19-22"), or a value range with comparison (e.g. "<=5", ">10") can be used.
27
+ * For string values, the value needs to be put in single quotes (e.g. 'abc').
28
+ */
29
+ extern dec conditionExt(target: Namespace|Model|UnionVariant, property: ModelProperty|Model, zz: valueof target, ...values: valueof string[]);
15
30
 
16
31
  /**
17
32
  * Define write direction.
@@ -122,6 +137,12 @@ extern dec divisor(target: numeric|plainTime|ModelProperty, value: valueof numer
122
137
  */
123
138
  extern dec factor(target: numeric|plainTime|ModelProperty, value: valueof numeric);
124
139
 
140
+ /**
141
+ * Define the increment/decrement step value (useful in combination with `@minValue` and/or `@maxValue`).
142
+ * @param value the increment/decrement step value.
143
+ */
144
+ extern dec step(target: numeric|ModelProperty, value: valueof numeric);
145
+
125
146
  /**
126
147
  * Define the known values.
127
148
  * @param values the known values.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ebusd/ebus-typespec",
3
- "version": "0.19.0",
3
+ "version": "0.21.0",
4
4
  "author": "John Baier",
5
5
  "description": "TypeSpec library for defining eBUS messages and emitting to ebusd CSV.",
6
6
  "homepage": "https://github.com/john30/ebus-typespec",
@@ -43,12 +43,12 @@
43
43
  "*.md"
44
44
  ],
45
45
  "peerDependencies": {
46
- "@typespec/compiler": "~0.63.0"
46
+ "@typespec/compiler": "~0.64.0"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@types/js-yaml": "^4.0.9",
50
- "@typespec/compiler": "~0.63.0",
51
- "@typespec/library-linter": "~0.63.0",
50
+ "@typespec/compiler": "~0.64.0",
51
+ "@typespec/library-linter": "~0.64.0",
52
52
  "@typespec/tspd": "latest",
53
53
  "@types/node": "latest",
54
54
  "typedoc": "^0.27.6",