@catladder/cli 0.0.0-next-186d7128 → 0.0.0-next-3401f823

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.
@@ -5219,6 +5219,41 @@ exports.contextIsStoppable = contextIsStoppable;
5219
5219
 
5220
5220
  /***/ }),
5221
5221
 
5222
+ /***/ 2912:
5223
+ /***/ ((__unused_webpack_module, exports) => {
5224
+
5225
+ "use strict";
5226
+
5227
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
5228
+ exports.registerGlobalScriptFunction = exports.globalScriptFunctions = void 0;
5229
+ class GlobalScriptFunction {
5230
+ constructor(name, script) {
5231
+ this.name = name;
5232
+ this.script = script;
5233
+ }
5234
+ toBashFunction() {
5235
+ return `function ${this.name} () {
5236
+ ${this.script}
5237
+ }`;
5238
+ }
5239
+ invoke(...args) {
5240
+ return `${this.name} ${args.join(" ")}`;
5241
+ }
5242
+ }
5243
+ exports.globalScriptFunctions = new Map();
5244
+ const registerGlobalScriptFunction = (name, script) => {
5245
+ if (exports.globalScriptFunctions.has(name)) {
5246
+ throw new Error(`Global script function ${name} already exists`);
5247
+ }
5248
+ const scriptFunction = new GlobalScriptFunction(name, script);
5249
+ exports.globalScriptFunctions.set(name, scriptFunction);
5250
+ return scriptFunction;
5251
+ };
5252
+ exports.registerGlobalScriptFunction = registerGlobalScriptFunction;
5253
+ //# sourceMappingURL=index.js.map
5254
+
5255
+ /***/ }),
5256
+
5222
5257
  /***/ 603:
5223
5258
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
5224
5259
 
@@ -5845,7 +5880,8 @@ function getGitlabNeedsForWorkspaceJob(context, { needsStages, needs }, allJobs)
5845
5880
  Object.defineProperty(exports, "__esModule", ({ value: true }));
5846
5881
  exports.createGitlabPipelineWithDefaults = void 0;
5847
5882
  const runner_1 = __nccwpck_require__(4058);
5848
- const createGitlabPipelineWithDefaults = ({ image, variables, ...config }) => {
5883
+ const globalScriptFunctions_1 = __nccwpck_require__(2912);
5884
+ const createGitlabPipelineWithDefaults = ({ image, variables, before_script, ...config }) => {
5849
5885
  return {
5850
5886
  image: image !== null && image !== void 0 ? image : (0, runner_1.getRunnerImage)("jobs-default"), // default image
5851
5887
  variables: {
@@ -5856,6 +5892,10 @@ const createGitlabPipelineWithDefaults = ({ image, variables, ...config }) => {
5856
5892
  GIT_DEPTH: "1", // no need the full depth
5857
5893
  ...(variables !== null && variables !== void 0 ? variables : {}),
5858
5894
  },
5895
+ before_script: [
5896
+ ...[...globalScriptFunctions_1.globalScriptFunctions.values()].map((script) => script.toBashFunction()),
5897
+ ...(before_script !== null && before_script !== void 0 ? before_script : []),
5898
+ ],
5859
5899
  ...config,
5860
5900
  };
5861
5901
  };
@@ -6388,12 +6428,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
6388
6428
  /***/ }),
6389
6429
 
6390
6430
  /***/ 8490:
