homebridge-gree-ac 2.1.0-beta.3 → 2.1.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
@@ -1,15 +1,17 @@
1
1
  # Changelog
2
2
 
3
- ## [2.1.0] - 2024-??-??
3
+ ## [2.1.0] - 2024-06-23
4
4
 
5
5
  ### New features
6
6
 
7
- - New encryption protocol added to support latest AC devices (e.g. GREE CS532AE Wifi Modul)
7
+ - New encryption protocol added to support latest AC devices (e.g. GREE CS532AE Wifi Modul, GREE GRJ532-J14 Wifi Modul, GREE GEH12AA-K6DNA1A, GREE GWH14QD-K3NNB4D/I, etc.)
8
+ - New configuration parameter added to force network encryption version
8
9
 
9
10
  ### Fixes
10
11
 
11
12
  - Fixed "error:1C80006B:Provider routines::wrong final block length" error
12
13
  - Fixed incorrect display of current temperature on devices without temperature sensor (on devices without sensor the target temperature is displayed in Home App)
14
+ Some AC firmware versions do not report the measured temperature but the device has a built-in sensor. They are handled as devices without sensor.
13
15
 
14
16
  ## [2.0.2] - 2024-06-04
15
17
 
package/README.md CHANGED
@@ -9,15 +9,15 @@
9
9
 
10
10
  # Homebridge GREE Air Conditioner Platform Plugin
11
11
 
