@switchbot/homebridge-switchbot 3.8.1 → 3.8.2-beta.1

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.
Files changed (89) hide show
  1. package/.github/npm-version-script.cjs +81 -0
  2. package/CHANGELOG.md +8 -0
  3. package/dist/device/blindtilt.d.ts.map +1 -1
  4. package/dist/device/blindtilt.js +51 -38
  5. package/dist/device/blindtilt.js.map +1 -1
  6. package/dist/device/bot.d.ts.map +1 -1
  7. package/dist/device/bot.js +78 -64
  8. package/dist/device/bot.js.map +1 -1
  9. package/dist/device/ceilinglight.d.ts.map +1 -1
  10. package/dist/device/ceilinglight.js +55 -42
  11. package/dist/device/ceilinglight.js.map +1 -1
  12. package/dist/device/colorbulb.d.ts.map +1 -1
  13. package/dist/device/colorbulb.js +133 -99
  14. package/dist/device/colorbulb.js.map +1 -1
  15. package/dist/device/contact.d.ts.map +1 -1
  16. package/dist/device/contact.js +20 -13
  17. package/dist/device/contact.js.map +1 -1
  18. package/dist/device/curtain.d.ts.map +1 -1
  19. package/dist/device/curtain.js +88 -70
  20. package/dist/device/curtain.js.map +1 -1
  21. package/dist/device/device.d.ts +0 -1
  22. package/dist/device/device.d.ts.map +1 -1
  23. package/dist/device/device.js +26 -22
  24. package/dist/device/device.js.map +1 -1
  25. package/dist/device/fan.d.ts.map +1 -1
  26. package/dist/device/fan.js +54 -40
  27. package/dist/device/fan.js.map +1 -1
  28. package/dist/device/hub.d.ts.map +1 -1
  29. package/dist/device/hub.js +20 -14
  30. package/dist/device/hub.js.map +1 -1
  31. package/dist/device/humidifier.d.ts.map +1 -1
  32. package/dist/device/humidifier.js +45 -32
  33. package/dist/device/humidifier.js.map +1 -1
  34. package/dist/device/iosensor.d.ts.map +1 -1
  35. package/dist/device/iosensor.js +20 -14
  36. package/dist/device/iosensor.js.map +1 -1
  37. package/dist/device/lightstrip.d.ts.map +1 -1
  38. package/dist/device/lightstrip.js +107 -80
  39. package/dist/device/lightstrip.js.map +1 -1
  40. package/dist/device/lock.d.ts.map +1 -1
  41. package/dist/device/lock.js +54 -40
  42. package/dist/device/lock.js.map +1 -1
  43. package/dist/device/meter.d.ts.map +1 -1
  44. package/dist/device/meter.js +20 -14
  45. package/dist/device/meter.js.map +1 -1
  46. package/dist/device/meterplus.d.ts.map +1 -1
  47. package/dist/device/meterplus.js +20 -14
  48. package/dist/device/meterplus.js.map +1 -1
  49. package/dist/device/motion.d.ts.map +1 -1
  50. package/dist/device/motion.js +20 -13
  51. package/dist/device/motion.js.map +1 -1
  52. package/dist/device/plug.d.ts.map +1 -1
  53. package/dist/device/plug.js +55 -41
  54. package/dist/device/plug.js.map +1 -1
  55. package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
  56. package/dist/device/robotvacuumcleaner.js +55 -41
  57. package/dist/device/robotvacuumcleaner.js.map +1 -1
  58. package/dist/device/waterdetector.d.ts.map +1 -1
  59. package/dist/device/waterdetector.js +20 -13
  60. package/dist/device/waterdetector.js.map +1 -1
  61. package/dist/platform.d.ts.map +1 -1
  62. package/dist/platform.js +10 -3
  63. package/dist/platform.js.map +1 -1
  64. package/dist/utils.d.ts +10 -0
  65. package/dist/utils.d.ts.map +1 -1
  66. package/dist/utils.js +27 -0
  67. package/dist/utils.js.map +1 -1
  68. package/package.json +4 -4
  69. package/src/device/blindtilt.ts +47 -36
  70. package/src/device/bot.ts +71 -59
  71. package/src/device/ceilinglight.ts +50 -39
  72. package/src/device/colorbulb.ts +128 -99
  73. package/src/device/contact.ts +16 -10
  74. package/src/device/curtain.ts +84 -69
  75. package/src/device/device.ts +24 -23
  76. package/src/device/fan.ts +49 -37
  77. package/src/device/hub.ts +16 -11
  78. package/src/device/humidifier.ts +41 -30
  79. package/src/device/iosensor.ts +16 -11
  80. package/src/device/lightstrip.ts +102 -79
  81. package/src/device/lock.ts +49 -37
  82. package/src/device/meter.ts +16 -11
  83. package/src/device/meterplus.ts +16 -11
  84. package/src/device/motion.ts +16 -10
  85. package/src/device/plug.ts +50 -38
  86. package/src/device/robotvacuumcleaner.ts +50 -38
  87. package/src/device/waterdetector.ts +16 -10
  88. package/src/platform.ts +9 -3
  89. package/src/utils.ts +33 -0
