@azure-tools/typespec-python 0.8.2 → 0.8.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AACA,OAAO,EA8BH,WAAW,EAOd,MAAM,oBAAoB,CAAC;AAwC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAyBhD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,oBAAoB,CAAC,iBAuBvE"}
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AACA,OAAO,EAuBH,WAAW,EAQd,MAAM,oBAAoB,CAAC;AA8C5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAgChD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,oBAAoB,CAAC,iBAuBvE"}
@@ -1,8 +1,8 @@
1
1
  import { getPagedResult, getLroMetadata } from "@azure-tools/typespec-azure-core";
2
- import { getDoc, getFriendlyName, getMaxLength, getMaxValue, getMinLength, getMinValue, getPattern, getSummary, getVisibility, ignoreDiagnostics, isErrorModel, isNeverType, getEffectiveModelType, getDiscriminator, isKey, isStringType, getPropertyType, isNumericType, getFormat, getMinItems, getMaxItems, listServices, isNullType, SyntaxKind, getNamespaceFullName, } from "@typespec/compiler";
2
+ import { getDoc, getFriendlyName, getMaxLength, getMaxValue, getMinLength, getMinValue, getPattern, getSummary, getVisibility, ignoreDiagnostics, isErrorModel, isNeverType, getEffectiveModelType, getDiscriminator, isKey, listServices, getNamespaceFullName, } from "@typespec/compiler";
3
3
  import { getAuthentication, getHeaderFieldName, getHttpOperation, getPathParamName, getQueryParamName, getServers, isStatusCode, isHeader, } from "@typespec/http";
4
4
  import { getAddedOnVersions } from "@typespec/versioning";
5
- import { listClients, listOperationGroups, listOperationsInOperationGroup, isApiVersion, getDefaultApiVersion, getClientNamespaceString, getClientFormat, createDpgContext, getPropertyNames, getLibraryName, getAllModels, isInternal, } from "@azure-tools/typespec-client-generator-core";
5
+ import { listClients, listOperationGroups, listOperationsInOperationGroup, isApiVersion, getDefaultApiVersion, getClientNamespaceString, getClientFormat, createSdkContext, getPropertyNames, getLibraryName, getAllModels, isInternal, getSdkSimpleType, getSdkListOrDict, getSdkUnion, getSdkEnum, } from "@azure-tools/typespec-client-generator-core";
6
6
  import { getResourceOperation } from "@typespec/rest";
7
7
  import { resolveModuleRoot, saveCodeModelAsYaml } from "./external-process.js";
8
8
  import { dirname } from "path";
@@ -13,6 +13,12 @@ const defaultOptions = {
13
13
  "basic-setup-py": true,
14
14
  "package-version": "1.0.0b1",
15
15
  };
