UNPKG

141 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.cjs.js","sources":["../../../dist/core/src/utils/compare.js","../../../dist/core/src/utils/graphql.js","../../../dist/core/src/diff/changes/change.js","../../../dist/core/src/diff/changes/schema.js","../../../dist/core/src/diff/changes/type.js","../../../dist/core/src/diff/changes/directive.js","../../../dist/core/src/diff/changes/enum.js","../../../dist/core/src/diff/enum.js","../../../dist/core/src/diff/changes/union.js","../../../dist/core/src/diff/union.js","../../../dist/core/src/diff/changes/input.js","../../../dist/core/src/diff/input.js","../../../dist/core/src/diff/changes/object.js","../../../dist/core/src/diff/changes/field.js","../../../dist/core/src/diff/changes/argument.js","../../../dist/core/src/diff/argument.js","../../../dist/core/src/diff/field.js","../../../dist/core/src/diff/object.js","../../../dist/core/src/diff/interface.js","../../../dist/core/src/diff/directive.js","../../../dist/core/src/diff/schema.js","../../../dist/core/src/diff/rules/dangerous-breaking.js","../../../dist/core/src/utils/path.js","../../../dist/core/src/diff/rules/suppress-removal-of-deprecated-field.js","../../../dist/core/src/diff/rules/ignore-description-changes.js","../../../dist/core/src/diff/index.js","../../../dist/core/src/ast/document.js","../../../dist/core/src/validate/query-depth.js","../../../dist/core/src/utils/apollo.js","../../../dist/core/src/validate/index.js","../../../dist/core/src/utils/string.js","../../../dist/core/src/similar/index.js","../../../dist/core/src/coverage/index.js"],"sourcesContent":["export function keyMap(list, keyFn) {\n return list.reduce((map, item) => {\n map[keyFn(item)] = item;\n return map;\n }, Object.create(null));\n}\nexport function isEqual(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length)\n return false;\n for (var index = 0; index < a.length; index++) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n return true;\n }\n return a === b || (!a && !b);\n}\nexport function isNotEqual(a, b) {\n return !isEqual(a, b);\n}\nexport function isVoid(a) {\n return typeof a === 'undefined' || a === null;\n}\nexport function diffArrays(a, b) {\n return a.filter((c) => !b.some((d) => d === c));\n}\nexport function unionArrays(a, b) {\n return a.filter((c) => b.some((d) => d === c));\n}\nexport function compareLists(oldList, newList, callbacks) {\n const oldMap = keyMap(oldList, ({ name }) => name);\n const newMap = keyMap(newList, ({ name }) => name);\n const added = [];\n const removed = [];\n const mutual = [];\n for (const oldItem of oldList) {\n const newItem = newMap[oldItem.name];\n if (newItem === undefined) {\n removed.push(oldItem);\n }\n else {\n mutual.push({\n newVersion: newItem,\n oldVersion: oldItem,\n });\n }\n }\n for (const newItem of newList) {\n if (oldMap[newItem.name] === undefined) {\n added.push(newItem);\n }\n }\n if (callbacks) {\n if (callbacks.onAdded) {\n added.forEach(callbacks.onAdded);\n }\n if (callbacks.onRemoved) {\n removed.forEach(callbacks.onRemoved);\n }\n if (callbacks.onMutual) {\n mutual.forEach(callbacks.onMutual);\n }\n }\n return {\n added,\n removed,\n mutual,\n };\n}\n//# sourceMappingURL=compare.js.map","import { isWrappingType, isListType, isNonNullType, Kind, GraphQLError, TypeInfo, visit, visitWithTypeInfo, getNamedType, } from 'graphql';\nexport function safeChangeForField(oldType, newType) {\n if (!isWrappingType(oldType) && !isWrappingType(newType)) {\n return oldType.toString() === newType.toString();\n }\n if (isNonNullType(newType)) {\n const ofType = isNonNullType(oldType) ? oldType.ofType : oldType;\n return safeChangeForField(ofType, newType.ofType);\n }\n if (isListType(oldType)) {\n return ((isListType(newType) &&\n safeChangeForField(oldType.ofType, newType.ofType)) ||\n (isNonNullType(newType) && safeChangeForField(oldType, newType.ofType)));\n }\n return false;\n}\nexport function safeChangeForInputValue(oldType, newType) {\n if (!isWrappingType(oldType) && !isWrappingType(newType)) {\n return oldType.toString() === newType.toString();\n }\n if (isListType(oldType) && isListType(newType)) {\n return safeChangeForInputValue(oldType.ofType, newType.ofType);\n }\n if (isNonNullType(oldType)) {\n const ofType = isNonNullType(newType) ? newType : newType;\n return safeChangeForInputValue(oldType.ofType, ofType);\n }\n return false;\n}\nexport function getKind(type) {\n const node = type.astNode;\n return (node && node.kind) || '';\n}\nexport function getTypePrefix(type) {\n const kind = getKind(type);\n const kindsMap = {\n [Kind.SCALAR_TYPE_DEFINITION]: 'scalar',\n [Kind.OBJECT_TYPE_DEFINITION]: 'type',\n [Kind.INTERFACE_TYPE_DEFINITION]: 'interface',\n [Kind.UNION_TYPE_DEFINITION]: 'union',\n [Kind.ENUM_TYPE_DEFINITION]: 'enum',\n [Kind.INPUT_OBJECT_TYPE_DEFINITION]: 'input',\n };\n return kindsMap[kind];\n}\nexport function isPrimitive(type) {\n return (['String', 'Int', 'Float', 'Boolean', 'ID'].indexOf(typeof type === 'string' ? type : type.name) !== -1);\n}\nexport function isForIntrospection(type) {\n return ([\n '__Schema',\n '__Type',\n '__TypeKind',\n '__Field',\n '__InputValue',\n '__EnumValue',\n '__Directive',\n '__DirectiveLocation',\n ].indexOf(typeof type === 'string' ? type : type.name) !== -1);\n}\nexport function findDeprecatedUsages(schema, ast) {\n const errors = [];\n const typeInfo = new TypeInfo(schema);\n visit(ast, visitWithTypeInfo(typeInfo, {\n Argument(node) {\n const argument = typeInfo.getArgument();\n if (argument) {\n const reason = argument.deprecationReason;\n if (reason) {\n const fieldDef = typeInfo.getFieldDef();\n if (fieldDef) {\n errors.push(new GraphQLError(`The argument '${argument === null || argument === void 0 ? void 0 : argument.name}' of '${fieldDef.name}' is deprecated. ${reason}`, [node]));\n }\n }\n }\n },\n Field(node) {\n const fieldDef = typeInfo.getFieldDef();\n if (fieldDef && fieldDef.isDeprecated) {\n const parentType = typeInfo.getParentType();\n if (parentType) {\n const reason = fieldDef.deprecationReason;\n errors.push(new GraphQLError(`The field '${parentType.name}.${fieldDef.name}' is deprecated.${reason ? ' ' + reason : ''}`, [node]));\n }\n }\n },\n EnumValue(node) {\n const enumVal = typeInfo.getEnumValue();\n if (enumVal && enumVal.isDeprecated) {\n const type = getNamedType(typeInfo.getInputType());\n if (type) {\n const reason = enumVal.deprecationReason;\n errors.push(new GraphQLError(`The enum value '${type.name}.${enumVal.name}' is deprecated.${reason ? ' ' + reason : ''}`, [node]));\n }\n }\n },\n }));\n return errors;\n}\nexport function removeFieldIfDirectives(node, directiveNames) {\n if (node.directives) {\n if (node.directives.some((d) => directiveNames.indexOf(d.name.value) !== -1)) {\n return null;\n }\n }\n return node;\n}\nexport function removeDirectives(node, directiveNames) {\n if (node.directives) {\n return Object.assign(Object.assign({}, node), { directives: node.directives.filter((d) => directiveNames.indexOf(d.name.value) === -1) });\n }\n return node;\n}\n//# sourceMappingURL=graphql.js.map","export var ChangeType;\n(function (ChangeType) {\n // Argument\n ChangeType[\"FieldArgumentDescriptionChanged\"] = \"FIELD_ARGUMENT_DESCRIPTION_CHANGED\";\n ChangeType[\"FieldArgumentDefaultChanged\"] = \"FIELD_ARGUMENT_DEFAULT_CHANGED\";\n ChangeType[\"FieldArgumentTypeChanged\"] = \"FIELD_ARGUMENT_TYPE_CHANGED\";\n // Directive\n ChangeType[\"DirectiveRemoved\"] = \"DIRECTIVE_REMOVED\";\n ChangeType[\"DirectiveAdded\"] = \"DIRECTIVE_ADDED\";\n ChangeType[\"DirectiveDescriptionChanged\"] = \"DIRECTIVE_DESCRIPTION_CHANGED\";\n ChangeType[\"DirectiveLocationAdded\"] = \"DIRECTIVE_LOCATION_ADDED\";\n ChangeType[\"DirectiveLocationRemoved\"] = \"DIRECTIVE_LOCATION_REMOVED\";\n ChangeType[\"DirectiveArgumentAdded\"] = \"DIRECTIVE_ARGUMENT_ADDED\";\n ChangeType[\"DirectiveArgumentRemoved\"] = \"DIRECTIVE_ARGUMENT_REMOVED\";\n ChangeType[\"DirectiveArgumentDescriptionChanged\"] = \"DIRECTIVE_ARGUMENT_DESCRIPTION_CHANGED\";\n ChangeType[\"DirectiveArgumentDefaultValueChanged\"] = \"DIRECTIVE_ARGUMENT_DEFAULT_VALUE_CHANGED\";\n ChangeType[\"DirectiveArgumentTypeChanged\"] = \"DIRECTIVE_ARGUMENT_TYPE_CHANGED\";\n // Enum\n ChangeType[\"EnumValueRemoved\"] = \"ENUM_VALUE_REMOVED\";\n ChangeType[\"EnumValueAdded\"] = \"ENUM_VALUE_ADDED\";\n ChangeType[\"EnumValueDescriptionChanged\"] = \"ENUM_VALUE_DESCRIPTION_CHANGED\";\n ChangeType[\"EnumValueDeprecationReasonChanged\"] = \"ENUM_VALUE_DEPRECATION_REASON_CHANGED\";\n ChangeType[\"EnumValueDeprecationReasonAdded\"] = \"ENUM_VALUE_DEPRECATION_REASON_ADDED\";\n ChangeType[\"EnumValueDeprecationReasonRemoved\"] = \"ENUM_VALUE_DEPRECATION_REASON_REMOVED\";\n // Field\n ChangeType[\"FieldRemoved\"] = \"FIELD_REMOVED\";\n ChangeType[\"FieldAdded\"] = \"FIELD_ADDED\";\n ChangeType[\"FieldDescriptionChanged\"] = \"FIELD_DESCRIPTION_CHANGED\";\n ChangeType[\"FieldDescriptionAdded\"] = \"FIELD_DESCRIPTION_ADDED\";\n ChangeType[\"FieldDescriptionRemoved\"] = \"FIELD_DESCRIPTION_REMOVED\";\n ChangeType[\"FieldDeprecationAdded\"] = \"FIELD_DEPRECATION_ADDED\";\n ChangeType[\"FieldDeprecationRemoved\"] = \"FIELD_DEPRECATION_REMOVED\";\n ChangeType[\"FieldDeprecationReasonChanged\"] = \"FIELD_DEPRECATION_REASON_CHANGED\";\n ChangeType[\"FieldDeprecationReasonAdded\"] = \"FIELD_DEPRECATION_REASON_ADDED\";\n ChangeType[\"FieldDeprecationReasonRemoved\"] = \"FIELD_DEPRECATION_REASON_REMOVED\";\n ChangeType[\"FieldTypeChanged\"] = \"FIELD_TYPE_CHANGED\";\n ChangeType[\"FieldArgumentAdded\"] = \"FIELD_ARGUMENT_ADDED\";\n ChangeType[\"FieldArgumentRemoved\"] = \"FIELD_ARGUMENT_REMOVED\";\n // Input\n ChangeType[\"InputFieldRemoved\"] = \"INPUT_FIELD_REMOVED\";\n ChangeType[\"InputFieldAdded\"] = \"INPUT_FIELD_ADDED\";\n ChangeType[\"InputFieldDescriptionAdded\"] = \"INPUT_FIELD_DESCRIPTION_ADDED\";\n ChangeType[\"InputFieldDescriptionRemoved\"] = \"INPUT_FIELD_DESCRIPTION_REMOVED\";\n ChangeType[\"InputFieldDescriptionChanged\"] = \"INPUT_FIELD_DESCRIPTION_CHANGED\";\n ChangeType[\"InputFieldDefaultValueChanged\"] = \"INPUT_FIELD_DEFAULT_VALUE_CHANGED\";\n ChangeType[\"InputFieldTypeChanged\"] = \"INPUT_FIELD_TYPE_CHANGED\";\n // Type\n ChangeType[\"ObjectTypeInterfaceAdded\"] = \"OBJECT_TYPE_INTERFACE_ADDED\";\n ChangeType[\"ObjectTypeInterfaceRemoved\"] = \"OBJECT_TYPE_INTERFACE_REMOVED\";\n // Schema\n ChangeType[\"SchemaQueryTypeChanged\"] = \"SCHEMA_QUERY_TYPE_CHANGED\";\n ChangeType[\"SchemaMutationTypeChanged\"] = \"SCHEMA_MUTATION_TYPE_CHANGED\";\n ChangeType[\"SchemaSubscriptionTypeChanged\"] = \"SCHEMA_SUBSCRIPTION_TYPE_CHANGED\";\n // Type\n ChangeType[\"TypeRemoved\"] = \"TYPE_REMOVED\";\n ChangeType[\"TypeAdded\"] = \"TYPE_ADDED\";\n ChangeType[\"TypeKindChanged\"] = \"TYPE_KIND_CHANGED\";\n ChangeType[\"TypeDescriptionChanged\"] = \"TYPE_DESCRIPTION_CHANGED\";\n // TODO\n ChangeType[\"TypeDescriptionRemoved\"] = \"TYPE_DESCRIPTION_REMOVED\";\n // TODO\n ChangeType[\"TypeDescriptionAdded\"] = \"TYPE_DESCRIPTION_ADDED\";\n // Union\n ChangeType[\"UnionMemberRemoved\"] = \"UNION_MEMBER_REMOVED\";\n ChangeType[\"UnionMemberAdded\"] = \"UNION_MEMBER_ADDED\";\n})(ChangeType || (ChangeType = {}));\nexport var CriticalityLevel;\n(function (CriticalityLevel) {\n CriticalityLevel[\"Breaking\"] = \"BREAKING\";\n CriticalityLevel[\"NonBreaking\"] = \"NON_BREAKING\";\n CriticalityLevel[\"Dangerous\"] = \"DANGEROUS\";\n})(CriticalityLevel || (CriticalityLevel = {}));\n//# sourceMappingURL=change.js.map","import { CriticalityLevel, ChangeType } from './change';\nexport function schemaQueryTypeChanged(oldSchema, newSchema) {\n const oldName = (oldSchema.getQueryType() || {}).name || 'unknown';\n const newName = (newSchema.getQueryType() || {}).name || 'unknown';\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.SchemaQueryTypeChanged,\n message: `Schema query root has changed from '${oldName}' to '${newName}'`,\n };\n}\nexport function schemaMutationTypeChanged(oldSchema, newSchema) {\n const oldName = (oldSchema.getMutationType() || {}).name || 'unknown';\n const newName = (newSchema.getMutationType() || {}).name || 'unknown';\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.SchemaMutationTypeChanged,\n message: `Schema mutation root has changed from '${oldName}' to '${newName}'`,\n };\n}\nexport function schemaSubscriptionTypeChanged(oldSchema, newSchema) {\n const oldName = (oldSchema.getSubscriptionType() || {}).name || 'unknown';\n const newName = (newSchema.getSubscriptionType() || {}).name || 'unknown';\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.SchemaSubscriptionTypeChanged,\n message: `Schema subscription root has changed from '${oldName}' to '${newName}'`,\n };\n}\n//# sourceMappingURL=schema.js.map","import { CriticalityLevel, ChangeType } from './change';\nimport { getKind } from '../../utils/graphql';\nexport function typeRemoved(type) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.TypeRemoved,\n message: `Type '${type.name}' was removed`,\n path: type.name,\n };\n}\nexport function typeAdded(type) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.TypeAdded,\n message: `Type '${type.name}' was added`,\n path: type.name,\n };\n}\nexport function typeKindChanged(oldType, newType) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason: `Changing the kind of a type is a breaking change because it can cause existing queries to error. For example, turning an object type to a scalar type would break queries that define a selection set for this type.`,\n },\n type: ChangeType.TypeKindChanged,\n message: `'${oldType.name}' kind changed from '${getKind(oldType)}' to '${getKind(newType)}'`,\n path: oldType.name,\n };\n}\nexport function typeDescriptionChanged(oldType, newType) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.TypeDescriptionChanged,\n message: `Description '${oldType.description}' on type '${oldType.name}' has changed to '${newType.description}'`,\n path: oldType.name,\n };\n}\nexport function typeDescriptionRemoved(type) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.TypeDescriptionRemoved,\n message: `Description '${type.description}' was removed from object type '${type.name}'`,\n path: type.name,\n };\n}\nexport function typeDescriptionAdded(type) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.TypeDescriptionAdded,\n message: `Object type '${type.name}' has description '${type.description}'`,\n path: type.name,\n };\n}\n//# sourceMappingURL=type.js.map","import { isNonNullType, } from 'graphql';\nimport { CriticalityLevel, ChangeType } from './change';\nimport { safeChangeForInputValue } from '../../utils/graphql';\nexport function directiveRemoved(directive) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.DirectiveRemoved,\n message: `Directive '${directive.name}' was removed`,\n path: `@${directive.name}`,\n };\n}\nexport function directiveAdded(directive) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.DirectiveAdded,\n message: `Directive '${directive.name}' was added`,\n path: `@${directive.name}`,\n };\n}\nexport function directiveDescriptionChanged(oldDirective, newDirective) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.DirectiveDescriptionChanged,\n message: `Directive '${oldDirective.name}' description changed from '${oldDirective.description}' to '${newDirective.description}'`,\n path: `@${oldDirective.name}`,\n };\n}\nexport function directiveLocationAdded(directive, location) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.DirectiveLocationAdded,\n message: `Location '${location}' was added to directive '${directive.name}'`,\n path: `@${directive.name}`,\n };\n}\nexport function directiveLocationRemoved(directive, location) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.DirectiveLocationRemoved,\n message: `Location '${location}' was removed from directive '${directive.name}'`,\n path: `@${directive.name}`,\n };\n}\nexport function directiveArgumentAdded(directive, arg) {\n return {\n criticality: {\n level: isNonNullType(arg.type)\n ? CriticalityLevel.Breaking\n : CriticalityLevel.NonBreaking,\n },\n type: ChangeType.DirectiveArgumentAdded,\n message: `Argument '${arg.name}' was added to directive '${directive.name}'`,\n path: `@${directive.name}`,\n };\n}\nexport function directiveArgumentRemoved(directive, arg) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.DirectiveArgumentRemoved,\n message: `Argument '${arg.name}' was removed from directive '${directive.name}'`,\n path: `@${directive.name}.${arg.name}`,\n };\n}\nexport function directiveArgumentDescriptionChanged(directive, oldArg, newArg) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.DirectiveArgumentDescriptionChanged,\n message: `Description for argument '${oldArg.name}' on directive '${directive.name}' changed from '${oldArg.description}' to '${newArg.description}'`,\n path: `@${directive.name}.${oldArg.name}`,\n };\n}\nexport function directiveArgumentDefaultValueChanged(directive, oldArg, newArg) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n reason: 'Changing the default value for an argument may change the runtime behaviour of a field if it was never provided.',\n },\n type: ChangeType.DirectiveArgumentDefaultValueChanged,\n message: typeof oldArg.defaultValue === 'undefined'\n ? `Default value '${newArg.defaultValue}' was added to argument '${newArg.name}' on directive '${directive.name}'`\n : `Default value for argument '${oldArg.name}' on directive '${directive.name}' changed from '${oldArg.defaultValue}' to '${newArg.defaultValue}'`,\n path: `@${directive.name}.${oldArg.name}`,\n };\n}\nexport function directiveArgumentTypeChanged(directive, oldArg, newArg) {\n return {\n criticality: safeChangeForInputValue(oldArg.type, newArg.type)\n ? {\n level: CriticalityLevel.NonBreaking,\n reason: 'Changing an input field from non-null to null is considered non-breaking.',\n }\n : {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.DirectiveArgumentTypeChanged,\n message: `Type for argument '${oldArg.name}' on directive '${directive.name}' changed from '${oldArg.type}' to '${newArg.type}'`,\n path: `@${directive.name}.${oldArg.name}`,\n };\n}\n//# sourceMappingURL=directive.js.map","import { CriticalityLevel, ChangeType } from './change';\nexport function enumValueRemoved(oldEnum, value) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason: `Removing an enum value will cause existing queries that use this enum value to error.`,\n },\n type: ChangeType.EnumValueRemoved,\n message: `Enum value '${value.name}' ${value.isDeprecated ? '(deprecated) ' : ''}was removed from enum '${oldEnum.name}'`,\n path: [oldEnum.name, value.name].join('.'),\n };\n}\nexport function enumValueAdded(newEnum, value) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n reason: `Adding an enum value may break existing clients that were not programming defensively against an added case when querying an enum.`,\n },\n type: ChangeType.EnumValueAdded,\n message: `Enum value '${value.name}' was added to enum '${newEnum.name}'`,\n path: [newEnum.name, value.name].join('.'),\n };\n}\nexport function enumValueDescriptionChanged(newEnum, oldValue, newValue) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.EnumValueDescriptionChanged,\n message: typeof oldValue.description === 'undefined'\n ? `Description '${newValue.description}' was added to enum value '${newEnum.name}.${newValue.name}'`\n : `Description for enum value '${newEnum.name}.${newValue.name}' changed from '${oldValue.description}' to '${newValue.description}'`,\n path: [newEnum.name, oldValue.name].join('.'),\n };\n}\nexport function enumValueDeprecationReasonChanged(newEnum, oldValue, newValue) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.EnumValueDeprecationReasonChanged,\n message: `Enum value '${newEnum.name}.${newValue.name}' deprecation reason changed from '${oldValue.deprecationReason}' to '${newValue.deprecationReason}'`,\n path: [newEnum.name, oldValue.name].join('.'),\n };\n}\nexport function enumValueDeprecationReasonAdded(newEnum, oldValue, newValue) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.EnumValueDeprecationReasonAdded,\n message: `Enum value '${newEnum.name}.${newValue.name}' was deprecated with reason '${newValue.deprecationReason}'`,\n path: [newEnum.name, oldValue.name].join('.'),\n };\n}\nexport function enumValueDeprecationReasonRemoved(newEnum, oldValue, newValue) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.EnumValueDeprecationReasonRemoved,\n message: `Deprecation reason was removed from enum value '${newEnum.name}.${newValue.name}'`,\n path: [newEnum.name, oldValue.name].join('.'),\n };\n}\n//# sourceMappingURL=enum.js.map","import { isNotEqual, isVoid } from '../utils/compare';\nimport { enumValueRemoved, enumValueAdded, enumValueDescriptionChanged, enumValueDeprecationReasonChanged, enumValueDeprecationReasonAdded, enumValueDeprecationReasonRemoved, } from './changes/enum';\nimport { compareLists } from '../utils/compare';\nexport function changesInEnum(oldEnum, newEnum, addChange) {\n compareLists(oldEnum.getValues(), newEnum.getValues(), {\n onAdded(value) {\n addChange(enumValueAdded(newEnum, value));\n },\n onRemoved(value) {\n addChange(enumValueRemoved(oldEnum, value));\n },\n onMutual(value) {\n const oldValue = value.oldVersion;\n const newValue = value.newVersion;\n if (isNotEqual(oldValue.description, newValue.description)) {\n addChange(enumValueDescriptionChanged(newEnum, oldValue, newValue));\n }\n if (isNotEqual(oldValue.deprecationReason, newValue.deprecationReason)) {\n if (isVoid(oldValue.deprecationReason)) {\n addChange(enumValueDeprecationReasonAdded(newEnum, oldValue, newValue));\n }\n else if (isVoid(newValue.deprecationReason)) {\n addChange(enumValueDeprecationReasonRemoved(newEnum, oldValue, newValue));\n }\n else {\n addChange(enumValueDeprecationReasonChanged(newEnum, oldValue, newValue));\n }\n }\n }\n });\n}\n//# sourceMappingURL=enum.js.map","import { CriticalityLevel, ChangeType } from './change';\nexport function unionMemberRemoved(union, type) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason: 'Removing a union member from a union can cause existing queries that use this union member in a fragment spread to error.',\n },\n type: ChangeType.UnionMemberRemoved,\n message: `Member '${type.name}' was removed from Union type '${union.name}'`,\n path: union.name,\n };\n}\nexport function unionMemberAdded(union, type) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n reason: 'Adding a possible type to Unions may break existing clients that were not programming defensively against a new possible type.',\n },\n type: ChangeType.UnionMemberAdded,\n message: `Member '${type.name}' was added to Union type '${union.name}'`,\n path: union.name,\n };\n}\n//# sourceMappingURL=union.js.map","import { compareLists } from '../utils/compare';\nimport { unionMemberAdded, unionMemberRemoved } from './changes/union';\nexport function changesInUnion(oldUnion, newUnion, addChange) {\n const oldTypes = oldUnion.getTypes();\n const newTypes = newUnion.getTypes();\n compareLists(oldTypes, newTypes, {\n onAdded(t) {\n addChange(unionMemberAdded(newUnion, t));\n },\n onRemoved(t) {\n addChange(unionMemberRemoved(oldUnion, t));\n },\n });\n}\n//# sourceMappingURL=union.js.map","import { isNonNullType, } from 'graphql';\nimport { CriticalityLevel, ChangeType } from './change';\nimport { safeChangeForInputValue } from '../../utils/graphql';\nexport function inputFieldRemoved(input, field) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason: 'Removing an input field will cause existing queries that use this input field to error.',\n },\n type: ChangeType.InputFieldRemoved,\n message: `Input field '${field.name}' was removed from input object type '${input.name}'`,\n path: [input.name, field.name].join('.'),\n };\n}\nexport function inputFieldAdded(input, field) {\n return {\n criticality: isNonNullType(field.type)\n ? {\n level: CriticalityLevel.Breaking,\n reason: 'Adding a required input field to an existing input object type is a breaking change because it will cause existing uses of this input object type to error.',\n }\n : {\n level: CriticalityLevel.Dangerous,\n },\n type: ChangeType.InputFieldAdded,\n message: `Input field '${field.name}' was added to input object type '${input.name}'`,\n path: [input.name, field.name].join('.'),\n };\n}\nexport function inputFieldDescriptionAdded(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.InputFieldDescriptionAdded,\n message: `Input field '${type.name}.${field.name}' has description '${field.description}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function inputFieldDescriptionRemoved(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.InputFieldDescriptionRemoved,\n message: `Description was removed from input field '${type.name}.${field.name}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function inputFieldDescriptionChanged(input, oldField, newField) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.InputFieldDescriptionChanged,\n message: `Input field '${input.name}.${oldField.name}' description changed from '${oldField.description}' to '${newField.description}'`,\n path: [input.name, oldField.name].join('.'),\n };\n}\nexport function inputFieldDefaultValueChanged(input, oldField, newField) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n reason: 'Changing the default value for an argument may change the runtime behaviour of a field if it was never provided.',\n },\n type: ChangeType.InputFieldDefaultValueChanged,\n message: `Input field '${input.name}.${oldField.name}' default value changed from '${oldField.defaultValue}' to '${newField.defaultValue}'`,\n path: [input.name, oldField.name].join('.'),\n };\n}\nexport function inputFieldTypeChanged(input, oldField, newField) {\n return {\n criticality: safeChangeForInputValue(oldField.type, newField.type)\n ? {\n level: CriticalityLevel.NonBreaking,\n reason: 'Changing an input field from non-null to null is considered non-breaking.',\n }\n : {\n level: CriticalityLevel.Breaking,\n reason: 'Changing the type of an input field can cause existing queries that use this field to error.',\n },\n type: ChangeType.InputFieldTypeChanged,\n message: `Input field '${input.name}.${oldField.name}' changed type from '${oldField.type.toString()}' to '${newField.type.toString()}'`,\n path: [input.name, oldField.name].join('.'),\n };\n}\n//# sourceMappingURL=input.js.map","import { diffArrays, isNotEqual, isVoid } from '../utils/compare';\nimport { compareLists } from '../utils/compare';\nimport { inputFieldAdded, inputFieldRemoved, inputFieldDescriptionChanged, inputFieldDescriptionAdded, inputFieldDescriptionRemoved, inputFieldDefaultValueChanged, inputFieldTypeChanged, } from './changes/input';\nexport function changesInInputObject(oldInput, newInput, addChange) {\n const oldFields = oldInput.getFields();\n const newFields = newInput.getFields();\n compareLists(Object.values(oldFields), Object.values(newFields), {\n onAdded(field) {\n addChange(inputFieldAdded(newInput, field));\n },\n onRemoved(field) {\n addChange(inputFieldRemoved(oldInput, field));\n },\n onMutual(field) {\n changesInInputField(oldInput, field.oldVersion, field.newVersion, addChange);\n },\n });\n}\nfunction changesInInputField(input, oldField, newField, addChange) {\n if (isNotEqual(oldField.description, newField.description)) {\n if (isVoid(oldField.description)) {\n addChange(inputFieldDescriptionAdded(input, newField));\n }\n else if (isVoid(newField.description)) {\n addChange(inputFieldDescriptionRemoved(input, oldField));\n }\n else {\n addChange(inputFieldDescriptionChanged(input, oldField, newField));\n }\n }\n if (isNotEqual(oldField.defaultValue, newField.defaultValue)) {\n if (Array.isArray(oldField.defaultValue) &&\n Array.isArray(newField.defaultValue)) {\n if (diffArrays(oldField.defaultValue, newField.defaultValue).length > 0) {\n addChange(inputFieldDefaultValueChanged(input, oldField, newField));\n }\n }\n else if (JSON.stringify(oldField.defaultValue) !==\n JSON.stringify(newField.defaultValue)) {\n addChange(inputFieldDefaultValueChanged(input, oldField, newField));\n }\n }\n if (isNotEqual(oldField.type.toString(), newField.type.toString())) {\n addChange(inputFieldTypeChanged(input, oldField, newField));\n }\n}\n//# sourceMappingURL=input.js.map","import { CriticalityLevel, ChangeType } from './change';\nexport function objectTypeInterfaceAdded(iface, type) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n reason: 'Adding an interface to an object type may break existing clients that were not programming defensively against a new possible type.',\n },\n type: ChangeType.ObjectTypeInterfaceAdded,\n message: `'${type.name}' object implements '${iface.name}' interface`,\n path: type.name,\n };\n}\nexport function objectTypeInterfaceRemoved(iface, type) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason: 'Removing an interface from an object type can cause existing queries that use this in a fragment spread to error.',\n },\n type: ChangeType.ObjectTypeInterfaceRemoved,\n message: `'${type.name}' object type no longer implements '${iface.name}' interface`,\n path: type.name,\n };\n}\n//# sourceMappingURL=object.js.map","import { isNonNullType, isInterfaceType, } from 'graphql';\nimport { CriticalityLevel, ChangeType } from './change';\nimport { safeChangeForField } from '../../utils/graphql';\nexport function fieldRemoved(type, field) {\n const entity = isInterfaceType(type) ? 'interface' : 'object type';\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason: field.deprecationReason\n ? `Removing a deprecated field is a breaking change. Before removing it, you may want to look at the field's usage to see the impact of removing the field.`\n : `Removing a field is a breaking change. It is preferable to deprecate the field before removing it.`,\n },\n type: ChangeType.FieldRemoved,\n message: `Field '${field.name}' ${field.isDeprecated ? '(deprecated) ' : ''}was removed from ${entity} '${type.name}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldAdded(type, field) {\n const entity = isInterfaceType(type) ? 'interface' : 'object type';\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldAdded,\n message: `Field '${field.name}' was added to ${entity} '${type.name}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldDescriptionChanged(type, oldField, newField) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDescriptionChanged,\n message: `Field '${type.name}.${oldField.name}' description changed from '${oldField.description}' to '${newField.description}'`,\n path: [type.name, oldField.name].join('.'),\n };\n}\nexport function fieldDescriptionAdded(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDescriptionAdded,\n message: `Field '${type.name}.${field.name}' has description '${field.description}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldDescriptionRemoved(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDescriptionRemoved,\n message: `Description was removed from field '${type.name}.${field.name}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldDeprecationAdded(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDeprecationAdded,\n message: `Field '${type.name}.${field.name}' is deprecated`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldDeprecationRemoved(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n },\n type: ChangeType.FieldDeprecationRemoved,\n message: `Field '${type.name}.${field.name}' is no longer deprecated`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldDeprecationReasonChanged(type, oldField, newField) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDeprecationReasonChanged,\n message: `Deprecation reason on field '${type.name}.${newField.name}' has changed from '${oldField.deprecationReason}' to '${newField.deprecationReason}'`,\n path: [type.name, oldField.name].join('.'),\n };\n}\nexport function fieldDeprecationReasonAdded(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDeprecationReasonAdded,\n message: `Field '${type.name}.${field.name}' has deprecation reason '${field.deprecationReason}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldDeprecationReasonRemoved(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDeprecationReasonRemoved,\n message: `Deprecation reason was removed from field '${type.name}.${field.name}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldTypeChanged(type, oldField, newField) {\n return {\n criticality: {\n level: safeChangeForField(oldField.type, newField.type)\n ? CriticalityLevel.NonBreaking\n : CriticalityLevel.Breaking,\n },\n type: ChangeType.FieldTypeChanged,\n message: `Field '${type}.${oldField.name}' changed type from '${oldField.type}' to '${newField.type}'`,\n path: [type.name, oldField.name].join('.'),\n };\n}\nexport function fieldArgumentAdded(type, field, arg) {\n return {\n criticality: isNonNullType(arg.type)\n ? {\n level: CriticalityLevel.Breaking,\n reason: `Adding a required argument to an existing field is a breaking change because it will cause existing uses of this field to error.`,\n }\n : {\n level: CriticalityLevel.Dangerous,\n reason: `Adding a new argument to an existing field may involve a change in resolve function logic that potentially may cause some side effects.`,\n },\n type: ChangeType.FieldArgumentAdded,\n message: `Argument '${arg.name}: ${arg.type}' added to field '${type.name}.${field.name}'`,\n path: [type.name, field.name, arg.name].join('.'),\n };\n}\nexport function fieldArgumentRemoved(type, field, arg) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason: `Removing a field argument is a breaking change because it will cause existing queries that use this argument to error.`,\n },\n type: ChangeType.FieldArgumentRemoved,\n message: `Argument '${arg.name}: ${arg.type}' was removed from field '${type.name}.${field.name}'`,\n path: [type.name, field.name, arg.name].join('.'),\n };\n}\n//# sourceMappingURL=field.js.map","import { CriticalityLevel, ChangeType } from './change';\nimport { safeChangeForInputValue } from '../../utils/graphql';\nexport function fieldArgumentDescriptionChanged(type, field, oldArg, newArg) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldArgumentDescriptionChanged,\n message: `Description for argument '${newArg.name}' on field '${type.name}.${field.name}' changed from '${oldArg.description}' to '${newArg.description}'`,\n path: [type.name, field.name, oldArg.name].join('.'),\n };\n}\nexport function fieldArgumentDefaultChanged(type, field, oldArg, newArg) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n reason: 'Changing the default value for an argument may change the runtime behaviour of a field if it was never provided.',\n },\n type: ChangeType.FieldArgumentDefaultChanged,\n message: typeof oldArg.defaultValue === 'undefined'\n ? `Default value '${newArg.defaultValue}' was added to argument '${newArg.name}' on field '${type.name}.${field.name}'`\n : `Default value for argument '${newArg.name}' on field '${type.name}.${field.name}' changed from '${oldArg.defaultValue}' to '${newArg.defaultValue}'`,\n path: [type.name, field.name, oldArg.name].join('.'),\n };\n}\nexport function fieldArgumentTypeChanged(type, field, oldArg, newArg) {\n return {\n criticality: safeChangeForInputValue(oldArg.type, newArg.type)\n ? {\n level: CriticalityLevel.NonBreaking,\n reason: `Changing an input field from non-null to null is considered non-breaking.`,\n }\n : {\n level: CriticalityLevel.Breaking,\n reason: `Changing the type of a field's argument can cause existing queries that use this argument to error.`,\n },\n type: ChangeType.FieldArgumentTypeChanged,\n message: `Type for argument '${newArg.name}' on field '${type.name}.${field.name}' changed from '${oldArg.type}' to '${newArg.type}'`,\n path: [type.name, field.name, oldArg.name].join('.'),\n };\n}\n//# sourceMappingURL=argument.js.map","import { diffArrays, isNotEqual } from '../utils/compare';\nimport { fieldArgumentDescriptionChanged, fieldArgumentDefaultChanged, fieldArgumentTypeChanged, } from './changes/argument';\nexport function changesInArgument(type, field, oldArg, newArg, addChange) {\n if (isNotEqual(oldArg.description, newArg.description)) {\n addChange(fieldArgumentDescriptionChanged(type, field, oldArg, newArg));\n }\n if (isNotEqual(oldArg.defaultValue, newArg.defaultValue)) {\n if (Array.isArray(oldArg.defaultValue) &&\n Array.isArray(newArg.defaultValue)) {\n const diff = diffArrays(oldArg.defaultValue, newArg.defaultValue);\n if (diff.length > 0) {\n addChange(fieldArgumentDefaultChanged(type, field, oldArg, newArg));\n }\n }\n else if (JSON.stringify(oldArg.defaultValue) !==\n JSON.stringify(newArg.defaultValue)) {\n addChange(fieldArgumentDefaultChanged(type, field, oldArg, newArg));\n }\n }\n if (isNotEqual(oldArg.type.toString(), newArg.type.toString())) {\n addChange(fieldArgumentTypeChanged(type, field, oldArg, newArg));\n }\n}\n//# sourceMappingURL=argument.js.map","import { isNotEqual, isVoid } from '../utils/compare';\nimport { fieldDescriptionChanged, fieldDescriptionAdded, fieldDescriptionRemoved, fieldDeprecationAdded, fieldDeprecationRemoved, fieldDeprecationReasonChanged, fieldDeprecationReasonAdded, fieldDeprecationReasonRemoved, fieldTypeChanged, fieldArgumentAdded, fieldArgumentRemoved, } from './changes/field';\nimport { changesInArgument } from './argument';\nimport { compareLists } from '../utils/compare';\nexport function changesInField(type, oldField, newField, addChange) {\n if (isNotEqual(oldField.description, newField.description)) {\n if (isVoid(oldField.description)) {\n addChange(fieldDescriptionAdded(type, newField));\n }\n else if (isVoid(newField.description)) {\n addChange(fieldDescriptionRemoved(type, oldField));\n }\n else {\n addChange(fieldDescriptionChanged(type, oldField, newField));\n }\n }\n if (isNotEqual(oldField.isDeprecated, newField.isDeprecated)) {\n if (newField.isDeprecated) {\n addChange(fieldDeprecationAdded(type, newField));\n }\n else {\n addChange(fieldDeprecationRemoved(type, oldField));\n }\n }\n if (isNotEqual(oldField.deprecationReason, newField.deprecationReason)) {\n if (isVoid(oldField.deprecationReason)) {\n addChange(fieldDeprecationReasonAdded(type, newField));\n }\n else if (isVoid(newField.deprecationReason)) {\n addChange(fieldDeprecationReasonRemoved(type, oldField));\n }\n else {\n addChange(fieldDeprecationReasonChanged(type, oldField, newField));\n }\n }\n if (isNotEqual(oldField.type.toString(), newField.type.toString())) {\n addChange(fieldTypeChanged(type, oldField, newField));\n }\n compareLists(oldField.args, newField.args, {\n onAdded(arg) {\n addChange(fieldArgumentAdded(type, newField, arg));\n },\n onRemoved(arg) {\n addChange(fieldArgumentRemoved(type, oldField, arg));\n },\n onMutual(arg) {\n changesInArgument(type, oldField, arg.oldVersion, arg.newVersion, addChange);\n }\n });\n}\n//# sourceMappingURL=field.js.map","import { objectTypeInterfaceAdded, objectTypeInterfaceRemoved, } from './changes/object';\nimport { fieldRemoved, fieldAdded } from './changes/field';\nimport { changesInField } from './field';\nimport { compareLists } from '../utils/compare';\nexport function changesInObject(oldType, newType, addChange) {\n const oldInterfaces = oldType.getInterfaces();\n const newInterfaces = newType.getInterfaces();\n const oldFields = oldType.getFields();\n const newFields = newType.getFields();\n compareLists(oldInterfaces, newInterfaces, {\n onAdded(i) {\n addChange(objectTypeInterfaceAdded(i, newType));\n },\n onRemoved(i) {\n addChange(objectTypeInterfaceRemoved(i, oldType));\n },\n });\n compareLists(Object.values(oldFields), Object.values(newFields), {\n onAdded(f) {\n addChange(fieldAdded(newType, f));\n },\n onRemoved(f) {\n addChange(fieldRemoved(oldType, f));\n },\n onMutual(f) {\n changesInField(oldType, f.oldVersion, f.newVersion, addChange);\n },\n });\n}\n//# sourceMappingURL=object.js.map","import { fieldRemoved, fieldAdded } from './changes/field';\nimport { changesInField } from './field';\nimport { compareLists } from '../utils/compare';\nexport function changesInInterface(oldInterface, newInterface, addChange) {\n compareLists(Object.values(oldInterface.getFields()), Object.values(newInterface.getFields()), {\n onAdded(field) {\n addChange(fieldAdded(newInterface, field));\n },\n onRemoved(field) {\n addChange(fieldRemoved(oldInterface, field));\n },\n onMutual(field) {\n changesInField(oldInterface, field.oldVersion, field.newVersion, addChange);\n },\n });\n}\n//# sourceMappingURL=interface.js.map","import { isNotEqual } from '../utils/compare';\nimport { directiveDescriptionChanged, directiveLocationAdded, directiveLocationRemoved, directiveArgumentAdded, directiveArgumentRemoved, directiveArgumentDescriptionChanged, directiveArgumentDefaultValueChanged, directiveArgumentTypeChanged, } from './changes/directive';\nimport { diffArrays, compareLists } from '../utils/compare';\nexport function changesInDirective(oldDirective, newDirective, addChange) {\n if (isNotEqual(oldDirective.description, newDirective.description)) {\n addChange(directiveDescriptionChanged(oldDirective, newDirective));\n }\n const locations = {\n added: diffArrays(newDirective.locations, oldDirective.locations),\n removed: diffArrays(oldDirective.locations, newDirective.locations),\n };\n // locations added\n locations.added.forEach((location) => addChange(directiveLocationAdded(newDirective, location)));\n // locations removed\n locations.removed.forEach((location) => addChange(directiveLocationRemoved(oldDirective, location)));\n compareLists(oldDirective.args, newDirective.args, {\n onAdded(arg) {\n addChange(directiveArgumentAdded(newDirective, arg));\n },\n onRemoved(arg) {\n addChange(directiveArgumentRemoved(oldDirective, arg));\n },\n onMutual(arg) {\n changesInDirectiveArgument(oldDirective, arg.oldVersion, arg.newVersion, addChange);\n },\n });\n}\nfunction changesInDirectiveArgument(directive, oldArg, newArg, addChange) {\n if (isNotEqual(oldArg.description, newArg.description)) {\n addChange(directiveArgumentDescriptionChanged(directive, oldArg, newArg));\n }\n if (isNotEqual(oldArg.defaultValue, newArg.defaultValue)) {\n addChange(directiveArgumentDefaultValueChanged(directive, oldArg, newArg));\n }\n if (isNotEqual(oldArg.type.toString(), newArg.type.toString())) {\n addChange(directiveArgumentTypeChanged(directive, oldArg, newArg));\n }\n}\n//# sourceMappingURL=directive.js.map","import { isEnumType, isUnionType, isInputObjectType, isObjectType, isInterfaceType, isScalarType, } from 'graphql';\nimport { compareLists, isNotEqual, isVoid } from '../utils/compare';\nimport { isPrimitive } from '../utils/graphql';\nimport { schemaQueryTypeChanged, schemaMutationTypeChanged, schemaSubscriptionTypeChanged, } from './changes/schema';\nimport { typeRemoved, typeAdded, typeKindChanged, typeDescriptionChanged, typeDescriptionAdded, typeDescriptionRemoved, } from './changes/type';\nimport { directiveRemoved, directiveAdded } from './changes/directive';\nimport { changesInEnum } from './enum';\nimport { changesInUnion } from './union';\nimport { changesInInputObject } from './input';\nimport { changesInObject } from './object';\nimport { changesInInterface } from './interface';\nimport { changesInDirective } from './directive';\nexport function diffSchema(oldSchema, newSchema) {\n const changes = [];\n function addChange(change) {\n changes.push(change);\n }\n changesInSchema(oldSchema, newSchema, addChange);\n compareLists(Object.values(oldSchema.getTypeMap()).filter((t) => !isPrimitive(t)), Object.values(newSchema.getTypeMap()).filter((t) => !isPrimitive(t)), {\n onAdded(type) {\n addChange(typeAdded(type));\n },\n onRemoved(type) {\n addChange(typeRemoved(type));\n },\n onMutual(type) {\n changesInType(type.oldVersion, type.newVersion, addChange);\n },\n });\n compareLists(oldSchema.getDirectives(), newSchema.getDirectives(), {\n onAdded(directive) {\n addChange(directiveAdded(directive));\n },\n onRemoved(directive) {\n addChange(directiveRemoved(directive));\n },\n onMutual(directive) {\n changesInDirective(directive.oldVersion, directive.newVersion, addChange);\n },\n });\n return changes;\n}\nfunction changesInSchema(oldSchema, newSchema, addChange) {\n const oldRoot = {\n query: (oldSchema.getQueryType() || {}).name,\n mutation: (oldSchema.getMutationType() || {}).name,\n subscription: (oldSchema.getSubscriptionType() || {})\n .name,\n };\n const newRoot = {\n query: (newSchema.getQueryType() || {}).name,\n mutation: (newSchema.getMutationType() || {}).name,\n subscription: (newSchema.getSubscriptionType() || {})\n .name,\n };\n if (isNotEqual(oldRoot.query, newRoot.query)) {\n addChange(schemaQueryTypeChanged(oldSchema, newSchema));\n }\n if (isNotEqual(oldRoot.mutation, newRoot.mutation)) {\n addChange(schemaMutationTypeChanged(oldSchema, newSchema));\n }\n if (isNotEqual(oldRoot.subscription, newRoot.subscription)) {\n addChange(schemaSubscriptionTypeChanged(oldSchema, newSchema));\n }\n}\nfunction changesInType(oldType, newType, addChange) {\n if (isEnumType(oldType) && isEnumType(newType)) {\n changesInEnum(oldType, newType, addChange);\n }\n else if (isUnionType(oldType) && isUnionType(newType)) {\n changesInUnion(oldType, newType, addChange);\n }\n else if (isInputObjectType(oldType) && isInputObjectType(newType)) {\n changesInInputObject(oldType, newType, addChange);\n }\n else if (isObjectType(oldType) && isObjectType(newType)) {\n changesInObject(oldType, newType, addChange);\n }\n else if (isInterfaceType(oldType) && isInterfaceType(newType)) {\n changesInInterface(oldType, newType, addChange);\n }\n else if (isScalarType(oldType) && isScalarType(newType)) {\n // what to do with scalar types?\n }\n else {\n addChange(typeKindChanged(oldType, newType));\n }\n if (isNotEqual(oldType.description, newType.description)) {\n if (isVoid(oldType.description)) {\n addChange(typeDescriptionAdded(newType));\n }\n else if (isVoid(newType.description)) {\n addChange(typeDescriptionRemoved(oldType));\n }\n else {\n addChange(typeDescriptionChanged(oldType, newType));\n }\n }\n}\n//# sourceMappingURL=schema.js.map","import { CriticalityLevel } from './../changes/change';\nexport const dangerousBreaking = ({ changes }) => {\n return changes.map((change) => {\n if (change.criticality.level === CriticalityLevel.Dangerous) {\n return Object.assign(Object.assign({}, change), { criticality: Object.assign(Object.assign({}, change.criticality), { level: CriticalityLevel.Breaking }) });\n }\n return change;\n });\n};\n//# sourceMappingURL=dangerous-breaking.js.map","export function parsePath(path) {\n return path.split('.');\n}\n//# sourceMappingURL=path.js.map","import { isObjectType, isInterfaceType, isEnumType } from 'graphql';\nimport { CriticalityLevel, ChangeType } from './../changes/change';\nimport { parsePath } from '../../utils/path';\nexport const suppressRemovalOfDeprecatedField = ({ changes, oldSchema, }) => {\n return changes.map((change) => {\n if (change.type === ChangeType.FieldRemoved &&\n change.criticality.level === CriticalityLevel.Breaking &&\n change.path) {\n const [typeName, fieldName] = parsePath(change.path);\n const type = oldSchema.getType(typeName);\n if (isObjectType(type) || isInterfaceType(type)) {\n const field = type.getFields()[fieldName];\n if (field.isDeprecated) {\n return Object.assign(Object.assign({}, change), { criticality: Object.assign(Object.assign({}, change.criticality), { level: CriticalityLevel.Dangerous }) });\n }\n }\n }\n if (change.type === ChangeType.EnumValueRemoved &&\n change.criticality.level === CriticalityLevel.Breaking &&\n change.path) {\n const [enumName, enumItem] = parsePath(change.path);\n const type = oldSchema.getType(enumName);\n if (isEnumType(type)) {\n const item = type.getValue(enumItem);\n if (item && item.isDeprecated) {\n return Object.assign(Object.assign({}, change), { criticality: Object.assign(Object.assign({}, change.criticality), { level: CriticalityLevel.Dangerous }) });\n }\n }\n }\n return change;\n });\n};\n//# sourceMappingURL=suppress-removal-of-deprecated-field.js.map","import { ChangeType } from '../changes/change';\nconst descriptionChangeTypes = [\n ChangeType.FieldArgumentDescriptionChanged,\n ChangeType.DirectiveDescriptionChanged,\n ChangeType.DirectiveArgumentDescriptionChanged,\n ChangeType.EnumValueDescriptionChanged,\n ChangeType.FieldDescriptionChanged,\n ChangeType.FieldDescriptionAdded,\n ChangeType.FieldDescriptionRemoved,\n ChangeType.InputFieldDescriptionAdded,\n ChangeType.InputFieldDescriptionRemoved,\n ChangeType.InputFieldDescriptionChanged,\n ChangeType.TypeDescriptionChanged,\n];\nexport const ignoreDescriptionChanges = ({ changes }) => {\n return changes.filter((change) => descriptionChangeTypes.indexOf(change.type) === -1);\n};\n//# sourceMappingURL=ignore-description-changes.js.map","import { diffSchema } from './schema';\nimport * as rules from './rules';\nexport * from './rules/types';\nexport const DiffRule = rules;\nexport * from './onComplete/types';\nexport function diff(oldSchema, newSchema, rules = []) {\n const changes = diffSchema(oldSchema, newSchema);\n return rules.reduce((prev, rule) => rule({\n changes: prev,\n oldSchema,\n newSchema,\n }), changes);\n}\n//# sourceMappingURL=index.js.map","import { Kind, parse, } from 'graphql';\nexport function readDocument(source) {\n const result = {\n source,\n fragments: [],\n operations: [],\n hasFragments: false,\n hasOperations: false,\n };\n const documentNode = parse(source.body);\n const filepath = source.name;\n const definitions = documentNode.definitions || [];\n definitions.forEach((node) => {\n if (isOperation(node)) {\n result.operations.push({\n node,\n source: filepath,\n });\n }\n else if (isFragment(node)) {\n result.fragments.push({\n node,\n source: filepath,\n });\n }\n });\n result.hasFragments = result.fragments.length > 0;\n result.hasOperations = result.operations.length > 0;\n return result;\n}\nfunction isOperation(node) {\n return node.kind === Kind.OPERATION_DEFINITION;\n}\nfunction isFragment(node) {\n return node.kind === Kind.FRAGMENT_DEFINITION;\n}\n//# sourceMappingURL=document.js.map","import { GraphQLError, Kind, } from 'graphql';\nexport function validateQueryDepth({ source, doc, maxDepth, fragmentGraph, }) {\n try {\n calculateDepth({\n node: doc,\n currentDepth: 0,\n maxDepth,\n getFragment(name) {\n return fragmentGraph.getNodeData(name);\n },\n });\n }\n catch (errorOrNode) {\n if (errorOrNode instanceof Error) {\n throw errorOrNode;\n }\n const node = errorOrNode;\n return new GraphQLError(`Query exceeds maximum depth of ${maxDepth}`, node, source, node.loc && node.loc.start ? [node.loc.start] : undefined);\n }\n}\nexport function calculateDepth({ node, currentDepth, maxDepth, getFragment, }) {\n if (maxDepth && currentDepth > maxDepth) {\n throw node;\n }\n switch (node.kind) {\n case Kind.FIELD: {\n if (node.name.value.startsWith('__') || !node.selectionSet) {\n return 0;\n }\n const maxInnerDepth = calculateDepth({\n node: node.selectionSet,\n currentDepth: currentDepth + 1,\n maxDepth,\n getFragment,\n });\n return 1 + maxInnerDepth;\n }\n case Kind.SELECTION_SET: {\n return Math.max(...node.selections.map((selection) => {\n return calculateDepth({\n node: selection,\n currentDepth: currentDepth,\n maxDepth,\n getFragment,\n });\n }));\n }\n case Kind.DOCUMENT: {\n return Math.max(...node.definitions.map((def) => {\n return calculateDepth({\n node: def,\n currentDepth: currentDepth,\n maxDepth,\n getFragment,\n });\n }));\n }\n case Kind.OPERATION_DEFINITION:\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION: {\n return Math.max(...node.selectionSet.selections.map((selection) => {\n return calculateDepth({\n node: selection,\n currentDepth,\n maxDepth,\n getFragment,\n });\n }));\n }\n case Kind.FRAGMENT_SPREAD:\n return calculateDepth({\n node: getFragment(node.name.value),\n currentDepth,\n maxDepth,\n getFragment,\n });\n default: {\n throw new Error(`Couldn't handle ${node.kind}`);\n }\n }\n}\n//# sourceMappingURL=query-depth.js.map","import { visit, parse, extendSchema } from 'graphql';\nimport { removeFieldIfDirectives, removeDirectives } from './graphql';\nexport function transformDocumentWithApollo(doc, { keepClientFields }) {\n return visit(doc, {\n Field(node) {\n return keepClientFields\n ? removeDirectives(node, ['client'])\n : removeFieldIfDirectives(node, ['client']);\n },\n });\n}\nexport function transformSchemaWithApollo(schema) {\n return extendSchema(schema, parse(/* GraphQL */ `\n directive @connection(key: String!, filter: [String]) on FIELD\n `));\n}\n//# sourceMappingURL=apollo.js.map","import { GraphQLError, print, validate as validateDocument, } from 'graphql';\nimport { DepGraph } from 'dependency-graph';\nimport { readDocument } from '../ast/document';\nimport { findDeprecatedUsages } from '../utils/graphql';\nimport { validateQueryDepth } from './query-depth';\nimport { transformSchemaWithApollo, transformDocumentWithApollo, } from '../utils/apollo';\nexport function validate(schema, sources, options) {\n const config = Object.assign({ strictDeprecated: true, strictFragments: true, keepClientFields: false, apollo: false }, options);\n const invalidDocuments = [];\n // read documents\n const documents = sources.map(readDocument);\n // keep all named fragments\n const fragments = [];\n const fragmentNames = [];\n const graph = new DepGraph({ circular: true });\n documents.forEach((doc) => {\n doc.fragments.forEach((fragment) => {\n fragmentNames.push(fragment.node.name.value);\n fragments.push(fragment);\n graph.addNode(fragment.node.name.value, fragment.node);\n });\n });\n fragments.forEach((fragment) => {\n const depends = extractFragments(print(fragment.node));\n if (depends) {\n depends.forEach((name) => {\n graph.addDependency(fragment.node.name.value, name);\n });\n }\n });\n documents\n // since we include fragments, validate only operations\n .filter((doc) => doc.hasOperations)\n .forEach((doc) => {\n const docWithOperations = {\n kind: 'Document',\n definitions: doc.operations.map((d) => d.node),\n };\n const extractedFragments = (extractFragments(print(docWithOperations)) || [])\n // resolve all nested fragments\n .map((fragmentName) => resolveFragment(graph.getNodeData(fragmentName), graph))\n // flatten arrays\n .reduce((list, current) => list.concat(current), [])\n // remove duplicates\n .filter((def, i, all) => all.findIndex((item) => item.name.value === def.name.value) === i);\n const merged = {\n kind: 'Document',\n definitions: [...docWithOperations.definitions, ...extractedFragments],\n };\n let transformedSchema = config.apollo\n ? transformSchemaWithApollo(schema)\n : schema;\n const transformedDoc = config.apollo\n ? transformDocumentWithApollo(merged, {\n keepClientFields: config.keepClientFields,\n })\n : merged;\n const errors = validateDocument(transformedSchema, transformedDoc) || [];\n if (config.maxDepth) {\n const depthError = validateQueryDepth({\n source: doc.source,\n doc: transformedDoc,\n maxDepth: config.maxDepth,\n fragmentGraph: graph,\n });\n if (depthError) {\n errors.push(depthError);\n }\n }\n const deprecated = config.strictDeprecated\n ? findDeprecatedUsages(transformedSchema, transformedDoc)\n : [];\n const duplicatedFragments = config.strictFragments\n ? findDuplicatedFragments(fragmentNames)\n : [];\n if (sumLengths(errors, duplicatedFragments, deprecated) > 0) {\n invalidDocuments.push({\n source: doc.source,\n errors: [...errors, ...duplicatedFragments],\n deprecated,\n });\n }\n });\n return invalidDocuments;\n}\nfunction findDuplicatedFragments(fragmentNames) {\n return fragmentNames\n .filter((name, i, all) => all.indexOf(name) !== i)\n .map((name) => new GraphQLError(`Name of '${name}' fragment is not unique`));\n}\n//\n// PostInfo -> AuthorInfo\n// AuthorInfo -> None\n//\nfunction resolveFragment(fragment, graph) {\n return graph\n .dependenciesOf(fragment.name.value)\n .reduce((list, current) => [\n ...list,\n ...resolveFragment(graph.getNodeData(current), graph),\n ], [fragment]);\n}\nfunction extractFragments(document) {\n return (document.match(/[\\.]{3}[a-z0-9\\_]+\\b/gi) || []).map((name) => name.replace('...', ''));\n}\nfunction sumLengths(...arrays) {\n return arrays.reduce((sum, { length }) => sum + length, 0);\n}\n//# sourceMappingURL=index.js.map","import inspect from 'object-inspect';\nfunction compareTwoStrings(str1, str2) {\n if (!str1.length && !str2.length)\n return 1;\n if (!str1.length || !str2.length)\n return 0;\n if (str1.toUpperCase() === str2.toUpperCase())\n return 1;\n if (str1.length === 1 && str2.length === 1)\n return 0;\n const pairs1 = wordLetterPairs(str1);\n const pairs2 = wordLetterPairs(str2);\n const union = pairs1.length + pairs2.length;\n let intersection = 0;\n pairs1.forEach((pair1) => {\n for (let i = 0, pair2; (pair2 = pairs2[i]); i++) {\n if (pair1 !== pair2)\n continue;\n intersection++;\n pairs2.splice(i, 1);\n break;\n }\n });\n return (intersection * 2) / union;\n}\nexport function findBestMatch(mainString, targetStrings) {\n if (!areArgsValid(mainString, targetStrings))\n throw new Error('Bad arguments: First argument should be a string, second should be an array of strings');\n const ratings = targetStrings.map((target) => ({\n target,\n rating: compareTwoStrings(mainString, target.value),\n }));\n const bestMatch = Array.from(ratings).sort((a, b) => b.rating - a.rating)[0];\n return { ratings, bestMatch };\n}\nfunction flattenDeep(arr) {\n return Array.isArray(arr)\n ? arr.reduce((a, b) => a.concat(flattenDeep(b)), [])\n : [arr];\n}\nfunction areArgsValid(mainString, targetStrings) {\n if (typeof mainString !== 'string')\n return false;\n if (!Array.isArray(targetStrings))\n return false;\n if (!targetStrings.length)\n return false;\n if (targetStrings.find((s) => typeof s.value !== 'string'))\n return false;\n return true;\n}\nfunction letterPairs(str) {\n const pairs = [];\n for (let i = 0, max = str.length - 1; i < max; i++)\n pairs[i] = str.substring(i, i + 2);\n return pairs;\n}\nfunction wordLetterPairs(str) {\n const pairs = str.toUpperCase().split(' ').map(letterPairs);\n return flattenDeep(pairs);\n}\nexport function safeString(obj) {\n if (obj != null && typeof obj.toString === 'function') {\n return `${obj}`;\n }\n return inspect(obj);\n}\n//# sourceMappingURL=string.js.map","import { printType } from 'graphql';\nimport { isPrimitive, isForIntrospection } from '../utils/graphql';\nimport { findBestMatch } from '../utils/string';\nexport function similar(schema, typeName, threshold = 0.4) {\n const typeMap = schema.getTypeMap();\n const targets = Object.keys(schema.getTypeMap())\n .filter((name) => !isPrimitive(name) && !isForIntrospection(name))\n .map((name) => ({\n typeId: name,\n value: stripType(typeMap[name]),\n }));\n const results = {};\n if (typeof typeName !== 'undefined' &&\n !targets.some((t) => t.typeId === typeName)) {\n throw new Error(`Type '${typeName}' doesn't exist`);\n }\n (typeName ? [{ typeId: typeName, value: '' }] : targets).forEach((source) => {\n const sourceType = schema.getType(source.typeId);\n const matchWith = targets.filter((target) => schema.getType(target.typeId).astNode.kind ===\n sourceType.astNode.kind && target.typeId !== source.typeId);\n if (matchWith.length > 0) {\n const found = similarTo(sourceType, matchWith, threshold);\n if (found) {\n results[source.typeId] = found;\n }\n }\n });\n return results;\n}\nfunction similarTo(type, targets, threshold) {\n const types = targets.filter((target) => target.typeId !== type.name);\n const result = findBestMatch(stripType(type), types);\n if (result.bestMatch.rating < threshold) {\n return;\n }\n return {\n bestMatch: result.bestMatch,\n ratings: result.ratings\n .filter((r) => r.rating >= threshold && r.target !== result.bestMatch.target)\n .sort((a, b) => a.rating - b.rating)\n .reverse(),\n };\n}\nfunction stripType(type) {\n return printType(type)\n .trim()\n .replace(/^[a-z]+ [^\\{]+\\{/g, '')\n .replace(/\\}$/g, '')\n .trim()\n .split('\\n')\n .map((s) => s.trim())\n .sort((a, b) => a.localeCompare(b))\n .join(' ');\n}\n//# sourceMappingURL=index.js.map","import { isInterfaceType, isObjectType, visit, visitWithTypeInfo, TypeInfo, } from 'graphql';\nimport { readDocument } from '../ast/document';\nimport { isForIntrospection, isPrimitive } from '../utils/graphql';\nexport function coverage(schema, sources) {\n const coverage = {\n sources,\n types: {},\n };\n const typeMap = schema.getTypeMap();\n const typeInfo = new TypeInfo(schema);\n const visitor = (source) => ({\n Field(node) {\n const fieldDef = typeInfo.getFieldDef();\n const parent = typeInfo.getParentType();\n if (parent &&\n parent.name &&\n !isForIntrospection(parent.name) &&\n fieldDef &&\n fieldDef.name &&\n fieldDef.name !== '__typename' &&\n fieldDef.name !== '__schema') {\n const sourceName = source.name;\n const typeCoverage = coverage.types[parent.name];\n const fieldCoverage = typeCoverage.children[fieldDef.name];\n const locations = fieldCoverage.locations[sourceName];\n typeCoverage.hits++;\n fieldCoverage.hits++;\n if (node.loc) {\n fieldCoverage.locations[sourceName] = [\n node.loc,\n ...(locations || []),\n ];\n }\n if (node.arguments) {\n for (const argNode of node.arguments) {\n const argCoverage = fieldCoverage.children[argNode.name.value];\n argCoverage.hits++;\n if (argNode.loc) {\n argCoverage.locations[sourceName] = [\n argNode.loc,\n ...(argCoverage.locations[sourceName] || []),\n ];\n }\n }\n }\n }\n },\n });\n for (const typename in typeMap) {\n if (!isForIntrospection(typename) && !isPrimitive(typename)) {\n const type = typeMap[typename];\n if (isObjectType(type) || isInterfaceType(type)) {\n const typeCoverage = {\n hits: 0,\n type,\n children: {},\n };\n const fieldMap = type.getFields();\n for (const fieldname in fieldMap) {\n const field = fieldMap[fieldname];\n typeCoverage.children[field.name] = {\n hits: 0,\n locations: {},\n children: {},\n };\n for (const arg of field.args) {\n typeCoverage.children[field.name].children[arg.name] = {\n hits: 0,\n locations: {},\n };\n }\n }\n coverage.types[type.name] = typeCoverage;\n }\n }\n }\n const documents = coverage.sources.map(readDocument);\n documents.forEach((doc, i) => {\n const source = coverage.sources[i];\n doc.operations.forEach((op) => {\n visit(op.node, visitWithTypeInfo(typeInfo, visitor(source)));\n });\n doc.fragments.forEach((fr) => {\n visit(fr.node, visitWithTypeInfo(typeInfo, visitor(source)));\n });\n });\n return coverage;\n}\n//# sourceMappingURL=index.js.map"],"names":["isWrappingType","isNonNullType","isListType","Kind","TypeInfo","visit","visitWithTypeInfo","GraphQLError","getNamedType","ChangeType","CriticalityLevel","isInterfaceType","isEnumType","isUnionType","isInputObjectType","isObjectType","isScalarType","parse","extendSchema","DepGraph","print","validateDocument","printType"],"mappings":";;;;;;;;AAAO,SAAS,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;AACpC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;AACtC,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAChC,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,CAAC;AACM,SAAS,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE;AAC9B,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC9C,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;AACjC,YAAY,OAAO,KAAK,CAAC;AACzB,QAAQ,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACvD,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC;AACM,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE;AACjC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AACM,SAAS,MAAM,CAAC,CAAC,EAAE;AAC1B,IAAI,OAAO,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC;AAClD,CAAC;AACM,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE;AACjC,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAIM,SAAS,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;AAC1D,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;AACvD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;AACvD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;AACrB,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE;AACnC,QAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7C,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE;AACnC,YAAY,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,SAAS;AACT,aAAa;AACb,YAAY,MAAM,CAAC,IAAI,CAAC;AACxB,gBAAgB,UAAU,EAAE,OAAO;AACnC,gBAAgB,UAAU,EAAE,OAAO;AACnC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK;AACL,IAAI,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE;AACnC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AAChD,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChC,SAAS;AACT,KAAK;AACL,IAAI,IAAI,SAAS,EAAE;AACnB,QAAQ,IAAI,SAAS,CAAC,OAAO,EAAE;AAC/B,YAAY,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC7C,SAAS;AACT,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE;AACjC,YAAY,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACjD,SAAS;AACT,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE;AAChC,YAAY,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC/C,SAAS;AACT,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,QAAQ,MAAM;AACd,KAAK,CAAC;AACN;;ACrEO,SAAS,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE;AACrD,IAAI,IAAI,CAACA,sBAAc,CAAC,OAAO,CAAC,IAAI,CAACA,sBAAc,CAAC,OAAO,CAAC,EAAE;AAC9D,QAAQ,OAAO,OAAO,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;AACzD,KAAK;AACL,IAAI,IAAIC,qBAAa,CAAC,OAAO,CAAC,EAAE;AAChC,QAAQ,MAAM,MAAM,GAAGA,qBAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;AACzE,QAAQ,OAAO,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC1D,KAAK;AACL,IAAI,IAAIC,kBAAU,CAAC,OAAO,CAAC,EAAE;AAC7B,QAAQ,QAAQ,CAACA,kBAAU,CAAC,OAAO,CAAC;AACpC,YAAY,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;AAC9D,aAAaD,qBAAa,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE;AACrF,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACM,SAAS,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE;AAC1D,IAAI,IAAI,CAACD,sBAAc,CAAC,OAAO,CAAC,IAAI,CAACA,sBAAc,CAAC,OAAO,CAAC,EAAE;AAC9D,QAAQ,OAAO,OAAO,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;AACzD,KAAK;AACL,IAAI,IAAIE,kBAAU,CAAC,OAAO,CAAC,IAAIA,kBAAU,CAAC,OAAO,CAAC,EAAE;AACpD,QAAQ,OAAO,uBAAuB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACvE,KAAK;AACL,IAAI,IAAID,qBAAa,CAAC,OAAO,CAAC,EAAE;AAChC,QAAQ,MAAM,MAAM,GAAGA,qBAAa,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;AAClE,QAAQ,OAAO,uBAAuB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACM,SAAS,OAAO,CAAC,IAAI,EAAE;AAC9B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;AAC9B,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;AACrC,CAAC;AACM,SAAS,aAAa,CAAC,IAAI,EAAE;AACpC,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,CAACE,YAAI,CAAC,sBAAsB,GAAG,QAAQ;AAC/C,QAAQ,CAACA,YAAI,CAAC,sBAAsB,GAAG,MAAM;AAC7C,QAAQ,CAACA,YAAI,CAAC,yBAAyB,GAAG,WAAW;AACrD,QAAQ,CAACA,YAAI,CAAC,qBAAqB,GAAG,OAAO;AAC7C,QAAQ,CAACA,YAAI,CAAC,oBAAoB,GAAG,MAAM;AAC3C,QAAQ,CAACA,YAAI,CAAC,4BAA4B,GAAG,OAAO;AACpD,KAAK,CAAC;AACN,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AACM,SAAS,WAAW,CAAC,IAAI,EAAE;AAClC,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACrH,CAAC;AACM,SAAS,kBAAkB,CAAC,IAAI,EAAE;AACzC,IAAI,QAAQ;AACZ,QAAQ,UAAU;AAClB,QAAQ,QAAQ;AAChB,QAAQ,YAAY;AACpB,QAAQ,SAAS;AACjB,QAAQ,cAAc;AACtB,QAAQ,aAAa;AACrB,QAAQ,aAAa;AACrB,QAAQ,qBAAqB;AAC7B,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACnE,CAAC;AACM,SAAS,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE;AAClD,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,MAAM,QAAQ,GAAG,IAAIC,gBAAQ,CAAC,MAAM,CAAC,CAAC;AAC1C,IAAIC,aAAK,CAAC,GAAG,EAAEC,yBAAiB,CAAC,QAAQ,EAAE;AAC3C,QAAQ,QAAQ,CAAC,IAAI,EAAE;AACvB,YAAY,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AACpD,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC;AAC1D,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC5D,oBAAoB,IAAI,QAAQ,EAAE;AAClC,wBAAwB,MAAM,CAAC,IAAI,CAAC,IAAIC,oBAAY,CAAC,CAAC,cAAc,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpM,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,KAAK,CAAC,IAAI,EAAE;AACpB,YAAY,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AACpD,YAAY,IAAI,QAAQ,IAAI,QAAQ,CAAC,YAAY,EAAE;AACnD,gBAAgB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;AAC5D,gBAAgB,IAAI,UAAU,EAAE;AAChC,oBAAoB,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC;AAC9D,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAIA,oBAAY,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzJ,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,SAAS,CAAC,IAAI,EAAE;AACxB,YAAY,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;AACpD,YAAY,IAAI,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE;AACjD,gBAAgB,MAAM,IAAI,GAAGC,oBAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;AACnE,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;AAC7D,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAID,oBAAY,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvJ,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACM,SAAS,uBAAuB,CAAC,IAAI,EAAE,cAAc,EAAE;AAC9D,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACtF,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACM,SAAS,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE;AACvD,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClJ,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB;;AC/GA,CAAC,UAAU,UAAU,EAAE;AACvB;AACA,IAAI,UAAU,CAAC,iCAAiC,CAAC,GAAG,oCAAoC,CAAC;AACzF,IAAI,UAAU,CAAC,6BAA6B,CAAC,GAAG,gCAAgC,CAAC;AACjF,IAAI,UAAU,CAAC,0BAA0B,CAAC,GAAG,6BAA6B,CAAC;AAC3E;AACA,IAAI,UAAU,CAAC,kBAAkB,CAAC,GAAG,mBAAmB,CAAC;AACzD,IAAI,UAAU,CAAC,gBAAgB,CAAC,GAAG,iBAAiB,CAAC;AACrD,IAAI,UAAU,CAAC,6BAA6B,CAAC,GAAG,+BAA+B,CAAC;AAChF,IAAI,UAAU,CAAC,wBAAwB,CAAC,GAAG,0BAA0B,CAAC;AACtE,IAAI,UAAU,CAAC,0BAA0B,CAAC,GAAG,4BAA4B,CAAC;AAC1E,IAAI,UAAU,CAAC,wBAAwB,CAAC,GAAG,0BAA0B,CAAC;AACtE,IAAI,UAAU,CAAC,0BAA0B,CAAC,GAAG,4BAA4B,CAAC;AAC1E,IAAI,UAAU,CAAC,qCAAqC,CAAC,GAAG,wCAAwC,CAAC;AACjG,IAAI,UAAU,CAAC,sCAAsC,CAAC,GAAG,0CAA0C,CAAC;AACpG,IAAI,UAAU,CAAC,8BAA8B,CAAC,GAAG,iCAAiC,CAAC;AACnF;AACA,IAAI,UAAU,CAAC,kBAAkB,CAAC,GAAG,oBAAoB,CAAC;AAC1D,IAAI,UAAU,CAAC,gBAAgB,CAAC,GAAG,kBAAkB,CAAC;AACtD,IAAI,UAAU,CAAC,6BAA6B,CAAC,GAAG,gCAAgC,CAAC;AACjF,IAAI,UAAU,CAAC,mCAAmC,CAAC,GAAG,uCAAuC,CAAC;AAC9F,IAAI,UAAU,CAAC,iCAAiC,CAAC,GAAG,qCAAqC,CAAC;AAC1F,IAAI,UAAU,CAAC,mCAAmC,CAAC,GAAG,uCAAuC,CAAC;AAC9F;AACA,IAAI,UAAU,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC;AACjD,IAAI,UAAU,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC;AAC7C,IAAI,UAAU,CAAC,yBAAyB,CAAC,GAAG,2BAA2B,CAAC;AACxE,IAAI,UAAU,CAAC,uBAAuB,CAAC,GAAG,yBAAyB,CAAC;AACpE,IAAI,UAAU,CAAC,yBAAyB,CAAC,GAAG,2BAA2B,CAAC;AACxE,IAAI,UAAU,CAAC,uBAAuB,CAAC,GAAG,yBAAyB,CAAC;AACpE,IAAI,UAAU,CAAC,yBAAyB,CAAC,GAAG,2BAA2B,CAAC;AACxE,IAAI,UAAU,CAAC,+BAA+B,CAAC,GAAG,kCAAkC,CAAC;AACrF,IAAI,UAAU,CAAC,6BAA6B,CAAC,GAAG,gCAAgC,CAAC;AACjF,IAAI,UAAU,CAAC,+BAA+B,CAAC,GAAG,kCAAkC,CAAC;AACrF,IAAI,UAAU,CAAC,kBAAkB,CAAC,GAAG,oBAAoB,CAAC;AAC1D,IAAI,UAAU,CAAC,oBAAoB,CAAC,GAAG,sBAAsB,CAAC;AAC9D,IAAI,UAAU,CAAC,sBAAsB,CAAC,GAAG,wBAAwB,CAAC;AAClE;AACA,IAAI,UAAU,CAAC,mBAAmB,CAAC,GAAG,qBAAqB,CAAC;AAC5D,IAAI,UAAU,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC;AACxD,IAAI,UAAU,CAAC,4BAA4B,CAAC,GAAG,+BAA+B,CAAC;AAC/E,IAAI,UAAU,CAAC,8BAA8B,CAAC,GAAG,iCAAiC,CAAC;AACnF,IAAI,UAAU,CAAC,8BAA8B,CAAC,GAAG,iCAAiC,CAAC;AACnF,IAAI,UAAU,CAAC,+BAA+B,CAAC,GAAG,mCAAmC,CAAC;AACtF,IAAI,UAAU,CAAC,uBAAuB,CAAC,GAAG,0BAA0B,CAAC;AACrE;AACA,IAAI,UAAU,CAAC,0BAA0B,CAAC,GAAG,6BAA6B,CAAC;AAC3E,IAAI,UAAU,CAAC,4BAA4B,CAAC,GAAG,+BAA+B,CAAC;AAC/E;AACA,IAAI,UAAU,CAAC,wBAAwB,CAAC,GAAG,2BAA2B,CAAC;AACvE,IAAI,UAAU,CAAC,2BAA2B,CAAC,GAAG,8BAA8B,CAAC;AAC7E,IAAI,UAAU,CAAC,+BAA+B,CAAC,GAAG,kCAAkC,CAAC;AACrF;AACA,IAAI,UAAU,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC;AAC/C,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC;AAC3C,IAAI,UAAU,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC;AACxD,IAAI,UAAU,CAAC,wBAAwB,CAAC,GAAG,0BAA0B,CAAC;AACtE;AACA,IAAI,UAAU,CAAC,wBAAwB,CAAC,GAAG,0BAA0B,CAAC;AACtE;AACA,IAAI,UAAU,CAAC,sBAAsB,CAAC,GAAG,wBAAwB,CAAC;AAClE;AACA,IAAI,UAAU,CAAC,oBAAoB,CAAC,GAAG,sBAAsB,CAAC;AAC9D,IAAI,UAAU,CAAC,kBAAkB,CAAC,GAAG,oBAAoB,CAAC;AAC1D,CAAC,EAAEE,kBAAU,KAAKA,kBAAU,GAAG,EAAE,CAAC,CAAC,CAAC;AAEpC,CAAC,UAAU,gBAAgB,EAAE;AAC7B,IAAI,gBAAgB,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;AAC9C,IAAI,gBAAgB,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC;AACrD,IAAI,gBAAgB,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AAChD,CAAC,EAAEC,wBAAgB,KAAKA,wBAAgB,GAAG,EAAE,CAAC,CAAC;;ACtExC,SAAS,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE;AAC7D,IAAI,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,SAAS,CAAC;AACvE,IAAI,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,SAAS,CAAC;AACvE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEA,wBAAgB,CAAC,QAAQ;AAC5C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,sBAAsB;AAC/C,QAAQ,OAAO,EAAE,CAAC,oCAAoC,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAClF,KAAK,CAAC;AACN,CAAC;AACM,SAAS,yBAAyB,CAAC,SAAS,EAAE,SAAS,EAAE;AAChE,IAAI,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,SAAS,CAAC;AAC1E,IAAI,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,SAAS,CAAC;AAC1E,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,QAAQ;AAC5C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,yBAAyB;AAClD,QAAQ,OAAO,EAAE,CAAC,uCAAuC,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACrF,KAAK,CAAC;AACN,CAAC;AACM,SAAS,6BAA6B,CAAC,SAAS,EAAE,SAAS,EAAE;AACpE,IAAI,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,SAAS,CAAC;AAC9E,IAAI,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,SAAS,CAAC;AAC9E,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,QAAQ;AAC5C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,6BAA6B;AACtD,QAAQ,OAAO,EAAE,CAAC,2CAA2C,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACzF,KAAK,CAAC;AACN;;AC/BO,SAAS,WAAW,CAAC,IAAI,EAAE;AAClC,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,QAAQ;AAC5C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,WAAW;AACpC,QAAQ,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AAClD,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;AACvB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,SAAS,CAAC,IAAI,EAAE;AAChC,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,SAAS;AAClC,QAAQ,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAChD,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;AACvB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE;AAClD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,QAAQ;AAC5C,YAAY,MAAM,EAAE,CAAC,oNAAoN,CAAC;AAC1O,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,eAAe;AACxC,QAAQ,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrG,QAAQ,IAAI,EAAE,OAAO,CAAC,IAAI;AAC1B,KAAK,CAAC;AACN,CAAC;AACM,SAAS,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE;AACzD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,sBAAsB;AAC/C,QAAQ,OAAO,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AACzH,QAAQ,IAAI,EAAE,OAAO,CAAC,IAAI;AAC1B,KAAK,CAAC;AACN,CAAC;AACM,SAAS,sBAAsB,CAAC,IAAI,EAAE;AAC7C,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,sBAAsB;AAC/C,QAAQ,OAAO,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,gCAAgC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChG,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;AACvB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,oBAAoB,CAAC,IAAI,EAAE;AAC3C,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,oBAAoB;AAC7C,QAAQ,OAAO,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACnF,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;AACvB,KAAK,CAAC;AACN;;AC3DO,SAAS,gBAAgB,CAAC,SAAS,EAAE;AAC5C,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,QAAQ;AAC5C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,gBAAgB;AACzC,QAAQ,OAAO,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;AAC5D,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK,CAAC;AACN,CAAC;AACM,SAAS,cAAc,CAAC,SAAS,EAAE;AAC1C,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,cAAc;AACvC,QAAQ,OAAO,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;AAC1D,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK,CAAC;AACN,CAAC;AACM,SAAS,2BAA2B,CAAC,YAAY,EAAE,YAAY,EAAE;AACxE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,2BAA2B;AACpD,QAAQ,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,4BAA4B,EAAE,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3I,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;AACrC,KAAK,CAAC;AACN,CAAC;AACM,SAAS,sBAAsB,CAAC,SAAS,EAAE,QAAQ,EAAE;AAC5D,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,sBAAsB;AAC/C,QAAQ,OAAO,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,0BAA0B,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACpF,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK,CAAC;AACN,CAAC;AACM,SAAS,wBAAwB,CAAC,SAAS,EAAE,QAAQ,EAAE;AAC9D,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,QAAQ;AAC5C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,wBAAwB;AACjD,QAAQ,OAAO,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,8BAA8B,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACxF,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK,CAAC;AACN,CAAC;AACM,SAAS,sBAAsB,CAAC,SAAS,EAAE,GAAG,EAAE;AACvD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAER,qBAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1C,kBAAkBS,wBAAgB,CAAC,QAAQ;AAC3C,kBAAkBA,wBAAgB,CAAC,WAAW;AAC9C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,sBAAsB;AAC/C,QAAQ,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACpF,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK,CAAC;AACN,CAAC;AACM,SAAS,wBAAwB,CAAC,SAAS,EAAE,GAAG,EAAE;AACzD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,QAAQ;AAC5C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,wBAAwB;AACjD,QAAQ,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACxF,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9C,KAAK,CAAC;AACN,CAAC;AACM,SAAS,mCAAmC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;AAC/E,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,mCAAmC;AAC5D,QAAQ,OAAO,EAAE,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7J,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACjD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,oCAAoC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;AAChF,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,SAAS;AAC7C,YAAY,MAAM,EAAE,kHAAkH;AACtI,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,oCAAoC;AAC7D,QAAQ,OAAO,EAAE,OAAO,MAAM,CAAC,YAAY,KAAK,WAAW;AAC3D,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9H,cAAc,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9J,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACjD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;AACxE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;AACtE,cAAc;AACd,gBAAgB,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AACnD,gBAAgB,MAAM,EAAE,2EAA2E;AACnG,aAAa;AACb,cAAc;AACd,gBAAgB,KAAK,EAAEA,wBAAgB,CAAC,QAAQ;AAChD,aAAa;AACb,QAAQ,IAAI,EAAED,kBAAU,CAAC,4BAA4B;AACrD,QAAQ,OAAO,EAAE,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxI,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACjD,KAAK,CAAC;AACN;;AC/GO,SAAS,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE;AACjD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,QAAQ;AAC5C,YAAY,MAAM,EAAE,CAAC,qFAAqF,CAAC;AAC3G,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,gBAAgB;AACzC,QAAQ,OAAO,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,GAAG,eAAe,GAAG,EAAE,CAAC,uBAAuB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACjI,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAClD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE;AAC/C,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,SAAS;AAC7C,YAAY,MAAM,EAAE,CAAC,kIAAkI,CAAC;AACxJ,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,cAAc;AACvC,QAAQ,OAAO,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAClD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACzE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,2BAA2B;AACpD,QAAQ,OAAO,EAAE,OAAO,QAAQ,CAAC,WAAW,KAAK,WAAW;AAC5D,cAAc,CAAC,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC,2BAA2B,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAChH,cAAc,CAAC,4BAA4B,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AACjJ,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACrD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,iCAAiC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC/E,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,iCAAiC;AAC1D,QAAQ,OAAO,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,mCAAmC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACnK,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACrD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,+BAA+B,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC7E,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,+BAA+B;AACxD,QAAQ,OAAO,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,8BAA8B,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC3H,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACrD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,iCAAiC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC/E,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,iCAAiC;AAC1D,QAAQ,OAAO,EAAE,CAAC,gDAAgD,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACpG,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACrD,KAAK,CAAC;AACN;;AC7DO,SAAS,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;AAC3D,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE;AAC3D,QAAQ,OAAO,CAAC,KAAK,EAAE;AACvB,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,SAAS;AACT,QAAQ,SAAS,CAAC,KAAK,EAAE;AACzB,YAAY,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,SAAS;AACT,QAAQ,QAAQ,CAAC,KAAK,EAAE;AACxB,YAAY,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC;AAC9C,YAAY,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC;AAC9C,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE;AACxE,gBAAgB,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpF,aAAa;AACb,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AACpF,gBAAgB,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AACxD,oBAAoB,SAAS,CAAC,+BAA+B,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5F,iBAAiB;AACjB,qBAAqB,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC7D,oBAAoB,SAAS,CAAC,iCAAiC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9F,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,SAAS,CAAC,iCAAiC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9F,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC,CAAC;AACP;;AC7BO,SAAS,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE;AAChD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,QAAQ;AAC5C,YAAY,MAAM,EAAE,2HAA2H;AAC/I,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,kBAAkB;AAC3C,QAAQ,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACpF,QAAQ,IAAI,EAAE,KAAK,CAAC,IAAI;AACxB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE;AAC9C,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,SAAS;AAC7C,YAAY,MAAM,EAAE,gIAAgI;AACpJ,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,gBAAgB;AACzC,QAAQ,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF,QAAQ,IAAI,EAAE,KAAK,CAAC,IAAI;AACxB,KAAK,CAAC;AACN;;ACpBO,SAAS,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC9D,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;AACzC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;AACzC,IAAI,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE;AACrC,QAAQ,OAAO,CAAC,CAAC,EAAE;AACnB,YAAY,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AACrD,SAAS;AACT,QAAQ,SAAS,CAAC,CAAC,EAAE;AACrB,YAAY,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AACvD,SAAS;AACT,KAAK,CAAC,CAAC;AACP;;ACVO,SAAS,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE;AAChD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,QAAQ;AAC5C,YAAY,MAAM,EAAE,yFAAyF;AAC7G,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,iBAAiB;AAC1C,QAAQ,OAAO,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACjG,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAChD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE;AAC9C,IAAI,OAAO;AACX,QAAQ,WAAW,EAAER,qBAAa,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9C,cAAc;AACd,gBAAgB,KAAK,EAAES,wBAAgB,CAAC,QAAQ;AAChD,gBAAgB,MAAM,EAAE,6JAA6J;AACrL,aAAa;AACb,cAAc;AACd,gBAAgB,KAAK,EAAEA,wBAAgB,CAAC,SAAS;AACjD,aAAa;AACb,QAAQ,IAAI,EAAED,kBAAU,CAAC,eAAe;AACxC,QAAQ,OAAO,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7F,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAChD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,0BAA0B,CAAC,IAAI,EAAE,KAAK,EAAE;AACxD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,0BAA0B;AACnD,QAAQ,OAAO,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAClG,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C,KAAK,CAAC;AACN,CAAC;AACM,SAAS,4BAA4B,CAAC,IAAI,EAAE,KAAK,EAAE;AAC1D,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,4BAA4B;AACrD,QAAQ,OAAO,EAAE,CAAC,0CAA0C,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACxF,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C,KAAK,CAAC;AACN,CAAC;AACM,SAAS,4BAA4B,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACxE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,4BAA4B;AACrD,QAAQ,OAAO,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AAC/I,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACnD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACzE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,SAAS;AAC7C,YAAY,MAAM,EAAE,kHAAkH;AACtI,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,6BAA6B;AACtD,QAAQ,OAAO,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,8BAA8B,EAAE,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AACnJ,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACnD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACjE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE,uBAAuB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;AAC1E,cAAc;AACd,gBAAgB,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AACnD,gBAAgB,MAAM,EAAE,2EAA2E;AACnG,aAAa;AACb,cAAc;AACd,gBAAgB,KAAK,EAAEA,wBAAgB,CAAC,QAAQ;AAChD,gBAAgB,MAAM,EAAE,8FAA8F;AACtH,aAAa;AACb,QAAQ,IAAI,EAAED,kBAAU,CAAC,qBAAqB;AAC9C,QAAQ,OAAO,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAChJ,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACnD,KAAK,CAAC;AACN;;AClFO,SAAS,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE;AACpE,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;AAC3C,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;AAC3C,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACrE,QAAQ,OAAO,CAAC,KAAK,EAAE;AACvB,YAAY,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,SAAS;AACT,QAAQ,SAAS,CAAC,KAAK,EAAE;AACzB,YAAY,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1D,SAAS;AACT,QAAQ,QAAQ,CAAC,KAAK,EAAE;AACxB,YAAY,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACzF,SAAS;AACT,KAAK,CAAC,CAAC;AACP,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnE,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE;AAChE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC1C,YAAY,SAAS,CAAC,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AACnE,SAAS;AACT,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC/C,YAAY,SAAS,CAAC,4BAA4B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrE,SAAS;AACT,aAAa;AACb,YAAY,SAAS,CAAC,4BAA4B,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/E,SAAS;AACT,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;AAClE,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;AAChD,YAAY,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AAClD,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACrF,gBAAgB,SAAS,CAAC,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpF,aAAa;AACb,SAAS;AACT,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;AACtD,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AACnD,YAAY,SAAS,CAAC,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAChF,SAAS;AACT,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;AACxE,QAAQ,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpE,KAAK;AACL;;AC5CO,SAAS,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE;AACtD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,SAAS;AAC7C,YAAY,MAAM,EAAE,qIAAqI;AACzJ,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,wBAAwB;AACjD,QAAQ,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;AAC7E,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;AACvB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE;AACxD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,QAAQ;AAC5C,YAAY,MAAM,EAAE,mHAAmH;AACvI,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,0BAA0B;AACnD,QAAQ,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;AAC5F,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;AACvB,KAAK,CAAC;AACN;;ACnBO,SAAS,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;AAC1C,IAAI,MAAM,MAAM,GAAGE,uBAAe,CAAC,IAAI,CAAC,GAAG,WAAW,GAAG,aAAa,CAAC;AACvE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAED,wBAAgB,CAAC,QAAQ;AAC5C,YAAY,MAAM,EAAE,KAAK,CAAC,iBAAiB;AAC3C,kBAAkB,CAAC,wJAAwJ,CAAC;AAC5K,kBAAkB,CAAC,kGAAkG,CAAC;AACtH,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,YAAY;AACrC,QAAQ,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,GAAG,eAAe,GAAG,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9H,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C,KAAK,CAAC;AACN,CAAC;AACM,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE;AACxC,IAAI,MAAM,MAAM,GAAGE,uBAAe,CAAC,IAAI,CAAC,GAAG,WAAW,GAAG,aAAa,CAAC;AACvE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAED,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,UAAU;AACnC,QAAQ,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9E,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C,KAAK,CAAC;AACN,CAAC;AACM,SAAS,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAClE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,uBAAuB;AAChD,QAAQ,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AACxI,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAClD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE;AACnD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,qBAAqB;AAC9C,QAAQ,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5F,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C,KAAK,CAAC;AACN,CAAC;AACM,SAAS,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE;AACrD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,uBAAuB;AAChD,QAAQ,OAAO,EAAE,CAAC,oCAAoC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAClF,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C,KAAK,CAAC;AACN,CAAC;AACM,SAAS,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE;AACnD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,qBAAqB;AAC9C,QAAQ,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;AACnE,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C,KAAK,CAAC;AACN,CAAC;AACM,SAAS,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE;AACrD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,SAAS;AAC7C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,uBAAuB;AAChD,QAAQ,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;AAC7E,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C,KAAK,CAAC;AACN,CAAC;AACM,SAAS,6BAA6B,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACxE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,6BAA6B;AACtD,QAAQ,OAAO,EAAE,CAAC,6BAA6B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAClK,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAClD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,2BAA2B,CAAC,IAAI,EAAE,KAAK,EAAE;AACzD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,2BAA2B;AACpD,QAAQ,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACzG,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C,KAAK,CAAC;AACN,CAAC;AACM,SAAS,6BAA6B,CAAC,IAAI,EAAE,KAAK,EAAE;AAC3D,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,6BAA6B;AACtD,QAAQ,OAAO,EAAE,CAAC,2CAA2C,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACzF,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C,KAAK,CAAC;AACN,CAAC;AACM,SAAS,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC3D,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;AACnE,kBAAkBC,wBAAgB,CAAC,WAAW;AAC9C,kBAAkBA,wBAAgB,CAAC,QAAQ;AAC3C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,gBAAgB;AACzC,QAAQ,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9G,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAClD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;AACrD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAER,qBAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5C,cAAc;AACd,gBAAgB,KAAK,EAAES,wBAAgB,CAAC,QAAQ;AAChD,gBAAgB,MAAM,EAAE,CAAC,gIAAgI,CAAC;AAC1J,aAAa;AACb,cAAc;AACd,gBAAgB,KAAK,EAAEA,wBAAgB,CAAC,SAAS;AACjD,gBAAgB,MAAM,EAAE,CAAC,uIAAuI,CAAC;AACjK,aAAa;AACb,QAAQ,IAAI,EAAED,kBAAU,CAAC,kBAAkB;AAC3C,QAAQ,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAClG,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACzD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;AACvD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,QAAQ;AAC5C,YAAY,MAAM,EAAE,CAAC,sHAAsH,CAAC;AAC5I,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,oBAAoB;AAC7C,QAAQ,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1G,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACzD,KAAK,CAAC;AACN;;AChJO,SAAS,+BAA+B,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;AAC7E,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AAC/C,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,+BAA+B;AACxD,QAAQ,OAAO,EAAE,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAClK,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5D,KAAK,CAAC;AACN,CAAC;AACM,SAAS,2BAA2B,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;AACzE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,KAAK,EAAEC,wBAAgB,CAAC,SAAS;AAC7C,YAAY,MAAM,EAAE,kHAAkH;AACtI,SAAS;AACT,QAAQ,IAAI,EAAED,kBAAU,CAAC,2BAA2B;AACpD,QAAQ,OAAO,EAAE,OAAO,MAAM,CAAC,YAAY,KAAK,WAAW;AAC3D,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACnI,cAAc,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AACnK,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5D,KAAK,CAAC;AACN,CAAC;AACM,SAAS,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;AACtE,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;AACtE,cAAc;AACd,gBAAgB,KAAK,EAAEC,wBAAgB,CAAC,WAAW;AACnD,gBAAgB,MAAM,EAAE,CAAC,yEAAyE,CAAC;AACnG,aAAa;AACb,cAAc;AACd,gBAAgB,KAAK,EAAEA,wBAAgB,CAAC,QAAQ;AAChD,gBAAgB,MAAM,EAAE,CAAC,mGAAmG,CAAC;AAC7H,aAAa;AACb,QAAQ,IAAI,EAAED,kBAAU,CAAC,wBAAwB;AACjD,QAAQ,OAAO,EAAE,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7I,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5D,KAAK,CAAC;AACN;;ACtCO,SAAS,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;AAC1E,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;AAC5D,QAAQ,SAAS,CAAC,+BAA+B,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAChF,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE;AAC9D,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;AAC9C,YAAY,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;AAChD,YAAY,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AAC9E,YAAY,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,gBAAgB,SAAS,CAAC,2BAA2B,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACpF,aAAa;AACb,SAAS;AACT,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;AACpD,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;AACjD,YAAY,SAAS,CAAC,2BAA2B,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAChF,SAAS;AACT,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;AACpE,QAAQ,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACzE,KAAK;AACL;;AClBO,SAAS,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE;AACpE,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE;AAChE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC1C,YAAY,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7D,SAAS;AACT,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC/C,YAAY,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/D,SAAS;AACT,aAAa;AACb,YAAY,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzE,SAAS;AACT,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;AAClE,QAAQ,IAAI,QAAQ,CAAC,YAAY,EAAE;AACnC,YAAY,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7D,SAAS;AACT,aAAa;AACb,YAAY,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/D,SAAS;AACT,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC5E,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAChD,YAAY,SAAS,CAAC,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AACnE,SAAS;AACT,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AACrD,YAAY,SAAS,CAAC,6BAA6B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrE,SAAS;AACT,aAAa;AACb,YAAY,SAAS,CAAC,6BAA6B,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/E,SAAS;AACT,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;AACxE,QAAQ,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;AAC/C,QAAQ,OAAO,CAAC,GAAG,EAAE;AACrB,YAAY,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/D,SAAS;AACT,QAAQ,SAAS,CAAC,GAAG,EAAE;AACvB,YAAY,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AACjE,SAAS;AACT,QAAQ,QAAQ,CAAC,GAAG,EAAE;AACtB,YAAY,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACzF,SAAS;AACT,KAAK,CAAC,CAAC;AACP;;AC7CO,SAAS,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;AAC7D,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;AAClD,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;AAClD,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1C,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1C,IAAI,YAAY,CAAC,aAAa,EAAE,aAAa,EAAE;AAC/C,QAAQ,OAAO,CAAC,CAAC,EAAE;AACnB,YAAY,SAAS,CAAC,wBAAwB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5D,SAAS;AACT,QAAQ,SAAS,CAAC,CAAC,EAAE;AACrB,YAAY,SAAS,CAAC,0BAA0B,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9D,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACrE,QAAQ,OAAO,CAAC,CAAC,EAAE;AACnB,YAAY,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,SAAS;AACT,QAAQ,SAAS,CAAC,CAAC,EAAE;AACrB,YAAY,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,SAAS;AACT,QAAQ,QAAQ,CAAC,CAAC,EAAE;AACpB,YAAY,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAC3E,SAAS;AACT,KAAK,CAAC,CAAC;AACP;;ACzBO,SAAS,kBAAkB,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE;AAC1E,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,EAAE;AACnG,QAAQ,OAAO,CAAC,KAAK,EAAE;AACvB,YAAY,SAAS,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AACvD,SAAS;AACT,QAAQ,SAAS,CAAC,KAAK,EAAE;AACzB,YAAY,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AACzD,SAAS;AACT,QAAQ,QAAQ,CAAC,KAAK,EAAE;AACxB,YAAY,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACxF,SAAS;AACT,KAAK,CAAC,CAAC;AACP;;ACZO,SAAS,kBAAkB,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE;AAC1E,IAAI,IAAI,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE;AACxE,QAAQ,SAAS,CAAC,2BAA2B,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;AAC3E,KAAK;AACL,IAAI,MAAM,SAAS,GAAG;AACtB,QAAQ,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;AACzE,QAAQ,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;AAC3E,KAAK,CAAC;AACN;AACA,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrG;AACA,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,wBAAwB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzG,IAAI,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE;AACvD,QAAQ,OAAO,CAAC,GAAG,EAAE;AACrB,YAAY,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;AACjE,SAAS;AACT,QAAQ,SAAS,CAAC,GAAG,EAAE;AACvB,YAAY,SAAS,CAAC,wBAAwB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE,SAAS;AACT,QAAQ,QAAQ,CAAC,GAAG,EAAE;AACtB,YAAY,0BAA0B,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAChG,SAAS;AACT,KAAK,CAAC,CAAC;AACP,CAAC;AACD,SAAS,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;AAC1E,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;AAC5D,QAAQ,SAAS,CAAC,mCAAmC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAClF,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE;AAC9D,QAAQ,SAAS,CAAC,oCAAoC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;AACpE,QAAQ,SAAS,CAAC,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3E,KAAK;AACL;;ACzBO,SAAS,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE;AACjD,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,SAAS,SAAS,CAAC,MAAM,EAAE;AAC/B,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACrD,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7J,QAAQ,OAAO,CAAC,IAAI,EAAE;AACtB,YAAY,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,SAAS;AACT,QAAQ,SAAS,CAAC,IAAI,EAAE;AACxB,YAAY,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC,SAAS;AACT,QAAQ,QAAQ,CAAC,IAAI,EAAE;AACvB,YAAY,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACvE,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,YAAY,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE;AACvE,QAAQ,OAAO,CAAC,SAAS,EAAE;AAC3B,YAAY,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;AACjD,SAAS;AACT,QAAQ,SAAS,CAAC,SAAS,EAAE;AAC7B,YAAY,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD,SAAS;AACT,QAAQ,QAAQ,CAAC,SAAS,EAAE;AAC5B,YAAY,kBAAkB,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACtF,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AACD,SAAS,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;AAC1D,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,KAAK,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,IAAI;AACpD,QAAQ,QAAQ,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,IAAI;AAC1D,QAAQ,YAAY,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE;AAC5D,aAAa,IAAI;AACjB,KAAK,CAAC;AACN,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,KAAK,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,IAAI;AACpD,QAAQ,QAAQ,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,IAAI;AAC1D,QAAQ,YAAY,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE;AAC5D,aAAa,IAAI;AACjB,KAAK,CAAC;AACN,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;AAClD,QAAQ,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;AACxD,QAAQ,SAAS,CAAC,yBAAyB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AACnE,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE;AAChE,QAAQ,SAAS,CAAC,6BAA6B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AACvE,KAAK;AACL,CAAC;AACD,SAAS,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;AACpD,IAAI,IAAIG,kBAAU,CAAC,OAAO,CAAC,IAAIA,kBAAU,CAAC,OAAO,CAAC,EAAE;AACpD,QAAQ,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACnD,KAAK;AACL,SAAS,IAAIC,mBAAW,CAAC,OAAO,CAAC,IAAIA,mBAAW,CAAC,OAAO,CAAC,EAAE;AAC3D,QAAQ,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACpD,KAAK;AACL,SAAS,IAAIC,yBAAiB,CAAC,OAAO,CAAC,IAAIA,yBAAiB,CAAC,OAAO,CAAC,EAAE;AACvE,QAAQ,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAC1D,KAAK;AACL,SAAS,IAAIC,oBAAY,CAAC,OAAO,CAAC,IAAIA,oBAAY,CAAC,OAAO,CAAC,EAAE;AAC7D,QAAQ,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACrD,KAAK;AACL,SAAS,IAAIJ,uBAAe,CAAC,OAAO,CAAC,IAAIA,uBAAe,CAAC,OAAO,CAAC,EAAE;AACnE,QAAQ,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACxD,KAAK;AACL,SAAS,IAAIK,oBAAY,CAAC,OAAO,CAAC,IAAIA,oBAAY,CAAC,OAAO,CAAC,EAAE,CAExD;AACL,SAAS;AACT,QAAQ,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE;AAC9D,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACzC,YAAY,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;AACrD,SAAS;AACT,aAAa,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC9C,YAAY,SAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;AACvD,SAAS;AACT,aAAa;AACb,YAAY,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAChE,SAAS;AACT,KAAK;AACL;;ACjGO,MAAM,iBAAiB,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK;AAClD,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AACnC,QAAQ,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,KAAKN,wBAAgB,CAAC,SAAS,EAAE;AACrE,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAEA,wBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AACzK,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,CAAC,CAAC;AACP,CAAC;;ACRM,SAAS,SAAS,CAAC,IAAI,EAAE;AAChC,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3B;;ACCO,MAAM,gCAAgC,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK;AAC7E,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AACnC,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAKD,kBAAU,CAAC,YAAY;AACnD,YAAY,MAAM,CAAC,WAAW,CAAC,KAAK,KAAKC,wBAAgB,CAAC,QAAQ;AAClE,YAAY,MAAM,CAAC,IAAI,EAAE;AACzB,YAAY,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjE,YAAY,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAY,IAAIK,oBAAY,CAAC,IAAI,CAAC,IAAIJ,uBAAe,CAAC,IAAI,CAAC,EAAE;AAC7D,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;AAC1D,gBAAgB,IAAI,KAAK,CAAC,YAAY,EAAE;AACxC,oBAAoB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAED,wBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAClL,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAKD,kBAAU,CAAC,gBAAgB;AACvD,YAAY,MAAM,CAAC,WAAW,CAAC,KAAK,KAAKC,wBAAgB,CAAC,QAAQ;AAClE,YAAY,MAAM,CAAC,IAAI,EAAE;AACzB,YAAY,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAChE,YAAY,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAY,IAAIE,kBAAU,CAAC,IAAI,CAAC,EAAE;AAClC,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrD,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/C,oBAAoB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAEF,wBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAClL,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,CAAC,CAAC;AACP,CAAC;;AC9BD,MAAM,sBAAsB,GAAG;AAC/B,IAAID,kBAAU,CAAC,+BAA+B;AAC9C,IAAIA,kBAAU,CAAC,2BAA2B;AAC1C,IAAIA,kBAAU,CAAC,mCAAmC;AAClD,IAAIA,kBAAU,CAAC,2BAA2B;AAC1C,IAAIA,kBAAU,CAAC,uBAAuB;AACtC,IAAIA,kBAAU,CAAC,qBAAqB;AACpC,IAAIA,kBAAU,CAAC,uBAAuB;AACtC,IAAIA,kBAAU,CAAC,0BAA0B;AACzC,IAAIA,kBAAU,CAAC,4BAA4B;AAC3C,IAAIA,kBAAU,CAAC,4BAA4B;AAC3C,IAAIA,kBAAU,CAAC,sBAAsB;AACrC,CAAC,CAAC;AACK,MAAM,wBAAwB,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK;AACzD,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;;;;;;;;;ACbW,MAAC,QAAQ,GAAG,MAAM;AAEvB,SAAS,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,EAAE;AACvD,IAAI,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACrD,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;AAC7C,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACjB;;ACXO,SAAS,YAAY,CAAC,MAAM,EAAE;AACrC,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,MAAM;AACd,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,aAAa,EAAE,KAAK;AAC5B,KAAK,CAAC;AACN,IAAI,MAAM,YAAY,GAAGQ,aAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;AACjC,IAAI,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,EAAE,CAAC;AACvD,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAClC,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;AAC/B,YAAY,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACnC,gBAAgB,IAAI;AACpB,gBAAgB,MAAM,EAAE,QAAQ;AAChC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;AACnC,YAAY,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;AAClC,gBAAgB,IAAI;AACpB,gBAAgB,MAAM,EAAE,QAAQ;AAChC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACtD,IAAI,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,IAAI,OAAO,IAAI,CAAC,IAAI,KAAKd,YAAI,CAAC,oBAAoB,CAAC;AACnD,CAAC;AACD,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,IAAI,OAAO,IAAI,CAAC,IAAI,KAAKA,YAAI,CAAC,mBAAmB,CAAC;AAClD;;AClCO,SAAS,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,GAAG,EAAE;AAC9E,IAAI,IAAI;AACR,QAAQ,cAAc,CAAC;AACvB,YAAY,IAAI,EAAE,GAAG;AACrB,YAAY,YAAY,EAAE,CAAC;AAC3B,YAAY,QAAQ;AACpB,YAAY,WAAW,CAAC,IAAI,EAAE;AAC9B,gBAAgB,OAAO,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACvD,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,OAAO,WAAW,EAAE;AACxB,QAAQ,IAAI,WAAW,YAAY,KAAK,EAAE;AAC1C,YAAY,MAAM,WAAW,CAAC;AAC9B,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,WAAW,CAAC;AACjC,QAAQ,OAAO,IAAII,oBAAY,CAAC,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;AACvJ,KAAK;AACL,CAAC;AACM,SAAS,cAAc,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,GAAG,EAAE;AAC/E,IAAI,IAAI,QAAQ,IAAI,YAAY,GAAG,QAAQ,EAAE;AAC7C,QAAQ,MAAM,IAAI,CAAC;AACnB,KAAK;AACL,IAAI,QAAQ,IAAI,CAAC,IAAI;AACrB,QAAQ,KAAKJ,YAAI,CAAC,KAAK,EAAE;AACzB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACxE,gBAAgB,OAAO,CAAC,CAAC;AACzB,aAAa;AACb,YAAY,MAAM,aAAa,GAAG,cAAc,CAAC;AACjD,gBAAgB,IAAI,EAAE,IAAI,CAAC,YAAY;AACvC,gBAAgB,YAAY,EAAE,YAAY,GAAG,CAAC;AAC9C,gBAAgB,QAAQ;AACxB,gBAAgB,WAAW;AAC3B,aAAa,CAAC,CAAC;AACf,YAAY,OAAO,CAAC,GAAG,aAAa,CAAC;AACrC,SAAS;AACT,QAAQ,KAAKA,YAAI,CAAC,aAAa,EAAE;AACjC,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK;AAClE,gBAAgB,OAAO,cAAc,CAAC;AACtC,oBAAoB,IAAI,EAAE,SAAS;AACnC,oBAAoB,YAAY,EAAE,YAAY;AAC9C,oBAAoB,QAAQ;AAC5B,oBAAoB,WAAW;AAC/B,iBAAiB,CAAC,CAAC;AACnB,aAAa,CAAC,CAAC,CAAC;AAChB,SAAS;AACT,QAAQ,KAAKA,YAAI,CAAC,QAAQ,EAAE;AAC5B,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AAC7D,gBAAgB,OAAO,cAAc,CAAC;AACtC,oBAAoB,IAAI,EAAE,GAAG;AAC7B,oBAAoB,YAAY,EAAE,YAAY;AAC9C,oBAAoB,QAAQ;AAC5B,oBAAoB,WAAW;AAC/B,iBAAiB,CAAC,CAAC;AACnB,aAAa,CAAC,CAAC,CAAC;AAChB,SAAS;AACT,QAAQ,KAAKA,YAAI,CAAC,oBAAoB,CAAC;AACvC,QAAQ,KAAKA,YAAI,CAAC,eAAe,CAAC;AAClC,QAAQ,KAAKA,YAAI,CAAC,mBAAmB,EAAE;AACvC,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK;AAC/E,gBAAgB,OAAO,cAAc,CAAC;AACtC,oBAAoB,IAAI,EAAE,SAAS;AACnC,oBAAoB,YAAY;AAChC,oBAAoB,QAAQ;AAC5B,oBAAoB,WAAW;AAC/B,iBAAiB,CAAC,CAAC;AACnB,aAAa,CAAC,CAAC,CAAC;AAChB,SAAS;AACT,QAAQ,KAAKA,YAAI,CAAC,eAAe;AACjC,YAAY,OAAO,cAAc,CAAC;AAClC,gBAAgB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAClD,gBAAgB,YAAY;AAC5B,gBAAgB,QAAQ;AACxB,gBAAgB,WAAW;AAC3B,aAAa,CAAC,CAAC;AACf,QAAQ,SAAS;AACjB,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5D,SAAS;AACT,KAAK;AACL;;AC9EO,SAAS,2BAA2B,CAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,EAAE;AACvE,IAAI,OAAOE,aAAK,CAAC,GAAG,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,EAAE;AACpB,YAAY,OAAO,gBAAgB;AACnC,kBAAkB,gBAAgB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;AACpD,kBAAkB,uBAAuB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5D,SAAS;AACT,KAAK,CAAC,CAAC;AACP,CAAC;AACM,SAAS,yBAAyB,CAAC,MAAM,EAAE;AAClD,IAAI,OAAOa,oBAAY,CAAC,MAAM,EAAED,aAAK,eAAe,CAAC;AACrD;AACA,IAAI,CAAC,CAAC,CAAC,CAAC;AACR;;ACTO,SAAS,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;AACnD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;AACrI,IAAI,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAChC;AACA,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAChD;AACA,IAAI,MAAM,SAAS,GAAG,EAAE,CAAC;AACzB,IAAI,MAAM,aAAa,GAAG,EAAE,CAAC;AAC7B,IAAI,MAAM,KAAK,GAAG,IAAIE,wBAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACnD,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC/B,QAAQ,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AAC5C,YAAY,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,YAAY,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,YAAY,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnE,SAAS,CAAC,CAAC;AACX,KAAK,CAAC,CAAC;AACP,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACpC,QAAQ,MAAM,OAAO,GAAG,gBAAgB,CAACC,aAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACtC,gBAAgB,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpE,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,SAAS;AACb;AACA,SAAS,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,aAAa,CAAC;AAC3C,SAAS,OAAO,CAAC,CAAC,GAAG,KAAK;AAC1B,QAAQ,MAAM,iBAAiB,GAAG;AAClC,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AAC1D,SAAS,CAAC;AACV,QAAQ,MAAM,kBAAkB,GAAG,CAAC,gBAAgB,CAACA,aAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE;AACpF;AACA,aAAa,GAAG,CAAC,CAAC,YAAY,KAAK,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3F;AACA,aAAa,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AAChE;AACA,aAAa,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACxG,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,WAAW,EAAE,CAAC,GAAG,iBAAiB,CAAC,WAAW,EAAE,GAAG,kBAAkB,CAAC;AAClF,SAAS,CAAC;AACV,QAAQ,IAAI,iBAAiB,GAAG,MAAM,CAAC,MAAM;AAC7C,cAAc,yBAAyB,CAAC,MAAM,CAAC;AAC/C,cAAc,MAAM,CAAC;AACrB,QAAQ,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM;AAC5C,cAAc,2BAA2B,CAAC,MAAM,EAAE;AAClD,gBAAgB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;AACzD,aAAa,CAAC;AACd,cAAc,MAAM,CAAC;AACrB,QAAQ,MAAM,MAAM,GAAGC,gBAAgB,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;AACjF,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE;AAC7B,YAAY,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAClD,gBAAgB,MAAM,EAAE,GAAG,CAAC,MAAM;AAClC,gBAAgB,GAAG,EAAE,cAAc;AACnC,gBAAgB,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzC,gBAAgB,aAAa,EAAE,KAAK;AACpC,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxC,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB;AAClD,cAAc,oBAAoB,CAAC,iBAAiB,EAAE,cAAc,CAAC;AACrE,cAAc,EAAE,CAAC;AACjB,QAAQ,MAAM,mBAAmB,GAAG,MAAM,CAAC,eAAe;AAC1D,cAAc,uBAAuB,CAAC,aAAa,CAAC;AACpD,cAAc,EAAE,CAAC;AACjB,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,mBAAmB,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE;AACrE,YAAY,gBAAgB,CAAC,IAAI,CAAC;AAClC,gBAAgB,MAAM,EAAE,GAAG,CAAC,MAAM;AAClC,gBAAgB,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,mBAAmB,CAAC;AAC3D,gBAAgB,UAAU;AAC1B,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AACD,SAAS,uBAAuB,CAAC,aAAa,EAAE;AAChD,IAAI,OAAO,aAAa;AACxB,SAAS,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1D,SAAS,GAAG,CAAC,CAAC,IAAI,KAAK,IAAId,oBAAY,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AACD;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE;AAC1C,IAAI,OAAO,KAAK;AAChB,SAAS,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C,SAAS,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK;AACnC,QAAQ,GAAG,IAAI;AACf,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;AAC7D,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnB,CAAC;AACD,SAAS,gBAAgB,CAAC,QAAQ,EAAE;AACpC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;AACnG,CAAC;AACD,SAAS,UAAU,CAAC,GAAG,MAAM,EAAE;AAC/B,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/D;;AC1GA,SAAS,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE;AACvC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM;AACpC,QAAQ,OAAO,CAAC,CAAC;AACjB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM;AACpC,QAAQ,OAAO,CAAC,CAAC;AACjB,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE;AACjD,QAAQ,OAAO,CAAC,CAAC;AACjB,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAC9C,QAAQ,OAAO,CAAC,CAAC;AACjB,IAAI,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAChD,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC;AACzB,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAC9B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;AACzD,YAAY,IAAI,KAAK,KAAK,KAAK;AAC/B,gBAAgB,SAAS;AACzB,YAAY,YAAY,EAAE,CAAC;AAC3B,YAAY,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,YAAY,MAAM;AAClB,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,IAAI,KAAK,CAAC;AACtC,CAAC;AACM,SAAS,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE;AACzD,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC;AAChD,QAAQ,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;AAClH,IAAI,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM;AACnD,QAAQ,MAAM;AACd,QAAQ,MAAM,EAAE,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC;AAC3D,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,IAAI,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAClC,CAAC;AACD,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAC7B,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC5D,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AACD,SAAS,YAAY,CAAC,UAAU,EAAE,aAAa,EAAE;AACjD,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ;AACtC,QAAQ,OAAO,KAAK,CAAC;AACrB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;AACrC,QAAQ,OAAO,KAAK,CAAC;AACrB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM;AAC7B,QAAQ,OAAO,KAAK,CAAC;AACrB,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;AAC9D,QAAQ,OAAO,KAAK,CAAC;AACrB,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;AACrB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;AACtD,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAChE,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B;;ACzDO,SAAS,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,GAAG,EAAE;AAC3D,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;AACxC,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AACpD,SAAS,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC1E,SAAS,GAAG,CAAC,CAAC,IAAI,MAAM;AACxB,QAAQ,MAAM,EAAE,IAAI;AACpB,QAAQ,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACvC,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW;AACvC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE;AACrD,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK;AACjF,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACzD,QAAQ,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI;AAC/F,YAAY,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC;AACxE,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACtE,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAC/C,aAAa;AACb,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AACD,SAAS,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE;AAC7C,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,IAAI,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;AACzD,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,EAAE;AAC7C,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,SAAS,EAAE,MAAM,CAAC,SAAS;AACnC,QAAQ,OAAO,EAAE,MAAM,CAAC,OAAO;AAC/B,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;AACzF,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAChD,aAAa,OAAO,EAAE;AACtB,KAAK,CAAC;AACN,CAAC;AACD,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,IAAI,OAAOe,iBAAS,CAAC,IAAI,CAAC;AAC1B,SAAS,IAAI,EAAE;AACf,SAAS,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;AACzC,SAAS,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAC5B,SAAS,IAAI,EAAE;AACf,SAAS,KAAK,CAAC,IAAI,CAAC;AACpB,SAAS,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7B,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC3C,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB;;AClDO,SAAS,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE;AAC1C,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,OAAO;AACf,QAAQ,KAAK,EAAE,EAAE;AACjB,KAAK,CAAC;AACN,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;AACxC,IAAI,MAAM,QAAQ,GAAG,IAAIlB,gBAAQ,CAAC,MAAM,CAAC,CAAC;AAC1C,IAAI,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM;AACjC,QAAQ,KAAK,CAAC,IAAI,EAAE;AACpB,YAAY,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AACpD,YAAY,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;AACpD,YAAY,IAAI,MAAM;AACtB,gBAAgB,MAAM,CAAC,IAAI;AAC3B,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC;AAChD,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ,CAAC,IAAI;AAC7B,gBAAgB,QAAQ,CAAC,IAAI,KAAK,YAAY;AAC9C,gBAAgB,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE;AAC9C,gBAAgB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;AAC/C,gBAAgB,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjE,gBAAgB,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3E,gBAAgB,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACtE,gBAAgB,YAAY,CAAC,IAAI,EAAE,CAAC;AACpC,gBAAgB,aAAa,CAAC,IAAI,EAAE,CAAC;AACrC,gBAAgB,IAAI,IAAI,CAAC,GAAG,EAAE;AAC9B,oBAAoB,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG;AAC1D,wBAAwB,IAAI,CAAC,GAAG;AAChC,wBAAwB,IAAI,SAAS,IAAI,EAAE,CAAC;AAC5C,qBAAqB,CAAC;AACtB,iBAAiB;AACjB,gBAAgB,IAAI,IAAI,CAAC,SAAS,EAAE;AACpC,oBAAoB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;AAC1D,wBAAwB,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvF,wBAAwB,WAAW,CAAC,IAAI,EAAE,CAAC;AAC3C,wBAAwB,IAAI,OAAO,CAAC,GAAG,EAAE;AACzC,4BAA4B,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG;AAChE,gCAAgC,OAAO,CAAC,GAAG;AAC3C,gCAAgC,IAAI,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AAC5E,6BAA6B,CAAC;AAC9B,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE;AACpC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;AACrE,YAAY,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC3C,YAAY,IAAIW,oBAAY,CAAC,IAAI,CAAC,IAAIJ,uBAAe,CAAC,IAAI,CAAC,EAAE;AAC7D,gBAAgB,MAAM,YAAY,GAAG;AACrC,oBAAoB,IAAI,EAAE,CAAC;AAC3B,oBAAoB,IAAI;AACxB,oBAAoB,QAAQ,EAAE,EAAE;AAChC,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAClD,gBAAgB,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE;AAClD,oBAAoB,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AACtD,oBAAoB,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;AACxD,wBAAwB,IAAI,EAAE,CAAC;AAC/B,wBAAwB,SAAS,EAAE,EAAE;AACrC,wBAAwB,QAAQ,EAAE,EAAE;AACpC,qBAAqB,CAAC;AACtB,oBAAoB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;AAClD,wBAAwB,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG;AAC/E,4BAA4B,IAAI,EAAE,CAAC;AACnC,4BAA4B,SAAS,EAAE,EAAE;AACzC,yBAAyB,CAAC;AAC1B,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;AACzD,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACzD,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;AAClC,QAAQ,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3C,QAAQ,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;AACvC,YAAYN,aAAK,CAAC,EAAE,CAAC,IAAI,EAAEC,yBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzE,SAAS,CAAC,CAAC;AACX,QAAQ,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;AACtC,YAAYD,aAAK,CAAC,EAAE,CAAC,IAAI,EAAEC,yBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzE,SAAS,CAAC,CAAC;AACX,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,QAAQ,CAAC;AACpB;;;;;;;;;"}
\No newline at end of file