package/dist/utils.d.ts CHANGED
@@ -123,6 +123,16 @@ export declare function validHumidity(humidity: number, min?: number, max?: numb
123
123
  * Converts the value to celsius if the temperature units are in Fahrenheit
124
124
  */
125
125
  export declare function convertUnits(value: number, unit: string, convert?: string): number;
126
+ /**
127
+ * Formats a device ID as a MAC address.
128
+ * Ensures the device ID does not already contain colons.
129
+ *
130
+ * @param deviceId - The device ID to format.
131
+ * @param cassSensative - If the MAC address should be case sensitive. Default is false, which will return the MAC address in lowercase.
132
+ * @returns The formatted MAC address.
133
+ * @throws Will throw an error if the device ID is not a valid MAC address or a 12-character hexadecimal string.
134
+ */
135
+ export declare function formatDeviceIdAsMac(deviceId: string, cassSensative?: boolean): string;
126
136
  export declare function rgb2hs(r: any, g: any, b: any): number[];
127
137
  export declare function hs2rgb(h: any, s: any): number[];
128
138
  export declare function k2rgb(k: number): any;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/dist/utils.js CHANGED
@@ -149,6 +149,33 @@ export function convertUnits(value, unit, convert) {
149
149
  }
150
150
  return value;
151
151
  }