16
+ const sdkScalarKindToPythonKind = {
17
+ int32: "integer",
18
+ int64: "integer",
19
+ float32: "float",
20
+ float64: "float",
21
+ };
16
22
  export async function $onEmit(context) {
17
23
  const program = context.program;
18
24
  const resolvedOptions = { ...defaultOptions, ...context.options };
@@ -397,14 +403,12 @@ function emitResponse(context, response, innerResponse) {
397
403
  if (innerResponse.body.type.kind === "Model") {
398
404
  modelType = getEffectiveSchemaType(context, innerResponse.body.type);
399
405
  }
400
- if (modelType && !isAzureCoreModel(modelType)) {
401
- type = getType(context, modelType);
402
- }
403
- else if (modelType && ["CustomPage", "Page"].includes(modelType.name)) {
404
- // hacky sorry. we want a dummy type here so we get the accept parameter
405
- // we don't want to generate the paged models
406
+ if (modelType && modelType.decorators.find((d) => d.decorator.name === "$pagedResult")) {
406
407
  type = getType(context, Array.from(modelType.properties.values())[0].type);
407
408
  }
409
+ else if (modelType && !isAzureCoreModel(modelType)) {
410
+ type = getType(context, modelType);
411
+ }
408
412
  else if (!modelType) {
409
413
  type = getType(context, innerResponse.body.type);
410
414
  }
@@ -449,6 +453,7 @@ function addPagingInformation(context, operation, emittedOperation) {
449
453
  if (pagedResult === undefined) {
450
454
  throw Error("Trying to add paging information, but not paging metadata for this operation");
451
455
  }
456
+ getType(context, pagedResult.modelType)["pageResultModel"] = true;
452
457
  emittedOperation["itemName"] = pagedResult.itemsPath;
453
458
  emittedOperation["itemType"] = getType(context, pagedResult.itemsProperty.type);
454
459
  emittedOperation["continuationTokenName"] = pagedResult.nextLinkPath;
@@ -655,29 +660,22 @@ function enumName(name) {
655
660
  }
656
661
  return camelToSnakeCase(name).toUpperCase();
657
662
  }
663
+ function emitEnumMember(type) {
664
+ return {
665
+ name: enumName(type.name),
666
+ value: type.value,
667
+ description: type.doc,
668
+ };
669
+ }
658
670
  function emitEnum(context, type) {
659
- var _a;
660
- const enumValues = [];
661
- for (const m of type.members.values()) {
662
- enumValues.push({
663
- name: enumName(m.name),
664
- value: (_a = m.value) !== null && _a !== void 0 ? _a : m.name,
665
- description: getDocStr(context, m),
666
- });
667
- }
671
+ const sdkType = getSdkEnum(context, type);
668
672
  return {
669
- type: "enum",
670
- name: type.name,
671
- description: getDocStr(context, type),
672
- valueType: { type: enumMemberType(type.members.values().next().value) },
673
- values: enumValues,
673
+ type: sdkType.kind,
674
+ name: sdkType.name,
675
+ description: sdkType.doc,
676
+ valueType: emitSimpleType(context, sdkType.valueType),
677
+ values: sdkType.values.map((x) => emitEnumMember(x)),
674
678
  };
675
- function enumMemberType(member) {
676
- if (typeof member.value === "number") {
677
- return intOrFloat(member.value);
678
- }
679
- return "string";
680
- }
681
679
  }
682
680
  function constantType(value, valueType) {
683
681
  return { type: "constant", value: value, valueType: { type: valueType } };
@@ -720,113 +718,43 @@ function emitCredentialUnion(cred_types) {
720
718
  }
721
719
  return result;
722
720
  }
723
- function emitStdScalar(scalar) {
724
- switch (scalar.name) {
725
- case "bytes":
726
- return { type: "byte-array", format: "byte" };
727
- case "int8":
728
- case "int16":
729
- case "int32":
730
- case "int64":
731
- case "safeint":
732
- case "uint8":
733
- case "uint16":
734
- case "uint32":
735
- case "uint64":
736
- case "integer":
737
- return { type: "integer" };
738
- case "float32":
739
- case "float64":
740
- case "float":
741
- return { type: "float" };
742
- case "url":
743
- case "string":
744
- return { type: "string" };
745
- case "boolean":
746
- return { type: "boolean" };
747
- case "plainDate":
748
- return { type: "date" };
749
- case "zonedDateTime":
750
- return { type: "datetime", format: "date-time" };
751
- case "plainTime":
752
- return { type: "time" };
753
- case "duration":
754
- return { type: "duration" };
755
- case "numeric":
756
- return {}; // Waiting on design for more precise type https://github.com/microsoft/cadl/issues/1260
757
- default:
758
- return {};
721
+ function emitSimpleType(context, type) {
722
+ let sdkType;
723
+ if (type.kind === "Scalar" || type.kind === "Intrinsic") {
724
+ sdkType = getSdkSimpleType(context, type);
759
725
  }
760
- }
761
- function applyIntrinsicDecorators(context, type, result) {
762
- const program = context.program;
763
- const newResult = { ...result };
764
- const docStr = getDoc(program, type);
765
- const isString = isStringType(program, getPropertyType(type));
766
- const isNumeric = isNumericType(program, getPropertyType(type));
767
- if (!result.description && docStr) {
768
- newResult.description = docStr;
769
- }
770
- const formatStr = getFormat(program, type);
771
- if (isString && !result.format && formatStr) {
772
- newResult.format = formatStr;
773
- }
774
- const pattern = getPattern(program, type);
775
- if (isString && !result.pattern && pattern) {
776
- newResult.pattern = pattern;
777
- }
778
- const minLength = getMinLength(program, type);
779
- if (isString && !result.minLength && minLength !== undefined) {
780
- newResult.minLength = minLength;
781
- }
782
- const maxLength = getMaxLength(program, type);
783
- if (isString && !result.maxLength && maxLength !== undefined) {
784
- newResult.maxLength = maxLength;
785
- }
786
- const minValue = getMinValue(program, type);
787
- if (isNumeric && !result.minimum && minValue !== undefined) {
788
- newResult.minimum = minValue;
789
- }
790
- const maxValue = getMaxValue(program, type);
791
- if (isNumeric && !result.maximum && maxValue !== undefined) {
792
- newResult.maximum = maxValue;
793
- }
794
- const minItems = getMinItems(program, type);
795
- if (!result.minItems && minItems !== undefined) {
796
- newResult.minItems = minItems;
797
- }
798
- const maxItems = getMaxItems(program, type);
799
- if (!result.maxItems && maxItems !== undefined) {
800
- newResult.maxItems = maxItems;
801
- }
802
- return newResult;
803
- }
804
- function emitScalar(context, scalar) {
805
- let result = {};
806
- if (context.program.checker.isStdType(scalar)) {
807
- result = emitStdScalar(scalar);
726
+ else {
727
+ sdkType = type;
728
+ }
729
+ const extraInformation = {};
730
+ if (sdkType.kind === "string") {
731
+ extraInformation["pattern"] = sdkType.pattern;
732
+ extraInformation["minLength"] = sdkType.minLength;
733
+ extraInformation["maxLength"] = sdkType.maxLength;
808
734
  }
809
- else if (scalar.baseScalar) {
810
- result = emitScalar(context, scalar.baseScalar);
735
+ else if (sdkType.kind === "int32" ||
736
+ sdkType.kind === "int64" ||
737
+ sdkType.kind === "float32" ||
738
+ sdkType.kind === "float64") {
739
+ extraInformation["minValue"] = sdkType.minValue;
740
+ extraInformation["maxValue"] = sdkType.maxValue;
811
741
  }
812
- return applyIntrinsicDecorators(context, scalar, result);
742
+ return {
743
+ type: sdkScalarKindToPythonKind[sdkType.kind] || sdkType.kind,
744
+ doc: sdkType.doc,
745
+ apiVersions: sdkType.apiVersions,
746
+ sdkDefaultValue: sdkType.sdkDefaultValue,
747
+ format: sdkType.format,
748
+ ...extraInformation,
749
+ };
813
750
  }
814
751
  function emitListOrDict(context, type) {
815
- if (type.indexer !== undefined) {
816
- if (isNeverType(type.indexer.key)) {
817
- }
818
- else {
819
- const name = type.indexer.key.name;
820
- const elementType = type.indexer.value;
821
- if (name === "string") {
822
- if (elementType.kind === "Intrinsic") {
823
- }
824
- return { type: "dict", elementType: getType(context, type.indexer.value) };
825
- }
826
- else if (name === "integer") {
827
- return { type: "list", elementType: getType(context, type.indexer.value) };
828
- }
829
- }
752
+ const sdkType = getSdkListOrDict(context, type);
753
+ if (sdkType) {
754
+ return {
755
+ type: sdkType.kind,
756
+ elementType: getType(context, sdkType.elementType.__raw),
757
+ };
830
758
  }
831
759
  return undefined;
832
760
  }
@@ -846,14 +774,11 @@ function capitalize(name) {
846
774
  return name[0].toUpperCase() + name.slice(1);
847
775
  }
848
776
  function emitUnion(context, type) {
849
- const nonNullOptions = [...type.variants.values()].map((x) => x.type).filter((t) => !isNullType(t));
850
- const notLiteral = (t) => ["Boolean", "Number", "String"].indexOf(t.kind) < 0;
851
- if (nonNullOptions.every(notLiteral)) {
852
- if (nonNullOptions.length === 1) {
853
- // Generate as internal type if there is only one internal type in this Union.
854
- return emitType(context, nonNullOptions[0]);
855
- }
856
- // Generate as CombinedType if non of the options is Literal.
777
+ const sdkType = getSdkUnion(context, type);
778
+ if (sdkType === undefined) {
779
+ throw Error("Should not have an empty union");
780
+ }
781
+ if (sdkType.kind === "union") {
857
782
  const unionName = type.name;
858
783
  return {
859
784
  name: unionName,
@@ -861,48 +786,25 @@ function emitUnion(context, type) {
861
786
  description: `Type of ${unionName}`,
862
787
  internal: true,
863
788
  type: "combined",
864
- types: nonNullOptions.map((x) => getType(context, x)),
789
+ types: sdkType.values.map((x) => getType(context, x.__raw)),
865
790
  xmlMetadata: {},
866
791
  };
867
792
  }
868
- else if (nonNullOptions.some(notLiteral)) {
869
- // Can't generate if this union is a mixed up of literals and sub-types
870
- throw Error(`Can't do union for ${JSON.stringify(nonNullOptions)}`);
871
- }
872
- // Geneate Union of Literals as Python Enum
873
- const values = [];
874
- for (const option of nonNullOptions) {
875
- const value = emitType(context, option)["value"];
876
- values.push({
877
- description: "",
878
- name: camelToSnakeCase(value).toUpperCase(),
879
- value: value,
880
- });
793
+ else if (sdkType.kind === "enum") {
794
+ return {
795
+ name: sdkType.name,
796
+ snakeCaseName: camelToSnakeCase(sdkType.name),
797
+ description: sdkType.doc || `Type of ${sdkType.name}`,
798
+ internal: true,
799
+ type: sdkType.kind,
800
+ valueType: emitSimpleType(context, sdkType.valueType),
801
+ values: sdkType.values.map((x) => emitEnumMember(x)),
802
+ xmlMetadata: {},
803
+ };
881
804
  }
882
- let enumName = "MyEnum";
883
- if (type.node &&
884
- type.node.parent &&
885
- [SyntaxKind.ModelStatement, SyntaxKind.ModelProperty].includes(type.node.parent.kind)) {
886
- if (type.node.parent.kind === SyntaxKind.ModelStatement) {
887
- enumName = capitalize(type.node.parent.id.sv);
888
- }
889
- else if (type.node.parent.kind === SyntaxKind.ModelProperty) {
890
- const parent = type.node.parent;
891
- if (parent.id.sv) {
892
- enumName = capitalize(parent.id.sv) + "Type";
893
- }
894
- }
805
+ else {
806
+ return emitType(context, sdkType.__raw);
895
807
  }
896
- return {
897
- name: enumName,
898
- snakeCaseName: camelToSnakeCase(enumName),
899
- description: `Type of ${enumName}`,
900
- internal: true,
901
- type: "enum",
902
- valueType: emitType(context, nonNullOptions[0])["valueType"],
903
- values: values,
904
- xmlMetadata: {},
905
- };
906
808
  }
907
809
  function emitType(context, type) {
908
810
  if (type.kind === "Credential") {
@@ -926,7 +828,7 @@ function emitType(context, type) {
926
828
  case "Model":
927
829
  return emitModel(context, type);
928
830
  case "Scalar":
929
- return emitScalar(context, type);
831
+ return emitSimpleType(context, type);
930
832
  case "Union":
931
833
  return emitUnion(context, type);
932
834
  case "UnionVariant":
@@ -1136,22 +1038,22 @@ function getNamespaces(context) {
1136
1038
  }
1137
1039
  function emitCodeModel(context) {
1138
1040
  var _a;
1139
- const dpgContext = createDpgContext(context);
1140
- const clientNamespaceString = (_a = getClientNamespaceString(dpgContext)) === null || _a === void 0 ? void 0 : _a.toLowerCase();
1041
+ const sdkContext = createSdkContext(context);
1042
+ const clientNamespaceString = (_a = getClientNamespaceString(sdkContext)) === null || _a === void 0 ? void 0 : _a.toLowerCase();
1141
1043
  // Get types
1142
1044
  const codeModel = {
1143
1045
  namespace: clientNamespaceString,
1144
1046
  subnamespaceToClients: {},
1145
1047
  };
1146
- for (const model of getAllModels(dpgContext)) {
1147
- getType(dpgContext, model);
1048
+ for (const model of getAllModels(sdkContext)) {
1049
+ getType(sdkContext, model);
1148
1050
  }
1149
- for (const namespace of getNamespaces(dpgContext)) {
1051
+ for (const namespace of getNamespaces(sdkContext)) {
1150
1052
  if (namespace === clientNamespaceString) {
1151
- codeModel["clients"] = emitClients(dpgContext, namespace);
1053
+ codeModel["clients"] = emitClients(sdkContext, namespace);
1152
1054
  }
1153
1055
  else {
1154
- codeModel["subnamespaceToClients"][namespace] = emitClients(dpgContext, namespace);
1056
+ codeModel["subnamespaceToClients"][namespace] = emitClients(sdkContext, namespace);
1155
1057
  }
1156
1058
  }
1157
1059
  codeModel["types"] = [...typesMap.values(), ...Object.values(KnownTypes), ...simpleTypesMap.values()];
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAGH,MAAM,EACN,eAAe,EACf,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,WAAW,EAIX,qBAAqB,EACrB,gBAAgB,EAEhB,KAAK,EAGL,YAAY,EAKZ,oBAAoB,GAEvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EAMV,YAAY,EAEZ,QAAQ,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAEH,WAAW,EACX,mBAAmB,EACnB,8BAA8B,EAC9B,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAEhB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EAGX,UAAU,GACb,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAqB7C,MAAM,cAAc,GAAG;IACnB,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,SAAS;CAC/B,CAAC;AAEF,MAAM,yBAAyB,GAA2B;IACtD,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;CACnB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAA0C;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,eAAe,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAElE,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3G,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;IAChF,MAAM,WAAW,GAAG;QAChB,GAAG,IAAI,iBAAiB;QACxB,GAAG,IAAI,cAAc;QACrB,mBAAmB,SAAS,EAAE;QAC9B,eAAe,QAAQ,EAAE;KAC5B,CAAC;IACF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;QACxD,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;KACzC;IACD,IAAI,eAAe,CAAC,KAAK,EAAE;QACvB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC/B;IACD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;QACxD,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;KAC/C;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE,CACvC,GAAG;SACE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAEnE,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoC,CAAC;AAC7D,MAAM,cAAc,GAAG,IAAI,GAAG,EAA+B,CAAC;AAC9D,MAAM,sBAAsB,GAA0B,EAAE,CAAC;AACzD,IAAI,eAAe,GAAoC,SAAS,CAAC;AAEjE,SAAS,YAAY,CAAC,OAAmB,EAAE,IAA6B;IACpE,wEAAwE;IACxE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,EAAE;QACnE,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QACjF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;gBAC7B,OAAO,IAAI,CAAC;aACf;SACJ;KACJ;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,OAAmB,EAAE,MAAY;;IAChD,OAAO,MAAA,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,mCAAI,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAmB,EAAE,IAAW,EAAE,KAA0B;IACrF,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9D,IAAI,aAAa,EAAE;QACf,IAAI,qBAAqB,CAAC;QAC1B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE;YACzC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC/C,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,UAAU,EAAE;gBACzC,IAAI,QAAQ,CAAC,WAAW,KAAK,aAAa,CAAC,YAAY,EAAE;oBACrD,SAAS,CAAC,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnD,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC;oBAChC,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;oBAC7D,qBAAqB,GAAG,QAAQ,CAAC;iBACpC;aACJ;SACJ;QACD,wEAAwE;QACxE,IAAI,qBAAqB,EAAE;YACvB,MAAM,iBAAiB,GAAG,EAAE,GAAG,qBAAqB,CAAC,IAAI,EAAE,CAAC;YAC5D,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;YAC/B,MAAM,YAAY,GAAG;gBACjB,GAAG,qBAAqB;gBACxB,aAAa,EAAE,IAAI;gBACnB,IAAI,EAAE,iBAAiB;aAC1B,CAAC;YACF,YAAY,CAAC,WAAW,GAAG,EAAE,CAAC;YAC9B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACvC;KACJ;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAmB,EAAE,IAAW;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,SAAS,gBAAgB,CAAC,QAAuB;QAC7C,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO,CAAC,CAAC,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,cAAc,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACzE,IAAI,SAAS,CAAC,IAAI,EAAE;QAChB,OAAO,SAAS,CAAC;KACpB;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,OAAmB,EAAE,MAAqB;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,MAAM,EAAE;QACR,IAAI,MAAM,KAAK,SAAS,EAAE;YACtB,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC;SAC1C;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE;YAC7B,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;SAClC;KACJ;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,IAAiB;IACnC,yDAAyD;IACzD,OAAO,CACH,IAAI,CAAC,IAAI,KAAK,OAAO;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;QAC1B,CAAC,IAAI,CAAC,SAAS;QACf,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;QAC/B,CAAC,IAAI,CAAC,OAAO,CAChB,CAAC;AACN,CAAC;AAED,SAAS,OAAO,CAAC,OAAmB,EAAE,IAAiB;IACnD,mFAAmF;IACnF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,WAAW,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACxE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5F,IAAI,WAAW,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAI,MAAM,EAAE;YACR,OAAO,MAAM,CAAC;SACjB;KACJ;IACD,IAAI,QAAQ,CAAC;IACb,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;QACpB,yDAAyD;QACzD,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;KAC9B;SAAM;QACH,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACtC;IACD,IAAI,WAAW,EAAE;QACb,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YACvB,oEAAoE;YACpE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;gBAC7C,IAAI,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;oBAC9F,SAAS;iBACZ;gBACD,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;aAC7D;YACD,2EAA2E;YAC3E,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;SAChD;KACJ;SAAM;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACP,QAAQ,GAAG,KAAK,CAAC;SACpB;aAAM;YACH,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;SACrC;KACJ;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,wBAAwB;AACxB,SAAS,iBAAiB,CAAC,OAAmB,EAAE,CAAO;IACnD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAc,EAAE,CAAQ,CAAC,CAAC;IACtE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/C,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;KAC5B;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AASD,SAAS,aAAa,CAAC,OAAmB,EAAE,SAA+B;IACvE,IAAI,QAAiB,CAAC;IACtB,IAAI,IAAY,CAAC;IACjB,IAAI,WAAW,GAAW,EAAE,CAAC;IAC7B,IAAI,OAA2B,CAAC;IAEhC,IAAI,SAAS,CAAC,IAAI,KAAK,eAAe,EAAE;QACpC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAC9B,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACtB,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC5C,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KACnD;SAAM;QACH,QAAQ,GAAG,KAAK,CAAC;QACjB,IAAI,GAAG,MAAM,CAAC;KACjB;IAED,OAAO;QACH,QAAQ;QACR,WAAW;QACX,OAAO;QACP,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC;QAClC,UAAU,EAAE,KAAK;KACpB,CAAC;AACN,CAAC;AAUD,SAAS,WAAW,CAAC,OAAmB,EAAE,KAAoB;;IAC1D,IAAI,SAAS,GAAG,MAAA,KAAK,CAAC,UAAU,CAAC,IAAI,0CAAE,IAAI,CAAC;IAC5C,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;QAC5D,MAAM,YAAY,GAAG,MAAA,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,0CAAE,YAAY,CAAC;QAC1F,IAAI,YAAY,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrD,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC;gBAC7C,IAAI,CAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,0CAAE,IAAI,MAAK,OAAO,EAAE;oBACtC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;oBAC9E,mGAAmG;oBACnG,IACI,kBAAkB,KAAK,YAAY;wBACnC,SAAS,CAAC,iBAAiB;wBAC3B,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;4BACpC,OAAO,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC;wBAC1F,CAAC,CAAC,EACJ;wBACE,SAAS,GAAG,YAAY,CAAC;qBAC5B;iBACJ;aACJ;SACJ;QACD,IAAI,YAAY,IAAI,SAAS,CAAC,IAAI,KAAK,EAAE,EAAE;YACvC,SAAS,GAAG,YAAY,CAAC;SAC5B;KACJ;IACD,OAAO,SAAU,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAmB,EAAE,aAA4B;;IACxE,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAK,CAAC;IAC1B,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,MAAA,IAAI,CAAC,SAAS,mCAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACrC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,YAAY,GAAG,CAAC,kBAAkB,CAAC,CAAC;KACvC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAEnE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE;QAC3C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;KACpE;IAED,OAAO;QACH,YAAY;QACZ,IAAI;QACJ,WAAW,EAAE,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,mCAAI,MAAM;QAC3C,QAAQ,EAAE,MAAM;QAChB,GAAG,IAAI;QACP,kBAAkB,EACd,CAAA,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,mCAAI,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;KAClH,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAClB,OAAmB,EACnB,SAAuD,EACvD,cAAsB;IAEtB,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,kBAAkB,GAAG,SAAS,CAAC;IACnC,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE;QAChF,2EAA2E;QAC3E,uCAAuC;QACvC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;KAC5B;IACD,MAAM,QAAQ,GAAwB;QAClC,WAAW,EAAE,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;QAC9E,QAAQ,EAAE,SAAS,CAAC,IAAI;QACxB,IAAI,EAAE,IAAI;QACV,cAAc,EAAE,cAAc;QAC9B,eAAe,EAAE,SAAS,CAAC,IAAI,KAAK,cAAc;KACrD,CAAC;IACF,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE;QACrF,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK,EAAE;YAC5B,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;SACnC;aAAM;YACH,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;SAC9B;KACJ;IAED,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;QACnC,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;KAC5C;IAED,IAAI,YAAY,CAAC,OAAO,EAAE,SAAmC,CAAC,EAAE;QAC5D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;QACtF,QAAQ,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QACjG,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC;QACnC,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAC;QAC9B,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,IAAI,iBAAiB,EAAE;YACnB,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,CAAC;SAChD;KACJ;IACD,OAAO,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,wBAAwB,CAC7B,aAAkC,EAClC,UAAmB,EACnB,WAAoB;IAEpB,OAAO;QACH,gBAAgB,EAAE,KAAK;QACvB,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;QACpD,UAAU,EAAE,cAAc;QAC1B,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,kDAAkD,aAAa,CAAC,YAAY,GAAG;QAC5F,cAAc,EAAE,QAAQ;QACxB,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,cAAc;QAC3B,IAAI,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB,CAC3B,aAAkC,EAClC,QAA6B;IAE7B,OAAO;QACH,gBAAgB,EAAE,KAAK;QACvB,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,cAAc,EAAE,QAAQ;QACxB,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC;QAC3C,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;QAC9B,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QACtB,sBAAsB,EAAE,IAAI;KAC/B,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAChC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,KAAK,EAAE;QACP,OAAO,KAAK,CAAC;KAChB;IACD,MAAM,IAAI,GAAG;QACT,WAAW,EAAE,EAAE;QACf,kBAAkB,EAAE,IAAI;QACxB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,UAAU,CAAC,MAAM;QAC5B,WAAW,EAAE,EAAE;KAClB,CAAC;IACF,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAmB,EAAE,WAAoB;IAClE,OAAO;QACH,gBAAgB,EAAE,KAAK;QACvB,kBAAkB,EAAE,kBAAkB;QACtC,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,QAAQ;QACxB,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,QAAQ;QACrB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,eAAe,CAAC,kBAAkB,CAAC;KAC5C,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAmB,EAAE,OAAuC;IACrF,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE;QACV,OAAO,MAAM,CAAC;KACjB;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAChD,MAAM,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC;YACnC,WAAW,EAAE,GAAG;SACnB,CAAC,CAAC;KACN;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAO;IAC7B,OAAO,CACH,CAAC,CAAC,IAAI,KAAK,OAAO;QAClB,CAAC,CAAC,SAAS,KAAK,SAAS;QACzB,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CACvF,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CACjB,OAAmB,EACnB,QAA+B,EAC/B,aAA2C;;IAE3C,IAAI,IAAI,GAAG,SAAS,CAAC;IACrB,IAAI,MAAA,aAAa,CAAC,IAAI,0CAAE,IAAI,EAAE;QAC1B,IAAI,SAAS,GAAG,SAAS,CAAC;QAC1B,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1C,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxE;QACD,IAAI,SAAS,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE;YACpF,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC9E;aAAM,IAAI,SAAS,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;YAClD,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;SACtC;aAAM,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpD;KACJ;IACD,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE;QAC7B,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC/B;SAAM;QACH,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;KACnD;IACD,OAAO;QACH,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;QAC5D,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;QAClD,aAAa,EAAE,OAAO;QACtB,IAAI,EAAE,IAAI;KACb,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,OAAmB,EAAE,SAAoB,EAAE,kBAA0B;IACxF,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1D,IAAI,GAAG,IAAI,MAAM,EAAE;QACf,OAAO,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;KACzE;SAAM,IAAI,MAAM,EAAE;QACf,OAAO,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;KACtE;SAAM,IAAI,GAAG,EAAE;QACZ,OAAO,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;KACnE;IACD,OAAO,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,iBAAiB,CAAC,gBAAqC,EAAE,gBAAqC;IACnG,gBAAgB,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;IAC1C,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,gBAAgB,CAAC;IACxD,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC;AACpD,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAmB,EAAE,SAAoB,EAAE,gBAAqC;IAC1G,gBAAgB,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC;IAC7C,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC/D,IAAI,WAAW,KAAK,SAAS,EAAE;QAC3B,MAAM,KAAK,CAAC,8EAA8E,CAAC,CAAC;KAC/F;IACD,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAClE,gBAAgB,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC;IACrD,gBAAgB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,aAAc,CAAC,IAAI,CAAC,CAAC;IACjF,gBAAgB,CAAC,uBAAuB,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC;IACrE,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC;AACpD,CAAC;AAED,SAAS,sBAAsB,CAC3B,OAAmB,EACnB,SAAoB,EACpB,kBAA0B;IAE1B,MAAM,gBAAgB,GAAG,kBAAkB,CACvC,OAAO,EACP,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAE,CAAC,SAAS,EACrD,kBAAkB,CACrB,CAAC,CAAC,CAAC,CAAC;IACL,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC;IAClE,gBAAgB,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;IACjD,gBAAgB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;IACxC,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC;IAChD,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED,SAAS,sBAAsB,CAC3B,OAAmB,EACnB,SAAoB,EACpB,kBAA0B;IAE1B,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,KAAK,MAAM,gBAAgB,IAAI,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAE;QACvF,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACxF,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACtD,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC3D,gBAAgB,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACjC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CACrB,OAAmB,EACnB,SAAoB,EACpB,kBAA0B;IAE1B,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,gBAAgB,IAAI,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAE;QACvF,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACxF,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACjC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CACxB,OAAmB,EACnB,SAAoB,EACpB,kBAA0B;IAE1B,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,gBAAgB,IAAI,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAE;QACvF,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACjC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,SAAwB;IACxC,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;IACvC,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,kBAAkB,CACvB,OAAmB,EACnB,SAAoB,EACpB,kBAA0B;IAE1B,kCAAkC;IAClC,MAAM,UAAU,GAA0B,EAAE,CAAC;IAC7C,IAAI,sBAAsB,EAAE;QACxB,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE;YACxC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;KACJ;IACD,MAAM,aAAa,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IACtF,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE;QACrD,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,eAAe,KAAK,SAAS,EAAE;YAC/D,eAAe,GAAG,YAAY,CAAC;SAClC;QACD,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACjC;IAED,iCAAiC;IACjC,MAAM,SAAS,GAA0B,EAAE,CAAC;IAC5C,MAAM,UAAU,GAA0B,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAY,KAAK,CAAC;IAClC,MAAM,WAAW,GAAY,KAAK,CAAC;IACnC,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,SAAS,EAAE;QAC5C,KAAK,MAAM,aAAa,IAAI,QAAQ,CAAC,SAAS,EAAE;YAC5C,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YACvE,IACI,eAAe,CAAC,MAAM,CAAC;gBACvB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EACjF;gBACE,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;aACjE;YACD,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAC9C,iEAAiE;gBACjE,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE;oBAC7B,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBACpC;aACJ;iBAAM;gBACH,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACnC;SACJ;KACJ;IAED,IAAI,aAA8C,CAAC;IACnD,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE;QAC7C,aAAa,GAAG,SAAS,CAAC;KAC7B;SAAM;QACH,aAAa,GAAG,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC1D,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACvF,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;SACrF;QACD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YAC3E,aAAa,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC;YAC9C,IAAI,CAAC,UAAU,EAAE;gBACb,aAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC;aAC/C;YACD,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE;gBAClD,aAAa,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC3F,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;aACpE;SACJ;KACJ;IACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAClE,OAAO;QACH;YACI,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC;YAC1C,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;YAC/C,GAAG,EAAE,aAAa,CAAC,IAAI;YACvB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE;YACxC,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,aAAa;YAC5B,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC;YAC9C,aAAa,EAAE,OAAO;YACtB,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACpD,WAAW,EAAE,IAAI;YACjB,mBAAmB,EAAE,IAAI;YACzB,QAAQ,EAAE,UAAU,CAAC,aAAa,CAAC;YACnC,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC;SAC3C;KACJ,CAAC;AACN,CAAC;AAED,SAAS,UAAU,CAAC,OAAmB,EAAE,IAAmB;IACxD,yFAAyF;IACzF,iCAAiC;IACjC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,UAAU,EAAE;QACZ,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACtC;SAAM;QACH,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAED,SAAS,YAAY,CAAC,OAAmB,EAAE,QAAuB;;IAC9D,IAAI,kBAAkB,GAAG,SAAS,CAAC;IACnC,MAAM,mBAAmB,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAE,IAAI,CAAC;IACnD,IACI,QAAQ,CAAC,OAAO;QAChB,CAAC,mBAAmB,KAAK,QAAQ,IAAI,mBAAmB,KAAK,QAAQ,IAAI,mBAAmB,KAAK,SAAS,CAAC,EAC7G;QACE,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;KAC/C;IACD,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnE,OAAO;QACH,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC;QACxC,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC;QACtC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC;QACzC,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC7C,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC3E,kBAAkB,EAAE,kBAAkB;KACzC,CAAC;AACN,CAAC;AAED,SAAS,OAAO,CAAC,OAAmB,EAAE,IAAW;IAC7C,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,YAAY,EAAE;QACd,OAAO,YAAY,CAAC;KACvB;SAAM;QACH,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7D,OAAO,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACxG;aAAM;YACH,OAAO,SAAS,CAAC;SACpB;KACJ;AACL,CAAC;AAED,SAAS,SAAS,CAAC,OAAmB,EAAE,IAAW;IAC/C,mCAAmC;IACnC,MAAM,UAAU,GAA0B,EAAE,CAAC;IAC7C,IAAI,SAAS,GAAG,SAAS,CAAC;IAC1B,IAAI,IAAI,CAAC,SAAS,EAAE;QAChB,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KAChD;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;IACvF,OAAO;QACH,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;QACrC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QACrC,qBAAqB,EAAE,EAAE;QACzB,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;QACzC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QAClE,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;QACvC,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC;KACtC,CAAC;AACN,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AACtE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC1B,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QAC7B,OAAO,IAAI,CAAC;KACf;IACD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,IAAsB;IAC1C,OAAO;QACH,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,GAAG;KACxB,CAAC;AACN,CAAC;AAED,SAAS,QAAQ,CAAC,OAAmB,EAAE,IAAU;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,OAAO;QACH,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,GAAG;QACxB,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,SAA0B,CAAC;QACtE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;KACvD,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,KAAU,EAAE,SAAiB;IAC/C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,IAAc;IAClC,IAAI,eAAe,GAAwB,EAAE,CAAC;IAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QACxB,eAAe,GAAG;YACd,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE;gBACJ,IAAI,EAAE,6BAA6B;gBACnC,gBAAgB,EAAE,EAAE;aACvB;SACJ,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC7B,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC7D;YACD,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SAClD;KACJ;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC/B,eAAe,GAAG;YACd,IAAI,EAAE,KAAK;YACX,MAAM,EAAE;gBACJ,IAAI,EAAE,0BAA0B;gBAChC,GAAG,EAAE,IAAI,CAAC,IAAI;aACjB;SACJ,CAAC;KACL;IACD,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA+B;IACxD,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,4EAA4E;IAC5E,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,KAAK,EAAE;QACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;KACvD;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,OAAmB,EAAE,IAA4C;IACrF,IAAI,OAAsB,CAAC;IAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;QACrD,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KAC7C;SAAM;QACH,OAAO,GAAG,IAAI,CAAC;KAClB;IACD,MAAM,gBAAgB,GAAwB,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC3B,gBAAgB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC9C,gBAAgB,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;QAClD,gBAAgB,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;KACrD;SAAM,IACH,OAAO,CAAC,IAAI,KAAK,OAAO;QACxB,OAAO,CAAC,IAAI,KAAK,OAAO;QACxB,OAAO,CAAC,IAAI,KAAK,SAAS;QAC1B,OAAO,CAAC,IAAI,KAAK,SAAS,EAC5B;QACE,gBAAgB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QAChD,gBAAgB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;KACnD;IACD,OAAO;QACH,IAAI,EAAE,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI;QAC7D,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,gBAAgB;KACtB,CAAC;AACN,CAAC;AAED,SAAS,cAAc,CAAC,OAAmB,EAAE,IAAW;IACpD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,OAAO,EAAE;QACT,OAAO;YACH,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;SAC3D,CAAC;KACL;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,WAAW,CAAC,OAAmB,EAAE,IAAU;IAChD,QAAQ,IAAI,CAAC,IAAI,EAAE;QACf,KAAK,QAAQ;YACT,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,KAAK,QAAQ;YACT,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9C,KAAK,SAAS;YACV,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,KAAK,OAAO;YACR,OAAO,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KAC5C;AACL,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,OAAmB,EAAE,IAAW;IAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI,OAAO,KAAK,SAAS,EAAE;QACvB,MAAM,KAAK,CAAC,gCAAgC,CAAC,CAAC;KACjD;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,OAAO;YACH,IAAI,EAAE,SAAS;YACf,aAAa,EAAE,gBAAgB,CAAC,SAAS,IAAI,EAAE,CAAC;YAChD,WAAW,EAAE,WAAW,SAAS,EAAE;YACnC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3D,WAAW,EAAE,EAAE;SAClB,CAAC;KACL;SAAM,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;QAChC,OAAO;YACH,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;YAC7C,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI,WAAW,OAAO,CAAC,IAAI,EAAE;YACrD,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,SAA0B,CAAC;YACtE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACpD,WAAW,EAAE,EAAE;SAClB,CAAC;KACL;SAAM;QACH,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;KAC3C;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,OAAmB,EAAE,IAAiB;IACpD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;QAC5B,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACtC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE;QACrC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;KACpC;IACD,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,WAAW,KAAK,SAAS,EAAE;QAC3B,0FAA0F;QAC1F,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,GAAG,EAAE;YACL,WAAW,CAAC,WAAW,GAAG,GAAG,CAAC;SACjC;QACD,OAAO,WAAW,CAAC;KACtB;IAED,QAAQ,IAAI,CAAC,IAAI,EAAE;QACf,KAAK,WAAW;YACZ,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC3B,KAAK,OAAO;YACR,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpC,KAAK,QAAQ;YACT,OAAO,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACzC,KAAK,OAAO;YACR,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpC,KAAK,cAAc;YACf,OAAO,EAAE,CAAC;QACd,KAAK,MAAM;YACP,OAAO,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnC;YACI,MAAM,KAAK,CAAC,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;KACjD;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAmB,EAAE,MAAiB;IAC/D,MAAM,eAAe,GAA0B,EAAE,CAAC;IAClD,KAAK,MAAM,cAAc,IAAI,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;QAC/D,IAAI,UAAU,GAA0B,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QACtC,KAAK,MAAM,SAAS,IAAI,8BAA8B,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE;YAC7E,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;SAC3E;QACD,eAAe,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,UAAU;SACzB,CAAC,CAAC;KACN;IACD,IAAI,gBAAgB,GAA0B,EAAE,CAAC;IACjD,KAAK,MAAM,SAAS,IAAI,8BAA8B,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;QACrE,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;KACrF;IACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,eAAe,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,gBAAgB;SAC/B,CAAC,CAAC;KACN;IACD,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,OAAmB,EAAE,SAAoB;IAC9D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,OAAO,KAAK,SAAS,EAAE;QACvB,OAAO,SAAS,CAAC;KACpB;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAmB,EAAE,SAAoB;IAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACnD,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,OAAO;YACH;gBACI,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,cAAc;gBAC3B,UAAU,EAAE,UAAU;gBACtB,kBAAkB,EAAE,IAAI;gBACxB,WAAW,EAAE,OAAO;gBACpB,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE,UAAU,CAAC,MAAM;gBACvB,cAAc,EAAE,QAAQ;gBACxB,UAAU,EAAE,KAAK;aACpB;SACJ,CAAC;KACL;IACD,IAAI,MAAM,CAAC,UAAU,EAAE;QACnB,MAAM,MAAM,GAA0B,EAAE,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC5C,MAAM,eAAe,GAAwB;gBACzC,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK;aACf,CAAC;YACF,MAAM,gBAAgB,GAAG,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;YAC3E,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC9C,IAAI,YAAY,CAAC,OAAO,EAAE,eAAsB,CAAC,IAAI,eAAe,KAAK,SAAS,EAAE;gBAChF,eAAe,GAAG,gBAAgB,CAAC;gBACnC,SAAS;aACZ;YACD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACjC;QACD,OAAO,MAAM,CAAC;KACjB;SAAM;QACH,OAAO;YACH;gBACI,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,cAAc;gBAC3B,UAAU,EAAE,UAAU;gBACtB,kBAAkB,EAAE,MAAM,CAAC,GAAG;gBAC9B,WAAW,EAAE,OAAO;gBACpB,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE,UAAU,CAAC,MAAM;gBACvB,cAAc,EAAE,QAAQ;gBACxB,UAAU,EAAE,KAAK;aACpB;SACJ,CAAC;KACL;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAmB,EAAE,SAAoB;IAClE,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3D,IAAI,IAAI,EAAE;QACN,MAAM,gBAAgB,GAAqB,EAAE,CAAC;QAC9C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;gBACjC,MAAM,IAAI,GAAmB;oBACzB,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,MAAM;iBACjB,CAAC;gBACF,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/B;SACJ;QACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,IAAiB,CAAC;YACtB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;aAC9B;iBAAM;gBACH,IAAI,GAAG;oBACH,IAAI,EAAE,qBAAqB;oBAC3B,KAAK,EAAE,gBAAgB;iBAC1B,CAAC;aACL;YACD,OAAO;gBACH,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;gBAC5B,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,uDAAuD;gBACpE,UAAU,EAAE,YAAY;gBACxB,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,YAAY;gBACzB,cAAc,EAAE,QAAQ;gBACxB,eAAe,EAAE,IAAI;gBACrB,UAAU,EAAE,KAAK;aACpB,CAAC;SACL;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAmB,EAAE,SAAoB;IACnE,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChE,IAAI,eAAe,EAAE;QACjB,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC1C;IACD,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAmB;IAC/C,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,IAAI,eAAe,EAAE;QACjB,OAAO,eAAe,CAAC;KAC1B;SAAM,IAAI,OAAO,KAAK,SAAS,EAAE;QAC9B,OAAO;YACH,UAAU,EAAE,aAAa;YACzB,kBAAkB,EAAE,OAAO,CAAC,KAAK;YACjC,WAAW,EAAE,aAAa;YAC1B,cAAc,EAAE,QAAQ;YACxB,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,aAAa;YAC1B,eAAe,EAAE,KAAK;YACtB,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC;YACpC,YAAY,EAAE,IAAI;SACrB,CAAC;KACL;AACL,CAAC;AAED,SAAS,WAAW,CAAC,OAAmB,EAAE,SAAiB;IACvD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC1B,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;YAClD,SAAS;SACZ;QACD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG;YAClB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnC,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;YAC5C,UAAU,EAAE,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;YACzD,eAAe,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;YACrD,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC7B,WAAW,EAAE,EAAE;SAClB,CAAC;QACF,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,sBAAsB,EAAE;YACxB,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SACzD;QACD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC9B;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAmB;IAC5C,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED,SAAS,YAAY,CAAC,OAAmB,EAAE,UAAkB;IACzD,gGAAgG;IAChG,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7E,IAAI,CAAC,SAAS,EAAE;QACZ,OAAO,wBAAwB,CAAC,OAAO,CAAE,CAAC,WAAW,EAAE,CAAC;KAC3D;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAAC,OAAmB;IACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;QACvC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;KACtD;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,OAA0C;;IAC7D,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,qBAAqB,GAAG,MAAA,wBAAwB,CAAC,UAAU,CAAC,0CAAE,WAAW,EAAE,CAAC;IAClF,YAAY;IACZ,MAAM,SAAS,GAAwB;QACnC,SAAS,EAAE,qBAAqB;QAChC,qBAAqB,EAAE,EAAE;KAC5B,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;QAC1C,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KAC9B;IACD,KAAK,MAAM,SAAS,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE;QAC/C,IAAI,SAAS,KAAK,qBAAqB,EAAE;YACrC,SAAS,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;SAC7D;aAAM;YACH,SAAS,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;SACtF;KACJ;IACD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IACtG,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,GAAG;IACf,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;CAC7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-tools/typespec-python",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "Cadl emitter for Python SDKs",
6
6
  "homepage": "https://github.com/Azure/autorest.python",
@@ -34,34 +34,34 @@
34
34
  "get-autorest-python-path.cjs"
35
35
  ],
36
36
  "peerDependencies": {
37
- "@typespec/versioning": "~0.42.0",
38
- "@typespec/rest": "~0.42.0",
39
- "@typespec/http": "~0.42.0",
40
- "@azure-tools/typespec-azure-core": "~0.28.1"
37
+ "@typespec/versioning": "~0.43.0",
38
+ "@typespec/rest": "~0.43.0",
39
+ "@typespec/http": "~0.43.1",
40
+ "@azure-tools/typespec-azure-core": "~0.29.0"
41
41
  },
42
42
  "dependencies": {
43
43
  "js-yaml": "~4.1.0",
44
- "@typespec/compiler": "~0.42.0",
45
- "@azure-tools/typespec-client-generator-core": "~0.28.0",
46
- "@autorest/python": "^6.4.9"
44
+ "@typespec/compiler": "~0.43.0",
45
+ "@azure-tools/typespec-client-generator-core": "~0.30.0-dev.4",
46
+ "@autorest/python": "^6.4.11"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@types/mocha": "~9.1.0",
50
50
  "@types/node": "^18.7.16",
51
51
  "@types/js-yaml": "~4.0.1",
52
- "@typespec/rest": "~0.42.0",
53
- "@typespec/http": "~0.42.0",
54
- "@typespec/versioning": "~0.42.0",
52
+ "@typespec/rest": "~0.43.0",
53
+ "@typespec/http": "~0.43.1",
54
+ "@typespec/versioning": "~0.43.0",
55
55
  "@typespec/eslint-config-typespec": "~0.6.0",
56
56
  "eslint": "^8.23.1",
57
57
  "mocha": "~9.2.0",
58
58
  "c8": "~7.11.0",
59
59
  "rimraf": "~3.0.2",
60
60
  "typescript": "^4.8.3",
61
- "@azure-tools/typespec-azure-core": "~0.28.1",
62
- "@azure-tools/cadl-ranch-specs": "~0.10.0",
63
- "@azure-tools/cadl-ranch-expect": "~0.2.1",
64
- "@typespec/openapi": "~0.42.0",
61
+ "@azure-tools/typespec-azure-core": "~0.29.0",
62
+ "@azure-tools/cadl-ranch-specs": "~0.11.2",
63
+ "@azure-tools/cadl-ranch-expect": "~0.2.2",
64
+ "@typespec/openapi": "~0.43.0",
65
65
  "prettier": "^2.7.1"
66
66
  },
67
67
  "scripts": {