ris-framework 0.2.0-dev.12 → 0.2.0-dev.14

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 (59) hide show
  1. package/CHANGELOG.md +5 -2
  2. package/README.md +101 -158
  3. package/dist/api/IFramework.d.ts +3 -3
  4. package/dist/api/IFramework.d.ts.map +1 -1
  5. package/dist/api/content/ContentManager.d.ts +2 -2
  6. package/dist/api/content/ContentManager.d.ts.map +1 -1
  7. package/dist/api/content/IContentManager.d.ts +2 -2
  8. package/dist/api/content/IContentManager.d.ts.map +1 -1
  9. package/dist/api/rendering/IRenderer.d.ts +11 -6
  10. package/dist/api/rendering/IRenderer.d.ts.map +1 -1
  11. package/dist/api/rendering/enums.d.ts +5 -5
  12. package/dist/api/rendering/enums.d.ts.map +1 -1
  13. package/dist/api/rendering/texture/ITextureDescriptor.d.ts +49 -0
  14. package/dist/api/rendering/texture/ITextureDescriptor.d.ts.map +1 -0
  15. package/dist/api/rendering/texture/ITextureFactory.d.ts +2 -2
  16. package/dist/api/rendering/texture/ITextureFactory.d.ts.map +1 -1
  17. package/dist/api/rendering/texture/TextureUtilities.d.ts +22 -21
  18. package/dist/api/rendering/texture/TextureUtilities.d.ts.map +1 -1
  19. package/dist/api/rendering/texture/_export-texture.d.ts +1 -1
  20. package/dist/api/rendering/texture/_export-texture.d.ts.map +1 -1
  21. package/dist/core/rendering/ARenderer.d.ts +3 -0
  22. package/dist/core/rendering/ARenderer.d.ts.map +1 -1
  23. package/dist/core/rendering/texture/TextureDescriptorUtilities.d.ts +14 -0
  24. package/dist/core/rendering/texture/TextureDescriptorUtilities.d.ts.map +1 -0
  25. package/dist/core/rendering/texture/texture.d.ts +3 -2
  26. package/dist/core/rendering/texture/texture.d.ts.map +1 -1
  27. package/dist/index.js +277 -290
  28. package/dist/webgl/texture/WebGlTexture2D.d.ts +3 -2
  29. package/dist/webgl/texture/WebGlTexture2D.d.ts.map +1 -1
  30. package/dist/webgl/texture/WebGlTextureFactory.d.ts +2 -9
  31. package/dist/webgl/texture/WebGlTextureFactory.d.ts.map +1 -1
  32. package/dist/webgl/utilities/WebGlErrorUtilities.d.ts.map +1 -1
  33. package/dist/webgpu/texture/WebGpuTexture2D.d.ts +3 -2
  34. package/dist/webgpu/texture/WebGpuTexture2D.d.ts.map +1 -1
  35. package/dist/webgpu/texture/WebGpuTextureFactory.d.ts +2 -2
  36. package/dist/webgpu/texture/WebGpuTextureFactory.d.ts.map +1 -1
  37. package/package.json +1 -1
  38. package/src/Framework.ts +2 -2
  39. package/src/api/IFramework.ts +3 -3
  40. package/src/api/content/ContentManager.ts +9 -7
  41. package/src/api/content/IContentManager.ts +2 -2
  42. package/src/api/rendering/IRenderer.ts +12 -6
  43. package/src/api/rendering/enums.ts +5 -5
  44. package/src/api/rendering/texture/ITextureDescriptor.ts +57 -0
  45. package/src/api/rendering/texture/ITextureFactory.ts +2 -2
  46. package/src/api/rendering/texture/TextureUtilities.ts +43 -61
  47. package/src/api/rendering/texture/_export-texture.ts +1 -1
  48. package/src/core/rendering/ARenderer.ts +6 -2
  49. package/src/core/rendering/texture/TextureDescriptorUtilities.ts +27 -0
  50. package/src/core/rendering/texture/texture.ts +2 -2
  51. package/src/main.ts +5 -4
  52. package/src/webgl/texture/WebGlTexture2D.ts +9 -8
  53. package/src/webgl/texture/WebGlTextureFactory.ts +50 -64
  54. package/src/webgl/utilities/WebGlErrorUtilities.ts +3 -2
  55. package/src/webgpu/texture/WebGpuTexture2D.ts +10 -9
  56. package/src/webgpu/texture/WebGpuTextureFactory.ts +19 -16
  57. package/dist/api/rendering/texture/TextureDescriptor.d.ts +0 -42
  58. package/dist/api/rendering/texture/TextureDescriptor.d.ts.map +0 -1
  59. package/src/api/rendering/texture/TextureDescriptor.ts +0 -52
