@lakuna/umath 1.4.3 → 2.0.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.
Files changed (76) hide show
  1. package/dist/index.d.ts +6 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +11 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/linalg/DualQuaternion.d.ts +23 -46
  6. package/dist/linalg/DualQuaternion.d.ts.map +1 -1
  7. package/dist/linalg/DualQuaternion.js +47 -70
  8. package/dist/linalg/DualQuaternion.js.map +1 -1
  9. package/dist/linalg/Matrix2.d.ts +16 -30
  10. package/dist/linalg/Matrix2.d.ts.map +1 -1
  11. package/dist/linalg/Matrix2.js +30 -44
  12. package/dist/linalg/Matrix2.js.map +1 -1
  13. package/dist/linalg/Matrix3.d.ts +21 -42
  14. package/dist/linalg/Matrix3.d.ts.map +1 -1
  15. package/dist/linalg/Matrix3.js +43 -84
  16. package/dist/linalg/Matrix3.js.map +1 -1
  17. package/dist/linalg/Matrix4.d.ts +40 -79
  18. package/dist/linalg/Matrix4.d.ts.map +1 -1
  19. package/dist/linalg/Matrix4.js +86 -171
  20. package/dist/linalg/Matrix4.js.map +1 -1
  21. package/dist/linalg/Quaternion.d.ts +29 -60
  22. package/dist/linalg/Quaternion.d.ts.map +1 -1
  23. package/dist/linalg/Quaternion.js +54 -85
  24. package/dist/linalg/Quaternion.js.map +1 -1
  25. package/dist/linalg/SlowMatrix.d.ts.map +1 -1
  26. package/dist/linalg/SlowMatrix.js +52 -78
  27. package/dist/linalg/SlowMatrix.js.map +1 -1
  28. package/dist/linalg/SlowSquareMatrix.js +1 -1
  29. package/dist/linalg/SlowSquareMatrix.js.map +1 -1
  30. package/dist/linalg/SlowVector.d.ts +165 -0
  31. package/dist/linalg/SlowVector.d.ts.map +1 -0
  32. package/dist/linalg/SlowVector.js +369 -0
  33. package/dist/linalg/SlowVector.js.map +1 -0
  34. package/dist/linalg/Vector.d.ts +20 -15
  35. package/dist/linalg/Vector.d.ts.map +1 -1
  36. package/dist/linalg/Vector2.d.ts +42 -48
  37. package/dist/linalg/Vector2.d.ts.map +1 -1
  38. package/dist/linalg/Vector2.js +74 -82
  39. package/dist/linalg/Vector2.js.map +1 -1
  40. package/dist/linalg/Vector3.d.ts +46 -56
  41. package/dist/linalg/Vector3.d.ts.map +1 -1
  42. package/dist/linalg/Vector3.js +82 -104
  43. package/dist/linalg/Vector3.js.map +1 -1
  44. package/dist/linalg/Vector4.d.ts +40 -44
  45. package/dist/linalg/Vector4.d.ts.map +1 -1
  46. package/dist/linalg/Vector4.js +69 -79
  47. package/dist/linalg/Vector4.js.map +1 -1
  48. package/dist/utility/MatrixSizeError.d.ts +1 -1
  49. package/dist/utility/MatrixSizeError.d.ts.map +1 -1
  50. package/dist/utility/MatrixSizeError.js +1 -1
  51. package/dist/utility/MatrixSizeError.js.map +1 -1
  52. package/dist/utility/VectorSizeError.d.ts +12 -0
  53. package/dist/utility/VectorSizeError.d.ts.map +1 -0
  54. package/dist/utility/VectorSizeError.js +15 -0
  55. package/dist/utility/VectorSizeError.js.map +1 -0
  56. package/dist/utility/createAxisAngleLike.d.ts +10 -0
  57. package/dist/utility/createAxisAngleLike.d.ts.map +1 -0
  58. package/dist/utility/createAxisAngleLike.js +10 -0
  59. package/dist/utility/createAxisAngleLike.js.map +1 -0
  60. package/package.json +8 -10
  61. package/src/index.ts +16 -0
  62. package/src/linalg/DualQuaternion.ts +51 -134
  63. package/src/linalg/Matrix2.ts +32 -83
  64. package/src/linalg/Matrix3.ts +55 -149
  65. package/src/linalg/Matrix4.ts +136 -292
  66. package/src/linalg/Quaternion.ts +62 -153
  67. package/src/linalg/SlowMatrix.ts +82 -81
  68. package/src/linalg/SlowSquareMatrix.ts +1 -1
  69. package/src/linalg/SlowVector.ts +449 -0
  70. package/src/linalg/Vector.ts +21 -16
  71. package/src/linalg/Vector2.ts +84 -147
  72. package/src/linalg/Vector3.ts +102 -188
  73. package/src/linalg/Vector4.ts +88 -137
  74. package/src/utility/MatrixSizeError.ts +1 -1
  75. package/src/utility/VectorSizeError.ts +14 -0
  76. package/src/utility/createAxisAngleLike.ts +13 -0
