@ai-game-assets/phaser 0.3.0 → 0.5.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.
package/dist/designer.js CHANGED
@@ -1,11 +1,14 @@
1
+ import { resolveTargetAssetId } from "@ai-game-assets/core";
1
2
  import { AiAssetDebugClient } from "./debug-client.js";
2
3
  import { ensureMissingAiAssetFirstDrafts } from "./first-drafts.js";
4
+ import { createLocalDerivedOption, openDeriveDialog, referenceImageForCandidate } from "./derive-dialog.js";
3
5
  import { assetWithGeneratedGeometry, audioGenerationOverridesFromInputs, bindKeyboardCapture, canEditGenerationFormat, createDesignerElements, effectiveGenerationFormat, ensureDesignerStyles, errorMessage, generationOverridesFromInputs, hasStyleGuide, imageSourceToDataUrl, isAbortError, isAudioAsset, isSvgSource, isVoiceAsset, mimeTypeFromDataUrl, normalizeAssetFormat, normalizeAudioFormat, openAnimationEditor, openAssetVersionsDialog, openAudioEditor, openFrameTouchUpEditor, openStyleGuideEditor, pickUploadFile, previewCurrentAsset, previewImageSource, previewOption, readableAssetName, renderAssetFolderBrowser, renderAudioPlayer, renderOptions, resolvePreviewDisplaySize, setStatus, stopStatusAnimation, styleGuideDraftFromManifest, styleGuideRequest, uploadedOptionFromFile, voiceGenerationOverridesFromInputs } from "./designer-support.js";