@@ -11,27 +11,10 @@ export declare class TextureUtilities {
11
11
  private static readonly _textureFormatVkFormat;
12
12
  private static readonly _mapTextureFormatKtxTranscodeFormat;
13
13
  private static readonly _mapKtxTranscodeFormatVkFormat;
14
- /**
15
- * Whether the format stores sRGB-encoded colour (sampled as linear by the GPU).
16
- * @param format The texture format.
17
- */
18
- static isSrgbFormat(format: TextureFormat): boolean;
19
- /**
20
- * Gets the sRGB variant of a linear format, or the format itself if it has none or is already sRGB.
21
- * @param format The texture format.
22
- */
23
- static toSrgbFormat(format: TextureFormat): TextureFormat;
24
- /**
25
- * Gets the linear variant of an sRGB format, or the format itself.
26
- * @param format The texture format.
27
- */
28
- static toLinearFormat(format: TextureFormat): TextureFormat;
29
- /**
30
- * Gets the block size (width, height) of a format: 1x1 for uncompressed, 4x4 for BC/ETC2, and the ASTC block.
31
- * Returns null for formats it does not know.
32
- * @param format The texture format.
33
- */
34
- static getBlockSize(format: TextureFormat): [number, number] | null;
14
+ /** sRGB format → its linear variant. */
15
+ private static readonly _linearVariant;
16
+ /** Every sRGB format. */
17
+ private static readonly _srgbFormats;
35
18
  /**
36
19
  * Checks if the given texture format is a compressed texture format.
37
20
  * @param format - The texture format to check.
@@ -73,5 +56,23 @@ export declare class TextureUtilities {
73
56
  * @returns The VkFormat.
74
57
  */
75
58
  static convertKtxTranscodeFormatToVkFormat(transcodeFormat: KtxTranscodeFormat): VkFormat;
59
+ /**
60
+ * Maps the linear format to the srgb variant.
61
+ * @param textureFormat The linear format.
62
+ * @return The srgb variant, or the format itself if it is already sRGB or has no sRGB variant (e.g. PVRTC).
63
+ */
64
+ static convertToSrgbVariant(textureFormat: TextureFormat): TextureFormat;
65
+ /**
66
+ * Maps the srgb format to the linear variant.
67
+ * @param textureFormat The srgb format.
68
+ * @return The linear variant, or the format itself if it is already linear.
69
+ */
70
+ static convertToLinearVariant(textureFormat: TextureFormat): TextureFormat;
71
+ /**
72
+ * Checks whether the texture format is an sRGB format.
73
+ * @param textureFormat The texture format to check.
74
+ * @return True if srgb texture format.
75
+ */
76
+ static isSrgbFormat(textureFormat: TextureFormat): boolean;
76
77
  }
77
78
  //# sourceMappingURL=TextureUtilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextureUtilities.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/TextureUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAqB,QAAQ,EAAC,MAAM,UAAU,CAAC;AAGzE;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAkD/C;IAEF,mDAAmD;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAqBlC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAgD7C;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAsD5C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAazD;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAmBpD;IAEF;;;OAGG;WACW,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAI1D;;;OAGG;WACW,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa;IAIhE;;;OAGG;WACW,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa;IAOlE;;;;OAIG;WACW,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAoB1E;;;;OAIG;WACW,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIvE;;;;;;OAMG;WACW,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI9D;;;;;;;OAOG;WACW,WAAW,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAkB9F;;;;OAIG;WACW,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa;IAQ/E;;;;OAIG;WACW,wCAAwC,CAAC,aAAa,EAAE,aAAa,GAAG,kBAAkB;IAQxG;;;;OAIG;WACW,mCAAmC,CAAC,eAAe,EAAE,kBAAkB,GAAG,QAAQ;CAQnG"}
1
+ {"version":3,"file":"TextureUtilities.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/TextureUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAqB,QAAQ,EAAC,MAAM,UAAU,CAAC;AAGzE;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAkD/C;IAEF,mDAAmD;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAqBlC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAgD7C;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAsD5C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAazD;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAmBpD;IAEF,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAEpC;IAEF,yBAAyB;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAiE;IAErG;;;;OAIG;WACW,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIvE;;;;;;OAMG;WACW,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI9D;;;;;;;OAOG;WACW,WAAW,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAkB9F;;;;OAIG;WACW,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa;IAQ/E;;;;OAIG;WACW,wCAAwC,CAAC,aAAa,EAAE,aAAa,GAAG,kBAAkB;IAQxG;;;;OAIG;WACW,mCAAmC,CAAC,eAAe,EAAE,kBAAkB,GAAG,QAAQ;IAQhG;;;;OAIG;WACW,oBAAoB,CAAC,aAAa,EAAE,aAAa,GAAI,aAAa;IAIhF;;;;OAIG;WACW,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAI,aAAa;IAIlF;;;;OAIG;WACW,YAAY,CAAC,aAAa,EAAE,aAAa,GAAI,OAAO;CAGrE"}
@@ -5,6 +5,6 @@ export * from "./TextureViewDimension.js";
5
5
  export * from "./TextureFormat.js";