@@ -1,6 +1,14 @@
1
1
  import MatrixSizeError from "../utility/MatrixSizeError.js";
2
2
  import PartialMatrixError from "../utility/PartialMatrixError.js";
3
- import epsilon from "../utility/epsilon.js";
3
+ import approx from "../algorithms/approx.js";
4
+ /**
5
+ * Determine whether the given `MatrixLike` has size information.
6
+ * @internal
7
+ */
8
+ const isSized = (matrix) => "width" in matrix &&
9
+ typeof matrix.width === "number" &&
10
+ "height" in matrix &&
11
+ typeof matrix.height === "number";
4
12
  /**
5
13
  * A variable-size matrix.
6
14
  * @see {@link https://en.wikipedia.org/wiki/Matrix_(mathematics) | Matrix}
@@ -14,14 +22,7 @@ export default class SlowMatrix extends Float32Array {
14
22
  constructor(...cols) {
15
23
  super(cols.flat());
16
24
  this.width = cols.length;
17
- const firstColumn = cols[0];
18
- if (typeof firstColumn === "undefined") {
19
- throw new PartialMatrixError();
20
- }
21
- this.height = this.width && firstColumn.length;
22
- if (this.width < 1 || this.height < 1) {
23
- throw new MatrixSizeError();
24
- }
25
+ this.height = cols[0]?.length ?? 0;
25
26
  // Ensure that every column is the same height.
26
27
  for (let i = 0; i < this.width; i++) {
27
28
  if ((cols[i]?.length ?? 0) !== this.height) {
@@ -47,20 +48,16 @@ export default class SlowMatrix extends Float32Array {
47
48
  * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
48
49
  */