12
- [Homebridge GREE Air Conditioner Platform Plugin](https://github.com/eibenp/homebridge-gree-airconditioner) is a dynamic platform plugin for [Homebridge](https://github.com/homebridge/homebridge) which allows control of GREE Air Conditioner devices from [Apple's Home app](https://www.apple.com/home-app/). (Make GREE Air Conditioner HomeKit compatible.)
12
+ [Homebridge GREE Air Conditioner Platform Plugin](https://github.com/eibenp/homebridge-gree-airconditioner) is a dynamic platform plugin for [Homebridge](https://github.com/homebridge/homebridge) which allows control of GREE Air Conditioner devices from [Apple's Home App](https://www.apple.com/home-app/). (Make GREE Air Conditioner HomeKit compatible.)
13
13
 
14
14
  You can add all of your GREE Air Conditioner devices to the Home App by specifying the network broadcast address, and Homebridge will find all connected devices. Each device appears in the Home App as a Heater Cooler device. It is also possible to add a separate Termperature Sensor (if temperature sensor is supported by the physical device). This allows to define automations (e.g. turn on) based on current temperature in the room. Be careful, if the device does not support internal temperature sensor but is added as a separate accessory, Home App will display the target temperature not the measured one. Child accessory does not appear in Home App if physical sensor is not available in the AC unit.
15
15
 
16
- Quiet / Auto / Powerful mode is supported by the fan speed control. Minimum value turns on Quiet mode. Next value is Auto mode. Maximum value is Powerful mode. All other values between them are exact fan speeds (Low, MediumLow**, Medium, MediumHigh**, High)
16
+ Quiet / Auto / Powerful mode is supported by the fan speed control. Zero means off. Minimum value turns on Quiet mode. Next value is Auto mode. Maximum value is Powerful mode. All other values between them are exact fan speeds (Low, MediumLow**, Medium, MediumHigh**, High)
17
17
 
18
- ** these values are supported only on 5-speed units
18
+ ** these values are supported only on 5-speed models
19
19
 
20
- It is recommended to add all devices to the Homebridge configuration, so that you can control all their parameters. If you don't want to control all of the devices in Home App, then you need to add to the configuration and disable the ones you don't need. Devices are identified by MAC Address (Serial Number). It can be queried using the official [GREE+ mobile app](https://apps.apple.com/us/app/gree/id1167857672). (The app is required to connect the devices to the local WiFi network for the first time.)
20
+ You have to add all devices to the Homebridge configuration, so that you can control all their parameters. If you don't want to control all of the devices in Home App, then you need to add to the configuration and disable the ones you don't need. Devices are identified by MAC Address (Serial Number). It can be queried using the official [GREE+ mobile app](https://apps.apple.com/us/app/gree/id1167857672). (The app is required to connect the devices to the local WiFi network for the first time.)
21
21
 
22
22
  xFan function is also supported, but it works automatically if enabled in Homebridge configuration. If xFan is enabled for the device, it is automatically turned on when you select a supported operating mode in Home App. If xFan is disabled, the Home App will not modify its actual setting in any case.
23
23
 
@@ -38,21 +38,16 @@ It is highly recommended to use static IP addresses for connected devices. Using
38
38
 
39
39
  ## Supported devices
40
40
 
41
- * GREE Air Conditioners with WiFi support (hardware version v1.x.x)
41
+ * GREE Air Conditioners with WiFi support (hardware version v1.x.x and v2.x.x)
42
42
  * May work with other GREE compatible AC units (e.g. Sinclair)
43
43
  * Successfully tested with Sinclair SIH-13BITW
44
- > _*** Not all GREE devices are supported ***_
45
- >
46
- > There are some newer GREE devices which use a different network protocol (e.g. hardware version v2.0.0 devices). They are not supported. Known unsupported devices:
47
- > * GREE GRJ532-J14 Wifi Modul
48
- > * GREE CS532AE Wifi Modul
49
- > * GREE GWH14QD-K3NNB4D/I
50
- > * GREE GEH12AA-K6DNA1A
51
- >
44
+
52
45
  > If you get _"error:1C80006B:Provider routines::wrong final block length"_ error message then your device is not supported.
53
46
  >
54
47
  > If you get _"Device not bound:..."_ warning message then your device is not supported.
55
48
 
49
+ By default this plugin tries to auto detect the network protocol encryption version. If not the right version is selected there can get errors and the AC device will not correctly work. It is possible to force a network protocol encryption version in configuration file. If auto detection does not work then it is recommended to try all possible values to check if the device is compatible or not.
50
+
56
51
  ## Known limitations
57
52
 
58
53
  This plugin was designed to support the Home App's Heater Cooler functionality using GREE Air Conditioners. Some special features of GREE AC's are not supported natively by Apple and also dismiss support in this plugin.
@@ -66,7 +61,7 @@ This plugin was designed to support the Home App's Heater Cooler functionality u
66
61
  * There is no way to get current heating-cooling state from the AC unit in auto mode, so displayed state in the Home App is based on temperature measurement, but internal sensor is not precise enough to always display the correct state.
67
62
  * Cooling / Heating temperature threshold limits (minimum and maximum values) can only be set in active cooling / heating mode. So the gauge in Home App may show invalid minimum and maximum values for the first use of cooling and heating modes. If so please restart Home App. Next time the correct values will be displayed.
68
63
  * Homebridge and AC unit on different subnets is a not supported configuration.
69
- * Devices without a built-in temperature sensor display the target temperature as current temperature not the measured one.
64
+ * Devices without a built-in temperature sensor display the target temperature as current temperature not the measured one. (Some AC firmware versions do not report the measured temperature but the unit has a built-in sensor. They are handled by the plugin as devices without a sensor.)
70
65
 
71
66
  ## Installation instructions
72
67
 
@@ -107,13 +102,14 @@ _Only the relevant part of the configuration file is displayed:_
107
102
  "name": "Living room AC",
108
103
  "model": "Pulse 3.2kW GWH12AGB-K6DNA1A/I",
109
104
  "speedSteps": 5,
105
+ "encryptionVersion": 0,
110
106
  "statusUpdateInterval": 10,
111
107
  "sensorOffset": 40,
112
108
  "minimumTargetTemperature": 16,
113
109
  "maximumTargetTemperature": 30,
114
110
  "xFanEnabled": true,
115
111
  "temperatureSensor": "disabled",
116
- "overrideDefaultVerticalSwing": 2,
112
+ "overrideDefaultVerticalSwing": 0,
117
113
  "defaultVerticalSwing": 0,
118
114
  "disabled": false
119
115
  }
@@ -132,10 +128,11 @@ _Only the relevant part of the configuration file is displayed:_
132
128
  * name - custom name of the device (optional)
133
129
  * model - model name, information only (optional)
134
130
  * speedSteps - fan speed steps of the unit (valid values are: 3 and 5)
131
+ * encryptionVersion - Auto (0) is fine for most AC units. If auto does not work then you can force v1 (1) or v2 (2) encryption version to use in network communication
135
132
  * statusUpdateInterval - device status will be refreshed based on this interval (in seconds)
136
- * sensorOffset - device temperature sensor offset value for current temperature calibration (default is 40 °C, must be specified in Degrees Celsius)
137
- * minimumTargetTemperature - minimum target temperature accepted by the device (default is 16 °C, must be specified in Degrees Celsius, valid values: 16-30)
138
- * maximumTargetTemperature - maximum target temperature accepted by the device (default is 30 °C, must be specified in Degrees Celsius, valid values: 16-30)
133
+ * sensorOffset - device temperature sensor offset value for current temperature calibration (default is 40 °C, must be specified in °C)
134
+ * minimumTargetTemperature - minimum target temperature accepted by the device (default is 16 °C, must be specified in °C, valid values: 16-30)
135
+ * maximumTargetTemperature - maximum target temperature accepted by the device (default is 30 °C, must be specified in °C, valid values: 16-30)
139
136
  * xFanEnabled - automatically turn on xFan functionality in supported device modes (xFan actual setting is not modified by the Home App if disabled)
140
137
  * temperatureSensor - control additional temperature sensor accessory in Home App (disabled = do not add to Home App / child = add as a child accessory / separate = add as a separate (independent) accessory)
141
138
  * overrideDefaultVerticalSwing - by default this plugin does not change the vertical swing position of the AC unit but some devices do not keep the original vertical position set by the remote control if controlled from Homebridge and return back to device default position; this setting allows to override the default position -> if AC unit is set to default vertical swing position Homebridge modifies it to a predefined position (set by defaultVerticalSwing) (Never (0) = turn off override, let device use default / After power on (1) = override default position on each power on / After power on and swing disable (2) = override default position on each power on and each time when swing is switched to disabled)
@@ -179,23 +176,38 @@ Some settings are initialized by Home App only once (when enabling the device).
179
176
  * name
180
177
  * model
181
178
  * speedSteps
182
- * minimumTargetTemperature
183
- * maximumTargetTemperature
179
+
180
+ All other settings are applied when starting up Homebridge. You have to restart Homebridge to apply changes in configuration settings.
184
181
 
185
182
  ### Temperature display units
186
183
 
187
- Home App allows to set the device temperature display units but it is independent from the temperature units shown in Home App. Home App always displays temperature values as specified by iOS/MacOS (can be changed in Preferences / Regional settings section). Display unit conversion is made by the Home App device.
184
+ Home App allows to set the device temperature display units but it is independent from the temperature units shown in Home App. Home App always displays temperature values as specified by iOS/MacOS (can be changed in Preferences / Regional settings section). Display unit conversion is made by the Home App device (e.g. iPhone).
188
185
 
189
186
  ### Temperature measurement
190
187
 
191
- Temperature measurement is not perfect if using the built-in sensor. It is highly affected by current operation and can differ from actual temperature of other places in the room. It is recommended to use a sperarate temperature sensor and place it not too close to the AC unit.
188
+ Temperature measurement is not perfect if using the built-in sensor. It is highly affected by current operation and can differ from actual temperature of other places in the room. It is recommended to use a sperarate temperature sensor and place it not too close to the AC unit if you plan to set up automations based on temperature values.
189
+
190
+ ### Invalid room temperature
191
+
192
+ Some AC units have a built-in temperature sensor but the actual room temperature is not displayed in Home App. This is an AC firmware problem. Older firware versions do not report temperature values at all and there are some firmware versions which report a fixed value (e.g. zero) instead of the measured one. This plugin replaces the missing value and the fixed zero value by the desired target temperature. To get the correct measured temperature please try to upgrade or downgrade the AC firmware.
193
+
194
+ ### Fan speed
195
+
196
+ Fan speed is adjustable on the Heater Cooler's settings page in Home App. There is a gear icon in the buttom right corner of the Heater Cooler page if it was opened from the Home App (gear icon is missing if opened from control center or home view of control center). This gear icon can be used to access settings (and fan speed).
197
+
198
+ ![Home App Heater Cooler settings](./ha_settings.jpg)
199
+
200
+ Slider description: Zero means off. Minimum value turns on Quiet mode. Next value is Auto mode. Maximum value is Powerful mode. All other values between them are exact fan speeds (Low, MediumLow**, Medium, MediumHigh**, High)
201
+
202
+ ** these values are supported only on 5-speed models
192
203
 
193
204
  ## Refs & Credits
194
205
 
195
- Special thanks to [tomikaa87](https://github.com/tomikaa87) and [kongkx](https://github.com/kongkx) for GREE network protocol information and code samples.
206
+ Special thanks to [tomikaa87](https://github.com/tomikaa87) and [kongkx](https://github.com/kongkx) for GREE network protocol information and code samples. Thank you [mateuszm7](https://github.com/mateuszm7) and [zivanek](https://github.com/zivanek) for helping to implement the version 2 network protocol.
196
207
 
197
208
  - [homebridge-gree-air-conditioner](https://github.com/kongkx/homebridge-gree-air-conditioner)
198
209
  - [gree-remote](https://github.com/tomikaa87/gree-remote)
199
210
  - [homebridge-gree-heatercooler](https://github.com/ddenisyuk/homebridge-gree-heatercooler)
200
211
  - [Homebridge API](https://developers.homebridge.io/)
201
212
  - [Homebridge Platform Plugin Template](https://github.com/homebridge/homebridge-plugin-template)
213
+ - [HomeAssistant-GreeClimateComponent](https://github.com/RobHofmann/HomeAssistant-GreeClimateComponent)
@@ -193,6 +193,31 @@
193
193
  ]
194
194
  }
195
195
  ]
196
+ },
197
+ "encryptionVersion" : {
198
+ "type": "integer",
199
+ "required": true,
200
+ "default": 0,
201
+ "oneOf": [
202
+ {
203
+ "title": "Auto",
204
+ "enum": [
205
+ 0
206
+ ]
207
+ },
208
+ {
209
+ "title": "v1",
210
+ "enum": [
211
+ 1
212
+ ]
213
+ },
214
+ {
215
+ "title": "v2",
216
+ "enum": [
217
+ 2
218
+ ]
219
+ }
220
+ ]
196
221
  }
197
222
  }
198
223
  }
@@ -293,10 +318,10 @@
293
318
  }
294
319
  },
295
320
  {
296
- "key": "devices[].sensorOffset",
321
+ "key": "devices[].encryptionVersion",
297
322
  "flex": "1 1 50%",
298
- "title": "Temperature offset:",
299
- "description": "Temperature sensor calibration (in Degrees Celsius)",
323
+ "title": "Network protocol encryption version:",
324
+ "description": "Leave this on Auto. If Auto doesn't work then set to the desired version.",
300
325
  "condition": {
301
326
  "functionBody": "return (model.devices && model.devices[arrayIndices] && model.devices[arrayIndices].mac && /^[a-f0-9]{12}$/.test(model.devices[arrayIndices].mac) && model.devices[arrayIndices].disabled !== true);"
302
327
  }
@@ -305,7 +330,7 @@
305
330
  "key": "devices[].minimumTargetTemperature",
306
331
  "flex": "1 1 50%",
307
332
  "title": "Minimum target temperature:",
308
- "description": "Minimum target temperature (in Degrees Celsius)",
333
+ "description": "Minimum target temperature (in )",
309
334
  "condition": {
310
335
  "functionBody": "return (model.devices && model.devices[arrayIndices] && model.devices[arrayIndices].mac && /^[a-f0-9]{12}$/.test(model.devices[arrayIndices].mac) && model.devices[arrayIndices].disabled !== true);"
311
336
  }
@@ -314,7 +339,16 @@
314
339
  "key": "devices[].maximumTargetTemperature",
315
340
  "flex": "1 1 50%",
316
341
  "title": "Maximum target temperature:",
317
- "description": "Maximum target temperature (in Degrees Celsius)",
342
+ "description": "Maximum target temperature (in )",
343
+ "condition": {
344
+ "functionBody": "return (model.devices && model.devices[arrayIndices] && model.devices[arrayIndices].mac && /^[a-f0-9]{12}$/.test(model.devices[arrayIndices].mac) && model.devices[arrayIndices].disabled !== true);"
345
+ }
346
+ },
347
+ {
348
+ "key": "devices[].sensorOffset",
349
+ "flex": "1 1 50%",
350
+ "title": "Temperature offset:",
351
+ "description": "Temperature sensor calibration (in ℃)",
318
352
  "condition": {
319
353
  "functionBody": "return (model.devices && model.devices[arrayIndices] && model.devices[arrayIndices].mac && /^[a-f0-9]{12}$/.test(model.devices[arrayIndices].mac) && model.devices[arrayIndices].disabled !== true);"
320
354
  }
@@ -337,6 +371,12 @@
337
371
  "functionBody": "return (model.devices && model.devices[arrayIndices] && model.devices[arrayIndices].mac && /^[a-f0-9]{12}$/.test(model.devices[arrayIndices].mac) && model.devices[arrayIndices].disabled !== true);"
338
372
  }
339
373
  },
374
+ {
375
+ "flex": "1 1 50%",
376
+ "condition": {
377
+ "functionBody": "return (model.devices && model.devices[arrayIndices] && model.devices[arrayIndices].mac && /^[a-f0-9]{12}$/.test(model.devices[arrayIndices].mac) && model.devices[arrayIndices].disabled !== true);"
378
+ }
379
+ },
340
380
  {
341
381
  "key": "devices[].overrideDefaultVerticalSwing",
342
382
  "flex": "1 1 50%",
@@ -22,36 +22,6 @@ declare const commands: {
22
22
  temperature: {
23
23
  code: string;
24
24
  };
25
- temperature0: {
26
- code: string;
27
- };
28
- temperature1: {
29
- code: string;
30
- };
31
- temperature2: {
32
- code: string;
33
- };
34
- temperature_0: {
35
- code: string;
36
- };
37
- temperature_1: {
38
- code: string;
39
- };
40
- temperature_2: {
41
- code: string;
42
- };
43
- temperaturein: {
44
- code: string;
45
- };
46
- temperatureout: {
47
- code: string;
48
- };
49
- temperature_in: {
50
- code: string;
51
- };
52
- temperature_out: {
53
- code: string;
54
- };
55
25
  units: {
56
26
  code: string;
57
27
  value: {
@@ -135,6 +105,10 @@ declare const commands: {
135
105
  };
136
106
  energySaving: {
137
107
  code: string;
108
+ value: {
109
+ off: number;
110
+ on: number;
111
+ };
138
112
  };
139
113
  sleepMode: {
140
114
  code: string;
@@ -143,9 +117,37 @@ declare const commands: {
143
117
  on: number;
144
118
  };
145
119
  };
120
+ sleep: {
121
+ code: string;
122
+ value: {
123
+ off: number;
124
+ on: number;
125
+ };
126
+ };
146
127
  time: {
147
128
  code: string;
148
129
  };
130
+ air: {
131
+ code: string;
132
+ value: {
133
+ off: number;
134
+ on: number;
135
+ };
136
+ };
137
+ health: {
138
+ code: string;
139
+ value: {
140
+ off: number;
141
+ on: number;
142
+ };
143
+ };
144
+ nofrost: {
145
+ code: string;
146
+ value: {
147
+ off: number;
148
+ on: number;
149
+ };
150
+ };
149
151
  };
150
152
  export default commands;
151
153
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsJb,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuJb,CAAC;AAEF,eAAe,QAAQ,CAAC"}
package/dist/commands.js CHANGED
@@ -24,38 +24,6 @@ const commands = {
24
24
  temperature: {
25
25
  code: 'TemSen',
26
26
  },
27
- // for testing only begin
28
- temperature0: {
29
- code: 'TemSen0',
30
- },
31
- temperature1: {
32
- code: 'TemSen1',
33
- },
34
- temperature2: {
35
- code: 'TemSen2',
36
- },
37
- temperature_0: {
38
- code: 'TemSen_0',
39
- },
40
- temperature_1: {
41
- code: 'TemSen_1',
42
- },
43
- temperature_2: {
44
- code: 'TemSen_2',
45
- },
46
- temperaturein: {
47
- code: 'TemSenIn',
48
- },
49
- temperatureout: {
50
- code: 'TemSenOut',
51
- },
52
- temperature_in: {
53
- code: 'TemSen_In',
54
- },
55
- temperature_out: {
56
- code: 'TemSen_Out',
57
- },
58
- // for testing only end
59
27
  units: {
60
28
  code: 'TemUn',
61
29
  value: {
@@ -139,7 +107,12 @@ const commands = {
139
107
  },
140
108
  energySaving: {
141
109
  code: 'SvSt',
110
+ value: {
111
+ off: 0,
112
+ on: 1,
113
+ },
142
114
  },
115
+ // sleepMode and sleep should be syncronized (to turn on set both to 1 / to turn off set both to 0)
143
116
  sleepMode: {
144
117
  code: 'SwhSlp',
145
118
  value: {
@@ -147,9 +120,37 @@ const commands = {
147
120
  on: 1,
148
121
  },
149
122
  },
123
+ sleep: {
124
+ code: 'SlpMod',
125
+ value: {
126
+ off: 0,
127
+ on: 1,
128
+ },
129
+ },
150
130
  time: {
151
131
  code: 'time',
152
132
  },
133
+ air: {
134
+ code: 'Air',
135
+ value: {
136
+ off: 0,
137
+ on: 1,
138
+ },
139
+ },
140
+ health: {
141
+ code: 'Health',
142
+ value: {
143
+ off: 0,
144
+ on: 1,
145
+ },
146
+ },
147
+ nofrost: {
148
+ code: 'StHt',
149
+ value: {
150
+ off: 0,
151
+ on: 1,
152
+ },
153
+ },
153
154
  };
154
155
  exports.default = commands;
155
156
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
package/dist/crypto.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { Logger } from 'homebridge';
2
1
  declare const _default: {
3
2
  encrypt_v1: (data: any, key?: string) => string;
4
3
  decrypt_v1: (data: string, key?: string) => any;
@@ -6,7 +5,7 @@ declare const _default: {
6
5
  pack: string;
7
6
  tag: string;
8
7
  };
9
- decrypt_v2: (data: string, tag: string, log: Logger, devicelabel: string, key?: string) => any;
8
+ decrypt_v2: (data: string, tag: string, key?: string) => any;
10
9
  };
11
10
  export default _default;
12
11
  //# sourceMappingURL=crypto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;;6CAQM,MAAM;uBAK5B,MAAM;;;;;uBAWN,MAAM,OAAM,MAAM,OAAM,MAAM,eAAc,MAAM;;AAjBtE,wBAkCE"}
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":";6CAQ0C,MAAM;uBAK5B,MAAM;;;;;uBAWN,MAAM,OAAM,MAAM;;AAjBtC,wBAsBE"}
package/dist/crypto.js CHANGED
@@ -25,24 +25,10 @@ exports.default = {
25
25
  const tag = cipher.getAuthTag().toString('base64');
26
26
  return { pack, tag };
27
27
  },
28
- decrypt_v2: (data, tag, log, devicelabel, key = genericKey_v2) => {
28
+ decrypt_v2: (data, tag, key = genericKey_v2) => {
29
29
  const tagbuffer = Buffer.from(tag, 'base64');
30
30
  const decipher = crypto_1.default.createDecipheriv('aes-128-gcm', key, iv_v2).setAuthTag(tagbuffer).setAAD(aad_v2);
31
- let decrypted = decipher.update(data, 'base64', 'utf8');
32
- try {
33
- decrypted += decipher.final('utf8');
34
- }
35
- catch (err) {
36
- //do not throw error on authenetication problem
37
- const errmsg = err.message;
38
- if (errmsg.includes('Unsupported state or unable to authenticate data')) {
39
- log.debug((devicelabel !== '' ? '[' + devicelabel + '] ' : '') + 'decrypt_v2 Error: ', err);
40
- }
41
- else {
42
- throw (err);
43
- }
44
- }
45
- return JSON.parse(decrypted);
31
+ return JSON.parse(decipher.update(data, 'base64', 'utf8') + decipher.final('utf8'));
46
32
  },
47
33
  };
48
34
  //# sourceMappingURL=crypto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAE5B,MAAM,aAAa,GAAG,kBAAkB,CAAC;AACzC,MAAM,aAAa,GAAG,kBAAkB,CAAC;AACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACpG,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAE5C,kBAAe;IACb,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,aAAa,EAAS,EAAE;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,gBAAM,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IACD,UAAU,EAAE,CAAC,IAAW,EAAE,GAAG,GAAG,aAAa,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,gBAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,aAAa,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,gBAAM,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnD,OAAO,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC;IACrB,CAAC;IACD,UAAU,EAAE,CAAC,IAAW,EAAE,GAAU,EAAE,GAAG,GAAG,aAAa,EAAE,EAAE;QAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,gBAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzG,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAGxI,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAIzD;;;;GAIG;AACH,qBAAa,cAAe,YAAW,qBAAqB;aAaxC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAd1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,SAAS,CAAS;gBAGR,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAqB1B;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAgB/C;;;OAGG;IACH,eAAe;IAyCf,aAAa,iCA8BX;IAEF,cAAc,sDA6FZ;IAEF,aAAa;CASd"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAGxI,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAIzD;;;;GAIG;AACH,qBAAa,cAAe,YAAW,qBAAqB;aAaxC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAd1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,SAAS,CAAS;gBAGR,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAqB1B;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAgB/C;;;OAGG;IACH,eAAe;IAyCf,aAAa,iCAqCX;IAEF,cAAc,sDAoGZ;IAEF,aAAa;CASd"}
package/dist/platform.js CHANGED
@@ -23,36 +23,44 @@ class GreeACPlatform {
23
23
  this.Service = this.api.hap.Service;
24
24
  this.Characteristic = this.api.hap.Characteristic;
25
25
  this.handleMessage = (msg, rinfo) => {
26
- this.log.debug('handleMessage', msg.toString());
26
+ this.log.debug('handleMessage -> %s', msg.toString());
27
27
  try {
28
28
  const message = JSON.parse(msg.toString());
29
29
  if (message.i !== 1 || message.t !== 'pack') {
30
30
  this.log.debug('handleMessage - unknown response: %j', message);
31
31
  return;
32
32
  }
33
- let pack;
34
- let encryptionversion;
33
+ let pack, encryptionVersion;
35
34
  if (message.tag === undefined) {
35
+ this.log.debug('handleMessage -> Encryption version: 1');
36
36
  pack = crypto_1.default.decrypt_v1(message.pack);
37
- encryptionversion = 1;
37
+ encryptionVersion = 1;
38
38
  }
39
39
  else {
40
- pack = crypto_1.default.decrypt_v2(message.pack, message.tag, this.log, '');
41
- encryptionversion = 2;
40
+ this.log.debug('handleMessage -> Encryption version: 2');
41
+ pack = crypto_1.default.decrypt_v2(message.pack, message.tag);
42
+ encryptionVersion = 2;
43
+ }
44
+ this.log.debug('handleMessage - Package -> %j', pack);
45
+ if (encryptionVersion === 1 && pack.t === 'dev' && pack.ver && pack.ver.toString().startsWith('V2.')) {
46
+ // first V2 version responded to scan command with V1 encryption but binding requires V2 encryption
47
+ encryptionVersion = 2;
42
48
  }
43
- this.log.debug('handleMessage - Package -> %j , encryptionversion -> %i', pack, encryptionversion);
44
49
  if (pack.t === 'dev') {
45
50
  this.registerDevice({
46
51
  ...pack,
47
52
  address: rinfo.address,
48
53
  port: rinfo.port,
49
- encryptionversion,
54
+ encryptionVersion,
50
55
  });
51
56
  }
57
+ else {
58
+ this.log.debug('handleMessage - unknown package: %j', pack);
59
+ }
52
60
  }
53
61
  catch (err) {
54
62
  const msg = err.message;
55
- this.log.error('handleMessage', msg);
63
+ this.log.error('handleMessage - Error:', msg);
56
64
  }
57
65
  };
58
66
  this.registerDevice = (deviceInfo) => {
@@ -70,23 +78,30 @@ class GreeACPlatform {
70
78
  ...(devcfg.maximumTargetTemperature && (devcfg.maximumTargetTemperature < settings_1.DEFAULT_DEVICE_CONFIG.minimumTargetTemperature ||
71
79
  devcfg.maximumTargetTemperature > settings_1.DEFAULT_DEVICE_CONFIG.maximumTargetTemperature) ?
72
80
  { maximumTargetTemperature: settings_1.DEFAULT_DEVICE_CONFIG.maximumTargetTemperature } : {}),
73
- ...((devcfg.defaultVerticalSwing && [commands_1.default.swingVertical.value.default, commands_1.default.swingVertical.value.fixedHighest,
81
+ ...((devcfg.defaultVerticalSwing && ![commands_1.default.swingVertical.value.default, commands_1.default.swingVertical.value.fixedHighest,
74
82
  commands_1.default.swingVertical.value.fixedHigher, commands_1.default.swingVertical.value.fixedMiddle, commands_1.default.swingVertical.value.fixedLower,
75
83
  commands_1.default.swingVertical.value.fixedLowest].includes(devcfg.defaultVerticalSwing)) ?
76
- { defaultVerticalSwing: devcfg.defaultVerticalSwing } : {}),
77
- ...((devcfg.overrideDefaultVerticalSwing && Object.entries(settings_1.OVERRIDE_DEFAULT_SWING).includes(devcfg.overrideDefaultVerticalSwing)) ?
78
- { overrideDefaultVerticalSwing: devcfg.overrideDefaultVerticalSwing } : {}),
84
+ { defaultVerticalSwing: settings_1.DEFAULT_DEVICE_CONFIG.defaultVerticalSwing } : {}),
85
+ ...((devcfg.overrideDefaultVerticalSwing && !Object.values(settings_1.OVERRIDE_DEFAULT_SWING).includes(devcfg.overrideDefaultVerticalSwing)) ?
86
+ { overrideDefaultVerticalSwing: settings_1.DEFAULT_DEVICE_CONFIG.overrideDefaultVerticalSwing } : {}),
87
+ ...((devcfg.encryptionVersion && !Object.values(settings_1.ENCRYPTION_VERSION).includes(devcfg.encryptionVersion)) ?
88
+ { encryptionVersion: settings_1.DEFAULT_DEVICE_CONFIG.encryptionVersion } : {}),
79
89
  };
80
90
  Object.entries(settings_1.DEFAULT_DEVICE_CONFIG).forEach(([key, value]) => {
81
91
  if (deviceConfig[key] === undefined) {
82
92
  deviceConfig[key] = value;
83
93
  }
84
94
  });
95
+ // force encryption version if set in config
96
+ if (deviceConfig.encryptionVersion !== settings_1.ENCRYPTION_VERSION.auto) {
97
+ deviceInfo.encryptionVersion = deviceConfig.encryptionVersion;
98
+ this.log.debug(`Accessory ${deviceInfo.mac} encryption version forced:`, deviceInfo.encryptionVersion);
99
+ }
85
100
  let accessory = this.devices[deviceInfo.mac];
86
101
  let accessory_ts = this.devices[deviceInfo.mac + '_ts'];
87
102
  if ((deviceConfig === null || deviceConfig === void 0 ? void 0 : deviceConfig.disabled) || !/^[a-f0-9]{12}$/.test(deviceConfig.mac)) {
88
103
  if (!this.skippedDevices[deviceInfo.mac]) {
89
- this.log.info(`accessory ${deviceInfo.mac} skipped`);
104
+ this.log.info(`Accessory ${deviceInfo.mac} skipped`);
90
105
  this.skippedDevices[deviceInfo.mac] = true;
91
106
  }
92
107
  if (accessory) {
@@ -227,7 +242,7 @@ class GreeACPlatform {
227
242
  this.socket.send(message, 0, message.length, settings_1.UDP_SCAN_PORT, this.config.scanAddress, (error) => {
228
243
  this.log.debug(`Broadcast '${message}' ${this.config.scanAddress}:${settings_1.UDP_SCAN_PORT}`);
229
244
  if (error) {
230
- this.log.error('broadcastScan', error.message);
245
+ this.log.error('broadcastScan - Error:', error.message);
231
246
  }
232
247
  });
233
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"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"}
@@ -24,20 +24,27 @@ class GreeAirConditioner {
24
24
  // device communication functions
25
25
  this.handleMessage = (msg, rinfo) => {
26
26
  if (this.accessory.context.device.address === rinfo.address) {
27
+ this.platform.log.debug(`[${this.getDeviceLabel()}] handleMessage -> %s`, msg.toString());
28
+ this.platform.log.debug(`[${this.getDeviceLabel()}] handleMessage -> Encryption version: %i`, this.accessory.context.device.encryptionVersion);
27
29
  const message = JSON.parse(msg.toString());
28
- this.platform.log.debug(`[${this.getDeviceLabel()}] handleMessage -> %j`, message);
30
+ if (!message.pack) {
31
+ this.platform.log.debug(`[${this.getDeviceLabel()}] handleMessage - Unknown message: %j`, message);
32
+ this.platform.log.warn(`[${this.getDeviceLabel()}] Warning: handleMessage - Unknown response from device`);
33
+ return;
34
+ }
29
35
  let pack;
30
- if (this.accessory.context.device.encryptionversion === 1) {
36
+ if (this.accessory.context.device.encryptionVersion === 1) {
31
37
  pack = crypto_1.default.decrypt_v1(message.pack, message.i === 1 ? undefined : this.key);
32
38
  }
33
- else if (this.accessory.context.device.encryptionversion === 2 && message.tag !== undefined) {
34
- pack = crypto_1.default.decrypt_v2(message.pack, message.tag, this.platform.log, this.getDeviceLabel(), message.i === 1 ? undefined : this.key);
39
+ else if (this.accessory.context.device.encryptionVersion === 2 && message.tag !== undefined) {
40
+ pack = crypto_1.default.decrypt_v2(message.pack, message.tag, message.i === 1 ? undefined : this.key);
35
41
  }
36
42
  else {
37
43
  this.platform.log.debug(`[${this.getDeviceLabel()}] handleMessage - Unknown message: %j`, message);
44
+ this.platform.log.warn(`[${this.getDeviceLabel()}] Warning: handleMessage - Unknown response from device`);
38
45
  return;
39
46
  }
40
- this.platform.log.debug(`[${this.getDeviceLabel()}] handleMessage - Package -> %j , encryptionversion -> %i`, pack, this.accessory.context.device.encryptionversion);
47
+ this.platform.log.debug(`[${this.getDeviceLabel()}] handleMessage - Package -> %j`, pack);
41
48
  switch (pack.t) {
42
49
  case 'bindok': // package type is binding confirmation
43
50
  this.platform.log.debug(`[${this.getDeviceLabel()}] Device binding`);
@@ -55,7 +62,7 @@ class GreeAirConditioner {
55
62
  case 'dat': // package type is device status
56
63
  if (this.bound) {
57
64
  pack.cols.forEach((col, i) => {
58
- if (!(col === commands_1.default.temperature.code && i === 0)) { // temperature value 0 should be ignored (means: no sensor)
65
+ if (!(col === commands_1.default.temperature.code && i === 0)) { // temperature value 0 should be ignored (means: no sensor data)
59
66
  this.status[col] = pack.dat[i];
60
67
  }
61
68
  });
@@ -89,6 +96,10 @@ class GreeAirConditioner {
89
96
  }
90
97
  }
91
98
  break;
99
+ default:
100
+ this.platform.log.debug(`[${this.getDeviceLabel()}] handleMessage - Unknown message: %j`, message);
101
+ this.platform.log.warn(`[${this.getDeviceLabel()}] Warning: handleMessage - Unknown response from device`);
102
+ break;
92
103
  }
93
104
  }
94
105
  };
@@ -176,7 +187,7 @@ class GreeAirConditioner {
176
187
  this.bound = false;
177
188
  this.socket = dgram_1.default.createSocket({ type: 'udp4', reuseAddr: true });
178
189
  this.socket.on('error', (err) => {
179
- this.platform.log.error(`[${this.getDeviceLabel()}] Network`, err.message);
190
+ this.platform.log.error(`[${this.getDeviceLabel()}] Network - Error:`, err.message);
180
191
  });
181
192
  this.socket.on('message', this.handleMessage);
182
193
  this.socket.bind(this.port + parseInt(this.accessory.context.device.address.split('.')[3]) + 1, '0.0.0.0', () => {
@@ -892,20 +903,19 @@ class GreeAirConditioner {
892
903
  }
893
904
  sendMessage(message) {
894
905
  this.platform.log.debug(`[${this.getDeviceLabel()}] sendMessage - Package -> %j`, message);
895
- let pack;
896
- let tag;
897
- if (this.accessory.context.device.encryptionversion === 1) {
906
+ this.platform.log.debug(`[${this.getDeviceLabel()}] sendMessage -> Encryption version: %i`, this.accessory.context.device.encryptionVersion);
907
+ let pack, tag;
908
+ if (this.accessory.context.device.encryptionVersion === 1) {
898
909
  pack = crypto_1.default.encrypt_v1(message, this.key);
899
910
  tag = '';
900
- this.platform.log.debug(`[${this.getDeviceLabel()}] sendMessage - v1 - pack -> %s`, pack);
901
911
  }
902
- else if (this.accessory.context.device.encryptionversion === 2) {
912
+ else if (this.accessory.context.device.encryptionVersion === 2) {
903
913
  const encrypted = crypto_1.default.encrypt_v2(message, this.key);
904
914
  pack = encrypted.pack;
905
915
  tag = encrypted.tag;
906
- this.platform.log.debug(`[${this.getDeviceLabel()}] sendMessage - v2 - pack -> %s , tag -> %s`, pack, tag);
907
916
  }
908
917
  else {
918
+ this.platform.log.warn(`[${this.getDeviceLabel()}] Warning: sendMessage -> Unsupported encryption version`);
909
919
  return;
910
920
  }
911
921
  const payload = (tag === '') ? {
@@ -930,7 +940,7 @@ class GreeAirConditioner {
930
940
  this.socket.send(msg, this.accessory.context.device.port, this.accessory.context.device.address);
931
941
  }
932
942
  catch (err) {
933
- this.platform.log.error(`[${this.getDeviceLabel()}] sendMessage`, err.message);
943
+ this.platform.log.error(`[${this.getDeviceLabel()}] sendMessage - Error:`, err.message);
934
944
  }
935
945
  }
936
946
  sendBindRequest() {
@@ -1 +1 @@
1
- {"version":3,"file":"platformAccessory.js","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAI1B,yCAAiH;AAEjH,sDAA8B;AAC9B,0DAAkC;AAElC;;;;GAIG;AACH,MAAa,kBAAkB;IAU7B,YACmB,QAAwB,EACxB,SAA4B,EAC5B,YAA0B,EAC1B,IAAY,EACZ,WAAiC;;QAJjC,aAAQ,GAAR,QAAQ,CAAgB;QACxB,cAAS,GAAT,SAAS,CAAmB;QAC5B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAsB;QAk2BpD,iCAAiC;QACjC,kBAAa,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE;gBAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAC;gBACnF,IAAI,IAAI,CAAC;gBACT,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,KAAK,CAAC,EAAE;oBACzD,IAAI,GAAG,gBAAM,CAAC,UAAU,CACtB,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CACvC,CAAC;iBACH;qBAAM,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE;oBAC7F,IAAI,GAAG,gBAAM,CAAC,UAAU,CACtB,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,GAAG,EACX,IAAI,CAAC,QAAQ,CAAC,GAAG,EACjB,IAAI,CAAC,cAAc,EAAE,EACrB,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CACvC,CAAC;iBACH;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,uCAAuC,EAAE,OAAO,CAAC,CAAC;oBACnG,OAAO;iBACR;gBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,2DAA2D,EAAE,IAAI,EAChH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACnD,QAAQ,IAAI,CAAC,CAAC,EAAE;oBACd,KAAK,QAAQ,EAAE,uCAAuC;wBACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;wBACrE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;wBACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;wBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;wBACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;wBACpF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,mBAAmB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;wBAChF,IAAI,IAAI,CAAC,WAAW,EAAC;4BACnB,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;yBACjC;wBACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAChE,IAAI,CAAC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC,CAAC,kCAAkC;wBACpF,MAAM;oBACR,KAAK,KAAK,EAAE,gCAAgC;wBAC1C,IAAI,IAAI,CAAC,KAAK,EAAC;4BACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gCAC3B,IAAI,CAAC,CAAC,GAAG,KAAK,kBAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,2DAA2D;oCAChH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iCAChC;4BACH,CAAC,CAAC,CAAC;4BACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;4BACvF,IAAI,CAAE,IAAI,CAAC,IAAiB,CAAC,QAAQ,CAAC,kBAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;gCAC7D,IAAI,CAAC,IAAiB,CAAC,QAAQ,CAAC,kBAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;gCACnE,yDAAyD;gCACzD,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;gCACvH,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;oCACxC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oCACrD,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;oCACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,+DAA+D,CAAC,CAAC;iCACnH;6BACF;4BACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAgB,CAAC,CAAC;yBAC1C;wBACD,MAAM;oBACR,KAAK,KAAK,EAAE,2BAA2B;wBACrC,IAAI,IAAI,CAAC,KAAK,EAAC;4BACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;4BACtE,MAAM,aAAa,GAAG,EAAmB,CAAC;4BAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gCAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gCAC7D,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;oCAC9B,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;iCAClG;gCACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4BAC3B,CAAC,CAAC,CAAC;4BACH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,uBAAuB,EAAE,aAAa,CAAC,CAAC;6BACzF;yBACF;wBACD,MAAM;iBACT;aACF;QACH,CAAC,CAAC;QA/6BA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,sBAAsB,EAAE,YAAY,CAAC,CAAC;QACvF,4BAA4B;QAC5B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAE;aACnE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC;aAC3G,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EACnD,CAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,KAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,iBAAiB,CAAC;aAC5H,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;aAC/F,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAC9D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;YAC5F,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACvG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAChG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aACnE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAC9D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAErH,0FAA0F;QAC1F,sEAAsE;QACtE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACvG,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAE3D,IAAI,YAAY,CAAC,iBAAiB,KAAK,OAAO,EAAE;YAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wCAAwC,CAAC,CAAC;YAC3F,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBACzF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACtI,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SAC3F;aAAM;YACL,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,kDAAkD,EACjG,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,WAAW,MAAK,SAAS,CAAC,CAAC,CAAC,IAAI,IAAG,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,WAAW,CAAA,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrE,IAAI,EAAE,KAAK,SAAS,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,gDAAgD,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;gBACnH,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;aAClC;SACF;QAED,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAA,IAAI,CAAC,iBAAiB,0CAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEjD,mGAAmG;QACnG,8DAA8D;QAE9D,kDAAkD;QAClD,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;aACrE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpC,uEAAuE;QACvE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC;aACvF,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtD,sEAAsE;QACtE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;aACtF,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjD,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAErD,+DAA+D;QAC/D,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC;aACjF,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;QACjE,MAAA,IAAI,CAAC,iBAAiB,0CAAE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,EACtF,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAEtE,yEAAyE;QACzE,kGAAkG;QAClG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC;aAC1F,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;aAC1B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;aAC1E,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE/C,yEAAyE;QACzE,kGAAkG;QAClG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC;aAC1F,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;aAC1B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;aAC1E,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE/C,qEAAqE;QACrE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;aACtF,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjD,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAErD,sDAAsD;QACtD,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;aACxE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvC,0DAA0D;QAC1D,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC;aAC5E,QAAQ,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC;YAC1C,OAAO,EAAE,CAAC;SAAE,CAAC;aACd,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3C,uCAAuC;QACvC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,YAAY,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAC5F,SAAS,EAAE,GAAG,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,KAA0B;QACxC,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACxG,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,KAA0B;QACzD,IAAI,SAAS,GAAG,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACzC,IAAI,QAAQ,GAAG,MAAM,CAAC;QACtB,QAAQ,KAAK,EAAE;YACb,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI;gBAC5D,SAAS,GAAG,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACrC,QAAQ,GAAG,MAAM,CAAC;gBAClB,MAAM;YACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI;gBAC5D,SAAS,GAAG,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACrC,QAAQ,GAAG,MAAM,CAAC;gBAClB,MAAM;SACT;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,kCAAkC,EAAE,QAAQ,CAAC,CAAC;QAC/F,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAA0B;QACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACzF,IAAI,CAAC,iBAAiB,GAAG,KAAe,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,KAA0B;QACzD,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;QACrH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,kCAAkC,EAAE,QAAQ,CAAC,CAAC;QAC/F,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;YACrF,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAA0B;QAC3C,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3G,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QACjF,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;YACjF,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,4BAA4B,KAAK,iCAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;YACtH,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAA0B;QAC/C,QAAQ,KAAK,EAAE;YACb,KAAK,CAAC,EAAE,QAAQ;gBACd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC;gBAC/F,IAAI,CAAC,SAAS,GAAG,kBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7C,MAAM;YACR,KAAK,CAAC,EAAE,OAAO;gBACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,KAAK;oBAC9E,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBACjF,IAAI,CAAC,KAAK,GAAG,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBACvC,MAAM;YACR,KAAK,CAAC,EAAE,MAAM;gBACZ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,KAAK;oBAC9E,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;gBAChF,IAAI,CAAC,KAAK,GAAG,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;gBACtC,MAAM;YACR,KAAK,CAAC,EAAE,qBAAqB;gBAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,KAAK,GAAG,IAAI;oBACrF,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAClC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;gBAChH,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gBACjH,MAAM;YACR,KAAK,CAAC,EAAE,gBAAgB;gBACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,KAAK,GAAG,IAAI;oBACrF,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAClC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC3G,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC5G,MAAM;YACR,KAAK,CAAC,EAAE,wBAAwB;gBAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,EAAE;oBACtC,aAAa;oBACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,KAAK;wBAC9E,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;oBACvF,IAAI,CAAC,KAAK,GAAG,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;iBAC9C;qBAAM;oBACL,WAAW;oBACX,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,KAAK,GAAG,aAAa,CAAC,CAAC;oBAClG,IAAI,CAAC,YAAY,GAAG,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;iBACpD;gBACD,MAAM;YACR,KAAK,CAAC,EAAE,OAAO;gBACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,KAAK;oBAC9E,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBACjF,IAAI,CAAC,KAAK,GAAG,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBACvC,MAAM;YACR,KAAK,CAAC,EAAE,WAAW;gBACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,KAAK,GAAG,aAAa,CAAC,CAAC;gBAClG,IAAI,CAAC,YAAY,GAAG,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,MAAM;YACR,SAAS,OAAO;gBACd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,KAAK;oBAC9E,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBACjF,IAAI,CAAC,KAAK,GAAG,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBACvC,MAAM;SACT;IACH,CAAC;IAED;;;;;;;;;;;;;;;MAeE;IACF,KAAK,CAAC,SAAS;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAChE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACxC,OAAO,YAAY,CAAC,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9F,CAAC;IAED,KAAK,CAAC,2BAA2B;QAC/B,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;oBAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,2CAA2C,CAAC,CAAC;oBAC9F,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAC3G,qCAA0B,CAAC,CAAC;oBAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC;gBACvE,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;oBAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,2CAA2C,CAAC,CAAC;oBAC9F,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAC3G,qCAA0B,CAAC,CAAC;oBAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC;gBACvE,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC7B,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;oBAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wCAAwC,CAAC,CAAC;oBAC3F,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC;gBACpE,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;oBAC3B,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;wBAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,2CAA2C,CAAC,CAAC;wBAC9F,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAC3G,qCAA0B,CAAC,CAAC;wBAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC;qBACtE;oBACD,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;wBAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,2CAA2C,CAAC,CAAC;wBAC9F,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAC3G,qCAA0B,CAAC,CAAC;wBAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC;qBACtE;oBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wCAAwC,CAAC,CAAC;oBAC3F,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC;aACrE;SACF;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,4CAA4C,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,QAAQ,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;gBAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC;gBAC1F,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC;YACnE,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;gBAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC;gBAC1F,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC;SACpE;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,OAAe;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,SAAS,OAAO,wBAAwB,EAAE,YAAY,CAAC,CAAC;QACzG,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAc;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,SAAS,MAAM,KAAK,EAAE,YAAY,CAAC,CAAC;QACrF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,UAAU,CAAC;QACjI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,kCAAkC,EACjF,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAC9G,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,QAAQ,IAAI,CAAC,SAAS,IAAI,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE;YAC9D,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAC1C,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC;YAC/C,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC;YAC9C,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC;YAC9C,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;YAC7C,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW;gBAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,6BAA6B,CAAC,CAAC;gBAChF,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC;SAChE;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,4BAA4B,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,IAAI,CAAC,SAAS,KAAK,kBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE;YAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,kCAAkC,CAAC,CAAC;YACrF,OAAO,CAAC,CAAC;SACV;QACD,IAAI,IAAI,CAAC,YAAY,KAAK,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE;YACxD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;YAC/H,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC;SACzC;QACD,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,kBAAkB;QACjC,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChF,QAAQ,IAAI,CAAC,KAAK,EAAE;YAClB,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG;gBAC3B,KAAK,GAAG,CAAC,CAAC;gBACV,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3E,MAAM;YACR,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS;gBACjC,KAAK,GAAG,CAAC,CAAC;gBACV,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAC7C,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACvG,MAAM;YACR,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;gBAC9B,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC9E,MAAM;YACR,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU;gBAClC,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAC7C,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxG,MAAM;YACR,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;gBAC5B,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5E,MAAM;SACT;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;QAC1G,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mBAAmB;IACnB,wBAAwB,CAAC,iBAA0B;QACjD,QAAQ,iBAAiB,EAAE;YACzB,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO;gBAChE,IAAI,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,QAAQ;oBAC9G,IAAI,CAAC,YAAY,CAAC,wBAAwB;oBAC1C,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,QAAQ;wBAC5G,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE;oBAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,kEAAkE,EACjH,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;oBAC1F,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC;yBAC1F,QAAQ,CAAC;wBACR,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,wBAAwB;wBACpD,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,wBAAwB;qBAAE,CAAC,CAAC;iBAC7D;gBACD,MAAM;YACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO;gBAChE,IAAI,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,QAAQ;oBAC9G,IAAI,CAAC,YAAY,CAAC,wBAAwB;oBAC1C,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,QAAQ;wBAC5G,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE;oBAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,kEAAkE,EACjH,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;oBAC1F,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC;yBAC1F,QAAQ,CAAC;wBACR,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,wBAAwB;wBACpD,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,wBAAwB;qBAAE,CAAC,CAAC;iBAC7D;gBACD,MAAM;SACT;IACH,CAAC;IAED,cAAc;QACZ,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3H,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAChE;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,MAAO;QAC5B,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBACtC,IAAI,GAAG,KAAK,KAAK,EAAE;oBACjB,IAAI,GAAG,GAAG,CAAC;oBACX,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBACtC,MAAM,CAAC,GAAG,GAAqB,CAAC;gBAChC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE;oBACvB,IAAI,GAAG,GAAG,CAAC;oBACX,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB,CAAC,IAAY;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACzC,MAAM,yBAAyB,GAAG,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,CAAC,yBAAyB,IAAI,IAAI,IAAI,yBAAyB,GAAG,IAAI,CAAC;YACxF,CAAC,yBAAyB,IAAI,IAAI,IAAI,yBAAyB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,QAAQ,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,sBAAsB,CAAC,IAAY;QACjC,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,OAAO,CAAC,CAAC;SACV;QACD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACzC,MAAM,yBAAyB,GAAG,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9E,OAAO,CAAC,CAAC,CAAC,yBAAyB,IAAI,IAAI,IAAI,yBAAyB,GAAG,IAAI,CAAC;YAC9E,CAAC,yBAAyB,IAAI,IAAI,IAAI,yBAAyB,GAAG,IAAI,CAAC;YACvE,CAAC,yBAAyB,IAAI,IAAI,IAAI,yBAAyB,GAAG,IAAI,CAAC;YACvE,CAAC,yBAAyB,IAAI,IAAI,IAAI,yBAAyB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,uBAAuB,CAAC,IAAI,EAAE,MAAM;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,4BAAiB,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO,EAAE,CAAC,CAAC,qDAAqD;SACjE;QACD,kFAAkF;QAClF,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,KAAK;YACrH,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC;QACtG,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACxC,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACtC,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,mCAAmC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAC1G,OAAO,WAAW,CAAC;SACpB;QACD,uCAAuC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mBAAmB;IACnB,IAAI,KAAK;QACP,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,KAAK,CAAC,KAAK;QACb,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YACxB,OAAO;SACR;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QAC9E,MAAM,OAAO,GAA4B,EAAE,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;QAC/E,IAAI,QAAQ,GAAG,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/E,IAAI,UAAU,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;YAC1C,QAAQ,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE;gBACvG,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI;oBAC5D,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;wBAChE,OAAO,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBACvD,QAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC1F,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;4BAC5H,+DAA+D;4BAC/D,QAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;4BACxF,OAAO,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;yBACtD;qBACF;oBACD,MAAM;gBACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI;oBAC5D,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;wBAChE,OAAO,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBACvD,QAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;qBAC3F;oBACD,MAAM;gBACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI;oBAC5D,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;wBAChE,OAAO,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBACvD,QAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;qBAC3F;oBACD,MAAM;aACT;YACD,IAAI,CAAC,iCAAsB,CAAC,MAAM,EAAE,iCAAsB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,4BAA4B;gBACzH,iCAAsB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;gBAC/D,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;gBAClI,OAAO,CAAC,kBAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBAC7C,QAAQ,IAAI,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aAC1F;SACF;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACrE,CAAC;IAED,IAAI,IAAI,CAAC,KAAK;QACZ,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE;YACvB,OAAO;SACR;QACD,IAAI,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxE,MAAM,OAAO,GAA4B,EAAE,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;QACzE,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC1H,CAAC,KAAK,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC3E,uEAAuE;YACvE,QAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxF,OAAO,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SACtD;QACD,IAAI,CAAC,iCAAsB,CAAC,MAAM,EAAE,iCAAsB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,4BAA4B;YACzH,iCAAsB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAC/D,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YAClI,OAAO,CAAC,kBAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAC7C,QAAQ,IAAI,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC1F;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACzF,CAAC;IAED,IAAI,iBAAiB;QACnB,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC;QAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC;QAC1D,QAAQ,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACvC,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;gBAC3B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAC5D,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBACtH,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAC5D,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBACtH,MAAM;YACR,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;gBAC3B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAC5D,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;gBACrH,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAC5D,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBACtH,MAAM;SACT;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CACtB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EACnI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,iBAAiB,CAAC,KAAK;QACzB,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,EAAE;YACpC,OAAO;SACR;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,OAAO,GAA4B,EAAE,CAAC,kBAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;QAC1F,IAAI,QAAQ,GAAG,uBAAuB,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACtD,OAAO,CAAC,kBAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QACtD,QAAQ,IAAI,yBAAyB,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC;QACrH,MAAM,kBAAkB,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1G,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;QACjE,IAAI,kBAAkB,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;YAC1D,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC;SAC1E;aAAM;YACL,QAAQ,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC;SACjD;QACD,IAAI,kBAAkB,KAAK,IAAI,CAAC,KAAK,EAAE;YACrC,OAAO,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC;YAClD,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;SACvF;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;IAC1E,CAAC;IAED,IAAI,KAAK,CAAC,KAAK;QACb,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YACxB,OAAO;SACR;QACD,MAAM,OAAO,GAA4B,EAAE,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5G,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;IAC1F,CAAC;IAED,IAAI,SAAS,CAAC,KAAK;QACjB,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;YAC5B,OAAO;SACR;QACD,MAAM,OAAO,GAA4B,EAAE,CAAC,kBAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;QAClF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5H,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IACvE,CAAC;IAED,IAAI,KAAK,CAAC,KAAK;QACb,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YACxB,OAAO;SACR;QACD,MAAM,OAAO,GAA4B,EAAE,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;QAC1E,OAAO,CAAC,kBAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;QAChE,OAAO,CAAC,kBAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;YACxG,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,kBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;YAC3F,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,kBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;IAC9E,CAAC;IAED,IAAI,SAAS,CAAC,KAAK;QACjB,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;YAC5B,OAAO;SACR;QACD,MAAM,OAAO,GAA4B,EAAE,CAAC,kBAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;QAC9E,IAAI,QAAQ,GAAG,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAClF,IAAI,KAAK,KAAK,kBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE;YACzC,OAAO,CAAC,kBAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;YACtE,QAAQ,IAAI,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjH,OAAO,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;YACxD,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7F;aAAM;YACL,OAAO,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;YACzD,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9F;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;IACpF,CAAC;IAED,IAAI,YAAY,CAAC,KAAK;QACpB,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE;YAC/B,OAAO;SACR;QACD,IAAI,QAAQ,GAAG,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxF,MAAM,OAAO,GAA4B,EAAE,CAAC,kBAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;QACjF,IAAI,KAAK,KAAK,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE;YAC5C,OAAO,CAAC,kBAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;YAChE,QAAQ,IAAI,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,kBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxG,OAAO,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;YACzD,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9F;aAAM;YACL,OAAO,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;YACzD,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9F;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,KAAe;;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAChF,SAAS;QACT,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,4BAA4B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACnH,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;iBACrE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAChG;QACD,8BAA8B;QAC9B,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,QAAQ,IAAI,CAAC,IAAI,EAAE;oBACjB,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;wBAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,yDAAyD,CAAC,CAAC;wBAC5G,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC;6BACvF,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;wBAC9E,MAAM;oBACR,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;wBAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,yDAAyD,CAAC,CAAC;wBAC5G,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC;6BACvF,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;wBAC9E,MAAM;oBACR,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;oBAC7B,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;wBAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,sDAAsD,CAAC,CAAC;wBACzG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC;6BACvF,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;wBAC3E,MAAM;oBACR,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;wBAC3B,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,GAAG,GAAG,EAAE;4BAC1D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,yDAAyD,CAAC,CAAC;4BAC5G,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC;iCACvF,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;yBAC/E;6BAAM,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,GAAG,GAAG,EAAE;4BACjE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,yDAAyD,CAAC,CAAC;4BAC5G,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC;iCACvF,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;yBAC/E;6BAAM;4BACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,sDAAsD,CAAC,CAAC;4BACzG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC;iCACvF,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;yBAC5E;wBACD,MAAM;iBACT;aACF;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,0DAA0D,CAAC,CAAC;gBAC7G,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC;qBACvF,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;aAChF;SACF;QACD,6BAA6B;QAC7B,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YACpD,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;oBAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,qDAAqD,CAAC,CAAC;oBACxG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;yBACtF,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBAC1E,MAAM;gBACR,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;oBAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,qDAAqD,CAAC,CAAC;oBACxG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;yBACtF,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBAC1E,MAAM;gBACR;oBACE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,qDAAqD,CAAC,CAAC;oBACxG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;yBACtF,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;aAC7E;SACF;QACD,sBAAsB;QACtB,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,yCAAyC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrH,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC;iBACjF,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACxC,MAAA,IAAI,CAAC,iBAAiB,0CAAE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,EACtF,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACxC,MAAA,IAAI,CAAC,WAAW,0CAAE,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACjE,MAAA,IAAI,CAAC,WAAW,0CAAE,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,EAClG,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACzC;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;YAClG,oFAAoF;YACpF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,yCAAyC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrH,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC;iBACjF,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACzC;QACD,gCAAgC;QAChC,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAC/D,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACpF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,mDAAmD,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9H,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC;iBAC1F,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACxC;QACD,gCAAgC;QAChC,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAC/D,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACpF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,mDAAmD,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9H,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC;iBAC1F,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACxC;QACD,4BAA4B;QAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,+CAA+C,EAC9F,IAAI,CAAC,KAAK,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;iBACtF,WAAW,CAAC,IAAI,CAAC,KAAK,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACxD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;SACrI;QACD,aAAa;QACb,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7D,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC;YACjE,IAAI,QAAQ,GAAG,SAAS,CAAC;YACzB,QAAQ,IAAI,CAAC,SAAS,EAAC;gBACrB,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC1C,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC/C,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC;gBAC9C,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC;gBAC9C,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC7C,KAAK,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW;oBAC3C,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC;oBAC9D,QAAQ,GAAG,UAAU,CAAC;oBACtB,IAAI,CAAC,iCAAsB,CAAC,MAAM,EAAE,iCAAsB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,4BAA4B;wBACzH,iCAAsB,CAAC,KAAK,CAAC,EAAE;wBAC/B,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;qBACxF;oBACD,MAAM;aACT;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,gCAAgC,EAAE,QAAQ,CAAC,CAAC;YAC7F,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;iBACxE,WAAW,CAAC,KAAK,CAAC,CAAC;SACvB;QACD,iBAAiB;QACjB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,QAAQ,GAAG,UAAU,CAAC;YAC1B,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,kBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE;gBAC7F,kBAAkB;gBAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,8CAA8C,CAAC,CAAC;gBACjG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC;qBAC5E,WAAW,CAAC,CAAC,CAAC,CAAC;aACnB;iBAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE;gBAC7G,qBAAqB;gBACrB,QAAQ,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,aAAa,CAAC;gBAC5D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,oCAAoC,EAAE,QAAQ,CAAC,CAAC;gBACjG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC;qBAC5E,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;aAClD;iBAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC9C,QAAQ;gBACR,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,gBAAgB;gBACpC,QAAQ,IAAI,CAAC,KAAK,EAAE;oBAClB,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG;wBAC3B,QAAQ,GAAG,SAAS,CAAC;wBACrB,UAAU,GAAG,CAAC,CAAC;wBACf,MAAM;oBACR,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS;wBACjC,QAAQ,GAAG,eAAe,CAAC;wBAC3B,UAAU,GAAG,CAAC,CAAC;wBACf,MAAM;oBACR,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;wBAC9B,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;wBAC5E,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1D,MAAM;oBACR,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU;wBAClC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC;wBAChF,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1D,MAAM;oBACR,KAAK,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;wBAC5B,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;wBAC1E,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1D,MAAM;iBACT;gBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,oCAAoC,EAAE,QAAQ,CAAC,CAAC;gBACjG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC;qBAC5E,WAAW,CAAC,UAAU,CAAC,CAAC;aAC5B;SACF;IACH,CAAC;IAmFD,WAAW,CAAC,OAAO;QACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,+BAA+B,EAAE,OAAO,CAAC,CAAC;QAC3F,IAAI,IAAW,CAAC;QAChB,IAAI,GAAU,CAAC;QACf,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,KAAK,CAAC,EAAE;YACzD,IAAI,GAAG,gBAAM,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,GAAG,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,iCAAiC,EAAE,IAAI,CAAC,CAAC;SAC3F;aAAM,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,KAAK,CAAC,EAAE;YAChE,MAAM,SAAS,GAAG,gBAAM,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACvD,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;YACtB,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,6CAA6C,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;SAC5G;aAAM;YACL,OAAO;SACR;QACD,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;YACvC,GAAG,EAAE,CAAC;YACN,CAAC,EAAE,MAAM;YACT,IAAI;YACJ,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG,EAAE,KAAK;SACX,CAAC,CAAC,CAAC;YACF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;YACvC,GAAG,EAAE,CAAC;YACN,CAAC,EAAE,MAAM;YACT,IAAI;YACJ,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG;YACH,GAAG,EAAE,KAAK;SACX,CAAC;QACF,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAClC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CACtC,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,eAAe,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;SAC3F;IACH,CAAC;IAED,eAAe;QACb,MAAM,OAAO,GAAG;YACd,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;YACtC,CAAC,EAAE,MAAM;YACT,GAAG,EAAE,CAAC;SACP,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,uBAAuB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7G,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,GAAG;QACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG;YACd,CAAC,EAAE,KAAK;YACR,GAAG,EAAE,IAAI;YACT,CAAC,EAAE,MAAM;SACV,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,mBAAmB;QACjB,MAAM,OAAO,GAAG;YACd,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;YACtC,CAAC,EAAE,QAAQ;YACX,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;CACF;AA7gCD,gDA6gCC"}
1
+ {"version":3,"file":"platformAccessory.js","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,11 @@ export declare const OVERRIDE_DEFAULT_SWING: {
11
11
  powerOn: number;
12
12
  always: number;
13
13
  };
14
+ export declare const ENCRYPTION_VERSION: {
15
+ auto: number;
16
+ v1: number;
17
+ v2: number;
18
+ };
14
19
  export interface DeviceConfig {
15
20
  name?: string;
16
21
  model?: string;
@@ -24,6 +29,7 @@ export interface DeviceConfig {
24
29
  disabled?: boolean;
25
30
  defaultVerticalSwing?: number;
26
31
  overrideDefaultVerticalSwing?: number;
32
+ encryptionVersion?: number;
27
33
  }
28
34
  export declare const DEFAULT_DEVICE_CONFIG: DeviceConfig;
29
35
  export declare const UDP_SCAN_PORT = 7000;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAEhD,eAAO,MAAM,sBAAsB;;;;CAIlC,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,eAAO,MAAM,qBAAqB,EAAE,YAUnC,CAAC;AAEF,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,MAAM,CAAC"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAEhD,eAAO,MAAM,sBAAsB;;;;CAIlC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,qBAAqB,EAAE,YAWnC,CAAC;AAEF,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,MAAM,CAAC"}
package/dist/settings.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.INIT_TEMP_TRESHOLD_TIMEOUT = exports.TEMPERATURE_TABLE = exports.UDP_SCAN_PORT = exports.DEFAULT_DEVICE_CONFIG = exports.OVERRIDE_DEFAULT_SWING = exports.PLUGIN_NAME = exports.PLATFORM_NAME = void 0;
6
+ exports.INIT_TEMP_TRESHOLD_TIMEOUT = exports.TEMPERATURE_TABLE = exports.UDP_SCAN_PORT = exports.DEFAULT_DEVICE_CONFIG = exports.ENCRYPTION_VERSION = exports.OVERRIDE_DEFAULT_SWING = exports.PLUGIN_NAME = exports.PLATFORM_NAME = void 0;
7
7
  const commands_1 = __importDefault(require("./commands"));
8
8
  /**
9
9
  * This is the name of the platform that users will use to register the plugin in the Homebridge config.json
@@ -18,6 +18,11 @@ exports.OVERRIDE_DEFAULT_SWING = {
18
18
  powerOn: 1,
19
19
  always: 2,
20
20
  };
21
+ exports.ENCRYPTION_VERSION = {
22
+ auto: 0,
23
+ v1: 1,
24
+ v2: 2,
25
+ };
21
26
  exports.DEFAULT_DEVICE_CONFIG = {
22
27
  speedSteps: 5,
23
28
  statusUpdateInterval: 10,
@@ -28,6 +33,7 @@ exports.DEFAULT_DEVICE_CONFIG = {
28
33
  temperatureSensor: 'disabled',
29
34
  defaultVerticalSwing: commands_1.default.swingVertical.value.default,
30
35
  overrideDefaultVerticalSwing: exports.OVERRIDE_DEFAULT_SWING.never,
36
+ encryptionVersion: exports.ENCRYPTION_VERSION.auto,
31
37
  };
32
38
  exports.UDP_SCAN_PORT = 7000;
33
39
  exports.TEMPERATURE_TABLE = {
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAClC;;GAEG;AACU,QAAA,aAAa,GAAG,oBAAoB,CAAC;AAElD;;GAEG;AACU,QAAA,WAAW,GAAG,oBAAoB,CAAC;AAEnC,QAAA,sBAAsB,GAAG;IACpC,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACV,CAAC;AAiBW,QAAA,qBAAqB,GAAiB;IACjD,UAAU,EAAE,CAAC;IACb,oBAAoB,EAAE,EAAE;IACxB,YAAY,EAAE,EAAE;IAChB,wBAAwB,EAAE,EAAE;IAC5B,wBAAwB,EAAE,EAAE;IAC5B,WAAW,EAAE,IAAI;IACjB,iBAAiB,EAAE,UAAU;IAC7B,oBAAoB,EAAE,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO;IAC1D,4BAA4B,EAAE,8BAAsB,CAAC,KAAK;CAC3D,CAAC;AAEW,QAAA,aAAa,GAAG,IAAI,CAAC;AAErB,QAAA,iBAAiB,GAAG;IAC/B,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;CACX,CAAC;AAEW,QAAA,0BAA0B,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAClC;;GAEG;AACU,QAAA,aAAa,GAAG,oBAAoB,CAAC;AAElD;;GAEG;AACU,QAAA,WAAW,GAAG,oBAAoB,CAAC;AAEnC,QAAA,sBAAsB,GAAG;IACpC,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACV,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAChC,IAAI,EAAE,CAAC;IACP,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;CACN,CAAC;AAkBW,QAAA,qBAAqB,GAAiB;IACjD,UAAU,EAAE,CAAC;IACb,oBAAoB,EAAE,EAAE;IACxB,YAAY,EAAE,EAAE;IAChB,wBAAwB,EAAE,EAAE;IAC5B,wBAAwB,EAAE,EAAE;IAC5B,WAAW,EAAE,IAAI;IACjB,iBAAiB,EAAE,UAAU;IAC7B,oBAAoB,EAAE,kBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO;IAC1D,4BAA4B,EAAE,8BAAsB,CAAC,KAAK;IAC1D,iBAAiB,EAAE,0BAAkB,CAAC,IAAI;CAC3C,CAAC;AAEW,QAAA,aAAa,GAAG,IAAI,CAAC;AAErB,QAAA,iBAAiB,GAAG;IAC/B,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,EAAE;CACX,CAAC;AAEW,QAAA,0BAA0B,GAAG,GAAG,CAAC"}
Binary file
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "displayName": "GREE Air Conditioner",
4
4
  "name": "homebridge-gree-ac",
5
- "version": "2.1.0-beta.3",
5
+ "version": "2.1.0",
6
6
  "description": "Control GREE Air Conditioners from Homebridge",
7
7
  "license": "Apache-2.0",
8
8
  "repository": {
package/uiconfig.jpg CHANGED
Binary file