6
6
  export * from "./ITextureView.js";
7
7
  export * from "./ITextureFactory.js";
8
- export * from "./TextureDescriptor.js";
8
+ export * from "./ITextureDescriptor.js";
9
9
  export * from "./TextureUtilities.js";
10
10
  //# sourceMappingURL=_export-texture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_export-texture.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/_export-texture.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"_export-texture.d.ts","sourceRoot":"","sources":["../../../../src/api/rendering/texture/_export-texture.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
@@ -2,6 +2,7 @@ import type { ITempRenderer } from "../../api/rendering/renderer-interface.js";
2
2
  import type { vec2 } from "gl-matrix";
3
3
  import type { RenderingLimits } from "../../api/rendering/rendering-limits.js";
4
4
  import { Color, type IFramework, type IGraphicsDevice, type IMainRenderTargetRenderPipeline, type IRendererConfiguration, type IRenderPass, type ISwapChain, type ITexture2D, RenderingBackend, TextureFormat } from "../../api/index.js";
5
+ import { ColorSpace } from "../../api/rendering/enums.js";
5
6
  export declare abstract class ARenderer implements ITempRenderer {
6
7
  protected readonly _framework: IFramework;
7
8
  /**
@@ -32,6 +33,8 @@ export declare abstract class ARenderer implements ITempRenderer {
32
33
  get limits(): RenderingLimits | null;
33
34
  /** @inheritdoc */
34
35
  readonly preferredTextureFormat: TextureFormat;
36
+ /** @inheritDoc */
37
+ readonly preferredColorSpace: ColorSpace;
35
38
  /** @inheritdoc */
36
39
  get preferredDepthStencilFormat(): TextureFormat;
37
40
  /** @inheritdoc */
@@ -1 +1 @@
1
- {"version":3,"file":"ARenderer.d.ts","sourceRoot":"","sources":["../../../src/core/rendering/ARenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ARenderer.d.ts","sourceRoot":"","sources":["../../../src/core/rendering/ARenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type ITextureDescriptor } from "../../../api/index.js";
2
+ /**
3
+ * A texture descriptor with all defaults applied. Only `data` and `blockSize` stay optional.
4
+ * @internal
5
+ */
6
+ export type ResolvedTextureDescriptor = Required<Omit<ITextureDescriptor, "data" | "blockSize">> & Pick<ITextureDescriptor, "data" | "blockSize">;
7
+ /**
8
+ * Fills in the defaults for every missing field of a texture descriptor.
9
+ * @param desc The descriptor, possibly partial or missing.
10
+ * @returns A new descriptor with the defaults applied.
11
+ * @internal
12
+ */
13
+ export declare function resolveTextureDescriptor(desc?: ITextureDescriptor): ResolvedTextureDescriptor;
14
+ //# sourceMappingURL=TextureDescriptorUtilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextureDescriptorUtilities.d.ts","sourceRoot":"","sources":["../../../../src/core/rendering/texture/TextureDescriptorUtilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,kBAAkB,EAA8B,MAAM,uBAAuB,CAAC;AAE3F;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GACjC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC;AAE9G;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,yBAAyB,CAW7F"}
@@ -1,5 +1,6 @@
1
- import { type ITexture2D, type ITextureView, State, type TextureDescriptor, type TextureFormat, TextureUsage, TextureViewDescriptor } from "../../../api/index.js";
1
+ import { type ITexture2D, type ITextureView, State, type TextureFormat, TextureUsage, TextureViewDescriptor } from "../../../api/index.js";
2
2
  import { vec2 } from "gl-matrix";
3
+ import type { ResolvedTextureDescriptor } from "./TextureDescriptorUtilities.js";
3
4
  /**
4
5
  * The ATexture2D class is an abstract base class that implements the ITexture2D interface. It provides common properties and a constructor for initializing a 2D texture, but it does not implement the actual texture creation and management logic, which must be provided by subclasses that extend this base class.
5
6
  */
@@ -17,7 +18,7 @@ export declare abstract class ATexture2D implements ITexture2D {
17
18
  * The constructor for the ATexture2D class.
18
19
  * @param descriptor - The texture descriptor.
19
20
  */
20
- protected constructor(descriptor: TextureDescriptor);
21
+ protected constructor(descriptor: ResolvedTextureDescriptor);
21
22
  /** @inheritDoc */
22
23
  addOnDisposedListener(event: (sender: ITexture2D) => void): void;
23
24
  /** @inheritDoc */
@@ -1 +1 @@
1
- {"version":3,"file":"texture.d.ts","sourceRoot":"","sources":["../../../../src/core/rendering/texture/texture.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,UAAU,EAAE,KAAK,YAAY,EAClC,KAAK,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,YAAY,EACZ,qBAAqB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B;;GAEG;AACH,8BAAsB,UAAW,YAAW,UAAU;IAElD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAa;IAEnC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC;IACvB,SAAS,CAAC,MAAM,EAAE,KAAK,CAAiB;IACxC,SAAS,CAAC,KAAK,SAAK;IACpB,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAS;IAC5C,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IAC/B,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC;IAE3B,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC,EAAE,CAAM;IAEjE;;;OAGG;IACH,SAAS,aACL,UAAU,EAAE,iBAAiB;IA4BjC,kBAAkB;IACX,qBAAqB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIvE,kBAAkB;IACX,wBAAwB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAS1E,kBAAkB;IAClB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,kBAAkB;IAClB,SAAgB,kBAAkB,EAAE,YAAY,CAAC;IAEjD,kBAAkB;IAClB,SAAgB,YAAY,EAAE,YAAY,CAAC;IAE3C,kBAAkB;IAClB,SAAgB,iBAAiB,EAAE,aAAa,CAAC;IAEjD,kBAAkB;IAClB,SAAgB,aAAa,EAAE,aAAa,CAAC;IAE7C,kBAAkB;IAClB,IAAW,YAAY,IAAI,KAAK,CAE/B;IAED,kBAAkB;IAClB,IAAW,MAAM,IAAI,GAAG,CAEvB;IAED;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAIzB;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,IAAI;IAE3B,kBAAkB;IAClB,IAAW,KAAK,IAAI,KAAK,CAExB;IAED,kBAAkB;IAClB,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B,kBAAkB;IAClB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,kBAAkB;IAClB,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,kBAAkB;IAClB,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,kBAAkB;IAClB,SAAgB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;;;OAIG;aACa,UAAU,CAAC,UAAU,CAAC,EAAE,qBAAqB,GAAG,YAAY;IAE5E,kBAAkB;aACF,OAAO,IAAI,IAAI;CAClC"}
1
+ {"version":3,"file":"texture.d.ts","sourceRoot":"","sources":["../../../../src/core/rendering/texture/texture.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,UAAU,EAAE,KAAK,YAAY,EAClC,KAAK,EACL,KAAK,aAAa,EAClB,YAAY,EACZ,qBAAqB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,iCAAiC,CAAC;AAE/E;;GAEG;AACH,8BAAsB,UAAW,YAAW,UAAU;IAElD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAa;IAEnC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC;IACvB,SAAS,CAAC,MAAM,EAAE,KAAK,CAAiB;IACxC,SAAS,CAAC,KAAK,SAAK;IACpB,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAS;IAC5C,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IAC/B,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC;IAE3B,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC,EAAE,CAAM;IAEjE;;;OAGG;IACH,SAAS,aACL,UAAU,EAAE,yBAAyB;IA4BzC,kBAAkB;IACX,qBAAqB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIvE,kBAAkB;IACX,wBAAwB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAS1E,kBAAkB;IAClB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,kBAAkB;IAClB,SAAgB,kBAAkB,EAAE,YAAY,CAAC;IAEjD,kBAAkB;IAClB,SAAgB,YAAY,EAAE,YAAY,CAAC;IAE3C,kBAAkB;IAClB,SAAgB,iBAAiB,EAAE,aAAa,CAAC;IAEjD,kBAAkB;IAClB,SAAgB,aAAa,EAAE,aAAa,CAAC;IAE7C,kBAAkB;IAClB,IAAW,YAAY,IAAI,KAAK,CAE/B;IAED,kBAAkB;IAClB,IAAW,MAAM,IAAI,GAAG,CAEvB;IAED;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAIzB;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,IAAI;IAE3B,kBAAkB;IAClB,IAAW,KAAK,IAAI,KAAK,CAExB;IAED,kBAAkB;IAClB,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B,kBAAkB;IAClB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,kBAAkB;IAClB,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,kBAAkB;IAClB,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,kBAAkB;IAClB,SAAgB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;;;OAIG;aACa,UAAU,CAAC,UAAU,CAAC,EAAE,qBAAqB,GAAG,YAAY;IAE5E,kBAAkB;aACF,OAAO,IAAI,IAAI;CAClC"}