152
+ /**
153
+ * Formats a device ID as a MAC address.
154
+ * Ensures the device ID does not already contain colons.
155
+ *
156
+ * @param deviceId - The device ID to format.
157
+ * @param cassSensative - If the MAC address should be case sensitive. Default is false, which will return the MAC address in lowercase.
158
+ * @returns The formatted MAC address.
159
+ * @throws Will throw an error if the device ID is not a valid MAC address or a 12-character hexadecimal string.
160
+ */
161
+ export function formatDeviceIdAsMac(deviceId, cassSensative) {
162
+ if (typeof deviceId !== 'string') {
163
+ throw new TypeError('Invalid device ID format. Device ID must be a string.');
164
+ }
165
+ deviceId = deviceId.trim();
166
+ const macAddressRegex = /^(?:[0-9a-f]{2}:){5}[0-9a-f]{2}$/i;
167
+ const hexRegex = /^[0-9a-f]{12}$/i;
168
+ // Check if the deviceId is already in a valid MAC address format
169
+ if (macAddressRegex.test(deviceId)) {
170
+ return cassSensative ? deviceId : deviceId.toLowerCase();
171
+ }
172
+ // Check if the deviceId is a valid 12-character hexadecimal string
173
+ if (hexRegex.test(deviceId)) {
174
+ const formattedDeviceId = deviceId.match(/.{1,2}/g).join(':');
175
+ return cassSensative ? formattedDeviceId : formattedDeviceId.toLowerCase();
176
+ }
177
+ throw new Error('Invalid device ID format. Must be a valid MAC address or a 12-character hexadecimal string.');
178
+ }
152
179
  export function rgb2hs(r, g, b) {
153
180
  /**
154
181
  * Credit:
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAOA,MAAM,CAAN,IAAY,cAwCX;AAxCD,WAAY,cAAc;IACxB,sCAAoB,CAAA;IACpB,8CAA4B,CAAA;IAC5B,mCAAiB,CAAA;IACjB,sCAAoB,CAAA;IACpB,sCAAoB,CAAA;IACpB,uCAAqB,CAAA;IACrB,yCAAuB,CAAA;IACvB,+BAAa,CAAA;IACb,gDAA8B,CAAA;IAC9B,0CAAwB,CAAA;IACxB,0CAAwB,CAAA;IACxB,2CAAyB,CAAA;IACzB,2CAAyB,CAAA;IACzB,4CAA0B,CAAA;IAC1B,wCAAsB,CAAA;IACtB,yCAAuB,CAAA;IACvB,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,mCAAiB,CAAA;IACjB,sCAAoB,CAAA;IACpB,qCAAmB,CAAA;IACnB,0CAAwB,CAAA;IACxB,8BAAY,CAAA;IACZ,yCAAuB,CAAA;IACvB,iDAA+B,CAAA;IAC/B,mDAAiC,CAAA;IACjC,uDAAqC,CAAA;IACrC,oDAAkC,CAAA;IAClC,mCAAiB,CAAA;IACjB,qDAAmC,CAAA;IACnC,oDAAkC,CAAA;IAClC,uDAAqC,CAAA;IACrC,wCAAsB,CAAA;IACtB,yCAAuB,CAAA;IACvB,2CAAyB,CAAA;IACzB,wCAAsB,CAAA;IACtB,mDAAiC,CAAA;IACjC,4CAA0B,CAAA;IAC1B,qCAAmB,CAAA;AACrB,CAAC,EAxCW,cAAc,KAAd,cAAc,QAwCzB;AAED,MAAM,CAAN,IAAY,iBAoBX;AApBD,WAAY,iBAAiB;IAC3B,8BAAS,CAAA;IACT,kCAAa,CAAA;IACb,mCAAc,CAAA;IACd,qCAAgB,CAAA;IAChB,gCAAW,CAAA;IACX,oCAAe,CAAA;IACf,+BAAU,CAAA;IACV,uCAAkB,CAAA;IAClB,uCAAkB,CAAA;IAClB,wCAAmB,CAAA;IACnB,oCAAe,CAAA;IACf,qCAAgB,CAAA;IAChB,qCAAgB,CAAA;IAChB,qCAAgB,CAAA;IAChB,+BAAU,CAAA;IACV,uCAAkB,CAAA;IAClB,0CAAqB,CAAA;IACrB,oCAAe,CAAA;IACf,wCAAmB,CAAA;AACrB,CAAC,EApBW,iBAAiB,KAAjB,iBAAiB,QAoB5B;AAED,MAAM,CAAN,IAAY,qBAiBX;AAjBD,WAAY,qBAAqB;IAC/B,uCAAc,CAAA;IACd,wCAAe,CAAA;IACf,6CAAoB,CAAA;IACpB,8CAAqB,CAAA;IACrB,gDAAuB,CAAA;IACvB,8CAAqB,CAAA;IACrB,6CAAoB,CAAA;IACpB,6CAAoB,CAAA;IACpB,gDAAuB,CAAA;IACvB,+CAAsB,CAAA;IACtB,qDAA4B,CAAA;IAC5B,sDAA6B,CAAA;IAC7B,oDAA2B,CAAA;IAC3B,kDAAyB,CAAA;IACzB,kDAAyB,CAAA;IACzB,4CAAmB,CAAA;AACrB,CAAC,EAjBW,qBAAqB,KAArB,qBAAqB,QAiBhC;AAED,MAAM,CAAN,IAAY,6BAoBX;AApBD,WAAY,6BAA6B;IACvC,4CAAW,CAAA;IACX,+CAAc,CAAA;IACd,yDAAwB,CAAA;IACxB,oDAAmB,CAAA;IACnB,uDAAsB,CAAA;IACtB,0DAAyB,CAAA;IACzB,gDAAe,CAAA;IACf,8CAAa,CAAA;IACb,qDAAoB,CAAA;IACpB,uDAAsB,CAAA;IACtB,2DAA0B,CAAA;IAC1B,yDAAwB,CAAA;IACxB,+DAA8B,CAAA;IAC9B,iEAAgC,CAAA;IAChC,+DAA8B,CAAA;IAC9B,yDAAwB,CAAA;IACxB,+DAA8B,CAAA;IAC9B,sEAAqC,CAAA;IACrC,oDAAmB,CAAA;AACrB,CAAC,EApBW,6BAA6B,KAA7B,6BAA6B,QAoBxC;AAED,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,0CAAkB,CAAA;IAClB,8CAAsB,CAAA;IACtB,iDAAyB,CAAA;IACzB,iDAAyB,CAAA;IACzB,sEAA8C,CAAA;AAChD,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;AAED,MAAM,UAAU,eAAe,CAAC,MAA8B;IAC5D,OAAO,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,CAAA;AAC5E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAA8B;IAC9D,OAAO,MAAM,CAAC,UAAU,KAAK,YAAY,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AACxD,CAAC;AACD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,GAAY,EAAE,GAAY;IACxE,IAAI,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,IAAI,CAAC,CAAA;IACjB,CAAC;SAAM,IAAI,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,GAAG,IAAI,GAAG,CAAA;IACnB,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,IAAY,EAAE,OAAgB;IACxE,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IACzC,CAAC;SAAM,IAAI,IAAI,KAAK,YAAY,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7D,8CAA8C;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,CAAM,EAAE,CAAM,EAAE,CAAM;IAC3C;;;OAGG;IACH,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACtB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACtB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7B,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAA;IACvB,IAAI,CAAC,CAAA;IACL,IAAI,CAAC,CAAA;IACL,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,CAAC,GAAG,CAAC,CAAA;IACP,CAAC;SAAM,CAAC;QACN,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;IACzB,CAAC;IACD,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QAChB,CAAC,GAAG,CAAC,CAAA;IACP,CAAC;SAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACrB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;IACrB,CAAC;SAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACrB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;IACzB,CAAC;SAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACrB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;IACzB,CAAC;IACD,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;IAEzB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,CAAC,IAAI,GAAG,CAAA;IACV,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,CAAM,EAAE,CAAM;IACnC;;;MAGE;IACF,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IAC3B,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;IAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3B,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACvB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3B,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACjC,IAAI,GAAG,CAAA;IACP,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC;YACJ,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YACjB,MAAK;QACP,KAAK,CAAC;YACJ,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YACjB,MAAK;QACP,KAAK,CAAC;YACJ,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YACjB,MAAK;QACP,KAAK,CAAC;YACJ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;YACjB,MAAK;QACP,KAAK,CAAC;YACJ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;YACjB,MAAK;QACP,KAAK,CAAC;YACJ,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YACjB,MAAK;IACT,CAAC;IACD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;QACb,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;QACb,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACjC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YACV,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACZ,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,mDAAmD;IACnD,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;IAC7B,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IAErC,oDAAoD;IACpD,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;KACtB,CAAA;IAED,mBAAmB;IACnB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,CAAC;IACpB;;;MAGE;IACF,MAAM,KAAK,GAAG;QACZ,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;QAChB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;QAChB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;QAChB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;QAChB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACf,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;QACd,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;QACd,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACZ,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;QACd,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;QACd,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACb,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACb,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACb,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACb,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACb,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;KAClB,CAAA;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;IAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,EAAE,GA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IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACf,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;QACd,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;QACd,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACZ,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;QACd,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;QACd,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACb,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACb,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACb,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACb,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACb,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QACf,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACjB,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;KAClB,CAAA;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;IAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@switchbot/homebridge-switchbot",
3
3
  "displayName": "SwitchBot",
4
4
  "type": "module",
5
- "version": "3.8.1",
5
+ "version": "3.8.2-beta.1",
6
6
  "description": "The SwitchBot plugin allows you to access your SwitchBot device(s) from HomeKit.",
7
7
  "author": "SwitchBot <support@wondertechlabs.com> (https://github.com/SwitchBot)",
8
8
  "contributors": [
@@ -92,10 +92,10 @@
92
92
  "@types/fs-extra": "^11.0.4",
93
93
  "@types/jest": "^29.5.13",
94
94
  "@types/mdast": "^4.0.4",
95
- "@types/node": "^22.5.4",
95
+ "@types/node": "^22.5.5",
96
96
  "@types/semver": "^7.5.8",
97
97
  "@types/source-map-support": "^0.5.10",
98
- "@vitest/coverage-v8": "^2.1.0",
98
+ "@vitest/coverage-v8": "^2.1.1",
99
99
  "eslint": "^9.10.0",
100
100
  "eslint-plugin-format": "^0.1.2",
101
101
  "homebridge": "^1.8.4",
@@ -108,7 +108,7 @@
108
108
  "typedoc": "^0.26.7",
109
109
  "typescript": "^5.6.2",
110
110
  "typescript-axios-wb": "^1.0.3",
111
- "vitest": "^2.1.0"
111
+ "vitest": "^2.1.1"
112
112
  },
113
113
  "directories": {
114
114
  "doc": "docs"
@@ -18,7 +18,7 @@ import type { blindTiltWebhookContext } from '../types/devicewebhookstatus.js'
18
18
  import { SwitchBotBLEModel, SwitchBotBLEModelName } from 'node-switchbot'
19
19
  import { debounceTime, interval, skipWhile, Subject, take, tap } from 'rxjs'
20
20
 
21
- import { BlindTiltMappingMode } from '../utils.js'
21
+ import { BlindTiltMappingMode, formatDeviceIdAsMac } from '../utils.js'
22
22
  import { deviceBase } from './device.js'
23
23
 
24
24
  export class BlindTilt extends deviceBase {
@@ -482,17 +482,22 @@ export class BlindTilt extends deviceBase {
482
482
  await this.debugLog('registerPlatformBLE')
483
483
  if (this.config.options?.BLE) {
484
484
  await this.debugLog('is listening to Platform BLE.')
485
- this.device.bleMac = this.device.deviceId!.match(/.{1,2}/g)!.join(':').toLowerCase()
486
- await this.debugLog(`bleMac: ${this.device.bleMac}`)
487
- this.platform.bleEventHandler[this.device.bleMac] = async (context: blindTiltServiceData) => {
488
- try {
489
- await this.debugLog(`received BLE: ${JSON.stringify(context)}`)
490
- this.serviceData = context
491
- await this.BLEparseStatus()
492
- await this.updateHomeKitCharacteristics()
493
- } catch (e: any) {
494
- await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e}`)
485
+ try {
486
+ const formattedDeviceId = formatDeviceIdAsMac(this.device.deviceId)
487
+ this.device.bleMac = formattedDeviceId
488
+ await this.debugLog(`bleMac: ${this.device.bleMac}`)
489
+ this.platform.bleEventHandler[this.device.bleMac] = async (context: blindTiltServiceData) => {
490
+ try {
491
+ await this.debugLog(`received BLE: ${JSON.stringify(context)}`)
492
+ this.serviceData = context
493
+ await this.BLEparseStatus()
494
+ await this.updateHomeKitCharacteristics()
495
+ } catch (e: any) {
496
+ await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e}`)
497
+ }
495
498
  }
499
+ } catch (error) {
500
+ await this.errorLog(`failed to format device ID as MAC, Error: ${error}`)
496
501
  }
497
502
  } else {
498
503
  await this.debugLog('is not listening to Platform BLE')
@@ -563,32 +568,38 @@ export class BlindTilt extends deviceBase {
563
568
  if (this.WindowCovering.TargetPosition !== this.WindowCovering.CurrentPosition) {
564
569
  await this.debugLog(`BLEpushChanges On: ${this.WindowCovering.TargetPosition} OnCached: ${this.WindowCovering.CurrentPosition}`)
565
570
  const switchbot = await this.platform.connectBLE(this.accessory, this.device)
566
- await this.convertBLEAddress()
567
- const { setPositionMode, Mode }: { setPositionMode: number, Mode: string } = await this.setPerformance()
568
- await this.debugLog(`Mode: ${Mode}, setPositionMode: ${setPositionMode}`)
569
- if (switchbot !== false) {
570
- switchbot
571
- .discover({ model: this.device.bleModel, quick: true, id: this.device.bleMac })
572
- .then(async (device_list: any) => {
573
- return await this.retryBLE({
574
- max: await this.maxRetryBLE(),
575
- fn: async () => {
576
- return await device_list[0].runToPos(100 - Number(this.WindowCovering.TargetPosition), setPositionMode)
577
- },
571
+ try {
572
+ const formattedDeviceId = formatDeviceIdAsMac(this.device.deviceId)
573
+ this.device.bleMac = formattedDeviceId
574
+ await this.debugLog(`bleMac: ${this.device.bleMac}`)
575
+ const { setPositionMode, Mode }: { setPositionMode: number, Mode: string } = await this.setPerformance()
576
+ await this.debugLog(`Mode: ${Mode}, setPositionMode: ${setPositionMode}`)
577
+ if (switchbot !== false) {
578
+ switchbot
579
+ .discover({ model: this.device.bleModel, quick: true, id: this.device.bleMac })
580
+ .then(async (device_list: any) => {
581
+ return await this.retryBLE({
582
+ max: await this.maxRetryBLE(),
583
+ fn: async () => {
584
+ return await device_list[0].runToPos(100 - Number(this.WindowCovering.TargetPosition), setPositionMode)
585
+ },
586
+ })
578
587
  })
579
- })
580
- .then(async () => {
581
- await this.successLog(`TargetPostion: ${this.WindowCovering.TargetPosition} sent over SwitchBot BLE, sent successfully`)
582
- await this.updateHomeKitCharacteristics()
583
- })
584
- .catch(async (e: any) => {
585
- await this.apiError(e)
586
- await this.errorLog(`failed BLEpushChanges with ${this.device.connectionType} Connection, Error Message: ${JSON.stringify(e.message)}`)
587
- await this.BLEPushConnection()
588
- })
589
- } else {
590
- await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${switchbot}`)
591
- await this.BLEPushConnection()
588
+ .then(async () => {
589
+ await this.successLog(`TargetPostion: ${this.WindowCovering.TargetPosition} sent over SwitchBot BLE, sent successfully`)
590
+ await this.updateHomeKitCharacteristics()
591
+ })
592
+ .catch(async (e: any) => {
593
+ await this.apiError(e)
594
+ await this.errorLog(`failed BLEpushChanges with ${this.device.connectionType} Connection, Error Message: ${JSON.stringify(e.message)}`)
595
+ await this.BLEPushConnection()
596
+ })
597
+ } else {
598
+ await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${switchbot}`)
599
+ await this.BLEPushConnection()
600
+ }
601
+ } catch (error) {
602
+ await this.errorLog(`failed to format device ID as MAC, Error: ${error}`)
592
603
  }
593
604
  } else {
594
605
  await this.debugLog(`No changes (BLEpushChanges), TargetPosition: ${this.WindowCovering.TargetPosition}, CurrentPosition: ${this.WindowCovering.CurrentPosition}`)
package/src/device/bot.ts CHANGED
@@ -18,6 +18,7 @@ import type { botWebhookContext } from '../types/devicewebhookstatus.js'
18
18
  import { SwitchBotBLEModel, SwitchBotBLEModelName } from 'node-switchbot'
19
19
  import { debounceTime, interval, skipWhile, Subject, take, tap } from 'rxjs'
20
20
 
21
+ import { formatDeviceIdAsMac } from '../utils.js'
21
22
  import { deviceBase } from './device.js'
22
23
 
23
24
  /**
@@ -575,17 +576,22 @@ export class Bot extends deviceBase {
575
576
  await this.debugLog('registerPlatformBLE')
576
577
  if (this.config.options?.BLE) {
577
578
  await this.debugLog('is listening to Platform BLE.')
578
- this.device.bleMac = this.device.deviceId!.match(/.{1,2}/g)!.join(':').toLowerCase()
579
- await this.debugLog(`bleMac: ${this.device.bleMac}`)
580
- this.platform.bleEventHandler[this.device.bleMac] = async (context: botServiceData) => {
581
- try {
582
- await this.debugLog(`received BLE: ${JSON.stringify(context)}`)
583
- this.serviceData = context
584
- await this.BLEparseStatus()
585
- await this.updateHomeKitCharacteristics()
586
- } catch (e: any) {
587
- await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e}`)
579
+ try {
580
+ const formattedDeviceId = formatDeviceIdAsMac(this.device.deviceId)
581
+ this.device.bleMac = formattedDeviceId
582
+ await this.debugLog(`bleMac: ${this.device.bleMac}`)
583
+ this.platform.bleEventHandler[this.device.bleMac] = async (context: botServiceData) => {
584
+ try {
585
+ await this.debugLog(`received BLE: ${JSON.stringify(context)}`)
586
+ this.serviceData = context
587
+ await this.BLEparseStatus()
588
+ await this.updateHomeKitCharacteristics()
589
+ } catch (e: any) {
590
+ await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e}`)
591
+ }
588
592
  }
593
+ } catch (error) {
594
+ await this.errorLog(`failed to format device ID as MAC, Error: ${error}`)
589
595
  }
590
596
  } else {
591
597
  await this.debugLog('is not listening to Platform BLE')
@@ -663,57 +669,63 @@ export class Bot extends deviceBase {
663
669
  if (this.On !== this.accessory.context.On || this.allowPush) {
664
670
  await this.debugLog(`BLEpushChanges On: ${this.On} OnCached: ${this.accessory.context.On}`)
665
671
  const switchbot = await this.platform.connectBLE(this.accessory, this.device)
666
- await this.convertBLEAddress()
667
- // if (switchbot !== false) {
668
- await this.debugLog(`Bot Mode: ${this.botMode}`)
669
- if (this.botMode === 'press') {
670
- switchbot
671
- .discover({ model: 'H', quick: true, id: this.device.bleMac })
672
- .then(async (device_list: { press: (arg0: { id: string | undefined }) => any }[]) => {
673
- await this.infoLog(`On: ${this.On}`)
674
- return await device_list[0].press({ id: this.device.bleMac })
675
- })
676
- .then(async () => {
677
- await this.successLog(`On: ${this.On} sent over SwitchBot BLE, sent successfully`)
678
- await this.updateHomeKitCharacteristics()
679
- setTimeout(async () => {
680
- this.On = false
672
+ try {
673
+ const formattedDeviceId = formatDeviceIdAsMac(this.device.deviceId)
674
+ this.device.bleMac = formattedDeviceId
675
+ await this.debugLog(`bleMac: ${this.device.bleMac}`)
676
+ // if (switchbot !== false) {
677
+ await this.debugLog(`Bot Mode: ${this.botMode}`)
678
+ if (this.botMode === 'press') {
679
+ switchbot
680
+ .discover({ model: 'H', quick: true, id: this.device.bleMac })
681
+ .then(async (device_list: { press: (arg0: { id: string | undefined }) => any }[]) => {
682
+ await this.infoLog(`On: ${this.On}`)
683
+ return await device_list[0].press({ id: this.device.bleMac })
684
+ })
685
+ .then(async () => {
686
+ await this.successLog(`On: ${this.On} sent over SwitchBot BLE, sent successfully`)
681
687
  await this.updateHomeKitCharacteristics()
682
- this.debugLog(`On: ${this.On}, Switch Timeout`)
683
- }, 500)
684
- })
685
- .catch(async (e: any) => {
686
- await this.apiError(e)
687
- await this.errorLog(`failed BLEpushChanges with ${this.device.connectionType} Connection, Error Message: ${JSON.stringify(e.message)}`)
688
- await this.BLEPushConnection()
689
- })
690
- } else if (this.botMode === 'switch') {
691
- switchbot
692
- .discover({ model: this.device.bleModel, quick: true, id: this.device.bleMac })
693
- .then(async (device_list: any) => {
694
- this.infoLog(`On: ${this.On}`)
695
- return await this.retryBLE({
696
- max: await this.maxRetryBLE(),
697
- fn: async () => {
698
- if (this.On) {
699
- return await device_list[0].turnOn({ id: this.device.bleMac })
700
- } else {
701
- return await device_list[0].turnOff({ id: this.device.bleMac })
702
- }
703
- },
688
+ setTimeout(async () => {
689
+ this.On = false
690
+ await this.updateHomeKitCharacteristics()
691
+ this.debugLog(`On: ${this.On}, Switch Timeout`)
692
+ }, 500)
704
693
  })
705
- })
706
- .then(async () => {
707
- await this.successLog(`On: ${this.On} sent over SwitchBot BLE, sent successfully`)
708
- await this.updateHomeKitCharacteristics()
709
- })
710
- .catch(async (e: any) => {
711
- await this.apiError(e)
712
- await this.errorLog(`failed BLEpushChanges with ${this.device.connectionType} Connection, Error Message: ${JSON.stringify(e.message)}`)
713
- await this.BLEPushConnection()
714
- })
715
- } else {
716
- await this.errorLog(`Device Parameters not set for this Bot, please check the device configuration. Bot Mode: ${this.botMode}`)
694
+ .catch(async (e: any) => {
695
+ await this.apiError(e)
696
+ await this.errorLog(`failed BLEpushChanges with ${this.device.connectionType} Connection, Error Message: ${JSON.stringify(e.message)}`)
697
+ await this.BLEPushConnection()
698
+ })
699
+ } else if (this.botMode === 'switch') {
700
+ switchbot
701
+ .discover({ model: this.device.bleModel, quick: true, id: this.device.bleMac })
702
+ .then(async (device_list: any) => {
703
+ this.infoLog(`On: ${this.On}`)
704
+ return await this.retryBLE({
705
+ max: await this.maxRetryBLE(),
706
+ fn: async () => {
707
+ if (this.On) {
708
+ return await device_list[0].turnOn({ id: this.device.bleMac })
709
+ } else {
710
+ return await device_list[0].turnOff({ id: this.device.bleMac })
711
+ }
712
+ },
713
+ })
714
+ })
715
+ .then(async () => {
716
+ await this.successLog(`On: ${this.On} sent over SwitchBot BLE, sent successfully`)
717
+ await this.updateHomeKitCharacteristics()
718
+ })
719
+ .catch(async (e: any) => {
720
+ await this.apiError(e)
721
+ await this.errorLog(`failed BLEpushChanges with ${this.device.connectionType} Connection, Error Message: ${JSON.stringify(e.message)}`)
722
+ await this.BLEPushConnection()
723
+ })
724
+ } else {
725
+ await this.errorLog(`Device Parameters not set for this Bot, please check the device configuration. Bot Mode: ${this.botMode}`)
726
+ }
727
+ } catch (error) {
728
+ await this.errorLog(`failed to format device ID as MAC, Error: ${error}`)
717
729
  }
718
730
  } else {
719
731
  await this.debugLog(`No Changes (BLEpushChanges), On: ${this.On} OnCached: ${this.accessory.context.On}`)
@@ -18,7 +18,7 @@ import type { ceilingLightProWebhookContext, ceilingLightWebhookContext } from '
18
18
  import { SwitchBotBLEModel, SwitchBotBLEModelName } from 'node-switchbot'
19
19
  import { debounceTime, interval, skipWhile, Subject, take, tap } from 'rxjs'
20
20
 
21
- import { hs2rgb, m2hs } from '../utils.js'
21
+ import { formatDeviceIdAsMac, hs2rgb, m2hs } from '../utils.js'
22
22
  import { deviceBase } from './device.js'
23
23
 
24
24
  /**
@@ -310,17 +310,22 @@ export class CeilingLight extends deviceBase {
310
310
  await this.debugLog('registerPlatformBLE')
311
311
  if (this.config.options?.BLE) {
312
312
  await this.debugLog('is listening to Platform BLE.')
313
- this.device.bleMac = this.device.deviceId!.match(/.{1,2}/g)!.join(':').toLowerCase()
314
- await this.debugLog(`bleMac: ${this.device.bleMac}`)
315
- this.platform.bleEventHandler[this.device.bleMac] = async (context: ceilingLightServiceData | ceilingLightProServiceData) => {
316
- try {
317
- await this.debugLog(`received BLE: ${JSON.stringify(context)}`)
318
- this.serviceData = context
319
- await this.BLEparseStatus()
320
- await this.updateHomeKitCharacteristics()
321
- } catch (e: any) {
322
- await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e}`)
313
+ try {
314
+ const formattedDeviceId = formatDeviceIdAsMac(this.device.deviceId)
315
+ this.device.bleMac = formattedDeviceId
316
+ await this.debugLog(`bleMac: ${this.device.bleMac}`)
317
+ this.platform.bleEventHandler[this.device.bleMac] = async (context: ceilingLightServiceData | ceilingLightProServiceData) => {
318
+ try {
319
+ await this.debugLog(`received BLE: ${JSON.stringify(context)}`)
320
+ this.serviceData = context
321
+ await this.BLEparseStatus()
322
+ await this.updateHomeKitCharacteristics()
323
+ } catch (e: any) {
324
+ await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e}`)
325
+ }
323
326
  }
327
+ } catch (error) {
328
+ await this.errorLog(`failed to format device ID as MAC, Error: ${error}`)
324
329
  }
325
330
  } else {
326
331
  await this.debugLog('is not listening to Platform BLE')
@@ -416,35 +421,41 @@ export class CeilingLight extends deviceBase {
416
421
  if (this.LightBulb.On !== this.accessory.context.On) {
417
422
  await this.debugLog(`BLEpushChanges On: ${this.LightBulb.On} OnCached: ${this.accessory.context.On}`)
418
423
  const switchbot = await this.platform.connectBLE(this.accessory, this.device)
419
- await this.convertBLEAddress()
420
- if (switchbot !== false) {
421
- switchbot
422
- .discover({ model: this.device.bleModel, id: this.device.bleMac })
423
- .then(async (device_list: any) => {
424
- this.infoLog(`On: ${this.LightBulb.On}`)
425
- return await this.retryBLE({
426
- max: await this.maxRetryBLE(),
427
- fn: async () => {
428
- if (this.LightBulb.On) {
429
- return await device_list[0].turnOn({ id: this.device.bleMac })
430
- } else {
431
- return await device_list[0].turnOff({ id: this.device.bleMac })
432
- }
433
- },
424
+ try {
425
+ const formattedDeviceId = formatDeviceIdAsMac(this.device.deviceId)
426
+ this.device.bleMac = formattedDeviceId
427
+ await this.debugLog(`bleMac: ${this.device.bleMac}`)
428
+ if (switchbot !== false) {
429
+ switchbot
430
+ .discover({ model: this.device.bleModel, id: this.device.bleMac })
431
+ .then(async (device_list: any) => {
432
+ this.infoLog(`On: ${this.LightBulb.On}`)
433
+ return await this.retryBLE({
434
+ max: await this.maxRetryBLE(),
435
+ fn: async () => {
436
+ if (this.LightBulb.On) {
437
+ return await device_list[0].turnOn({ id: this.device.bleMac })
438
+ } else {
439
+ return await device_list[0].turnOff({ id: this.device.bleMac })
440
+ }
441
+ },
442
+ })
434
443
  })
435
- })
436
- .then(async () => {
437
- await this.successLog(`On: ${this.LightBulb.On} sent over SwitchBot BLE, sent successfully`)
438
- this.LightBulb.On = false
439
- })
440
- .catch(async (e: any) => {
441
- await this.apiError(e)
442
- await this.errorLog(`failed BLEpushChanges with ${this.device.connectionType} Connection, Error Message: ${JSON.stringify(e.message)}`)
443
- await this.BLEPushConnection()
444
- })
445
- } else {
446
- await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${switchbot}`)
447
- await this.BLEPushConnection()
444
+ .then(async () => {
445
+ await this.successLog(`On: ${this.LightBulb.On} sent over SwitchBot BLE, sent successfully`)
446
+ this.LightBulb.On = false
447
+ })
448
+ .catch(async (e: any) => {
449
+ await this.apiError(e)
450
+ await this.errorLog(`failed BLEpushChanges with ${this.device.connectionType} Connection, Error Message: ${JSON.stringify(e.message)}`)
451
+ await this.BLEPushConnection()
452
+ })
453
+ } else {
454
+ await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${switchbot}`)
455
+ await this.BLEPushConnection()
456
+ }
457
+ } catch (error) {
458
+ await this.errorLog(`failed to format device ID as MAC, Error: ${error}`)
448
459
  }
449
460
  } else {
450
461
  await this.debugLog(`No changes (BLEpushChanges): On: ${this.LightBulb.On}, OnCached: ${this.accessory.context.On}`)