@fboes/aerofly-custom-missions 1.4.0 → 1.6.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  This changelog documents all notable changes to the Aerofly Custom Missions project. Each version entry includes a list of changes, with the most recent version at the top.
4
4
 
5
+ ## [1.5.0]
6
+
7
+ - Added clouds elements getter
8
+ - Fixed spelling error for `configuration`, which changes the API
9
+
5
10
  ## [1.4.0]
6
11
 
7
12
  - Changed testing to standard Node.js testing suite
@@ -76,8 +76,14 @@ export class AeroflyFlight {
76
76
  getCloudElements() {
77
77
  return this.clouds.flatMap((c, index) => (index < 3 ? c.getElements(index) : []));
78
78
  }
79
+ /**
80
+ * @returns {AeroflyConfigurationNode} element containing all clouds
81
+ */
82
+ getCloudsElement() {
83
+ return new AeroflyConfigurationNode("tmsettings_clouds", "clouds").append(...this.getCloudElements());
84
+ }
79
85
  getElement() {
80
- return new AeroflyConfigurationNode("file", "").append(new AeroflyConfigurationNode("tmsettings_sim", "").append(this.aircraft.getElement(), this.flightSetting.getElement(), this.fuelLoadSetting.getElement(), this.timeUtc.getElement(), new AeroflyConfigurationNode("float64", "visibility", this.visibility, `${this.visibility_sm.toPrecision(2)} SM`), this.wind.getElement(), new AeroflyConfigurationNode("tmsettings_clouds", "clouds").append(...this.getCloudElements()), this.navigation.getElement()));
86
+ return new AeroflyConfigurationNode("file", "").append(new AeroflyConfigurationNode("tmsettings_sim", "").append(this.aircraft.getElement(), this.flightSetting.getElement(), this.fuelLoadSetting.getElement(), this.timeUtc.getElement(), new AeroflyConfigurationNode("float64", "visibility", this.visibility, `${this.visibility_sm.toPrecision(2)} SM`), this.wind.getElement(), this.getCloudsElement(), this.navigation.getElement()));
81
87
  }
82
88
  /**
83
89
  * @returns {string} to use in Aerofly FS4's `main.mcf`
@@ -1,7 +1,7 @@
1
1
  import { Convert } from "../node/Convert.js";
2
2
  import { AeroflyConfigurationNode } from "../node/AeroflyConfigurationNode.js";
3
3
  export class AeroflySettingsFlight {
4
- constructor(longitude, latitude, altitude_meter, heading_degree, speed_kts = 0, { gear = 1, throttle = 0, flaps = 0, flighConfiguration = "OnGround", onGround = true, airport = "", runway = "", } = {}) {
4
+ constructor(longitude, latitude, altitude_meter, heading_degree, speed_kts = 0, { gear = 1, throttle = 0, flaps = 0, configuration = "OnGround", onGround = true, airport = "", runway = "", } = {}) {
5
5
  this.longitude = longitude;
6
6
  this.latitude = latitude;
7
7
  this.altitude_meter = altitude_meter;
@@ -10,7 +10,7 @@ export class AeroflySettingsFlight {
10
10
  this.gear = gear;
11
11
  this.throttle = throttle;
12
12
  this.flaps = flaps;
13
- this.flighConfiguration = flighConfiguration;
13
+ this.configuration = configuration;
14
14
  this.onGround = onGround;
15
15
  this.airport = airport;
16
16
  this.runway = runway;
@@ -81,7 +81,7 @@ export class AeroflySettingsFlight {
81
81
  .appendChild("float64", "gear", this.gear)
82
82
  .appendChild("float64", "throttle", this.throttle)
83
83
  .appendChild("float64", "flaps", this.flaps)
84
- .appendChild("flight_configuration", "configuration", this.flighConfiguration)
84
+ .appendChild("flight_configuration", "configuration", this.configuration)
85
85
  .appendChild("bool", "on_ground", this.onGround)
86
86
  .appendChild("string8u", "airport", this.airport)
87
87
  .appendChild("string8u", "runway", this.runway);
@@ -8,7 +8,7 @@ describe("AeroflySettingsFlight", () => {
8
8
  gear: 1,
9
9
  throttle: 0.5,
10
10
  flaps: 0.25,
11
- flighConfiguration: "Keep",
11
+ configuration: "Keep",
12
12
  onGround: false,
13
13
  airport: "KSEA",
14
14
  runway: "16L",
@@ -21,7 +21,7 @@ describe("AeroflySettingsFlight", () => {
21
21
  assert.strictEqual(flight.gear, 1, `Expected gear to be 1, got ${flight.gear}`);
22
22
  assert.strictEqual(flight.throttle, 0.5, `Expected throttle to be 0.5, got ${flight.throttle}`);
23
23
  assert.strictEqual(flight.flaps, 0.25, `Expected flaps to be 0.25, got ${flight.flaps}`);
24
- assert.strictEqual(flight.flighConfiguration, "Keep", `Expected flighConfiguration to be Keep, got ${flight.flighConfiguration}`);
24
+ assert.strictEqual(flight.configuration, "Keep", `Expected configuration to be Keep, got ${flight.configuration}`);
25
25
  assert.strictEqual(flight.onGround, false, `Expected onGround to be false, got ${flight.onGround}`);
26
26
  assert.strictEqual(flight.airport, "KSEA", `Expected airport to be KSEA, got ${flight.airport}`);
27
27
  assert.strictEqual(flight.runway, "16L", `Expected runway to be 16L, got ${flight.runway}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fboes/aerofly-custom-missions",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "Builder for Aerofly FS4 Custom Missions Files",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -144,6 +144,13 @@ export class AeroflyFlight {
144
144
  return this.clouds.flatMap((c: AeroflySettingsCloud, index: number) => (index < 3 ? c.getElements(index) : []));
145
145
  }
146
146
 
147
+ /**
148
+ * @returns {AeroflyConfigurationNode} element containing all clouds
149
+ */
150
+ getCloudsElement(): AeroflyConfigurationNode {
151
+ return new AeroflyConfigurationNode("tmsettings_clouds", "clouds").append(...this.getCloudElements());
152
+ }
153
+
147
154
  getElement(): AeroflyConfigurationNode {
148
155
  return new AeroflyConfigurationNode("file", "").append(
149
156
  new AeroflyConfigurationNode("tmsettings_sim", "").append(
@@ -158,7 +165,7 @@ export class AeroflyFlight {
158
165
  `${this.visibility_sm.toPrecision(2)} SM`,
159
166
  ),
160
167
  this.wind.getElement(),
161
- new AeroflyConfigurationNode("tmsettings_clouds", "clouds").append(...this.getCloudElements()),
168
+ this.getCloudsElement(),
162
169
  this.navigation.getElement(),
163
170
  ),
164
171
  );
@@ -10,7 +10,7 @@ describe("AeroflySettingsFlight", () => {
10
10
  gear: 1,
11
11
  throttle: 0.5,
12
12
  flaps: 0.25,
13
- flighConfiguration: "Keep",
13
+ configuration: "Keep",
14
14
  onGround: false,
15
15
  airport: "KSEA",
16
16
  runway: "16L",
@@ -28,9 +28,9 @@ describe("AeroflySettingsFlight", () => {
28
28
  assert.strictEqual(flight.throttle, 0.5, `Expected throttle to be 0.5, got ${flight.throttle}`);
29
29
  assert.strictEqual(flight.flaps, 0.25, `Expected flaps to be 0.25, got ${flight.flaps}`);
30
30
  assert.strictEqual(
31
- flight.flighConfiguration,
31
+ flight.configuration,
32
32
  "Keep",
33
- `Expected flighConfiguration to be Keep, got ${flight.flighConfiguration}`,
33
+ `Expected configuration to be Keep, got ${flight.configuration}`,
34
34
  );
35
35
  assert.strictEqual(flight.onGround, false, `Expected onGround to be false, got ${flight.onGround}`);
36
36
  assert.strictEqual(flight.airport, "KSEA", `Expected airport to be KSEA, got ${flight.airport}`);
@@ -5,7 +5,7 @@ export class AeroflySettingsFlight {
5
5
  gear: number;
6
6
  throttle: number;
7
7
  flaps: number;
8
- flighConfiguration: "Keep" | "OnGround" | "Cruise";
8
+ configuration: "Keep" | "OnGround" | "Cruise";
9
9
  onGround: boolean;
10
10
  airport: string;
11
11
  runway: string;
@@ -20,7 +20,7 @@ export class AeroflySettingsFlight {
20
20
  gear = 1,
21
21
  throttle = 0,
22
22
  flaps = 0,
23
- flighConfiguration = "OnGround",
23
+ configuration = "OnGround",
24
24
  onGround = true,
25
25
  airport = "",
26
26
  runway = "",
@@ -29,7 +29,7 @@ export class AeroflySettingsFlight {
29
29
  this.gear = gear;
30
30
  this.throttle = throttle;
31
31
  this.flaps = flaps;
32
- this.flighConfiguration = flighConfiguration;
32
+ this.configuration = configuration;
33
33
  this.onGround = onGround;
34
34
  this.airport = airport;
35
35
  this.runway = runway;
@@ -142,7 +142,7 @@ export class AeroflySettingsFlight {
142
142
  .appendChild("float64", "gear", this.gear)
143
143
  .appendChild("float64", "throttle", this.throttle)
144
144
  .appendChild("float64", "flaps", this.flaps)
145
- .appendChild("flight_configuration", "configuration", this.flighConfiguration)
145
+ .appendChild("flight_configuration", "configuration", this.configuration)
146
146
  .appendChild("bool", "on_ground", this.onGround)
147
147
  .appendChild("string8u", "airport", this.airport)
148
148
  .appendChild("string8u", "runway", this.runway);
@@ -90,6 +90,10 @@ export declare class AeroflyFlight {
90
90
  * @returns {AeroflyConfigurationNode[]} cloud elements
91
91
  */
92
92
  getCloudElements(): AeroflyConfigurationNode[];
93
+ /**
94
+ * @returns {AeroflyConfigurationNode} element containing all clouds
95
+ */
96
+ getCloudsElement(): AeroflyConfigurationNode;
93
97
  getElement(): AeroflyConfigurationNode;
94
98
  /**
95
99
  * @returns {string} to use in Aerofly FS4's `main.mcf`
@@ -1 +1 @@
1
- {"version":3,"file":"AeroflyFlight.d.ts","sourceRoot":"","sources":["../../src/dto-flight/AeroflyFlight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,qBAAa,aAAa;IACtB;;OAEG;IACH,QAAQ,EAAE,uBAAuB,CAAC;IAElC;;OAEG;IACH,aAAa,EAAE,qBAAqB,CAAC;IAErC;;OAEG;IACH,eAAe,EAAE,uBAAuB,CAAC;IAEzC;;OAEG;IACH,OAAO,EAAE,cAAc,CAAC;IAExB;;OAEG;IACH,IAAI,EAAE,mBAAmB,CAAC;IAE1B;;;OAGG;IACH,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAE/B;;OAEG;IACH,UAAU,EAAE,uBAAuB,CAAC;IAEpC;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;;;;;;;;;;OAaG;gBAEC,QAAQ,EAAE,uBAAuB,EACjC,aAAa,EAAE,qBAAqB,EACpC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,oBAAoB,EAAE,EAC9B,UAAU,EAAE,uBAAuB,EACnC,EACI,eAA+C,EAC/C,gBAAuB,EACvB,UAAc,EACd,aAAiB,GACpB,GAAE,OAAO,CAAC,aAAa,CAAM;IAmBlC;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,EAEtC;IAED;;;;OAIG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,EAEhC;IAED;;;;;;;;;OASG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAS3C;;OAEG;IACH,gBAAgB,IAAI,wBAAwB,EAAE;IAI9C,UAAU,IAAI,wBAAwB;IAoBtC;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,WAAW,IAAI,MAAM;CAGxB"}
1
+ {"version":3,"file":"AeroflyFlight.d.ts","sourceRoot":"","sources":["../../src/dto-flight/AeroflyFlight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,qBAAa,aAAa;IACtB;;OAEG;IACH,QAAQ,EAAE,uBAAuB,CAAC;IAElC;;OAEG;IACH,aAAa,EAAE,qBAAqB,CAAC;IAErC;;OAEG;IACH,eAAe,EAAE,uBAAuB,CAAC;IAEzC;;OAEG;IACH,OAAO,EAAE,cAAc,CAAC;IAExB;;OAEG;IACH,IAAI,EAAE,mBAAmB,CAAC;IAE1B;;;OAGG;IACH,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAE/B;;OAEG;IACH,UAAU,EAAE,uBAAuB,CAAC;IAEpC;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;;;;;;;;;;OAaG;gBAEC,QAAQ,EAAE,uBAAuB,EACjC,aAAa,EAAE,qBAAqB,EACpC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,oBAAoB,EAAE,EAC9B,UAAU,EAAE,uBAAuB,EACnC,EACI,eAA+C,EAC/C,gBAAuB,EACvB,UAAc,EACd,aAAiB,GACpB,GAAE,OAAO,CAAC,aAAa,CAAM;IAmBlC;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,EAEtC;IAED;;;;OAIG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,EAEhC;IAED;;;;;;;;;OASG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAS3C;;OAEG;IACH,gBAAgB,IAAI,wBAAwB,EAAE;IAI9C;;OAEG;IACH,gBAAgB,IAAI,wBAAwB;IAI5C,UAAU,IAAI,wBAAwB;IAoBtC;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,WAAW,IAAI,MAAM;CAGxB"}
@@ -9,7 +9,7 @@ export declare class AeroflySettingsFlight {
9
9
  gear: number;
10
10
  throttle: number;
11
11
  flaps: number;
12
- flighConfiguration: "Keep" | "OnGround" | "Cruise";
12
+ configuration: "Keep" | "OnGround" | "Cruise";
13
13
  onGround: boolean;
14
14
  airport: string;
15
15
  runway: string;
@@ -19,7 +19,7 @@ export declare class AeroflySettingsFlight {
19
19
  altitude_meter: number,
20
20
  heading_degree: number,
21
21
  speed_kts?: number,
22
- { gear, throttle, flaps, flighConfiguration, onGround, airport, runway }?: Partial<AeroflySettingsFlight>,
22
+ { gear, throttle, flaps, configuration, onGround, airport, runway }?: Partial<AeroflySettingsFlight>,
23
23
  );
24
24
  static createInFeet(
25
25
  longitude: number,
@@ -1 +1 @@
1
- {"version":3,"file":"AeroflySettingsFlight.d.ts","sourceRoot":"","sources":["../../src/dto-flight/AeroflySettingsFlight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAW,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,qBAAa,qBAAqB;IAUnB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM;IACtB,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE,MAAM;IAb5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;gBAGJ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,SAAS,GAAE,MAAU,EAC5B,EACI,IAAQ,EACR,QAAY,EACZ,KAAS,EACT,kBAA+B,EAC/B,QAAe,EACf,OAAY,EACZ,MAAW,GACd,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAW1C,MAAM,CAAC,YAAY,CACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,SAAS,GAAE,MAAU,EACrB,oBAAoB,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC1D,qBAAqB;IAWxB,MAAM,CAAC,iBAAiB,CACpB,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,mBAAmB,EAChC,oBAAoB,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC1D,qBAAqB;IAQxB;;OAEG;IACH,IAAI,QAAQ,IAAI,mBAAmB,CAElC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAKzC;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,mBAAmB,CAIlC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAGzC;IAED,IAAI,WAAW,IAAI,mBAAmB,CAErC;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,mBAAmB,EAE/C;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,EAElC;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAE5B;IAED,UAAU,IAAI,wBAAwB;IAwBtC;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"AeroflySettingsFlight.d.ts","sourceRoot":"","sources":["../../src/dto-flight/AeroflySettingsFlight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAW,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,qBAAa,qBAAqB;IAUnB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM;IACtB,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE,MAAM;IAb5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;gBAGJ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,SAAS,GAAE,MAAU,EAC5B,EACI,IAAQ,EACR,QAAY,EACZ,KAAS,EACT,aAA0B,EAC1B,QAAe,EACf,OAAY,EACZ,MAAW,GACd,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAW1C,MAAM,CAAC,YAAY,CACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,SAAS,GAAE,MAAU,EACrB,oBAAoB,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC1D,qBAAqB;IAWxB,MAAM,CAAC,iBAAiB,CACpB,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,mBAAmB,EAChC,oBAAoB,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC1D,qBAAqB;IAQxB;;OAEG;IACH,IAAI,QAAQ,IAAI,mBAAmB,CAElC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAKzC;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,mBAAmB,CAIlC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAGzC;IAED,IAAI,WAAW,IAAI,mBAAmB,CAErC;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,mBAAmB,EAE/C;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,EAElC;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAE5B;IAED,UAAU,IAAI,wBAAwB;IAwBtC;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}