49
50
  add(matrix) {
50
- const matrixWidth = "width" in matrix ? matrix.width : 1;
51
- const matrixHeight = "height" in matrix ? matrix.height : 1;
52
- if (this.width !== matrixWidth || this.height !== matrixHeight) {
51
+ if (!isSized(matrix) ||
52
+ this.width !== matrix.width ||
53
+ this.height !== matrix.height) {
53
54
  throw new MatrixSizeError();
54
55
  }
55
56
  const cols = [];
56
57
  for (let x = 0; x < this.width; x++) {
57
58
  for (let y = 0; y < this.height; y++) {
58
- const a = this[x * this.height + y];
59
- const b = matrix[x * matrixHeight + y];
60
- if (typeof a === "undefined" || typeof b === "undefined") {
61
- throw new PartialMatrixError();
62
- }
63
- (cols[x] ??= [])[y] = a + b;
59
+ const i = x * this.height + y;
60
+ (cols[x] ??= [])[y] = (this[i] ?? 0) + (matrix[i] ?? 0);
64
61
  }
65
62
  }
66
63
  return new SlowMatrix(...cols);
@@ -73,11 +70,7 @@ export default class SlowMatrix extends Float32Array {
73
70
  const cols = [];
74
71
  for (let x = 0; x < this.width; x++) {
75
72
  for (let y = 0; y < this.height; y++) {
76
- const a = this[x * this.height + y];
77
- if (typeof a === "undefined") {
78
- throw new PartialMatrixError();
79
- }
80
- (cols[x] ??= [])[y] = a;
73
+ (cols[x] ??= [])[y] = this[x * this.height + y] ?? 0;
81
74
  }
82
75
  }
83
76
  return new SlowMatrix(...cols);
@@ -88,19 +81,13 @@ export default class SlowMatrix extends Float32Array {
88
81
  * @returns This matrix.
89
82
  */
90
83
  copy(matrix) {
91
- const matrixWidth = "width" in matrix ? matrix.width : 1;
92
- const matrixHeight = "height" in matrix ? matrix.height : 1;
93
- if (this.width !== matrixWidth || this.height !== matrixHeight) {
84
+ if (!isSized(matrix) ||
85
+ this.width !== matrix.width ||
86
+ this.height !== matrix.height) {
94
87
  throw new MatrixSizeError();
95
88
  }
96
- for (let x = 0; x < this.width; x++) {
97
- for (let y = 0; y < this.height; y++) {
98
- const a = matrix[x * this.height + y];
99
- if (typeof a === "undefined") {
100
- throw new PartialMatrixError();
101
- }
102
- this[x * this.width + y] = a;
103
- }
89
+ for (let i = 0; i < matrix.width * matrix.height; i++) {
90
+ this[i] = matrix[i] ?? 0;
104
91
  }
105
92
  return this;
106
93
  }
@@ -110,18 +97,13 @@ export default class SlowMatrix extends Float32Array {
110
97
  * @returns Whether or not the matrices are equivalent.
111
98
  */
112
99
  equals(matrix) {
113
- const matrixWidth = "width" in matrix ? matrix.width : 1;
114
- const matrixHeight = "height" in matrix ? matrix.height : 1;
115
- if (this.width !== matrixWidth || this.height !== matrixHeight) {
100
+ if (!isSized(matrix) ||
101
+ this.width !== matrix.width ||
102
+ this.height !== matrix.height) {
116
103
  return false;
117
104
  }
118
105
  for (let i = 0; i < this.length; i++) {
119
- const a = this[i];
120
- const b = matrix[i];
121
- if (typeof a === "undefined" || typeof b === "undefined") {
122
- throw new PartialMatrixError();
123
- }
124
- if (Math.abs(a - b) > epsilon) {
106
+ if (approx(this[i] ?? 0, matrix[i] ?? 0)) {
125
107
  return false;
126
108
  }
127
109
  }
@@ -133,9 +115,9 @@ export default class SlowMatrix extends Float32Array {
133
115
  * @returns Whether the matrices are equivalent.
134
116
  */
135
117
  exactEquals(matrix) {
136
- const matrixWidth = "width" in matrix ? matrix.width : 1;
137
- const matrixHeight = "height" in matrix ? matrix.height : 1;
138
- if (this.width !== matrixWidth || this.height !== matrixHeight) {
118
+ if (!isSized(matrix) ||
119
+ this.width !== matrix.width ||
120
+ this.height !== matrix.height) {
139
121
  return false;
140
122
  }
141
123
  for (let i = 0; i < this.length; i++) {
@@ -152,25 +134,20 @@ export default class SlowMatrix extends Float32Array {
152
134
  * @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
153
135
  */
154
136
  multiply(matrix) {
155
- const matrixWidth = "width" in matrix ? matrix.width : 1;
156
- const matrixHeight = "height" in matrix ? matrix.height : 1;
157
- if (this.width !== matrixHeight) {
137
+ if (!isSized(matrix) || this.width !== matrix.height) {
158
138
  throw new MatrixSizeError();
159
139
  }
160
140
  const n = this.height;
161
141
  const m = this.width;
162
- const p = matrixWidth;
142
+ const p = matrix.width;
163
143
  const out = [];
164
144
  for (let i = 0; i < n; i++) {
165
145
  for (let j = 0; j < p; j++) {
166
146
  let sum = 0;
167
147
  for (let k = 0; k < m; k++) {
168
- const a = this[k * this.height + i];
169
- const b = matrix[j * matrixHeight + k];
170
- if (typeof a === "undefined" || typeof b === "undefined") {
171
- throw new PartialMatrixError();
172
- }
173
- sum += a * b;
148
+ sum +=
149
+ (this[k * this.height + i] ?? 0) *
150
+ (matrix[j * matrix.height + k] ?? 0);
174
151
  }
175
152
  (out[j] ??= [])[i] = sum;
176
153
  }
@@ -186,11 +163,7 @@ export default class SlowMatrix extends Float32Array {
186
163
  multiplyScalar(scalar) {
187
164
  const out = this.clone();
188
165
  for (let i = 0; i < out.length; i++) {
189
- const a = out[i];
190
- if (typeof a === "undefined") {
191
- throw new PartialMatrixError();
192
- }
193
- out[i] = a * scalar;
166
+ out[i] = (out[i] ?? 0) * scalar;
194
167
  }
195
168
  return out;
196
169
  }
@@ -203,10 +176,19 @@ export default class SlowMatrix extends Float32Array {
203
176
  * @see {@link https://en.wikipedia.org/wiki/Matrix_multiplication | Matrix multiplication}
204
177
  */
205
178
  multiplyScalarAndAdd(matrix, scalar) {
206
- if (!("multiplyScalar" in matrix)) {
207
- throw new Error();
179
+ if (!isSized(matrix) ||
180
+ this.width !== matrix.width ||
181
+ this.height !== matrix.height) {
182
+ throw new MatrixSizeError();
183
+ }
184
+ const scaled = {
185
+ height: matrix.height,
186
+ width: matrix.width
187
+ };
188
+ for (let i = 0; i < matrix.width * matrix.height; i++) {
189
+ scaled[i] = (matrix[i] ?? 0) * scalar;
208
190
  }
209
- return this.add(matrix.multiplyScalar(scalar));
191
+ return this.add(scaled);
210
192
  }
211
193
  /**
212
194
  * Subtract another matrix from this one.
@@ -215,20 +197,16 @@ export default class SlowMatrix extends Float32Array {
215
197
  * @see {@link https://en.wikipedia.org/wiki/Matrix_addition | Matrix addition}
216
198
  */
217
199
  subtract(matrix) {
218
- const matrixWidth = "width" in matrix ? matrix.width : 1;
219
- const matrixHeight = "height" in matrix ? matrix.height : 1;
220
- if (this.width !== matrixWidth || this.height !== matrixHeight) {
200
+ if (!isSized(matrix) ||
201
+ this.width !== matrix.width ||
202
+ this.height !== matrix.height) {
221
203
  throw new MatrixSizeError();
222
204
  }
223
205
  const cols = [];
224
206
  for (let x = 0; x < this.width; x++) {
225
207
  for (let y = 0; y < this.height; y++) {
226
- const a = this[x * this.height + y];
227
- const b = matrix[x * matrixHeight + y];
228
- if (typeof a === "undefined" || typeof b === "undefined") {
229
- throw new PartialMatrixError();
230
- }
231
- (cols[x] ??= [])[y] = a - b;
208
+ const i = x * this.height + y;
209
+ (cols[x] ??= [])[y] = (this[i] ?? 0) - (matrix[i] ?? 0);
232
210
  }
233
211
  }
234
212
  return new SlowMatrix(...cols);
@@ -242,11 +220,7 @@ export default class SlowMatrix extends Float32Array {
242
220
  const cols = [];
243
221
  for (let x = 0; x < this.width; x++) {
244
222
  for (let y = 0; y < this.height; y++) {
245
- const a = this[x * this.height + y];
246
- if (typeof a === "undefined") {
247
- throw new PartialMatrixError();
248
- }
249
- (cols[y] ??= [])[x] = a;
223
+ (cols[y] ??= [])[x] = this[x * this.height + y] ?? 0;
250
224
  }
251
225
  }
252
226
  return new SlowMatrix(...cols);
@@ -1 +1 @@
1
- {"version":3,"file":"SlowMatrix.js","sourceRoot":"","sources":["../../src/linalg/SlowMatrix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SlowMatrix.js","sourceRoot":"","sources":["../../src/linalg/SlowMatrix.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export default class SlowSquareMatrix extends SlowMatrix {
17
17
  // Ensure that every column is the same height and that the height is equal to the width.
18
18
  for (let i = 0; i < this.width; i++) {
19
19
  const col = cols[i];
20
- if (typeof col === "undefined" || col.length !== this.height) {
20
+ if (col?.length !== this.height) {
21
21
  throw new MatrixSizeError();
22
22
  }
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SlowSquareMatrix.js","sourceRoot":"","sources":["../../src/linalg/SlowSquareMatrix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SlowSquareMatrix.js","sourceRoot":"","sources":["../../src/linalg/SlowSquareMatrix.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,165 @@
1
+ import type Vector from "./Vector.js";
2
+ import type { VectorLike } from "./Vector.js";
3
+ /**
4
+ * A variable-size vector.
5
+ * @see {@link https://en.wikipedia.org/wiki/Euclidean_vector | Euclidean vector}
6
+ * @public
7
+ */
8
+ export default class SlowVector extends Float32Array implements Vector {
9
+ /**
10
+ * Create a variable-size vector from the given values.
11
+ * @param values - The values in the vector.
12
+ */
13
+ constructor(...values: number[]);
14
+ /**
15
+ * Determine whether this vector is roughly equivalent to another.
16
+ * @param vector - The other vector.
17
+ * @returns Whether the vectors are equivalent.
18
+ */
19
+ equals(vector: VectorLike): boolean;
20
+ /**
21
+ * Determine whether this vector is exactly equivalent to another.
22
+ * @param vector - The other vector.
23
+ * @returns Whether the vectors are equivalent.
24
+ */
25
+ exactEquals(vector: VectorLike): boolean;
26
+ /**
27
+ * Add two vectors of the same size.
28
+ * @param vector - The other vector.
29
+ * @returns The sum of the vectors.
30
+ */
31
+ add(vector: VectorLike): SlowVector;
32
+ /**
33
+ * Create a copy of this vector.
34
+ * @returns A copy of this vector.
35
+ */
36
+ clone(): SlowVector;
37
+ /**
38
+ * Copy the values of another vector into this one.
39
+ * @param vector - The vector to copy.
40
+ * @returns This vector.
41
+ */
42
+ copy(vector: VectorLike): this;
43
+ /**
44
+ * Multiply this vector by another.
45
+ * @param vector - The other vector.
46
+ * @returns The product of the vectors.
47
+ */
48
+ multiply(vector: VectorLike): SlowVector;
49
+ /**
50
+ * Divide this vector by another.
51
+ * @param vector - The other vector.
52
+ * @returns The quotient of the vectors.
53
+ */
54
+ divide(vector: VectorLike): SlowVector;
55
+ /**
56
+ * Subtract another vector from this one.
57
+ * @param vector - The other vector.
58
+ * @returns The difference between the vectors.
59
+ */
60
+ subtract(vector: VectorLike): SlowVector;
61
+ /**
62
+ * Round up the components of this vector.
63
+ * @returns The rounded vector.
64
+ */
65
+ ceil(): SlowVector;
66
+ /**
67
+ * Round down the components of this vector.
68
+ * @returns The rounded vector.
69
+ */
70
+ floor(): SlowVector;
71
+ /**
72
+ * Round the components of this vector.
73
+ * @returns The rounded vector.
74
+ */
75
+ round(): SlowVector;
76
+ /**
77
+ * Return the minimum of this and another vector.
78
+ * @param vector - The other vector.
79
+ * @returns The minimum.
80
+ */
81
+ min(vector: VectorLike): SlowVector;
82
+ /**
83
+ * Return the maximum of this and another vector.
84
+ * @param vector - The other vector.
85
+ * @returns The maximum.
86
+ */
87
+ max(vector: VectorLike): SlowVector;
88
+ /**
89
+ * Raise each component of this vector to the given power.
90
+ * @param exponent - The exponent (power) to raise each component to.
91
+ * @returns The power (result of the exponentiation).
92
+ */
93
+ pow(exponent: number): SlowVector;
94
+ /**
95
+ * Scale this vector by a scalar.
96
+ * @param scalar - The scalar.
97
+ * @returns The scaled vector.
98
+ */
99
+ scale(scalar: number): SlowVector;
100
+ /**
101
+ * Add another vector to this one after scaling the other by a scalar.
102
+ * @param vector - The other vector.
103
+ * @param scalar - The scalar.
104
+ * @returns The sum.
105
+ */
106
+ scaleAndAdd(vector: VectorLike, scalar: number): SlowVector;
107
+ /**
108
+ * Calculate the Euclidean distance between this vector and another.
109
+ * @param vector - The other vector.
110
+ * @returns The distance.
111
+ */
112
+ distance(vector: VectorLike): number;
113
+ /**
114
+ * Calculate the squared Euclidean distance between this vector and another.
115
+ * @param vector - The other vector.
116
+ * @returns The squared distance.
117
+ */
118
+ squaredDistance(vector: VectorLike): number;
119
+ /** Get the magnitude (length) of this vector. */
120
+ get magnitude(): number;
121
+ /** Get the squared magnitude (length) of this vector. */
122
+ get squaredMagnitude(): number;
123
+ /**
124
+ * Negate this vector.
125
+ * @returns The negated vector.
126
+ */
127
+ negate(): SlowVector;
128
+ /**
129
+ * Calculate the multiplicative inverse of the components of this vector.
130
+ * @returns The inverted vector.
131
+ */
132
+ invert(): SlowVector;
133
+ /**
134
+ * Normalize this vector.
135
+ * @returns The normalized vector.
136
+ * @see {@link https://en.wikipedia.org/wiki/Unit_vector | Unit vector}
137
+ */
138
+ normalize(): SlowVector;
139
+ /**
140
+ * Calculate the dot product of this and another vector.
141
+ * @param vector - The other vector.
142
+ * @returns The dot product.
143
+ * @see {@link https://en.wikipedia.org/wiki/Dot_product | Dot product}
144
+ */
145
+ dot(vector: VectorLike): number;
146
+ /**
147
+ * Perform a linear interpolation between this and another vector.
148
+ * @param vector - The other vector.
149
+ * @param t - The interpolation amount (in `[0,1]`).
150
+ * @returns The interpolated vector.
151
+ */
152
+ lerp(vector: VectorLike, t: number): SlowVector;
153
+ /**
154
+ * Set this vector to a random value with the given magnitude.
155
+ * @param magnitude - The magnitude.
156
+ * @returns This vector.
157
+ */
158
+ random(magnitude: number): this;
159
+ /**
160
+ * Set this to the zero vector.
161
+ * @returns This vector.
162
+ */
163
+ zero(): this;
164
+ }
165
+ //# sourceMappingURL=SlowVector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlowVector.d.ts","sourceRoot":"","sources":["../../src/linalg/SlowVector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoB9C;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,YAAa,YAAW,MAAM;IACrE;;;OAGG;gBACgB,GAAG,MAAM,EAAE,MAAM,EAAE;IAItC;;;;OAIG;IACI,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAoB1C;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAc/C;;;;OAIG;IACI,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAa1C;;;OAGG;IACI,KAAK,IAAI,UAAU;IAI1B;;;;OAIG;IACI,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAYrC;;;;OAIG;IACI,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAa/C;;;;OAIG;IACI,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAa7C;;;;OAIG;IACI,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAa/C;;;OAGG;IACI,IAAI,IAAI,UAAU;IASzB;;;OAGG;IACI,KAAK,IAAI,UAAU;IAS1B;;;OAGG;IACI,KAAK,IAAI,UAAU;IAS1B;;;;OAIG;IACI,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAa1C;;;;OAIG;IACI,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAa1C;;;;OAIG;IACI,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IASxC;;;;OAIG;IACI,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IASxC;;;;;OAKG;IACI,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU;IAalE;;;;OAIG;IACI,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAa3C;;;;OAIG;IACI,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAalD,iDAAiD;IACjD,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,yDAAyD;IACzD,IAAW,gBAAgB,IAAI,MAAM,CAOpC;IAED;;;OAGG;IACI,MAAM,IAAI,UAAU;IAI3B;;;OAGG;IACI,MAAM,IAAI,UAAU;IAS3B;;;;OAIG;IACI,SAAS,IAAI,UAAU;IAI9B;;;;;OAKG;IACI,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAatC;;;;;OAKG;IACI,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IActD;;;;OAIG;IACI,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IActC;;;OAGG;IACI,IAAI,IAAI,IAAI;CAOnB"}