@ngx-formly/core 6.3.4 → 6.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-formly-core.mjs","sources":["../../../../src/core/src/lib/utils.ts","../../../../src/core/src/lib/services/formly.config.ts","../../../../src/core/src/lib/services/formly.builder.ts","../../../../src/core/src/lib/extensions/field-form/utils.ts","../../../../src/core/src/lib/components/formly.template.ts","../../../../src/core/src/lib/components/formly.field.ts","../../../../src/core/src/lib/components/formly.form.ts","../../../../src/core/src/lib/templates/formly.attributes.ts","../../../../src/core/src/lib/templates/field.type.ts","../../../../src/core/src/lib/templates/formly.group.ts","../../../../src/core/src/lib/templates/formly.validation-message.ts","../../../../src/core/src/lib/templates/field-array.type.ts","../../../../src/core/src/lib/templates/field.wrapper.ts","../../../../src/core/src/lib/templates/field-template.type.ts","../../../../src/core/src/lib/extensions/field-expression/utils.ts","../../../../src/core/src/lib/extensions/field-expression/field-expression.ts","../../../../src/core/src/lib/extensions/field-validation/field-validation.ts","../../../../src/core/src/lib/extensions/field-form/field-form.ts","../../../../src/core/src/lib/extensions/core/core.ts","../../../../src/core/src/lib/core.module.ts","../../../../src/core/src/public_api.ts","../../../../src/core/src/ngx-formly-core.ts"],"sourcesContent":["import { FormlyFieldConfig } from './models';\nimport { isObservable } from 'rxjs';\nimport { AbstractControl } from '@angular/forms';\nimport { FormlyFieldConfigCache } from './models';\nimport { ChangeDetectorRef, ComponentRef, NgZone, TemplateRef, Type, ɵNoopNgZone } from '@angular/core';\n\nexport function disableTreeValidityCall(form: any, callback: Function) {\n const _updateTreeValidity = form._updateTreeValidity.bind(form);\n form._updateTreeValidity = () => {};\n callback();\n form._updateTreeValidity = _updateTreeValidity;\n}\n\nexport function getFieldId(formId: string, field: FormlyFieldConfig, index: string | number) {\n if (field.id) {\n return field.id;\n }\n let type = field.type;\n if (!type && field.template) {\n type = 'template';\n }\n\n if (type instanceof Type) {\n type = type.prototype.constructor.name;\n }\n\n return [formId, type, field.key, index].join('_');\n}\n\nexport function hasKey(field: FormlyFieldConfig) {\n return !isNil(field.key) && field.key !== '' && (!Array.isArray(field.key) || field.key.length > 0);\n}\n\nexport function getKeyPath(field: FormlyFieldConfigCache): string[] {\n if (!hasKey(field)) {\n return [];\n }\n\n /* We store the keyPath in the field for performance reasons. This function will be called frequently. */\n if (field._keyPath?.key !== field.key) {\n let path: (string | number)[] = [];\n if (typeof field.key === 'string') {\n const key = field.key.indexOf('[') === -1 ? field.key : field.key.replace(/\\[(\\w+)\\]/g, '.$1');\n path = key.indexOf('.') !== -1 ? key.split('.') : [key];\n } else if (Array.isArray(field.key)) {\n path = field.key.slice(0);\n } else {\n path = [`${field.key}`];\n }\n\n defineHiddenProp(field, '_keyPath', { key: field.key, path });\n }\n\n return field._keyPath.path.slice(0);\n}\n\nexport const FORMLY_VALIDATORS = ['required', 'pattern', 'minLength', 'maxLength', 'min', 'max'];\n\nexport function assignFieldValue(field: FormlyFieldConfigCache, value: any) {\n let paths = getKeyPath(field);\n if (paths.length === 0) {\n return;\n }\n\n let root = field;\n while (root.parent) {\n root = root.parent;\n paths = [...getKeyPath(root), ...paths];\n }\n\n if (value === undefined && field.resetOnHide) {\n const k = paths.pop();\n const m = paths.reduce((model, path) => model[path] || {}, root.model);\n delete m[k];\n return;\n }\n\n assignModelValue(root.model, paths, value);\n}\n\nexport function assignModelValue(model: any, paths: string[], value: any) {\n for (let i = 0; i < paths.length - 1; i++) {\n const path = paths[i];\n if (!model[path] || !isObject(model[path])) {\n model[path] = /^\\d+$/.test(paths[i + 1]) ? [] : {};\n }\n\n model = model[path];\n }\n\n model[paths[paths.length - 1]] = clone(value);\n}\n\nexport function getFieldValue(field: FormlyFieldConfig): any {\n let model = field.parent ? field.parent.model : field.model;\n for (const path of getKeyPath(field)) {\n if (!model) {\n return model;\n }\n model = model[path];\n }\n\n return model;\n}\n\nexport function reverseDeepMerge(dest: any, ...args: any[]) {\n args.forEach((src) => {\n for (const srcArg in src) {\n if (isNil(dest[srcArg]) || isBlankString(dest[srcArg])) {\n dest[srcArg] = clone(src[srcArg]);\n } else if (objAndSameType(dest[srcArg], src[srcArg])) {\n reverseDeepMerge(dest[srcArg], src[srcArg]);\n }\n }\n });\n return dest;\n}\n\n// check a value is null or undefined\nexport function isNil(value: any) {\n return value == null;\n}\n\nexport function isUndefined(value: any) {\n return value === undefined;\n}\n\nexport function isBlankString(value: any) {\n return value === '';\n}\n\nexport function isFunction(value: any) {\n return typeof value === 'function';\n}\n\nexport function objAndSameType(obj1: any, obj2: any) {\n return (\n isObject(obj1) &&\n isObject(obj2) &&\n Object.getPrototypeOf(obj1) === Object.getPrototypeOf(obj2) &&\n !(Array.isArray(obj1) || Array.isArray(obj2))\n );\n}\n\nexport function isObject(x: any) {\n return x != null && typeof x === 'object';\n}\n\nexport function isPromise(obj: any): obj is Promise<any> {\n return !!obj && typeof obj.then === 'function';\n}\n\nexport function clone(value: any): any {\n if (\n !isObject(value) ||\n isObservable(value) ||\n value instanceof TemplateRef ||\n /* instanceof SafeHtmlImpl */ value.changingThisBreaksApplicationSecurity ||\n ['RegExp', 'FileList', 'File', 'Blob'].indexOf(value.constructor.name) !== -1\n ) {\n return value;\n }\n\n if (value instanceof Set) {\n return new Set(value);\n }\n\n if (value instanceof Map) {\n return new Map(value);\n }\n\n if (value instanceof Uint8Array) {\n return new Uint8Array(value);\n }\n\n if (value instanceof Uint16Array) {\n return new Uint16Array(value);\n }\n\n if (value instanceof Uint32Array) {\n return new Uint32Array(value);\n }\n\n // https://github.com/moment/moment/blob/master/moment.js#L252\n if (value._isAMomentObject && isFunction(value.clone)) {\n return value.clone();\n }\n\n if (value instanceof AbstractControl) {\n return null;\n }\n\n if (value instanceof Date) {\n return new Date(value.getTime());\n }\n\n if (Array.isArray(value)) {\n return value.slice(0).map((v) => clone(v));\n }\n\n // best way to clone a js object maybe\n // https://stackoverflow.com/questions/41474986/how-to-clone-a-javascript-es6-class-instance\n const proto = Object.getPrototypeOf(value);\n let c = Object.create(proto);\n c = Object.setPrototypeOf(c, proto);\n // need to make a deep copy so we dont use Object.assign\n // also Object.assign wont copy property descriptor exactly\n return Object.keys(value).reduce((newVal, prop) => {\n const propDesc = Object.getOwnPropertyDescriptor(value, prop);\n if (propDesc.get) {\n Object.defineProperty(newVal, prop, propDesc);\n } else {\n newVal[prop] = clone(value[prop]);\n }\n\n return newVal;\n }, c);\n}\n\nexport function defineHiddenProp(field: any, prop: string, defaultValue: any) {\n Object.defineProperty(field, prop, { enumerable: false, writable: true, configurable: true });\n field[prop] = defaultValue;\n}\n\ntype IObserveFn<T> = (change: { currentValue: T; previousValue?: T; firstChange: boolean }) => void;\nexport interface IObserver<T> {\n setValue: (value: T, emitEvent?: boolean) => void;\n unsubscribe: Function;\n}\ninterface IObserveTarget<T> {\n [prop: string]: any;\n _observers?: {\n [prop: string]: {\n value: T;\n onChange: IObserveFn<T>[];\n };\n };\n}\n\nexport function observeDeep<T = any>(source: IObserveTarget<T>, paths: string[], setFn: () => void): () => void {\n let observers: Function[] = [];\n\n const unsubscribe = () => {\n observers.forEach((observer) => observer());\n observers = [];\n };\n const observer = observe(source, paths, ({ firstChange, currentValue }) => {\n !firstChange && setFn();\n\n unsubscribe();\n if (isObject(currentValue) && currentValue.constructor.name === 'Object') {\n Object.keys(currentValue).forEach((prop) => {\n observers.push(observeDeep(source, [...paths, prop], setFn));\n });\n }\n });\n\n return () => {\n observer.unsubscribe();\n unsubscribe();\n };\n}\n\nexport function observe<T = any>(o: IObserveTarget<T>, paths: string[], setFn?: IObserveFn<T>): IObserver<T> {\n if (!o._observers) {\n defineHiddenProp(o, '_observers', {});\n }\n\n let target = o;\n for (let i = 0; i < paths.length - 1; i++) {\n if (!target[paths[i]] || !isObject(target[paths[i]])) {\n target[paths[i]] = /^\\d+$/.test(paths[i + 1]) ? [] : {};\n }\n target = target[paths[i]];\n }\n\n const key = paths[paths.length - 1];\n const prop = paths.join('.');\n if (!o._observers[prop]) {\n o._observers[prop] = { value: target[key], onChange: [] };\n }\n\n const state = o._observers[prop];\n if (target[key] !== state.value) {\n state.value = target[key];\n }\n\n if (setFn && state.onChange.indexOf(setFn) === -1) {\n state.onChange.push(setFn);\n setFn({ currentValue: state.value, firstChange: true });\n if (state.onChange.length >= 1 && isObject(target)) {\n const { enumerable } = Object.getOwnPropertyDescriptor(target, key) || { enumerable: true };\n Object.defineProperty(target, key, {\n enumerable,\n configurable: true,\n get: () => state.value,\n set: (currentValue) => {\n if (currentValue !== state.value) {\n const previousValue = state.value;\n state.value = currentValue;\n state.onChange.forEach((changeFn) => changeFn({ previousValue, currentValue, firstChange: false }));\n }\n },\n });\n }\n }\n\n return {\n setValue(currentValue: T, emitEvent = true) {\n if (currentValue === state.value) {\n return;\n }\n\n const previousValue = state.value;\n state.value = currentValue;\n state.onChange.forEach((changeFn) => {\n if (changeFn !== setFn && emitEvent) {\n changeFn({ previousValue, currentValue, firstChange: false });\n }\n });\n },\n unsubscribe() {\n state.onChange = state.onChange.filter((changeFn) => changeFn !== setFn);\n if (state.onChange.length === 0) {\n delete o._observers[prop];\n }\n },\n };\n}\n\nexport function getField(f: FormlyFieldConfig, key: FormlyFieldConfig['key']): FormlyFieldConfig {\n key = (Array.isArray(key) ? key.join('.') : key) as string;\n if (!f.fieldGroup) {\n return undefined;\n }\n\n for (let i = 0, len = f.fieldGroup.length; i < len; i++) {\n const c = f.fieldGroup[i];\n const k = (Array.isArray(c.key) ? c.key.join('.') : c.key) as string;\n if (k === key) {\n return c;\n }\n\n if (c.fieldGroup && (isNil(k) || key.indexOf(`${k}.`) === 0)) {\n const field = getField(c, isNil(k) ? key : key.slice(k.length + 1));\n if (field) {\n return field;\n }\n }\n }\n\n return undefined;\n}\n\nexport function markFieldForCheck(field: FormlyFieldConfigCache) {\n field._componentRefs?.forEach((ref) => {\n // NOTE: we cannot use ref.changeDetectorRef, see https://github.com/ngx-formly/ngx-formly/issues/2191\n if (ref instanceof ComponentRef) {\n const changeDetectorRef = ref.injector.get(ChangeDetectorRef);\n changeDetectorRef.markForCheck();\n } else {\n ref.markForCheck();\n }\n });\n}\n\nexport function isNoopNgZone(ngZone: NgZone) {\n return ngZone instanceof ɵNoopNgZone;\n}\n\nexport function isHiddenField(field: FormlyFieldConfig) {\n const isHidden = (f: FormlyFieldConfig) => f.hide || f.expressions?.hide || f.hideExpression;\n let setDefaultValue = !field.resetOnHide || !isHidden(field);\n if (!isHidden(field) && field.resetOnHide) {\n let parent = field.parent;\n while (parent && !isHidden(parent)) {\n parent = parent.parent;\n }\n setDefaultValue = !parent || !isHidden(parent);\n }\n\n return !setDefaultValue;\n}\n","import { Injectable, InjectionToken, ComponentRef, Type } from '@angular/core';\nimport { FieldType } from './../templates/field.type';\nimport { reverseDeepMerge, defineHiddenProp } from './../utils';\nimport {\n FormlyFieldConfig,\n FormlyFieldConfigCache,\n ConfigOption,\n TypeOption,\n ValidatorOption,\n WrapperOption,\n FormlyExtension,\n ValidationMessageOption,\n ExtensionOption,\n FormlyFieldConfigPresetProvider,\n} from '../models';\nimport { FieldWrapper } from '../templates/field.wrapper';\n\n/**\n * An InjectionToken for registering additional formly config options (types, wrappers ...).\n */\nexport const FORMLY_CONFIG = new InjectionToken<ConfigOption[]>('FORMLY_CONFIG');\ndeclare const ngDevMode: any;\n\n/**\n * Maintains list of formly config options. This can be used to register new field type.\n */\n@Injectable({ providedIn: 'root' })\nexport class FormlyConfig {\n types: { [name: string]: TypeOption } = {};\n validators: { [name: string]: ValidatorOption } = {};\n wrappers: { [name: string]: WrapperOption } = {};\n messages: { [name: string]: ValidationMessageOption['message'] } = {};\n\n extras: NonNullable<ConfigOption['extras']> = {\n checkExpressionOn: 'modelChange',\n lazyRender: true,\n resetFieldOnHide: true,\n renderFormlyFieldElement: true,\n showError(field: FieldType) {\n return (\n field.formControl?.invalid &&\n (field.formControl?.touched || field.options.parentForm?.submitted || !!field.field.validation?.show)\n );\n },\n };\n extensions: { [name: string]: FormlyExtension } = {};\n presets: { [name: string]: FormlyFieldConfig | FormlyFieldConfigPresetProvider } = {};\n\n private extensionsByPriority: Record<number, { [name: string]: FormlyExtension }> = {};\n\n addConfig(config: ConfigOption) {\n if (config.types) {\n config.types.forEach((type) => this.setType(type));\n }\n if (config.validators) {\n config.validators.forEach((validator) => this.setValidator(validator));\n }\n if (config.wrappers) {\n config.wrappers.forEach((wrapper) => this.setWrapper(wrapper));\n }\n if (config.validationMessages) {\n config.validationMessages.forEach((validation) => this.addValidatorMessage(validation.name, validation.message));\n }\n if (config.extensions) {\n this.setSortedExtensions(config.extensions);\n }\n if (config.extras) {\n this.extras = { ...this.extras, ...config.extras };\n }\n if (config.presets) {\n this.presets = {\n ...this.presets,\n ...config.presets.reduce((acc, curr) => ({ ...acc, [curr.name]: curr.config }), {}),\n };\n }\n }\n\n /**\n * Allows you to specify a custom type which you can use in your field configuration.\n * You can pass an object of options, or an array of objects of options.\n */\n setType(options: TypeOption | TypeOption[]) {\n if (Array.isArray(options)) {\n options.forEach((option) => this.setType(option));\n } else {\n if (!this.types[options.name]) {\n this.types[options.name] = <TypeOption>{ name: options.name };\n }\n\n (['component', 'extends', 'defaultOptions', 'wrappers'] as (keyof TypeOption)[]).forEach((prop) => {\n if (options.hasOwnProperty(prop)) {\n this.types[options.name][prop] = options[prop] as any;\n }\n });\n }\n }\n\n getType(name: FormlyFieldConfig['type'], throwIfNotFound = false): TypeOption {\n if (name instanceof Type) {\n return { component: name, name: name.prototype.constructor.name };\n }\n\n if (!this.types[name]) {\n if (throwIfNotFound) {\n throw new Error(\n `[Formly Error] The type \"${name}\" could not be found. Please make sure that is registered through the FormlyModule declaration.`,\n );\n }\n\n return null;\n }\n\n this.mergeExtendedType(name);\n\n return this.types[name];\n }\n\n /** @ignore */\n getMergedField(field: FormlyFieldConfig = {}): any {\n const type = this.getType(field.type);\n if (!type) {\n return;\n }\n\n if (type.defaultOptions) {\n reverseDeepMerge(field, type.defaultOptions);\n }\n\n const extendDefaults = type.extends && this.getType(type.extends).defaultOptions;\n if (extendDefaults) {\n reverseDeepMerge(field, extendDefaults);\n }\n\n if (field?.optionsTypes) {\n field.optionsTypes.forEach((option) => {\n const defaultOptions = this.getType(option).defaultOptions;\n if (defaultOptions) {\n reverseDeepMerge(field, defaultOptions);\n }\n });\n }\n\n const componentRef = this.resolveFieldTypeRef(field);\n if (componentRef?.instance?.defaultOptions) {\n reverseDeepMerge(field, componentRef.instance.defaultOptions);\n }\n\n if (!field.wrappers && type.wrappers) {\n field.wrappers = [...type.wrappers];\n }\n }\n\n /** @ignore @internal */\n resolveFieldTypeRef(field: FormlyFieldConfigCache = {}): ComponentRef<FieldType> {\n const type: TypeOption & { _componentRef?: ComponentRef<any> } = this.getType(field.type);\n if (!type) {\n return null;\n }\n\n if (!type.component || type._componentRef) {\n return type._componentRef;\n }\n\n const { _viewContainerRef, _injector } = field.options;\n if (!_viewContainerRef || !_injector) {\n return null;\n }\n\n const componentRef = _viewContainerRef.createComponent<FieldType>(type.component, { injector: _injector });\n defineHiddenProp(type, '_componentRef', componentRef);\n try {\n componentRef.destroy();\n } catch (e) {\n console.error(`An error occurred while destroying the Formly component type \"${field.type}\"`, e);\n }\n\n return type._componentRef;\n }\n\n setWrapper(options: WrapperOption) {\n this.wrappers[options.name] = options;\n if (options.types) {\n options.types.forEach((type) => {\n this.setTypeWrapper(type, options.name);\n });\n }\n }\n\n getWrapper(name: string | Type<FieldWrapper>): WrapperOption {\n if (name instanceof Type) {\n return { component: name, name: name.prototype.constructor.name };\n }\n\n if (!this.wrappers[name]) {\n throw new Error(\n `[Formly Error] The wrapper \"${name}\" could not be found. Please make sure that is registered through the FormlyModule declaration.`,\n );\n }\n\n return this.wrappers[name];\n }\n\n /** @ignore */\n setTypeWrapper(type: string, name: string) {\n if (!this.types[type]) {\n this.types[type] = <TypeOption>{};\n }\n if (!this.types[type].wrappers) {\n this.types[type].wrappers = [];\n }\n if (this.types[type].wrappers.indexOf(name) === -1) {\n this.types[type].wrappers.push(name);\n }\n }\n\n setValidator(options: ValidatorOption) {\n this.validators[options.name] = options;\n }\n\n getValidator(name: string): ValidatorOption {\n if (!this.validators[name]) {\n throw new Error(\n `[Formly Error] The validator \"${name}\" could not be found. Please make sure that is registered through the FormlyModule declaration.`,\n );\n }\n\n return this.validators[name];\n }\n\n addValidatorMessage(name: string, message: ValidationMessageOption['message']) {\n this.messages[name] = message;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const deprecated = { minlength: 'minLength', maxlength: 'maxLength' } as any;\n if (deprecated[name]) {\n console.warn(\n `Formly deprecation: passing validation messages key '${name}' is deprecated since v6.0, use '${deprecated[name]}' instead.`,\n );\n this.messages[deprecated[name]] = message;\n }\n }\n }\n\n getValidatorMessage(name: string) {\n return this.messages[name];\n }\n\n private setSortedExtensions(extensionOptions: ExtensionOption[]) {\n // insert new extensions, grouped by priority\n extensionOptions.forEach((extensionOption) => {\n const priority = extensionOption.priority ?? 1;\n this.extensionsByPriority[priority] = {\n ...this.extensionsByPriority[priority],\n [extensionOption.name]: extensionOption.extension,\n };\n });\n // flatten extensions object with sorted keys\n this.extensions = Object.keys(this.extensionsByPriority)\n .map(Number)\n .sort((a, b) => a - b)\n .reduce(\n (acc, prio) => ({\n ...acc,\n ...this.extensionsByPriority[prio],\n }),\n {},\n );\n }\n\n private mergeExtendedType(name: string) {\n if (!this.types[name].extends) {\n return;\n }\n\n const extendedType = this.getType(this.types[name].extends);\n if (!this.types[name].component) {\n this.types[name].component = extendedType.component;\n }\n\n if (!this.types[name].wrappers) {\n this.types[name].wrappers = extendedType.wrappers;\n }\n }\n}\n","import { Injectable, Injector, Optional, ViewContainerRef } from '@angular/core';\nimport { FormGroup, FormArray, FormGroupDirective } from '@angular/forms';\nimport { FormlyConfig } from './formly.config';\nimport { FormlyFieldConfig, FormlyFormOptions, FormlyFieldConfigCache } from '../models';\nimport { defineHiddenProp, observe, disableTreeValidityCall, isHiddenField } from '../utils';\n\n@Injectable({ providedIn: 'root' })\nexport class FormlyFormBuilder {\n constructor(\n private config: FormlyConfig,\n private injector: Injector,\n @Optional() private viewContainerRef: ViewContainerRef,\n @Optional() private parentForm: FormGroupDirective,\n ) {}\n\n buildForm(form: FormGroup | FormArray, fieldGroup: FormlyFieldConfig[] = [], model: any, options: FormlyFormOptions) {\n this.build({ fieldGroup, model, form, options });\n }\n\n build(field: FormlyFieldConfig) {\n if (!this.config.extensions.core) {\n throw new Error('NgxFormly: missing `forRoot()` call. use `forRoot()` when registering the `FormlyModule`.');\n }\n\n if (!field.parent) {\n this._setOptions(field);\n }\n\n disableTreeValidityCall(field.form, () => {\n this._build(field);\n // TODO: add test for https://github.com/ngx-formly/ngx-formly/issues/3910\n if (!field.parent || (field as FormlyFieldConfigCache).fieldArray) {\n // detect changes early to avoid reset value by hidden fields\n const options = (field as FormlyFieldConfigCache).options;\n\n if (field.parent && isHiddenField(field)) {\n // when hide is used in expression set defaul value will not be set until detect hide changes\n // which causes default value not set on new item is added\n options._hiddenFieldsForCheck?.push(field);\n }\n\n options.checkExpressions?.(field, true);\n options._detectChanges?.(field);\n }\n });\n }\n\n private _build(field: FormlyFieldConfigCache) {\n if (!field) {\n return;\n }\n\n const extensions = Object.values(this.config.extensions);\n extensions.forEach((extension) => extension.prePopulate?.(field));\n extensions.forEach((extension) => extension.onPopulate?.(field));\n field.fieldGroup?.forEach((f) => this._build(f));\n extensions.forEach((extension) => extension.postPopulate?.(field));\n }\n\n private _setOptions(field: FormlyFieldConfigCache) {\n field.form = field.form || new FormGroup({});\n field.model = field.model || {};\n field.options = field.options || {};\n const options = field.options;\n\n if (!options._viewContainerRef) {\n defineHiddenProp(options, '_viewContainerRef', this.viewContainerRef);\n }\n\n if (!options._injector) {\n defineHiddenProp(options, '_injector', this.injector);\n }\n\n if (!options.build) {\n options._buildForm = () => {\n console.warn(`Formly: 'options._buildForm' is deprecated since v6.0, use 'options.build' instead.`);\n this.build(field);\n };\n\n options.build = (f: FormlyFieldConfig = field) => {\n this.build(f);\n\n return f;\n };\n }\n\n if (!options.parentForm && this.parentForm) {\n defineHiddenProp(options, 'parentForm', this.parentForm);\n observe(options, ['parentForm', 'submitted'], ({ firstChange }) => {\n if (!firstChange) {\n options.detectChanges(field);\n }\n });\n }\n }\n}\n","import { EventEmitter } from '@angular/core';\nimport { FormArray, FormGroup, FormControl, AbstractControl } from '@angular/forms';\nimport { getKeyPath, getFieldValue, isNil, defineHiddenProp, observe, hasKey } from '../../utils';\nimport { FormlyFieldConfigCache } from '../../models';\n\nexport function unregisterControl(field: FormlyFieldConfigCache, emitEvent = false) {\n const control = field.formControl;\n const fieldIndex = control._fields ? control._fields.indexOf(field) : -1;\n if (fieldIndex !== -1) {\n control._fields.splice(fieldIndex, 1);\n }\n\n const form = control.parent as FormArray | FormGroup;\n if (!form) {\n return;\n }\n\n const opts = { emitEvent };\n if (form instanceof FormArray) {\n const key = form.controls.findIndex((c) => c === control);\n if (key !== -1) {\n form.removeAt(key, opts);\n }\n } else if (form instanceof FormGroup) {\n const paths = getKeyPath(field);\n const key = paths[paths.length - 1];\n if (form.get([key]) === control) {\n form.removeControl(key, opts);\n }\n }\n\n control.setParent(null);\n}\n\nexport function findControl(field: FormlyFieldConfigCache): AbstractControl {\n if (field.formControl) {\n return field.formControl;\n }\n\n if (field.shareFormControl === false) {\n return null;\n }\n\n return field.form?.get(getKeyPath(field));\n}\n\nexport function registerControl(\n field: FormlyFieldConfigCache,\n control?: FormlyFieldConfigCache['formControl'],\n emitEvent = false,\n) {\n control = control || field.formControl;\n\n if (!control._fields) {\n defineHiddenProp(control, '_fields', []);\n }\n if (control._fields.indexOf(field) === -1) {\n control._fields.push(field);\n }\n\n if (!field.formControl && control) {\n defineHiddenProp(field, 'formControl', control);\n control.setValidators(null);\n control.setAsyncValidators(null);\n\n field.props.disabled = !!field.props.disabled;\n const disabledObserver = observe(field, ['props', 'disabled'], ({ firstChange, currentValue }) => {\n if (!firstChange) {\n currentValue ? field.formControl.disable() : field.formControl.enable();\n }\n });\n if (control instanceof FormControl) {\n control.registerOnDisabledChange(disabledObserver.setValue);\n }\n }\n\n if (!field.form || !hasKey(field)) {\n return;\n }\n\n let form = field.form;\n const paths = getKeyPath(field);\n const value = getFieldValue(field);\n if (!(isNil(control.value) && isNil(value)) && control.value !== value && control instanceof FormControl) {\n control.patchValue(value);\n }\n\n for (let i = 0; i < paths.length - 1; i++) {\n const path = paths[i];\n if (!form.get([path])) {\n (form as FormGroup).setControl(path, new FormGroup({}), { emitEvent });\n }\n\n form = <FormGroup>form.get([path]);\n }\n\n const key = paths[paths.length - 1];\n if (!field._hide && form.get([key]) !== control) {\n (form as FormGroup).setControl(key, control, { emitEvent });\n }\n}\n\nexport function updateValidity(c: AbstractControl, onlySelf = false) {\n const status = c.status;\n const value = c.value;\n c.updateValueAndValidity({ emitEvent: false, onlySelf });\n if (status !== c.status) {\n (c.statusChanges as EventEmitter<string>).emit(c.status);\n }\n\n if (value !== c.value) {\n (c.valueChanges as EventEmitter<any>).emit(c.value);\n }\n}\n\nexport function clearControl(form: FormlyFieldConfigCache['formControl']) {\n delete form?._fields;\n form.setValidators(null);\n form.setAsyncValidators(null);\n if (form instanceof FormGroup || form instanceof FormArray) {\n Object.values(form.controls).forEach((c) => clearControl(c));\n }\n}\n","import { Directive, Injectable, Input, OnChanges, QueryList, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[formlyTemplate]' })\nexport class FormlyTemplate implements OnChanges {\n @Input('formlyTemplate') name: string;\n\n constructor(public ref: TemplateRef<any>) {}\n\n ngOnChanges() {\n this.name = this.name || 'formly-group';\n }\n}\n\n// workarround for https://github.com/angular/angular/issues/43227#issuecomment-904173738\n@Injectable()\nexport class FormlyFieldTemplates {\n templates!: QueryList<FormlyTemplate>;\n}\n","import {\n Component,\n Input,\n ViewContainerRef,\n ViewChild,\n ComponentRef,\n SimpleChanges,\n DoCheck,\n OnInit,\n OnChanges,\n OnDestroy,\n AfterContentInit,\n AfterViewInit,\n Renderer2,\n ElementRef,\n EmbeddedViewRef,\n Optional,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { FormlyConfig } from '../services/formly.config';\nimport { FormlyFieldConfig, FormlyFieldConfigCache, FormlyHookConfig } from '../models';\nimport {\n defineHiddenProp,\n observe,\n observeDeep,\n getFieldValue,\n assignFieldValue,\n isObject,\n markFieldForCheck,\n hasKey,\n IObserver,\n} from '../utils';\nimport { FieldWrapper } from '../templates/field.wrapper';\nimport { FieldType } from '../templates/field.type';\nimport { isObservable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { FormlyFieldTemplates } from './formly.template';\n\n/**\n * The `<formly-field>` component is used to render the UI widget (layout + type) of a given `field`.\n */\n@Component({\n selector: 'formly-field',\n template: '<ng-template #container></ng-template>',\n styleUrls: ['./formly.field.scss'],\n})\nexport class FormlyField implements DoCheck, OnInit, OnChanges, AfterContentInit, AfterViewInit, OnDestroy {\n /** The field config. */\n @Input() field: FormlyFieldConfig;\n @ViewChild('container', { read: ViewContainerRef, static: true }) viewContainerRef!: ViewContainerRef;\n\n private hostObservers: IObserver<any>[] = [];\n private componentRefs: (ComponentRef<FieldType> | EmbeddedViewRef<FieldType>)[] = [];\n private hooksObservers: Function[] = [];\n private detectFieldBuild = false;\n\n private get containerRef() {\n return this.config.extras.renderFormlyFieldElement ? this.viewContainerRef : this.hostContainerRef;\n }\n\n private get elementRef() {\n if (this.config.extras.renderFormlyFieldElement) {\n return this._elementRef;\n }\n if (this.componentRefs?.[0] instanceof ComponentRef) {\n return this.componentRefs[0].location;\n }\n\n return null;\n }\n\n valueChangesUnsubscribe = () => {};\n\n constructor(\n private config: FormlyConfig,\n private renderer: Renderer2,\n private _elementRef: ElementRef,\n private hostContainerRef: ViewContainerRef,\n @Optional() private form: FormlyFieldTemplates,\n ) {}\n\n ngAfterContentInit() {\n this.triggerHook('afterContentInit');\n }\n\n ngAfterViewInit() {\n this.triggerHook('afterViewInit');\n }\n\n ngDoCheck() {\n if (this.detectFieldBuild && this.field && this.field.options) {\n this.render();\n }\n }\n\n ngOnInit() {\n this.triggerHook('onInit');\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.triggerHook('onChanges', changes);\n }\n\n ngOnDestroy() {\n this.resetRefs(this.field);\n this.hostObservers.forEach((hostObserver) => hostObserver.unsubscribe());\n this.hooksObservers.forEach((unsubscribe) => unsubscribe());\n this.valueChangesUnsubscribe();\n this.triggerHook('onDestroy');\n }\n\n private renderField(\n containerRef: ViewContainerRef,\n f: FormlyFieldConfigCache,\n wrappers: FormlyFieldConfig['wrappers'] = [],\n ) {\n if (this.containerRef === containerRef) {\n this.resetRefs(this.field);\n this.containerRef.clear();\n wrappers = this.field?.wrappers;\n }\n\n if (wrappers?.length > 0) {\n const [wrapper, ...wps] = wrappers;\n const { component } = this.config.getWrapper(wrapper);\n\n const ref = containerRef.createComponent<FieldWrapper>(component);\n this.attachComponentRef(ref, f);\n observe<ViewContainerRef & { _lContainer: any }>(\n ref.instance,\n ['fieldComponent'],\n ({ currentValue, previousValue, firstChange }) => {\n if (currentValue) {\n if (previousValue && previousValue._lContainer === currentValue._lContainer) {\n return;\n }\n\n const viewRef = previousValue ? previousValue.detach() : null;\n if (viewRef && !viewRef.destroyed) {\n currentValue.insert(viewRef);\n } else {\n this.renderField(currentValue, f, wps);\n }\n\n !firstChange && ref.changeDetectorRef.detectChanges();\n }\n },\n );\n } else if (f?.type) {\n const inlineType = this.form?.templates?.find((ref) => ref.name === f.type);\n let ref: ComponentRef<any> | EmbeddedViewRef<any>;\n if (inlineType) {\n ref = containerRef.createEmbeddedView(inlineType.ref, { $implicit: f });\n } else {\n const { component } = this.config.getType(f.type, true);\n ref = containerRef.createComponent<FieldWrapper>(component as any);\n }\n this.attachComponentRef(ref, f);\n }\n }\n\n private triggerHook(name: keyof FormlyHookConfig, changes?: SimpleChanges) {\n if (name === 'onInit' || (name === 'onChanges' && changes.field && !changes.field.firstChange)) {\n this.valueChangesUnsubscribe();\n this.valueChangesUnsubscribe = this.fieldChanges(this.field);\n }\n\n if (this.field?.hooks?.[name]) {\n if (!changes || changes.field) {\n const r = this.field.hooks[name](this.field);\n if (isObservable(r) && ['onInit', 'afterContentInit', 'afterViewInit'].indexOf(name) !== -1) {\n const sub = r.subscribe();\n this.hooksObservers.push(() => sub.unsubscribe());\n }\n }\n }\n\n if (name === 'onChanges' && changes.field) {\n this.resetRefs(changes.field.previousValue);\n this.render();\n }\n }\n\n private attachComponentRef<T extends FieldType>(\n ref: ComponentRef<T> | EmbeddedViewRef<T>,\n field: FormlyFieldConfigCache,\n ) {\n this.componentRefs.push(ref);\n field._componentRefs.push(ref);\n if (ref instanceof ComponentRef) {\n Object.assign(ref.instance, { field });\n }\n }\n\n private render() {\n if (!this.field) {\n return;\n }\n\n // require Formly build\n if (!this.field.options) {\n this.detectFieldBuild = true;\n\n return;\n }\n\n this.detectFieldBuild = false;\n this.hostObservers.forEach((hostObserver) => hostObserver.unsubscribe());\n this.hostObservers = [\n observe<boolean>(this.field, ['hide'], ({ firstChange, currentValue }) => {\n const containerRef = this.containerRef;\n if (this.config.extras.lazyRender === false) {\n firstChange && this.renderField(containerRef, this.field);\n if (!firstChange || (firstChange && currentValue)) {\n this.elementRef &&\n this.renderer.setStyle(this.elementRef.nativeElement, 'display', currentValue ? 'none' : '');\n }\n } else {\n if (currentValue) {\n containerRef.clear();\n if (this.field.className) {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'class');\n }\n } else {\n this.renderField(containerRef, this.field);\n if (this.field.className) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'class', this.field.className);\n }\n }\n }\n\n !firstChange && this.field.options.detectChanges(this.field);\n }),\n observe<string>(this.field, ['className'], ({ firstChange, currentValue }) => {\n if (\n (!firstChange || (firstChange && currentValue)) &&\n (!this.config.extras.lazyRender || this.field.hide !== true)\n ) {\n this.elementRef && this.renderer.setAttribute(this.elementRef.nativeElement, 'class', currentValue);\n }\n }),\n ...['touched', 'pristine', 'status'].map((prop) =>\n observe<string>(\n this.field,\n ['formControl', prop],\n ({ firstChange }) => !firstChange && markFieldForCheck(this.field),\n ),\n ),\n ];\n }\n\n private resetRefs(field: FormlyFieldConfigCache) {\n if (field) {\n if (field._localFields) {\n field._localFields = [];\n } else {\n defineHiddenProp(this.field, '_localFields', []);\n }\n\n if (field._componentRefs) {\n field._componentRefs = field._componentRefs.filter((ref) => this.componentRefs.indexOf(ref) === -1);\n } else {\n defineHiddenProp(this.field, '_componentRefs', []);\n }\n }\n\n this.componentRefs = [];\n }\n\n private fieldChanges(field: FormlyFieldConfigCache | undefined) {\n if (!field) {\n return () => {};\n }\n\n const subscribes = [observeDeep(field, ['props'], () => field.options.detectChanges(field))];\n\n if (field.options) {\n subscribes.push(observeDeep(field.options, ['formState'], () => field.options.detectChanges(field)));\n }\n\n for (const key of Object.keys(field._expressions || {})) {\n const expressionObserver = observe<FormlyFieldConfigCache['_expressions']['key']>(\n field,\n ['_expressions', key],\n ({ currentValue, previousValue }) => {\n if (previousValue?.subscription) {\n previousValue.subscription.unsubscribe();\n previousValue.subscription = null;\n }\n if (isObservable(currentValue.value$)) {\n currentValue.subscription = currentValue.value$.subscribe();\n }\n },\n );\n subscribes.push(() => {\n if (field._expressions[key]?.subscription) {\n field._expressions[key].subscription.unsubscribe();\n }\n expressionObserver.unsubscribe();\n });\n }\n\n for (const path of [['focus'], ['template'], ['fieldGroupClassName'], ['validation', 'show']]) {\n const fieldObserver = observe(\n field,\n path,\n ({ firstChange }) => !firstChange && field.options.detectChanges(field),\n );\n subscribes.push(() => fieldObserver.unsubscribe());\n }\n\n if (field.formControl && !field.fieldGroup) {\n const control = field.formControl;\n let valueChanges = control.valueChanges.pipe(\n map((value) => {\n field.parsers?.map((parserFn) => (value = (parserFn as any)(value, field)));\n if (!Object.is(value, field.formControl.value)) {\n field.formControl.setValue(value);\n }\n\n return value;\n }),\n distinctUntilChanged((x, y) => {\n if (x !== y || Array.isArray(x) || isObject(x)) {\n return false;\n }\n\n return true;\n }),\n );\n\n if (control.value !== getFieldValue(field)) {\n valueChanges = valueChanges.pipe(startWith(control.value));\n }\n\n const { updateOn, debounce } = field.modelOptions;\n if ((!updateOn || updateOn === 'change') && debounce?.default > 0) {\n valueChanges = control.valueChanges.pipe(debounceTime(debounce.default));\n }\n\n const sub = valueChanges.subscribe((value) => {\n // workaround for https://github.com/angular/angular/issues/13792\n if (control._fields?.length > 1 && control instanceof FormControl) {\n control.patchValue(value, { emitEvent: false, onlySelf: true });\n }\n\n if (hasKey(field)) {\n assignFieldValue(field, value);\n }\n field.options.fieldChanges.next({ value, field, type: 'valueChanges' });\n });\n\n subscribes.push(() => sub.unsubscribe());\n }\n\n let templateFieldsSubs: (() => void)[] = [];\n observe(field, ['_localFields'], ({ currentValue }) => {\n templateFieldsSubs.forEach((unsubscribe) => unsubscribe());\n templateFieldsSubs = (currentValue || []).map((f: FormlyFieldConfigCache) => this.fieldChanges(f));\n });\n\n return () => {\n subscribes.forEach((unsubscribe) => unsubscribe());\n templateFieldsSubs.forEach((unsubscribe) => unsubscribe());\n };\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n DoCheck,\n OnChanges,\n Input,\n SimpleChanges,\n EventEmitter,\n Output,\n OnDestroy,\n NgZone,\n ContentChildren,\n QueryList,\n} from '@angular/core';\nimport { FormGroup, FormArray } from '@angular/forms';\nimport { FormlyFieldConfig, FormlyFormOptions, FormlyFieldConfigCache } from '../models';\nimport { FormlyFormBuilder } from '../services/formly.builder';\nimport { FormlyConfig } from '../services/formly.config';\nimport { clone, hasKey, isNoopNgZone } from '../utils';\nimport { switchMap, filter, take } from 'rxjs/operators';\nimport { clearControl } from '../extensions/field-form/utils';\nimport { FormlyFieldTemplates, FormlyTemplate } from './formly.template';\nimport { of } from 'rxjs';\n\n/**\n * The `<form-form>` component is the main container of the form,\n * which takes care of managing the form state\n * and delegates the rendering of each field to `<formly-field>` component.\n */\n@Component({\n selector: 'formly-form',\n template: '<formly-field [field]=\"field\"></formly-field>',\n providers: [FormlyFormBuilder, FormlyFieldTemplates],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyForm implements DoCheck, OnChanges, OnDestroy {\n /** The form instance which allow to track model value and validation status. */\n @Input()\n set form(form: FormGroup | FormArray) {\n this.field.form = form;\n }\n get form(): FormGroup | FormArray {\n return this.field.form;\n }\n\n /** The model to be represented by the form. */\n @Input()\n set model(model: any) {\n if (this.config.extras.immutable && this._modelChangeValue === model) {\n return;\n }\n\n this.setField({ model });\n }\n get model(): any {\n return this.field.model;\n }\n\n /** The field configurations for building the form. */\n @Input()\n set fields(fieldGroup: FormlyFieldConfig[]) {\n this.setField({ fieldGroup });\n }\n get fields(): FormlyFieldConfig[] {\n return this.field.fieldGroup;\n }\n\n /** Options for the form. */\n @Input()\n set options(options: FormlyFormOptions) {\n this.setField({ options });\n }\n get options(): FormlyFormOptions {\n return this.field.options;\n }\n\n /** Event that is emitted when the model value is changed */\n @Output() modelChange = new EventEmitter<any>();\n @ContentChildren(FormlyTemplate) set templates(templates: QueryList<FormlyTemplate>) {\n this.fieldTemplates.templates = templates;\n }\n\n field: FormlyFieldConfigCache = { type: 'formly-group' };\n private _modelChangeValue: any = {};\n private valueChangesUnsubscribe = () => {};\n\n constructor(\n private builder: FormlyFormBuilder,\n private config: FormlyConfig,\n private ngZone: NgZone,\n private fieldTemplates: FormlyFieldTemplates,\n ) {}\n\n ngDoCheck() {\n if (this.config.extras.checkExpressionOn === 'changeDetectionCheck') {\n this.checkExpressionChange();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.fields && this.form) {\n clearControl(this.form);\n }\n\n if (changes.fields || changes.form || (changes.model && this._modelChangeValue !== changes.model.currentValue)) {\n this.valueChangesUnsubscribe();\n this.builder.build(this.field);\n this.valueChangesUnsubscribe = this.valueChanges();\n }\n }\n\n ngOnDestroy() {\n this.valueChangesUnsubscribe();\n }\n\n private checkExpressionChange() {\n this.field.options.checkExpressions?.(this.field);\n }\n\n private valueChanges() {\n this.valueChangesUnsubscribe();\n\n const sub = this.field.options.fieldChanges\n .pipe(\n filter(({ field, type }) => hasKey(field) && type === 'valueChanges'),\n switchMap(() => (isNoopNgZone(this.ngZone) ? of(null) : this.ngZone.onStable.asObservable().pipe(take(1)))),\n )\n .subscribe(() =>\n this.ngZone.runGuarded(() => {\n // runGuarded is used to keep in sync the expression changes\n // https://github.com/ngx-formly/ngx-formly/issues/2095\n this.checkExpressionChange();\n this.modelChange.emit((this._modelChangeValue = clone(this.model)));\n }),\n );\n\n return () => sub.unsubscribe();\n }\n\n private setField(field: FormlyFieldConfigCache) {\n if (this.config.extras.immutable) {\n this.field = { ...this.field, ...clone(field) };\n } else {\n Object.keys(field).forEach((p) => ((this.field as any)[p] = (field as any)[p]));\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n Renderer2,\n DoCheck,\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport { FormlyFieldConfig, FormlyFieldConfigCache } from '../models';\nimport { defineHiddenProp, FORMLY_VALIDATORS, observe, IObserver } from '../utils';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * Allow to link the `field` HTML attributes (`id`, `name` ...) and Event attributes (`focus`, `blur` ...) to an element in the DOM.\n */\n@Directive({\n selector: '[formlyAttributes]',\n host: {\n '(change)': 'onHostChange($event)',\n },\n})\nexport class FormlyAttributes implements OnChanges, DoCheck, OnDestroy {\n /** The field config. */\n @Input('formlyAttributes') field: FormlyFieldConfig;\n @Input() id: string;\n\n private document: Document;\n private uiAttributesCache: any = {};\n private uiAttributes: string[];\n private focusObserver: IObserver<boolean>;\n\n /**\n * HostBinding doesn't register listeners conditionally which may produce some perf issues.\n *\n * Formly issue: https://github.com/ngx-formly/ngx-formly/issues/1991\n */\n private uiEvents = {\n listeners: [] as Function[],\n events: ['click', 'keyup', 'keydown', 'keypress', 'focus', 'blur', 'change'],\n callback: (eventName: string, $event: any) => {\n switch (eventName) {\n case 'focus':\n return this.onFocus($event);\n case 'blur':\n return this.onBlur($event);\n case 'change':\n return this.onChange($event);\n default:\n return this.props[eventName](this.field, $event);\n }\n },\n };\n\n private get props() {\n return this.field.props || ({} as FormlyFieldConfigCache['props']);\n }\n\n private get fieldAttrElements(): ElementRef[] {\n return (this.field as FormlyFieldConfigCache)?.['_elementRefs'] || [];\n }\n\n constructor(private renderer: Renderer2, private elementRef: ElementRef, @Inject(DOCUMENT) _document: any) {\n this.document = _document;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.field) {\n this.field.name && this.setAttribute('name', this.field.name);\n this.uiEvents.listeners.forEach((listener) => listener());\n this.uiEvents.events.forEach((eventName) => {\n if (this.props?.[eventName] || ['focus', 'blur', 'change'].indexOf(eventName) !== -1) {\n this.uiEvents.listeners.push(\n this.renderer.listen(this.elementRef.nativeElement, eventName, (e) => this.uiEvents.callback(eventName, e)),\n );\n }\n });\n\n if (this.props?.attributes) {\n observe(this.field, ['props', 'attributes'], ({ currentValue, previousValue }) => {\n if (previousValue) {\n Object.keys(previousValue).forEach((attr) => this.removeAttribute(attr));\n }\n\n if (currentValue) {\n Object.keys(currentValue).forEach((attr) => {\n if (currentValue[attr] != null) {\n this.setAttribute(attr, currentValue[attr]);\n }\n });\n }\n });\n }\n\n this.detachElementRef(changes.field.previousValue);\n this.attachElementRef(changes.field.currentValue);\n if (this.fieldAttrElements.length === 1) {\n !this.id && this.field.id && this.setAttribute('id', this.field.id);\n this.focusObserver = observe<boolean>(this.field, ['focus'], ({ currentValue }) => {\n this.toggleFocus(currentValue);\n });\n }\n }\n\n if (changes.id) {\n this.setAttribute('id', this.id);\n }\n }\n\n /**\n * We need to re-evaluate all the attributes on every change detection cycle, because\n * by using a HostBinding we run into certain edge cases. This means that whatever logic\n * is in here has to be super lean or we risk seriously damaging or destroying the performance.\n *\n * Formly issue: https://github.com/ngx-formly/ngx-formly/issues/1317\n * Material issue: https://github.com/angular/components/issues/14024\n */\n ngDoCheck() {\n if (!this.uiAttributes) {\n const element = this.elementRef.nativeElement as HTMLElement;\n this.uiAttributes = [...FORMLY_VALIDATORS, 'tabindex', 'placeholder', 'readonly', 'disabled', 'step'].filter(\n (attr) => !element.hasAttribute || !element.hasAttribute(attr),\n );\n }\n\n for (let i = 0; i < this.uiAttributes.length; i++) {\n const attr = this.uiAttributes[i];\n const value = this.props[attr];\n if (\n this.uiAttributesCache[attr] !== value &&\n (!this.props.attributes || !this.props.attributes.hasOwnProperty(attr.toLowerCase()))\n ) {\n this.uiAttributesCache[attr] = value;\n if (value || value === 0) {\n this.setAttribute(attr, value === true ? attr : `${value}`);\n } else {\n this.removeAttribute(attr);\n }\n }\n }\n }\n\n ngOnDestroy() {\n this.uiEvents.listeners.forEach((listener) => listener());\n this.detachElementRef(this.field);\n this.focusObserver?.unsubscribe();\n }\n\n toggleFocus(value: boolean) {\n const element = this.fieldAttrElements ? this.fieldAttrElements[0] : null;\n if (!element || !element.nativeElement.focus) {\n return;\n }\n\n const isFocused =\n !!this.document.activeElement &&\n this.fieldAttrElements.some(\n ({ nativeElement }) =>\n this.document.activeElement === nativeElement || nativeElement.contains(this.document.activeElement),\n );\n\n if (value && !isFocused) {\n Promise.resolve().then(() => element.nativeElement.focus());\n } else if (!value && isFocused) {\n Promise.resolve().then(() => element.nativeElement.blur());\n }\n }\n\n onFocus($event: any) {\n this.focusObserver?.setValue(true);\n this.props.focus?.(this.field, $event);\n }\n\n onBlur($event: any) {\n this.focusObserver?.setValue(false);\n this.props.blur?.(this.field, $event);\n }\n\n // handle custom `change` event, for regular ones rely on DOM listener\n onHostChange($event: any) {\n if ($event instanceof Event) {\n return;\n }\n\n this.onChange($event);\n }\n\n onChange($event: any) {\n this.props.change?.(this.field, $event);\n this.field.formControl?.markAsDirty();\n }\n\n private attachElementRef(f: FormlyFieldConfigCache) {\n if (!f) {\n return;\n }\n\n if (f['_elementRefs']?.indexOf(this.elementRef) === -1) {\n f['_elementRefs'].push(this.elementRef);\n } else {\n defineHiddenProp(f, '_elementRefs', [this.elementRef]);\n }\n }\n\n private detachElementRef(f: FormlyFieldConfigCache) {\n const index = f?.['_elementRefs'] ? this.fieldAttrElements.indexOf(this.elementRef) : -1;\n if (index !== -1) {\n f['_elementRefs'].splice(index, 1);\n }\n }\n\n private setAttribute(attr: string, value: string) {\n this.renderer.setAttribute(this.elementRef.nativeElement, attr, value);\n }\n\n private removeAttribute(attr: string) {\n this.renderer.removeAttribute(this.elementRef.nativeElement, attr);\n }\n}\n","import { Input, Directive, QueryList, ViewChildren } from '@angular/core';\nimport { FormControl, NgControl, FormGroup } from '@angular/forms';\nimport { FormlyFieldConfig, FormlyFieldConfigCache } from '../models';\nimport { FieldWrapper } from './field.wrapper';\n\nexport interface FieldTypeConfig<T = FormlyFieldConfig['props']> extends FormlyFieldConfig<T> {\n formControl: FormControl;\n props: NonNullable<T>;\n}\n\nexport interface FieldGroupTypeConfig<T = FormlyFieldConfig['props']> extends FormlyFieldConfig<T> {\n formControl: FormGroup;\n props: NonNullable<T>;\n}\n\n@Directive()\nexport abstract class FieldType<F extends FormlyFieldConfig = FormlyFieldConfig> {\n @ViewChildren(NgControl) set _formlyControls(controls: QueryList<NgControl>) {\n const f = this.field as FormlyFieldConfigCache;\n f._localFields = controls\n .map((c) => (c.control as FormlyFieldConfigCache['formControl'])._fields || [])\n .flat()\n .filter((f: FormlyFieldConfig) => f.formControl !== this.field.formControl);\n }\n\n @Input() field: F = {} as F;\n defaultOptions?: Partial<F>;\n\n get model() {\n return this.field.model;\n }\n\n get form() {\n return this.field.form;\n }\n\n get options() {\n return this.field.options;\n }\n\n get key() {\n return this.field.key;\n }\n\n get formControl() {\n return this.field.formControl as NonNullable<F['formControl']>;\n }\n\n get props() {\n return (this.field.props || {}) as NonNullable<F['props']>;\n }\n\n /** @deprecated Use `props` instead. */\n get to() {\n return this.props;\n }\n\n get showError(): boolean {\n return this.options.showError(this);\n }\n\n get id(): string {\n return this.field.id;\n }\n\n get formState() {\n return this.options?.formState || {};\n }\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { FieldType, FieldGroupTypeConfig } from './field.type';\n\n/** @ignore */\n@Component({\n selector: 'formly-group',\n template: `\n <formly-field *ngFor=\"let f of field.fieldGroup\" [field]=\"f\"></formly-field>\n <ng-content></ng-content>\n `,\n host: {\n '[class]': 'field.fieldGroupClassName || \"\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyGroup extends FieldType<FieldGroupTypeConfig> {}\n","import { Component, Input, ChangeDetectionStrategy, OnChanges } from '@angular/core';\nimport { FormlyConfig } from '../services/formly.config';\nimport { FormlyFieldConfig } from '../models';\nimport { FORMLY_VALIDATORS, isObject } from '../utils';\nimport { Observable, isObservable, of } from 'rxjs';\nimport { merge } from 'rxjs';\nimport { startWith, switchMap, filter } from 'rxjs/operators';\n\n/**\n * The `<formly-validation-message>` component renders the error message of a given `field`.\n */\n@Component({\n selector: 'formly-validation-message',\n template: '{{ errorMessage$ | async }}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyValidationMessage implements OnChanges {\n /** The field config. */\n @Input() field: FormlyFieldConfig;\n errorMessage$: Observable<string>;\n\n constructor(private config: FormlyConfig) {}\n\n ngOnChanges() {\n const EXPR_VALIDATORS = FORMLY_VALIDATORS.map((v) => `templateOptions.${v}`);\n this.errorMessage$ = merge(\n this.field.formControl.statusChanges,\n !this.field.options\n ? of(null)\n : this.field.options.fieldChanges.pipe(\n filter(({ field, type, property }) => {\n return (\n field === this.field &&\n type === 'expressionChanges' &&\n (property.indexOf('validation') !== -1 || EXPR_VALIDATORS.indexOf(property) !== -1)\n );\n }),\n ),\n ).pipe(\n startWith(null),\n switchMap(() => (isObservable(this.errorMessage) ? this.errorMessage : of(this.errorMessage))),\n );\n }\n\n get errorMessage() {\n const fieldForm = this.field.formControl;\n for (const error in fieldForm.errors) {\n if (fieldForm.errors.hasOwnProperty(error)) {\n let message = this.config.getValidatorMessage(error);\n\n if (isObject(fieldForm.errors[error])) {\n if (fieldForm.errors[error].errorPath) {\n return undefined;\n }\n\n if (fieldForm.errors[error].message) {\n message = fieldForm.errors[error].message;\n }\n }\n\n if (this.field.validation?.messages?.[error]) {\n message = this.field.validation.messages[error];\n }\n\n if (this.field.validators?.[error]?.message) {\n message = this.field.validators[error].message;\n }\n\n if (this.field.asyncValidators?.[error]?.message) {\n message = this.field.asyncValidators[error].message;\n }\n\n if (typeof message === 'function') {\n return message(fieldForm.errors[error], this.field);\n }\n\n return message;\n }\n }\n\n return undefined;\n }\n}\n","import { Directive } from '@angular/core';\nimport { FormArray } from '@angular/forms';\nimport { FieldType } from './field.type';\nimport { clone, assignFieldValue, getFieldValue, hasKey } from '../utils';\nimport { FormlyFieldConfig, FormlyExtension, FormlyFieldConfigCache } from '../models';\nimport { registerControl, unregisterControl, findControl } from '../extensions/field-form/utils';\n\nexport interface FieldArrayTypeConfig<T = FormlyFieldConfig['props']> extends FormlyFieldConfig<T> {\n formControl: FormArray;\n props: NonNullable<T>;\n}\n\n@Directive()\nexport abstract class FieldArrayType<F extends FormlyFieldConfig = FieldArrayTypeConfig>\n extends FieldType<F>\n implements FormlyExtension<F>\n{\n onPopulate(field: F) {\n if (hasKey(field)) {\n const control = findControl(field);\n registerControl(field, control ? control : new FormArray([], { updateOn: field.modelOptions.updateOn }));\n }\n\n field.fieldGroup = field.fieldGroup || [];\n\n const length = Array.isArray(field.model) ? field.model.length : 0;\n if (field.fieldGroup.length > length) {\n for (let i = field.fieldGroup.length - 1; i >= length; --i) {\n unregisterControl(field.fieldGroup[i], true);\n field.fieldGroup.splice(i, 1);\n }\n }\n\n for (let i = field.fieldGroup.length; i < length; i++) {\n const f = { ...clone(typeof field.fieldArray === 'function' ? field.fieldArray(field) : field.fieldArray) };\n if (f.key !== null) {\n f.key = `${i}`;\n }\n\n field.fieldGroup.push(f);\n }\n }\n\n add(i?: number, initialModel?: any, { markAsDirty } = { markAsDirty: true }) {\n i = i == null ? this.field.fieldGroup.length : i;\n if (!this.model) {\n assignFieldValue(this.field, []);\n }\n\n this.model.splice(i, 0, initialModel ? clone(initialModel) : undefined);\n this._build();\n markAsDirty && this.formControl.markAsDirty();\n }\n\n remove(i: number, { markAsDirty } = { markAsDirty: true }) {\n this.model.splice(i, 1);\n\n const field = this.field.fieldGroup[i];\n this.field.fieldGroup.splice(i, 1);\n this.field.fieldGroup.forEach((f, key) => this.updateArrayElementKey(f, `${key}`));\n unregisterControl(field, true);\n this._build();\n markAsDirty && this.formControl.markAsDirty();\n }\n\n private _build() {\n const fields = (this.field as FormlyFieldConfigCache).formControl._fields ?? [this.field];\n fields.forEach((f) => (this.options as any).build(f));\n this.options.fieldChanges.next({\n field: this.field,\n value: getFieldValue(this.field),\n type: 'valueChanges',\n });\n }\n\n private updateArrayElementKey(f: FormlyFieldConfig, newKey: string) {\n if (hasKey(f)) {\n f.key = newKey;\n return;\n }\n\n if (!f.fieldGroup?.length) {\n return;\n }\n\n for (let i = 0; i < f.fieldGroup.length; i++) {\n this.updateArrayElementKey(f.fieldGroup[i], newKey);\n }\n }\n}\n","import { ViewContainerRef, ViewChild, Directive, QueryList } from '@angular/core';\nimport { FieldType } from './field.type';\nimport { FormlyFieldConfig } from '../models';\nimport { NgControl } from '@angular/forms';\n\n@Directive()\nexport abstract class FieldWrapper<F extends FormlyFieldConfig = FormlyFieldConfig> extends FieldType<F> {\n override set _formlyControls(_: QueryList<NgControl>) {}\n @ViewChild('fieldComponent', { read: ViewContainerRef }) fieldComponent!: ViewContainerRef;\n @ViewChild('fieldComponent', { read: ViewContainerRef, static: true }) set _staticContent(content: ViewContainerRef) {\n this.fieldComponent = content;\n }\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { FieldType } from './field.type';\n\n/** @ignore */\n@Component({\n selector: 'formly-template',\n template: `<div [innerHtml]=\"template\"></div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyTemplateType extends FieldType {\n get template() {\n if (this.field && this.field.template !== this.innerHtml.template) {\n this.innerHtml = {\n template: this.field.template,\n content: this.props.safeHtml\n ? this.sanitizer.bypassSecurityTrustHtml(this.field.template)\n : this.field.template,\n };\n }\n\n return this.innerHtml.content;\n }\n\n private innerHtml: { content?: SafeHtml; template?: string } = {};\n constructor(private sanitizer: DomSanitizer) {\n super();\n }\n}\n","export function evalStringExpression(expression: string, argNames: string[]) {\n try {\n return Function(...argNames, `return ${expression};`) as any;\n } catch (error) {\n console.error(error);\n }\n}\n\nexport function evalExpression(expression: string | Function | boolean, thisArg: any, argVal: any[]): any {\n if (typeof expression === 'function') {\n return expression.apply(thisArg, argVal);\n } else {\n return expression ? true : false;\n }\n}\n","import { FormlyValueChangeEvent, FormlyFieldConfigCache } from '../../models';\nimport {\n isObject,\n isNil,\n isUndefined,\n isFunction,\n defineHiddenProp,\n observe,\n getFieldValue,\n assignFieldValue,\n hasKey,\n} from '../../utils';\nimport { evalExpression, evalStringExpression } from './utils';\nimport { isObservable, Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { FormlyExtension } from '../../models';\nimport { unregisterControl, registerControl, updateValidity } from '../field-form/utils';\nimport { FormArray } from '@angular/forms';\n\nexport class FieldExpressionExtension implements FormlyExtension {\n onPopulate(field: FormlyFieldConfigCache) {\n if (field._expressions) {\n return;\n }\n\n // cache built expression\n defineHiddenProp(field, '_expressions', {});\n\n observe(field, ['hide'], ({ currentValue, firstChange }) => {\n defineHiddenProp(field, '_hide', !!currentValue);\n if (!firstChange || (firstChange && currentValue === true)) {\n field.props.hidden = currentValue;\n field.options._hiddenFieldsForCheck.push(field);\n }\n });\n\n if (field.hideExpression) {\n observe(field, ['hideExpression'], ({ currentValue: expr }) => {\n field._expressions.hide = this.parseExpressions(field, 'hide', typeof expr === 'boolean' ? () => expr : expr);\n });\n }\n\n const evalExpr = (key: string, expr: any) => {\n if (typeof expr === 'string' || isFunction(expr)) {\n field._expressions[key] = this.parseExpressions(field, key, expr);\n } else if (expr instanceof Observable) {\n field._expressions[key] = {\n value$: (expr as Observable<any>).pipe(\n tap((v) => {\n this.evalExpr(field, key, v);\n field.options._detectChanges(field);\n }),\n ),\n };\n }\n };\n\n field.expressions = field.expressions || {};\n for (const key of Object.keys(field.expressions)) {\n observe(field, ['expressions', key], ({ currentValue: expr }) => {\n evalExpr(key, isFunction(expr) ? (...args: any) => expr(field, args[3]) : expr);\n });\n }\n\n field.expressionProperties = field.expressionProperties || {};\n for (const key of Object.keys(field.expressionProperties)) {\n observe(field, ['expressionProperties', key], ({ currentValue }) => evalExpr(key, currentValue));\n }\n }\n\n postPopulate(field: FormlyFieldConfigCache) {\n if (field.parent) {\n return;\n }\n\n if (!field.options.checkExpressions) {\n let checkLocked = false;\n field.options.checkExpressions = (f, ignoreCache) => {\n if (checkLocked) {\n return;\n }\n\n checkLocked = true;\n const fieldChanged = this.checkExpressions(f, ignoreCache);\n const options = field.options;\n options._hiddenFieldsForCheck\n .sort((f) => (f.hide ? -1 : 1))\n .forEach((f) => this.changeHideState(f, f.hide, !ignoreCache));\n options._hiddenFieldsForCheck = [];\n if (fieldChanged) {\n this.checkExpressions(field);\n }\n checkLocked = false;\n };\n field.options._checkField = (f, ignoreCache) => {\n console.warn(`Formly: 'options._checkField' is deprecated since v6.0, use 'options.checkExpressions' instead.`);\n field.options.checkExpressions(f, ignoreCache);\n };\n }\n }\n\n private parseExpressions(field: FormlyFieldConfigCache, path: string, expr: any) {\n let parentExpression: any;\n if (field.parent && ['hide', 'props.disabled'].includes(path)) {\n const rootValue = (f: FormlyFieldConfigCache) => {\n return path === 'hide' ? f.hide : f.props.disabled;\n };\n\n parentExpression = () => {\n let root = field.parent;\n while (root.parent && !rootValue(root)) {\n root = root.parent;\n }\n\n return rootValue(root);\n };\n }\n\n expr = expr || (() => false);\n if (typeof expr === 'string') {\n expr = evalStringExpression(expr, ['model', 'formState', 'field']);\n }\n\n let currentValue: any;\n\n return {\n callback: (ignoreCache?: boolean) => {\n try {\n const exprValue = evalExpression(\n parentExpression ? (...args: any) => parentExpression(field) || expr(...args) : expr,\n { field },\n [field.model, field.options.formState, field, ignoreCache],\n );\n\n if (\n ignoreCache ||\n (currentValue !== exprValue &&\n (!isObject(exprValue) ||\n isObservable(exprValue) ||\n JSON.stringify(exprValue) !== JSON.stringify(currentValue)))\n ) {\n currentValue = exprValue;\n this.evalExpr(field, path, exprValue);\n\n return true;\n }\n\n return false;\n } catch (error: any) {\n error.message = `[Formly Error] [Expression \"${path}\"] ${error.message}`;\n throw error;\n }\n },\n };\n }\n\n private checkExpressions(field: FormlyFieldConfigCache, ignoreCache = false) {\n if (!field) {\n return false;\n }\n\n let fieldChanged = false;\n if (field._expressions) {\n for (const key of Object.keys(field._expressions)) {\n field._expressions[key].callback?.(ignoreCache) && (fieldChanged = true);\n }\n }\n field.fieldGroup?.forEach((f) => this.checkExpressions(f, ignoreCache) && (fieldChanged = true));\n\n return fieldChanged;\n }\n\n private changeDisabledState(field: FormlyFieldConfigCache, value: boolean) {\n if (field.fieldGroup) {\n field.fieldGroup\n .filter((f: FormlyFieldConfigCache) => !f._expressions.hasOwnProperty('props.disabled'))\n .forEach((f) => this.changeDisabledState(f, value));\n }\n\n if (hasKey(field) && field.props.disabled !== value) {\n field.props.disabled = value;\n }\n }\n\n private changeHideState(field: FormlyFieldConfigCache, hide: boolean, resetOnHide: boolean) {\n if (field.fieldGroup) {\n field.fieldGroup\n .filter((f: FormlyFieldConfigCache) => f && !f._expressions.hide)\n .forEach((f) => this.changeHideState(f, hide, resetOnHide));\n }\n\n if (field.formControl && hasKey(field)) {\n defineHiddenProp(field, '_hide', !!(hide || field.hide));\n const c = field.formControl;\n if (c._fields?.length > 1) {\n updateValidity(c);\n }\n\n if (hide === true && (!c._fields || c._fields.every((f) => !!f._hide))) {\n unregisterControl(field, true);\n if (resetOnHide && field.resetOnHide) {\n assignFieldValue(field, undefined);\n field.formControl.reset({ value: undefined, disabled: field.formControl.disabled });\n field.options.fieldChanges.next({ value: undefined, field, type: 'valueChanges' });\n if (field.fieldGroup && field.formControl instanceof FormArray) {\n field.fieldGroup.length = 0;\n }\n }\n } else if (hide === false) {\n if (field.resetOnHide && !isUndefined(field.defaultValue) && isUndefined(getFieldValue(field))) {\n assignFieldValue(field, field.defaultValue);\n }\n registerControl(field, undefined, true);\n if (field.resetOnHide && field.fieldArray && field.fieldGroup?.length !== field.model?.length) {\n field.options.build(field);\n }\n }\n }\n\n if (field.options.fieldChanges) {\n field.options.fieldChanges.next(<FormlyValueChangeEvent>{ field, type: 'hidden', value: hide });\n }\n }\n\n private evalExpr(field: FormlyFieldConfigCache, prop: string, value: any) {\n if (prop.indexOf('model.') === 0) {\n const key = prop.replace(/^model\\./, ''),\n parent = field.fieldGroup ? field : field.parent;\n\n let control = field?.key === key ? field.formControl : field.form.get(key);\n if (!control && field.get(key)) {\n control = field.get(key).formControl;\n }\n assignFieldValue({ key, parent, model: field.model }, value);\n if (control && !(isNil(control.value) && isNil(value)) && control.value !== value) {\n control.patchValue(value);\n }\n } else {\n try {\n let target: any = field;\n const paths = this._evalExpressionPath(field, prop);\n const lastIndex = paths.length - 1;\n for (let i = 0; i < lastIndex; i++) {\n target = target[paths[i]];\n }\n\n target[paths[lastIndex]] = value;\n } catch (error: any) {\n error.message = `[Formly Error] [Expression \"${prop}\"] ${error.message}`;\n throw error;\n }\n\n if (['templateOptions.disabled', 'props.disabled'].includes(prop) && hasKey(field)) {\n this.changeDisabledState(field, value);\n }\n }\n\n this.emitExpressionChanges(field, prop, value);\n }\n\n private emitExpressionChanges(field: FormlyFieldConfigCache, property: string, value: any) {\n if (!field.options.fieldChanges) {\n return;\n }\n\n field.options.fieldChanges.next({\n field,\n type: 'expressionChanges',\n property,\n value,\n });\n }\n\n private _evalExpressionPath(field: FormlyFieldConfigCache, prop: string) {\n if (field._expressions[prop] && field._expressions[prop].paths) {\n return field._expressions[prop].paths;\n }\n\n let paths: string[] = [];\n if (prop.indexOf('[') === -1) {\n paths = prop.split('.');\n } else {\n prop\n .split(/[[\\]]{1,2}/) // https://stackoverflow.com/a/20198206\n .filter((p) => p)\n .forEach((path) => {\n const arrayPath = path.match(/['|\"](.*?)['|\"]/);\n if (arrayPath) {\n paths.push(arrayPath[1]);\n } else {\n paths.push(...path.split('.').filter((p) => p));\n }\n });\n }\n\n if (field._expressions[prop]) {\n field._expressions[prop].paths = paths;\n }\n\n return paths;\n }\n}\n","import { FormlyConfig } from '../../services/formly.config';\nimport { FormlyExtension, ValidatorOption, FormlyFieldConfigCache } from '../../models';\nimport { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\nimport { FORMLY_VALIDATORS, defineHiddenProp, isPromise, observe, clone, isObject, hasKey } from '../../utils';\nimport { updateValidity } from '../field-form/utils';\nimport { isObservable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport class FieldValidationExtension implements FormlyExtension {\n constructor(private config: FormlyConfig) {}\n\n onPopulate(field: FormlyFieldConfigCache) {\n this.initFieldValidation(field, 'validators');\n this.initFieldValidation(field, 'asyncValidators');\n }\n\n private initFieldValidation(field: FormlyFieldConfigCache, type: 'validators' | 'asyncValidators') {\n const validators: ValidatorFn[] = [];\n if (type === 'validators' && !(field.hasOwnProperty('fieldGroup') && !hasKey(field))) {\n validators.push(this.getPredefinedFieldValidation(field));\n }\n\n if (field[type]) {\n for (const validatorName of Object.keys(field[type])) {\n validatorName === 'validation'\n ? validators.push(...field[type].validation.map((v: any) => this.wrapNgValidatorFn(field, v)))\n : validators.push(this.wrapNgValidatorFn(field, field[type][validatorName], validatorName));\n }\n }\n\n defineHiddenProp(field, '_' + type, validators);\n }\n\n private getPredefinedFieldValidation(field: FormlyFieldConfigCache): ValidatorFn {\n let VALIDATORS: string[] = [];\n FORMLY_VALIDATORS.forEach((opt) =>\n observe(field, ['props', opt], ({ currentValue, firstChange }) => {\n VALIDATORS = VALIDATORS.filter((o) => o !== opt);\n if (opt === 'required' && currentValue != null && typeof currentValue !== 'boolean') {\n console.warn(\n `Formly: Invalid prop 'required' of type '${typeof currentValue}', expected 'boolean' (Field:${\n field.key\n }).`,\n );\n }\n\n if (currentValue != null && currentValue !== false) {\n VALIDATORS.push(opt);\n }\n if (!firstChange && field.formControl) {\n updateValidity(field.formControl);\n }\n }),\n );\n\n return (control: AbstractControl) => {\n if (VALIDATORS.length === 0) {\n return null;\n }\n\n return Validators.compose(\n VALIDATORS.map((opt) => () => {\n const value = field.props[opt];\n switch (opt) {\n case 'required':\n return Validators.required(control);\n case 'pattern':\n return Validators.pattern(value)(control);\n case 'minLength':\n const minLengthResult = Validators.minLength(value)(control);\n const minLengthKey =\n this.config.getValidatorMessage('minlength') || field.validation?.messages?.minlength\n ? 'minlength'\n : 'minLength';\n\n return minLengthResult ? { [minLengthKey]: minLengthResult.minlength } : null;\n case 'maxLength':\n const maxLengthResult = Validators.maxLength(value)(control);\n const maxLengthKey =\n this.config.getValidatorMessage('maxlength') || field.validation?.messages?.maxlength\n ? 'maxlength'\n : 'maxLength';\n\n return maxLengthResult ? { [maxLengthKey]: maxLengthResult.maxlength } : null;\n case 'min':\n return Validators.min(value)(control);\n case 'max':\n return Validators.max(value)(control);\n default:\n return null;\n }\n }),\n )!(control);\n };\n }\n\n private wrapNgValidatorFn(field: FormlyFieldConfigCache, validator: any, validatorName?: string) {\n let validatorOption: ValidatorOption;\n if (typeof validator === 'string') {\n validatorOption = clone(this.config.getValidator(validator));\n }\n\n if (typeof validator === 'object' && validator.name) {\n validatorOption = clone(this.config.getValidator(validator.name));\n if (validator.options) {\n validatorOption.options = validator.options;\n }\n }\n\n if (typeof validator === 'object' && validator.expression) {\n const { expression, ...options } = validator;\n validatorOption = {\n name: validatorName,\n validation: expression,\n options: Object.keys(options).length > 0 ? options : null,\n };\n }\n\n if (typeof validator === 'function') {\n validatorOption = {\n name: validatorName,\n validation: validator,\n };\n }\n\n return (control: AbstractControl) => {\n const errors: any = validatorOption.validation(control, field, validatorOption.options);\n if (isPromise(errors)) {\n return errors.then((v) => this.handleResult(field, validatorName ? !!v : v, validatorOption));\n }\n\n if (isObservable(errors)) {\n return errors.pipe(map((v) => this.handleResult(field, validatorName ? !!v : v, validatorOption)));\n }\n\n return this.handleResult(field, validatorName ? !!errors : errors, validatorOption);\n };\n }\n\n private handleResult(field: FormlyFieldConfigCache, errors: any, { name, options }: ValidatorOption) {\n if (typeof errors === 'boolean') {\n errors = errors ? null : { [name]: options ? options : true };\n }\n\n const ctrl = field.formControl;\n ctrl?._childrenErrors?.[name]?.();\n\n if (isObject(errors)) {\n Object.keys(errors).forEach((name) => {\n const errorPath = errors[name].errorPath ? errors[name].errorPath : options?.errorPath;\n\n const childCtrl = errorPath ? field.formControl.get(errorPath) : null;\n if (childCtrl) {\n const { errorPath: _errorPath, ...opts } = errors[name];\n childCtrl.setErrors({ ...(childCtrl.errors || {}), [name]: opts });\n\n !ctrl._childrenErrors && defineHiddenProp(ctrl, '_childrenErrors', {});\n ctrl._childrenErrors[name] = () => {\n const { [name]: _toDelete, ...childErrors } = childCtrl.errors || {};\n childCtrl.setErrors(Object.keys(childErrors).length === 0 ? null : childErrors);\n };\n }\n });\n }\n\n return errors;\n }\n}\n","import { FormlyExtension, FormlyFieldConfigCache } from '../../models';\nimport {\n FormGroup,\n FormControl,\n AbstractControlOptions,\n Validators,\n ValidatorFn,\n AsyncValidatorFn,\n} from '@angular/forms';\nimport { getFieldValue, defineHiddenProp, hasKey, getKeyPath } from '../../utils';\nimport { registerControl, findControl, updateValidity } from './utils';\nimport { of } from 'rxjs';\n\nexport class FieldFormExtension implements FormlyExtension {\n private root: FormlyFieldConfigCache;\n prePopulate(field: FormlyFieldConfigCache) {\n if (!this.root) {\n this.root = field;\n }\n\n if (field.parent) {\n Object.defineProperty(field, 'form', {\n get: () => field.parent!.formControl,\n configurable: true,\n });\n }\n }\n\n onPopulate(field: FormlyFieldConfigCache) {\n if (field.hasOwnProperty('fieldGroup') && !hasKey(field)) {\n defineHiddenProp(field, 'formControl', field.form);\n } else {\n this.addFormControl(field);\n }\n }\n\n postPopulate(field: FormlyFieldConfigCache) {\n if (this.root !== field) {\n return;\n }\n\n this.root = null;\n const markForCheck = this.setValidators(field);\n if (markForCheck && field.parent) {\n let parent = field.parent;\n while (parent) {\n if (hasKey(parent) || !parent.parent) {\n updateValidity(parent.formControl, true);\n }\n parent = parent.parent;\n }\n }\n }\n\n private addFormControl(field: FormlyFieldConfigCache) {\n let control = findControl(field);\n if (field.fieldArray) {\n return;\n }\n\n if (!control) {\n const controlOptions: AbstractControlOptions = { updateOn: field.modelOptions.updateOn };\n\n if (field.fieldGroup) {\n control = new FormGroup({}, controlOptions);\n } else {\n const value = hasKey(field) ? getFieldValue(field) : field.defaultValue;\n control = new FormControl(\n { value, disabled: !!field.props.disabled },\n { ...controlOptions, initialValueIsDefault: true },\n );\n }\n } else {\n if (control instanceof FormControl) {\n const value = hasKey(field) ? getFieldValue(field) : field.defaultValue;\n (control as any).defaultValue = value;\n }\n }\n\n registerControl(field, control);\n }\n\n private setValidators(field: FormlyFieldConfigCache, disabled = false) {\n if (disabled === false && hasKey(field) && field.props?.disabled) {\n disabled = true;\n }\n\n let markForCheck = false;\n field.fieldGroup?.forEach((f) => f && this.setValidators(f, disabled) && (markForCheck = true));\n if (hasKey(field) || !field.parent || (!hasKey(field) && !field.fieldGroup)) {\n const { formControl: c } = field;\n if (c) {\n if (hasKey(field) && c instanceof FormControl) {\n if (disabled && c.enabled) {\n c.disable({ emitEvent: false, onlySelf: true });\n markForCheck = true;\n }\n\n if (!disabled && c.disabled) {\n c.enable({ emitEvent: false, onlySelf: true });\n markForCheck = true;\n }\n }\n\n if (null === c.validator && this.hasValidators(field, '_validators')) {\n c.setValidators(() => {\n const v = Validators.compose(this.mergeValidators<ValidatorFn>(field, '_validators'));\n\n return v ? v(c) : null;\n });\n markForCheck = true;\n }\n\n if (null === c.asyncValidator && this.hasValidators(field, '_asyncValidators')) {\n c.setAsyncValidators(() => {\n const v = Validators.composeAsync(this.mergeValidators<AsyncValidatorFn>(field, '_asyncValidators'));\n return v ? v(c) : of(null);\n });\n markForCheck = true;\n }\n\n if (markForCheck) {\n updateValidity(c, true);\n\n // update validity of `FormGroup` instance created by field with nested key.\n let parent = c.parent;\n for (let i = 1; i < getKeyPath(field).length; i++) {\n if (parent) {\n updateValidity(parent, true);\n parent = parent.parent;\n }\n }\n }\n }\n }\n\n return markForCheck;\n }\n\n private hasValidators(field: FormlyFieldConfigCache, type: '_validators' | '_asyncValidators'): boolean {\n const c = field.formControl;\n if (c?._fields?.length > 1 && c._fields.some((f) => f[type].length > 0)) {\n return true;\n } else if (field[type].length > 0) {\n return true;\n }\n\n return field.fieldGroup?.some((f) => f?.fieldGroup && !hasKey(f) && this.hasValidators(f, type));\n }\n\n private mergeValidators<T>(field: FormlyFieldConfigCache, type: '_validators' | '_asyncValidators'): T[] {\n const validators: any = [];\n const c = field.formControl;\n if (c?._fields?.length > 1) {\n c._fields\n .filter((f: FormlyFieldConfigCache) => !f._hide)\n .forEach((f: FormlyFieldConfigCache) => validators.push(...f[type]));\n } else if (field[type]) {\n validators.push(...field[type]);\n }\n\n if (field.fieldGroup) {\n field.fieldGroup\n .filter((f) => f?.fieldGroup && !hasKey(f))\n .forEach((f) => validators.push(...this.mergeValidators(f, type)));\n }\n\n return validators;\n }\n}\n","import { ComponentRef } from '@angular/core';\nimport { FormlyConfig } from '../../services/formly.config';\nimport { FormlyFieldConfigCache, FormlyValueChangeEvent, FormlyExtension, FormlyFieldConfig } from '../../models';\nimport {\n getFieldId,\n assignFieldValue,\n isUndefined,\n getFieldValue,\n reverseDeepMerge,\n defineHiddenProp,\n clone,\n getField,\n markFieldForCheck,\n hasKey,\n observe,\n isHiddenField,\n} from '../../utils';\nimport { Subject } from 'rxjs';\n\nexport class CoreExtension implements FormlyExtension {\n private formId = 0;\n constructor(private config: FormlyConfig) {}\n\n prePopulate(field: FormlyFieldConfigCache) {\n const root = field.parent;\n this.initRootOptions(field);\n this.initFieldProps(field);\n if (root) {\n Object.defineProperty(field, 'options', { get: () => root.options, configurable: true });\n Object.defineProperty(field, 'model', {\n get: () => (hasKey(field) && field.fieldGroup ? getFieldValue(field) : root.model),\n configurable: true,\n });\n }\n\n Object.defineProperty(field, 'get', {\n value: (key: FormlyFieldConfig['key']) => getField(field, key),\n configurable: true,\n });\n\n this.getFieldComponentInstance(field).prePopulate?.(field);\n }\n\n onPopulate(field: FormlyFieldConfigCache) {\n this.initFieldOptions(field);\n this.getFieldComponentInstance(field).onPopulate?.(field);\n if (field.fieldGroup) {\n field.fieldGroup.forEach((f, index) => {\n if (f) {\n Object.defineProperty(f, 'parent', { get: () => field, configurable: true });\n Object.defineProperty(f, 'index', { get: () => index, configurable: true });\n }\n this.formId++;\n });\n }\n }\n\n postPopulate(field: FormlyFieldConfigCache) {\n this.getFieldComponentInstance(field).postPopulate?.(field);\n }\n\n private initFieldProps(field: FormlyFieldConfigCache) {\n field.props ??= field.templateOptions;\n Object.defineProperty(field, 'templateOptions', {\n get: () => field.props,\n set: (props) => (field.props = props),\n configurable: true,\n });\n }\n\n private initRootOptions(field: FormlyFieldConfigCache) {\n if (field.parent) {\n return;\n }\n\n const options = field.options;\n field.options.formState = field.options.formState || {};\n if (!options.showError) {\n options.showError = this.config.extras.showError;\n }\n\n if (!options.fieldChanges) {\n defineHiddenProp(options, 'fieldChanges', new Subject<FormlyValueChangeEvent>());\n }\n\n if (!options._hiddenFieldsForCheck) {\n options._hiddenFieldsForCheck = [];\n }\n\n options._markForCheck = (f) => {\n console.warn(`Formly: 'options._markForCheck' is deprecated since v6.0, use 'options.detectChanges' instead.`);\n options.detectChanges(f);\n };\n\n options._detectChanges = (f: FormlyFieldConfigCache) => {\n if (f._componentRefs) {\n markFieldForCheck(f);\n }\n\n f.fieldGroup?.forEach((f) => f && options._detectChanges(f));\n };\n\n options.detectChanges = (f: FormlyFieldConfigCache) => {\n f.options.checkExpressions?.(f);\n options._detectChanges(f);\n };\n\n options.resetModel = (model?: any) => {\n model = clone(model ?? options._initialModel);\n if (field.model) {\n Object.keys(field.model).forEach((k) => delete field.model[k]);\n Object.assign(field.model, model || {});\n }\n\n observe(options, ['parentForm', 'submitted']).setValue(false, false);\n options.build(field);\n field.form.reset(field.model);\n };\n\n options.updateInitialValue = (model?: any) => (options._initialModel = clone(model ?? field.model));\n field.options.updateInitialValue();\n }\n\n private initFieldOptions(field: FormlyFieldConfigCache) {\n reverseDeepMerge(field, {\n id: getFieldId(`formly_${this.formId}`, field, field.index),\n hooks: {},\n modelOptions: {},\n validation: { messages: {} },\n props:\n !field.type || !hasKey(field)\n ? {}\n : {\n label: '',\n placeholder: '',\n disabled: false,\n },\n });\n\n if (this.config.extras.resetFieldOnHide && field.resetOnHide !== false) {\n field.resetOnHide = true;\n }\n\n if (\n field.type !== 'formly-template' &&\n (field.template || field.expressions?.template || field.expressionProperties?.template)\n ) {\n field.type = 'formly-template';\n }\n\n if (!field.type && field.fieldGroup) {\n field.type = 'formly-group';\n }\n\n if (field.type) {\n this.config.getMergedField(field);\n }\n\n if (\n hasKey(field) &&\n !isUndefined(field.defaultValue) &&\n isUndefined(getFieldValue(field)) &&\n !isHiddenField(field)\n ) {\n assignFieldValue(field, field.defaultValue);\n }\n\n field.wrappers = field.wrappers || [];\n }\n\n private getFieldComponentInstance(field: FormlyFieldConfigCache) {\n const componentRefInstance = () => {\n let componentRef = this.config.resolveFieldTypeRef(field);\n\n const fieldComponentRef = field._componentRefs?.slice(-1)[0];\n if (\n fieldComponentRef instanceof ComponentRef &&\n fieldComponentRef?.componentType === componentRef?.componentType\n ) {\n componentRef = fieldComponentRef as any;\n }\n\n return componentRef?.instance as any;\n };\n\n if (!field._proxyInstance) {\n defineHiddenProp(\n field,\n '_proxyInstance',\n new Proxy({} as FormlyExtension, {\n get: (_, prop) => componentRefInstance()?.[prop],\n set: (_, prop, value) => (componentRefInstance()[prop] = value),\n }),\n );\n }\n\n return field._proxyInstance;\n }\n}\n","import { NgModule, ModuleWithProviders, Inject, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyForm } from './components/formly.form';\nimport { FormlyField } from './components/formly.field';\nimport { FormlyAttributes } from './templates/formly.attributes';\nimport { FormlyConfig, FORMLY_CONFIG } from './services/formly.config';\nimport { FormlyFormBuilder } from './services/formly.builder';\nimport { FormlyGroup } from './templates/formly.group';\nimport { FormlyValidationMessage } from './templates/formly.validation-message';\nimport { FormlyTemplateType } from './templates/field-template.type';\n\nimport { FieldExpressionExtension } from './extensions/field-expression/field-expression';\nimport { FieldValidationExtension } from './extensions/field-validation/field-validation';\nimport { FieldFormExtension } from './extensions/field-form/field-form';\nimport { CoreExtension } from './extensions/core/core';\nimport { ConfigOption } from './models';\nimport { FormlyTemplate } from './components/formly.template';\n\nexport function defaultFormlyConfig(config: FormlyConfig): ConfigOption {\n return {\n types: [\n { name: 'formly-group', component: FormlyGroup },\n { name: 'formly-template', component: FormlyTemplateType },\n ],\n extensions: [\n { name: 'core', extension: new CoreExtension(config), priority: -250 },\n { name: 'field-validation', extension: new FieldValidationExtension(config), priority: -200 },\n { name: 'field-form', extension: new FieldFormExtension(), priority: -150 },\n { name: 'field-expression', extension: new FieldExpressionExtension(), priority: -100 },\n ],\n };\n}\n\n@NgModule({\n declarations: [\n FormlyTemplate,\n FormlyForm,\n FormlyField,\n FormlyAttributes,\n FormlyGroup,\n FormlyValidationMessage,\n FormlyTemplateType,\n ],\n exports: [FormlyTemplate, FormlyForm, FormlyField, FormlyAttributes, FormlyGroup, FormlyValidationMessage],\n imports: [CommonModule],\n})\nexport class FormlyModule {\n static forRoot(config: ConfigOption = {}): ModuleWithProviders<FormlyModule> {\n return {\n ngModule: FormlyModule,\n providers: [\n { provide: FORMLY_CONFIG, multi: true, useFactory: defaultFormlyConfig, deps: [FormlyConfig] },\n { provide: FORMLY_CONFIG, useValue: config, multi: true },\n FormlyConfig,\n FormlyFormBuilder,\n ],\n };\n }\n\n static forChild(config: ConfigOption = {}): ModuleWithProviders<FormlyModule> {\n return {\n ngModule: FormlyModule,\n providers: [\n { provide: FORMLY_CONFIG, multi: true, useFactory: defaultFormlyConfig, deps: [FormlyConfig] },\n { provide: FORMLY_CONFIG, useValue: config, multi: true },\n FormlyFormBuilder,\n ],\n };\n }\n\n constructor(configService: FormlyConfig, @Optional() @Inject(FORMLY_CONFIG) configs: ConfigOption[] = []) {\n if (!configs) {\n return;\n }\n\n configs.forEach((config) => configService.addConfig(config));\n }\n}\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib/core';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.FormlyConfig","i2.FormlyFieldTemplates","i1.FormlyFormBuilder","i2.FormlyConfig","i3.FormlyFieldTemplates","i4.FormlyField","i1.FormlyField","i2"],"mappings":";;;;;;;;;;;AAMgB,SAAA,uBAAuB,CAAC,IAAS,EAAE,QAAkB,EAAA;IACnE,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChE,IAAA,IAAI,CAAC,mBAAmB,GAAG,MAAK,GAAG,CAAC;AACpC,IAAA,QAAQ,EAAE,CAAC;AACX,IAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AACjD,CAAC;SAEe,UAAU,CAAC,MAAc,EAAE,KAAwB,EAAE,KAAsB,EAAA;IACzF,IAAI,KAAK,CAAC,EAAE,EAAE;QACZ,OAAO,KAAK,CAAC,EAAE,CAAC;AACjB,KAAA;AACD,IAAA,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACtB,IAAA,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE;QAC3B,IAAI,GAAG,UAAU,CAAC;AACnB,KAAA;IAED,IAAI,IAAI,YAAY,IAAI,EAAE;QACxB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;AACxC,KAAA;AAED,IAAA,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AAEK,SAAU,MAAM,CAAC,KAAwB,EAAA;AAC7C,IAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtG,CAAC;AAEK,SAAU,UAAU,CAAC,KAA6B,EAAA;;AACtD,IAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAClB,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;;IAGD,IAAI,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,MAAK,KAAK,CAAC,GAAG,EAAE;QACrC,IAAI,IAAI,GAAwB,EAAE,CAAC;AACnC,QAAA,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AACjC,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAC/F,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzD,SAAA;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACnC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3B,SAAA;AAAM,aAAA;YACL,IAAI,GAAG,CAAC,CAAG,EAAA,KAAK,CAAC,GAAG,CAAA,CAAE,CAAC,CAAC;AACzB,SAAA;AAED,QAAA,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/D,KAAA;IAED,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAEM,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAEjF,SAAA,gBAAgB,CAAC,KAA6B,EAAE,KAAU,EAAA;AACxE,IAAA,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAC9B,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO;AACR,KAAA;IAED,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,OAAO,IAAI,CAAC,MAAM,EAAE;AAClB,QAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACnB,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;AACzC,KAAA;AAED,IAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,EAAE;AAC5C,QAAA,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACvE,QAAA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACZ,OAAO;AACR,KAAA;IAED,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC;SAEe,gBAAgB,CAAC,KAAU,EAAE,KAAe,EAAE,KAAU,EAAA;AACtE,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;YAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACpD,SAAA;AAED,QAAA,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACrB,KAAA;AAED,IAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAEK,SAAU,aAAa,CAAC,KAAwB,EAAA;AACpD,IAAA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC5D,IAAA,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;QACpC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACrB,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACf,CAAC;SAEe,gBAAgB,CAAC,IAAS,EAAE,GAAG,IAAW,EAAA;AACxD,IAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACnB,QAAA,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE;AACxB,YAAA,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;gBACtD,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,aAAA;AAAM,iBAAA,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE;gBACpD,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7C,aAAA;AACF,SAAA;AACH,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAED;AACM,SAAU,KAAK,CAAC,KAAU,EAAA;IAC9B,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAEK,SAAU,WAAW,CAAC,KAAU,EAAA;IACpC,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AAEK,SAAU,aAAa,CAAC,KAAU,EAAA;IACtC,OAAO,KAAK,KAAK,EAAE,CAAC;AACtB,CAAC;AAEK,SAAU,UAAU,CAAC,KAAU,EAAA;AACnC,IAAA,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAEe,SAAA,cAAc,CAAC,IAAS,EAAE,IAAS,EAAA;AACjD,IAAA,QACE,QAAQ,CAAC,IAAI,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC;QACd,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;AAC3D,QAAA,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAC7C;AACJ,CAAC;AAEK,SAAU,QAAQ,CAAC,CAAM,EAAA;IAC7B,OAAO,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AAC5C,CAAC;AAEK,SAAU,SAAS,CAAC,GAAQ,EAAA;IAChC,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC;AACjD,CAAC;AAEK,SAAU,KAAK,CAAC,KAAU,EAAA;AAC9B,IAAA,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,YAAY,CAAC,KAAK,CAAC;AACnB,QAAA,KAAK,YAAY,WAAW;sCACE,KAAK,CAAC,qCAAqC;QACzE,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAC7E;AACA,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;IAED,IAAI,KAAK,YAAY,GAAG,EAAE;AACxB,QAAA,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,KAAA;IAED,IAAI,KAAK,YAAY,GAAG,EAAE;AACxB,QAAA,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,KAAA;IAED,IAAI,KAAK,YAAY,UAAU,EAAE;AAC/B,QAAA,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAA;IAED,IAAI,KAAK,YAAY,WAAW,EAAE;AAChC,QAAA,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAA;IAED,IAAI,KAAK,YAAY,WAAW,EAAE;AAChC,QAAA,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AAC/B,KAAA;;IAGD,IAAI,KAAK,CAAC,gBAAgB,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACrD,QAAA,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;AACtB,KAAA;IAED,IAAI,KAAK,YAAY,eAAe,EAAE;AACpC,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IAED,IAAI,KAAK,YAAY,IAAI,EAAE;QACzB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAClC,KAAA;AAED,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,KAAA;;;IAID,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;;;AAGpC,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,KAAI;QAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,GAAG,EAAE;YAChB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/C,SAAA;AAAM,aAAA;YACL,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;SAEe,gBAAgB,CAAC,KAAU,EAAE,IAAY,EAAE,YAAiB,EAAA;IAC1E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9F,IAAA,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;AAC7B,CAAC;SAiBe,WAAW,CAAU,MAAyB,EAAE,KAAe,EAAE,KAAiB,EAAA;IAChG,IAAI,SAAS,GAAe,EAAE,CAAC;IAE/B,MAAM,WAAW,GAAG,MAAK;QACvB,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC5C,SAAS,GAAG,EAAE,CAAC;AACjB,KAAC,CAAC;AACF,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAI;AACxE,QAAA,CAAC,WAAW,IAAI,KAAK,EAAE,CAAC;AAExB,QAAA,WAAW,EAAE,CAAC;AACd,QAAA,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;YACxE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACzC,gBAAA,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/D,aAAC,CAAC,CAAC;AACJ,SAAA;AACH,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,MAAK;QACV,QAAQ,CAAC,WAAW,EAAE,CAAC;AACvB,QAAA,WAAW,EAAE,CAAC;AAChB,KAAC,CAAC;AACJ,CAAC;SAEe,OAAO,CAAU,CAAoB,EAAE,KAAe,EAAE,KAAqB,EAAA;AAC3F,IAAA,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;AACjB,QAAA,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AACvC,KAAA;IAED,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACpD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACzD,SAAA;QACD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,KAAA;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAA,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACvB,QAAA,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC3D,KAAA;IAED,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE;AAC/B,QAAA,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,KAAA;AAED,IAAA,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AACjD,QAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAA,KAAK,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,QAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AAClD,YAAA,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC5F,YAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;gBACjC,UAAU;AACV,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,GAAG,EAAE,MAAM,KAAK,CAAC,KAAK;AACtB,gBAAA,GAAG,EAAE,CAAC,YAAY,KAAI;AACpB,oBAAA,IAAI,YAAY,KAAK,KAAK,CAAC,KAAK,EAAE;AAChC,wBAAA,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,wBAAA,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC;wBAC3B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACrG,qBAAA;iBACF;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;AACF,KAAA;IAED,OAAO;AACL,QAAA,QAAQ,CAAC,YAAe,EAAE,SAAS,GAAG,IAAI,EAAA;AACxC,YAAA,IAAI,YAAY,KAAK,KAAK,CAAC,KAAK,EAAE;gBAChC,OAAO;AACR,aAAA;AAED,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,YAAA,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC;YAC3B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAClC,gBAAA,IAAI,QAAQ,KAAK,KAAK,IAAI,SAAS,EAAE;oBACnC,QAAQ,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,iBAAA;AACH,aAAC,CAAC,CAAC;SACJ;QACD,WAAW,GAAA;AACT,YAAA,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC;AACzE,YAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,gBAAA,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC3B,aAAA;SACF;KACF,CAAC;AACJ,CAAC;AAEe,SAAA,QAAQ,CAAC,CAAoB,EAAE,GAA6B,EAAA;IAC1E,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAW,CAAC;AAC3D,IAAA,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;AACjB,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;AAED,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QACvD,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAW,CAAC;QACrE,IAAI,CAAC,KAAK,GAAG,EAAE;AACb,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;QAED,IAAI,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAG,EAAA,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;AAC5D,YAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,YAAA,IAAI,KAAK,EAAE;AACT,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;AACF,KAAA;AAED,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC;AAEK,SAAU,iBAAiB,CAAC,KAA6B,EAAA;;IAC7D,CAAA,EAAA,GAAA,KAAK,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,CAAC,GAAG,KAAI;;QAEpC,IAAI,GAAG,YAAY,YAAY,EAAE;YAC/B,MAAM,iBAAiB,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC9D,iBAAiB,CAAC,YAAY,EAAE,CAAC;AAClC,SAAA;AAAM,aAAA;YACL,GAAG,CAAC,YAAY,EAAE,CAAC;AACpB,SAAA;AACH,KAAC,CAAC,CAAC;AACL,CAAC;AAEK,SAAU,YAAY,CAAC,MAAc,EAAA;IACzC,OAAO,MAAM,YAAY,WAAW,CAAC;AACvC,CAAC;AAEK,SAAU,aAAa,CAAC,KAAwB,EAAA;IACpD,MAAM,QAAQ,GAAG,CAAC,CAAoB,KAAK,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,CAAC,CAAC,IAAI,KAAI,MAAA,CAAC,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAA,IAAI,CAAC,CAAC,cAAc,CAAA,EAAA,CAAC;AAC7F,IAAA,IAAI,eAAe,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE;AACzC,QAAA,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC1B,QAAA,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAClC,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACxB,SAAA;QACD,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,KAAA;IAED,OAAO,CAAC,eAAe,CAAC;AAC1B;;AC7WA;;AAEG;MACU,aAAa,GAAG,IAAI,cAAc,CAAiB,eAAe,EAAE;AAGjF;;AAEG;MAEU,YAAY,CAAA;AADzB,IAAA,WAAA,GAAA;AAEE,QAAA,IAAK,CAAA,KAAA,GAAmC,EAAE,CAAC;AAC3C,QAAA,IAAU,CAAA,UAAA,GAAwC,EAAE,CAAC;AACrD,QAAA,IAAQ,CAAA,QAAA,GAAsC,EAAE,CAAC;AACjD,QAAA,IAAQ,CAAA,QAAA,GAA2D,EAAE,CAAC;QAEtE,IAAA,CAAA,MAAM,GAAwC;AAC5C,YAAA,iBAAiB,EAAE,aAAa;AAChC,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,wBAAwB,EAAE,IAAI;AAC9B,YAAA,SAAS,CAAC,KAAgB,EAAA;;AACxB,gBAAA,QACE,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,WAAW,0CAAE,OAAO;AAC1B,qBAAC,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAI,CAAA,EAAA,GAAA,KAAK,CAAC,OAAO,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAA,IAAI,CAAC,EAAC,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAA,CAAC,EACrG;aACH;SACF,CAAC;AACF,QAAA,IAAU,CAAA,UAAA,GAAwC,EAAE,CAAC;AACrD,QAAA,IAAO,CAAA,OAAA,GAA4E,EAAE,CAAC;AAE9E,QAAA,IAAoB,CAAA,oBAAA,GAAwD,EAAE,CAAC;KA0OxF;AAxOC,IAAA,SAAS,CAAC,MAAoB,EAAA;QAC5B,IAAI,MAAM,CAAC,KAAK,EAAE;AAChB,YAAA,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,SAAA;QACD,IAAI,MAAM,CAAC,UAAU,EAAE;AACrB,YAAA,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AACxE,SAAA;QACD,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnB,YAAA,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,SAAA;QACD,IAAI,MAAM,CAAC,kBAAkB,EAAE;YAC7B,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AAClH,SAAA;QACD,IAAI,MAAM,CAAC,UAAU,EAAE;AACrB,YAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC7C,SAAA;QACD,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,MAAM,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,IAAI,CAAC,MAAM,CAAA,EAAK,MAAM,CAAC,MAAM,CAAE,CAAC;AACpD,SAAA;QACD,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACP,IAAI,CAAC,OAAO,CACZ,EAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,sCAAW,GAAG,CAAA,EAAA,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAA,CAAA,CAAG,EAAE,EAAE,CAAC,CACpF,CAAC;AACH,SAAA;KACF;AAED;;;AAGG;AACH,IAAA,OAAO,CAAC,OAAkC,EAAA;AACxC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC1B,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC7B,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAe,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;AAC/D,aAAA;AAEA,YAAA,CAAC,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,CAA0B,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAChG,gBAAA,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAChC,oBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAQ,CAAC;AACvD,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,OAAO,CAAC,IAA+B,EAAE,eAAe,GAAG,KAAK,EAAA;QAC9D,IAAI,IAAI,YAAY,IAAI,EAAE;AACxB,YAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACnE,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACrB,YAAA,IAAI,eAAe,EAAE;AACnB,gBAAA,MAAM,IAAI,KAAK,CACb,4BAA4B,IAAI,CAAA,+FAAA,CAAiG,CAClI,CAAC;AACH,aAAA;AAED,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAE7B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzB;;IAGD,cAAc,CAAC,QAA2B,EAAE,EAAA;;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;AACR,SAAA;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC9C,SAAA;AAED,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC;AACjF,QAAA,IAAI,cAAc,EAAE;AAClB,YAAA,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACzC,SAAA;AAED,QAAA,IAAI,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,YAAY,EAAE;YACvB,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;gBACpC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC;AAC3D,gBAAA,IAAI,cAAc,EAAE;AAClB,oBAAA,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACzC,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAA,EAAA,GAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,EAAE;YAC1C,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC/D,SAAA;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpC,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,SAAA;KACF;;IAGD,mBAAmB,CAAC,QAAgC,EAAE,EAAA;QACpD,MAAM,IAAI,GAAuD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1F,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE;YACzC,OAAO,IAAI,CAAC,aAAa,CAAC;AAC3B,SAAA;QAED,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AACvD,QAAA,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,EAAE;AACpC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,eAAe,CAAY,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3G,QAAA,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI;YACF,YAAY,CAAC,OAAO,EAAE,CAAC;AACxB,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,CAAiE,8DAAA,EAAA,KAAK,CAAC,IAAI,CAAG,CAAA,CAAA,EAAE,CAAC,CAAC,CAAC;AAClG,SAAA;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;AAED,IAAA,UAAU,CAAC,OAAsB,EAAA;QAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACtC,IAAI,OAAO,CAAC,KAAK,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAiC,EAAA;QAC1C,IAAI,IAAI,YAAY,IAAI,EAAE;AACxB,YAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACnE,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACxB,YAAA,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,CAAA,+FAAA,CAAiG,CACrI,CAAC;AACH,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC5B;;IAGD,cAAc,CAAC,IAAY,EAAE,IAAY,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAe,EAAE,CAAC;AACnC,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;AAChC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,SAAA;KACF;AAED,IAAA,YAAY,CAAC,OAAwB,EAAA;QACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;KACzC;AAED,IAAA,YAAY,CAAC,IAAY,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CACb,iCAAiC,IAAI,CAAA,+FAAA,CAAiG,CACvI,CAAC;AACH,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,mBAAmB,CAAC,IAAY,EAAE,OAA2C,EAAA;AAC3E,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AAC9B,QAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;YACjD,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAS,CAAC;AAC7E,YAAA,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;AACpB,gBAAA,OAAO,CAAC,IAAI,CACV,CAAA,qDAAA,EAAwD,IAAI,CAAA,iCAAA,EAAoC,UAAU,CAAC,IAAI,CAAC,CAAY,UAAA,CAAA,CAC7H,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;AAC3C,aAAA;AACF,SAAA;KACF;AAED,IAAA,mBAAmB,CAAC,IAAY,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC5B;AAEO,IAAA,mBAAmB,CAAC,gBAAmC,EAAA;;AAE7D,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,KAAI;;YAC3C,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,eAAe,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAC9B,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CACtC,EAAA,EAAA,CAAC,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,SAAS,EAAA,CAClD,CAAC;AACJ,SAAC,CAAC,CAAC;;QAEH,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;aACrD,GAAG,CAAC,MAAM,CAAC;aACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACrB,MAAM,CACL,CAAC,GAAG,EAAE,IAAI,MACL,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,GACH,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAClC,CAAA,EACF,EAAE,CACH,CAAC;KACL;AAEO,IAAA,iBAAiB,CAAC,IAAY,EAAA;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;YAC7B,OAAO;AACR,SAAA;AAED,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;AACrD,SAAA;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;AACnD,SAAA;KACF;;0GA9PU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA,CAAA;4FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCnBrB,iBAAiB,CAAA;AAC5B,IAAA,WAAA,CACU,MAAoB,EACpB,QAAkB,EACN,gBAAkC,EAClC,UAA8B,EAAA;AAH1C,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;AACpB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AACN,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAoB;KAChD;IAEJ,SAAS,CAAC,IAA2B,EAAE,UAAA,GAAkC,EAAE,EAAE,KAAU,EAAE,OAA0B,EAAA;AACjH,QAAA,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;KAClD;AAED,IAAA,KAAK,CAAC,KAAwB,EAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;AAChC,YAAA,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;AAC9G,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACjB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AAED,QAAA,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAK;;AACvC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;YAEnB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAK,KAAgC,CAAC,UAAU,EAAE;;AAEjE,gBAAA,MAAM,OAAO,GAAI,KAAgC,CAAC,OAAO,CAAC;gBAE1D,IAAI,KAAK,CAAC,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;;;oBAGxC,CAAA,EAAA,GAAA,OAAO,CAAC,qBAAqB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5C,iBAAA;gBAED,CAAA,EAAA,GAAA,OAAO,CAAC,gBAAgB,MAAxB,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,OAAO,EAAoB,KAAK,EAAE,IAAI,CAAC,CAAC;gBACxC,CAAA,EAAA,GAAA,OAAO,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAtB,OAAO,EAAkB,KAAK,CAAC,CAAC;AACjC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,MAAM,CAAC,KAA6B,EAAA;;QAC1C,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;AACR,SAAA;AAED,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzD,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,eAAK,OAAA,CAAA,EAAA,GAAA,SAAS,CAAC,WAAW,+CAArB,SAAS,EAAe,KAAK,CAAC,CAAA,EAAA,CAAC,CAAC;QAClE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,eAAK,OAAA,CAAA,EAAA,GAAA,SAAS,CAAC,UAAU,+CAApB,SAAS,EAAc,KAAK,CAAC,CAAA,EAAA,CAAC,CAAC;AACjE,QAAA,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,0CAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,eAAK,OAAA,CAAA,EAAA,GAAA,SAAS,CAAC,YAAY,+CAAtB,SAAS,EAAgB,KAAK,CAAC,CAAA,EAAA,CAAC,CAAC;KACpE;AAEO,IAAA,WAAW,CAAC,KAA6B,EAAA;AAC/C,QAAA,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QAC7C,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAChC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;AACpC,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAE9B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAC9B,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvE,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACtB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvD,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAClB,YAAA,OAAO,CAAC,UAAU,GAAG,MAAK;AACxB,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAA,mFAAA,CAAqF,CAAC,CAAC;AACpG,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpB,aAAC,CAAC;YAEF,OAAO,CAAC,KAAK,GAAG,CAAC,CAAuB,GAAA,KAAK,KAAI;AAC/C,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEd,gBAAA,OAAO,CAAC,CAAC;AACX,aAAC,CAAC;AACH,SAAA;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;YAC1C,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACzD,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,KAAI;gBAChE,IAAI,CAAC,WAAW,EAAE;AAChB,oBAAA,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;;+GAvFU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADJ,MAAM,EAAA,CAAA,CAAA;4FACnB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;8BAK7B,QAAQ;;8BACR,QAAQ;;;;SCPG,iBAAiB,CAAC,KAA6B,EAAE,SAAS,GAAG,KAAK,EAAA;AAChF,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE,IAAA,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AACvC,KAAA;AAED,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAA+B,CAAC;IACrD,IAAI,CAAC,IAAI,EAAE;QACT,OAAO;AACR,KAAA;AAED,IAAA,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC;IAC3B,IAAI,IAAI,YAAY,SAAS,EAAE;AAC7B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,CAAC;AAC1D,QAAA,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC1B,SAAA;AACF,KAAA;SAAM,IAAI,IAAI,YAAY,SAAS,EAAE;AACpC,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE;AAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/B,SAAA;AACF,KAAA;AAED,IAAA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAEK,SAAU,WAAW,CAAC,KAA6B,EAAA;;IACvD,IAAI,KAAK,CAAC,WAAW,EAAE;QACrB,OAAO,KAAK,CAAC,WAAW,CAAC;AAC1B,KAAA;AAED,IAAA,IAAI,KAAK,CAAC,gBAAgB,KAAK,KAAK,EAAE;AACpC,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAED,IAAA,OAAO,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC;AAEK,SAAU,eAAe,CAC7B,KAA6B,EAC7B,OAA+C,EAC/C,SAAS,GAAG,KAAK,EAAA;AAEjB,IAAA,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC;AAEvC,IAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACpB,QAAA,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC1C,KAAA;IACD,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AACzC,QAAA,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,KAAA;AAED,IAAA,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,OAAO,EAAE;AACjC,QAAA,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAChD,QAAA,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAEjC,QAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC9C,QAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAI;YAC/F,IAAI,CAAC,WAAW,EAAE;AAChB,gBAAA,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;AACzE,aAAA;AACH,SAAC,CAAC,CAAC;QACH,IAAI,OAAO,YAAY,WAAW,EAAE;AAClC,YAAA,OAAO,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC7D,SAAA;AACF,KAAA;IAED,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACjC,OAAO;AACR,KAAA;AAED,IAAA,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACtB,IAAA,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAChC,IAAA,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,YAAY,WAAW,EAAE;AACxG,QAAA,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,KAAA;AAED,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AACpB,YAAA,IAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AACxE,SAAA;QAED,IAAI,GAAc,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,KAAA;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,IAAA,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE;QAC9C,IAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AAC7D,KAAA;AACH,CAAC;SAEe,cAAc,CAAC,CAAkB,EAAE,QAAQ,GAAG,KAAK,EAAA;AACjE,IAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACxB,IAAA,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzD,IAAA,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;QACtB,CAAC,CAAC,aAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1D,KAAA;AAED,IAAA,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE;QACpB,CAAC,CAAC,YAAkC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACrD,KAAA;AACH,CAAC;AAEK,SAAU,YAAY,CAAC,IAA2C,EAAA;AAC/D,IAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,IAAA,GAAA,OAAJ,IAAI,CAAE,OAAO,CAAC;AACrB,IAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACzB,IAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAA,IAAI,IAAI,YAAY,SAAS,IAAI,IAAI,YAAY,SAAS,EAAE;QAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,KAAA;AACH;;MCvHa,cAAc,CAAA;AAGzB,IAAA,WAAA,CAAmB,GAAqB,EAAA;AAArB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAkB;KAAI;IAE5C,WAAW,GAAA;QACT,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;KACzC;;4GAPU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAd,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,SAAS;mBAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAA;kGAEhB,IAAI,EAAA,CAAA;sBAA5B,KAAK;uBAAC,gBAAgB,CAAA;;AASzB;MAEa,oBAAoB,CAAA;;kHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sHAApB,oBAAoB,EAAA,CAAA,CAAA;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;;;ACwBX;;AAEG;MAMU,WAAW,CAAA;IA2BtB,WACU,CAAA,MAAoB,EACpB,QAAmB,EACnB,WAAuB,EACvB,gBAAkC,EACtB,IAA0B,EAAA;AAJtC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;AACpB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AACnB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;AACvB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AACtB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAsB;AA3BxC,QAAA,IAAa,CAAA,aAAA,GAAqB,EAAE,CAAC;AACrC,QAAA,IAAa,CAAA,aAAA,GAA6D,EAAE,CAAC;AAC7E,QAAA,IAAc,CAAA,cAAA,GAAe,EAAE,CAAC;AAChC,QAAA,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;AAiBjC,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAK,GAAG,CAAC;KAQ/B;AAvBJ,IAAA,IAAY,YAAY,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;KACpG;AAED,IAAA,IAAY,UAAU,GAAA;;AACpB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE;YAC/C,OAAO,IAAI,CAAC,WAAW,CAAC;AACzB,SAAA;QACD,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,0CAAG,CAAC,CAAC,aAAY,YAAY,EAAE;YACnD,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvC,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;IAYD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;KACtC;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;KACnC;IAED,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC5B;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;KACxC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;KAC/B;AAEO,IAAA,WAAW,CACjB,YAA8B,EAC9B,CAAyB,EACzB,WAA0C,EAAE,EAAA;;AAE5C,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;AAC1B,YAAA,QAAQ,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC;AACjC,SAAA;QAED,IAAI,CAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,MAAM,IAAG,CAAC,EAAE;YACxB,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC;AACnC,YAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,eAAe,CAAe,SAAS,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAChC,YAAA,OAAO,CACL,GAAG,CAAC,QAAQ,EACZ,CAAC,gBAAgB,CAAC,EAClB,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,KAAI;AAC/C,gBAAA,IAAI,YAAY,EAAE;oBAChB,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW,EAAE;wBAC3E,OAAO;AACR,qBAAA;AAED,oBAAA,MAAM,OAAO,GAAG,aAAa,GAAG,aAAa,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AAC9D,oBAAA,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACjC,wBAAA,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACxC,qBAAA;oBAED,CAAC,WAAW,IAAI,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACvD,iBAAA;AACH,aAAC,CACF,CAAC;AACH,SAAA;AAAM,aAAA,IAAI,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,IAAI,EAAE;YAClB,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5E,YAAA,IAAI,GAA6C,CAAC;AAClD,YAAA,IAAI,UAAU,EAAE;AACd,gBAAA,GAAG,GAAG,YAAY,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AACzE,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxD,gBAAA,GAAG,GAAG,YAAY,CAAC,eAAe,CAAe,SAAgB,CAAC,CAAC;AACpE,aAAA;AACD,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACjC,SAAA;KACF;IAEO,WAAW,CAAC,IAA4B,EAAE,OAAuB,EAAA;;QACvE,IAAI,IAAI,KAAK,QAAQ,KAAK,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;YAC9F,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9D,SAAA;QAED,IAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,IAAI,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;AAC7B,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAC3F,oBAAA,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;AAC1B,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AACnD,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,IAAI,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE;YACzC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,SAAA;KACF;IAEO,kBAAkB,CACxB,GAAyC,EACzC,KAA6B,EAAA;AAE7B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,YAAY,YAAY,EAAE;YAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACxC,SAAA;KACF;IAEO,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO;AACR,SAAA;;AAGD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAE7B,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,GAAG;AACnB,YAAA,OAAO,CAAU,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAI;AACvE,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBACvC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE;oBAC3C,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC1D,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,YAAY,CAAC,EAAE;AACjD,wBAAA,IAAI,CAAC,UAAU;4BACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC;AAChG,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,YAAY,EAAE;wBAChB,YAAY,CAAC,KAAK,EAAE,CAAC;AACrB,wBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AACxB,4BAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACvE,yBAAA;AACF,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,wBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AACxB,4BAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC1F,yBAAA;AACF,qBAAA;AACF,iBAAA;AAED,gBAAA,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/D,aAAC,CAAC;AACF,YAAA,OAAO,CAAS,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAI;gBAC3E,IACE,CAAC,CAAC,WAAW,KAAK,WAAW,IAAI,YAAY,CAAC;AAC9C,qBAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAC5D;AACA,oBAAA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AACrG,iBAAA;AACH,aAAC,CAAC;YACF,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAC5C,OAAO,CACL,IAAI,CAAC,KAAK,EACV,CAAC,aAAa,EAAE,IAAI,CAAC,EACrB,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CACnE,CACF;SACF,CAAC;KACH;AAEO,IAAA,SAAS,CAAC,KAA6B,EAAA;AAC7C,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,KAAK,CAAC,YAAY,EAAE;AACtB,gBAAA,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;AACzB,aAAA;AAAM,iBAAA;gBACL,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAClD,aAAA;YAED,IAAI,KAAK,CAAC,cAAc,EAAE;gBACxB,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrG,aAAA;AAAM,iBAAA;gBACL,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AACpD,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KACzB;AAEO,IAAA,YAAY,CAAC,KAAyC,EAAA;QAC5D,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,MAAO,GAAC,CAAC;AACjB,SAAA;QAED,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7F,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtG,SAAA;AAED,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;AACvD,YAAA,MAAM,kBAAkB,GAAG,OAAO,CAChC,KAAK,EACL,CAAC,cAAc,EAAE,GAAG,CAAC,EACrB,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,KAAI;AAClC,gBAAA,IAAI,aAAa,KAAb,IAAA,IAAA,aAAa,uBAAb,aAAa,CAAE,YAAY,EAAE;AAC/B,oBAAA,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACzC,oBAAA,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;AACnC,iBAAA;AACD,gBAAA,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;oBACrC,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;AAC7D,iBAAA;AACH,aAAC,CACF,CAAC;AACF,YAAA,UAAU,CAAC,IAAI,CAAC,MAAK;;gBACnB,IAAI,CAAA,EAAA,GAAA,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,EAAE;oBACzC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACpD,iBAAA;gBACD,kBAAkB,CAAC,WAAW,EAAE,CAAC;AACnC,aAAC,CAAC,CAAC;AACJ,SAAA;QAED,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE;YAC7F,MAAM,aAAa,GAAG,OAAO,CAC3B,KAAK,EACL,IAAI,EACJ,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CACxE,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;AACpD,SAAA;QAED,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AAC1C,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC;AAClC,YAAA,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAC1C,GAAG,CAAC,CAAC,KAAK,KAAI;;gBACZ,CAAA,EAAA,GAAA,KAAK,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAC,CAAC,QAAQ,MAAM,KAAK,GAAI,QAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5E,gBAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AAC9C,oBAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnC,iBAAA;AAED,gBAAA,OAAO,KAAK,CAAC;aACd,CAAC,EACF,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC5B,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC9C,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AAED,gBAAA,OAAO,IAAI,CAAC;aACb,CAAC,CACH,CAAC;YAEF,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,CAAC,EAAE;AAC1C,gBAAA,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D,aAAA;YAED,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;AAClD,YAAA,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,KAAK,QAAQ,KAAK,CAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,OAAO,IAAG,CAAC,EAAE;AACjE,gBAAA,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1E,aAAA;YAED,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;;;AAE3C,gBAAA,IAAI,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,IAAG,CAAC,IAAI,OAAO,YAAY,WAAW,EAAE;AACjE,oBAAA,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACjE,iBAAA;AAED,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AACjB,oBAAA,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAChC,iBAAA;AACD,gBAAA,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AAC1E,aAAC,CAAC,CAAC;YAEH,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1C,SAAA;QAED,IAAI,kBAAkB,GAAmB,EAAE,CAAC;AAC5C,QAAA,OAAO,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,KAAI;YACpD,kBAAkB,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC,CAAC;YAC3D,kBAAkB,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAyB,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACrG,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,MAAK;YACV,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC,CAAC;YACnD,kBAAkB,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC,CAAC;AAC7D,SAAC,CAAC;KACH;;yGA/TU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6FAAX,WAAW,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAGU,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EANtC,wCAAwC,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,CAAA,CAAA;4FAGvC,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,YACd,wCAAwC,EAAA,MAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,CAAA;;;8BAmC/C,QAAQ;;yBA9BF,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAC4D,gBAAgB,EAAA,CAAA;sBAAjF,SAAS;uBAAC,WAAW,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;ACzBlE;;;;AAIG;MAOU,UAAU,CAAA;AAmDrB,IAAA,WAAA,CACU,OAA0B,EAC1B,MAAoB,EACpB,MAAc,EACd,cAAoC,EAAA;AAHpC,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmB;AAC1B,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;AACpB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AACd,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAsB;;AAbpC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;QAKhD,IAAA,CAAA,KAAK,GAA2B,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AACjD,QAAA,IAAiB,CAAA,iBAAA,GAAQ,EAAE,CAAC;AAC5B,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAK,GAAG,CAAC;KAOvC;;IAtDJ,IACI,IAAI,CAAC,IAA2B,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;KACxB;AACD,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;KACxB;;IAGD,IACI,KAAK,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE;YACpE,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAC1B;AACD,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;KACzB;;IAGD,IACI,MAAM,CAAC,UAA+B,EAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC/B;AACD,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;KAC9B;;IAGD,IACI,OAAO,CAAC,OAA0B,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KAC5B;AACD,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;KAC3B;IAID,IAAqC,SAAS,CAAC,SAAoC,EAAA;AACjF,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;KAC3C;IAaD,SAAS,GAAA;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,KAAK,sBAAsB,EAAE;YACnE,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AAC/B,YAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,SAAA;QAED,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,KAAK,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;YAC9G,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACpD,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAEO,qBAAqB,GAAA;;AAC3B,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAC,gBAAgB,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CAAC,CAAC;KACnD;IAEO,YAAY,GAAA;QAClB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY;AACxC,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,cAAc,CAAC,EACrE,SAAS,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5G;aACA,SAAS,CAAC,MACT,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAK;;;YAG1B,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SACrE,CAAC,CACH,CAAC;AAEJ,QAAA,OAAO,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;KAChC;AAEO,IAAA,QAAQ,CAAC,KAA6B,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;AAChC,YAAA,IAAI,CAAC,KAAK,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CAAK,EAAA,KAAK,CAAC,KAAK,CAAC,CAAE,CAAC;AACjD,SAAA;AAAM,aAAA;YACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAO,IAAI,CAAC,KAAa,CAAC,CAAC,CAAC,GAAI,KAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,SAAA;KACF;;wGA9GU,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAV,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAHV,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EA8CnC,cAAc,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA/CrB,+CAA+C,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FAI9C,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,+CAA+C;AACzD,oBAAA,SAAS,EAAE,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;oBACpD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD,CAAA;kLAIK,IAAI,EAAA,CAAA;sBADP,KAAK;gBAUF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAcF,MAAM,EAAA,CAAA;sBADT,KAAK;gBAUF,OAAO,EAAA,CAAA;sBADV,KAAK;gBASI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAC8B,SAAS,EAAA,CAAA;sBAA7C,eAAe;uBAAC,cAAc,CAAA;;;AC/DjC;;AAEG;MAOU,gBAAgB,CAAA;AAwC3B,IAAA,WAAA,CAAoB,QAAmB,EAAU,UAAsB,EAAoB,SAAc,EAAA;AAArF,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AAAU,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAlC/D,QAAA,IAAiB,CAAA,iBAAA,GAAQ,EAAE,CAAC;AAIpC;;;;AAIG;QACK,IAAA,CAAA,QAAQ,GAAG;AACjB,YAAA,SAAS,EAAE,EAAgB;AAC3B,YAAA,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;AAC5E,YAAA,QAAQ,EAAE,CAAC,SAAiB,EAAE,MAAW,KAAI;AAC3C,gBAAA,QAAQ,SAAS;AACf,oBAAA,KAAK,OAAO;AACV,wBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9B,oBAAA,KAAK,MAAM;AACT,wBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7B,oBAAA,KAAK,QAAQ;AACX,wBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/B,oBAAA;AACE,wBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACpD,iBAAA;aACF;SACF,CAAC;AAWA,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;KAC3B;AAVD,IAAA,IAAY,KAAK,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,IAAK,EAAsC,CAAC;KACpE;AAED,IAAA,IAAY,iBAAiB,GAAA;;QAC3B,OAAQ,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAgC,0CAAG,cAAc,CAAC,KAAI,EAAE,CAAC;KACvE;AAMD,IAAA,WAAW,CAAC,OAAsB,EAAA;;QAChC,IAAI,OAAO,CAAC,KAAK,EAAE;AACjB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9D,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;;gBACzC,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,0CAAG,SAAS,CAAC,KAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;AACpF,oBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAC5G,CAAC;AACH,iBAAA;AACH,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,MAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,EAAE;AAC1B,gBAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,KAAI;AAC/E,oBAAA,IAAI,aAAa,EAAE;wBACjB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1E,qBAAA;AAED,oBAAA,IAAI,YAAY,EAAE;wBAChB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACzC,4BAAA,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;gCAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,6BAAA;AACH,yBAAC,CAAC,CAAC;AACJ,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;YAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACnD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAClD,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvC,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACpE,gBAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAU,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,KAAI;AAChF,oBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACjC,iBAAC,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;QAED,IAAI,OAAO,CAAC,EAAE,EAAE;YACd,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAClC,SAAA;KACF;AAED;;;;;;;AAOG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAA4B,CAAC;AAC7D,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,MAAM,CAC1G,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAC/D,CAAC;AACH,SAAA;AAED,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,YAAA,IACE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,KAAK;iBACrC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EACrF;AACA,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACrC,gBAAA,IAAI,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;AACxB,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAA,CAAE,CAAC,CAAC;AAC7D,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC5B,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,WAAW,GAAA;;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;KACnC;AAED,IAAA,WAAW,CAAC,KAAc,EAAA;AACxB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC1E,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE;YAC5C,OAAO;AACR,SAAA;QAED,MAAM,SAAS,GACb,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa;AAC7B,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,CAAC,EAAE,aAAa,EAAE,KAChB,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,aAAa,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CACvG,CAAC;AAEJ,QAAA,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE;AACvB,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;AAC7D,SAAA;AAAM,aAAA,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE;AAC9B,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5D,SAAA;KACF;AAED,IAAA,OAAO,CAAC,MAAW,EAAA;;QACjB,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnC,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,EAAC,KAAK,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACxC;AAED,IAAA,MAAM,CAAC,MAAW,EAAA;;QAChB,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpC,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,EAAC,IAAI,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACvC;;AAGD,IAAA,YAAY,CAAC,MAAW,EAAA;QACtB,IAAI,MAAM,YAAY,KAAK,EAAE;YAC3B,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACvB;AAED,IAAA,QAAQ,CAAC,MAAW,EAAA;;AAClB,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,EAAC,MAAM,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;KACvC;AAEO,IAAA,gBAAgB,CAAC,CAAyB,EAAA;;QAChD,IAAI,CAAC,CAAC,EAAE;YACN,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAA,CAAA,EAAA,GAAA,CAAC,CAAC,cAAc,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAK,CAAC,CAAC,EAAE;YACtD,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,SAAA;AAAM,aAAA;YACL,gBAAgB,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD,SAAA;KACF;AAEO,IAAA,gBAAgB,CAAC,CAAyB,EAAA;AAChD,QAAA,MAAM,KAAK,GAAG,CAAA,CAAC,KAAD,IAAA,IAAA,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAC,CAAG,cAAc,CAAC,IAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACzF,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACpC,SAAA;KACF;IAEO,YAAY,CAAC,IAAY,EAAE,KAAa,EAAA;AAC9C,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACxE;AAEO,IAAA,eAAe,CAAC,IAAY,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;KACpE;;AAnMU,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,qEAwCsD,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAxC9E,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAE;AACJ,wBAAA,UAAU,EAAE,sBAAsB;AACnC,qBAAA;iBACF,CAAA;;;8BAyC2E,MAAM;+BAAC,QAAQ,CAAA;;yBAtC9D,KAAK,EAAA,CAAA;sBAA/B,KAAK;uBAAC,kBAAkB,CAAA;gBAChB,EAAE,EAAA,CAAA;sBAAV,KAAK;;;MCXc,SAAS,CAAA;AAD/B,IAAA,WAAA,GAAA;AAUW,QAAA,IAAK,CAAA,KAAA,GAAM,EAAO,CAAC;KA2C7B;IAnDC,IAA6B,eAAe,CAAC,QAA8B,EAAA;AACzE,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAA+B,CAAC;QAC/C,CAAC,CAAC,YAAY,GAAG,QAAQ;AACtB,aAAA,GAAG,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,OAAiD,CAAC,OAAO,IAAI,EAAE,CAAC;AAC9E,aAAA,IAAI,EAAE;AACN,aAAA,MAAM,CAAC,CAAC,CAAoB,KAAK,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;KAC/E;AAKD,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;KACzB;AAED,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;KACxB;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;KAC3B;AAED,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;KACvB;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAA4C,CAAC;KAChE;AAED,IAAA,IAAI,KAAK,GAAA;QACP,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAA6B;KAC5D;;AAGD,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACrC;AAED,IAAA,IAAI,EAAE,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;KACtB;AAED,IAAA,IAAI,SAAS,GAAA;;QACX,OAAO,CAAA,MAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,KAAI,EAAE,CAAC;KACtC;;uGAnDmB,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAT,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,0FACf,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FADH,SAAS,EAAA,UAAA,EAAA,CAAA;kBAD9B,SAAS;8BAEqB,eAAe,EAAA,CAAA;sBAA3C,YAAY;uBAAC,SAAS,CAAA;gBAQd,KAAK,EAAA,CAAA;sBAAb,KAAK;;;ACtBR;AAYM,MAAO,WAAY,SAAQ,SAA+B,CAAA;;yGAAnD,WAAW,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,EATZ,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,mCAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FAMU,WAAW,EAAA,UAAA,EAAA,CAAA;kBAXvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,CAAA;;;AAGT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,iCAAiC;AAC7C,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD,CAAA;;;ACND;;AAEG;MAMU,uBAAuB,CAAA;AAKlC,IAAA,WAAA,CAAoB,MAAoB,EAAA;AAApB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;KAAI;IAE5C,WAAW,GAAA;AACT,QAAA,MAAM,eAAe,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,gBAAA,EAAmB,CAAC,CAAA,CAAE,CAAC,CAAC;AAC7E,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CACxB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EACpC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AACjB,cAAE,EAAE,CAAC,IAAI,CAAC;cACR,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAClC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAI;AACnC,gBAAA,QACE,KAAK,KAAK,IAAI,CAAC,KAAK;AACpB,oBAAA,IAAI,KAAK,mBAAmB;qBAC3B,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EACnF;AACJ,aAAC,CAAC,CACH,CACN,CAAC,IAAI,CACJ,SAAS,CAAC,IAAI,CAAC,EACf,SAAS,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAC/F,CAAC;KACH;AAED,IAAA,IAAI,YAAY,GAAA;;AACd,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AACzC,QAAA,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE;YACpC,IAAI,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;gBAC1C,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAErD,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;oBACrC,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE;AACrC,wBAAA,OAAO,SAAS,CAAC;AAClB,qBAAA;oBAED,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;wBACnC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAC3C,qBAAA;AACF,iBAAA;AAED,gBAAA,IAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,KAAK,CAAC,EAAE;oBAC5C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjD,iBAAA;AAED,gBAAA,IAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,KAAK,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE;oBAC3C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAChD,iBAAA;AAED,gBAAA,IAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,KAAK,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE;oBAChD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AACrD,iBAAA;AAED,gBAAA,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACjC,oBAAA,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACrD,iBAAA;AAED,gBAAA,OAAO,OAAO,CAAC;AAChB,aAAA;AACF,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;;qHAjEU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,kHAHxB,6BAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAAO,IAAA,CAAA,SAAA,EAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FAG5B,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,6BAA6B;oBACvC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD,CAAA;gGAGU,KAAK,EAAA,CAAA;sBAAb,KAAK;;;ACLF,MAAgB,cACpB,SAAQ,SAAY,CAAA;AAGpB,IAAA,UAAU,CAAC,KAAQ,EAAA;AACjB,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AACjB,YAAA,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACnC,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC1G,SAAA;QAED,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;QAE1C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACnE,QAAA,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,EAAE;AACpC,YAAA,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,EAAE;gBAC1D,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC7C,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,aAAA;AACF,SAAA;AAED,QAAA,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YACrD,MAAM,CAAC,GAAQ,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,CAAC,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAE,CAAC;AAC5G,YAAA,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE;AAClB,gBAAA,CAAC,CAAC,GAAG,GAAG,CAAG,EAAA,CAAC,EAAE,CAAC;AAChB,aAAA;AAED,YAAA,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,SAAA;KACF;AAED,IAAA,GAAG,CAAC,CAAU,EAAE,YAAkB,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA;AACzE,QAAA,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAClC,SAAA;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,QAAA,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;KAC/C;IAED,MAAM,CAAC,CAAS,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA;QACvD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAExB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAA,EAAG,GAAG,CAAA,CAAE,CAAC,CAAC,CAAC;AACnF,QAAA,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,QAAA,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;KAC/C;IAEO,MAAM,GAAA;;AACZ,QAAA,MAAM,MAAM,GAAI,CAAA,EAAA,GAAA,IAAI,CAAC,KAAgC,CAAC,WAAW,CAAC,OAAO,mCAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1F,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAM,IAAI,CAAC,OAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,EAAE,cAAc;AACrB,SAAA,CAAC,CAAC;KACJ;IAEO,qBAAqB,CAAC,CAAoB,EAAE,MAAc,EAAA;;AAChE,QAAA,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;AACb,YAAA,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC;YACf,OAAO;AACR,SAAA;QAED,IAAI,EAAC,CAAA,EAAA,GAAA,CAAC,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA,EAAE;YACzB,OAAO;AACR,SAAA;AAED,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAA,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACrD,SAAA;KACF;;4GA3EmB,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAd,cAAc,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBADnC,SAAS;;;ACNJ,MAAgB,YAA8D,SAAQ,SAAY,CAAA;AACtG,IAAA,IAAa,eAAe,CAAC,CAAuB,EAAA,GAAI;IAExD,IAA2E,cAAc,CAAC,OAAyB,EAAA;AACjH,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;KAC/B;;0GALmB,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8FAAZ,YAAY,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAEK,gBAAgB,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAChB,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAHjC,YAAY,EAAA,UAAA,EAAA,CAAA;kBADjC,SAAS;8BAGiD,cAAc,EAAA,CAAA;sBAAtE,SAAS;gBAAC,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;gBACoB,cAAc,EAAA,CAAA;sBAAxF,SAAS;uBAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;ACLvE;AAMM,MAAO,kBAAmB,SAAQ,SAAS,CAAA;AAe/C,IAAA,WAAA,CAAoB,SAAuB,EAAA;AACzC,QAAA,KAAK,EAAE,CAAC;AADU,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;AADnC,QAAA,IAAS,CAAA,SAAA,GAA8C,EAAE,CAAC;KAGjE;AAhBD,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;YACjE,IAAI,CAAC,SAAS,GAAG;AACf,gBAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;AAC7B,gBAAA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;AAC1B,sBAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC7D,sBAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;aACxB,CAAC;AACH,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC/B;;gHAZU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,8EAHnB,CAAA,kCAAA,CAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FAGnC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAoC,kCAAA,CAAA;oBAC9C,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD,CAAA;;;ACTe,SAAA,oBAAoB,CAAC,UAAkB,EAAE,QAAkB,EAAA;IACzE,IAAI;QACF,OAAO,QAAQ,CAAC,GAAG,QAAQ,EAAE,CAAU,OAAA,EAAA,UAAU,CAAG,CAAA,CAAA,CAAQ,CAAC;AAC9D,KAAA;AAAC,IAAA,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,KAAA;AACH,CAAC;SAEe,cAAc,CAAC,UAAuC,EAAE,OAAY,EAAE,MAAa,EAAA;AACjG,IAAA,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;QACpC,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC1C,KAAA;AAAM,SAAA;QACL,OAAO,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC;AAClC,KAAA;AACH;;MCKa,wBAAwB,CAAA;AACnC,IAAA,UAAU,CAAC,KAA6B,EAAA;QACtC,IAAI,KAAK,CAAC,YAAY,EAAE;YACtB,OAAO;AACR,SAAA;;AAGD,QAAA,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAE5C,QAAA,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,KAAI;YACzD,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,YAAY,KAAK,IAAI,CAAC,EAAE;AAC1D,gBAAA,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC;gBAClC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,cAAc,EAAE;AACxB,YAAA,OAAO,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAI;AAC5D,gBAAA,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,SAAS,GAAG,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC;AAChH,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,IAAS,KAAI;YAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;AAChD,gBAAA,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACnE,aAAA;iBAAM,IAAI,IAAI,YAAY,UAAU,EAAE;AACrC,gBAAA,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG;oBACxB,MAAM,EAAG,IAAwB,CAAC,IAAI,CACpC,GAAG,CAAC,CAAC,CAAC,KAAI;wBACR,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7B,wBAAA,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACtC,qBAAC,CAAC,CACH;iBACF,CAAC;AACH,aAAA;AACH,SAAC,CAAC;QAEF,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AAChD,YAAA,OAAO,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAI;AAC9D,gBAAA,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAS,KAAK,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAClF,aAAC,CAAC,CAAC;AACJ,SAAA;QAED,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC;QAC9D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE;YACzD,OAAO,CAAC,KAAK,EAAE,CAAC,sBAAsB,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AAClG,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAA6B,EAAA;QACxC,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE;YACnC,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,KAAK,CAAC,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,WAAW,KAAI;AAClD,gBAAA,IAAI,WAAW,EAAE;oBACf,OAAO;AACR,iBAAA;gBAED,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AAC3D,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9B,gBAAA,OAAO,CAAC,qBAAqB;qBAC1B,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;qBAC9B,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACjE,gBAAA,OAAO,CAAC,qBAAqB,GAAG,EAAE,CAAC;AACnC,gBAAA,IAAI,YAAY,EAAE;AAChB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9B,iBAAA;gBACD,WAAW,GAAG,KAAK,CAAC;AACtB,aAAC,CAAC;YACF,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,WAAW,KAAI;AAC7C,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAA,+FAAA,CAAiG,CAAC,CAAC;gBAChH,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AACjD,aAAC,CAAC;AACH,SAAA;KACF;AAEO,IAAA,gBAAgB,CAAC,KAA6B,EAAE,IAAY,EAAE,IAAS,EAAA;AAC7E,QAAA,IAAI,gBAAqB,CAAC;AAC1B,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC7D,YAAA,MAAM,SAAS,GAAG,CAAC,CAAyB,KAAI;AAC9C,gBAAA,OAAO,IAAI,KAAK,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;AACrD,aAAC,CAAC;YAEF,gBAAgB,GAAG,MAAK;AACtB,gBAAA,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;gBACxB,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AACtC,oBAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;AACpB,iBAAA;AAED,gBAAA,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AACzB,aAAC,CAAC;AACH,SAAA;QAED,IAAI,GAAG,IAAI,KAAK,MAAM,KAAK,CAAC,CAAC;AAC7B,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI,GAAG,oBAAoB,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AACpE,SAAA;AAED,QAAA,IAAI,YAAiB,CAAC;QAEtB,OAAO;AACL,YAAA,QAAQ,EAAE,CAAC,WAAqB,KAAI;gBAClC,IAAI;oBACF,MAAM,SAAS,GAAG,cAAc,CAC9B,gBAAgB,GAAG,CAAC,GAAG,IAAS,KAAK,gBAAgB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EACpF,EAAE,KAAK,EAAE,EACT,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAC3D,CAAC;AAEF,oBAAA,IACE,WAAW;yBACV,YAAY,KAAK,SAAS;AACzB,6BAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;gCACnB,YAAY,CAAC,SAAS,CAAC;AACvB,gCAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,EAChE;wBACA,YAAY,GAAG,SAAS,CAAC;wBACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAEtC,wBAAA,OAAO,IAAI,CAAC;AACb,qBAAA;AAED,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AAAC,gBAAA,OAAO,KAAU,EAAE;oBACnB,KAAK,CAAC,OAAO,GAAG,CAA+B,4BAAA,EAAA,IAAI,MAAM,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;AACzE,oBAAA,MAAM,KAAK,CAAC;AACb,iBAAA;aACF;SACF,CAAC;KACH;AAEO,IAAA,gBAAgB,CAAC,KAA6B,EAAE,WAAW,GAAG,KAAK,EAAA;;QACzE,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QAED,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,KAAK,CAAC,YAAY,EAAE;YACtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AACjD,gBAAA,CAAA,MAAA,CAAA,EAAA,GAAA,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAC,QAAQ,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,WAAW,CAAC,MAAK,YAAY,GAAG,IAAI,CAAC,CAAC;AAC1E,aAAA;AACF,SAAA;QACD,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;AAEjG,QAAA,OAAO,YAAY,CAAC;KACrB;IAEO,mBAAmB,CAAC,KAA6B,EAAE,KAAc,EAAA;QACvE,IAAI,KAAK,CAAC,UAAU,EAAE;AACpB,YAAA,KAAK,CAAC,UAAU;AACb,iBAAA,MAAM,CAAC,CAAC,CAAyB,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;AACvF,iBAAA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACvD,SAAA;AAED,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE;AACnD,YAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,SAAA;KACF;AAEO,IAAA,eAAe,CAAC,KAA6B,EAAE,IAAa,EAAE,WAAoB,EAAA;;QACxF,IAAI,KAAK,CAAC,UAAU,EAAE;AACpB,YAAA,KAAK,CAAC,UAAU;AACb,iBAAA,MAAM,CAAC,CAAC,CAAyB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;AAChE,iBAAA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/D,SAAA;QAED,IAAI,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AACtC,YAAA,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,YAAA,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;YAC5B,IAAI,CAAA,MAAA,CAAC,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,IAAG,CAAC,EAAE;gBACzB,cAAc,CAAC,CAAC,CAAC,CAAC;AACnB,aAAA;AAED,YAAA,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACtE,gBAAA,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/B,gBAAA,IAAI,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE;AACpC,oBAAA,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACnC,oBAAA,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpF,oBAAA,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;oBACnF,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,YAAY,SAAS,EAAE;AAC9D,wBAAA,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,qBAAA;AACF,iBAAA;AACF,aAAA;iBAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AACzB,gBAAA,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9F,oBAAA,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;AAC7C,iBAAA;AACD,gBAAA,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBACxC,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,IAAI,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,OAAK,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA,EAAE;AAC7F,oBAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5B,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;AAC9B,YAAA,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAyB,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjG,SAAA;KACF;AAEO,IAAA,QAAQ,CAAC,KAA6B,EAAE,IAAY,EAAE,KAAU,EAAA;QACtE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EACtC,MAAM,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;AAEnD,YAAA,IAAI,OAAO,GAAG,CAAA,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,GAAG,MAAK,GAAG,GAAG,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3E,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC9B,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;AACtC,aAAA;AACD,YAAA,gBAAgB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;YAC7D,IAAI,OAAO,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AACjF,gBAAA,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI;gBACF,IAAI,MAAM,GAAQ,KAAK,CAAC;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpD,gBAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;oBAClC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,iBAAA;gBAED,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC;AAClC,aAAA;AAAC,YAAA,OAAO,KAAU,EAAE;gBACnB,KAAK,CAAC,OAAO,GAAG,CAA+B,4BAAA,EAAA,IAAI,MAAM,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;AACzE,gBAAA,MAAM,KAAK,CAAC;AACb,aAAA;AAED,YAAA,IAAI,CAAC,0BAA0B,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AAClF,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxC,aAAA;AACF,SAAA;QAED,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KAChD;AAEO,IAAA,qBAAqB,CAAC,KAA6B,EAAE,QAAgB,EAAE,KAAU,EAAA;AACvF,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;YAC/B,OAAO;AACR,SAAA;AAED,QAAA,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;YAC9B,KAAK;AACL,YAAA,IAAI,EAAE,mBAAmB;YACzB,QAAQ;YACR,KAAK;AACN,SAAA,CAAC,CAAC;KACJ;IAEO,mBAAmB,CAAC,KAA6B,EAAE,IAAY,EAAA;AACrE,QAAA,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;YAC9D,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;AACvC,SAAA;QAED,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;AAC5B,YAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzB,SAAA;AAAM,aAAA;YACL,IAAI;AACD,iBAAA,KAAK,CAAC,YAAY,CAAC;AACnB,iBAAA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChB,iBAAA,OAAO,CAAC,CAAC,IAAI,KAAI;gBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAChD,gBAAA,IAAI,SAAS,EAAE;oBACb,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,iBAAA;AAAM,qBAAA;oBACL,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjD,iBAAA;AACH,aAAC,CAAC,CAAC;AACN,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC5B,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AACxC,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;AACF;;MCrSY,wBAAwB,CAAA;AACnC,IAAA,WAAA,CAAoB,MAAoB,EAAA;AAApB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;KAAI;AAE5C,IAAA,UAAU,CAAC,KAA6B,EAAA;AACtC,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;KACpD;IAEO,mBAAmB,CAAC,KAA6B,EAAE,IAAsC,EAAA;QAC/F,MAAM,UAAU,GAAkB,EAAE,CAAC;AACrC,QAAA,IAAI,IAAI,KAAK,YAAY,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YACpF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AACf,YAAA,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;AACpD,gBAAA,aAAa,KAAK,YAAY;AAC5B,sBAAE,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;sBAC5F,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;AAC/F,aAAA;AACF,SAAA;QAED,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC;KACjD;AAEO,IAAA,4BAA4B,CAAC,KAA6B,EAAA;QAChE,IAAI,UAAU,GAAa,EAAE,CAAC;QAC9B,iBAAiB,CAAC,OAAO,CAAC,CAAC,GAAG,KAC5B,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,KAAI;AAC/D,YAAA,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AACjD,YAAA,IAAI,GAAG,KAAK,UAAU,IAAI,YAAY,IAAI,IAAI,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE;AACnF,gBAAA,OAAO,CAAC,IAAI,CACV,CAAA,yCAAA,EAA4C,OAAO,YAAY,CAC7D,6BAAA,EAAA,KAAK,CAAC,GACR,CAAI,EAAA,CAAA,CACL,CAAC;AACH,aAAA;AAED,YAAA,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,KAAK,KAAK,EAAE;AAClD,gBAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE;AACrC,gBAAA,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACnC,aAAA;SACF,CAAC,CACH,CAAC;QAEF,OAAO,CAAC,OAAwB,KAAI;AAClC,YAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AAED,YAAA,OAAO,UAAU,CAAC,OAAO,CACvB,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,MAAK;;gBAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/B,gBAAA,QAAQ,GAAG;AACT,oBAAA,KAAK,UAAU;AACb,wBAAA,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACtC,oBAAA,KAAK,SAAS;wBACZ,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AAC5C,oBAAA,KAAK,WAAW;wBACd,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;wBAC7D,MAAM,YAAY,GAChB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,0CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAA;AACnF,8BAAE,WAAW;8BACX,WAAW,CAAC;AAElB,wBAAA,OAAO,eAAe,GAAG,EAAE,CAAC,YAAY,GAAG,eAAe,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;AAChF,oBAAA,KAAK,WAAW;wBACd,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;wBAC7D,MAAM,YAAY,GAChB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,0CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAA;AACnF,8BAAE,WAAW;8BACX,WAAW,CAAC;AAElB,wBAAA,OAAO,eAAe,GAAG,EAAE,CAAC,YAAY,GAAG,eAAe,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;AAChF,oBAAA,KAAK,KAAK;wBACR,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AACxC,oBAAA,KAAK,KAAK;wBACR,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AACxC,oBAAA;AACE,wBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AACH,aAAC,CAAC,CACF,CAAC,OAAO,CAAC,CAAC;AACd,SAAC,CAAC;KACH;AAEO,IAAA,iBAAiB,CAAC,KAA6B,EAAE,SAAc,EAAE,aAAsB,EAAA;AAC7F,QAAA,IAAI,eAAgC,CAAC;AACrC,QAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,YAAA,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9D,SAAA;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE;AACnD,YAAA,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAClE,IAAI,SAAS,CAAC,OAAO,EAAE;AACrB,gBAAA,eAAe,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;AAC7C,aAAA;AACF,SAAA;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,UAAU,EAAE;YACzD,MAAM,EAAE,UAAU,EAAA,GAAiB,SAAS,EAArB,OAAO,GAAA,MAAA,CAAK,SAAS,EAAtC,CAA0B,YAAA,CAAA,CAAY,CAAC;AAC7C,YAAA,eAAe,GAAG;AAChB,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,UAAU,EAAE,UAAU;AACtB,gBAAA,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI;aAC1D,CAAC;AACH,SAAA;AAED,QAAA,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;AACnC,YAAA,eAAe,GAAG;AAChB,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,UAAU,EAAE,SAAS;aACtB,CAAC;AACH,SAAA;QAED,OAAO,CAAC,OAAwB,KAAI;AAClC,YAAA,MAAM,MAAM,GAAQ,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;AACxF,YAAA,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;AACrB,gBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;AAC/F,aAAA;AAED,YAAA,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;AACxB,gBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;AACpG,aAAA;YAED,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,eAAe,CAAC,CAAC;AACtF,SAAC,CAAC;KACH;IAEO,YAAY,CAAC,KAA6B,EAAE,MAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAmB,EAAA;;AACjG,QAAA,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;YAC/B,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,EAAE,CAAC;AAC/D,SAAA;AAED,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;AAC/B,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,eAAe,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAI,CAAC;AAElC,QAAA,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;YACpB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBACnC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,SAAS,CAAC;AAEvF,gBAAA,MAAM,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AACtE,gBAAA,IAAI,SAAS,EAAE;AACb,oBAAA,MAAM,KAAqC,MAAM,CAAC,IAAI,CAAC,EAAjD,EAAE,SAAS,EAAE,UAAU,OAA0B,EAArB,IAAI,GAAhC,MAAA,CAAA,EAAA,EAAA,CAAA,WAAA,CAAkC,CAAe,CAAC;AACxD,oBAAA,SAAS,CAAC,SAAS,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAO,SAAS,CAAC,MAAM,IAAI,EAAE,MAAG,CAAC,IAAI,GAAG,IAAI,IAAG,CAAC;AAEnE,oBAAA,CAAC,IAAI,CAAC,eAAe,IAAI,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACvE,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,MAAK;AAChC,wBAAA,MAA8C,KAAA,SAAS,CAAC,MAAM,IAAI,EAAE,EAA5D,EAAA,GAAC,IAAK,EAAE,SAAS,GAAA,EAAA,CAAA,EAAA,CAAA,EAAK,WAAW,GAAnC,MAAA,CAAA,EAAA,EAAA,CAAA,OAAA,EAAA,KAAA,QAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,CAAqC,CAAyB,CAAC;wBACrE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,WAAW,CAAC,CAAC;AAClF,qBAAC,CAAC;AACH,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;MC1JY,kBAAkB,CAAA;AAE7B,IAAA,WAAW,CAAC,KAA6B,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AACnB,SAAA;QAED,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE;gBACnC,GAAG,EAAE,MAAM,KAAK,CAAC,MAAO,CAAC,WAAW;AACpC,gBAAA,YAAY,EAAE,IAAI;AACnB,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,UAAU,CAAC,KAA6B,EAAA;AACtC,QAAA,IAAI,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACxD,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACpD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAA6B,EAAA;AACxC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACvB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/C,QAAA,IAAI,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE;AAChC,YAAA,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC1B,YAAA,OAAO,MAAM,EAAE;gBACb,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACpC,oBAAA,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC1C,iBAAA;AACD,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACxB,aAAA;AACF,SAAA;KACF;AAEO,IAAA,cAAc,CAAC,KAA6B,EAAA;AAClD,QAAA,IAAI,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,UAAU,EAAE;YACpB,OAAO;AACR,SAAA;QAED,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,cAAc,GAA2B,EAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAEzF,IAAI,KAAK,CAAC,UAAU,EAAE;gBACpB,OAAO,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;AAC7C,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC;gBACxE,OAAO,GAAG,IAAI,WAAW,CACvB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EACtC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,cAAc,KAAE,qBAAqB,EAAE,IAAI,EAAA,CAAA,CACjD,CAAC;AACH,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,OAAO,YAAY,WAAW,EAAE;AAClC,gBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC;AACvE,gBAAA,OAAe,CAAC,YAAY,GAAG,KAAK,CAAC;AACvC,aAAA;AACF,SAAA;AAED,QAAA,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACjC;AAEO,IAAA,aAAa,CAAC,KAA6B,EAAE,QAAQ,GAAG,KAAK,EAAA;;AACnE,QAAA,IAAI,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAI,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAA,EAAE;YAChE,QAAQ,GAAG,IAAI,CAAC;AACjB,SAAA;QAED,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,QAAA,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;QAChG,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AAC3E,YAAA,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;AACjC,YAAA,IAAI,CAAC,EAAE;gBACL,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,WAAW,EAAE;AAC7C,oBAAA,IAAI,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAE;AACzB,wBAAA,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;wBAChD,YAAY,GAAG,IAAI,CAAC;AACrB,qBAAA;AAED,oBAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE;AAC3B,wBAAA,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC/C,YAAY,GAAG,IAAI,CAAC;AACrB,qBAAA;AACF,iBAAA;AAED,gBAAA,IAAI,IAAI,KAAK,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE;AACpE,oBAAA,CAAC,CAAC,aAAa,CAAC,MAAK;AACnB,wBAAA,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAc,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;AAEtF,wBAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACzB,qBAAC,CAAC,CAAC;oBACH,YAAY,GAAG,IAAI,CAAC;AACrB,iBAAA;AAED,gBAAA,IAAI,IAAI,KAAK,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE;AAC9E,oBAAA,CAAC,CAAC,kBAAkB,CAAC,MAAK;AACxB,wBAAA,MAAM,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAmB,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;AACrG,wBAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7B,qBAAC,CAAC,CAAC;oBACH,YAAY,GAAG,IAAI,CAAC;AACrB,iBAAA;AAED,gBAAA,IAAI,YAAY,EAAE;AAChB,oBAAA,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;;AAGxB,oBAAA,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACtB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,wBAAA,IAAI,MAAM,EAAE;AACV,4BAAA,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7B,4BAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACxB,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,OAAO,YAAY,CAAC;KACrB;IAEO,aAAa,CAAC,KAA6B,EAAE,IAAwC,EAAA;;AAC3F,QAAA,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;AAC5B,QAAA,IAAI,CAAA,CAAA,EAAA,GAAA,CAAC,KAAA,IAAA,IAAD,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAC,CAAE,OAAO,0CAAE,MAAM,IAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACvE,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;aAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,OAAO,MAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,KAAA,IAAA,IAAD,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAC,CAAE,UAAU,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;KAClG;IAEO,eAAe,CAAI,KAA6B,EAAE,IAAwC,EAAA;;QAChG,MAAM,UAAU,GAAQ,EAAE,CAAC;AAC3B,QAAA,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;AAC5B,QAAA,IAAI,CAAA,CAAA,EAAA,GAAA,CAAC,KAAA,IAAA,IAAD,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAD,CAAC,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,IAAG,CAAC,EAAE;AAC1B,YAAA,CAAC,CAAC,OAAO;iBACN,MAAM,CAAC,CAAC,CAAyB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/C,iBAAA,OAAO,CAAC,CAAC,CAAyB,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxE,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;YACtB,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,SAAA;QAED,IAAI,KAAK,CAAC,UAAU,EAAE;AACpB,YAAA,KAAK,CAAC,UAAU;iBACb,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,UAAU,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC1C,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACtE,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;AACF;;MCtJY,aAAa,CAAA;AAExB,IAAA,WAAA,CAAoB,MAAoB,EAAA;AAApB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;AADhC,QAAA,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;KACyB;AAE5C,IAAA,WAAW,CAAC,KAA6B,EAAA;;AACvC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;AAC1B,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAA,IAAI,IAAI,EAAE;YACR,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACzF,YAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;gBACpC,GAAG,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAClF,gBAAA,YAAY,EAAE,IAAI;AACnB,aAAA,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE;YAClC,KAAK,EAAE,CAAC,GAA6B,KAAK,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;AAC9D,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC,CAAC;AAEH,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAG,KAAK,CAAC,CAAC;KAC5D;AAED,IAAA,UAAU,CAAC,KAA6B,EAAA;;AACtC,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAG,KAAK,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,UAAU,EAAE;YACpB,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,KAAI;AACpC,gBAAA,IAAI,CAAC,EAAE;oBACL,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC7E,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7E,iBAAA;gBACD,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAA6B,EAAA;;AACxC,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAG,KAAK,CAAC,CAAC;KAC7D;AAEO,IAAA,cAAc,CAAC,KAA6B,EAAA;;AAClD,QAAA,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAX,KAAK,CAAC,KAAK,GAAK,KAAK,CAAC,eAAe,CAAC,CAAA;AACtC,QAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,iBAAiB,EAAE;AAC9C,YAAA,GAAG,EAAE,MAAM,KAAK,CAAC,KAAK;AACtB,YAAA,GAAG,EAAE,CAAC,KAAK,MAAM,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AACrC,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC,CAAC;KACJ;AAEO,IAAA,eAAe,CAAC,KAA6B,EAAA;QACnD,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,OAAO;AACR,SAAA;AAED,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9B,QAAA,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;AACxD,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACtB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;AAClD,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YACzB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,OAAO,EAA0B,CAAC,CAAC;AAClF,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;AAClC,YAAA,OAAO,CAAC,qBAAqB,GAAG,EAAE,CAAC;AACpC,SAAA;AAED,QAAA,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,KAAI;AAC5B,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,8FAAA,CAAgG,CAAC,CAAC;AAC/G,YAAA,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC3B,SAAC,CAAC;AAEF,QAAA,OAAO,CAAC,cAAc,GAAG,CAAC,CAAyB,KAAI;;YACrD,IAAI,CAAC,CAAC,cAAc,EAAE;gBACpB,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACtB,aAAA;YAED,CAAA,EAAA,GAAA,CAAC,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,SAAC,CAAC;AAEF,QAAA,OAAO,CAAC,aAAa,GAAG,CAAC,CAAyB,KAAI;;YACpD,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAC,CAAC,OAAO,EAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAG,CAAC,CAAC,CAAC;AAChC,YAAA,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAC,CAAC;AAEF,QAAA,OAAO,CAAC,UAAU,GAAG,CAAC,KAAW,KAAI;AACnC,YAAA,KAAK,GAAG,KAAK,CAAC,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAK,GAAI,OAAO,CAAC,aAAa,CAAC,CAAC;YAC9C,IAAI,KAAK,CAAC,KAAK,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;AACzC,aAAA;AAED,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACrE,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,SAAC,CAAC;QAEF,OAAO,CAAC,kBAAkB,GAAG,CAAC,KAAW,MAAM,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAK,GAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACpG,QAAA,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;KACpC;AAEO,IAAA,gBAAgB,CAAC,KAA6B,EAAA;;QACpD,gBAAgB,CAAC,KAAK,EAAE;AACtB,YAAA,EAAE,EAAE,UAAU,CAAC,CAAA,OAAA,EAAU,IAAI,CAAC,MAAM,CAAE,CAAA,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AAC3D,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC5B,KAAK,EACH,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC3B,kBAAE,EAAE;AACJ,kBAAE;AACE,oBAAA,KAAK,EAAE,EAAE;AACT,oBAAA,WAAW,EAAE,EAAE;AACf,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA;AACR,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,EAAE;AACtE,YAAA,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;AAC1B,SAAA;AAED,QAAA,IACE,KAAK,CAAC,IAAI,KAAK,iBAAiB;aAC/B,KAAK,CAAC,QAAQ,KAAI,MAAA,KAAK,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAA,KAAI,CAAA,EAAA,GAAA,KAAK,CAAC,oBAAoB,0CAAE,QAAQ,CAAA,CAAC,EACvF;AACA,YAAA,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC;AAChC,SAAA;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AACnC,YAAA,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC;AAC7B,SAAA;QAED,IAAI,KAAK,CAAC,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;QAED,IACE,MAAM,CAAC,KAAK,CAAC;AACb,YAAA,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;AAChC,YAAA,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACjC,YAAA,CAAC,aAAa,CAAC,KAAK,CAAC,EACrB;AACA,YAAA,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;AAC7C,SAAA;QAED,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;KACvC;AAEO,IAAA,yBAAyB,CAAC,KAA6B,EAAA;QAC7D,MAAM,oBAAoB,GAAG,MAAK;;YAChC,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAE1D,YAAA,MAAM,iBAAiB,GAAG,CAAA,EAAA,GAAA,KAAK,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAA,CAAC,CAAC,CAAC;YAC7D,IACE,iBAAiB,YAAY,YAAY;AACzC,gBAAA,CAAA,iBAAiB,KAAjB,IAAA,IAAA,iBAAiB,KAAjB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,iBAAiB,CAAE,aAAa,OAAK,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAY,CAAE,aAAa,CAAA,EAChE;gBACA,YAAY,GAAG,iBAAwB,CAAC;AACzC,aAAA;AAED,YAAA,OAAO,YAAY,KAAZ,IAAA,IAAA,YAAY,uBAAZ,YAAY,CAAE,QAAe,CAAC;AACvC,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;YACzB,gBAAgB,CACd,KAAK,EACL,gBAAgB,EAChB,IAAI,KAAK,CAAC,EAAqB,EAAE;AAC/B,gBAAA,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,KAAI,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,EAAA,GAAA,oBAAoB,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,IAAI,CAAC,CAAA,EAAA;AAChD,gBAAA,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,MAAM,oBAAoB,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAChE,aAAA,CAAC,CACH,CAAC;AACH,SAAA;QAED,OAAO,KAAK,CAAC,cAAc,CAAC;KAC7B;AACF;;ACpLK,SAAU,mBAAmB,CAAC,MAAoB,EAAA;IACtD,OAAO;AACL,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE;AAChD,YAAA,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,kBAAkB,EAAE;AAC3D,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE;AACtE,YAAA,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,IAAI,wBAAwB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE;AAC7F,YAAA,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE;AAC3E,YAAA,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,IAAI,wBAAwB,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE;AACxF,SAAA;KACF,CAAC;AACJ,CAAC;MAeY,YAAY,CAAA;AAwBvB,IAAA,WAAA,CAAY,aAA2B,EAAqC,OAAA,GAA0B,EAAE,EAAA;QACtG,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;AACR,SAAA;AAED,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;KAC9D;AA7BD,IAAA,OAAO,OAAO,CAAC,MAAA,GAAuB,EAAE,EAAA;QACtC,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE;gBAC9F,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;gBACzD,YAAY;gBACZ,iBAAiB;AAClB,aAAA;SACF,CAAC;KACH;AAED,IAAA,OAAO,QAAQ,CAAC,MAAA,GAAuB,EAAE,EAAA;QACvC,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE;gBAC9F,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;gBACzD,iBAAiB;AAClB,aAAA;SACF,CAAC;KACH;;AAtBU,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,2CAwBsC,aAAa,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAxB/D,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBAXrB,cAAc;QACd,UAAU;QACV,WAAW;QACX,gBAAgB;QAChB,WAAW;QACX,uBAAuB;QACvB,kBAAkB,CAGV,EAAA,OAAA,EAAA,CAAA,YAAY,CADZ,EAAA,OAAA,EAAA,CAAA,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,uBAAuB,CAAA,EAAA,CAAA,CAAA;2GAG9F,YAAY,EAAA,OAAA,EAAA,CAFd,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;4FAEZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAbxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,cAAc;wBACd,UAAU;wBACV,WAAW;wBACX,gBAAgB;wBAChB,WAAW;wBACX,uBAAuB;wBACvB,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,uBAAuB,CAAC;oBAC1G,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB,CAAA;;;8BAyB2C,QAAQ;;8BAAI,MAAM;+BAAC,aAAa,CAAA;;;;ACtE5E;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-formly-core.mjs","sources":["../../../../src/core/src/lib/utils.ts","../../../../src/core/src/lib/services/formly.config.ts","../../../../src/core/src/lib/services/formly.builder.ts","../../../../src/core/src/lib/extensions/field-form/utils.ts","../../../../src/core/src/lib/components/formly.template.ts","../../../../src/core/src/lib/components/formly.field.ts","../../../../src/core/src/lib/components/formly.form.ts","../../../../src/core/src/lib/templates/formly.attributes.ts","../../../../src/core/src/lib/templates/field.type.ts","../../../../src/core/src/lib/templates/formly.group.ts","../../../../src/core/src/lib/templates/formly.validation-message.ts","../../../../src/core/src/lib/templates/field-array.type.ts","../../../../src/core/src/lib/templates/field.wrapper.ts","../../../../src/core/src/lib/templates/field-template.type.ts","../../../../src/core/src/lib/extensions/field-expression/utils.ts","../../../../src/core/src/lib/extensions/field-expression/field-expression.ts","../../../../src/core/src/lib/extensions/field-validation/field-validation.ts","../../../../src/core/src/lib/extensions/field-form/field-form.ts","../../../../src/core/src/lib/extensions/core/core.ts","../../../../src/core/src/lib/core.module.ts","../../../../src/core/src/public_api.ts","../../../../src/core/src/ngx-formly-core.ts"],"sourcesContent":["import { FormlyFieldConfig } from './models';\nimport { isObservable } from 'rxjs';\nimport { AbstractControl } from '@angular/forms';\nimport { FormlyFieldConfigCache } from './models';\nimport { ChangeDetectorRef, ComponentRef, NgZone, TemplateRef, Type, ɵNoopNgZone } from '@angular/core';\n\nexport function disableTreeValidityCall(form: any, callback: Function) {\n const _updateTreeValidity = form._updateTreeValidity.bind(form);\n form._updateTreeValidity = () => {};\n callback();\n form._updateTreeValidity = _updateTreeValidity;\n}\n\nexport function getFieldId(formId: string, field: FormlyFieldConfig, index: string | number) {\n if (field.id) {\n return field.id;\n }\n let type = field.type;\n if (!type && field.template) {\n type = 'template';\n }\n\n if (type instanceof Type) {\n type = type.prototype.constructor.name;\n }\n\n return [formId, type, field.key, index].join('_');\n}\n\nexport function hasKey(field: FormlyFieldConfig) {\n return !isNil(field.key) && field.key !== '' && (!Array.isArray(field.key) || field.key.length > 0);\n}\n\nexport function getKeyPath(field: FormlyFieldConfigCache): string[] {\n if (!hasKey(field)) {\n return [];\n }\n\n /* We store the keyPath in the field for performance reasons. This function will be called frequently. */\n if (field._keyPath?.key !== field.key) {\n let path: (string | number)[] = [];\n if (typeof field.key === 'string') {\n const key = field.key.indexOf('[') === -1 ? field.key : field.key.replace(/\\[(\\w+)\\]/g, '.$1');\n path = key.indexOf('.') !== -1 ? key.split('.') : [key];\n } else if (Array.isArray(field.key)) {\n path = field.key.slice(0);\n } else {\n path = [`${field.key}`];\n }\n\n defineHiddenProp(field, '_keyPath', { key: field.key, path });\n }\n\n return field._keyPath.path.slice(0);\n}\n\nexport const FORMLY_VALIDATORS = ['required', 'pattern', 'minLength', 'maxLength', 'min', 'max'];\n\nexport function assignFieldValue(field: FormlyFieldConfigCache, value: any) {\n let paths = getKeyPath(field);\n if (paths.length === 0) {\n return;\n }\n\n let root = field;\n while (root.parent) {\n root = root.parent;\n paths = [...getKeyPath(root), ...paths];\n }\n\n if (value === undefined && field.resetOnHide) {\n const k = paths.pop();\n const m = paths.reduce((model, path) => model[path] || {}, root.model);\n delete m[k];\n return;\n }\n\n assignModelValue(root.model, paths, value);\n}\n\nexport function assignModelValue(model: any, paths: string[], value: any) {\n for (let i = 0; i < paths.length - 1; i++) {\n const path = paths[i];\n if (!model[path] || !isObject(model[path])) {\n model[path] = /^\\d+$/.test(paths[i + 1]) ? [] : {};\n }\n\n model = model[path];\n }\n\n model[paths[paths.length - 1]] = clone(value);\n}\n\nexport function getFieldValue(field: FormlyFieldConfig): any {\n let model = field.parent ? field.parent.model : field.model;\n for (const path of getKeyPath(field)) {\n if (!model) {\n return model;\n }\n model = model[path];\n }\n\n return model;\n}\n\nexport function reverseDeepMerge(dest: any, ...args: any[]) {\n args.forEach((src) => {\n for (const srcArg in src) {\n if (isNil(dest[srcArg]) || isBlankString(dest[srcArg])) {\n dest[srcArg] = clone(src[srcArg]);\n } else if (objAndSameType(dest[srcArg], src[srcArg])) {\n reverseDeepMerge(dest[srcArg], src[srcArg]);\n }\n }\n });\n return dest;\n}\n\n// check a value is null or undefined\nexport function isNil(value: any) {\n return value == null;\n}\n\nexport function isUndefined(value: any) {\n return value === undefined;\n}\n\nexport function isBlankString(value: any) {\n return value === '';\n}\n\nexport function isFunction(value: any) {\n return typeof value === 'function';\n}\n\nexport function objAndSameType(obj1: any, obj2: any) {\n return (\n isObject(obj1) &&\n isObject(obj2) &&\n Object.getPrototypeOf(obj1) === Object.getPrototypeOf(obj2) &&\n !(Array.isArray(obj1) || Array.isArray(obj2))\n );\n}\n\nexport function isObject(x: any) {\n return x != null && typeof x === 'object';\n}\n\nexport function isPromise(obj: any): obj is Promise<any> {\n return !!obj && typeof obj.then === 'function';\n}\n\nexport function clone(value: any): any {\n if (\n !isObject(value) ||\n isObservable(value) ||\n value instanceof TemplateRef ||\n /* instanceof SafeHtmlImpl */ value.changingThisBreaksApplicationSecurity ||\n ['RegExp', 'FileList', 'File', 'Blob'].indexOf(value.constructor.name) !== -1\n ) {\n return value;\n }\n\n if (value instanceof Set) {\n return new Set(value);\n }\n\n if (value instanceof Map) {\n return new Map(value);\n }\n\n if (value instanceof Uint8Array) {\n return new Uint8Array(value);\n }\n\n if (value instanceof Uint16Array) {\n return new Uint16Array(value);\n }\n\n if (value instanceof Uint32Array) {\n return new Uint32Array(value);\n }\n\n // https://github.com/moment/moment/blob/master/moment.js#L252\n if (value._isAMomentObject && isFunction(value.clone)) {\n return value.clone();\n }\n\n if (value instanceof AbstractControl) {\n return null;\n }\n\n if (value instanceof Date) {\n return new Date(value.getTime());\n }\n\n if (Array.isArray(value)) {\n return value.slice(0).map((v) => clone(v));\n }\n\n // best way to clone a js object maybe\n // https://stackoverflow.com/questions/41474986/how-to-clone-a-javascript-es6-class-instance\n const proto = Object.getPrototypeOf(value);\n let c = Object.create(proto);\n c = Object.setPrototypeOf(c, proto);\n // need to make a deep copy so we dont use Object.assign\n // also Object.assign wont copy property descriptor exactly\n return Object.keys(value).reduce((newVal, prop) => {\n const propDesc = Object.getOwnPropertyDescriptor(value, prop);\n if (propDesc.get) {\n Object.defineProperty(newVal, prop, propDesc);\n } else {\n newVal[prop] = clone(value[prop]);\n }\n\n return newVal;\n }, c);\n}\n\nexport function defineHiddenProp(field: any, prop: string, defaultValue: any) {\n Object.defineProperty(field, prop, { enumerable: false, writable: true, configurable: true });\n field[prop] = defaultValue;\n}\n\ntype IObserveFn<T> = (change: { currentValue: T; previousValue?: T; firstChange: boolean }) => void;\nexport interface IObserver<T> {\n setValue: (value: T, emitEvent?: boolean) => void;\n unsubscribe: Function;\n}\ninterface IObserveTarget<T> {\n [prop: string]: any;\n _observers?: {\n [prop: string]: {\n value: T;\n onChange: IObserveFn<T>[];\n };\n };\n}\n\nexport function observeDeep<T = any>(source: IObserveTarget<T>, paths: string[], setFn: () => void): () => void {\n let observers: Function[] = [];\n\n const unsubscribe = () => {\n observers.forEach((observer) => observer());\n observers = [];\n };\n const observer = observe(source, paths, ({ firstChange, currentValue }) => {\n !firstChange && setFn();\n\n unsubscribe();\n if (isObject(currentValue) && currentValue.constructor.name === 'Object') {\n Object.keys(currentValue).forEach((prop) => {\n observers.push(observeDeep(source, [...paths, prop], setFn));\n });\n }\n });\n\n return () => {\n observer.unsubscribe();\n unsubscribe();\n };\n}\n\nexport function observe<T = any>(o: IObserveTarget<T>, paths: string[], setFn?: IObserveFn<T>): IObserver<T> {\n if (!o._observers) {\n defineHiddenProp(o, '_observers', {});\n }\n\n let target = o;\n for (let i = 0; i < paths.length - 1; i++) {\n if (!target[paths[i]] || !isObject(target[paths[i]])) {\n target[paths[i]] = /^\\d+$/.test(paths[i + 1]) ? [] : {};\n }\n target = target[paths[i]];\n }\n\n const key = paths[paths.length - 1];\n const prop = paths.join('.');\n if (!o._observers[prop]) {\n o._observers[prop] = { value: target[key], onChange: [] };\n }\n\n const state = o._observers[prop];\n if (target[key] !== state.value) {\n state.value = target[key];\n }\n\n if (setFn && state.onChange.indexOf(setFn) === -1) {\n state.onChange.push(setFn);\n setFn({ currentValue: state.value, firstChange: true });\n if (state.onChange.length >= 1 && isObject(target)) {\n const { enumerable } = Object.getOwnPropertyDescriptor(target, key) || { enumerable: true };\n Object.defineProperty(target, key, {\n enumerable,\n configurable: true,\n get: () => state.value,\n set: (currentValue) => {\n if (currentValue !== state.value) {\n const previousValue = state.value;\n state.value = currentValue;\n state.onChange.forEach((changeFn) => changeFn({ previousValue, currentValue, firstChange: false }));\n }\n },\n });\n }\n }\n\n return {\n setValue(currentValue: T, emitEvent = true) {\n if (currentValue === state.value) {\n return;\n }\n\n const previousValue = state.value;\n state.value = currentValue;\n state.onChange.forEach((changeFn) => {\n if (changeFn !== setFn && emitEvent) {\n changeFn({ previousValue, currentValue, firstChange: false });\n }\n });\n },\n unsubscribe() {\n state.onChange = state.onChange.filter((changeFn) => changeFn !== setFn);\n if (state.onChange.length === 0) {\n delete o._observers[prop];\n }\n },\n };\n}\n\nexport function getField(f: FormlyFieldConfig, key: FormlyFieldConfig['key']): FormlyFieldConfig {\n key = (Array.isArray(key) ? key.join('.') : key) as string;\n if (!f.fieldGroup) {\n return undefined;\n }\n\n for (let i = 0, len = f.fieldGroup.length; i < len; i++) {\n const c = f.fieldGroup[i];\n const k = (Array.isArray(c.key) ? c.key.join('.') : c.key) as string;\n if (k === key) {\n return c;\n }\n\n if (c.fieldGroup && (isNil(k) || key.indexOf(`${k}.`) === 0)) {\n const field = getField(c, isNil(k) ? key : key.slice(k.length + 1));\n if (field) {\n return field;\n }\n }\n }\n\n return undefined;\n}\n\nexport function markFieldForCheck(field: FormlyFieldConfigCache) {\n field._componentRefs?.forEach((ref) => {\n // NOTE: we cannot use ref.changeDetectorRef, see https://github.com/ngx-formly/ngx-formly/issues/2191\n if (ref instanceof ComponentRef) {\n const changeDetectorRef = ref.injector.get(ChangeDetectorRef);\n changeDetectorRef.markForCheck();\n } else {\n ref.markForCheck();\n }\n });\n}\n\nexport function isNoopNgZone(ngZone: NgZone) {\n return ngZone instanceof ɵNoopNgZone;\n}\n\nexport function isHiddenField(field: FormlyFieldConfig) {\n const isHidden = (f: FormlyFieldConfig) => f.hide || f.expressions?.hide || f.hideExpression;\n let setDefaultValue = !field.resetOnHide || !isHidden(field);\n if (!isHidden(field) && field.resetOnHide) {\n let parent = field.parent;\n while (parent && !isHidden(parent)) {\n parent = parent.parent;\n }\n setDefaultValue = !parent || !isHidden(parent);\n }\n\n return !setDefaultValue;\n}\n","import { Injectable, InjectionToken, ComponentRef, Type } from '@angular/core';\nimport { FieldType } from './../templates/field.type';\nimport { reverseDeepMerge, defineHiddenProp } from './../utils';\nimport {\n FormlyFieldConfig,\n FormlyFieldConfigCache,\n ConfigOption,\n TypeOption,\n ValidatorOption,\n WrapperOption,\n FormlyExtension,\n ValidationMessageOption,\n ExtensionOption,\n FormlyFieldConfigPresetProvider,\n} from '../models';\nimport { FieldWrapper } from '../templates/field.wrapper';\n\n/**\n * An InjectionToken for registering additional formly config options (types, wrappers ...).\n */\nexport const FORMLY_CONFIG = new InjectionToken<ConfigOption[]>('FORMLY_CONFIG');\ndeclare const ngDevMode: any;\n\n/**\n * Maintains list of formly config options. This can be used to register new field type.\n */\n@Injectable({ providedIn: 'root' })\nexport class FormlyConfig {\n types: { [name: string]: TypeOption } = {};\n validators: { [name: string]: ValidatorOption } = {};\n wrappers: { [name: string]: WrapperOption } = {};\n messages: { [name: string]: ValidationMessageOption['message'] } = {};\n\n extras: NonNullable<ConfigOption['extras']> = {\n checkExpressionOn: 'modelChange',\n lazyRender: true,\n resetFieldOnHide: true,\n renderFormlyFieldElement: true,\n showError(field: FieldType) {\n return (\n field.formControl?.invalid &&\n (field.formControl?.touched || field.options.parentForm?.submitted || !!field.field.validation?.show)\n );\n },\n };\n extensions: { [name: string]: FormlyExtension } = {};\n presets: { [name: string]: FormlyFieldConfig | FormlyFieldConfigPresetProvider } = {};\n\n private extensionsByPriority: Record<number, { [name: string]: FormlyExtension }> = {};\n\n addConfig(config: ConfigOption) {\n if (config.types) {\n config.types.forEach((type) => this.setType(type));\n }\n if (config.validators) {\n config.validators.forEach((validator) => this.setValidator(validator));\n }\n if (config.wrappers) {\n config.wrappers.forEach((wrapper) => this.setWrapper(wrapper));\n }\n if (config.validationMessages) {\n config.validationMessages.forEach((validation) => this.addValidatorMessage(validation.name, validation.message));\n }\n if (config.extensions) {\n this.setSortedExtensions(config.extensions);\n }\n if (config.extras) {\n this.extras = { ...this.extras, ...config.extras };\n }\n if (config.presets) {\n this.presets = {\n ...this.presets,\n ...config.presets.reduce((acc, curr) => ({ ...acc, [curr.name]: curr.config }), {}),\n };\n }\n }\n\n /**\n * Allows you to specify a custom type which you can use in your field configuration.\n * You can pass an object of options, or an array of objects of options.\n */\n setType(options: TypeOption | TypeOption[]) {\n if (Array.isArray(options)) {\n options.forEach((option) => this.setType(option));\n } else {\n if (!this.types[options.name]) {\n this.types[options.name] = <TypeOption>{ name: options.name };\n }\n\n (['component', 'extends', 'defaultOptions', 'wrappers'] as (keyof TypeOption)[]).forEach((prop) => {\n if (options.hasOwnProperty(prop)) {\n this.types[options.name][prop] = options[prop] as any;\n }\n });\n }\n }\n\n getType(name: FormlyFieldConfig['type'], throwIfNotFound = false): TypeOption {\n if (name instanceof Type) {\n return { component: name, name: name.prototype.constructor.name };\n }\n\n if (!this.types[name]) {\n if (throwIfNotFound) {\n throw new Error(\n `[Formly Error] The type \"${name}\" could not be found. Please make sure that is registered through the FormlyModule declaration.`,\n );\n }\n\n return null;\n }\n\n this.mergeExtendedType(name);\n\n return this.types[name];\n }\n\n /** @ignore */\n getMergedField(field: FormlyFieldConfig = {}): any {\n const type = this.getType(field.type);\n if (!type) {\n return;\n }\n\n if (type.defaultOptions) {\n reverseDeepMerge(field, type.defaultOptions);\n }\n\n const extendDefaults = type.extends && this.getType(type.extends).defaultOptions;\n if (extendDefaults) {\n reverseDeepMerge(field, extendDefaults);\n }\n\n if (field?.optionsTypes) {\n field.optionsTypes.forEach((option) => {\n const defaultOptions = this.getType(option).defaultOptions;\n if (defaultOptions) {\n reverseDeepMerge(field, defaultOptions);\n }\n });\n }\n\n const componentRef = this.resolveFieldTypeRef(field);\n if (componentRef?.instance?.defaultOptions) {\n reverseDeepMerge(field, componentRef.instance.defaultOptions);\n }\n\n if (!field.wrappers && type.wrappers) {\n field.wrappers = [...type.wrappers];\n }\n }\n\n /** @ignore @internal */\n resolveFieldTypeRef(field: FormlyFieldConfigCache = {}): ComponentRef<FieldType> {\n const type: TypeOption & { _componentRef?: ComponentRef<any> } = this.getType(field.type);\n if (!type) {\n return null;\n }\n\n if (!type.component || type._componentRef) {\n return type._componentRef;\n }\n\n const { _viewContainerRef, _injector } = field.options;\n if (!_viewContainerRef || !_injector) {\n return null;\n }\n\n const componentRef = _viewContainerRef.createComponent<FieldType>(type.component, { injector: _injector });\n defineHiddenProp(type, '_componentRef', componentRef);\n try {\n componentRef.destroy();\n } catch (e) {\n console.error(`An error occurred while destroying the Formly component type \"${field.type}\"`, e);\n }\n\n return type._componentRef;\n }\n\n setWrapper(options: WrapperOption) {\n this.wrappers[options.name] = options;\n if (options.types) {\n options.types.forEach((type) => {\n this.setTypeWrapper(type, options.name);\n });\n }\n }\n\n getWrapper(name: string | Type<FieldWrapper>): WrapperOption {\n if (name instanceof Type) {\n return { component: name, name: name.prototype.constructor.name };\n }\n\n if (!this.wrappers[name]) {\n throw new Error(\n `[Formly Error] The wrapper \"${name}\" could not be found. Please make sure that is registered through the FormlyModule declaration.`,\n );\n }\n\n return this.wrappers[name];\n }\n\n /** @ignore */\n setTypeWrapper(type: string, name: string) {\n if (!this.types[type]) {\n this.types[type] = <TypeOption>{};\n }\n if (!this.types[type].wrappers) {\n this.types[type].wrappers = [];\n }\n if (this.types[type].wrappers.indexOf(name) === -1) {\n this.types[type].wrappers.push(name);\n }\n }\n\n setValidator(options: ValidatorOption) {\n this.validators[options.name] = options;\n }\n\n getValidator(name: string): ValidatorOption {\n if (!this.validators[name]) {\n throw new Error(\n `[Formly Error] The validator \"${name}\" could not be found. Please make sure that is registered through the FormlyModule declaration.`,\n );\n }\n\n return this.validators[name];\n }\n\n addValidatorMessage(name: string, message: ValidationMessageOption['message']) {\n this.messages[name] = message;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const deprecated = { minlength: 'minLength', maxlength: 'maxLength' } as any;\n if (deprecated[name]) {\n console.warn(\n `Formly deprecation: passing validation messages key '${name}' is deprecated since v6.0, use '${deprecated[name]}' instead.`,\n );\n this.messages[deprecated[name]] = message;\n }\n }\n }\n\n getValidatorMessage(name: string) {\n return this.messages[name];\n }\n\n private setSortedExtensions(extensionOptions: ExtensionOption[]) {\n // insert new extensions, grouped by priority\n extensionOptions.forEach((extensionOption) => {\n const priority = extensionOption.priority ?? 1;\n this.extensionsByPriority[priority] = {\n ...this.extensionsByPriority[priority],\n [extensionOption.name]: extensionOption.extension,\n };\n });\n // flatten extensions object with sorted keys\n this.extensions = Object.keys(this.extensionsByPriority)\n .map(Number)\n .sort((a, b) => a - b)\n .reduce(\n (acc, prio) => ({\n ...acc,\n ...this.extensionsByPriority[prio],\n }),\n {},\n );\n }\n\n private mergeExtendedType(name: string) {\n if (!this.types[name].extends) {\n return;\n }\n\n const extendedType = this.getType(this.types[name].extends);\n if (!this.types[name].component) {\n this.types[name].component = extendedType.component;\n }\n\n if (!this.types[name].wrappers) {\n this.types[name].wrappers = extendedType.wrappers;\n }\n }\n}\n","import { Injectable, Injector, Optional, ViewContainerRef } from '@angular/core';\nimport { FormGroup, FormArray, FormGroupDirective } from '@angular/forms';\nimport { FormlyConfig } from './formly.config';\nimport { FormlyFieldConfig, FormlyFormOptions, FormlyFieldConfigCache } from '../models';\nimport { defineHiddenProp, observe, disableTreeValidityCall, isHiddenField } from '../utils';\n\n@Injectable({ providedIn: 'root' })\nexport class FormlyFormBuilder {\n constructor(\n private config: FormlyConfig,\n private injector: Injector,\n @Optional() private viewContainerRef: ViewContainerRef,\n @Optional() private parentForm: FormGroupDirective,\n ) {}\n\n buildForm(form: FormGroup | FormArray, fieldGroup: FormlyFieldConfig[] = [], model: any, options: FormlyFormOptions) {\n this.build({ fieldGroup, model, form, options });\n }\n\n build(field: FormlyFieldConfig) {\n if (!this.config.extensions.core) {\n throw new Error('NgxFormly: missing `forRoot()` call. use `forRoot()` when registering the `FormlyModule`.');\n }\n\n if (!field.parent) {\n this._setOptions(field);\n }\n\n disableTreeValidityCall(field.form, () => {\n this._build(field);\n // TODO: add test for https://github.com/ngx-formly/ngx-formly/issues/3910\n if (!field.parent || (field as FormlyFieldConfigCache).fieldArray) {\n // detect changes early to avoid reset value by hidden fields\n const options = (field as FormlyFieldConfigCache).options;\n\n if (field.parent && isHiddenField(field)) {\n // when hide is used in expression set defaul value will not be set until detect hide changes\n // which causes default value not set on new item is added\n options._hiddenFieldsForCheck?.push(field);\n }\n\n options.checkExpressions?.(field, true);\n options._detectChanges?.(field);\n }\n });\n }\n\n private _build(field: FormlyFieldConfigCache) {\n if (!field) {\n return;\n }\n\n const extensions = Object.values(this.config.extensions);\n extensions.forEach((extension) => extension.prePopulate?.(field));\n extensions.forEach((extension) => extension.onPopulate?.(field));\n field.fieldGroup?.forEach((f) => this._build(f));\n extensions.forEach((extension) => extension.postPopulate?.(field));\n }\n\n private _setOptions(field: FormlyFieldConfigCache) {\n field.form = field.form || new FormGroup({});\n field.model = field.model || {};\n field.options = field.options || {};\n const options = field.options;\n\n if (!options._viewContainerRef) {\n defineHiddenProp(options, '_viewContainerRef', this.viewContainerRef);\n }\n\n if (!options._injector) {\n defineHiddenProp(options, '_injector', this.injector);\n }\n\n if (!options.build) {\n options._buildForm = () => {\n console.warn(`Formly: 'options._buildForm' is deprecated since v6.0, use 'options.build' instead.`);\n this.build(field);\n };\n\n options.build = (f: FormlyFieldConfig = field) => {\n this.build(f);\n\n return f;\n };\n }\n\n if (!options.parentForm && this.parentForm) {\n defineHiddenProp(options, 'parentForm', this.parentForm);\n observe(options, ['parentForm', 'submitted'], ({ firstChange }) => {\n if (!firstChange) {\n options.detectChanges(field);\n }\n });\n }\n }\n}\n","import { EventEmitter } from '@angular/core';\nimport { FormArray, FormGroup, FormControl, AbstractControl } from '@angular/forms';\nimport { getKeyPath, getFieldValue, isNil, defineHiddenProp, observe, hasKey } from '../../utils';\nimport { FormlyFieldConfigCache } from '../../models';\n\nexport function unregisterControl(field: FormlyFieldConfigCache, emitEvent = false) {\n const control = field.formControl;\n const fieldIndex = control._fields ? control._fields.indexOf(field) : -1;\n if (fieldIndex !== -1) {\n control._fields.splice(fieldIndex, 1);\n }\n\n const form = control.parent as FormArray | FormGroup;\n if (!form) {\n return;\n }\n\n const opts = { emitEvent };\n if (form instanceof FormArray) {\n const key = form.controls.findIndex((c) => c === control);\n if (key !== -1) {\n form.removeAt(key, opts);\n }\n } else if (form instanceof FormGroup) {\n const paths = getKeyPath(field);\n const key = paths[paths.length - 1];\n if (form.get([key]) === control) {\n form.removeControl(key, opts);\n }\n }\n\n control.setParent(null);\n}\n\nexport function findControl(field: FormlyFieldConfigCache): AbstractControl {\n if (field.formControl) {\n return field.formControl;\n }\n\n if (field.shareFormControl === false) {\n return null;\n }\n\n return field.form?.get(getKeyPath(field));\n}\n\nexport function registerControl(\n field: FormlyFieldConfigCache,\n control?: FormlyFieldConfigCache['formControl'],\n emitEvent = false,\n) {\n control = control || field.formControl;\n\n if (!control._fields) {\n defineHiddenProp(control, '_fields', []);\n }\n if (control._fields.indexOf(field) === -1) {\n control._fields.push(field);\n }\n\n if (!field.formControl && control) {\n defineHiddenProp(field, 'formControl', control);\n control.setValidators(null);\n control.setAsyncValidators(null);\n\n field.props.disabled = !!field.props.disabled;\n const disabledObserver = observe(field, ['props', 'disabled'], ({ firstChange, currentValue }) => {\n if (!firstChange) {\n currentValue ? field.formControl.disable() : field.formControl.enable();\n }\n });\n if (control instanceof FormControl) {\n control.registerOnDisabledChange(disabledObserver.setValue);\n }\n }\n\n if (!field.form || !hasKey(field)) {\n return;\n }\n\n let form = field.form;\n const paths = getKeyPath(field);\n const value = getFieldValue(field);\n if (!(isNil(control.value) && isNil(value)) && control.value !== value && control instanceof FormControl) {\n control.patchValue(value);\n }\n\n for (let i = 0; i < paths.length - 1; i++) {\n const path = paths[i];\n if (!form.get([path])) {\n (form as FormGroup).setControl(path, new FormGroup({}), { emitEvent });\n }\n\n form = <FormGroup>form.get([path]);\n }\n\n const key = paths[paths.length - 1];\n if (!field._hide && form.get([key]) !== control) {\n (form as FormGroup).setControl(key, control, { emitEvent });\n }\n}\n\nexport function updateValidity(c: AbstractControl, onlySelf = false) {\n const status = c.status;\n const value = c.value;\n c.updateValueAndValidity({ emitEvent: false, onlySelf });\n if (status !== c.status) {\n (c.statusChanges as EventEmitter<string>).emit(c.status);\n }\n\n if (value !== c.value) {\n (c.valueChanges as EventEmitter<any>).emit(c.value);\n }\n}\n\nexport function clearControl(form: FormlyFieldConfigCache['formControl']) {\n delete form?._fields;\n form.setValidators(null);\n form.setAsyncValidators(null);\n if (form instanceof FormGroup || form instanceof FormArray) {\n Object.values(form.controls).forEach((c) => clearControl(c));\n }\n}\n","import { Directive, Injectable, Input, OnChanges, QueryList, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[formlyTemplate]' })\nexport class FormlyTemplate implements OnChanges {\n @Input('formlyTemplate') name: string;\n\n constructor(public ref: TemplateRef<any>) {}\n\n ngOnChanges() {\n this.name = this.name || 'formly-group';\n }\n}\n\n// workarround for https://github.com/angular/angular/issues/43227#issuecomment-904173738\n@Injectable()\nexport class FormlyFieldTemplates {\n templates!: QueryList<FormlyTemplate>;\n}\n","import {\n Component,\n Input,\n ViewContainerRef,\n ViewChild,\n ComponentRef,\n SimpleChanges,\n DoCheck,\n OnInit,\n OnChanges,\n OnDestroy,\n AfterContentInit,\n AfterViewInit,\n Renderer2,\n ElementRef,\n EmbeddedViewRef,\n Optional,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { FormlyConfig } from '../services/formly.config';\nimport { FormlyFieldConfig, FormlyFieldConfigCache, FormlyHookConfig } from '../models';\nimport {\n defineHiddenProp,\n observe,\n observeDeep,\n getFieldValue,\n assignFieldValue,\n isObject,\n markFieldForCheck,\n hasKey,\n IObserver,\n} from '../utils';\nimport { FieldWrapper } from '../templates/field.wrapper';\nimport { FieldType } from '../templates/field.type';\nimport { Subscription, isObservable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { FormlyFieldTemplates } from './formly.template';\nimport { VERSION } from '@angular/common';\n\n/**\n * The `<formly-field>` component is used to render the UI widget (layout + type) of a given `field`.\n */\n@Component({\n selector: 'formly-field',\n template: '<ng-template #container></ng-template>',\n styleUrls: ['./formly.field.scss'],\n})\nexport class FormlyField implements DoCheck, OnInit, OnChanges, AfterContentInit, AfterViewInit, OnDestroy {\n /** The field config. */\n @Input() field: FormlyFieldConfig;\n @ViewChild('container', { read: ViewContainerRef, static: true }) viewContainerRef!: ViewContainerRef;\n\n private hostObservers: (IObserver<any> | Subscription)[] = [];\n private componentRefs: (ComponentRef<FieldType> | EmbeddedViewRef<FieldType>)[] = [];\n private hooksObservers: Function[] = [];\n private detectFieldBuild = false;\n\n private get containerRef() {\n return this.config.extras.renderFormlyFieldElement ? this.viewContainerRef : this.hostContainerRef;\n }\n\n private get elementRef() {\n if (this.config.extras.renderFormlyFieldElement) {\n return this._elementRef;\n }\n if (this.componentRefs?.[0] instanceof ComponentRef) {\n return this.componentRefs[0].location;\n }\n\n return null;\n }\n\n valueChangesUnsubscribe = () => {};\n\n constructor(\n private config: FormlyConfig,\n private renderer: Renderer2,\n private _elementRef: ElementRef,\n private hostContainerRef: ViewContainerRef,\n @Optional() private form: FormlyFieldTemplates,\n ) {}\n\n ngAfterContentInit() {\n this.triggerHook('afterContentInit');\n }\n\n ngAfterViewInit() {\n this.triggerHook('afterViewInit');\n }\n\n ngDoCheck() {\n if (this.detectFieldBuild && this.field && this.field.options) {\n this.render();\n }\n }\n\n ngOnInit() {\n this.triggerHook('onInit');\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.triggerHook('onChanges', changes);\n }\n\n ngOnDestroy() {\n this.resetRefs(this.field);\n this.hostObservers.forEach((hostObserver) => hostObserver.unsubscribe());\n this.hooksObservers.forEach((unsubscribe) => unsubscribe());\n this.valueChangesUnsubscribe();\n this.triggerHook('onDestroy');\n }\n\n private renderField(\n containerRef: ViewContainerRef,\n f: FormlyFieldConfigCache,\n wrappers: FormlyFieldConfig['wrappers'] = [],\n ) {\n if (this.containerRef === containerRef) {\n this.resetRefs(this.field);\n this.containerRef.clear();\n wrappers = this.field?.wrappers;\n }\n\n if (wrappers?.length > 0) {\n const [wrapper, ...wps] = wrappers;\n const { component } = this.config.getWrapper(wrapper);\n\n const ref = containerRef.createComponent<FieldWrapper>(component);\n this.attachComponentRef(ref, f);\n observe<ViewContainerRef & { _lContainer: any }>(\n ref.instance,\n ['fieldComponent'],\n ({ currentValue, previousValue, firstChange }) => {\n if (currentValue) {\n if (previousValue && previousValue._lContainer === currentValue._lContainer) {\n return;\n }\n\n const viewRef = previousValue ? previousValue.detach() : null;\n if (viewRef && !viewRef.destroyed) {\n currentValue.insert(viewRef);\n } else {\n this.renderField(currentValue, f, wps);\n }\n\n !firstChange && ref.changeDetectorRef.detectChanges();\n }\n },\n );\n } else if (f?.type) {\n const inlineType = this.form?.templates?.find((ref) => ref.name === f.type);\n let ref: ComponentRef<any> | EmbeddedViewRef<any>;\n if (inlineType) {\n ref = containerRef.createEmbeddedView(inlineType.ref, { $implicit: f });\n } else {\n const { component } = this.config.getType(f.type, true);\n ref = containerRef.createComponent<FieldWrapper>(component as any);\n }\n this.attachComponentRef(ref, f);\n }\n }\n\n private triggerHook(name: keyof FormlyHookConfig, changes?: SimpleChanges) {\n if (name === 'onInit' || (name === 'onChanges' && changes.field && !changes.field.firstChange)) {\n this.valueChangesUnsubscribe();\n this.valueChangesUnsubscribe = this.fieldChanges(this.field);\n }\n\n if (this.field?.hooks?.[name]) {\n if (!changes || changes.field) {\n const r = this.field.hooks[name](this.field);\n if (isObservable(r) && ['onInit', 'afterContentInit', 'afterViewInit'].indexOf(name) !== -1) {\n const sub = r.subscribe();\n this.hooksObservers.push(() => sub.unsubscribe());\n }\n }\n }\n\n if (name === 'onChanges' && changes.field) {\n this.resetRefs(changes.field.previousValue);\n this.render();\n }\n }\n\n private attachComponentRef<T extends FieldType>(\n ref: ComponentRef<T> | EmbeddedViewRef<T>,\n field: FormlyFieldConfigCache,\n ) {\n this.componentRefs.push(ref);\n field._componentRefs.push(ref);\n if (ref instanceof ComponentRef) {\n Object.assign(ref.instance, { field });\n }\n }\n\n private render() {\n if (!this.field) {\n return;\n }\n\n // require Formly build\n if (!this.field.options) {\n this.detectFieldBuild = true;\n\n return;\n }\n\n this.detectFieldBuild = false;\n this.hostObservers.forEach((hostObserver) => hostObserver.unsubscribe());\n this.hostObservers = [\n observe<boolean>(this.field, ['hide'], ({ firstChange, currentValue }) => {\n const containerRef = this.containerRef;\n if (this.config.extras.lazyRender === false) {\n firstChange && this.renderField(containerRef, this.field);\n if (!firstChange || (firstChange && currentValue)) {\n this.elementRef &&\n this.renderer.setStyle(this.elementRef.nativeElement, 'display', currentValue ? 'none' : '');\n }\n } else {\n if (currentValue) {\n containerRef.clear();\n if (this.field.className) {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'class');\n }\n } else {\n this.renderField(containerRef, this.field);\n if (this.field.className) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'class', this.field.className);\n }\n }\n }\n\n !firstChange && this.field.options.detectChanges(this.field);\n }),\n observe<string>(this.field, ['className'], ({ firstChange, currentValue }) => {\n if (\n (!firstChange || (firstChange && currentValue)) &&\n (!this.config.extras.lazyRender || this.field.hide !== true)\n ) {\n this.elementRef && this.renderer.setAttribute(this.elementRef.nativeElement, 'class', currentValue);\n }\n }),\n ];\n\n const isSignalRequired = +VERSION.major >= 18 && +VERSION.minor >= 1;\n if (!isSignalRequired) {\n ['touched', 'pristine', 'status'].forEach((prop) =>\n this.hostObservers.push(\n observe<string>(\n this.field,\n ['formControl', prop],\n ({ firstChange }) => !firstChange && markFieldForCheck(this.field),\n ),\n ),\n );\n } else if (this.field.formControl) {\n const statusChanges = this.field.formControl.statusChanges\n .pipe(distinctUntilChanged())\n .subscribe(() => markFieldForCheck(this.field));\n this.hostObservers.push(statusChanges);\n }\n }\n\n private resetRefs(field: FormlyFieldConfigCache) {\n if (field) {\n if (field._localFields) {\n field._localFields = [];\n } else {\n defineHiddenProp(this.field, '_localFields', []);\n }\n\n if (field._componentRefs) {\n field._componentRefs = field._componentRefs.filter((ref) => this.componentRefs.indexOf(ref) === -1);\n } else {\n defineHiddenProp(this.field, '_componentRefs', []);\n }\n }\n\n this.componentRefs = [];\n }\n\n private fieldChanges(field: FormlyFieldConfigCache | undefined) {\n if (!field) {\n return () => {};\n }\n\n const subscribes = [observeDeep(field, ['props'], () => field.options.detectChanges(field))];\n\n if (field.options) {\n subscribes.push(observeDeep(field.options, ['formState'], () => field.options.detectChanges(field)));\n }\n\n for (const key of Object.keys(field._expressions || {})) {\n const expressionObserver = observe<FormlyFieldConfigCache['_expressions']['key']>(\n field,\n ['_expressions', key],\n ({ currentValue, previousValue }) => {\n if (previousValue?.subscription) {\n previousValue.subscription.unsubscribe();\n previousValue.subscription = null;\n }\n if (isObservable(currentValue.value$)) {\n currentValue.subscription = currentValue.value$.subscribe();\n }\n },\n );\n subscribes.push(() => {\n if (field._expressions[key]?.subscription) {\n field._expressions[key].subscription.unsubscribe();\n }\n expressionObserver.unsubscribe();\n });\n }\n\n for (const path of [['focus'], ['template'], ['fieldGroupClassName'], ['validation', 'show']]) {\n const fieldObserver = observe(\n field,\n path,\n ({ firstChange }) => !firstChange && field.options.detectChanges(field),\n );\n subscribes.push(() => fieldObserver.unsubscribe());\n }\n\n if (field.formControl && !field.fieldGroup) {\n const control = field.formControl;\n let valueChanges = control.valueChanges.pipe(\n map((value) => {\n field.parsers?.map((parserFn) => (value = (parserFn as any)(value, field)));\n if (!Object.is(value, field.formControl.value)) {\n field.formControl.setValue(value);\n }\n\n return value;\n }),\n distinctUntilChanged((x, y) => {\n if (x !== y || Array.isArray(x) || isObject(x)) {\n return false;\n }\n\n return true;\n }),\n );\n\n if (control.value !== getFieldValue(field)) {\n valueChanges = valueChanges.pipe(startWith(control.value));\n }\n\n const { updateOn, debounce } = field.modelOptions;\n if ((!updateOn || updateOn === 'change') && debounce?.default > 0) {\n valueChanges = control.valueChanges.pipe(debounceTime(debounce.default));\n }\n\n const sub = valueChanges.subscribe((value) => {\n // workaround for https://github.com/angular/angular/issues/13792\n if (control._fields?.length > 1 && control instanceof FormControl) {\n control.patchValue(value, { emitEvent: false, onlySelf: true });\n }\n\n if (hasKey(field)) {\n assignFieldValue(field, value);\n }\n field.options.fieldChanges.next({ value, field, type: 'valueChanges' });\n });\n\n subscribes.push(() => sub.unsubscribe());\n }\n\n let templateFieldsSubs: (() => void)[] = [];\n observe(field, ['_localFields'], ({ currentValue }) => {\n templateFieldsSubs.forEach((unsubscribe) => unsubscribe());\n templateFieldsSubs = (currentValue || []).map((f: FormlyFieldConfigCache) => this.fieldChanges(f));\n });\n\n return () => {\n subscribes.forEach((unsubscribe) => unsubscribe());\n templateFieldsSubs.forEach((unsubscribe) => unsubscribe());\n };\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n DoCheck,\n OnChanges,\n Input,\n SimpleChanges,\n EventEmitter,\n Output,\n OnDestroy,\n NgZone,\n ContentChildren,\n QueryList,\n} from '@angular/core';\nimport { FormGroup, FormArray } from '@angular/forms';\nimport { FormlyFieldConfig, FormlyFormOptions, FormlyFieldConfigCache } from '../models';\nimport { FormlyFormBuilder } from '../services/formly.builder';\nimport { FormlyConfig } from '../services/formly.config';\nimport { clone, hasKey, isNoopNgZone } from '../utils';\nimport { switchMap, filter, take } from 'rxjs/operators';\nimport { clearControl } from '../extensions/field-form/utils';\nimport { FormlyFieldTemplates, FormlyTemplate } from './formly.template';\nimport { of } from 'rxjs';\n\n/**\n * The `<form-form>` component is the main container of the form,\n * which takes care of managing the form state\n * and delegates the rendering of each field to `<formly-field>` component.\n */\n@Component({\n selector: 'formly-form',\n template: '<formly-field [field]=\"field\"></formly-field>',\n providers: [FormlyFormBuilder, FormlyFieldTemplates],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyForm implements DoCheck, OnChanges, OnDestroy {\n /** The form instance which allow to track model value and validation status. */\n @Input()\n set form(form: FormGroup | FormArray) {\n this.field.form = form;\n }\n get form(): FormGroup | FormArray {\n return this.field.form;\n }\n\n /** The model to be represented by the form. */\n @Input()\n set model(model: any) {\n if (this.config.extras.immutable && this._modelChangeValue === model) {\n return;\n }\n\n this.setField({ model });\n }\n get model(): any {\n return this.field.model;\n }\n\n /** The field configurations for building the form. */\n @Input()\n set fields(fieldGroup: FormlyFieldConfig[]) {\n this.setField({ fieldGroup });\n }\n get fields(): FormlyFieldConfig[] {\n return this.field.fieldGroup;\n }\n\n /** Options for the form. */\n @Input()\n set options(options: FormlyFormOptions) {\n this.setField({ options });\n }\n get options(): FormlyFormOptions {\n return this.field.options;\n }\n\n /** Event that is emitted when the model value is changed */\n @Output() modelChange = new EventEmitter<any>();\n @ContentChildren(FormlyTemplate) set templates(templates: QueryList<FormlyTemplate>) {\n this.fieldTemplates.templates = templates;\n }\n\n field: FormlyFieldConfigCache = { type: 'formly-group' };\n private _modelChangeValue: any = {};\n private valueChangesUnsubscribe = () => {};\n\n constructor(\n private builder: FormlyFormBuilder,\n private config: FormlyConfig,\n private ngZone: NgZone,\n private fieldTemplates: FormlyFieldTemplates,\n ) {}\n\n ngDoCheck() {\n if (this.config.extras.checkExpressionOn === 'changeDetectionCheck') {\n this.checkExpressionChange();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.fields && this.form) {\n clearControl(this.form);\n }\n\n if (changes.fields || changes.form || (changes.model && this._modelChangeValue !== changes.model.currentValue)) {\n this.valueChangesUnsubscribe();\n this.builder.build(this.field);\n this.valueChangesUnsubscribe = this.valueChanges();\n }\n }\n\n ngOnDestroy() {\n this.valueChangesUnsubscribe();\n }\n\n private checkExpressionChange() {\n this.field.options.checkExpressions?.(this.field);\n }\n\n private valueChanges() {\n this.valueChangesUnsubscribe();\n\n const sub = this.field.options.fieldChanges\n .pipe(\n filter(({ field, type }) => hasKey(field) && type === 'valueChanges'),\n switchMap(() => (isNoopNgZone(this.ngZone) ? of(null) : this.ngZone.onStable.asObservable().pipe(take(1)))),\n )\n .subscribe(() =>\n this.ngZone.runGuarded(() => {\n // runGuarded is used to keep in sync the expression changes\n // https://github.com/ngx-formly/ngx-formly/issues/2095\n this.checkExpressionChange();\n this.modelChange.emit((this._modelChangeValue = clone(this.model)));\n }),\n );\n\n return () => sub.unsubscribe();\n }\n\n private setField(field: FormlyFieldConfigCache) {\n if (this.config.extras.immutable) {\n this.field = { ...this.field, ...clone(field) };\n } else {\n Object.keys(field).forEach((p) => ((this.field as any)[p] = (field as any)[p]));\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n Renderer2,\n DoCheck,\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport { FormlyFieldConfig, FormlyFieldConfigCache } from '../models';\nimport { defineHiddenProp, FORMLY_VALIDATORS, observe, IObserver } from '../utils';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * Allow to link the `field` HTML attributes (`id`, `name` ...) and Event attributes (`focus`, `blur` ...) to an element in the DOM.\n */\n@Directive({\n selector: '[formlyAttributes]',\n host: {\n '(change)': 'onHostChange($event)',\n },\n})\nexport class FormlyAttributes implements OnChanges, DoCheck, OnDestroy {\n /** The field config. */\n @Input('formlyAttributes') field: FormlyFieldConfig;\n @Input() id: string;\n\n private document: Document;\n private uiAttributesCache: any = {};\n private uiAttributes: string[];\n private focusObserver: IObserver<boolean>;\n\n /**\n * HostBinding doesn't register listeners conditionally which may produce some perf issues.\n *\n * Formly issue: https://github.com/ngx-formly/ngx-formly/issues/1991\n */\n private uiEvents = {\n listeners: [] as Function[],\n events: ['click', 'keyup', 'keydown', 'keypress', 'focus', 'blur', 'change'],\n callback: (eventName: string, $event: any) => {\n switch (eventName) {\n case 'focus':\n return this.onFocus($event);\n case 'blur':\n return this.onBlur($event);\n case 'change':\n return this.onChange($event);\n default:\n return this.props[eventName](this.field, $event);\n }\n },\n };\n\n private get props() {\n return this.field.props || ({} as FormlyFieldConfigCache['props']);\n }\n\n private get fieldAttrElements(): ElementRef[] {\n return (this.field as FormlyFieldConfigCache)?.['_elementRefs'] || [];\n }\n\n constructor(private renderer: Renderer2, private elementRef: ElementRef, @Inject(DOCUMENT) _document: any) {\n this.document = _document;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.field) {\n this.field.name && this.setAttribute('name', this.field.name);\n this.uiEvents.listeners.forEach((listener) => listener());\n this.uiEvents.events.forEach((eventName) => {\n if (this.props?.[eventName] || ['focus', 'blur', 'change'].indexOf(eventName) !== -1) {\n this.uiEvents.listeners.push(\n this.renderer.listen(this.elementRef.nativeElement, eventName, (e) => this.uiEvents.callback(eventName, e)),\n );\n }\n });\n\n if (this.props?.attributes) {\n observe(this.field, ['props', 'attributes'], ({ currentValue, previousValue }) => {\n if (previousValue) {\n Object.keys(previousValue).forEach((attr) => this.removeAttribute(attr));\n }\n\n if (currentValue) {\n Object.keys(currentValue).forEach((attr) => {\n if (currentValue[attr] != null) {\n this.setAttribute(attr, currentValue[attr]);\n }\n });\n }\n });\n }\n\n this.detachElementRef(changes.field.previousValue);\n this.attachElementRef(changes.field.currentValue);\n if (this.fieldAttrElements.length === 1) {\n !this.id && this.field.id && this.setAttribute('id', this.field.id);\n this.focusObserver = observe<boolean>(this.field, ['focus'], ({ currentValue }) => {\n this.toggleFocus(currentValue);\n });\n }\n }\n\n if (changes.id) {\n this.setAttribute('id', this.id);\n }\n }\n\n /**\n * We need to re-evaluate all the attributes on every change detection cycle, because\n * by using a HostBinding we run into certain edge cases. This means that whatever logic\n * is in here has to be super lean or we risk seriously damaging or destroying the performance.\n *\n * Formly issue: https://github.com/ngx-formly/ngx-formly/issues/1317\n * Material issue: https://github.com/angular/components/issues/14024\n */\n ngDoCheck() {\n if (!this.uiAttributes) {\n const element = this.elementRef.nativeElement as HTMLElement;\n this.uiAttributes = [...FORMLY_VALIDATORS, 'tabindex', 'placeholder', 'readonly', 'disabled', 'step'].filter(\n (attr) => !element.hasAttribute || !element.hasAttribute(attr),\n );\n }\n\n for (let i = 0; i < this.uiAttributes.length; i++) {\n const attr = this.uiAttributes[i];\n const value = this.props[attr];\n if (\n this.uiAttributesCache[attr] !== value &&\n (!this.props.attributes || !this.props.attributes.hasOwnProperty(attr.toLowerCase()))\n ) {\n this.uiAttributesCache[attr] = value;\n if (value || value === 0) {\n this.setAttribute(attr, value === true ? attr : `${value}`);\n } else {\n this.removeAttribute(attr);\n }\n }\n }\n }\n\n ngOnDestroy() {\n this.uiEvents.listeners.forEach((listener) => listener());\n this.detachElementRef(this.field);\n this.focusObserver?.unsubscribe();\n }\n\n toggleFocus(value: boolean) {\n const element = this.fieldAttrElements ? this.fieldAttrElements[0] : null;\n if (!element || !element.nativeElement.focus) {\n return;\n }\n\n const isFocused =\n !!this.document.activeElement &&\n this.fieldAttrElements.some(\n ({ nativeElement }) =>\n this.document.activeElement === nativeElement || nativeElement.contains(this.document.activeElement),\n );\n\n if (value && !isFocused) {\n Promise.resolve().then(() => element.nativeElement.focus());\n } else if (!value && isFocused) {\n Promise.resolve().then(() => element.nativeElement.blur());\n }\n }\n\n onFocus($event: any) {\n this.focusObserver?.setValue(true);\n this.props.focus?.(this.field, $event);\n }\n\n onBlur($event: any) {\n this.focusObserver?.setValue(false);\n this.props.blur?.(this.field, $event);\n }\n\n // handle custom `change` event, for regular ones rely on DOM listener\n onHostChange($event: any) {\n if ($event instanceof Event) {\n return;\n }\n\n this.onChange($event);\n }\n\n onChange($event: any) {\n this.props.change?.(this.field, $event);\n this.field.formControl?.markAsDirty();\n }\n\n private attachElementRef(f: FormlyFieldConfigCache) {\n if (!f) {\n return;\n }\n\n if (f['_elementRefs']?.indexOf(this.elementRef) === -1) {\n f['_elementRefs'].push(this.elementRef);\n } else {\n defineHiddenProp(f, '_elementRefs', [this.elementRef]);\n }\n }\n\n private detachElementRef(f: FormlyFieldConfigCache) {\n const index = f?.['_elementRefs'] ? this.fieldAttrElements.indexOf(this.elementRef) : -1;\n if (index !== -1) {\n f['_elementRefs'].splice(index, 1);\n }\n }\n\n private setAttribute(attr: string, value: string) {\n this.renderer.setAttribute(this.elementRef.nativeElement, attr, value);\n }\n\n private removeAttribute(attr: string) {\n this.renderer.removeAttribute(this.elementRef.nativeElement, attr);\n }\n}\n","import { Input, Directive, QueryList, ViewChildren } from '@angular/core';\nimport { FormControl, NgControl, FormGroup } from '@angular/forms';\nimport { FormlyFieldConfig, FormlyFieldConfigCache } from '../models';\nimport { FieldWrapper } from './field.wrapper';\n\nexport interface FieldTypeConfig<T = FormlyFieldConfig['props']> extends FormlyFieldConfig<T> {\n formControl: FormControl;\n props: NonNullable<T>;\n}\n\nexport interface FieldGroupTypeConfig<T = FormlyFieldConfig['props']> extends FormlyFieldConfig<T> {\n formControl: FormGroup;\n props: NonNullable<T>;\n}\n\n@Directive()\nexport abstract class FieldType<F extends FormlyFieldConfig = FormlyFieldConfig> {\n @ViewChildren(NgControl) set _formlyControls(controls: QueryList<NgControl>) {\n const f = this.field as FormlyFieldConfigCache;\n f._localFields = controls\n .map((c) => (c.control as FormlyFieldConfigCache['formControl'])._fields || [])\n .flat()\n .filter((f: FormlyFieldConfig) => f.formControl !== this.field.formControl);\n }\n\n @Input() field: F = {} as F;\n defaultOptions?: Partial<F>;\n\n get model() {\n return this.field.model;\n }\n\n get form() {\n return this.field.form;\n }\n\n get options() {\n return this.field.options;\n }\n\n get key() {\n return this.field.key;\n }\n\n get formControl() {\n return this.field.formControl as NonNullable<F['formControl']>;\n }\n\n get props() {\n return (this.field.props || {}) as NonNullable<F['props']>;\n }\n\n /** @deprecated Use `props` instead. */\n get to() {\n return this.props;\n }\n\n get showError(): boolean {\n return this.options.showError(this);\n }\n\n get id(): string {\n return this.field.id;\n }\n\n get formState() {\n return this.options?.formState || {};\n }\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { FieldType, FieldGroupTypeConfig } from './field.type';\n\n/** @ignore */\n@Component({\n selector: 'formly-group',\n template: `\n <formly-field *ngFor=\"let f of field.fieldGroup\" [field]=\"f\"></formly-field>\n <ng-content></ng-content>\n `,\n host: {\n '[class]': 'field.fieldGroupClassName || \"\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyGroup extends FieldType<FieldGroupTypeConfig> {}\n","import { Component, Input, ChangeDetectionStrategy, OnChanges } from '@angular/core';\nimport { FormlyConfig } from '../services/formly.config';\nimport { FormlyFieldConfig } from '../models';\nimport { FORMLY_VALIDATORS, isObject } from '../utils';\nimport { Observable, isObservable, of } from 'rxjs';\nimport { merge } from 'rxjs';\nimport { startWith, switchMap, filter } from 'rxjs/operators';\n\n/**\n * The `<formly-validation-message>` component renders the error message of a given `field`.\n */\n@Component({\n selector: 'formly-validation-message',\n template: '{{ errorMessage$ | async }}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyValidationMessage implements OnChanges {\n /** The field config. */\n @Input() field: FormlyFieldConfig;\n errorMessage$: Observable<string>;\n\n constructor(private config: FormlyConfig) {}\n\n ngOnChanges() {\n const EXPR_VALIDATORS = FORMLY_VALIDATORS.map((v) => `templateOptions.${v}`);\n this.errorMessage$ = merge(\n this.field.formControl.statusChanges,\n !this.field.options\n ? of(null)\n : this.field.options.fieldChanges.pipe(\n filter(({ field, type, property }) => {\n return (\n field === this.field &&\n type === 'expressionChanges' &&\n (property.indexOf('validation') !== -1 || EXPR_VALIDATORS.indexOf(property) !== -1)\n );\n }),\n ),\n ).pipe(\n startWith(null),\n switchMap(() => (isObservable(this.errorMessage) ? this.errorMessage : of(this.errorMessage))),\n );\n }\n\n get errorMessage() {\n const fieldForm = this.field.formControl;\n for (const error in fieldForm.errors) {\n if (fieldForm.errors.hasOwnProperty(error)) {\n let message = this.config.getValidatorMessage(error);\n\n if (isObject(fieldForm.errors[error])) {\n if (fieldForm.errors[error].errorPath) {\n return undefined;\n }\n\n if (fieldForm.errors[error].message) {\n message = fieldForm.errors[error].message;\n }\n }\n\n if (this.field.validation?.messages?.[error]) {\n message = this.field.validation.messages[error];\n }\n\n if (this.field.validators?.[error]?.message) {\n message = this.field.validators[error].message;\n }\n\n if (this.field.asyncValidators?.[error]?.message) {\n message = this.field.asyncValidators[error].message;\n }\n\n if (typeof message === 'function') {\n return message(fieldForm.errors[error], this.field);\n }\n\n return message;\n }\n }\n\n return undefined;\n }\n}\n","import { Directive } from '@angular/core';\nimport { FormArray } from '@angular/forms';\nimport { FieldType } from './field.type';\nimport { clone, assignFieldValue, getFieldValue, hasKey } from '../utils';\nimport { FormlyFieldConfig, FormlyExtension, FormlyFieldConfigCache } from '../models';\nimport { registerControl, unregisterControl, findControl } from '../extensions/field-form/utils';\n\nexport interface FieldArrayTypeConfig<T = FormlyFieldConfig['props']> extends FormlyFieldConfig<T> {\n formControl: FormArray;\n props: NonNullable<T>;\n}\n\n@Directive()\nexport abstract class FieldArrayType<F extends FormlyFieldConfig = FieldArrayTypeConfig>\n extends FieldType<F>\n implements FormlyExtension<F>\n{\n onPopulate(field: F) {\n if (hasKey(field)) {\n const control = findControl(field);\n registerControl(field, control ? control : new FormArray([], { updateOn: field.modelOptions.updateOn }));\n }\n\n field.fieldGroup = field.fieldGroup || [];\n\n const length = Array.isArray(field.model) ? field.model.length : 0;\n if (field.fieldGroup.length > length) {\n for (let i = field.fieldGroup.length - 1; i >= length; --i) {\n unregisterControl(field.fieldGroup[i], true);\n field.fieldGroup.splice(i, 1);\n }\n }\n\n for (let i = field.fieldGroup.length; i < length; i++) {\n const f = { ...clone(typeof field.fieldArray === 'function' ? field.fieldArray(field) : field.fieldArray) };\n if (f.key !== null) {\n f.key = `${i}`;\n }\n\n field.fieldGroup.push(f);\n }\n }\n\n add(i?: number, initialModel?: any, { markAsDirty } = { markAsDirty: true }) {\n i = i == null ? this.field.fieldGroup.length : i;\n if (!this.model) {\n assignFieldValue(this.field, []);\n }\n\n this.model.splice(i, 0, initialModel ? clone(initialModel) : undefined);\n this._build();\n markAsDirty && this.formControl.markAsDirty();\n }\n\n remove(i: number, { markAsDirty } = { markAsDirty: true }) {\n this.model.splice(i, 1);\n\n const field = this.field.fieldGroup[i];\n this.field.fieldGroup.splice(i, 1);\n this.field.fieldGroup.forEach((f, key) => this.updateArrayElementKey(f, `${key}`));\n unregisterControl(field, true);\n this._build();\n markAsDirty && this.formControl.markAsDirty();\n }\n\n private _build() {\n const fields = (this.field as FormlyFieldConfigCache).formControl._fields ?? [this.field];\n fields.forEach((f) => (this.options as any).build(f));\n this.options.fieldChanges.next({\n field: this.field,\n value: getFieldValue(this.field),\n type: 'valueChanges',\n });\n }\n\n private updateArrayElementKey(f: FormlyFieldConfig, newKey: string) {\n if (hasKey(f)) {\n f.key = newKey;\n return;\n }\n\n if (!f.fieldGroup?.length) {\n return;\n }\n\n for (let i = 0; i < f.fieldGroup.length; i++) {\n this.updateArrayElementKey(f.fieldGroup[i], newKey);\n }\n }\n}\n","import { ViewContainerRef, ViewChild, Directive, QueryList } from '@angular/core';\nimport { FieldType } from './field.type';\nimport { FormlyFieldConfig } from '../models';\nimport { NgControl } from '@angular/forms';\n\n@Directive()\nexport abstract class FieldWrapper<F extends FormlyFieldConfig = FormlyFieldConfig> extends FieldType<F> {\n override set _formlyControls(_: QueryList<NgControl>) {}\n @ViewChild('fieldComponent', { read: ViewContainerRef }) fieldComponent!: ViewContainerRef;\n @ViewChild('fieldComponent', { read: ViewContainerRef, static: true }) set _staticContent(content: ViewContainerRef) {\n this.fieldComponent = content;\n }\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { FieldType } from './field.type';\n\n/** @ignore */\n@Component({\n selector: 'formly-template',\n template: `<div [innerHtml]=\"template\"></div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyTemplateType extends FieldType {\n get template() {\n if (this.field && this.field.template !== this.innerHtml.template) {\n this.innerHtml = {\n template: this.field.template,\n content: this.props.safeHtml\n ? this.sanitizer.bypassSecurityTrustHtml(this.field.template)\n : this.field.template,\n };\n }\n\n return this.innerHtml.content;\n }\n\n private innerHtml: { content?: SafeHtml; template?: string } = {};\n constructor(private sanitizer: DomSanitizer) {\n super();\n }\n}\n","export function evalStringExpression(expression: string, argNames: string[]) {\n try {\n return Function(...argNames, `return ${expression};`) as any;\n } catch (error) {\n console.error(error);\n }\n}\n\nexport function evalExpression(expression: string | Function | boolean, thisArg: any, argVal: any[]): any {\n if (typeof expression === 'function') {\n return expression.apply(thisArg, argVal);\n } else {\n return expression ? true : false;\n }\n}\n","import { FormlyValueChangeEvent, FormlyFieldConfigCache } from '../../models';\nimport {\n isObject,\n isNil,\n isUndefined,\n isFunction,\n defineHiddenProp,\n observe,\n getFieldValue,\n assignFieldValue,\n hasKey,\n} from '../../utils';\nimport { evalExpression, evalStringExpression } from './utils';\nimport { isObservable, Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { FormlyExtension } from '../../models';\nimport { unregisterControl, registerControl, updateValidity } from '../field-form/utils';\nimport { FormArray } from '@angular/forms';\n\nexport class FieldExpressionExtension implements FormlyExtension {\n onPopulate(field: FormlyFieldConfigCache) {\n if (field._expressions) {\n return;\n }\n\n // cache built expression\n defineHiddenProp(field, '_expressions', {});\n\n observe(field, ['hide'], ({ currentValue, firstChange }) => {\n defineHiddenProp(field, '_hide', !!currentValue);\n if (!firstChange || (firstChange && currentValue === true)) {\n field.props.hidden = currentValue;\n field.options._hiddenFieldsForCheck.push(field);\n }\n });\n\n if (field.hideExpression) {\n observe(field, ['hideExpression'], ({ currentValue: expr }) => {\n field._expressions.hide = this.parseExpressions(field, 'hide', typeof expr === 'boolean' ? () => expr : expr);\n });\n }\n\n const evalExpr = (key: string, expr: any) => {\n if (typeof expr === 'string' || isFunction(expr)) {\n field._expressions[key] = this.parseExpressions(field, key, expr);\n } else if (expr instanceof Observable) {\n field._expressions[key] = {\n value$: (expr as Observable<any>).pipe(\n tap((v) => {\n this.evalExpr(field, key, v);\n field.options._detectChanges(field);\n }),\n ),\n };\n }\n };\n\n field.expressions = field.expressions || {};\n for (const key of Object.keys(field.expressions)) {\n observe(field, ['expressions', key], ({ currentValue: expr }) => {\n evalExpr(key, isFunction(expr) ? (...args: any) => expr(field, args[3]) : expr);\n });\n }\n\n field.expressionProperties = field.expressionProperties || {};\n for (const key of Object.keys(field.expressionProperties)) {\n observe(field, ['expressionProperties', key], ({ currentValue }) => evalExpr(key, currentValue));\n }\n }\n\n postPopulate(field: FormlyFieldConfigCache) {\n if (field.parent) {\n return;\n }\n\n if (!field.options.checkExpressions) {\n let checkLocked = false;\n field.options.checkExpressions = (f, ignoreCache) => {\n if (checkLocked) {\n return;\n }\n\n checkLocked = true;\n const fieldChanged = this.checkExpressions(f, ignoreCache);\n const options = field.options;\n options._hiddenFieldsForCheck\n .sort((f) => (f.hide ? -1 : 1))\n .forEach((f) => this.changeHideState(f, f.hide, !ignoreCache));\n options._hiddenFieldsForCheck = [];\n if (fieldChanged) {\n this.checkExpressions(field);\n }\n checkLocked = false;\n };\n field.options._checkField = (f, ignoreCache) => {\n console.warn(`Formly: 'options._checkField' is deprecated since v6.0, use 'options.checkExpressions' instead.`);\n field.options.checkExpressions(f, ignoreCache);\n };\n }\n }\n\n private parseExpressions(field: FormlyFieldConfigCache, path: string, expr: any) {\n let parentExpression: any;\n if (field.parent && ['hide', 'props.disabled'].includes(path)) {\n const rootValue = (f: FormlyFieldConfigCache) => {\n return path === 'hide' ? f.hide : f.props.disabled;\n };\n\n parentExpression = () => {\n let root = field.parent;\n while (root.parent && !rootValue(root)) {\n root = root.parent;\n }\n\n return rootValue(root);\n };\n }\n\n expr = expr || (() => false);\n if (typeof expr === 'string') {\n expr = evalStringExpression(expr, ['model', 'formState', 'field']);\n }\n\n let currentValue: any;\n\n return {\n callback: (ignoreCache?: boolean) => {\n try {\n const exprValue = evalExpression(\n parentExpression ? (...args: any) => parentExpression(field) || expr(...args) : expr,\n { field },\n [field.model, field.options.formState, field, ignoreCache],\n );\n\n if (\n ignoreCache ||\n (currentValue !== exprValue &&\n (!isObject(exprValue) ||\n isObservable(exprValue) ||\n JSON.stringify(exprValue) !== JSON.stringify(currentValue)))\n ) {\n currentValue = exprValue;\n this.evalExpr(field, path, exprValue);\n\n return true;\n }\n\n return false;\n } catch (error: any) {\n error.message = `[Formly Error] [Expression \"${path}\"] ${error.message}`;\n throw error;\n }\n },\n };\n }\n\n private checkExpressions(field: FormlyFieldConfigCache, ignoreCache = false) {\n if (!field) {\n return false;\n }\n\n let fieldChanged = false;\n if (field._expressions) {\n for (const key of Object.keys(field._expressions)) {\n field._expressions[key].callback?.(ignoreCache) && (fieldChanged = true);\n }\n }\n field.fieldGroup?.forEach((f) => this.checkExpressions(f, ignoreCache) && (fieldChanged = true));\n\n return fieldChanged;\n }\n\n private changeDisabledState(field: FormlyFieldConfigCache, value: boolean) {\n if (field.fieldGroup) {\n field.fieldGroup\n .filter((f: FormlyFieldConfigCache) => !f._expressions.hasOwnProperty('props.disabled'))\n .forEach((f) => this.changeDisabledState(f, value));\n }\n\n if (hasKey(field) && field.props.disabled !== value) {\n field.props.disabled = value;\n }\n }\n\n private changeHideState(field: FormlyFieldConfigCache, hide: boolean, resetOnHide: boolean) {\n if (field.fieldGroup) {\n field.fieldGroup\n .filter((f: FormlyFieldConfigCache) => f && !f._expressions.hide)\n .forEach((f) => this.changeHideState(f, hide, resetOnHide));\n }\n\n if (field.formControl && hasKey(field)) {\n defineHiddenProp(field, '_hide', !!(hide || field.hide));\n const c = field.formControl;\n if (c._fields?.length > 1) {\n updateValidity(c);\n }\n\n if (hide === true && (!c._fields || c._fields.every((f) => !!f._hide))) {\n unregisterControl(field, true);\n if (resetOnHide && field.resetOnHide) {\n assignFieldValue(field, undefined);\n field.formControl.reset({ value: undefined, disabled: field.formControl.disabled });\n field.options.fieldChanges.next({ value: undefined, field, type: 'valueChanges' });\n if (field.fieldGroup && field.formControl instanceof FormArray) {\n field.fieldGroup.length = 0;\n }\n }\n } else if (hide === false) {\n if (field.resetOnHide && !isUndefined(field.defaultValue) && isUndefined(getFieldValue(field))) {\n assignFieldValue(field, field.defaultValue);\n }\n registerControl(field, undefined, true);\n if (field.resetOnHide && field.fieldArray && field.fieldGroup?.length !== field.model?.length) {\n field.options.build(field);\n }\n }\n }\n\n if (field.options.fieldChanges) {\n field.options.fieldChanges.next(<FormlyValueChangeEvent>{ field, type: 'hidden', value: hide });\n }\n }\n\n private evalExpr(field: FormlyFieldConfigCache, prop: string, value: any) {\n if (prop.indexOf('model.') === 0) {\n const key = prop.replace(/^model\\./, ''),\n parent = field.fieldGroup ? field : field.parent;\n\n let control = field?.key === key ? field.formControl : field.form.get(key);\n if (!control && field.get(key)) {\n control = field.get(key).formControl;\n }\n assignFieldValue({ key, parent, model: field.model }, value);\n if (control && !(isNil(control.value) && isNil(value)) && control.value !== value) {\n control.patchValue(value);\n }\n } else {\n try {\n let target: any = field;\n const paths = this._evalExpressionPath(field, prop);\n const lastIndex = paths.length - 1;\n for (let i = 0; i < lastIndex; i++) {\n target = target[paths[i]];\n }\n\n target[paths[lastIndex]] = value;\n } catch (error: any) {\n error.message = `[Formly Error] [Expression \"${prop}\"] ${error.message}`;\n throw error;\n }\n\n if (['templateOptions.disabled', 'props.disabled'].includes(prop) && hasKey(field)) {\n this.changeDisabledState(field, value);\n }\n }\n\n this.emitExpressionChanges(field, prop, value);\n }\n\n private emitExpressionChanges(field: FormlyFieldConfigCache, property: string, value: any) {\n if (!field.options.fieldChanges) {\n return;\n }\n\n field.options.fieldChanges.next({\n field,\n type: 'expressionChanges',\n property,\n value,\n });\n }\n\n private _evalExpressionPath(field: FormlyFieldConfigCache, prop: string) {\n if (field._expressions[prop] && field._expressions[prop].paths) {\n return field._expressions[prop].paths;\n }\n\n let paths: string[] = [];\n if (prop.indexOf('[') === -1) {\n paths = prop.split('.');\n } else {\n prop\n .split(/[[\\]]{1,2}/) // https://stackoverflow.com/a/20198206\n .filter((p) => p)\n .forEach((path) => {\n const arrayPath = path.match(/['|\"](.*?)['|\"]/);\n if (arrayPath) {\n paths.push(arrayPath[1]);\n } else {\n paths.push(...path.split('.').filter((p) => p));\n }\n });\n }\n\n if (field._expressions[prop]) {\n field._expressions[prop].paths = paths;\n }\n\n return paths;\n }\n}\n","import { FormlyConfig } from '../../services/formly.config';\nimport { FormlyExtension, ValidatorOption, FormlyFieldConfigCache } from '../../models';\nimport { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\nimport { FORMLY_VALIDATORS, defineHiddenProp, isPromise, observe, clone, isObject, hasKey } from '../../utils';\nimport { updateValidity } from '../field-form/utils';\nimport { isObservable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport class FieldValidationExtension implements FormlyExtension {\n constructor(private config: FormlyConfig) {}\n\n onPopulate(field: FormlyFieldConfigCache) {\n this.initFieldValidation(field, 'validators');\n this.initFieldValidation(field, 'asyncValidators');\n }\n\n private initFieldValidation(field: FormlyFieldConfigCache, type: 'validators' | 'asyncValidators') {\n const validators: ValidatorFn[] = [];\n if (type === 'validators' && !(field.hasOwnProperty('fieldGroup') && !hasKey(field))) {\n validators.push(this.getPredefinedFieldValidation(field));\n }\n\n if (field[type]) {\n for (const validatorName of Object.keys(field[type])) {\n validatorName === 'validation'\n ? validators.push(...field[type].validation.map((v: any) => this.wrapNgValidatorFn(field, v)))\n : validators.push(this.wrapNgValidatorFn(field, field[type][validatorName], validatorName));\n }\n }\n\n defineHiddenProp(field, '_' + type, validators);\n }\n\n private getPredefinedFieldValidation(field: FormlyFieldConfigCache): ValidatorFn {\n let VALIDATORS: string[] = [];\n FORMLY_VALIDATORS.forEach((opt) =>\n observe(field, ['props', opt], ({ currentValue, firstChange }) => {\n VALIDATORS = VALIDATORS.filter((o) => o !== opt);\n if (opt === 'required' && currentValue != null && typeof currentValue !== 'boolean') {\n console.warn(\n `Formly: Invalid prop 'required' of type '${typeof currentValue}', expected 'boolean' (Field:${\n field.key\n }).`,\n );\n }\n\n if (currentValue != null && currentValue !== false) {\n VALIDATORS.push(opt);\n }\n if (!firstChange && field.formControl) {\n updateValidity(field.formControl);\n }\n }),\n );\n\n return (control: AbstractControl) => {\n if (VALIDATORS.length === 0) {\n return null;\n }\n\n return Validators.compose(\n VALIDATORS.map((opt) => () => {\n const value = field.props[opt];\n switch (opt) {\n case 'required':\n return Validators.required(control);\n case 'pattern':\n return Validators.pattern(value)(control);\n case 'minLength':\n const minLengthResult = Validators.minLength(value)(control);\n const minLengthKey =\n this.config.getValidatorMessage('minlength') || field.validation?.messages?.minlength\n ? 'minlength'\n : 'minLength';\n\n return minLengthResult ? { [minLengthKey]: minLengthResult.minlength } : null;\n case 'maxLength':\n const maxLengthResult = Validators.maxLength(value)(control);\n const maxLengthKey =\n this.config.getValidatorMessage('maxlength') || field.validation?.messages?.maxlength\n ? 'maxlength'\n : 'maxLength';\n\n return maxLengthResult ? { [maxLengthKey]: maxLengthResult.maxlength } : null;\n case 'min':\n return Validators.min(value)(control);\n case 'max':\n return Validators.max(value)(control);\n default:\n return null;\n }\n }),\n )!(control);\n };\n }\n\n private wrapNgValidatorFn(field: FormlyFieldConfigCache, validator: any, validatorName?: string) {\n let validatorOption: ValidatorOption;\n if (typeof validator === 'string') {\n validatorOption = clone(this.config.getValidator(validator));\n }\n\n if (typeof validator === 'object' && validator.name) {\n validatorOption = clone(this.config.getValidator(validator.name));\n if (validator.options) {\n validatorOption.options = validator.options;\n }\n }\n\n if (typeof validator === 'object' && validator.expression) {\n const { expression, ...options } = validator;\n validatorOption = {\n name: validatorName,\n validation: expression,\n options: Object.keys(options).length > 0 ? options : null,\n };\n }\n\n if (typeof validator === 'function') {\n validatorOption = {\n name: validatorName,\n validation: validator,\n };\n }\n\n return (control: AbstractControl) => {\n const errors: any = validatorOption.validation(control, field, validatorOption.options);\n if (isPromise(errors)) {\n return errors.then((v) => this.handleResult(field, validatorName ? !!v : v, validatorOption));\n }\n\n if (isObservable(errors)) {\n return errors.pipe(map((v) => this.handleResult(field, validatorName ? !!v : v, validatorOption)));\n }\n\n return this.handleResult(field, validatorName ? !!errors : errors, validatorOption);\n };\n }\n\n private handleResult(field: FormlyFieldConfigCache, errors: any, { name, options }: ValidatorOption) {\n if (typeof errors === 'boolean') {\n errors = errors ? null : { [name]: options ? options : true };\n }\n\n const ctrl = field.formControl;\n ctrl?._childrenErrors?.[name]?.();\n\n if (isObject(errors)) {\n Object.keys(errors).forEach((name) => {\n const errorPath = errors[name].errorPath ? errors[name].errorPath : options?.errorPath;\n\n const childCtrl = errorPath ? field.formControl.get(errorPath) : null;\n if (childCtrl) {\n const { errorPath: _errorPath, ...opts } = errors[name];\n childCtrl.setErrors({ ...(childCtrl.errors || {}), [name]: opts });\n\n !ctrl._childrenErrors && defineHiddenProp(ctrl, '_childrenErrors', {});\n ctrl._childrenErrors[name] = () => {\n const { [name]: _toDelete, ...childErrors } = childCtrl.errors || {};\n childCtrl.setErrors(Object.keys(childErrors).length === 0 ? null : childErrors);\n };\n }\n });\n }\n\n return errors;\n }\n}\n","import { FormlyExtension, FormlyFieldConfigCache } from '../../models';\nimport {\n FormGroup,\n FormControl,\n AbstractControlOptions,\n Validators,\n ValidatorFn,\n AsyncValidatorFn,\n} from '@angular/forms';\nimport { getFieldValue, defineHiddenProp, hasKey, getKeyPath } from '../../utils';\nimport { registerControl, findControl, updateValidity } from './utils';\nimport { of } from 'rxjs';\n\nexport class FieldFormExtension implements FormlyExtension {\n private root: FormlyFieldConfigCache;\n prePopulate(field: FormlyFieldConfigCache) {\n if (!this.root) {\n this.root = field;\n }\n\n if (field.parent) {\n Object.defineProperty(field, 'form', {\n get: () => field.parent!.formControl,\n configurable: true,\n });\n }\n }\n\n onPopulate(field: FormlyFieldConfigCache) {\n if (field.hasOwnProperty('fieldGroup') && !hasKey(field)) {\n defineHiddenProp(field, 'formControl', field.form);\n } else {\n this.addFormControl(field);\n }\n }\n\n postPopulate(field: FormlyFieldConfigCache) {\n if (this.root !== field) {\n return;\n }\n\n this.root = null;\n const markForCheck = this.setValidators(field);\n if (markForCheck && field.parent) {\n let parent = field.parent;\n while (parent) {\n if (hasKey(parent) || !parent.parent) {\n updateValidity(parent.formControl, true);\n }\n parent = parent.parent;\n }\n }\n }\n\n private addFormControl(field: FormlyFieldConfigCache) {\n let control = findControl(field);\n if (field.fieldArray) {\n return;\n }\n\n if (!control) {\n const controlOptions: AbstractControlOptions = { updateOn: field.modelOptions.updateOn };\n\n if (field.fieldGroup) {\n control = new FormGroup({}, controlOptions);\n } else {\n const value = hasKey(field) ? getFieldValue(field) : field.defaultValue;\n control = new FormControl(\n { value, disabled: !!field.props.disabled },\n { ...controlOptions, initialValueIsDefault: true },\n );\n }\n } else {\n if (control instanceof FormControl) {\n const value = hasKey(field) ? getFieldValue(field) : field.defaultValue;\n (control as any).defaultValue = value;\n }\n }\n\n registerControl(field, control);\n }\n\n private setValidators(field: FormlyFieldConfigCache, disabled = false) {\n if (disabled === false && hasKey(field) && field.props?.disabled) {\n disabled = true;\n }\n\n let markForCheck = false;\n field.fieldGroup?.forEach((f) => f && this.setValidators(f, disabled) && (markForCheck = true));\n if (hasKey(field) || !field.parent || (!hasKey(field) && !field.fieldGroup)) {\n const { formControl: c } = field;\n if (c) {\n if (hasKey(field) && c instanceof FormControl) {\n if (disabled && c.enabled) {\n c.disable({ emitEvent: false, onlySelf: true });\n markForCheck = true;\n }\n\n if (!disabled && c.disabled) {\n c.enable({ emitEvent: false, onlySelf: true });\n markForCheck = true;\n }\n }\n\n if (null === c.validator && this.hasValidators(field, '_validators')) {\n c.setValidators(() => {\n const v = Validators.compose(this.mergeValidators<ValidatorFn>(field, '_validators'));\n\n return v ? v(c) : null;\n });\n markForCheck = true;\n }\n\n if (null === c.asyncValidator && this.hasValidators(field, '_asyncValidators')) {\n c.setAsyncValidators(() => {\n const v = Validators.composeAsync(this.mergeValidators<AsyncValidatorFn>(field, '_asyncValidators'));\n return v ? v(c) : of(null);\n });\n markForCheck = true;\n }\n\n if (markForCheck) {\n updateValidity(c, true);\n\n // update validity of `FormGroup` instance created by field with nested key.\n let parent = c.parent;\n for (let i = 1; i < getKeyPath(field).length; i++) {\n if (parent) {\n updateValidity(parent, true);\n parent = parent.parent;\n }\n }\n }\n }\n }\n\n return markForCheck;\n }\n\n private hasValidators(field: FormlyFieldConfigCache, type: '_validators' | '_asyncValidators'): boolean {\n const c = field.formControl;\n if (c?._fields?.length > 1 && c._fields.some((f) => f[type].length > 0)) {\n return true;\n } else if (field[type].length > 0) {\n return true;\n }\n\n return field.fieldGroup?.some((f) => f?.fieldGroup && !hasKey(f) && this.hasValidators(f, type));\n }\n\n private mergeValidators<T>(field: FormlyFieldConfigCache, type: '_validators' | '_asyncValidators'): T[] {\n const validators: any = [];\n const c = field.formControl;\n if (c?._fields?.length > 1) {\n c._fields\n .filter((f: FormlyFieldConfigCache) => !f._hide)\n .forEach((f: FormlyFieldConfigCache) => validators.push(...f[type]));\n } else if (field[type]) {\n validators.push(...field[type]);\n }\n\n if (field.fieldGroup) {\n field.fieldGroup\n .filter((f) => f?.fieldGroup && !hasKey(f))\n .forEach((f) => validators.push(...this.mergeValidators(f, type)));\n }\n\n return validators;\n }\n}\n","import { ComponentRef } from '@angular/core';\nimport { FormlyConfig } from '../../services/formly.config';\nimport { FormlyFieldConfigCache, FormlyValueChangeEvent, FormlyExtension, FormlyFieldConfig } from '../../models';\nimport {\n getFieldId,\n assignFieldValue,\n isUndefined,\n getFieldValue,\n reverseDeepMerge,\n defineHiddenProp,\n clone,\n getField,\n markFieldForCheck,\n hasKey,\n observe,\n isHiddenField,\n} from '../../utils';\nimport { Subject } from 'rxjs';\n\nexport class CoreExtension implements FormlyExtension {\n private formId = 0;\n constructor(private config: FormlyConfig) {}\n\n prePopulate(field: FormlyFieldConfigCache) {\n const root = field.parent;\n this.initRootOptions(field);\n this.initFieldProps(field);\n if (root) {\n Object.defineProperty(field, 'options', { get: () => root.options, configurable: true });\n Object.defineProperty(field, 'model', {\n get: () => (hasKey(field) && field.fieldGroup ? getFieldValue(field) : root.model),\n configurable: true,\n });\n }\n\n Object.defineProperty(field, 'get', {\n value: (key: FormlyFieldConfig['key']) => getField(field, key),\n configurable: true,\n });\n\n this.getFieldComponentInstance(field).prePopulate?.(field);\n }\n\n onPopulate(field: FormlyFieldConfigCache) {\n this.initFieldOptions(field);\n this.getFieldComponentInstance(field).onPopulate?.(field);\n if (field.fieldGroup) {\n field.fieldGroup.forEach((f, index) => {\n if (f) {\n Object.defineProperty(f, 'parent', { get: () => field, configurable: true });\n Object.defineProperty(f, 'index', { get: () => index, configurable: true });\n }\n this.formId++;\n });\n }\n }\n\n postPopulate(field: FormlyFieldConfigCache) {\n this.getFieldComponentInstance(field).postPopulate?.(field);\n }\n\n private initFieldProps(field: FormlyFieldConfigCache) {\n field.props ??= field.templateOptions;\n Object.defineProperty(field, 'templateOptions', {\n get: () => field.props,\n set: (props) => (field.props = props),\n configurable: true,\n });\n }\n\n private initRootOptions(field: FormlyFieldConfigCache) {\n if (field.parent) {\n return;\n }\n\n const options = field.options;\n field.options.formState = field.options.formState || {};\n if (!options.showError) {\n options.showError = this.config.extras.showError;\n }\n\n if (!options.fieldChanges) {\n defineHiddenProp(options, 'fieldChanges', new Subject<FormlyValueChangeEvent>());\n }\n\n if (!options._hiddenFieldsForCheck) {\n options._hiddenFieldsForCheck = [];\n }\n\n options._markForCheck = (f) => {\n console.warn(`Formly: 'options._markForCheck' is deprecated since v6.0, use 'options.detectChanges' instead.`);\n options.detectChanges(f);\n };\n\n options._detectChanges = (f: FormlyFieldConfigCache) => {\n if (f._componentRefs) {\n markFieldForCheck(f);\n }\n\n f.fieldGroup?.forEach((f) => f && options._detectChanges(f));\n };\n\n options.detectChanges = (f: FormlyFieldConfigCache) => {\n f.options.checkExpressions?.(f);\n options._detectChanges(f);\n };\n\n options.resetModel = (model?: any) => {\n model = clone(model ?? options._initialModel);\n if (field.model) {\n Object.keys(field.model).forEach((k) => delete field.model[k]);\n Object.assign(field.model, model || {});\n }\n\n observe(options, ['parentForm', 'submitted']).setValue(false, false);\n options.build(field);\n field.form.reset(field.model);\n };\n\n options.updateInitialValue = (model?: any) => (options._initialModel = clone(model ?? field.model));\n field.options.updateInitialValue();\n }\n\n private initFieldOptions(field: FormlyFieldConfigCache) {\n reverseDeepMerge(field, {\n id: getFieldId(`formly_${this.formId}`, field, field.index),\n hooks: {},\n modelOptions: {},\n validation: { messages: {} },\n props:\n !field.type || !hasKey(field)\n ? {}\n : {\n label: '',\n placeholder: '',\n disabled: false,\n },\n });\n\n if (this.config.extras.resetFieldOnHide && field.resetOnHide !== false) {\n field.resetOnHide = true;\n }\n\n if (\n field.type !== 'formly-template' &&\n (field.template || field.expressions?.template || field.expressionProperties?.template)\n ) {\n field.type = 'formly-template';\n }\n\n if (!field.type && field.fieldGroup) {\n field.type = 'formly-group';\n }\n\n if (field.type) {\n this.config.getMergedField(field);\n }\n\n if (\n hasKey(field) &&\n !isUndefined(field.defaultValue) &&\n isUndefined(getFieldValue(field)) &&\n !isHiddenField(field)\n ) {\n assignFieldValue(field, field.defaultValue);\n }\n\n field.wrappers = field.wrappers || [];\n }\n\n private getFieldComponentInstance(field: FormlyFieldConfigCache) {\n const componentRefInstance = () => {\n let componentRef = this.config.resolveFieldTypeRef(field);\n\n const fieldComponentRef = field._componentRefs?.slice(-1)[0];\n if (\n fieldComponentRef instanceof ComponentRef &&\n fieldComponentRef?.componentType === componentRef?.componentType\n ) {\n componentRef = fieldComponentRef as any;\n }\n\n return componentRef?.instance as any;\n };\n\n if (!field._proxyInstance) {\n defineHiddenProp(\n field,\n '_proxyInstance',\n new Proxy({} as FormlyExtension, {\n get: (_, prop) => componentRefInstance()?.[prop],\n set: (_, prop, value) => (componentRefInstance()[prop] = value),\n }),\n );\n }\n\n return field._proxyInstance;\n }\n}\n","import { NgModule, ModuleWithProviders, Inject, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyForm } from './components/formly.form';\nimport { FormlyField } from './components/formly.field';\nimport { FormlyAttributes } from './templates/formly.attributes';\nimport { FormlyConfig, FORMLY_CONFIG } from './services/formly.config';\nimport { FormlyFormBuilder } from './services/formly.builder';\nimport { FormlyGroup } from './templates/formly.group';\nimport { FormlyValidationMessage } from './templates/formly.validation-message';\nimport { FormlyTemplateType } from './templates/field-template.type';\n\nimport { FieldExpressionExtension } from './extensions/field-expression/field-expression';\nimport { FieldValidationExtension } from './extensions/field-validation/field-validation';\nimport { FieldFormExtension } from './extensions/field-form/field-form';\nimport { CoreExtension } from './extensions/core/core';\nimport { ConfigOption } from './models';\nimport { FormlyTemplate } from './components/formly.template';\n\nexport function defaultFormlyConfig(config: FormlyConfig): ConfigOption {\n return {\n types: [\n { name: 'formly-group', component: FormlyGroup },\n { name: 'formly-template', component: FormlyTemplateType },\n ],\n extensions: [\n { name: 'core', extension: new CoreExtension(config), priority: -250 },\n { name: 'field-validation', extension: new FieldValidationExtension(config), priority: -200 },\n { name: 'field-form', extension: new FieldFormExtension(), priority: -150 },\n { name: 'field-expression', extension: new FieldExpressionExtension(), priority: -100 },\n ],\n };\n}\n\n@NgModule({\n declarations: [\n FormlyTemplate,\n FormlyForm,\n FormlyField,\n FormlyAttributes,\n FormlyGroup,\n FormlyValidationMessage,\n FormlyTemplateType,\n ],\n exports: [FormlyTemplate, FormlyForm, FormlyField, FormlyAttributes, FormlyGroup, FormlyValidationMessage],\n imports: [CommonModule],\n})\nexport class FormlyModule {\n static forRoot(config: ConfigOption = {}): ModuleWithProviders<FormlyModule> {\n return {\n ngModule: FormlyModule,\n providers: [\n { provide: FORMLY_CONFIG, multi: true, useFactory: defaultFormlyConfig, deps: [FormlyConfig] },\n { provide: FORMLY_CONFIG, useValue: config, multi: true },\n FormlyConfig,\n FormlyFormBuilder,\n ],\n };\n }\n\n static forChild(config: ConfigOption = {}): ModuleWithProviders<FormlyModule> {\n return {\n ngModule: FormlyModule,\n providers: [\n { provide: FORMLY_CONFIG, multi: true, useFactory: defaultFormlyConfig, deps: [FormlyConfig] },\n { provide: FORMLY_CONFIG, useValue: config, multi: true },\n FormlyFormBuilder,\n ],\n };\n }\n\n constructor(configService: FormlyConfig, @Optional() @Inject(FORMLY_CONFIG) configs: ConfigOption[] = []) {\n if (!configs) {\n return;\n }\n\n configs.forEach((config) => configService.addConfig(config));\n }\n}\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib/core';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.FormlyConfig","i2.FormlyFieldTemplates","i1.FormlyFormBuilder","i2.FormlyConfig","i3.FormlyFieldTemplates","i4.FormlyField","i1.FormlyField","i2"],"mappings":"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"}