@syntrologie/adapt-product 2.28.0 → 2.29.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 (113) hide show
  1. package/dist/__fixtures__/variant-payloads.d.ts +33 -0
  2. package/dist/__fixtures__/variant-payloads.d.ts.map +1 -0
  3. package/dist/cdn.d.ts +1 -0
  4. package/dist/cdn.d.ts.map +1 -1
  5. package/dist/cdn.js +9 -3
  6. package/dist/cdn.js.map +2 -2
  7. package/dist/{chunk-SGJGJRCP.js → chunk-7Z4Y44WC.js} +139 -6
  8. package/dist/chunk-7Z4Y44WC.js.map +7 -0
  9. package/dist/chunk-VY23O32Z.js +10963 -0
  10. package/dist/chunk-VY23O32Z.js.map +7 -0
  11. package/dist/decision/card-effects.d.ts +20 -0
  12. package/dist/decision/card-effects.d.ts.map +1 -0
  13. package/dist/decision/card.d.ts +150 -0
  14. package/dist/decision/card.d.ts.map +1 -0
  15. package/dist/decision/pdp-compose.d.ts +69 -0
  16. package/dist/decision/pdp-compose.d.ts.map +1 -0
  17. package/dist/decision/pdp-effects.d.ts +17 -0
  18. package/dist/decision/pdp-effects.d.ts.map +1 -0
  19. package/dist/decision/pdp.d.ts +214 -0
  20. package/dist/decision/pdp.d.ts.map +1 -0
  21. package/dist/native/nativeSlotSwap.d.ts +40 -0
  22. package/dist/native/nativeSlotSwap.d.ts.map +1 -0
  23. package/dist/native/nativeSlotWatcher.d.ts +135 -0
  24. package/dist/native/nativeSlotWatcher.d.ts.map +1 -0
  25. package/dist/platformAdapter.d.ts +82 -0
  26. package/dist/platformAdapter.d.ts.map +1 -0
  27. package/dist/runtime.d.ts +318 -36
  28. package/dist/runtime.d.ts.map +1 -1
  29. package/dist/runtime.js +10 -2
  30. package/dist/sanitizer.d.ts.map +1 -1
  31. package/dist/schema-primitives.d.ts +197 -12
  32. package/dist/schema-primitives.d.ts.map +1 -1
  33. package/dist/schema.d.ts +2098 -164
  34. package/dist/schema.d.ts.map +1 -1
  35. package/dist/schema.js +11 -1
  36. package/dist/scoring/pool-selection.d.ts +35 -0
  37. package/dist/scoring/pool-selection.d.ts.map +1 -0
  38. package/dist/scoring/scored-template.d.ts +106 -0
  39. package/dist/scoring/scored-template.d.ts.map +1 -0
  40. package/dist/variantCache.d.ts +5 -0
  41. package/dist/variantCache.d.ts.map +1 -0
  42. package/dist/widgets/OtherProductTileLit.d.ts +46 -0
  43. package/dist/widgets/OtherProductTileLit.d.ts.map +1 -0
  44. package/dist/widgets/PdpChartBarStackedLit.d.ts +33 -0
  45. package/dist/widgets/PdpChartBarStackedLit.d.ts.map +1 -0
  46. package/dist/widgets/PdpChartLit.d.ts +56 -0
  47. package/dist/widgets/PdpChartLit.d.ts.map +1 -0
  48. package/dist/widgets/PdpChartMetricPullLit.d.ts +33 -0
  49. package/dist/widgets/PdpChartMetricPullLit.d.ts.map +1 -0
  50. package/dist/widgets/PdpOtherProductsCarouselLit.d.ts +33 -0
  51. package/dist/widgets/PdpOtherProductsCarouselLit.d.ts.map +1 -0
  52. package/dist/widgets/PdpOtherProductsGridLit.d.ts +20 -0
  53. package/dist/widgets/PdpOtherProductsGridLit.d.ts.map +1 -0
  54. package/dist/widgets/PdpOtherProductsLit.d.ts +35 -0
  55. package/dist/widgets/PdpOtherProductsLit.d.ts.map +1 -0
  56. package/dist/widgets/PdpPeerFeedCarouselLit.d.ts +30 -0
  57. package/dist/widgets/PdpPeerFeedCarouselLit.d.ts.map +1 -0
  58. package/dist/widgets/PdpPeerFeedLit.d.ts +51 -0
  59. package/dist/widgets/PdpPeerFeedLit.d.ts.map +1 -0
  60. package/dist/widgets/PdpPeerFeedMasonryLit.d.ts +30 -0
  61. package/dist/widgets/PdpPeerFeedMasonryLit.d.ts.map +1 -0
  62. package/dist/widgets/PdpQaAccordionLit.d.ts +27 -0
  63. package/dist/widgets/PdpQaAccordionLit.d.ts.map +1 -0
  64. package/dist/widgets/PdpQaLit.d.ts +48 -0
  65. package/dist/widgets/PdpQaLit.d.ts.map +1 -0
  66. package/dist/widgets/PdpQaSideBySideLit.d.ts +27 -0
  67. package/dist/widgets/PdpQaSideBySideLit.d.ts.map +1 -0
  68. package/dist/widgets/PdpRegionalFullBleedLit.d.ts +27 -0
  69. package/dist/widgets/PdpRegionalFullBleedLit.d.ts.map +1 -0
  70. package/dist/widgets/PdpRegionalInlineNoteLit.d.ts +27 -0
  71. package/dist/widgets/PdpRegionalInlineNoteLit.d.ts.map +1 -0
  72. package/dist/widgets/PdpRegionalLit.d.ts +48 -0
  73. package/dist/widgets/PdpRegionalLit.d.ts.map +1 -0
  74. package/dist/widgets/PdpRibbonLit.d.ts +31 -0
  75. package/dist/widgets/PdpRibbonLit.d.ts.map +1 -0
  76. package/dist/widgets/PdpSectionHeaderLit.d.ts +30 -0
  77. package/dist/widgets/PdpSectionHeaderLit.d.ts.map +1 -0
  78. package/dist/widgets/PdpSlotLit.d.ts +30 -0
  79. package/dist/widgets/PdpSlotLit.d.ts.map +1 -0
  80. package/dist/widgets/PdpSlotPlaceholderLit.d.ts +22 -0
  81. package/dist/widgets/PdpSlotPlaceholderLit.d.ts.map +1 -0
  82. package/dist/widgets/PdpTrendingNewsHeroLit.d.ts +32 -0
  83. package/dist/widgets/PdpTrendingNewsHeroLit.d.ts.map +1 -0
  84. package/dist/widgets/PdpTrendingNewsLit.d.ts +42 -0
  85. package/dist/widgets/PdpTrendingNewsLit.d.ts.map +1 -0
  86. package/dist/widgets/PdpTrendingNewsMagazineLit.d.ts +32 -0
  87. package/dist/widgets/PdpTrendingNewsMagazineLit.d.ts.map +1 -0
  88. package/dist/widgets/ProductCardLit.d.ts +78 -0
  89. package/dist/widgets/ProductCardLit.d.ts.map +1 -1
  90. package/dist/widgets/ProductComparisonLit.d.ts +9 -4
  91. package/dist/widgets/ProductComparisonLit.d.ts.map +1 -1
  92. package/dist/widgets/ProductGridLit.d.ts +1 -0
  93. package/dist/widgets/ProductGridLit.d.ts.map +1 -1
  94. package/dist/widgets/ProductHeroLit.d.ts +1 -0
  95. package/dist/widgets/ProductHeroLit.d.ts.map +1 -1
  96. package/dist/widgets/ProductRecoCarouselLit.d.ts +24 -0
  97. package/dist/widgets/ProductRecoCarouselLit.d.ts.map +1 -0
  98. package/dist/widgets/SyntroPdpLit.d.ts +366 -0
  99. package/dist/widgets/SyntroPdpLit.d.ts.map +1 -0
  100. package/dist/widgets/VariantPanelLit.d.ts +98 -0
  101. package/dist/widgets/VariantPanelLit.d.ts.map +1 -0
  102. package/dist/widgets/ensureStylesInRoot.d.ts +22 -0
  103. package/dist/widgets/ensureStylesInRoot.d.ts.map +1 -0
  104. package/dist/widgets/entrance.d.ts +35 -0
  105. package/dist/widgets/entrance.d.ts.map +1 -0
  106. package/dist/widgets/renderHealth.d.ts +57 -0
  107. package/dist/widgets/renderHealth.d.ts.map +1 -0
  108. package/dist/widgets/renderHealthReporter.d.ts +66 -0
  109. package/dist/widgets/renderHealthReporter.d.ts.map +1 -0
  110. package/package.json +4 -1
  111. package/dist/chunk-QZZVFYL6.js +0 -1352
  112. package/dist/chunk-QZZVFYL6.js.map +0 -7
  113. package/dist/chunk-SGJGJRCP.js.map +0 -7