6391
- /***/ ((__unused_webpack_module, exports) => {
6431
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
6392
6432
 
6393
6433
  "use strict";
6394
6434
 
6395
6435
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6396
6436
  exports.collapseableSection = exports.repeatOnFailure = exports.sanitizeForBashVariable = exports.allowFailureInScripts = void 0;
6437
+ const globalScriptFunctions_1 = __nccwpck_require__(2912);
6397
6438
  const allowFailureInScripts = (script) => [
6398
6439
  "set +e", // disable fail job on error
6399
6440
  ...script,
@@ -6412,11 +6453,18 @@ const repeatOnFailure = (command, options) => {
6412
6453
  `;
6413
6454
  };
6414
6455
  exports.repeatOnFailure = repeatOnFailure;
6456
+ const start = (0, globalScriptFunctions_1.registerGlobalScriptFunction)("collapseable_section_start", `local section_title="\${1}"
6457
+ local section_description="\${2:-$section_title}"
6458
+ echo -e "section_start:\`date +%s\`:\${section_title}[collapsed=true]\\r\\e[0K$\{section_description}"
6459
+ `);
6460
+ const end = (0, globalScriptFunctions_1.registerGlobalScriptFunction)("collapseable_section_end", `local section_title="\${1}"
6461
+ echo -e "section_end:\`date +%s\`:\${section_title}\\r\\e[0K"
6462
+ `);
6415
6463
  const collapseableSection = (name, header) => (commands) => {
6416
6464
  return [
6417
- `echo -e "\\e[0Ksection_start:$(date +%s):${name}[collapsed=true]\\r\\e[0K${header}"`,
6465
+ start.invoke(`"${name}"`, `"${header}"`),
6418
6466
  ...commands,
6419
- `echo -e "\\e[0Ksection_end:$(date +%s):${name}\\r\\e[0K"`,
6467
+ end.invoke(`"${name}"`),
6420
6468
  ];
6421
6469
  };
6422
6470
  exports.collapseableSection = collapseableSection;
@@ -8385,6 +8385,41 @@ exports.contextIsStoppable = contextIsStoppable;
8385
8385
 
8386
8386
  /***/ }),
8387
8387
 
8388
+ /***/ 12912:
8389
+ /***/ ((__unused_webpack_module, exports) => {
8390
+
8391
+ "use strict";
8392
+
8393
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
8394
+ exports.registerGlobalScriptFunction = exports.globalScriptFunctions = void 0;
8395
+ class GlobalScriptFunction {
8396
+ constructor(name, script) {
8397
+ this.name = name;
8398
+ this.script = script;
8399
+ }
8400
+ toBashFunction() {
8401
+ return `function ${this.name} () {
8402
+ ${this.script}
8403
+ }`;
8404
+ }
8405
+ invoke(...args) {
8406
+ return `${this.name} ${args.join(" ")}`;
8407
+ }
8408
+ }
8409
+ exports.globalScriptFunctions = new Map();
8410
+ const registerGlobalScriptFunction = (name, script) => {
8411
+ if (exports.globalScriptFunctions.has(name)) {
8412
+ throw new Error(`Global script function ${name} already exists`);
8413
+ }
8414
+ const scriptFunction = new GlobalScriptFunction(name, script);
8415
+ exports.globalScriptFunctions.set(name, scriptFunction);
8416
+ return scriptFunction;
8417
+ };
8418
+ exports.registerGlobalScriptFunction = registerGlobalScriptFunction;
8419
+ //# sourceMappingURL=index.js.map
8420
+
8421
+ /***/ }),
8422
+
8388
8423
  /***/ 10603:
8389
8424
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
8390
8425
 
@@ -9011,7 +9046,8 @@ function getGitlabNeedsForWorkspaceJob(context, { needsStages, needs }, allJobs)
9011
9046
  Object.defineProperty(exports, "__esModule", ({ value: true }));
9012
9047
  exports.createGitlabPipelineWithDefaults = void 0;
9013
9048
  const runner_1 = __nccwpck_require__(4058);
9014
- const createGitlabPipelineWithDefaults = ({ image, variables, ...config }) => {
9049
+ const globalScriptFunctions_1 = __nccwpck_require__(12912);
9050
+ const createGitlabPipelineWithDefaults = ({ image, variables, before_script, ...config }) => {
9015
9051
  return {
9016
9052
  image: image !== null && image !== void 0 ? image : (0, runner_1.getRunnerImage)("jobs-default"), // default image
9017
9053
  variables: {
@@ -9022,6 +9058,10 @@ const createGitlabPipelineWithDefaults = ({ image, variables, ...config }) => {
9022
9058
  GIT_DEPTH: "1", // no need the full depth
9023
9059
  ...(variables !== null && variables !== void 0 ? variables : {}),
9024
9060
  },
9061
+ before_script: [
9062
+ ...[...globalScriptFunctions_1.globalScriptFunctions.values()].map((script) => script.toBashFunction()),
9063
+ ...(before_script !== null && before_script !== void 0 ? before_script : []),
9064
+ ],
9025
9065
  ...config,
9026
9066
  };
9027
9067
  };
@@ -9554,12 +9594,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
9554
9594
  /***/ }),
9555
9595
 
9556
9596
  /***/ 38490:
9557
- /***/ ((__unused_webpack_module, exports) => {
9597
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
9558
9598
 
9559
9599
  "use strict";
9560
9600
 
9561
9601
  Object.defineProperty(exports, "__esModule", ({ value: true }));
9562
9602
  exports.collapseableSection = exports.repeatOnFailure = exports.sanitizeForBashVariable = exports.allowFailureInScripts = void 0;
9603
+ const globalScriptFunctions_1 = __nccwpck_require__(12912);
9563
9604
  const allowFailureInScripts = (script) => [
9564
9605
  "set +e", // disable fail job on error
9565
9606
  ...script,
@@ -9578,11 +9619,18 @@ const repeatOnFailure = (command, options) => {
9578
9619
  `;
9579
9620
  };
9580
9621
  exports.repeatOnFailure = repeatOnFailure;
9622
+ const start = (0, globalScriptFunctions_1.registerGlobalScriptFunction)("collapseable_section_start", `local section_title="\${1}"
9623
+ local section_description="\${2:-$section_title}"
9624
+ echo -e "section_start:\`date +%s\`:\${section_title}[collapsed=true]\\r\\e[0K$\{section_description}"
9625
+ `);
9626
+ const end = (0, globalScriptFunctions_1.registerGlobalScriptFunction)("collapseable_section_end", `local section_title="\${1}"
9627
+ echo -e "section_end:\`date +%s\`:\${section_title}\\r\\e[0K"
9628
+ `);
9581
9629
  const collapseableSection = (name, header) => (commands) => {
9582
9630
  return [
9583
- `echo -e "\\e[0Ksection_start:$(date +%s):${name}[collapsed=true]\\r\\e[0K${header}"`,
9631
+ start.invoke(`"${name}"`, `"${header}"`),
9584
9632
  ...commands,
9585
- `echo -e "\\e[0Ksection_end:$(date +%s):${name}\\r\\e[0K"`,
9633
+ end.invoke(`"${name}"`),
9586
9634
  ];
9587
9635
  };
9588
9636
  exports.collapseableSection = collapseableSection;
@@ -0,0 +1,10 @@
1
+ declare class GlobalScriptFunction {
2
+ name: string;
3
+ script: string;
4
+ constructor(name: string, script: string);
5
+ toBashFunction(): string;
6
+ invoke(...args: string[]): string;
7
+ }
8
+ export declare const globalScriptFunctions: Map<string, GlobalScriptFunction>;
9
+ export declare const registerGlobalScriptFunction: (name: string, script: string) => GlobalScriptFunction;
10
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerGlobalScriptFunction = exports.globalScriptFunctions = void 0;
4
+ class GlobalScriptFunction {
5
+ constructor(name, script) {
6
+ this.name = name;
7
+ this.script = script;
8
+ }
9
+ toBashFunction() {
10
+ return `function ${this.name} () {
11
+ ${this.script}
12
+ }`;
13
+ }
14
+ invoke(...args) {
15
+ return `${this.name} ${args.join(" ")}`;
16
+ }
17
+ }
18
+ exports.globalScriptFunctions = new Map();
19
+ const registerGlobalScriptFunction = (name, script) => {
20
+ if (exports.globalScriptFunctions.has(name)) {
21
+ throw new Error(`Global script function ${name} already exists`);
22
+ }
23
+ const scriptFunction = new GlobalScriptFunction(name, script);
24
+ exports.globalScriptFunctions.set(name, scriptFunction);
25
+ return scriptFunction;
26
+ };
27
+ exports.registerGlobalScriptFunction = registerGlobalScriptFunction;
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../pipeline/src/globalScriptFunctions/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB;IACxB,YACS,IAAY,EACZ,MAAc;QADd,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;IACpB,CAAC;IAEJ,cAAc;QACZ,OAAO,YAAY,IAAI,CAAC,IAAI;cAClB,IAAI,CAAC,MAAM;UACf,CAAC;IACT,CAAC;IACD,MAAM,CAAC,GAAG,IAAc;QACtB,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1C,CAAC;CACF;AAEY,QAAA,qBAAqB,GAAG,IAAI,GAAG,EAAgC,CAAC;AAEtE,MAAM,4BAA4B,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE;IAC3E,IAAI,6BAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,iBAAiB,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9D,6BAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAChD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAPW,QAAA,4BAA4B,gCAOvC"}
@@ -1,4 +1,4 @@
1
1
  import type { Pipeline } from "../../types";
2
2
  type PickRequired<T, K extends keyof T> = Required<Pick<T, K>> & Omit<T, K>;
3
- export declare const createGitlabPipelineWithDefaults: ({ image, variables, ...config }: PickRequired<Partial<Pipeline<"gitlab">>, "stages" | "jobs">) => Pipeline<"gitlab">;
3
+ export declare const createGitlabPipelineWithDefaults: ({ image, variables, before_script, ...config }: PickRequired<Partial<Pipeline<"gitlab">>, "stages" | "jobs">) => Pipeline<"gitlab">;
4
4
  export {};
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createGitlabPipelineWithDefaults = void 0;
4
4
  const runner_1 = require("../../runner");
5
- const createGitlabPipelineWithDefaults = ({ image, variables, ...config }) => {
5
+ const globalScriptFunctions_1 = require("../../globalScriptFunctions");
6
+ const createGitlabPipelineWithDefaults = ({ image, variables, before_script, ...config }) => {
6
7
  return {
7
8
  image: image !== null && image !== void 0 ? image : (0, runner_1.getRunnerImage)("jobs-default"), // default image
8
9
  variables: {
@@ -13,6 +14,10 @@ const createGitlabPipelineWithDefaults = ({ image, variables, ...config }) => {
13
14
  GIT_DEPTH: "1", // no need the full depth
14
15
  ...(variables !== null && variables !== void 0 ? variables : {}),
15
16
  },
17
+ before_script: [
18
+ ...[...globalScriptFunctions_1.globalScriptFunctions.values()].map((script) => script.toBashFunction()),
19
+ ...(before_script !== null && before_script !== void 0 ? before_script : []),
20
+ ],
16
21
  ...config,
17
22
  };
18
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createGitlabPipeline.js","sourceRoot":"","sources":["../../../../../../pipeline/src/pipeline/gitlab/createGitlabPipeline.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAKvC,MAAM,gCAAgC,GAAG,CAAC,EAC/C,KAAK,EACL,SAAS,EACT,GAAG,MAAM,EAIV,EAAsB,EAAE;IACvB,OAAO;QACL,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAA,uBAAc,EAAC,cAAc,CAAC,EAAE,gBAAgB;QAChE,SAAS,EAAE;YACT,cAAc,EAAE,MAAM,EAAE,uFAAuF;YAC/G,0BAA0B,EAAE,MAAM,EAAE,kCAAkC;YACtE,uBAAuB,EAAE,MAAM,EAAE,gCAAgC;YACjE,wBAAwB,EAAE,IAAI,EAAE,0EAA0E;YAE1G,SAAS,EAAE,GAAG,EAAE,yBAAyB;YACzC,GAAG,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;SACrB;QAED,GAAG,MAAM;KACV,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,gCAAgC,oCAsB3C"}
1
+ {"version":3,"file":"createGitlabPipeline.js","sourceRoot":"","sources":["../../../../../../pipeline/src/pipeline/gitlab/createGitlabPipeline.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAE9C,uEAAoE;AAG7D,MAAM,gCAAgC,GAAG,CAAC,EAC/C,KAAK,EACL,SAAS,EACT,aAAa,EACb,GAAG,MAAM,EAIV,EAAsB,EAAE;IACvB,OAAO;QACL,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAA,uBAAc,EAAC,cAAc,CAAC,EAAE,gBAAgB;QAChE,SAAS,EAAE;YACT,cAAc,EAAE,MAAM,EAAE,uFAAuF;YAC/G,0BAA0B,EAAE,MAAM,EAAE,kCAAkC;YACtE,uBAAuB,EAAE,MAAM,EAAE,gCAAgC;YACjE,wBAAwB,EAAE,IAAI,EAAE,0EAA0E;YAE1G,SAAS,EAAE,GAAG,EAAE,yBAAyB;YACzC,GAAG,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;SACrB;QACD,aAAa,EAAE;YACb,GAAG,CAAC,GAAG,6CAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpD,MAAM,CAAC,cAAc,EAAE,CACxB;YACD,GAAG,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC;SACzB;QAED,GAAG,MAAM;KACV,CAAC;AACJ,CAAC,CAAC;AA7BW,QAAA,gCAAgC,oCA6B3C"}
@@ -23,4 +23,5 @@ export interface GitlabPipeline extends Pick<JobTemplate, "variables"> {
23
23
  };
24
24
  stages: string[];
25
25
  jobs: Record<string, GitlabJobDef>;
26
+ before_script?: string[];
26
27
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.collapseableSection = exports.repeatOnFailure = exports.sanitizeForBashVariable = exports.allowFailureInScripts = void 0;
4
+ const globalScriptFunctions_1 = require("../globalScriptFunctions");
4
5
  const allowFailureInScripts = (script) => [
5
6
  "set +e", // disable fail job on error
6
7
  ...script,
@@ -19,11 +20,18 @@ const repeatOnFailure = (command, options) => {
19
20
  `;
20
21
  };
21
22
  exports.repeatOnFailure = repeatOnFailure;
23
+ const start = (0, globalScriptFunctions_1.registerGlobalScriptFunction)("collapseable_section_start", `local section_title="\${1}"
24
+ local section_description="\${2:-$section_title}"
25
+ echo -e "section_start:\`date +%s\`:\${section_title}[collapsed=true]\\r\\e[0K$\{section_description}"
26
+ `);
27
+ const end = (0, globalScriptFunctions_1.registerGlobalScriptFunction)("collapseable_section_end", `local section_title="\${1}"
28
+ echo -e "section_end:\`date +%s\`:\${section_title}\\r\\e[0K"
29
+ `);
22
30
  const collapseableSection = (name, header) => (commands) => {
23
31
  return [
24
- `echo -e "\\e[0Ksection_start:$(date +%s):${name}[collapsed=true]\\r\\e[0K${header}"`,
32
+ start.invoke(`"${name}"`, `"${header}"`),
25
33
  ...commands,
26
- `echo -e "\\e[0Ksection_end:$(date +%s):${name}\\r\\e[0K"`,
34
+ end.invoke(`"${name}"`),
27
35
  ];
28
36
  };
29
37
  exports.collapseableSection = collapseableSection;
@@ -1 +1 @@
1
- {"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../../../../pipeline/src/utils/gitlab.ts"],"names":[],"mappings":";;;AAAO,MAAM,qBAAqB,GAAG,CAAC,MAAgB,EAAY,EAAE,CAAC;IACnE,QAAQ,EAAE,4BAA4B;IACtC,GAAG,MAAM;IACT,QAAQ,EAAE,WAAW;CACtB,CAAC;AAJW,QAAA,qBAAqB,yBAIhC;AAEK,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,EAAE,CACtD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AADb,QAAA,uBAAuB,2BACV;AAEnB,MAAM,eAAe,GAAG,CAC7B,OAAe,EACf,OAEC,EACO,EAAE;IACV,OAAO;YACG,OAAO;;;cAGL,OAAO,CAAC,cAAc;;GAEjC,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,eAAe,mBAa1B;AAEK,MAAM,mBAAmB,GAC9B,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE,CACjC,CAAC,QAAkB,EAAY,EAAE;IAC/B,OAAO;QACL,4CAA4C,IAAI,4BAA4B,MAAM,GAAG;QACrF,GAAG,QAAQ;QACX,0CAA0C,IAAI,YAAY;KAC3D,CAAC;AACJ,CAAC,CAAC;AARS,QAAA,mBAAmB,uBAQ5B"}
1
+ {"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../../../../pipeline/src/utils/gitlab.ts"],"names":[],"mappings":";;;AAAA,oEAAwE;AAEjE,MAAM,qBAAqB,GAAG,CAAC,MAAgB,EAAY,EAAE,CAAC;IACnE,QAAQ,EAAE,4BAA4B;IACtC,GAAG,MAAM;IACT,QAAQ,EAAE,WAAW;CACtB,CAAC;AAJW,QAAA,qBAAqB,yBAIhC;AAEK,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,EAAE,CACtD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AADb,QAAA,uBAAuB,2BACV;AAEnB,MAAM,eAAe,GAAG,CAC7B,OAAe,EACf,OAEC,EACO,EAAE;IACV,OAAO;YACG,OAAO;;;cAGL,OAAO,CAAC,cAAc;;GAEjC,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,eAAe,mBAa1B;AAEF,MAAM,KAAK,GAAG,IAAA,oDAA4B,EACxC,4BAA4B,EAC5B;;;CAGD,CACA,CAAC;AAEF,MAAM,GAAG,GAAG,IAAA,oDAA4B,EACtC,0BAA0B,EAC1B;;CAED,CACA,CAAC;AAEK,MAAM,mBAAmB,GAC9B,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE,CACjC,CAAC,QAAkB,EAAY,EAAE;IAC/B,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,IAAI,MAAM,GAAG,CAAC;QACxC,GAAG,QAAQ;QACX,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;KACxB,CAAC;AACJ,CAAC,CAAC;AARS,QAAA,mBAAmB,uBAQ5B"}