@spinajs/http-swagger 2.0.500 → 2.0.501

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.
@@ -182,6 +182,44 @@ export declare class OpenApiBuilder {
182
182
  * Priority: JSDoc type → decorator schema (param.Schema) → auto-detected primitive (param.RouteParamSchema) → @Schema metadata on DTO class → runtime type inference
183
183
  */
184
184
  private schemaFromParam;
185
+ /**
186
+ * The schema of an uploaded file: `type: string, format: binary`, which is how OAS 3.0
187
+ * spells a binary payload inside multipart/form-data. Generators read `format` and nothing
188
+ * else - it is what makes a client type the field `Blob` / `File` and Swagger UI render a
189
+ * file picker instead of a text box.
190
+ *
191
+ * Arity follows the RUNTIME's own rule, character for character ( `FromForm.extract`:
192
+ * `RuntimeType.name === 'Array' || Options.asArray === true` ) so the document and the
193
+ * extractor cannot disagree about whether a field takes one file or several. `@Files()` is
194
+ * `@File({ asArray: true })`, which is why the option has to be consulted and not just the
195
+ * declared type.
196
+ *
197
+ * A fresh object every call: `expandNamedSchemas` mutates the nodes it walks, so a shared
198
+ * constant would be rewritten under every route that used it.
199
+ *
200
+ * @param param - the route parameter to describe
201
+ */
202
+ private fileSchema;
203
+ /**
204
+ * The response content for a route that streams a file, or undefined for anything else - in
205
+ * which case the caller documents a JSON body exactly as it always did.
206
+ *
207
+ * A framework file response is not describable as a schema: `FileResponse`, `ZipResponse`
208
+ * and `JsonFileResponse` all write bytes plus a `Content-Disposition: attachment` header,
209
+ * never a serialised instance of themselves. Documented as `{ type: 'object' }` under
210
+ * application/json - the fallback for any class name no schema provider recognises - a
211
+ * generated client parses the download as JSON and rejects every successful response.
212
+ *
213
+ * Both halves of `returns` have to be consulted. `@returns {FileResponse}` puts the name in
214
+ * `type`, but a route that merely DECLARES the return type ( the common case, and what the
215
+ * declaration file carries ) gets no `type` at all: @spinajs/http's parser resolves a named
216
+ * class to `{ type: 'object', description: name }` in `schema`, and the name lives in the
217
+ * description. Only a bare tag counts there - an object with a shape of its own describes
218
+ * itself, and its description is prose.
219
+ *
220
+ * @param returns - the documented return, from a JSDoc tag or the declaration file
221
+ */
222
+ private fileResponseContent;
185
223
  /**
186
224
  * Convert a JSON Schema object to an OpenAPI schema, mapping known keywords.
187
225
  */
@@ -226,6 +264,25 @@ export declare class OpenApiBuilder {
226
264
  * so every caller that never had an opinion keeps the schema it always got.
227
265
  */
228
266
  private expandNamedSchemas;
267
+ /**
268
+ * Is this node a bare "here is a type NAME" placeholder, the shape `inferSchema`,
269
+ * `inferSchemaFromString` and the ORM's relation properties all produce -
270
+ * `{ type: 'object', description: 'TestUser' }` and nothing else?
271
+ *
272
+ * `description` alone is not enough to say so, because it is also where genuine prose ends
273
+ * up: a column's DB `Comment` ( @spinajs/orm's `columnToSchema` ), orm-http's relation note,
274
+ * a `@Schema()` author's own text. A comment that happens to read like a model name -
275
+ * "File", "User" - then replaced the whole property with a `$ref` to that model, turning a
276
+ * scalar into an object and DISCARDING everything the node said about itself. A
277
+ * `format: date-time` timestamp lost the one keyword every generated client needs to read it
278
+ * as a date, silently and only on the columns that carry a comment.
279
+ *
280
+ * So a node that describes itself is left alone. Only an untyped node, or one typed `object`
281
+ * with no shape of its own, can still be a type tag.
282
+ *
283
+ * @param schema - node under consideration
284
+ */
285
+ private isNamedTypeTag;
229
286
  /**
230
287
  * Registers `name` as a reusable component and returns its `$ref`.
231
288
  * Returns undefined when no provider recognises the name, so the caller leaves the node as-is.
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-builder.d.ts","sourceRoot":"","sources":["../../src/openapi-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAc,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,cAAc,EAAqD,MAAM,eAAe,CAAC;AAClG,OAAO,EAAiB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGpE,OAAO,EACL,gBAAgB,EAQhB,kBAAkB,EAClB,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAkIzB,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,oBAAoB,CAA0B;IACtD,wFAAwF;IACxF,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,mBAAmB,CAAc;IAGzC,SAAS,CAAC,eAAe,EAAG,cAAc,EAAE,CAAC;IAE7C,YAAY,MAAM,EAAE,cAAc,EAyBjC;IAED;;OAEG;IACI,aAAa,CAClB,UAAU,EAAE,SAAS,CAAC,cAAc,CAAC,EACrC,QAAQ,EAAE,kBAAkB,GAC3B,IAAI,CAmDN;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IAqBrB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAMrB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAqBjB;;OAEG;IACI,KAAK,IAAI,gBAAgB,CAG/B;IAED;;OAEG;IACH,OAAO,CAAC,SAAS;IAuBjB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAiJtB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,wBAAwB;IAiBhC;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAsC5B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,sBAAsB;IA2C9B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAKtB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAwC9B;;OAEG;IACH,OAAO,CAAC,cAAc;IA4BtB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA+CvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyEzB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+CxB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAkDtB;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAyB9B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;;;;;;;;;;;;;;;;OAoBG;IAEH,OAAO,CAAC,gBAAgB;IAkBxB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAQjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiC7B;;OAEG;IACH,OAAO,CAAC,YAAY;CAKrB"}
1
+ {"version":3,"file":"openapi-builder.d.ts","sourceRoot":"","sources":["../../src/openapi-builder.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,42 @@ const MULTIPART_BODY_PARAMS = new Set([
66
66
  http_1.ParameterType.FromCSV, 'FromCSV',
67
67
  http_1.ParameterType.FromJSONFile, 'FromJSONFile',
68
68
  ]);
69
+ /**
70
+ * Body params whose WIRE representation is an uploaded file, whatever the action ends up
71
+ * receiving. @CsvFile() and @JsonFile() belong here as much as @File() does: the argument is
72
+ * handed the PARSED content, but the request still carries one file, and the request body is
73
+ * what this document describes.
74
+ *
75
+ * @Form() and @FormField() are deliberately absent - those are ordinary form fields.
76
+ */
77
+ const FILE_BODY_PARAMS = new Set([
78
+ http_1.ParameterType.FromFile, 'FromFile',
79
+ http_1.ParameterType.FromCSV, 'FromCSV',
80
+ http_1.ParameterType.FromJSONFile, 'FromJSONFile',
81
+ ]);
82
+ /**
83
+ * Of the file params, only @File() / @Files() can carry more than one file under one field.
84
+ * The CSV and JSON extractors take `files[0]` and reject an empty field ( see FromCSV /
85
+ * FromJSONFile in @spinajs/http's route-args/FromForm.ts ), so an array-typed argument there
86
+ * describes the PARSED rows, never the upload.
87
+ */
88
+ const MULTI_FILE_PARAMS = new Set([http_1.ParameterType.FromFile, 'FromFile']);
89
+ /**
90
+ * Media type per framework response class that streams a file instead of serialising JSON.
91
+ * Keyed by class NAME because that is all the documentation layer ever sees - the return type
92
+ * arrives as a string, out of the JSDoc tag or the declaration file.
93
+ *
94
+ * `FileResponse` gets the generic binary type: its real one is a constructor option
95
+ * (`IFileResponseOptions.mimeType`) and is often left unset so `res.sendFile` can derive it
96
+ * from the file, so there is nothing to read here. `ZipResponse` pins application/zip the
97
+ * same way its constructor does, and `JsonFileResponse` always writes JSON - as an
98
+ * attachment, which is why it is still a binary body and not a JSON one.
99
+ */
100
+ const FILE_RESPONSE_MEDIA_TYPES = {
101
+ FileResponse: 'application/octet-stream',
102
+ ZipResponse: 'application/zip',
103
+ JsonFileResponse: 'application/json',
104
+ };
69
105
  /**
70
106
  * Mapping from ParameterType to OpenAPI 'in' location
71
107
  */
@@ -792,6 +828,14 @@ class OpenApiBuilder {
792
828
  * Priority: JSDoc type → decorator schema (param.Schema) → auto-detected primitive (param.RouteParamSchema) → @Schema metadata on DTO class → runtime type inference
793
829
  */
794
830
  schemaFromParam(param, docType) {
831
+ // An upload, before anything else gets a say. A file's schema is a fact of the DECORATOR,
832
+ // not of the argument's TypeScript type ( `IUploadedFile` is an interface, so it erases to
833
+ // `Object` and lands as a bare `{ type: 'object' }` ) and not of a JSDoc tag either: on a
834
+ // @CsvFile() the author documents the parsed ROWS, which is exactly the case that produced
835
+ // a spec demanding a JSON object where the client has to send a File.
836
+ if (FILE_BODY_PARAMS.has(param.Type)) {
837
+ return this.fileSchema(param);
838
+ }
795
839
  if (docType) {
796
840
  return this.inferSchemaFromString(docType);
797
841
  }
@@ -832,6 +876,58 @@ class OpenApiBuilder {
832
876
  }
833
877
  return this.inferSchema(runtimeType, undefined);
834
878
  }
879
+ /**
880
+ * The schema of an uploaded file: `type: string, format: binary`, which is how OAS 3.0
881
+ * spells a binary payload inside multipart/form-data. Generators read `format` and nothing
882
+ * else - it is what makes a client type the field `Blob` / `File` and Swagger UI render a
883
+ * file picker instead of a text box.
884
+ *
885
+ * Arity follows the RUNTIME's own rule, character for character ( `FromForm.extract`:
886
+ * `RuntimeType.name === 'Array' || Options.asArray === true` ) so the document and the
887
+ * extractor cannot disagree about whether a field takes one file or several. `@Files()` is
888
+ * `@File({ asArray: true })`, which is why the option has to be consulted and not just the
889
+ * declared type.
890
+ *
891
+ * A fresh object every call: `expandNamedSchemas` mutates the nodes it walks, so a shared
892
+ * constant would be rewritten under every route that used it.
893
+ *
894
+ * @param param - the route parameter to describe
895
+ */
896
+ fileSchema(param) {
897
+ const file = { type: 'string', format: 'binary' };
898
+ if (!MULTI_FILE_PARAMS.has(param.Type)) {
899
+ return file;
900
+ }
901
+ const asArray = param.Options?.asArray === true;
902
+ const isArrayType = param.RuntimeType?.name === 'Array';
903
+ return asArray || isArrayType ? { type: 'array', items: file } : file;
904
+ }
905
+ /**
906
+ * The response content for a route that streams a file, or undefined for anything else - in
907
+ * which case the caller documents a JSON body exactly as it always did.
908
+ *
909
+ * A framework file response is not describable as a schema: `FileResponse`, `ZipResponse`
910
+ * and `JsonFileResponse` all write bytes plus a `Content-Disposition: attachment` header,
911
+ * never a serialised instance of themselves. Documented as `{ type: 'object' }` under
912
+ * application/json - the fallback for any class name no schema provider recognises - a
913
+ * generated client parses the download as JSON and rejects every successful response.
914
+ *
915
+ * Both halves of `returns` have to be consulted. `@returns {FileResponse}` puts the name in
916
+ * `type`, but a route that merely DECLARES the return type ( the common case, and what the
917
+ * declaration file carries ) gets no `type` at all: @spinajs/http's parser resolves a named
918
+ * class to `{ type: 'object', description: name }` in `schema`, and the name lives in the
919
+ * description. Only a bare tag counts there - an object with a shape of its own describes
920
+ * itself, and its description is prose.
921
+ *
922
+ * @param returns - the documented return, from a JSDoc tag or the declaration file
923
+ */
924
+ fileResponseContent(returns) {
925
+ const schema = returns.schema;
926
+ const tagged = schema && schema.type === 'object' && !schema.properties && !schema.items ? schema.description : undefined;
927
+ const name = (returns.type ?? tagged)?.replace(/[{}]/g, '').trim();
928
+ const mediaType = name ? FILE_RESPONSE_MEDIA_TYPES[name] : undefined;
929
+ return mediaType ? { [mediaType]: { schema: { type: 'string', format: 'binary' } } } : undefined;
930
+ }
835
931
  /**
836
932
  * Convert a JSON Schema object to an OpenAPI schema, mapping known keywords.
837
933
  */
@@ -963,6 +1059,14 @@ class OpenApiBuilder {
963
1059
  ? expanded
964
1060
  : { ...expanded, description: bp.doc?.description };
965
1061
  }
1062
+ // `@File({ required: true })` is enforced by the uploader at runtime, so the document has
1063
+ // to say so too - `requestBody.required` only states that a body is expected at all, and a
1064
+ // multipart body missing its file field satisfies that while still being rejected with a
1065
+ // 400. Only file params are consulted: the other body params have no comparable option and
1066
+ // their `required` lists come from their own schemas.
1067
+ const required = bodyParams
1068
+ .filter((bp) => FILE_BODY_PARAMS.has(bp.param.Type) && bp.param.Options?.required === true)
1069
+ .map((bp) => bp.param.Name || `param_${bp.param.Index}`);
966
1070
  return {
967
1071
  required: true,
968
1072
  content: {
@@ -970,6 +1074,7 @@ class OpenApiBuilder {
970
1074
  schema: {
971
1075
  type: 'object',
972
1076
  properties,
1077
+ ...(required.length > 0 ? { required } : {}),
973
1078
  },
974
1079
  },
975
1080
  },
@@ -988,12 +1093,13 @@ class OpenApiBuilder {
988
1093
  const hasExplicit2xx = !!methodDoc?.responses && Object.keys(methodDoc.responses).some((c) => c.startsWith('2'));
989
1094
  const returnsIsInferredOnly = !!methodDoc?.returns && !methodDoc.returns.type && !methodDoc.returns.description;
990
1095
  if (methodDoc?.returns && !(hasExplicit2xx && returnsIsInferredOnly)) {
1096
+ const download = this.fileResponseContent(methodDoc.returns);
991
1097
  const schema = methodDoc.returns.type
992
1098
  ? this.inferSchemaFromString(methodDoc.returns.type)
993
1099
  : (methodDoc.returns.schema ?? { type: 'object' });
994
1100
  responses['200'] = {
995
1101
  description: methodDoc.returns.description || 'Successful response',
996
- content: { 'application/json': { schema: this.expandNamedSchemas(schema, 'response') } },
1102
+ content: download ?? { 'application/json': { schema: this.expandNamedSchemas(schema, 'response') } },
997
1103
  };
998
1104
  }
999
1105
  else if (!hasExplicit2xx) {
@@ -1006,9 +1112,10 @@ class OpenApiBuilder {
1006
1112
  // Swagger UI shows a clickable link and the same error envelope schema
1007
1113
  // across the whole document.
1008
1114
  if (resp.type) {
1115
+ const download = this.fileResponseContent({ type: resp.type });
1009
1116
  responses[statusCode] = {
1010
1117
  description: resp.description,
1011
- content: { 'application/json': { schema: this.expandNamedSchemas(this.inferSchemaFromString(resp.type), 'response') } },
1118
+ content: download ?? { 'application/json': { schema: this.expandNamedSchemas(this.inferSchemaFromString(resp.type), 'response') } },
1012
1119
  };
1013
1120
  continue;
1014
1121
  }
@@ -1087,7 +1194,7 @@ class OpenApiBuilder {
1087
1194
  return schema;
1088
1195
  }
1089
1196
  // Case 2 — a named-model tag: replace the whole node with a $ref to its component.
1090
- if (schema.description && !schema.$ref) {
1197
+ if (this.isNamedTypeTag(schema)) {
1091
1198
  const ref = this.registerNamedComponent(schema.description, kind);
1092
1199
  if (ref) {
1093
1200
  return { $ref: ref };
@@ -1104,6 +1211,33 @@ class OpenApiBuilder {
1104
1211
  }
1105
1212
  return schema;
1106
1213
  }
1214
+ /**
1215
+ * Is this node a bare "here is a type NAME" placeholder, the shape `inferSchema`,
1216
+ * `inferSchemaFromString` and the ORM's relation properties all produce -
1217
+ * `{ type: 'object', description: 'TestUser' }` and nothing else?
1218
+ *
1219
+ * `description` alone is not enough to say so, because it is also where genuine prose ends
1220
+ * up: a column's DB `Comment` ( @spinajs/orm's `columnToSchema` ), orm-http's relation note,
1221
+ * a `@Schema()` author's own text. A comment that happens to read like a model name -
1222
+ * "File", "User" - then replaced the whole property with a `$ref` to that model, turning a
1223
+ * scalar into an object and DISCARDING everything the node said about itself. A
1224
+ * `format: date-time` timestamp lost the one keyword every generated client needs to read it
1225
+ * as a date, silently and only on the columns that carry a comment.
1226
+ *
1227
+ * So a node that describes itself is left alone. Only an untyped node, or one typed `object`
1228
+ * with no shape of its own, can still be a type tag.
1229
+ *
1230
+ * @param schema - node under consideration
1231
+ */
1232
+ isNamedTypeTag(schema) {
1233
+ if (!schema.description || schema.$ref) {
1234
+ return false;
1235
+ }
1236
+ if (schema.type !== undefined && schema.type !== 'object') {
1237
+ return false;
1238
+ }
1239
+ return !schema.format && !schema.properties && !schema.items && !schema.enum && !schema.oneOf && !schema.anyOf && !schema.allOf;
1240
+ }
1107
1241
  /**
1108
1242
  * Registers `name` as a reusable component and returns its `$ref`.
1109
1243
  * Returns undefined when no provider recognises the name, so the caller leaves the node as-is.
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-builder.js","sourceRoot":"","sources":["../../src/openapi-builder.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAAgE;AAChE,wCAAkG;AAClG,oDAAoE;AACpE,oDAAsD;AACtD,wCAA0C;AAe1C;;;GAGG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS;IACtC,oBAAa,CAAC,GAAG;IACjB,oBAAa,CAAC,GAAG;IACjB,oBAAa,CAAC,MAAM;IACpB,oBAAa,CAAC,WAAW;IACzB,oBAAa,CAAC,WAAW;IACzB,cAAc;IACd,eAAe;IACf,QAAQ;IACR,aAAa;IACb,sBAAsB;CACvB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS;IAClC,oBAAa,CAAC,QAAQ;IACtB,oBAAa,CAAC,SAAS;IACvB,oBAAa,CAAC,QAAQ;IACtB,oBAAa,CAAC,SAAS;IACvB,oBAAa,CAAC,SAAS;IACvB,oBAAa,CAAC,QAAQ;IACtB,oBAAa,CAAC,OAAO;IACrB,oBAAa,CAAC,YAAY;IAC1B,UAAU;IACV,oBAAoB;IACpB,UAAU;IACV,eAAe;IACf,WAAW;IACX,UAAU;IACV,SAAS;IACT,cAAc;IACd,+EAA+E;IAC/E,WAAW;CACZ,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAS;IAC5C,oBAAa,CAAC,QAAQ,EAAE,UAAU;IAClC,oBAAa,CAAC,QAAQ,EAAE,UAAU;IAClC,oBAAa,CAAC,SAAS,EAAE,eAAe;IACxC,oBAAa,CAAC,OAAO,EAAE,SAAS;IAChC,oBAAa,CAAC,YAAY,EAAE,cAAc;CAC3C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,kBAAkB,GAA2D;IACjF,SAAS,EAAE,OAAO;IAClB,mBAAmB,EAAE,OAAO;IAE5B,UAAU,EAAE,MAAM;IAClB,mBAAmB,EAAE,MAAM;IAE3B,UAAU,EAAE,QAAQ;IACpB,qBAAqB,EAAE,QAAQ;IAE/B,UAAU,EAAE,QAAQ;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,uBAAuB,GAA2B;IACtD,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,aAAa;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,8BAA8B,GAA2B;IAC7D,KAAK,EAAE,2DAA2D;IAClE,KAAK,EAAE,8CAA8C;IACrD,KAAK,EAAE,kDAAkD;IACzD,KAAK,EAAE,mDAAmD;IAC1D,KAAK,EAAE,sCAAsC;IAC7C,KAAK,EAAE,uEAAuE;IAC9E,KAAK,EAAE,0DAA0D;IACjE,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,0DAA0D;IACjE,KAAK,EAAE,uBAAuB;CAC/B,CAAC;AASF;;;;;;;;;;;GAWG;AACH,SAAS,wBAAwB,CAAC,QAAgB;IAChD,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED;IAgBE,YAAY,MAAsB;QAb1B,SAAI,GAA6B,IAAI,GAAG,EAAE,CAAC;QAC3C,wBAAmB,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC7C,yBAAoB,GAAgB,IAAI,GAAG,EAAE,CAAC;QACtD,wFAAwF;QAChF,oBAAe,GAAoC,IAAI,GAAG,EAAE,CAAC;QAC7D,0BAAqB,GAAG,KAAK,CAAC;QAC9B,uBAAkB,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC5C,yBAAoB,GAAa,EAAE,CAAC;QACpC,wBAAmB,GAAW,EAAE,CAAC;QAMvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG;YACd,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE;gBACJ,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,mBAAmB;gBAC1C,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;gBAClC,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC;YACD,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACjF,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG;gBACzB,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,aAAa,CAClB,UAAqC,EACrC,QAA4B;QAE5B,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC;QACnD,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,4EAA4E;QAC5E,6EAA6E;QAC7E,4EAA4E;QAC5E,sEAAsE;QACtE,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5F,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAElE,2DAA2D;QAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;gBACrB,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,QAAQ,CAAC,gBAAgB;aACvC,CAAC,CAAC;QACL,CAAC;QAED,4EAA4E;QAC5E,wEAAwE;QACxE,+BAA+B;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE1D,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,aAAa,GAAG,UAAoB,CAAC;YAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAgB,CAAC,CAAC;YAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEjD,IAAI,CAAC,UAAU;gBAAE,SAAS;YAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CACnC,UAAU,CAAC,IAAI,EACf,aAAa,EACb,KAAK,EACL,SAAS,EACT,OAAO,EACP,QAAQ,CACT,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YAEvD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YACrC,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,aAAa,CAAC,SAA4B,EAAE,QAA4B,EAAE,UAAkB;QAClG,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,IAAI,EAAE,CAAC;QAC7D,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACjE,MAAM,GAAG,GAAG,CAAC,GAAG,kBAAkB,EAAE,GAAG,aAAa,CAAC,CAAC;QACtD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE7B,SAAS,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;QAE9B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YACxG,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,MAAM,IAAI,KAAK,GAAG,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1H,CAAC;QAED,MAAM,KAAK,GAAG,0BAA0B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACjG,CAAC;IAED;;;;;OAKG;IACK,uBAAuB,CAAC,IAAY,EAAE,GAA6C;QACzF,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QAC9C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,6DAA6D,CAAC;QAC9G,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,MAAM,WAAW,IAAI,SAAS,WAAW,EAAE,CAAC,CAAC;QAE1F,gEAAgE;QAChE,MAAM,OAAO,GAAG,+EAA+E;YAC7F,2EAA2E,CAAC;QAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACrH,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,OAAO,UAAU,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;IACvE,CAAC;IAEO,aAAa,CAAC,IAAY;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACK,kBAAkB,CACxB,QAAiB;QAEjB,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAEhC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,QAAkB,CAMlD,CAAC;QAEd,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC3C,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;YAC7B,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;YACxE,MAAM;SACP,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,SAAS,CACf,SAA4B,EAC5B,IAAsD,EACtD,UAAkB;QAElB,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACxF,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEvD,IAAI,IAAI,CAAC,QAAQ;YAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS,CAAC,oBAAoB,CAAC,GAAG,WAAW,CAAC;QAE1E,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC;QAC9H,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;QAC9E,MAAM,IAAI,GAAG,sBAAsB,QAAQ,gBAAgB,YAAY,EAAE,CAAC;QAE1E,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,QAAgB,EAAE,SAA6B,EAAE,UAAkB;QACnF,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;gBACtB,IAAI,GAAG,IAAI,QAAQ,GAAG,CAAC;YACzB,CAAC;iBAAM,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;gBAC5B,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;QACtC,CAAC;QAED,6DAA6D;QAC7D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;QAE1D,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,IAAe;QAClC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,gBAAS,CAAC,GAAG,CAAC;YACnB,KAAK,gBAAS,CAAC,IAAI;gBACjB,OAAO,KAAK,CAAC;YACf,KAAK,gBAAS,CAAC,IAAI;gBACjB,OAAO,MAAM,CAAC;YAChB,KAAK,gBAAS,CAAC,GAAG;gBAChB,OAAO,KAAK,CAAC;YACf,KAAK,gBAAS,CAAC,MAAM;gBACnB,OAAO,QAAQ,CAAC;YAClB,KAAK,gBAAS,CAAC,KAAK;gBAClB,OAAO,OAAO,CAAC;YACjB,KAAK,gBAAS,CAAC,IAAI;gBACjB,OAAO,MAAM,CAAC;YAChB;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,cAAc,CACpB,cAAsB,EACtB,UAAkB,EAClB,KAAa,EACb,SAA2C,EAC3C,OAAe,EACf,QAAgB;QAEhB,MAAM,SAAS,GAAsB;YACnC,WAAW,EAAE,GAAG,cAAc,IAAI,UAAU,EAAE;YAC9C,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC;YAClC,OAAO,EAAE,SAAS,EAAE,OAAO;YAC3B,WAAW,EAAE,SAAS,EAAE,WAAW;YACnC,UAAU,EAAE,SAAS,EAAE,UAAU;YACjC,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;YACzC,4FAA4F;YAC5F,QAAQ,EAAE,SAAS,EAAE,QAAQ;SAC9B,CAAC;QAEF,MAAM,UAAU,GAA8F,EAAE,CAAC;QAEjH,yEAAyE;QACzE,MAAM,YAAY,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAExD,sFAAsF;QACtF,+EAA+E;QAC/E,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAmG,CAAC;QAExI,2DAA2D;QAC3D,MAAM,WAAW,GAAwB,EAAE,CAAC;QAE5C,2BAA2B;QAC3B,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAc,CAAC,EAAE,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,uEAAuE;YACvE,uEAAuE;YACvE,wEAAwE;YACxE,oFAAoF;YACpF,IAAI,QAAQ,GAAuD,kBAAkB,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;YAC5G,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACjC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;oBAE3C,+EAA+E;oBAC/E,uEAAuE;oBACvE,+EAA+E;oBAC/E,2EAA2E;oBAC3E,8EAA8E;oBAC9E,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;wBACvD,QAAQ,GAAG,SAAS,CAAC;oBACvB,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBAChD,QAAQ,GAAG,OAAO,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEjD,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAc,CAAC,EAAE,CAAC;gBAC1C,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1C,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;gBAC3G,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAEvD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,IAAI,4BAAe,CACvB,GAAG,cAAc,IAAI,UAAU,wBAAwB,WAAW,wBAAwB;wBACxF,QAAQ,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,IAAI,kBAAkB,QAAQ,MAAM;wBACpF,gFAAgF;wBAChF,qDAAqD,CACxD,CAAC;gBACJ,CAAC;gBAED,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACpG,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;QAED,uFAAuF;QACvF,qFAAqF;QACrF,oFAAoF;QACpF,oFAAoF;QACpF,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChD,SAAS,CAAC,UAAW,CAAC,IAAI,CACxB,QAAQ;gBACN,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;gBACjE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CACrE,CAAC;QACJ,CAAC;QAED,SAAS,CAAC,UAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAE3C,sCAAsC;QACtC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACnE,CAAC;QAED,oEAAoE;QACpE,uEAAuE;QACvE,8CAA8C;QAC9C,IAAI,SAAS,EAAE,QAAQ,EAAE,CAAC;YACxB,IAAI,OAAmE,CAAC;YACxE,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC1B,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;oBACnB,EAAE,CAAC,OAAO,KAAK,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;oBAC1C,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;gBAClD,CAAC;YACH,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACtB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;oBACnC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1C,OAAO,CAAC,QAAS,CAAC,GAAG,CAAC,GAAG;wBACvB,OAAO,EAAE,EAAE,CAAC,IAAI;wBAChB,WAAW,EAAE,EAAE,CAAC,WAAW;wBAC3B,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC;qBACnC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,SAAS,CAAC,UAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC,UAAU,CAAC;QAC9B,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,iBAAiB,CAAC,KAAsB;QAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAkB,CAAC;QAEzC,yBAAyB;QACzB,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAA8C,CAAC,CAAC;YAC9F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,0EAA0E;YAC1E,MAAM,IAAI,GAAG,OAA2C,CAAC;YACzD,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;gBAC5C,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;oBACnC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,OAAO;iBACpB,MAAM,CAAC,CAAC,CAAC,EAAgD,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,QAAQ,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC;YAClI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0CAA0C;SACxD,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACK,wBAAwB,CAAC,SAA8C;QAC7E,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,SAAS,CAE5D,CAAC;QACd,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAE3B,MAAM,GAAG,GAAG,UAAU,CAAC,iBAAiB,CAAC;QACzC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU;YAAE,OAAO,EAAE,CAAC;QAEzD,MAAM,MAAM,GAA8C,EAAE,CAAC;QAC7D,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACK,oBAAoB,CAAC,OAAkD;QAC7E,MAAM,WAAW,GAAqB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxD,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;YACzC,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;gBAC/D,KAAK,EAAE;oBACL,KAAK,EAAE;wBACL,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAClB,EAAE,IAAI,EAAE,SAAS,EAAE;wBACnB,EAAE,IAAI,EAAE,SAAS,EAAE;wBACnB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;qBAC7C;oBACD,WAAW,EAAE,gDAAgD;iBAC9D;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,CAAC,SAAS;oBACjB,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;iBACxB;aACF;SACF,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;YAC3B,UAAU,EAAE;gBACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC3D,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC;wBAC7B,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;wBAChB,CAAC,CAAE,EAAE,KAAK,EAAE,WAAW,EAAqB;iBAC/C;aACF;SACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAAC,KAAsB;QAChD,MAAM,SAAS,GAAI,KAAK,CAAC,OAA8C,EAAE,SAAS,CAAC;QACnF,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,oBAAa,CAAC,SAAS,CAAC;YAC7B,KAAK,WAAW;gBACd,OAAO,OAAO,CAAC;YACjB,KAAK,oBAAa,CAAC,UAAU,CAAC;YAC9B,KAAK,YAAY;gBACf,OAAO,QAAQ,CAAC;YAClB,KAAK,oBAAa,CAAC,QAAQ,CAAC;YAC5B,KAAK,UAAU;gBACb,6EAA6E;gBAC7E,2DAA2D;gBAC3D,OAAO,MAAM,CAAC;YAChB,KAAK,oBAAa,CAAC,UAAU,CAAC;YAC9B,KAAK,YAAY,CAAC;YAClB;gBACE,OAAO,MAAM,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,gBAAgB,CAAC,KAAsB;QAC7C,MAAM,UAAU,GAAI,KAAK,CAAC,OAA+C,EAAE,UAAU,CAAC;QACtF,OAAO,UAAU,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACK,sBAAsB,CAC5B,cAAsB,EACtB,UAAkB,EAClB,KAAsB,EACtB,YAAsB,EACtB,QAAgB;QAEhB,MAAM,UAAU,GAAI,KAAK,CAAC,OAA+C,EAAE,UAAU,CAAC;QACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,IAAI,aAAa,KAAK,CAAC,KAAK,EAAE,CAAC;QAE1D,MAAM,SAAS,GACb,YAAY,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,CAAC,2BAA2B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACvD,CAAC,CAAC,iDAAiD,CAAC;QACxD,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACtE,MAAM,GAAG,GACP,2FAA2F;YAC3F,0EAA0E,UAAU,QAAQ;YAC5F,0FAA0F;YAC1F,2FAA2F;YAC3F,iEAAiE,CAAC;QAEpE,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,OAAO,UAAU,CAAC;YACpB,CAAC;YAED,MAAM,IAAI,4BAAe,CACvB,GAAG,cAAc,IAAI,UAAU,qBAAqB,QAAQ,yBAAyB;gBACnF,KAAK,UAAU,+CAA+C,QAAQ,OAAO,SAAS,IAAI,GAAG,EAAE,CAClG,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,CAAC;QAED,MAAM,IAAI,4BAAe,CACvB,GAAG,cAAc,IAAI,UAAU,qBAAqB,QAAQ,4BAA4B;YACtF,cAAc,QAAQ,OAAO,SAAS,IAAI,GAAG,EAAE,CAClD,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,cAAc,CAAC,KAAsB;QAC3C,MAAM,SAAS,GAAI,KAAK,CAAC,OAA8C,EAAE,SAAS,CAAC;QACnF,OAAO,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,oBAAa,CAAC,UAAU,IAAK,SAAoB,KAAK,YAAY,CAAC;IAC3I,CAAC;IAED;;;;;;;;;;OAUG;IACK,oBAAoB,CAAC,KAAsB;QACjD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;QACpC,MAAM,UAAU,GACd,OAAO,SAAS,KAAK,UAAU;YAC7B,CAAC,CAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAEhD;YAChB,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAW,CAAC,OAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,UAAU,GAAG,UAAU,EAAE,UAAU,CAAC;QAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC;QACxF,MAAM,OAAO,GAAI,KAAK,CAAC,OAA+C,EAAE,UAAU,IAAI,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;QAE7I,MAAM,SAAS,GAAG,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAE,SAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5H,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7E,gFAAgF;QAChF,iFAAiF;QACjF,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEzD,OAAO;YACL,GAAG,MAAM;YACT,WAAW,EAAE,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,MAAM,CAAC,CAAC,CAAC,SAAS;SAC3G,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAAC,IAAwB;QACrD,MAAM,UAAU,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aAC5B,WAAW,EAAE;aACb,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;aACpB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;aAC3B,IAAI,EAAE,CAAC;QAEV,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,SAAS,CAAC;YACf,KAAK,UAAU,CAAC;YAChB,KAAK,WAAW,CAAC;YACjB,KAAK,KAAK,CAAC;YACX,KAAK,SAAS,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7B,KAAK,QAAQ;gBACX,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC9C,KAAK,OAAO,CAAC;YACb,KAAK,QAAQ,CAAC;YACd,KAAK,MAAM;gBACT,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC;YACZ,KAAK,SAAS,CAAC;YACf,KAAK,KAAK;gBACR,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7B,yEAAyE;YACzE,kEAAkE;YAClE,KAAK,SAAS,CAAC;YACf,KAAK,SAAS;gBACZ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,KAAK,MAAM;gBACT,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC5C,KAAK,UAAU,CAAC;YAChB,KAAK,WAAW;gBACd,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;YACjD;gBACE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,KAAsB,EACtB,QAAgD,EAChD,GAA2D,EAC3D,YAAqB;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC;QAE3C,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,YAAY,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,KAAK,CAAC,KAAK,EAAE;YAC1D,EAAE,EAAE,QAAQ;YACZ,WAAW,EAAE,GAAG,EAAE,WAAW;YAC7B,QAAQ,EAAE,QAAQ,KAAK,MAAM;SAC9B,CAAC;QAEF,IAAI,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACrC,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAClE,CAAC;QAED,OAAO;YACL,GAAG,IAAI;YACP,MAAM;YACN,GAAG,CAAC,OAAO,IAAI,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,eAAe,CAAC,KAAsB,EAAE,OAAgB;QAC9D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,2FAA2F;QAC3F,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,oFAAoF;QACpF,+EAA+E;QAC/E,uDAAuD;QACvD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,KAAK,CAAC,gBAAgB,IAAI,OAAO,KAAK,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACtC,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,WAAW,YAAY,eAAU,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAI,WAA+B,CAAC,IAAW,CAAC;gBAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,0BAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,0BAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC9J,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,WAAkB,CAAC;gBAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,0BAAa,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,0BAAa,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC7I,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACtD,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBAC1C,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,UAAe;QACvC,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YAClD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,MAAM,GAAmB,EAAE,CAAC;QAElC,iFAAiF;QACjF,sCAAsC;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,GAAI,UAAU,CAAC,IAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrD,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAC3E,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,UAAU,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACzD,IAAI,UAAU,CAAC,WAAW;YAAE,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QACxE,IAAI,UAAU,CAAC,IAAI;YAAE,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QACnD,IAAI,UAAU,CAAC,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QAC/D,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAC1E,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAC1E,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QAChF,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QAChF,IAAI,UAAU,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAC5D,IAAI,UAAU,CAAC,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QAE/D,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,wEAAwE;QACxE,4EAA4E;QAC5E,4EAA4E;QAC5E,UAAU;QACV,IAAI,OAAO,UAAU,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACzD,MAAM,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;QAChE,CAAC;aAAM,IAAI,UAAU,CAAC,oBAAoB,EAAE,CAAC;YAC3C,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACnC,mDAAmD;YACnD,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;QAC1D,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAE1E,yEAAyE;QACzE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,MAAsB,EAAE,WAAgB;QACpE,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAEvJ,CAAC;QAEd,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI,OAAO,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,IAAI,aAAa,CAAC;YACzC,MAAM,IAAI,GAAG,gBAAgB,SAAS,OAAO,OAAO,qDAAqD,CAAC;YAC1G,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1E,IAAY,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QAClE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,UAAqG,EACrG,MAAc;QAEd,4EAA4E;QAC5E,0EAA0E;QAC1E,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC,CAAC;QAE5F,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAEzE,oEAAoE;QACpE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO;gBACL,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW;gBAChC,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE;oBACP,CAAC,WAAW,CAAC,EAAE;wBACb,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;qBAC9E;iBACF;aACF,CAAC;QACJ,CAAC;QAED,gDAAgD;QAChD,MAAM,UAAU,GAAmC,EAAE,CAAC;QACtD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;YACvF,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI;gBAC9B,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;QACxD,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,CAAC,WAAW,CAAC,EAAE;oBACb,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,UAAU;qBACX;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,SAA2C;QAChE,MAAM,SAAS,GAAqC,EAAE,CAAC;QAEvD,+EAA+E;QAC/E,oEAAoE;QACpE,0EAA0E;QAC1E,gCAAgC;QAChC,MAAM,cAAc,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACjH,MAAM,qBAAqB,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC;QAEhH,IAAI,SAAS,EAAE,OAAO,IAAI,CAAC,CAAC,cAAc,IAAI,qBAAqB,CAAC,EAAE,CAAC;YACrE,MAAM,MAAM,GACV,SAAS,CAAC,OAAO,CAAC,IAAI;gBACpB,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpD,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEvD,SAAS,CAAC,KAAK,CAAC,GAAG;gBACjB,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,WAAW,IAAI,qBAAqB;gBACnE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE;aACzF,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3B,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,SAAS,EAAE,SAAS,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrE,gEAAgE;gBAChE,oEAAoE;gBACpE,uEAAuE;gBACvE,6BAA6B;gBAC7B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,SAAS,CAAC,UAAU,CAAC,GAAG;wBACtB,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE;qBACxH,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5E,IAAI,OAAO,EAAE,CAAC;oBACZ,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,0BAA0B,OAAO,EAAE,EAAE,CAAC;gBACxE,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACK,wBAAwB,CAAC,UAAkB,EAAE,WAAoB;QACvE,MAAM,IAAI,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;YACrD,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;YAChD,SAAS,CAAC,IAAI,CAAC,GAAG;gBAChB,WAAW,EAAE,WAAW,IAAI,8BAA8B,CAAC,UAAU,CAAC,IAAI,IAAI;gBAC9E,OAAO,EAAE;oBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,EAAE;iBACvE;aACF,CAAC;YACF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,iBAAiB;QACvB,IAAI,IAAI,CAAC,qBAAqB;YAAE,OAAO;QAEvC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,GAAG;gBACd,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,SAAS,CAAC;gBACrB,UAAU,EAAE;oBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;oBACxE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iCAAiC,EAAE;oBACzE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC9F;aACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACK,kBAAkB,CAAC,MAAsB,EAAE,IAAI,GAAe,SAAS;QAC7E,8DAA8D;QAC9D,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,mFAAmF;QACnF,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAClE,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,+EAA+E;QAC/E,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAAC,IAAY,EAAE,IAAI,GAAe,SAAS;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,wBAAwB,aAAa,EAAE,CAAC;QAEpD,kFAAkF;QAClF,0EAA0E;QAC1E,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACjD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QAE5C,sDAAsD;QACtD,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QAEzF,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,kBAAkB,CAAC,IAAY,EAAE,IAAgB;QACvD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,8FAA8F;YAC9F,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/F,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IAEK,gBAAgB,CAAC,IAAY,EAAE,IAAgB,EAAE,QAAiC;QACxF,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACzF,MAAM,QAAQ,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC5F,MAAM,UAAU,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEzD,mFAAmF;YACnF,uCAAuC;YACvC,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,UAAU,IAAI,CAAC,WAAW,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAC7E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,CAAC;IAED;;;;;OAKG;IACK,SAAS,CAAC,MAA+B;QAC/C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,WAAgB,EAAE,OAAgB;QACpD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,CAAC;QAED,gCAAgC;QAChC,IAAI,WAAW,KAAK,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACtD,IAAI,WAAW,KAAK,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACtD,IAAI,WAAW,KAAK,OAAO;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxD,IAAI,WAAW,KAAK,KAAK;YAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC/E,IAAI,WAAW,KAAK,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAEtD,8DAA8D;QAC9D,IAAI,OAAO,WAAW,KAAK,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;YAC1D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QAChE,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,OAAe;QAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEpD,wFAAwF;QACxF,wFAAwF;QACxF,yFAAyF;QACzF,qFAAqF;QACrF,yFAAyF;QACzF,yDAAyD;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAElH,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACvE,CAAC;QAED,QAAQ,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9B,KAAK,QAAQ;gBACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS;gBACZ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,KAAK,SAAS;gBACZ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7B,KAAK,QAAQ;gBACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,KAAK,OAAO;gBACV,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;YACtD;gBACE,kCAAkC;gBAClC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAyB;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,+DAA+D;QAC/D,OAAO,IAAA,gBAAS,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;CACF;;AA1xCW;IADT,IAAA,eAAU,EAAC,2BAAc,CAAC;;uDACkB"}
1
+ {"version":3,"file":"openapi-builder.js","sourceRoot":"","sources":["../../src/openapi-builder.ts"],"names":[],"mappings":"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"}
@@ -182,6 +182,44 @@ export declare class OpenApiBuilder {
182
182
  * Priority: JSDoc type → decorator schema (param.Schema) → auto-detected primitive (param.RouteParamSchema) → @Schema metadata on DTO class → runtime type inference
183
183
  */
184
184
  private schemaFromParam;
185
+ /**
186
+ * The schema of an uploaded file: `type: string, format: binary`, which is how OAS 3.0
187
+ * spells a binary payload inside multipart/form-data. Generators read `format` and nothing
188
+ * else - it is what makes a client type the field `Blob` / `File` and Swagger UI render a
189
+ * file picker instead of a text box.
190
+ *
191
+ * Arity follows the RUNTIME's own rule, character for character ( `FromForm.extract`:
192
+ * `RuntimeType.name === 'Array' || Options.asArray === true` ) so the document and the
193
+ * extractor cannot disagree about whether a field takes one file or several. `@Files()` is
194
+ * `@File({ asArray: true })`, which is why the option has to be consulted and not just the
195
+ * declared type.
196
+ *
197
+ * A fresh object every call: `expandNamedSchemas` mutates the nodes it walks, so a shared
198
+ * constant would be rewritten under every route that used it.
199
+ *
200
+ * @param param - the route parameter to describe
201
+ */
202
+ private fileSchema;
203
+ /**
204
+ * The response content for a route that streams a file, or undefined for anything else - in
205
+ * which case the caller documents a JSON body exactly as it always did.
206
+ *
207
+ * A framework file response is not describable as a schema: `FileResponse`, `ZipResponse`
208
+ * and `JsonFileResponse` all write bytes plus a `Content-Disposition: attachment` header,
209
+ * never a serialised instance of themselves. Documented as `{ type: 'object' }` under
210
+ * application/json - the fallback for any class name no schema provider recognises - a
211
+ * generated client parses the download as JSON and rejects every successful response.
212
+ *
213
+ * Both halves of `returns` have to be consulted. `@returns {FileResponse}` puts the name in
214
+ * `type`, but a route that merely DECLARES the return type ( the common case, and what the
215
+ * declaration file carries ) gets no `type` at all: @spinajs/http's parser resolves a named
216
+ * class to `{ type: 'object', description: name }` in `schema`, and the name lives in the
217
+ * description. Only a bare tag counts there - an object with a shape of its own describes
218
+ * itself, and its description is prose.
219
+ *
220
+ * @param returns - the documented return, from a JSDoc tag or the declaration file
221
+ */
222
+ private fileResponseContent;
185
223
  /**
186
224
  * Convert a JSON Schema object to an OpenAPI schema, mapping known keywords.
187
225
  */
@@ -226,6 +264,25 @@ export declare class OpenApiBuilder {
226
264
  * so every caller that never had an opinion keeps the schema it always got.
227
265
  */
228
266
  private expandNamedSchemas;
267
+ /**
268
+ * Is this node a bare "here is a type NAME" placeholder, the shape `inferSchema`,
269
+ * `inferSchemaFromString` and the ORM's relation properties all produce -
270
+ * `{ type: 'object', description: 'TestUser' }` and nothing else?
271
+ *
272
+ * `description` alone is not enough to say so, because it is also where genuine prose ends
273
+ * up: a column's DB `Comment` ( @spinajs/orm's `columnToSchema` ), orm-http's relation note,
274
+ * a `@Schema()` author's own text. A comment that happens to read like a model name -
275
+ * "File", "User" - then replaced the whole property with a `$ref` to that model, turning a
276
+ * scalar into an object and DISCARDING everything the node said about itself. A
277
+ * `format: date-time` timestamp lost the one keyword every generated client needs to read it
278
+ * as a date, silently and only on the columns that carry a comment.
279
+ *
280
+ * So a node that describes itself is left alone. Only an untyped node, or one typed `object`
281
+ * with no shape of its own, can still be a type tag.
282
+ *
283
+ * @param schema - node under consideration
284
+ */
285
+ private isNamedTypeTag;
229
286
  /**
230
287
  * Registers `name` as a reusable component and returns its `$ref`.
231
288
  * Returns undefined when no provider recognises the name, so the caller leaves the node as-is.
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-builder.d.ts","sourceRoot":"","sources":["../../src/openapi-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAc,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,cAAc,EAAqD,MAAM,eAAe,CAAC;AAClG,OAAO,EAAiB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGpE,OAAO,EACL,gBAAgB,EAQhB,kBAAkB,EAClB,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAkIzB,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,oBAAoB,CAA0B;IACtD,wFAAwF;IACxF,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,mBAAmB,CAAc;IAGzC,SAAS,CAAC,eAAe,EAAG,cAAc,EAAE,CAAC;IAE7C,YAAY,MAAM,EAAE,cAAc,EAyBjC;IAED;;OAEG;IACI,aAAa,CAClB,UAAU,EAAE,SAAS,CAAC,cAAc,CAAC,EACrC,QAAQ,EAAE,kBAAkB,GAC3B,IAAI,CAmDN;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IAqBrB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAMrB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAqBjB;;OAEG;IACI,KAAK,IAAI,gBAAgB,CAG/B;IAED;;OAEG;IACH,OAAO,CAAC,SAAS;IAuBjB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAiJtB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,wBAAwB;IAiBhC;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAsC5B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,sBAAsB;IA2C9B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAKtB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAwC9B;;OAEG;IACH,OAAO,CAAC,cAAc;IA4BtB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA+CvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyEzB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+CxB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAkDtB;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAyB9B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;;;;;;;;;;;;;;;;OAoBG;IAEH,OAAO,CAAC,gBAAgB;IAkBxB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAQjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiC7B;;OAEG;IACH,OAAO,CAAC,YAAY;CAKrB"}
1
+ {"version":3,"file":"openapi-builder.d.ts","sourceRoot":"","sources":["../../src/openapi-builder.ts"],"names":[],"mappings":"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"}