4
6
  export function installAiAssetDesigner(options) {
5
7
  ensureDesignerStyles();
6
8
  const client = options.client ?? new AiAssetDebugClient();
7
9
  let manifest = options.manifest;
8
10
  let selectedAssetId = options.assetIds?.[0] ?? Object.keys(manifest.assets)[0];
11
+ let selectedTargetId = options.targetId;
9
12
  let selectedTargetAssetId = selectedAssetId;
10
13
  let selectedOption;
11
14
  let stopCurrentAnimationPreview;
@@ -40,21 +43,21 @@ export function installAiAssetDesigner(options) {
40
43
  elements.animationSelect.innerHTML = "";
41
44
  if (asset.kind !== "collection") {
42
45
  const baseOption = document.createElement("option");
43
- baseOption.value = assetId;
46
+ baseOption.value = resolveTargetAssetId(manifest, assetId, selectedTargetId);
44
47
  baseOption.textContent = isVoice ? "Base voice" : "Base image";
45
48
  elements.animationSelect.append(baseOption);
46
49
  }
47
50
  for (const [key, linkedAnimation] of linkedAnimations) {
48
51
  const option = document.createElement("option");
49
- option.value = linkedAnimation.assetId;
52
+ option.value = resolveTargetAssetId(manifest, linkedAnimation.assetId, selectedTargetId);
50
53
  option.textContent = linkedAnimation.label || readableAssetName(key);
51
54
  elements.animationSelect.append(option);
52
55
  }
53
56
  elements.animationField.hidden = linkedAnimations.length === 0;
54
57
  elements.animationField.firstElementChild.textContent = isVoice ? "Line" : "Animation";
55
58
  selectedTargetAssetId = asset.kind === "collection" && linkedAnimations[0]
56
- ? linkedAnimations[0][1].assetId
57
- : assetId;
59
+ ? resolveTargetAssetId(manifest, linkedAnimations[0][1].assetId, selectedTargetId)
60
+ : resolveTargetAssetId(manifest, assetId, selectedTargetId);
58
61
  elements.animationSelect.value = selectedTargetAssetId;
59
62
  };
60
63
  const syncTargetAsset = (assetId) => {
@@ -86,6 +89,7 @@ export function installAiAssetDesigner(options) {
86
89
  elements.voiceTextField.firstChild.textContent = isVoiceLine ? "Text to say" : "Demo sentence";
87
90
  elements.formatField.hidden = isAudio || elements.formatField.hidden;
88
91
  elements.dimensionGrid.hidden = isAudio;
92
+ syncTargetVariantLabel(assetId);
89
93
  elements.frameCountInput.value = String(asset.frameGrid?.frameCount ??
90
94
  (asset.frameGrid ? asset.frameGrid.columns * asset.frameGrid.rows : 1));
91
95
  elements.frameCountField.hidden = asset.kind === "image" || !asset.frameGrid;
@@ -116,6 +120,7 @@ export function installAiAssetDesigner(options) {
116
120
  setStatus(elements, "", "idle");
117
121
  elements.promoteButton.disabled = true;
118
122
  elements.versionsButton.disabled = Object.keys(asset.versions).length <= 1;
123
+ elements.deriveButton.hidden = isAudio || deriveCandidatesForAsset(assetId).length === 0;
119
124
  selectedOption = undefined;
120
125
  editedCurrentOption = undefined;
121
126
  previewedVersionName = undefined;
@@ -125,6 +130,88 @@ export function installAiAssetDesigner(options) {
125
130
  syncTargetAsset(selectedTargetAssetId);
126
131
  renderAssetBrowser();
127
132
  };
133
+ const syncTargetVariantLabel = (assetId) => {
134
+ const target = selectedTargetId ? manifest.targets?.[selectedTargetId] : undefined;
135
+ const logicalAssetId = logicalAssetIdForTargetAsset(assetId);
136
+ elements.targetField.hidden = Object.keys(manifest.targets ?? {}).length === 0;
137
+ elements.targetSelect.value = selectedTargetId ?? "";
138
+ if (!target) {
139
+ elements.targetVariantLabel.hidden = true;
140
+ elements.targetVariantLabel.textContent = "";
141
+ return;
142
+ }
143
+ if (logicalAssetId && logicalAssetId !== assetId) {
144
+ elements.targetVariantLabel.hidden = false;
145
+ elements.targetVariantLabel.textContent =
146
+ `${target.label ?? readableAssetName(target.id)} variant: ` +
147
+ `${readableAssetName(logicalAssetId)} -> ${readableAssetName(assetId)}`;
148
+ return;
149
+ }
150
+ elements.targetVariantLabel.hidden = false;
151
+ elements.targetVariantLabel.textContent =
152
+ `${target.label ?? readableAssetName(target.id)} uses default ${readableAssetName(logicalAssetId ?? assetId)}.`;
153
+ };
154
+ const logicalAssetIdForTargetAsset = (targetAssetId) => {
155
+ const target = selectedTargetId ? manifest.targets?.[selectedTargetId] : undefined;
156
+ if (!target)
157
+ return targetAssetId;
158
+ for (const [logicalAssetId, variantAssetId] of Object.entries(target.variants)) {
159
+ if (variantAssetId === targetAssetId)
160
+ return logicalAssetId;
161
+ }
162
+ return targetAssetId;
163
+ };
164
+ const deriveCandidatesForAsset = (targetAssetId) => {
165
+ const logicalAssetId = logicalAssetIdForTargetAsset(targetAssetId) ?? targetAssetId;
166
+ const target = selectedTargetId ? manifest.targets?.[selectedTargetId] : undefined;
167
+ const selectedTargetUsesDefault = Boolean(selectedTargetId &&
168
+ target &&
169
+ targetAssetId === logicalAssetId &&
170
+ !target.variants[logicalAssetId]);
171
+ const candidates = [];
172
+ const addCandidate = (targetId, targetLabel, assetId) => {
173
+ if ((assetId === targetAssetId && !selectedTargetUsesDefault) ||
174
+ candidates.some((candidate) => candidate.assetId === assetId)) {
175
+ return;
176
+ }
177
+ const asset = manifest.assets[assetId];
178
+ const activeVersion = asset?.versions[asset.activeVersion];
179
+ if (!asset || isAudioAsset(asset) || asset.kind === "collection" || !activeVersion?.file) {
180
+ return;
181
+ }
182
+ candidates.push({
183
+ targetId,
184
+ targetLabel,
185
+ assetId,
186
+ asset,
187
+ src: activeVersion.file
188
+ });
189
+ };
190
+ addCandidate(undefined, "Default", logicalAssetId);
191
+ for (const target of Object.values(manifest.targets ?? {})) {
192
+ addCandidate(target.id, target.label ?? readableAssetName(target.id), target.variants[logicalAssetId] ?? logicalAssetId);
193
+ }
194
+ return candidates;
195
+ };
196
+ const ensureTargetVariantForDerive = async (targetAssetId) => {
197
+ if (!selectedTargetId)
198
+ return targetAssetId;
199
+ const logicalAssetId = logicalAssetIdForTargetAsset(targetAssetId) ?? targetAssetId;
200
+ const target = manifest.targets?.[selectedTargetId];
201
+ if (!target || target.variants[logicalAssetId]) {
202
+ return targetAssetId;
203
+ }
204
+ setStatus(elements, `Creating ${target.label ?? readableAssetName(target.id)} variant for ${readableAssetName(logicalAssetId)}...`, "busy");
205
+ const result = await client.ensureTargetVariant({
206
+ targetId: selectedTargetId,
207
+ assetId: logicalAssetId
208
+ });
209
+ manifest = result.manifest;
210
+ options.onManifestUpdated?.(manifest);
211
+ selectedTargetAssetId = result.assetId;
212
+ syncAsset(selectedAssetId);
213
+ return result.assetId;
214
+ };
128
215
  const renderAssetBrowser = () => {
129
216
  renderAssetFolderBrowser({
130
217
  container: elements.assetBrowser,
@@ -168,6 +255,13 @@ export function installAiAssetDesigner(options) {
168
255
  selectedAssetId = elements.assetSelect.value;
169
256
  syncAsset(selectedAssetId);
170
257
  });
258
+ elements.targetSelect.addEventListener("change", () => {
259
+ selectedTargetId = elements.targetSelect.value || undefined;
260
+ syncAsset(selectedAssetId);
261
+ setStatus(elements, selectedTargetId
262
+ ? `Editing ${manifest.targets?.[selectedTargetId]?.label ?? readableAssetName(selectedTargetId)} target.`
263
+ : "Editing default target.", "info");
264
+ });
171
265
  elements.animationSelect.addEventListener("change", () => {
172
266
  selectedTargetAssetId = elements.animationSelect.value;
173
267
  syncTargetAsset(selectedTargetAssetId);
@@ -349,6 +443,126 @@ export function installAiAssetDesigner(options) {
349
443
  setStatus(elements, `Upload failed. ${errorMessage(error)}`, "error");
350
444
  }
351
445
  });
446
+ elements.deriveButton.addEventListener("click", async () => {
447
+ const derivationAssetId = await ensureTargetVariantForDerive(selectedTargetAssetId);
448
+ const asset = manifest.assets[derivationAssetId];
449
+ const generationFormat = effectiveGenerationFormat(manifest, formatDrafts, selectedAssetId, derivationAssetId);
450
+ if (isAudioAsset(asset))
451
+ return;
452
+ await openDeriveDialog({
453
+ root: elements.root,
454
+ asset,
455
+ assetId: derivationAssetId,
456
+ candidates: deriveCandidatesForAsset(derivationAssetId),
457
+ prompt: elements.promptInput.value,
458
+ format: generationFormat,
459
+ onConfirm: async (deriveRequest) => {
460
+ elements.options.innerHTML = "";
461
+ elements.promoteButton.disabled = true;
462
+ selectedOption = undefined;
463
+ editedCurrentOption = undefined;
464
+ previewedVersionName = undefined;
465
+ if (deriveRequest.strategy === "scale" ||
466
+ deriveRequest.strategy === "tile" ||
467
+ deriveRequest.strategy === "crop") {
468
+ setStatus(elements, `Deriving from ${readableAssetName(deriveRequest.candidate.assetId)}...`, "busy");
469
+ const option = await createLocalDerivedOption({
470
+ strategy: deriveRequest.strategy,
471
+ source: deriveRequest.candidate,
472
+ targetAsset: asset,
473
+ prompt: elements.promptInput.value,
474
+ dimensions: deriveRequest.dimensions,
475
+ frameCount: deriveRequest.frameCount,
476
+ scaleMode: deriveRequest.scaleMode,
477
+ cropX: deriveRequest.cropX,
478
+ cropY: deriveRequest.cropY,
479
+ mirrorX: deriveRequest.mirrorX,
480
+ mirrorY: deriveRequest.mirrorY
481
+ });
482
+ renderOptions({
483
+ elements,
484
+ generated: [option],
485
+ scene: options.scene,
486
+ manifest,
487
+ assetId: derivationAssetId,
488
+ designerOptions: options,
489
+ onPreview: options.onPreview,
490
+ onSelected(selected) {
491
+ selectedOption = selected;
492
+ previewedVersionName = undefined;
493
+ elements.promoteButton.disabled = false;
494
+ }
495
+ });
496
+ selectedOption = option;
497
+ elements.promoteButton.disabled = false;
498
+ previewOption({
499
+ scene: options.scene,
500
+ manifest,
501
+ assetId: derivationAssetId,
502
+ option,
503
+ onPreview: options.onPreview
504
+ });
505
+ setStatus(elements, "Derived one local option. Promote to save it to code.", "success");
506
+ return;
507
+ }
508
+ const controller = new AbortController();
509
+ const currentGenerationId = generationId + 1;
510
+ const streamedOptions = [];
511
+ const prompt = deriveRequest.strategy === "extend"
512
+ ? `${elements.promptInput.value}\n\nExtend the referenced source target into the requested canvas. Preserve the original asset identity and visual style while filling the new area naturally.`
513
+ : elements.promptInput.value;
514
+ generationId = currentGenerationId;
515
+ activeGeneration = { controller, id: currentGenerationId };
516
+ elements.regenerateButton.textContent = "Cancel";
517
+ setStatus(elements, "Generating options...", "busy");
518
+ lockGenerationStatus();
519
+ try {
520
+ const reference = await referenceImageForCandidate(deriveRequest.candidate);
521
+ await client.generateStream({
522
+ assetId: derivationAssetId,
523
+ prompt,
524
+ count: options.optionCount ?? 3,
525
+ references: [reference],
526
+ format: generationFormat,
527
+ dimensions: deriveRequest.dimensions,
528
+ frameCount: deriveRequest.frameCount,
529
+ styleGuide: await styleGuideRequest(styleGuideDraft)
530
+ }, (option) => {
531
+ if (activeGeneration?.id !== currentGenerationId)
532
+ return;
533
+ streamedOptions.push(option);
534
+ renderOptions({
535
+ elements,
536
+ generated: [...streamedOptions].sort((left, right) => left.index - right.index),
537
+ scene: options.scene,
538
+ manifest,
539
+ assetId: derivationAssetId,
540
+ designerOptions: options,
541
+ onPreview: options.onPreview,
542
+ onSelected(selected) {
543
+ selectedOption = selected;
544
+ previewedVersionName = undefined;
545
+ elements.promoteButton.disabled = false;
546
+ }
547
+ });
548
+ }, {
549
+ signal: controller.signal
550
+ });
551
+ finishGeneration(currentGenerationId);
552
+ setStatus(elements, streamedOptions.length > 0 ? "Pick a derived option to preview it." : "Derive finished with no options.", streamedOptions.length > 0 ? "info" : "error");
553
+ }
554
+ catch (error) {
555
+ if (!isAbortError(error)) {
556
+ finishGeneration(currentGenerationId);
557
+ setStatus(elements, `Derive failed. ${errorMessage(error)}`, "error");
558
+ }
559
+ }
560
+ finally {
561
+ finishGeneration(currentGenerationId);
562
+ }
563
+ }
564
+ });
565
+ });
352
566
  elements.promoteButton.addEventListener("click", async () => {
353
567
  if (!selectedOption)
354
568
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"designer.js","sourceRoot":"","sources":["../src/designer.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,kBAAkB,EAGnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAEhC,MAAM,mBAAmB,CAAC;AAyD3B,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,EAClC,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,YAAY,EACZ,6BAA6B,EAC7B,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,aAAa,EACb,yBAAyB,EACzB,SAAS,EACT,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,EACjB,sBAAsB,EACtB,kCAAkC,EACnC,MAAM,uBAAuB,CAAC;AAE/B,MAAM,UAAU,sBAAsB,CACpC,OAA+B;IAE/B,oBAAoB,EAAE,CAAC;IAEvB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;IAC1D,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAChC,IAAI,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,IAAI,qBAAqB,GAAG,eAAe,CAAC;IAC5C,IAAI,cAAgD,CAAC;IACrD,IAAI,2BAAqD,CAAC;IAC1D,IAAI,mBAAqD,CAAC;IAC1D,IAAI,oBAAwC,CAAC;IAC7C,IAAI,eAAe,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;IACtD,IAAI,gBAKS,CAAC;IACd,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;QACxE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC;IAC7C,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,CAAC,MAAe,EAAE,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;QACvC,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,EAAE,CAAC;QAExC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACpD,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC;YAC3B,UAAU,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;YAC/D,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC;YACvC,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACrE,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC;QAC/D,QAAQ,CAAC,cAAc,CAAC,iBAAkB,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;QACxF,qBAAqB,GAAG,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,gBAAgB,CAAC,CAAC,CAAC;YACxE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;YAChC,CAAC,CAAC,OAAO,CAAC;QACZ,QAAQ,CAAC,eAAe,CAAC,KAAK,GAAG,qBAAqB,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;QAChD,2BAA2B,EAAE,EAAE,CAAC;QAChC,2BAA2B,GAAG,SAAS,CAAC;QACxC,QAAQ,CAAC,WAAW,CAAC,KAAK,GAAG,aAAa,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QACnE,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;QAChG,QAAQ,CAAC,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QACnG,QAAQ,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,MAAM,IAAI,KAAK,CAAC;QACxE,QAAQ,CAAC,kBAAkB,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,IAAI,aAAa,EAAE,eAAe,IAAI,EAAE,CAAC,CAAC;QACzH,QAAQ,CAAC,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACrE,QAAQ,CAAC,cAAc,CAAC,KAAK;YAC3B,aAAa,EAAE,aAAa,EAAE,IAAI;gBAClC,aAAa,EAAE,aAAa,EAAE,WAAW;gBACzC,KAAK,CAAC,aAAa,EAAE,IAAI;gBACzB,KAAK,CAAC,aAAa,EAAE,WAAW;gBAChC,EAAE,CAAC;QACL,QAAQ,CAAC,YAAY,CAAC,KAAK,GAAG,yBAAyB,CACrD,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,OAAO,CACR,CAAC;QACF,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAC3F,QAAQ,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC;QAC5C,QAAQ,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC;QAC9C,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC;QAC1C,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC;QAC1C,QAAQ,CAAC,cAAc,CAAC,UAAW,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC;QAChG,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;QACrE,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC;QACxC,QAAQ,CAAC,eAAe,CAAC,KAAK,GAAG,MAAM,CACrC,KAAK,CAAC,SAAS,EAAE,UAAU;YAC3B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CACvE,CAAC;QACF,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAC7E,QAAQ,CAAC,YAAY,CAAC,WAAW,GAAG,UAAU,iBAAiB,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC;QACnG,QAAQ,CAAC,YAAY,CAAC,GAAG,GAAG,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC;QACtD,iBAAiB,CAAC;YAChB,SAAS,EAAE,QAAQ,CAAC,YAAY;YAChC,GAAG,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE;YAC9B,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC;YACjC,QAAQ,EAAE,aAAa,EAAE,aAAa;SACvC,CAAC,CAAC;QACH,QAAQ,CAAC,YAAY,CAAC,GAAG,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAC3E,QAAQ,CAAC,cAAc,CAAC,YAAY,CAClC,YAAY,EACZ,kBAAkB,iBAAiB,CAAC,OAAO,CAAC,UAAU,CACvD,CAAC;QACF,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC;QACtD,QAAQ,CAAC,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC;QACxC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC;QACxC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC;QACvC,QAAQ,CAAC,sBAAsB,CAAC,WAAW,GAAG,SAAS,CAAC;QACxD,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACrD,QAAQ,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC;QAChG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,aAAa,EAAE,IAAI;YACzD,OAAO;YACP,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;YACxB,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,KAAK;YACtD,WAAW,CAAC,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QACzC,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;QAChC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9C,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAChC,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QAC3E,cAAc,GAAG,SAAS,CAAC;QAC3B,mBAAmB,GAAG,SAAS,CAAC;QAChC,oBAAoB,GAAG,SAAS,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;QACpC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9B,eAAe,CAAC,qBAAqB,CAAC,CAAC;QACvC,kBAAkB,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,wBAAwB,CAAC;YACvB,SAAS,EAAE,QAAQ,CAAC,YAAY;YAChC,QAAQ;YACR,eAAe;YACf,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,CAAC,OAAO;gBACd,eAAe,GAAG,OAAO,CAAC;gBAC1B,SAAS,CAAC,eAAe,CAAC,CAAC;YAC7B,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,CAAC,QAAiD,EAAE,EAAE;QACrF,IAAI,QAAQ,CAAC,KAAK,KAAK,CAAC;YAAE,OAAO;QAEjC,SAAS,CACP,QAAQ,EACR,QAAQ,CAAC,cAAc;YACrB,CAAC,CAAC,cAAc,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK;YACvG,CAAC,CAAC,2BAA2B,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,EACxE,MAAM,CACP,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,GAAG,EAAE;QAChC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC;IACpD,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;YACxD,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,EAAE;QACtC,IAAI,gBAAgB,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,gBAAgB,GAAG,SAAS,CAAC;QAC7B,QAAQ,CAAC,gBAAgB,CAAC,WAAW,GAAG,YAAY,CAAC;QACrD,sBAAsB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;QACnD,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QAC7C,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;QACvD,qBAAqB,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC;QACvD,eAAe,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpD,IAAI,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,qBAAqB,CAAC,EAAE,CAAC;YAC9E,YAAY,CAAC,GAAG,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;QACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACrD,KAAK,CAAC,aAAa,GAAG;YACpB,GAAG,KAAK,CAAC,aAAa;YACtB,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC;SAC/D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE1D,IAAI,CAAC,aAAa,EAAE,IAAI;YAAE,OAAO;QAEjC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,EAAE,CAAC;YACzF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;QAED,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACrD,IAAI,oBAAoB,EAAE,CAAC;YACzB,mBAAmB,GAAG,SAAS,CAAC;YAChC,oBAAoB,GAAG,SAAS,CAAC;QACnC,CAAC;QACD,cAAc,GAAG,mBAAmB,CAAC;QACrC,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,cAAc,CAAC;QAClD,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,iBAAiB,CAAC;gBAChB,SAAS,EAAE,QAAQ,CAAC,YAAY;gBAChC,GAAG,EAAE,aAAa,CAAC,IAAI;gBACvB,KAAK,EAAE,iBAAiB,CAAC,qBAAqB,CAAC;gBAC/C,QAAQ,EAAE,aAAa,CAAC,aAAa;aACtC,CAAC,CAAC;YACH,OAAO,CAAC,SAAS,CAAC,qBAAqB,EAAE,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,YAAY,CAAC,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC;YAC/C,mBAAmB,CAAC;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ;gBACR,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,aAAa,CAAC,IAAI;gBACvB,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;QACL,CAAC;QACD,SAAS,CAAC,QAAQ,EAAE,4BAA4B,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAoB,EAAE,EAAE;QAC3E,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;YAAE,OAAO;QAEvD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QAC7D,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACpC,gBAAgB,GAAG,SAAS,CAAC;YAC7B,QAAQ,CAAC,gBAAgB,CAAC,WAAW,GAAG,YAAY,CAAC;YACrD,sBAAsB,EAAE,CAAC;YACzB,SAAS,CAAC,QAAQ,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,mBAAmB,GAAG,YAAY,GAAG,CAAC,CAAC;QAC7C,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;QAChD,MAAM,gBAAgB,GAAG,yBAAyB,CAChD,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,iBAAiB,CAClB,CAAC;QACF,YAAY,GAAG,mBAAmB,CAAC;QACnC,gBAAgB,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC;QAE3D,SAAS,CAAC,QAAQ,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC;QACrD,oBAAoB,EAAE,CAAC;QACvB,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,GAAG,QAAQ,CAAC;QACjD,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;QAChC,cAAc,GAAG,SAAS,CAAC;QAC3B,mBAAmB,GAAG,SAAS,CAAC;QAChC,oBAAoB,GAAG,SAAS,CAAC;QACjC,MAAM,eAAe,GAA2B,EAAE,CAAC;QAEnD,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG;gBACxB,OAAO,EAAE,iBAAiB;gBAC1B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK;gBAClC,KAAK,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;gBAC/B,MAAM,EAAE,gBAAgB;gBACxB,aAAa,EAAE,kCAAkC,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBAC/F,aAAa,EAAE,kCAAkC,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBAC/F,UAAU,EAAE,MAAM,iBAAiB,CAAC,eAAe,CAAC;gBACpD,GAAG,6BAA6B,CAC9B,QAAQ,EACR,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAClC,gBAAgB,CACjB;aACF,CAAC;YACF,MAAM,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE;gBACxD,IAAI,gBAAgB,EAAE,EAAE,KAAK,mBAAmB;oBAAE,OAAO;gBAEzD,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7B,aAAa,CAAC;oBACZ,QAAQ;oBACR,SAAS,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC/E,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,QAAQ;oBACR,OAAO,EAAE,iBAAiB;oBAC1B,eAAe,EAAE,OAAO;oBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,UAAU,CAAC,QAAQ;wBACjB,cAAc,GAAG,QAAQ,CAAC;wBAC1B,oBAAoB,GAAG,SAAS,CAAC;wBACjC,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;oBAC1C,CAAC;iBACF,CAAC,CAAC;YACL,CAAC,EAAE;gBACD,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,IAAI,gBAAgB,EAAE,EAAE,KAAK,mBAAmB,EAAE,CAAC;gBACjD,OAAO;YACT,CAAC;YAED,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YACtC,SAAS,CACP,QAAQ,EACR,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,sCAAsC,EACrG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAC9C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YACtC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;YAClC,CAAC;YACD,SAAS,CAAC,QAAQ,EAAE,sBAAsB,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5E,CAAC;gBAAS,CAAC;YACT,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAErD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAE/E,IAAI,CAAC,IAAI;gBAAE,OAAO;YAElB,MAAM,cAAc,GAAG,MAAM,sBAAsB,CAAC;gBAClD,IAAI;gBACJ,KAAK;gBACL,QAAQ;gBACR,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK;aACnC,CAAC,CAAC;YACH,aAAa,CAAC;gBACZ,QAAQ;gBACR,SAAS,EAAE,CAAC,cAAc,CAAC;gBAC3B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ;gBACR,OAAO,EAAE,qBAAqB;gBAC9B,eAAe,EAAE,OAAO;gBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,CAAC,MAAM;oBACf,cAAc,GAAG,MAAM,CAAC;oBACxB,oBAAoB,GAAG,SAAS,CAAC;oBACjC,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC1C,CAAC;aACF,CAAC,CAAC;YACH,cAAc,GAAG,cAAc,CAAC;YAChC,oBAAoB,GAAG,SAAS,CAAC;YACjC,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;YAExC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,SAAS,CAAC,qBAAqB,EAAE,cAAc,CAAC,OAAO,EAAE,0BAA0B,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;YACtH,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC;oBACZ,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,QAAQ;oBACR,OAAO,EAAE,qBAAqB;oBAC9B,MAAM,EAAE,cAAc;oBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CAAC,CAAC;YACL,CAAC;YACD,SAAS,CAAC,QAAQ,EAAE,YAAY,IAAI,CAAC,IAAI,+BAA+B,EAAE,SAAS,CAAC,CAAC;QACvF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,CAAC,QAAQ,EAAE,kBAAkB,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QAC1D,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,MAAM,WAAW,GAAG,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC7C,SAAS,CAAC,QAAQ,EAAE,aAAa,WAAW,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;QAEvC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC;gBAChB,OAAO,EAAE,qBAAqB;gBAC9B,WAAW;gBACX,OAAO,EAAE,cAAc,CAAC,OAAO;gBAC/B,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,aAAa,EAAE,cAAc,CAAC,aAAa;gBAC3C,UAAU,EAAE,cAAc,CAAC,UAAU;gBACrC,SAAS,EAAE,cAAc,CAAC,SAAS;gBACnC,UAAU,EAAE,cAAc,CAAC,UAAU;gBACrC,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,aAAa,EAAE,cAAc,CAAC,aAAa;gBAC3C,aAAa,EAAE,cAAc,CAAC,aAAa;gBAC3C,aAAa,EAAE,cAAc,CAAC,aAAa;gBAC3C,eAAe,EAAE,cAAc,CAAC,eAAe;gBAC/C,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,sCAAsC;aAC9C,CAAC,CAAC;YAEH,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YACtC,OAAO,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;YACtC,YAAY,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC3C,eAAe,CAAC,qBAAqB,CAAC,CAAC;YACvC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC7D,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC5E,IAAI,eAAe,EAAE,IAAI,EAAE,CAAC;oBAC1B,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,CACzC,qBAAqB,EACrB,eAAe,CAAC,IAAI,EACpB,aAAa,CACd,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,SAAS,CAAC,QAAQ,EAAE,YAAY,qBAAqB,OAAO,WAAW,GAAG,EAAE,SAAS,CAAC,CAAC;YAEvF,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxC,SAAS,CAAC,QAAQ,EAAE,qBAAqB,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAErD,KAAK,uBAAuB,CAAC;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK;YACL,OAAO,EAAE,qBAAqB;YAC9B,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM;gBAChC,MAAM,WAAW,GAAG,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAE9D,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,EAAE,CAAC;oBACzF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBACvC,CAAC;gBAED,cAAc,GAAG,MAAM,CAAC;gBACxB,mBAAmB,GAAG,MAAM,CAAC;gBAC7B,oBAAoB,GAAG,WAAW,CAAC;gBACnC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACrD,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAExC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxB,iBAAiB,CAAC;wBAChB,SAAS,EAAE,QAAQ,CAAC,YAAY;wBAChC,GAAG,EAAE,MAAM,CAAC,OAAO;wBACnB,KAAK,EAAE,iBAAiB,CAAC,qBAAqB,CAAC;wBAC/C,QAAQ,EAAE,MAAM,CAAC,aAAa;qBAC/B,CAAC,CAAC;oBACH,OAAO,CAAC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACxE,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;oBAC3C,kBAAkB,CAAC;wBACjB,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,QAAQ;wBACR,OAAO,EAAE,qBAAqB;wBAC9B,GAAG,EAAE,MAAM,CAAC,OAAO;wBACnB,UAAU,EAAE,sBAAsB,qBAAqB,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;wBACtF,aAAa,EAAE,WAAW;wBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;qBAC7B,CAAC,CAAC;gBACL,CAAC;gBAED,SAAS,CAAC,QAAQ,EAAE,cAAc,WAAW,+BAA+B,EAAE,MAAM,CAAC,CAAC;YACxF,CAAC;YACD,KAAK,CAAC,QAAQ,CAAC,WAAW;gBACxB,IAAI,CAAC;oBACH,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;wBACpC,OAAO,EAAE,qBAAqB;wBAC9B,WAAW;qBACZ,CAAC,CAAC;oBACH,OAAO,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;oBAEtC,IAAI,oBAAoB,KAAK,WAAW,EAAE,CAAC;wBACzC,eAAe,CAAC,qBAAqB,CAAC,CAAC;oBACzC,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,cAAc,CAAC,QAAQ;4BAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;oBAC7E,CAAC;oBAED,SAAS,CAAC,QAAQ,EAAE,WAAW,WAAW,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC5D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,SAAS,CAAC,QAAQ,EAAE,kBAAkB,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;oBACtE,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QAClD,KAAK,oBAAoB,CAAC;YACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,eAAe;YACxB,SAAS,CAAC,KAAK;gBACb,eAAe,GAAG,KAAK,CAAC;gBACxB,SAAS,CACP,QAAQ,EACR,aAAa,CAAC,KAAK,CAAC;oBAClB,CAAC,CAAC,4CAA4C;oBAC9C,CAAC,CAAC,6CAA6C,EACjD,SAAS,CACV,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,SAAS,CAAC,KAAK;gBACnB,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC1D,eAAe,GAAG,KAAK,CAAC;oBACxB,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;oBACtC,OAAO,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;oBACtC,SAAS,CAAC,QAAQ,EAAE,0CAA0C,EAAE,SAAS,CAAC,CAAC;gBAC7E,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,SAAS,CAAC,QAAQ,EAAE,2BAA2B,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;oBAC/E,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;QAC9E,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE1D,IAAI,CAAC,aAAa,EAAE,IAAI;YAAE,OAAO;QAEjC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,KAAK,eAAe,CAAC;gBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK;gBACL,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,mBAAmB,EAAE,OAAO,IAAI,aAAa,CAAC,IAAI;gBACvD,eAAe,EAAE,mBAAmB,EAAE,aAAa,IAAI,aAAa,CAAC,aAAa;gBAClF,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;oBACjC,MAAM,OAAO,GAAG,mBAAmB,EAAE,OAAO,IAAI,MAAM,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC/F,MAAM,WAAW,GAAG;wBAClB,GAAG,KAAK;wBACR,aAAa;qBACd,CAAC;oBAEF,mBAAmB,GAAG;wBACpB,KAAK,EAAE,CAAC,CAAC;wBACT,OAAO;wBACP,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC;wBACtC,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;wBAC5C,KAAK,EAAE,aAAa,CAAC,KAAK;wBAC1B,aAAa,EAAE,aAAa,CAAC,aAAa;wBAC1C,aAAa,EAAE,aAAa,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa;wBACjE,aAAa;wBACb,aAAa,EAAE,aAAa,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa;wBACjE,eAAe,EAAE,aAAa,CAAC,eAAe;qBAC/C,CAAC;oBACF,cAAc,GAAG,mBAAmB,CAAC;oBACrC,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACxC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG;wBACvC,GAAG,WAAW;wBACd,QAAQ,EAAE;4BACR,GAAG,KAAK,CAAC,QAAQ;4BACjB,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;gCACrB,GAAG,aAAa;gCAChB,aAAa;6BACd;yBACF;qBACF,CAAC;oBACF,OAAO,CAAC,SAAS,CAAC,qBAAqB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;oBAC/D,iBAAiB,CAAC;wBAChB,SAAS,EAAE,QAAQ,CAAC,YAAY;wBAChC,GAAG,EAAE,OAAO;wBACZ,KAAK,EAAE,iBAAiB,CAAC,qBAAqB,CAAC;wBAC/C,QAAQ,EAAE,aAAa;qBACxB,CAAC,CAAC;oBACH,SAAS,CAAC,QAAQ,EAAE,oDAAoD,EAAE,SAAS,CAAC,CAAC;gBACvF,CAAC;aACF,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO;QAE7B,KAAK,mBAAmB,CAAC;YACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK;YACL,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE,mBAAmB,EAAE,OAAO,IAAI,aAAa,CAAC,IAAI;YACvD,WAAW,EAAE,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,CAAC;YAC7E,iBAAiB,EAAE,mBAAmB,EAAE,UAAU,IAAI,KAAK,CAAC,UAAU;YACtE,SAAS,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE;gBAC1D,MAAM,OAAO,GAAG,aAAa;oBAC3B,mBAAmB,EAAE,OAAO;oBAC5B,MAAM,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,WAAW,GAAG;oBAClB,GAAG,KAAK;oBACR,UAAU;iBACX,CAAC;gBAEF,mBAAmB,GAAG;oBACpB,KAAK,EAAE,CAAC,CAAC;oBACT,OAAO;oBACP,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC;oBACtC,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;oBAC5C,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,aAAa,EAAE,aAAa,CAAC,aAAa;oBAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,UAAU;iBACX,CAAC;gBACF,cAAc,GAAG,mBAAmB,CAAC;gBACrC,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxC,kBAAkB,CAAC;oBACjB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,QAAQ;oBACR,OAAO,EAAE,qBAAqB;oBAC9B,GAAG,EAAE,OAAO;oBACZ,UAAU,EAAE,mBAAmB,qBAAqB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;oBACpE,aAAa,EAAE,WAAW;oBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CAAC,CAAC;gBACH,SAAS,CAAC,QAAQ,EAAE,wDAAwD,EAAE,SAAS,CAAC,CAAC;YAC3F,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;QAC5E,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE1D,IACE,CAAC,aAAa,EAAE,IAAI;YACpB,YAAY,CAAC,KAAK,CAAC;YACnB,KAAK,CAAC,SAAS;YACf,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,KAAK;YACtD,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,EAC/B,CAAC;YACD,OAAO;QACT,CAAC;QAED,KAAK,sBAAsB,CAAC;YAC1B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK;YACL,KAAK,EAAE,iBAAiB,CAAC,qBAAqB,CAAC;YAC/C,QAAQ,EAAE,mBAAmB,EAAE,OAAO,IAAI,aAAa,CAAC,IAAI;YAC5D,WAAW,EAAE,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,CAAC;YAC7E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBACxB,MAAM,WAAW,GAAG;oBAClB,GAAG,KAAK;oBACR,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B,CAAC;gBAEF,mBAAmB,GAAG;oBACpB,KAAK,EAAE,CAAC,CAAC;oBACT,OAAO;oBACP,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC;oBACtC,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;oBAC5C,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,aAAa,EAAE,aAAa,CAAC,aAAa;oBAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B,CAAC;gBACF,cAAc,GAAG,mBAAmB,CAAC;gBACrC,QAAQ,CAAC,YAAY,CAAC,GAAG,GAAG,OAAO,CAAC;gBACpC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACrD,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxC,kBAAkB,CAAC;oBACjB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,QAAQ;oBACR,OAAO,EAAE,qBAAqB;oBAC9B,GAAG,EAAE,OAAO;oBACZ,UAAU,EAAE,sBAAsB,qBAAqB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;oBACvE,aAAa,EAAE,WAAW;oBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CAAC,CAAC;gBACH,SAAS,CAAC,QAAQ,EAAE,qDAAqD,EAAE,SAAS,CAAC,CAAC;YACxF,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,eAAe,CAAC,CAAC;IAE3B,IAAI,OAAO,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;QACtC,KAAK,+BAA+B,CAAC;YACnC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ;YACR,MAAM;YACN,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,eAAe,EAAE,IAAI;YACrB,iBAAiB,EAAE,CAAC,eAAe,EAAE,EAAE;gBACrC,QAAQ,GAAG,eAAe,CAAC;gBAC3B,OAAO,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC,CAAC;gBAC7C,SAAS,CAAC,eAAe,CAAC,CAAC;YAC7B,CAAC;YACD,YAAY,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;gBAC3C,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAC1E,CAAC;YACD,UAAU,EAAE,wBAAwB;YACpC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC1B,SAAS,CACP,QAAQ,EACR,0BAA0B,iBAAiB,CAAC,OAAO,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,EAAE,EAC9E,OAAO,CACR,CAAC;YACJ,CAAC;SACF,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACjB,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtE,SAAS,CAAC,QAAQ,EAAE,yBAAyB,EAAE,SAAS,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACjB,SAAS,CAAC,QAAQ,EAAE,uBAAuB,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACzB,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QAC3B,OAAO,EAAE,GAAG,EAAE;YACZ,gBAAgB,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;YACrC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"designer.js","sourceRoot":"","sources":["../src/designer.ts"],"names":[],"mappings":"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"}
package/dist/loader.d.ts CHANGED
@@ -4,6 +4,7 @@ export type LoadAiAssetOptions = {
4
4
  key?: string;
5
5
  baseUrl?: string;
6
6
  versionName?: string;
7
+ targetId?: string;
7
8
  };
8
9
  export declare function loadAiAsset(scene: PhaserSceneLike, manifest: AiAssetManifest, selection: AiAssetSelection | string, options?: LoadAiAssetOptions): ResolvedAiAsset;
9
10
  export declare function loadAiAudioAsset(scene: PhaserSceneLike, manifest: AiAssetManifest, selection: AiAssetSelection | string, options?: LoadAiAssetOptions): ResolvedAiAsset | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,gBAAgB,GAAG,MAAM,EACpC,OAAO,GAAE,kBAAuB,GAC/B,eAAe,CAuFjB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,gBAAgB,GAAG,MAAM,EACpC,OAAO,GAAE,kBAAuB,GAC/B,eAAe,GAAG,SAAS,CA+B7B;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,kBAAuB,GAC/B,eAAe,EAAE,CAKnB;AAMD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,kBAAuB,GAC/B,eAAe,EAAE,CAInB"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,gBAAgB,GAAG,MAAM,EACpC,OAAO,GAAE,kBAAuB,GAC/B,eAAe,CA0FjB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,gBAAgB,GAAG,MAAM,EACpC,OAAO,GAAE,kBAAuB,GAC/B,eAAe,GAAG,SAAS,CAkC7B;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,kBAAuB,GAC/B,eAAe,EAAE,CAUnB;AAMD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,kBAAuB,GAC/B,eAAe,EAAE,CASnB"}
package/dist/loader.js CHANGED
@@ -1,8 +1,9 @@
1
- import { resolveAiAsset } from "@ai-game-assets/core";
1
+ import { resolveAiAsset, resolveTargetAssetId } from "@ai-game-assets/core";
2
2
  import { aiTextureKey } from "./keys.js";
3
3
  import { aiAssetPlaceholderDataUrl } from "./placeholder.js";
4
4
  export function loadAiAsset(scene, manifest, selection, options = {}) {
5
- const assetId = typeof selection === "string" ? selection : selection.assetId;
5
+ const selectionWithTarget = withTarget(selection, options.targetId);
6
+ const assetId = resolveTargetAssetId(manifest, selectionWithTarget.assetId, selectionWithTarget.targetId);
6
7
  if (manifest.assets[assetId]?.kind === "collection" ||
7
8
  manifest.assets[assetId]?.kind === "sound" ||
8
9
  manifest.assets[assetId]?.kind === "music" ||
@@ -46,9 +47,7 @@ export function loadAiAsset(scene, manifest, selection, options = {}) {
46
47
  }
47
48
  };
48
49
  }
49
- const resolved = resolveAiAsset(manifest, typeof selection === "string"
50
- ? { assetId: selection, versionName: options.versionName }
51
- : { ...selection, versionName: options.versionName ?? selection.versionName });
50
+ const resolved = resolveAiAsset(manifest, { ...selectionWithTarget, versionName: options.versionName ?? selectionWithTarget.versionName });
52
51
  const key = options.key ?? aiTextureKey({
53
52
  assetId: resolved.asset.id,
54
53
  versionName: resolved.versionName === resolved.asset.activeVersion
@@ -81,7 +80,8 @@ export function loadAiAsset(scene, manifest, selection, options = {}) {
81
80
  return resolved;
82
81
  }
83
82
  export function loadAiAudioAsset(scene, manifest, selection, options = {}) {
84
- const assetId = typeof selection === "string" ? selection : selection.assetId;
83
+ const selectionWithTarget = withTarget(selection, options.targetId);
84
+ const assetId = resolveTargetAssetId(manifest, selectionWithTarget.assetId, selectionWithTarget.targetId);
85
85
  const asset = manifest.assets[assetId];
86
86
  if (!asset || !isAudioLikeAsset(asset.kind)) {
87
87
  throw new Error(`AI asset "${assetId}" is not an audio asset.`);
@@ -92,9 +92,7 @@ export function loadAiAudioAsset(scene, manifest, selection, options = {}) {
92
92
  if (Object.keys(asset.versions).length === 0) {
93
93
  return undefined;
94
94
  }
95
- const resolved = resolveAiAsset(manifest, typeof selection === "string"
96
- ? { assetId: selection, versionName: options.versionName }
97
- : { ...selection, versionName: options.versionName ?? selection.versionName });
95
+ const resolved = resolveAiAsset(manifest, { ...selectionWithTarget, versionName: options.versionName ?? selectionWithTarget.versionName });
98
96
  const key = options.key ?? aiTextureKey({
99
97
  assetId: resolved.asset.id,
100
98
  versionName: resolved.versionName === resolved.asset.activeVersion
@@ -105,7 +103,9 @@ export function loadAiAudioAsset(scene, manifest, selection, options = {}) {
105
103
  return resolved;
106
104
  }
107
105
  export function loadAiAudioAssets(scene, manifest, options = {}) {
106
+ const targetVariantAssetIds = new Set(Object.values(manifest.targets ?? {}).flatMap((target) => Object.values(target.variants)));
108
107
  return Object.values(manifest.assets)
108
+ .filter((asset) => !targetVariantAssetIds.has(asset.id))
109
109
  .filter((asset) => asset.kind === "sound" || asset.kind === "music")
110
110
  .map((asset) => loadAiAudioAsset(scene, manifest, asset.id, options))
111
111
  .filter((asset) => Boolean(asset));
@@ -114,10 +114,21 @@ function isSvg(url) {
114
114
  return /\.svg(?:$|[?#])/i.test(url);
115
115
  }
116
116
  export function loadAiAssets(scene, manifest, options = {}) {
117
+ const targetVariantAssetIds = new Set(Object.values(manifest.targets ?? {}).flatMap((target) => Object.values(target.variants)));
117
118
  return Object.values(manifest.assets)
119
+ .filter((asset) => !targetVariantAssetIds.has(asset.id))
118
120
  .filter((asset) => asset.kind !== "collection" && !isAudioLikeAsset(asset.kind))
119
121
  .map((asset) => loadAiAsset(scene, manifest, asset.id, options));
120
122
  }
123
+ function withTarget(selection, targetId) {
124
+ if (typeof selection === "string") {
125
+ return { assetId: selection, targetId };
126
+ }
127
+ return {
128
+ ...selection,
129
+ targetId: selection.targetId ?? targetId
130
+ };
131
+ }
121
132
  function isAudioLikeAsset(kind) {
122
133
  return kind === "sound" || kind === "music" || kind === "voice" || kind === "voice-line";
123
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -2,14 +2,18 @@ import { type AiAssetManifest, type AiAssetSelection } from "@ai-game-assets/cor
2
2
  import type { PhaserImageLike, PhaserSceneLike } from "./phaser-types.js";
3
3
  export type AiAssetRuntimeOptions = {
4
4
  baseUrl?: string;
5
+ targetId?: string;
5
6
  };
6
7
  export declare class AiAssetRuntime {
7
8
  readonly scene: PhaserSceneLike;
8
9
  readonly manifest: AiAssetManifest;
9
10
  readonly baseUrl?: string;
11
+ readonly targetId?: string;
10
12
  constructor(scene: PhaserSceneLike, manifest: AiAssetManifest, options?: AiAssetRuntimeOptions);
11
13
  key(selection: AiAssetSelection | string): string;
12
14
  setTexture(target: PhaserImageLike, selection: AiAssetSelection | string): void;
13
15
  url(selection: AiAssetSelection | string): string;
16
+ private withTarget;
17
+ private resolveAssetId;
14
18
  }
15
19
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE1E,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,cAAc;IACzB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAGxB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,qBAA0B;IAOrC,GAAG,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM;IAkBjD,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI;IAI/E,GAAG,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM;CAgBlD"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE1E,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,cAAc;IACzB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAGzB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,qBAA0B;IAQrC,GAAG,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM;IAkBjD,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI;IAI/E,GAAG,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM;IAiBjD,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,cAAc;CAIvB"}
package/dist/runtime.js CHANGED
@@ -1,22 +1,24 @@
1
- import { resolveAiAsset } from "@ai-game-assets/core";
1
+ import { resolveAiAsset, resolveTargetAssetId } from "@ai-game-assets/core";
2
2
  import { aiTextureKey } from "./keys.js";
3
3
  import { aiAssetPlaceholderDataUrl } from "./placeholder.js";
4
4
  export class AiAssetRuntime {
5
5
  scene;
6
6
  manifest;
7
7
  baseUrl;
8
+ targetId;
8
9
  constructor(scene, manifest, options = {}) {
9
10
  this.scene = scene;
10
11
  this.manifest = manifest;
11
12
  this.baseUrl = options.baseUrl;
13
+ this.targetId = options.targetId;
12
14
  }
13
15
  key(selection) {
14
- const assetId = typeof selection === "string" ? selection : selection.assetId;
16
+ const assetId = this.resolveAssetId(selection);
15
17
  const asset = this.manifest.assets[assetId];
16
18
  if (asset && Object.keys(asset.versions).length === 0) {
17
19
  return aiTextureKey({ assetId });
18
20
  }
19
- const resolved = resolveAiAsset(this.manifest, selection);
21
+ const resolved = resolveAiAsset(this.manifest, this.withTarget(selection));
20
22
  return aiTextureKey({
21
23
  assetId: resolved.asset.id,
22
24
  versionName: resolved.versionName === resolved.asset.activeVersion
@@ -28,16 +30,32 @@ export class AiAssetRuntime {
28
30
  target.setTexture(this.key(selection));
29
31
  }
30
32
  url(selection) {
31
- const assetId = typeof selection === "string" ? selection : selection.assetId;
33
+ const assetId = this.resolveAssetId(selection);
32
34
  const asset = this.manifest.assets[assetId];
33
35
  if (asset && Object.keys(asset.versions).length === 0) {
34
36
  return aiAssetPlaceholderDataUrl(asset);
35
37
  }
36
- const resolved = resolveAiAsset(this.manifest, selection);
38
+ const resolved = resolveAiAsset(this.manifest, this.withTarget(selection));
37
39
  if (!this.baseUrl) {
38
40
  return resolved.version.file;
39
41
  }
40
42
  return `${this.baseUrl.replace(/\/$/, "")}/${resolved.version.file.replace(/^\//, "")}`;
41
43
  }
44
+ withTarget(selection) {
45
+ if (typeof selection === "string") {
46
+ return {
47
+ assetId: selection,
48
+ targetId: this.targetId
49
+ };
50
+ }
51
+ return {
52
+ ...selection,
53
+ targetId: selection.targetId ?? this.targetId
54
+ };
55
+ }
56
+ resolveAssetId(selection) {
57
+ const withTarget = this.withTarget(selection);
58
+ return resolveTargetAssetId(this.manifest, withTarget.assetId, withTarget.targetId);
59
+ }
42
60
  }
43
61
  //# sourceMappingURL=runtime.js.map