@@ -267,15 +267,15 @@ export declare const productSchema: z.ZodObject<{
267
267
  actionId: z.ZodOptional<z.ZodString>;
268
268
  }, "strict", z.ZodTypeAny, {
269
269
  label: string;
270
- target: "_self" | "_blank";
271
270
  variant: "primary" | "secondary" | "ghost";
271
+ target: "_self" | "_blank";
272
272
  href?: string | undefined;
273
273
  actionId?: string | undefined;
274
274
  }, {
275
275
  label: string;
276
+ variant?: "primary" | "secondary" | "ghost" | undefined;
276
277
  href?: string | undefined;
277
278
  target?: "_self" | "_blank" | undefined;
278
- variant?: "primary" | "secondary" | "ghost" | undefined;
279
279
  actionId?: string | undefined;
280
280
  }>, "many">;
281
281
  /** Cross-platform product identifiers. SKU/GTIN/MPN per GMC; platform handles for bind auto-resolution. */
@@ -411,16 +411,16 @@ export declare const productSchema: z.ZodObject<{
411
411
  emphasis: z.ZodDefault<z.ZodBoolean>;
412
412
  priority: z.ZodOptional<z.ZodNumber>;
413
413
  }, "strict", z.ZodTypeAny, {
414
+ name: string;
414
415
  value: string;
415
416
  section: string;
416
- name: string;
417
417
  emphasis: boolean;
418
418
  unit?: string | undefined;
419
419
  priority?: number | undefined;
420
420
  }, {
421
+ name: string;
421
422
  value: string;
422
423
  section: string;
423
- name: string;
424
424
  unit?: string | undefined;
425
425
  emphasis?: boolean | undefined;
426
426
  priority?: number | undefined;
@@ -434,16 +434,154 @@ export declare const productSchema: z.ZodObject<{
434
434
  emphasis: z.ZodDefault<z.ZodBoolean>;
435
435
  }, "strict", z.ZodTypeAny, {
436
436
  value: string;
437
- emphasis: boolean;
438
437
  label: string;
438
+ emphasis: boolean;
439
439
  }, {
440
440
  value: string;
441
441
  label: string;
442
442
  emphasis?: boolean | undefined;
443
443
  }>, "many">>;
444
+ /**
445
+ * Optional variant block for products with attribute-based SKUs.
446
+ * When present, indicates the product has multiple SKUs distinguished
447
+ * by attributes (size, color, etc.). This block on the product itself
448
+ * is the seed-data shape the demo uses to serve its Shopify
449
+ * GET /products/{handle}.js endpoint.
450
+ *
451
+ * The card does NOT read this directly to decide whether to show a
452
+ * variant picker: variant presence is resolved at render from the
453
+ * platform adapter's fetchVariants (host API for real tenants, this
454
+ * seed data for the demo), so a single catalog source drives it.
455
+ * For real Shopify/Woo tenants this field is unused on the mount
456
+ * payload; the adapter fetches from the host API instead.
457
+ */
458
+ variants: z.ZodOptional<z.ZodObject<{
459
+ attributes: z.ZodArray<z.ZodObject<{
460
+ key: z.ZodString;
461
+ label: z.ZodString;
462
+ kind: z.ZodEnum<["pill", "swatch"]>;
463
+ values: z.ZodArray<z.ZodObject<{
464
+ id: z.ZodString;
465
+ label: z.ZodString;
466
+ swatch: z.ZodNullable<z.ZodObject<{
467
+ kind: z.ZodEnum<["color", "image"]>;
468
+ value: z.ZodString;
469
+ }, "strip", z.ZodTypeAny, {
470
+ kind: "image" | "color";
471
+ value: string;
472
+ }, {
473
+ kind: "image" | "color";
474
+ value: string;
475
+ }>>;
476
+ }, "strip", z.ZodTypeAny, {
477
+ label: string;
478
+ id: string;
479
+ swatch: {
480
+ kind: "image" | "color";
481
+ value: string;
482
+ } | null;
483
+ }, {
484
+ label: string;
485
+ id: string;
486
+ swatch: {
487
+ kind: "image" | "color";
488
+ value: string;
489
+ } | null;
490
+ }>, "many">;
491
+ }, "strip", z.ZodTypeAny, {
492
+ values: {
493
+ label: string;
494
+ id: string;
495
+ swatch: {
496
+ kind: "image" | "color";
497
+ value: string;
498
+ } | null;
499
+ }[];
500
+ kind: "pill" | "swatch";
501
+ label: string;
502
+ key: string;
503
+ }, {
504
+ values: {
505
+ label: string;
506
+ id: string;
507
+ swatch: {
508
+ kind: "image" | "color";
509
+ value: string;
510
+ } | null;
511
+ }[];
512
+ kind: "pill" | "swatch";
513
+ label: string;
514
+ key: string;
515
+ }>, "many">;
516
+ variants: z.ZodArray<z.ZodObject<{
517
+ id: z.ZodString;
518
+ selection: z.ZodRecord<z.ZodString, z.ZodString>;
519
+ price: z.ZodNumber;
520
+ compare_at_price: z.ZodNullable<z.ZodNumber>;
521
+ in_stock: z.ZodBoolean;
522
+ featured_image: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
523
+ }, "strip", z.ZodTypeAny, {
524
+ id: string;
525
+ price: number;
526
+ in_stock: boolean;
527
+ selection: Record<string, string>;
528
+ compare_at_price: number | null;
529
+ featured_image?: string | undefined;
530
+ }, {
531
+ id: string;
532
+ price: number;
533
+ in_stock: boolean;
534
+ selection: Record<string, string>;
535
+ compare_at_price: number | null;
536
+ featured_image?: string | undefined;
537
+ }>, "many">;
538
+ }, "strip", z.ZodTypeAny, {
539
+ attributes: {
540
+ values: {
541
+ label: string;
542
+ id: string;
543
+ swatch: {
544
+ kind: "image" | "color";
545
+ value: string;
546
+ } | null;
547
+ }[];
548
+ kind: "pill" | "swatch";
549
+ label: string;
550
+ key: string;
551
+ }[];
552
+ variants: {
553
+ id: string;
554
+ price: number;
555
+ in_stock: boolean;
556
+ selection: Record<string, string>;
557
+ compare_at_price: number | null;
558
+ featured_image?: string | undefined;
559
+ }[];
560
+ }, {
561
+ attributes: {
562
+ values: {
563
+ label: string;
564
+ id: string;
565
+ swatch: {
566
+ kind: "image" | "color";
567
+ value: string;
568
+ } | null;
569
+ }[];
570
+ kind: "pill" | "swatch";
571
+ label: string;
572
+ key: string;
573
+ }[];
574
+ variants: {
575
+ id: string;
576
+ price: number;
577
+ in_stock: boolean;
578
+ selection: Record<string, string>;
579
+ compare_at_price: number | null;
580
+ featured_image?: string | undefined;
581
+ }[];
582
+ }>>;
444
583
  }, "strict", z.ZodTypeAny, {
445
584
  name: string;
446
- id: string;
447
585
  image: {
448
586
  src: string;
449
587
  alt: string;
@@ -462,10 +600,11 @@ export declare const productSchema: z.ZodObject<{
462
600
  url?: string | undefined;
463
601
  } | undefined;
464
602
  };
603
+ id: string;
465
604
  ctas: {
466
605
  label: string;
467
- target: "_self" | "_blank";
468
606
  variant: "primary" | "secondary" | "ghost";
607
+ target: "_self" | "_blank";
469
608
  href?: string | undefined;
470
609
  actionId?: string | undefined;
471
610
  }[];
@@ -529,9 +668,9 @@ export declare const productSchema: z.ZodObject<{
529
668
  max: number;
530
669
  } | undefined;
531
670
  specs?: {
671
+ name: string;
532
672
  value: string;
533
673
  section: string;
534
- name: string;
535
674
  emphasis: boolean;
536
675
  unit?: string | undefined;
537
676
  priority?: number | undefined;
@@ -539,12 +678,34 @@ export declare const productSchema: z.ZodObject<{
539
678
  labels?: Record<string, string | number | boolean> | undefined;
540
679
  attributes?: {
541
680
  value: string;
542
- emphasis: boolean;
543
681
  label: string;
682
+ emphasis: boolean;
544
683
  }[] | undefined;
684
+ variants?: {
685
+ attributes: {
686
+ values: {
687
+ label: string;
688
+ id: string;
689
+ swatch: {
690
+ kind: "image" | "color";
691
+ value: string;
692
+ } | null;
693
+ }[];
694
+ kind: "pill" | "swatch";
695
+ label: string;
696
+ key: string;
697
+ }[];
698
+ variants: {
699
+ id: string;
700
+ price: number;
701
+ in_stock: boolean;
702
+ selection: Record<string, string>;
703
+ compare_at_price: number | null;
704
+ featured_image?: string | undefined;
705
+ }[];
706
+ } | undefined;
545
707
  }, {
546
708
  name: string;
547
- id: string;
548
709
  image: {
549
710
  src: string;
550
711
  alt: string;
@@ -563,11 +724,12 @@ export declare const productSchema: z.ZodObject<{
563
724
  url?: string | undefined;
564
725
  } | undefined;
565
726
  };
727
+ id: string;
566
728
  ctas: {
567
729
  label: string;
730
+ variant?: "primary" | "secondary" | "ghost" | undefined;
568
731
  href?: string | undefined;
569
732
  target?: "_self" | "_blank" | undefined;
570
- variant?: "primary" | "secondary" | "ghost" | undefined;
571
733
  actionId?: string | undefined;
572
734
  }[];
573
735
  tagline?: string | undefined;
@@ -630,9 +792,9 @@ export declare const productSchema: z.ZodObject<{
630
792
  max?: number | undefined;
631
793
  } | undefined;
632
794
  specs?: {
795
+ name: string;
633
796
  value: string;
634
797
  section: string;
635
- name: string;
636
798
  unit?: string | undefined;
637
799
  emphasis?: boolean | undefined;
638
800
  priority?: number | undefined;
@@ -643,6 +805,29 @@ export declare const productSchema: z.ZodObject<{
643
805
  label: string;
644
806
  emphasis?: boolean | undefined;
645
807
  }[] | undefined;
808
+ variants?: {
809
+ attributes: {
810
+ values: {
811
+ label: string;
812
+ id: string;
813
+ swatch: {
814
+ kind: "image" | "color";
815
+ value: string;
816
+ } | null;
817
+ }[];
818
+ kind: "pill" | "swatch";
819
+ label: string;
820
+ key: string;
821
+ }[];
822
+ variants: {
823
+ id: string;
824
+ price: number;
825
+ in_stock: boolean;
826
+ selection: Record<string, string>;
827
+ compare_at_price: number | null;
828
+ featured_image?: string | undefined;
829
+ }[];
830
+ } | undefined;
646
831
  }>;
647
832
  export type Product = z.infer<typeof productSchema>;
648
833
  export type PriceBind = z.infer<typeof PriceBindZ>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema-primitives.d.ts","sourceRoot":"","sources":["../src/schema-primitives.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,KAAK,2CAiBf,CAAC;AAEJ,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAarB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOrB,CAAC;AAsCH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6CtB,2GAA2G;;;;;;;;;;;;;;;;;;;;;IAY3G,6EAA6E;;IAE7E,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUpF,oEAAoE;;;;;;;;;;;;;;IAWpE,wFAAwF;;;;;;;;;;;;;;;;;;;;;;;IAIxF,6FAA6F;;IAI7F,8FAA8F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcvF,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AACnD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"schema-primitives.d.ts","sourceRoot":"","sources":["../src/schema-primitives.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,KAAK,2CAiBf,CAAC;AAEJ,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAarB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOrB,CAAC;AAsCH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6CtB,2GAA2G;;;;;;;;;;;;;;;;;;;;;IAY3G,6EAA6E;;IAE7E,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUpF,oEAAoE;;;;;;;;;;;;;;IAWpE,wFAAwF;;;;;;;;;;;;;;;;;;;;;;;IAIxF,6FAA6F;;IAI7F,8FAA8F;;;;;;;;;;;;;;IAc9F;;;;;;;;;;;;;OAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCI,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AACnD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}