@bombillazo/rhf-plus 7.69.0-plus.0 → 7.70.0-plus.0

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.
Files changed (250) hide show
  1. package/dist/__tests__/controller.server.test.d.ts +2 -0
  2. package/dist/__tests__/controller.server.test.d.ts.map +1 -0
  3. package/dist/__tests__/controller.test.d.ts +2 -0
  4. package/dist/__tests__/controller.test.d.ts.map +1 -0
  5. package/dist/__tests__/disabled-arrays.test.d.ts +2 -0
  6. package/dist/__tests__/disabled-arrays.test.d.ts.map +1 -0
  7. package/dist/__tests__/form.test.d.ts +2 -0
  8. package/dist/__tests__/form.test.d.ts.map +1 -0
  9. package/dist/__tests__/formStateSubscribe.server.test.d.ts +2 -0
  10. package/dist/__tests__/formStateSubscribe.server.test.d.ts.map +1 -0
  11. package/dist/__tests__/formStateSubscribe.test.d.ts +2 -0
  12. package/dist/__tests__/formStateSubscribe.test.d.ts.map +1 -0
  13. package/dist/__tests__/isPlainObject.test.d.ts +2 -0
  14. package/dist/__tests__/isPlainObject.test.d.ts.map +1 -0
  15. package/dist/__tests__/logic/appendErrors.test.d.ts +2 -0
  16. package/dist/__tests__/logic/appendErrors.test.d.ts.map +1 -0
  17. package/dist/__tests__/logic/createFormControl.test.d.ts +2 -0
  18. package/dist/__tests__/logic/createFormControl.test.d.ts.map +1 -0
  19. package/dist/__tests__/logic/generateId.test.d.ts +2 -0
  20. package/dist/__tests__/logic/generateId.test.d.ts.map +1 -0
  21. package/dist/__tests__/logic/getCheckboxValue.test.d.ts +2 -0
  22. package/dist/__tests__/logic/getCheckboxValue.test.d.ts.map +1 -0
  23. package/dist/__tests__/logic/getDirtyFields.test.d.ts +2 -0
  24. package/dist/__tests__/logic/getDirtyFields.test.d.ts.map +1 -0
  25. package/dist/__tests__/logic/getEventValue.test.d.ts +2 -0
  26. package/dist/__tests__/logic/getEventValue.test.d.ts.map +1 -0
  27. package/dist/__tests__/logic/getFieldValue.test.d.ts +2 -0
  28. package/dist/__tests__/logic/getFieldValue.test.d.ts.map +1 -0
  29. package/dist/__tests__/logic/getFieldValueAs.test.d.ts +2 -0
  30. package/dist/__tests__/logic/getFieldValueAs.test.d.ts.map +1 -0
  31. package/dist/__tests__/logic/getFocusFieldName.test.d.ts +2 -0
  32. package/dist/__tests__/logic/getFocusFieldName.test.d.ts.map +1 -0
  33. package/dist/__tests__/logic/getNodeParentName.test.d.ts +2 -0
  34. package/dist/__tests__/logic/getNodeParentName.test.d.ts.map +1 -0
  35. package/dist/__tests__/logic/getRadioValue.test.d.ts +2 -0
  36. package/dist/__tests__/logic/getRadioValue.test.d.ts.map +1 -0
  37. package/dist/__tests__/logic/getResolverOptions.test.d.ts +2 -0
  38. package/dist/__tests__/logic/getResolverOptions.test.d.ts.map +1 -0
  39. package/dist/__tests__/logic/getRuleValue.test.d.ts +2 -0
  40. package/dist/__tests__/logic/getRuleValue.test.d.ts.map +1 -0
  41. package/dist/__tests__/logic/getValidateError.test.d.ts +2 -0
  42. package/dist/__tests__/logic/getValidateError.test.d.ts.map +1 -0
  43. package/dist/__tests__/logic/getValidationModes.test.d.ts +2 -0
  44. package/dist/__tests__/logic/getValidationModes.test.d.ts.map +1 -0
  45. package/dist/__tests__/logic/getValueAndMessage.test.d.ts +2 -0
  46. package/dist/__tests__/logic/getValueAndMessage.test.d.ts.map +1 -0
  47. package/dist/__tests__/logic/hasPromiseValidation.test.d.ts +2 -0
  48. package/dist/__tests__/logic/hasPromiseValidation.test.d.ts.map +1 -0
  49. package/dist/__tests__/logic/hasValidation.test.d.ts +2 -0
  50. package/dist/__tests__/logic/hasValidation.test.d.ts.map +1 -0
  51. package/dist/__tests__/logic/isNameInFieldArray.test.d.ts +2 -0
  52. package/dist/__tests__/logic/isNameInFieldArray.test.d.ts.map +1 -0
  53. package/dist/__tests__/logic/isWatched.test.d.ts +2 -0
  54. package/dist/__tests__/logic/isWatched.test.d.ts.map +1 -0
  55. package/dist/__tests__/logic/iterateFieldsByAction.test.d.ts +2 -0
  56. package/dist/__tests__/logic/iterateFieldsByAction.test.d.ts.map +1 -0
  57. package/dist/__tests__/logic/schemaErrorLookup.test.d.ts +2 -0
  58. package/dist/__tests__/logic/schemaErrorLookup.test.d.ts.map +1 -0
  59. package/dist/__tests__/logic/shouldRenderFormState.test.d.ts +2 -0
  60. package/dist/__tests__/logic/shouldRenderFormState.test.d.ts.map +1 -0
  61. package/dist/__tests__/logic/shouldSubscribeByName.test.d.ts +2 -0
  62. package/dist/__tests__/logic/shouldSubscribeByName.test.d.ts.map +1 -0
  63. package/dist/__tests__/logic/skipValidation.test.d.ts +2 -0
  64. package/dist/__tests__/logic/skipValidation.test.d.ts.map +1 -0
  65. package/dist/__tests__/logic/unsetEmptyArray.test.d.ts +2 -0
  66. package/dist/__tests__/logic/unsetEmptyArray.test.d.ts.map +1 -0
  67. package/dist/__tests__/logic/validateField.test.d.ts +2 -0
  68. package/dist/__tests__/logic/validateField.test.d.ts.map +1 -0
  69. package/dist/__tests__/readonly-validation.test.d.ts +2 -0
  70. package/dist/__tests__/readonly-validation.test.d.ts.map +1 -0
  71. package/dist/__tests__/type.test.d.ts +2 -0
  72. package/dist/__tests__/type.test.d.ts.map +1 -0
  73. package/dist/__tests__/useController.test.d.ts +2 -0
  74. package/dist/__tests__/useController.test.d.ts.map +1 -0
  75. package/dist/__tests__/useFieldArray/append.test.d.ts +2 -0
  76. package/dist/__tests__/useFieldArray/append.test.d.ts.map +1 -0
  77. package/dist/__tests__/useFieldArray/focus.test.d.ts +2 -0
  78. package/dist/__tests__/useFieldArray/focus.test.d.ts.map +1 -0
  79. package/dist/__tests__/useFieldArray/insert.test.d.ts +2 -0
  80. package/dist/__tests__/useFieldArray/insert.test.d.ts.map +1 -0
  81. package/dist/__tests__/useFieldArray/move.test.d.ts +2 -0
  82. package/dist/__tests__/useFieldArray/move.test.d.ts.map +1 -0
  83. package/dist/__tests__/useFieldArray/prepend.test.d.ts +2 -0
  84. package/dist/__tests__/useFieldArray/prepend.test.d.ts.map +1 -0
  85. package/dist/__tests__/useFieldArray/remove.test.d.ts +2 -0
  86. package/dist/__tests__/useFieldArray/remove.test.d.ts.map +1 -0
  87. package/dist/__tests__/useFieldArray/replace.test.d.ts +2 -0
  88. package/dist/__tests__/useFieldArray/replace.test.d.ts.map +1 -0
  89. package/dist/__tests__/useFieldArray/swap.test.d.ts +2 -0
  90. package/dist/__tests__/useFieldArray/swap.test.d.ts.map +1 -0
  91. package/dist/__tests__/useFieldArray/update.test.d.ts +2 -0
  92. package/dist/__tests__/useFieldArray/update.test.d.ts.map +1 -0
  93. package/dist/__tests__/useFieldArray.test.d.ts +2 -0
  94. package/dist/__tests__/useFieldArray.test.d.ts.map +1 -0
  95. package/dist/__tests__/useForm/clearErrors.test.d.ts +2 -0
  96. package/dist/__tests__/useForm/clearErrors.test.d.ts.map +1 -0
  97. package/dist/__tests__/useForm/formState.test.d.ts +2 -0
  98. package/dist/__tests__/useForm/formState.test.d.ts.map +1 -0
  99. package/dist/__tests__/useForm/getFieldState.test.d.ts +2 -0
  100. package/dist/__tests__/useForm/getFieldState.test.d.ts.map +1 -0
  101. package/dist/__tests__/useForm/getValues.test.d.ts +2 -0
  102. package/dist/__tests__/useForm/getValues.test.d.ts.map +1 -0
  103. package/dist/__tests__/useForm/handleSubmit.test.d.ts +2 -0
  104. package/dist/__tests__/useForm/handleSubmit.test.d.ts.map +1 -0
  105. package/dist/__tests__/useForm/hasBeenSubmitted.test.d.ts +2 -0
  106. package/dist/__tests__/useForm/hasBeenSubmitted.test.d.ts.map +1 -0
  107. package/dist/__tests__/useForm/isDirtySinceSubmit.test.d.ts +2 -0
  108. package/dist/__tests__/useForm/isDirtySinceSubmit.test.d.ts.map +1 -0
  109. package/dist/__tests__/useForm/register.test.d.ts +2 -0
  110. package/dist/__tests__/useForm/register.test.d.ts.map +1 -0
  111. package/dist/__tests__/useForm/reset.test.d.ts +2 -0
  112. package/dist/__tests__/useForm/reset.test.d.ts.map +1 -0
  113. package/dist/__tests__/useForm/resetField.test.d.ts +2 -0
  114. package/dist/__tests__/useForm/resetField.test.d.ts.map +1 -0
  115. package/dist/__tests__/useForm/resolver.test.d.ts +2 -0
  116. package/dist/__tests__/useForm/resolver.test.d.ts.map +1 -0
  117. package/dist/__tests__/useForm/setError.test.d.ts +2 -0
  118. package/dist/__tests__/useForm/setError.test.d.ts.map +1 -0
  119. package/dist/__tests__/useForm/setFocus.test.d.ts +2 -0
  120. package/dist/__tests__/useForm/setFocus.test.d.ts.map +1 -0
  121. package/dist/__tests__/useForm/setValue.test.d.ts +2 -0
  122. package/dist/__tests__/useForm/setValue.test.d.ts.map +1 -0
  123. package/dist/__tests__/useForm/setValueEmptyArray.test.d.ts +2 -0
  124. package/dist/__tests__/useForm/setValueEmptyArray.test.d.ts.map +1 -0
  125. package/dist/__tests__/useForm/subscribe.test.d.ts +2 -0
  126. package/dist/__tests__/useForm/subscribe.test.d.ts.map +1 -0
  127. package/dist/__tests__/useForm/trigger.test.d.ts +2 -0
  128. package/dist/__tests__/useForm/trigger.test.d.ts.map +1 -0
  129. package/dist/__tests__/useForm/unregister.test.d.ts +2 -0
  130. package/dist/__tests__/useForm/unregister.test.d.ts.map +1 -0
  131. package/dist/__tests__/useForm/useFormWithNullValues.test.d.ts +2 -0
  132. package/dist/__tests__/useForm/useFormWithNullValues.test.d.ts.map +1 -0
  133. package/dist/__tests__/useForm/watch.test.d.ts +2 -0
  134. package/dist/__tests__/useForm/watch.test.d.ts.map +1 -0
  135. package/dist/__tests__/useForm.server.test.d.ts +2 -0
  136. package/dist/__tests__/useForm.server.test.d.ts.map +1 -0
  137. package/dist/__tests__/useForm.test.d.ts +2 -0
  138. package/dist/__tests__/useForm.test.d.ts.map +1 -0
  139. package/dist/__tests__/useFormContext.server.test.d.ts +2 -0
  140. package/dist/__tests__/useFormContext.server.test.d.ts.map +1 -0
  141. package/dist/__tests__/useFormContext.test.d.ts +2 -0
  142. package/dist/__tests__/useFormContext.test.d.ts.map +1 -0
  143. package/dist/__tests__/useFormState.test.d.ts +2 -0
  144. package/dist/__tests__/useFormState.test.d.ts.map +1 -0
  145. package/dist/__tests__/useWatch.test.d.ts +2 -0
  146. package/dist/__tests__/useWatch.test.d.ts.map +1 -0
  147. package/dist/__tests__/utils/append.test.d.ts +2 -0
  148. package/dist/__tests__/utils/append.test.d.ts.map +1 -0
  149. package/dist/__tests__/utils/cloneObject.test.d.ts +2 -0
  150. package/dist/__tests__/utils/cloneObject.test.d.ts.map +1 -0
  151. package/dist/__tests__/utils/compact.test.d.ts +2 -0
  152. package/dist/__tests__/utils/compact.test.d.ts.map +1 -0
  153. package/dist/__tests__/utils/convertToArrayPayload.test.d.ts +2 -0
  154. package/dist/__tests__/utils/convertToArrayPayload.test.d.ts.map +1 -0
  155. package/dist/__tests__/utils/createSubject.test.d.ts +2 -0
  156. package/dist/__tests__/utils/createSubject.test.d.ts.map +1 -0
  157. package/dist/__tests__/utils/deepEqual.test.d.ts +2 -0
  158. package/dist/__tests__/utils/deepEqual.test.d.ts.map +1 -0
  159. package/dist/__tests__/utils/deepMerge.test.d.ts +2 -0
  160. package/dist/__tests__/utils/deepMerge.test.d.ts.map +1 -0
  161. package/dist/__tests__/utils/extractFormValues.test.d.ts +2 -0
  162. package/dist/__tests__/utils/extractFormValues.test.d.ts.map +1 -0
  163. package/dist/__tests__/utils/fillEmptyArray.test.d.ts +2 -0
  164. package/dist/__tests__/utils/fillEmptyArray.test.d.ts.map +1 -0
  165. package/dist/__tests__/utils/flatten.test.d.ts +2 -0
  166. package/dist/__tests__/utils/flatten.test.d.ts.map +1 -0
  167. package/dist/__tests__/utils/get.test.d.ts +2 -0
  168. package/dist/__tests__/utils/get.test.d.ts.map +1 -0
  169. package/dist/__tests__/utils/insert.test.d.ts +2 -0
  170. package/dist/__tests__/utils/insert.test.d.ts.map +1 -0
  171. package/dist/__tests__/utils/isBoolean.test.d.ts +2 -0
  172. package/dist/__tests__/utils/isBoolean.test.d.ts.map +1 -0
  173. package/dist/__tests__/utils/isCheckBoxInput.test.d.ts +2 -0
  174. package/dist/__tests__/utils/isCheckBoxInput.test.d.ts.map +1 -0
  175. package/dist/__tests__/utils/isEmptyObject.test.d.ts +2 -0
  176. package/dist/__tests__/utils/isEmptyObject.test.d.ts.map +1 -0
  177. package/dist/__tests__/utils/isFileInput.test.d.ts +2 -0
  178. package/dist/__tests__/utils/isFileInput.test.d.ts.map +1 -0
  179. package/dist/__tests__/utils/isFunction.test.d.ts +2 -0
  180. package/dist/__tests__/utils/isFunction.test.d.ts.map +1 -0
  181. package/dist/__tests__/utils/isHTMLElement.test.d.ts +2 -0
  182. package/dist/__tests__/utils/isHTMLElement.test.d.ts.map +1 -0
  183. package/dist/__tests__/utils/isKey.test.d.ts +2 -0
  184. package/dist/__tests__/utils/isKey.test.d.ts.map +1 -0
  185. package/dist/__tests__/utils/isMultipleSelect.test.d.ts +2 -0
  186. package/dist/__tests__/utils/isMultipleSelect.test.d.ts.map +1 -0
  187. package/dist/__tests__/utils/isNullOrUndefined.test.d.ts +2 -0
  188. package/dist/__tests__/utils/isNullOrUndefined.test.d.ts.map +1 -0
  189. package/dist/__tests__/utils/isObject.test.d.ts +2 -0
  190. package/dist/__tests__/utils/isObject.test.d.ts.map +1 -0
  191. package/dist/__tests__/utils/isPrimitive.test.d.ts +2 -0
  192. package/dist/__tests__/utils/isPrimitive.test.d.ts.map +1 -0
  193. package/dist/__tests__/utils/isRadioInput.test.d.ts +2 -0
  194. package/dist/__tests__/utils/isRadioInput.test.d.ts.map +1 -0
  195. package/dist/__tests__/utils/isRadioOrCheckbox.test.d.ts +2 -0
  196. package/dist/__tests__/utils/isRadioOrCheckbox.test.d.ts.map +1 -0
  197. package/dist/__tests__/utils/isRegex.test.d.ts +2 -0
  198. package/dist/__tests__/utils/isRegex.test.d.ts.map +1 -0
  199. package/dist/__tests__/utils/isString.test.d.ts +2 -0
  200. package/dist/__tests__/utils/isString.test.d.ts.map +1 -0
  201. package/dist/__tests__/utils/isUndefined.test.d.ts +2 -0
  202. package/dist/__tests__/utils/isUndefined.test.d.ts.map +1 -0
  203. package/dist/__tests__/utils/live.test.d.ts +2 -0
  204. package/dist/__tests__/utils/live.test.d.ts.map +1 -0
  205. package/dist/__tests__/utils/mergeMissingKeysAsUndefined.test.d.ts +2 -0
  206. package/dist/__tests__/utils/mergeMissingKeysAsUndefined.test.d.ts.map +1 -0
  207. package/dist/__tests__/utils/move.test.d.ts +2 -0
  208. package/dist/__tests__/utils/move.test.d.ts.map +1 -0
  209. package/dist/__tests__/utils/noop.test.d.ts +2 -0
  210. package/dist/__tests__/utils/noop.test.d.ts.map +1 -0
  211. package/dist/__tests__/utils/objectHasFunction.test.d.ts +2 -0
  212. package/dist/__tests__/utils/objectHasFunction.test.d.ts.map +1 -0
  213. package/dist/__tests__/utils/prepend.test.d.ts +2 -0
  214. package/dist/__tests__/utils/prepend.test.d.ts.map +1 -0
  215. package/dist/__tests__/utils/remove.test.d.ts +2 -0
  216. package/dist/__tests__/utils/remove.test.d.ts.map +1 -0
  217. package/dist/__tests__/utils/set.test.d.ts +2 -0
  218. package/dist/__tests__/utils/set.test.d.ts.map +1 -0
  219. package/dist/__tests__/utils/stringToPath.test.d.ts +2 -0
  220. package/dist/__tests__/utils/stringToPath.test.d.ts.map +1 -0
  221. package/dist/__tests__/utils/swap.test.d.ts +2 -0
  222. package/dist/__tests__/utils/swap.test.d.ts.map +1 -0
  223. package/dist/__tests__/utils/unset.test.d.ts +2 -0
  224. package/dist/__tests__/utils/unset.test.d.ts.map +1 -0
  225. package/dist/__tests__/utils/validationModeChecker.test.d.ts +2 -0
  226. package/dist/__tests__/utils/validationModeChecker.test.d.ts.map +1 -0
  227. package/dist/__tests__/watch.server.test.d.ts +2 -0
  228. package/dist/__tests__/watch.server.test.d.ts.map +1 -0
  229. package/dist/__tests__/watch.test.d.ts +2 -0
  230. package/dist/__tests__/watch.test.d.ts.map +1 -0
  231. package/dist/index.cjs.js +1 -1
  232. package/dist/index.cjs.js.map +1 -1
  233. package/dist/index.esm.mjs +25 -11
  234. package/dist/index.esm.mjs.map +1 -1
  235. package/dist/index.umd.js +1 -1
  236. package/dist/index.umd.js.map +1 -1
  237. package/dist/logic/createFormControl.d.ts.map +1 -1
  238. package/dist/react-server.esm.mjs +24 -10
  239. package/dist/react-server.esm.mjs.map +1 -1
  240. package/dist/types/form.d.ts +0 -8
  241. package/dist/types/form.d.ts.map +1 -1
  242. package/dist/types/index.d.ts +1 -0
  243. package/dist/types/index.d.ts.map +1 -1
  244. package/dist/types/utils.d.ts +3 -2
  245. package/dist/types/utils.d.ts.map +1 -1
  246. package/dist/types/watch.d.ts +32 -0
  247. package/dist/types/watch.d.ts.map +1 -0
  248. package/dist/watch.d.ts +2 -21
  249. package/dist/watch.d.ts.map +1 -1
  250. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"react-server.esm.mjs","sources":["../src/logic/appendErrors.ts","../src/constants.ts","../src/utils/isDateObject.ts","../src/utils/isNullOrUndefined.ts","../src/utils/isObject.ts","../src/utils/isPlainObject.ts","../src/utils/isWeb.ts","../src/utils/cloneObject.ts","../src/utils/compact.ts","../src/utils/convertToArrayPayload.ts","../src/utils/uuid.ts","../src/utils/createId.ts","../src/utils/createSubject.ts","../src/utils/isPrimitive.ts","../src/utils/deepEqual.ts","../src/utils/deepMerge.ts","../src/utils/extractFormValues.ts","../src/utils/isKey.ts","../src/utils/isUndefined.ts","../src/utils/stringToPath.ts","../src/utils/get.ts","../src/utils/isBoolean.ts","../src/utils/isCheckBoxInput.ts","../src/utils/isEmptyObject.ts","../src/utils/isFileInput.ts","../src/utils/isFunction.ts","../src/utils/isHTMLElement.ts","../src/utils/isMultipleSelect.ts","../src/utils/isRadioInput.ts","../src/utils/isRadioOrCheckbox.ts","../src/utils/isString.ts","../src/utils/live.ts","../src/utils/set.ts","../src/utils/submit.ts","../src/utils/unset.ts","../src/logic/generateWatchOutput.ts","../src/utils/objectHasFunction.ts","../src/logic/getDirtyFields.ts","../src/logic/getEventValue.ts","../src/logic/getCheckboxValue.ts","../src/logic/getFieldValueAs.ts","../src/logic/getRadioValue.ts","../src/logic/getFieldValue.ts","../src/logic/getResolverOptions.ts","../src/utils/isRegex.ts","../src/logic/getRuleValue.ts","../src/logic/getValidationModes.ts","../src/logic/hasPromiseValidation.ts","../src/logic/hasValidation.ts","../src/logic/getNodeParentName.ts","../src/logic/isNameInFieldArray.ts","../src/logic/isWatched.ts","../src/logic/iterateFieldsByAction.ts","../src/logic/schemaErrorLookup.ts","../src/logic/shouldRenderFormState.ts","../src/logic/shouldSubscribeByName.ts","../src/logic/skipValidation.ts","../src/logic/unsetEmptyArray.ts","../src/logic/updateFieldArrayRootError.ts","../src/logic/getValidateError.ts","../src/logic/getValueAndMessage.ts","../src/logic/validateField.ts","../src/logic/createFormControl.ts"],"sourcesContent":["import type {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","export const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n FOCUS: 'focus',\n FOCUS_IN: 'focusin',\n CHANGE: 'change',\n} as const;\n\nexport const VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n} as const;\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n} as const;\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown): value is object =>\n typeof value === 'object';\n\nexport default <T extends object>(value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject<T>(data: T): T {\n if (data instanceof Date) {\n return new Date(data) as any;\n }\n\n const isFileListInstance =\n typeof FileList !== 'undefined' && data instanceof FileList;\n\n if (isWeb && (data instanceof Blob || isFileListInstance)) {\n return data;\n }\n\n const isArray = Array.isArray(data);\n\n if (!isArray && !(isObject(data) && isPlainObject(data))) {\n return data;\n }\n\n const copy = isArray ? [] : Object.create(Object.getPrototypeOf(data));\n\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n\n return copy;\n}\n","export default <TValue>(value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","export default <T>(value: T) => (Array.isArray(value) ? value : [value]);\n","import crypto from 'crypto';\n\nexport default (): string => {\n if (\n typeof window !== 'undefined' &&\n typeof window.crypto.randomUUID === 'function'\n ) {\n return window.crypto.randomUUID();\n }\n return crypto.randomBytes(16).toString('hex');\n};\n","import uuid from './uuid';\n\nexport default (id?: string) => id || `form-${uuid()}`;\n","import type { Noop } from '../types';\n\nexport type Observer<T> = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject<T> = {\n readonly observers: Observer<T>[];\n subscribe: (value: Observer<T>) => Subscription;\n unsubscribe: Noop;\n} & Observer<T>;\n\nexport default <T>(): Subject<T> => {\n let _observers: Observer<T>[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer<T>): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n","import type { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isDateObject from './isDateObject';\nimport isObject from './isObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(\n object1: any,\n object2: any,\n _internal_visited = new WeakSet(),\n) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return Object.is(object1, object2);\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n if (_internal_visited.has(object1) || _internal_visited.has(object2)) {\n return true;\n }\n _internal_visited.add(object1);\n _internal_visited.add(object2);\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2, _internal_visited)\n : !Object.is(val1, val2)\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import isObject from './isObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepMerge<\n T extends Record<keyof T, any>,\n U extends Record<keyof U, any>,\n>(target: T, source: U): T & U {\n if (isPrimitive(target) || isPrimitive(source)) {\n return source;\n }\n\n for (const key in source) {\n const targetValue = target[key];\n const sourceValue = source[key];\n\n try {\n target[key] =\n (isObject(targetValue) && isObject(sourceValue)) ||\n (Array.isArray(targetValue) && Array.isArray(sourceValue))\n ? deepMerge(targetValue, sourceValue)\n : sourceValue;\n } catch {}\n }\n\n return target;\n}\n","import isObject from './isObject';\n\nexport default function extractFormValues<\n T extends object,\n K extends Record<string, unknown>,\n>(fieldsState: T, formValues: K) {\n const values: Record<string, unknown> = {};\n\n for (const key in fieldsState) {\n if (fieldsState.hasOwnProperty(key)) {\n const fieldState = fieldsState[key];\n const fieldValue = formValues[key];\n\n if (fieldState && isObject(fieldState) && fieldValue) {\n const nestedFieldsState = extractFormValues(\n fieldState,\n fieldValue as K,\n );\n\n if (isObject(nestedFieldsState)) {\n values[key] = nestedFieldsState;\n }\n } else if (fieldsState[key]) {\n values[key] = fieldValue;\n }\n }\n }\n\n return values;\n}\n","export default (value: string) => /^\\w*$/.test(value);\n","export default (val: unknown): val is undefined => val === undefined;\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import isKey from './isKey';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nexport default <T>(\n object: T,\n path?: string | null,\n defaultValue?: unknown,\n): any => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n\n const result = (isKey(path) ? [path] : stringToPath(path)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof T & object],\n object,\n );\n\n return isUndefined(result) || result === object\n ? isUndefined(object[path as keyof T])\n ? defaultValue\n : object[path as keyof T]\n : result;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","import type { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import isWeb from './isWeb';\n\nexport default (value: unknown): value is HTMLElement => {\n if (!isWeb) {\n return false;\n }\n\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n return (\n value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n );\n};\n","import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","import type { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","export default (value: unknown): value is string => typeof value === 'string';\n","import type { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import type { FieldPath, FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default (\n object: FieldValues,\n path: FieldPath<FieldValues>,\n value?: unknown,\n) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n object[key] = newValue;\n object = object[key];\n }\n};\n","export default (id: string) => {\n try {\n document?.getElementById(id)?.dispatchEvent(\n new Event('submit', {\n bubbles: true,\n cancelable: true,\n }),\n );\n } catch {\n // noop\n }\n};\n","import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string | (string | number)[]) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n const index = paths.length - 1;\n const key = paths[index];\n\n if (childObject) {\n delete childObject[key];\n }\n\n if (\n index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))\n ) {\n unset(object, paths.slice(0, -1));\n }\n\n return object;\n}\n","import type { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default <T>(\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial<T> | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName),\n get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","import isFunction from './isFunction';\n\nexport default <T>(data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction isTraversable(value: any): boolean {\n return Array.isArray(value) || (isObject(value) && !objectHasFunction(value));\n}\n\nfunction markFieldsDirty<T>(data: T, fields: Record<string, any> = {}) {\n for (const key in data) {\n const value = data[key];\n\n if (isTraversable(value)) {\n fields[key] = Array.isArray(value) ? [] : {};\n markFieldsDirty(value, fields[key]);\n } else if (!isUndefined(value)) {\n fields[key] = true;\n }\n }\n\n return fields;\n}\n\nexport default function getDirtyFields<T>(\n data: T,\n formValues: T,\n dirtyFieldsFromValues?: Record<\n Extract<keyof T, string>,\n ReturnType<typeof markFieldsDirty> | boolean\n >,\n) {\n if (!dirtyFieldsFromValues) {\n dirtyFieldsFromValues = markFieldsDirty(formValues);\n }\n\n for (const key in data) {\n const value = data[key];\n\n if (isTraversable(value)) {\n if (isUndefined(formValues) || isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = markFieldsDirty(\n value,\n Array.isArray(value) ? [] : {},\n );\n } else {\n getDirtyFields(\n value,\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n const formValue = formValues[key];\n dirtyFieldsFromValues[key] = !deepEqual(value, formValue);\n }\n }\n\n return dirtyFieldsFromValues;\n}\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","import type { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default <T extends NativeFieldValue>(\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import type { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n","import type {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default <TFieldValues extends FieldValues>(\n fieldsNames: Set<InternalFieldName> | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record<InternalFieldName, Field['_f']> = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName<TFieldValues>[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import type {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default <T extends ValidationValue>(\n rule?: ValidationRule<T> | ValidationValueMessage<T>,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { VALIDATION_MODE } from '../constants';\nimport type { Mode, ValidationModeFlags } from '../types';\n\nexport default (mode?: Mode): ValidationModeFlags => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import type { Field, Validate } from '../types';\nimport isFunction from '../utils/isFunction';\nimport isObject from '../utils/isObject';\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\n\nexport default (fieldReference: Field['_f']) =>\n !!fieldReference &&\n !!fieldReference.validate &&\n !!(\n (isFunction(fieldReference.validate) &&\n fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n (isObject(fieldReference.validate) &&\n Object.values(fieldReference.validate).find(\n (validateFunction: Validate<unknown, unknown>) =>\n validateFunction.constructor.name === ASYNC_FUNCTION,\n ))\n );\n","import type { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","export default (name: string) =>\n name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n","import type { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set<InternalFieldName>, name: InternalFieldName) =>\n names.has(getNodeParentName(name));\n","import type { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n","import type { FieldRefs, InternalFieldName, Ref } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst iterateFieldsByAction = (\n fields: FieldRefs,\n action: (ref: Ref, name: string) => 1 | undefined | void,\n fieldsNames?: Set<InternalFieldName> | InternalFieldName[] | 0,\n abortEarly?: boolean,\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n return true;\n } else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n return true;\n } else {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n } else if (isObject(currentField)) {\n if (iterateFieldsByAction(currentField as FieldRefs, action)) {\n break;\n }\n }\n }\n }\n return;\n};\nexport default iterateFieldsByAction;\n","import type { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup<T extends FieldValues = FieldValues>(\n errors: FieldErrors<T>,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n if (foundError && foundError.root && foundError.root.type) {\n return {\n name: `${fieldName}.root`,\n error: foundError.root,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","import { VALIDATION_MODE } from '../constants';\nimport type {\n FieldValues,\n FormState,\n InternalFieldName,\n ReadFormState,\n} from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default <T extends FieldValues, K extends ReadFormState>(\n formStateData: Partial<FormState<T>> & {\n name?: InternalFieldName;\n values?: T;\n },\n _proxyFormState: K,\n updateFormState: (formState: Partial<FormState<T>>) => void,\n isRoot?: boolean,\n) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","import convertToArrayPayload from '../utils/convertToArrayPayload';\n\nexport default <T extends string | readonly string[] | undefined>(\n name?: T,\n signalName?: string,\n exact?: boolean,\n) =>\n !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some(\n (currentName) =>\n currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)),\n );\n","import type { ValidationModeFlags } from '../types';\n\n/**\n * Subset of ValidationModeFlags used for revalidation mode checking\n */\ntype ReValidateModeFlags = Pick<ValidationModeFlags, 'isOnBlur' | 'isOnChange'>;\n\nexport default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: ReValidateModeFlags,\n mode: Partial<ValidationModeFlags>,\n /**\n * Need to keep this order of parameters for backward compatibility\n */\n isFocusEvent: boolean,\n /**\n * Optional field-level validation mode that overrides form-level mode.\n * When provided, this field's mode takes precedence over the form's mode.\n * Partial because only the relevant flags (e.g., isOnChange, isOnBlur) need to be checked.\n */\n fieldMode?: Partial<ValidationModeFlags>,\n /**\n * Optional field-level revalidation mode that overrides form-level reValidateMode.\n * When provided, this field's reValidateMode takes precedence after form submission.\n * Only includes isOnBlur and isOnChange as these are the only valid revalidation modes.\n */\n fieldReValidateMode?: ReValidateModeFlags,\n) => {\n // Use field-level modes if provided, otherwise fallback to form-level modes\n // This allows individual fields to have different validation timing than the form\n const effectiveMode = fieldMode || mode;\n const effectiveReValidateMode = fieldReValidateMode || reValidateMode;\n\n // Focus events should always skip validation\n if (isFocusEvent) {\n return true;\n }\n\n if (effectiveMode.isOnAll) {\n return false;\n } else if (!isSubmitted && effectiveMode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (\n isSubmitted ? effectiveReValidateMode.isOnBlur : effectiveMode.isOnBlur\n ) {\n return !isBlurEvent;\n } else if (\n isSubmitted ? effectiveReValidateMode.isOnChange : effectiveMode.isOnChange\n ) {\n return isBlurEvent;\n }\n return true;\n};\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default <T>(ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n","import type {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default <T extends FieldValues = FieldValues>(\n errors: FieldErrors<T>,\n error: Partial<Record<string, FieldError>>,\n name: InternalFieldName,\n): FieldErrors<T> => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n","import type { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isString from '../utils/isString';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isString(result) ||\n (Array.isArray(result) && result.every(isString)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isString(result) ? result : '',\n ref,\n };\n }\n}\n","import type { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport type {\n Field,\n FieldError,\n FieldValues,\n InternalFieldErrors,\n InternalNameSet,\n MaxType,\n Message,\n MinType,\n NativeFieldValue,\n} from '../types';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async <T extends FieldValues>(\n field: Field,\n skippedFieldNames: InternalNameSet,\n formValues: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise<InternalFieldErrors> => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n } = field._f;\n const inputValue: NativeFieldValue = get(formValues, name);\n if (!mount || skippedFieldNames.has(name)) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType: MaxType = INPUT_VALIDATION_RULES.maxLength,\n minType: MinType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isString(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue, formValues),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n","import { EVENTS, VALIDATION_MODE } from '../constants';\nimport type {\n BatchFieldArrayUpdate,\n ChangeHandler,\n Control,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormMetadata,\n FormState,\n FromSubscribe,\n GetIsDirty,\n GetValuesConfig,\n InternalFieldName,\n Names,\n Path,\n ReadFormState,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormSubscribe,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createId from '../utils/createId';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport deepMerge from '../utils/deepMerge';\nimport extractFormValues from '../utils/extractFormValues';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport submitForm from '../utils/submit';\nimport unset from '../utils/unset';\n\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport getValidationModes from './getValidationModes';\nimport hasPromiseValidation from './hasPromiseValidation';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport iterateFieldsByAction from './iterateFieldsByAction';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport shouldRenderFormState from './shouldRenderFormState';\nimport shouldSubscribeByName from './shouldSubscribeByName';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n shouldSkipReadOnlyValidation: false,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n TMetadata extends FormMetadata = any,\n>(\n props: UseFormProps<\n TFieldValues,\n TContext,\n TTransformedValues,\n TMetadata\n > = {},\n): Omit<\n UseFormReturn<TFieldValues, TContext, TTransformedValues, TMetadata>,\n 'formState'\n> & {\n formControl: Omit<\n UseFormReturn<TFieldValues, TContext, TTransformedValues, TMetadata>,\n 'formState'\n >;\n} {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n\n let _internalLoading =\n _options.isLoading || isFunction(_options.defaultValues);\n let _formState: FormState<TFieldValues, TMetadata> = {\n submitCount: 0,\n isDirty: false,\n isDirtySinceSubmit: false,\n hasBeenSubmitted: false,\n isReady: false,\n isLoading: _internalLoading,\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n focusedField: undefined,\n validatingFields: {},\n errors: _options.errors || {},\n disabled: Array.isArray(_options.disabled)\n ? false\n : _options.disabled || false,\n metadata: _options.defaultMetadata || ({} as TMetadata),\n };\n\n let _fields: FieldRefs = {};\n let _defaultValues =\n isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? ({} as TFieldValues)\n : (cloneObject(_defaultValues) as TFieldValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n keepIsValid: false,\n };\n let _names: Names = {\n mount: new Set(),\n disabled: new Set(),\n readonly: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback: DelayCallback | null;\n let timer = 0;\n const defaultProxyFormState: ReadFormState = {\n isDirty: false,\n isDirtySinceSubmit: false,\n hasBeenSubmitted: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n focusedField: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _proxyFormState: ReadFormState = {\n ...defaultProxyFormState,\n };\n let _proxySubscribeFormState = {\n ..._proxyFormState,\n };\n const _subjects: Subjects<TFieldValues> = {\n array: createSubject(),\n state: createSubject(),\n };\n\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const id = createId(props.id);\n\n // Track if form was ever submitted (persists through resets)\n let _hasBeenSubmitted = false;\n\n const debounce =\n <T extends Function>(callback: T) =>\n (wait: number) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n\n const _setValid = async (shouldUpdateValid?: boolean) => {\n if (_state.keepIsValid) {\n return;\n }\n if (\n (Array.isArray(_options.disabled) || !_options.disabled) &&\n (_proxyFormState.isValid ||\n _proxySubscribeFormState.isValid ||\n shouldUpdateValid)\n ) {\n let isValid: boolean;\n if (_options.resolver) {\n isValid = isEmptyObject((await _runSchema()).errors);\n _updateIsValidating();\n } else {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateIsValidating = (names?: string[], isValidating?: boolean) => {\n if (\n !_options.disabled &&\n (_proxyFormState.isValidating ||\n _proxyFormState.validatingFields ||\n _proxySubscribeFormState.isValidating ||\n _proxySubscribeFormState.validatingFields)\n ) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n\n const _setFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method && !_options.disabled) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n (_proxyFormState.touchedFields ||\n _proxySubscribeFormState.touchedFields) &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields || _proxySubscribeFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const _setErrors = (errors: FieldErrors<TFieldValues>) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _state.mount && !_state.action && _setValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n isFocusEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick<\n FormState<TFieldValues>,\n | 'dirtyFields'\n | 'isDirty'\n | 'touchedFields'\n | 'focusedField'\n | 'isDirtySinceSubmit'\n >\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial<FormState<TFieldValues>> & { name: string } = {\n name,\n };\n\n if (!_options.disabled) {\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty || _proxySubscribeFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n const isCurrentFieldPristine = deepEqual(\n get(_defaultValues, name),\n fieldValue,\n );\n\n isPreviousDirty = !!get(_formState.dirtyFields, name);\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.dirtyFields ||\n _proxySubscribeFormState.dirtyFields) &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n\n // Set isDirtySinceSubmit to true if form was ever submitted and a field value is being changed\n // For change events (not blur/focus), always set if form was ever submitted\n // shouldDirty is true for onChange events, false for blur\n if (\n (_formState.isSubmitted || _hasBeenSubmitted) &&\n !_formState.isDirtySinceSubmit &&\n !isBlurEvent &&\n !isFocusEvent &&\n shouldDirty\n ) {\n _formState.isDirtySinceSubmit = output.isDirtySinceSubmit = true;\n shouldUpdateField =\n shouldUpdateField ||\n !!(\n _proxyFormState.isDirtySinceSubmit ||\n _proxySubscribeFormState.isDirtySinceSubmit\n );\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.touchedFields ||\n _proxySubscribeFormState.touchedFields) &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n // Handle focus state\n if (isFocusEvent || isBlurEvent) {\n const wasPreviouslyFocused = _formState.focusedField === name;\n const shouldBeFocused = isFocusEvent && !isBlurEvent;\n\n if (wasPreviouslyFocused !== shouldBeFocused) {\n if (shouldBeFocused) {\n _formState.focusedField = name as FieldPath<TFieldValues>;\n } else {\n _formState.focusedField = undefined;\n }\n output.focusedField = _formState.focusedField;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.focusedField ||\n _proxySubscribeFormState.focusedField) &&\n wasPreviouslyFocused !== shouldBeFocused);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean<TFieldValues>;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean<TFieldValues>;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n (_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (_options.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(_options.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n };\n\n const _runSchema = async (name?: InternalFieldName[]) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n return result;\n };\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _runSchema(names);\n _updateIsValidating(names);\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const executeBuiltInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context: {\n valid: boolean;\n } = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field as Field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction =\n field._f && hasPromiseValidation((field as Field)._f);\n\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([_f.name], true);\n }\n\n // Combine disabled and readonly field names for validation skipping\n const skipValidationFields = new Set([\n ..._names.disabled,\n ..._names.readonly,\n ]);\n\n const fieldError = await validateField(\n field as Field,\n skipValidationFields,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation && !shouldOnlyCheckValid,\n isFieldArrayRoot,\n );\n\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([_f.name]);\n }\n\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath<TFieldValues>);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) =>\n !_options.disabled &&\n (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n\n const _getWatch: WatchInternal<TFieldValues> = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n },\n isGlobal,\n defaultValue,\n );\n\n const _getFieldArray = <TFieldArrayValues>(\n name: InternalFieldName,\n ): Partial<TFieldArrayValues>[] =>\n compact(\n get(\n _state.mount ? _formValues : _defaultValues,\n name,\n _options.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue<TFieldValues>,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.forEach((checkboxRef) => {\n if (!checkboxRef.defaultChecked || !checkboxRef.disabled) {\n if (Array.isArray(fieldValue)) {\n checkboxRef.checked = !!fieldValue.find(\n (data: string) => data === checkboxRef.value,\n );\n } else {\n checkboxRef.checked =\n fieldValue === checkboxRef.value || !!fieldValue;\n }\n }\n });\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.state.next({\n name,\n values: cloneObject(_formValues),\n });\n }\n }\n }\n }\n\n const isSubmittedAndDirty =\n (_formState.isSubmitted || _hasBeenSubmitted) &&\n !deepEqual(get(_defaultValues, name), fieldValue);\n\n // If the form was submitted, track value changes for isDirtySinceSubmit\n // only when the value actually differs from the default value,\n // even if shouldDirty is not explicitly set\n const shouldTrackChange =\n options.shouldDirty || options.shouldTouch || isSubmittedAndDirty;\n\n shouldTrackChange &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n false, // isFocusEvent - not applicable for setValue\n options.shouldDirty || isSubmittedAndDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path<TFieldValues>);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue<TFieldValues>,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n if (!value.hasOwnProperty(fieldKey)) {\n return;\n }\n const fieldValue = value[fieldKey];\n const fieldName = name + '.' + fieldKey;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue<TFieldValues> = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: cloneObject(_formValues),\n });\n\n if (\n (_proxyFormState.isDirty ||\n _proxyFormState.dirtyFields ||\n _proxySubscribeFormState.isDirty ||\n _proxySubscribeFormState.dirtyFields ||\n _proxyFormState.isDirtySinceSubmit ||\n _proxySubscribeFormState.isDirtySinceSubmit) &&\n options.shouldDirty\n ) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n ...((_formState.isSubmitted || _hasBeenSubmitted) &&\n !_formState.isDirtySinceSubmit\n ? { isDirtySinceSubmit: true }\n : {}),\n });\n } else if (\n (_formState.isSubmitted || _hasBeenSubmitted) &&\n !_formState.isDirtySinceSubmit\n ) {\n _subjects.state.next({\n name,\n isDirtySinceSubmit: true,\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n isWatched(name, _names) && _subjects.state.next({ ..._formState, name });\n _subjects.state.next({\n name: _state.mount ? name : undefined,\n values: cloneObject(_formValues),\n });\n\n // Trigger validation when shouldValidate is true\n // This ensures validation happens for all cases including:\n // - Field arrays\n // - Empty arrays\n // - Nested fields with array values\n if (options.shouldValidate) {\n trigger(name as Path<TFieldValues>);\n }\n };\n\n const onChange: ChangeHandler = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name: string = target.name;\n let isFieldValueUpdated = true;\n const field: Field = get(_fields, name);\n const _updateIsFieldValueUpdated = (fieldValue: unknown) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(\n _options.reValidateMode,\n );\n\n // Extract field-level validation modes if they exist\n // Field-level modes take precedence over form-level modes, allowing\n // individual fields to override when they validate (mode) and when they\n // revalidate after form submission (reValidateMode)\n const fieldMode = field?._f.mode\n ? getValidationModes(field._f.mode)\n : undefined;\n const fieldReValidateMode = field?._f.reValidateMode\n ? getValidationModes(field._f.reValidateMode)\n : undefined;\n\n if (field) {\n // Check if field is disabled and should not process events\n const isFieldDisabled = isBoolean(field._f.disabled)\n ? field._f.disabled\n : isBoolean(_options.disabled)\n ? _options.disabled\n : Array.isArray(_options.disabled)\n ? new Set(_options.disabled).has(name as FieldPath<TFieldValues>)\n : false;\n\n if (isFieldDisabled) {\n // Restore the original value if the field is disabled\n const originalValue = get(_formValues, name);\n if (target.value !== originalValue) {\n target.value = originalValue;\n }\n return;\n }\n\n // Check if field is readonly and should skip validation (only when flag is enabled)\n if (_options.shouldSkipReadOnlyValidation && target && target.readOnly) {\n // Add to readonly fields set for validation skipping\n _names.readonly.add(name);\n\n // For readonly fields, we still want to update the form values\n // but skip validation (similar to disabled fields behavior)\n const fieldValue = target.type\n ? getFieldValue(field._f)\n : getEventValue(event);\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const isFocusEvent =\n event.type === EVENTS.FOCUS || event.type === EVENTS.FOCUS_IN;\n const watched = isWatched(name, _names, isBlurEvent || isFocusEvent);\n\n // Update form values but skip validation and error handling\n set(_formValues, name, fieldValue);\n\n // Update touch and dirty state\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n isFocusEvent,\n !isBlurEvent, // shouldDirty - true for onChange events, false for blur\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.state.next({\n name,\n type: event.type,\n values: cloneObject(_formValues),\n });\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n } else if (_options.shouldSkipReadOnlyValidation) {\n // Remove from readonly fields set if not readonly anymore (only when flag is enabled)\n _names.readonly.delete(name);\n }\n\n let error;\n let isValid;\n const fieldValue = target.type\n ? getFieldValue(field._f)\n : getEventValue(event);\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const isFocusEvent =\n event.type === EVENTS.FOCUS || event.type === EVENTS.FOCUS_IN;\n\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n isFocusEvent,\n fieldMode,\n fieldReValidateMode,\n );\n const watched = isWatched(name, _names, isBlurEvent || isFocusEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n if (!target || !target.readOnly) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n isFocusEvent,\n !isBlurEvent, // shouldDirty - true for onChange events, false for blur\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.state.next({\n name,\n type: event.type,\n values: cloneObject(_formValues),\n });\n\n if (shouldSkipValidation) {\n if (_proxyFormState.isValid || _proxySubscribeFormState.isValid) {\n if (_options.mode === 'onBlur') {\n if (isBlurEvent) {\n _setValid();\n }\n } else if (!isBlurEvent) {\n _setValid();\n }\n }\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n\n if (_options.resolver) {\n const { errors } = await _runSchema([name]);\n _updateIsValidating([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n }\n } else {\n _updateIsValidating([name], true);\n\n // Combine disabled and readonly field names for validation skipping\n const skipValidationFields = new Set([\n ..._names.disabled,\n ..._names.readonly,\n ]);\n\n error = (\n await validateField(\n field,\n skipValidationFields,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n false, // isFieldArray\n )\n )[name];\n _updateIsValidating([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n } else if (\n _proxyFormState.isValid ||\n _proxySubscribeFormState.isValid\n ) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n\n if (isFieldValueUpdated) {\n field._f.deps &&\n (!Array.isArray(field._f.deps) || field._f.deps.length > 0) &&\n trigger(\n field._f.deps as\n | FieldPath<TFieldValues>\n | FieldPath<TFieldValues>[],\n );\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n\n const _focusInput = (ref: Ref, key: string) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n\n const trigger: UseFormTrigger<TFieldValues> = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(\n field && field._f ? { [fieldName]: field } : field,\n );\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _setValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n ((_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&\n isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(\n _fields,\n _focusInput,\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues<TFieldValues> = (\n fieldNames?:\n | FieldPath<TFieldValues>\n | ReadonlyArray<FieldPath<TFieldValues>>,\n config?: GetValuesConfig,\n ) => {\n let values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n\n if (config) {\n values = extractFormValues(\n config.dirtyFields ? _formState.dirtyFields : _formState.touchedFields,\n values,\n );\n }\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getFieldState: UseFormGetFieldState<TFieldValues> = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n isFocused: (formState || _formState).focusedField === name,\n });\n\n const clearErrors: UseFormClearErrors<TFieldValues> = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n );\n\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n\n const setError: UseFormSetError<TFieldValues> = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch<TFieldValues> = (\n name?:\n | FieldPath<TFieldValues>\n | ReadonlyArray<FieldPath<TFieldValues>>\n | WatchObserver<TFieldValues>,\n defaultValue?: DeepPartial<TFieldValues>,\n ) =>\n isFunction(name)\n ? _subjects.state.subscribe({\n next: (payload) =>\n 'values' in payload &&\n name(\n _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath<TFieldValues>;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n\n const _subscribe: FromSubscribe<TFieldValues> = (props) =>\n _subjects.state.subscribe({\n next: (\n formState: Partial<FormState<TFieldValues>> & {\n name?: InternalFieldName;\n values?: TFieldValues | undefined;\n type?: EventType;\n },\n ) => {\n if (\n shouldSubscribeByName(props.name, formState.name, props.exact) &&\n shouldRenderFormState(\n formState,\n (props.formState as ReadFormState) || _proxyFormState,\n _setFormState,\n props.reRenderRoot,\n )\n ) {\n props.callback({\n values: { ..._formValues } as TFieldValues,\n ..._formState,\n ...formState,\n defaultValues:\n _defaultValues as FormState<TFieldValues>['defaultValues'],\n });\n }\n },\n }).unsubscribe;\n\n const subscribe: UseFormSubscribe<TFieldValues> = (props) => {\n _state.mount = true;\n _proxySubscribeFormState = {\n ..._proxySubscribeFormState,\n ...props.formState,\n };\n return _subscribe({\n ...props,\n formState: {\n ...defaultProxyFormState,\n ...props.formState,\n },\n });\n };\n\n const unregister: UseFormUnregister<TFieldValues> = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n\n _subjects.state.next({\n values: cloneObject(_formValues),\n });\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _setValid();\n };\n\n const _setDisabledField: Control<TFieldValues>['_setDisabledField'] = ({\n disabled,\n name,\n }) => {\n if (\n (isBoolean(disabled) && _state.mount) ||\n !!disabled ||\n _names.disabled.has(name)\n ) {\n disabled ? _names.disabled.add(name) : _names.disabled.delete(name);\n }\n };\n\n const register: UseFormRegister<TFieldValues> = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined =\n isBoolean(options.disabled) ||\n isBoolean(_options.disabled) ||\n Array.isArray(_options.disabled);\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n if (field) {\n _setDisabledField({\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : Array.isArray(_options.disabled)\n ? new Set(_options.disabled).has(name)\n : _options.disabled,\n name,\n });\n } else {\n updateValidAndValue(name, true, options.value);\n }\n\n return {\n ...(disabledIsDefined\n ? {\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : Array.isArray(_options.disabled)\n ? new Set(_options.disabled).has(name)\n : !!_options.disabled,\n }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue<number>(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n onFocus: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n\n // Check if field is readonly and should skip validation (only when flag is enabled)\n if (\n _options.shouldSkipReadOnlyValidation &&\n fieldRef &&\n 'readOnly' in fieldRef &&\n fieldRef.readOnly\n ) {\n _names.readonly.add(name);\n }\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n\n const _disableForm = (disabled?: boolean | string[]) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(\n _fields,\n (ref, name) => {\n const currentField: Field = get(_fields, name);\n if (currentField) {\n ref.disabled = isBoolean(currentField._f.disabled)\n ? currentField._f.disabled\n : disabled;\n\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = isBoolean(currentField._f.disabled)\n ? currentField._f.disabled\n : disabled;\n });\n }\n }\n },\n 0,\n false,\n );\n } else if (Array.isArray(disabled)) {\n // For array mode, we don't set the global disabled state\n // but we update individual fields based on their inclusion in the array\n iterateFieldsByAction(\n _fields,\n (ref, name) => {\n const currentField: Field = get(_fields, name);\n if (currentField) {\n // Field-level disabled takes precedence over array disabled\n const isFieldDisabled = isBoolean(currentField._f.disabled)\n ? currentField._f.disabled\n : new Set(disabled).has(name);\n ref.disabled = isFieldDisabled;\n\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = isFieldDisabled;\n });\n }\n }\n },\n 0,\n false,\n );\n }\n };\n\n const handleSubmit: UseFormHandleSubmit<TFieldValues, TTransformedValues> =\n (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n (e as React.BaseSyntheticEvent).persist &&\n (e as React.BaseSyntheticEvent).persist();\n }\n let fieldValues:\n | TFieldValues\n | TTransformedValues\n | Record<string, never> = cloneObject(_formValues);\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n if (_options.resolver) {\n const { errors, values } = await _runSchema();\n _updateIsValidating();\n _formState.errors = errors;\n fieldValues = cloneObject(values);\n } else {\n await executeBuiltInValidation(_fields);\n }\n\n if (_names.disabled.size) {\n for (const name of _names.disabled) {\n unset(fieldValues, name);\n }\n }\n\n unset(_formState.errors, 'root');\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues as TTransformedValues, e);\n } catch (error) {\n onValidError = error;\n }\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n\n _hasBeenSubmitted = true; // Mark that form was submitted at least once\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n isDirtySinceSubmit: false,\n hasBeenSubmitted: _hasBeenSubmitted,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n\n const resetField: UseFormResetField<TFieldValues> = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n } else {\n setValue(\n name,\n options.defaultValue as Parameters<typeof setValue<typeof name>>[1],\n );\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _setValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const _reset: UseFormReset<TFieldValues> = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...Object.keys(getDirtyFields(_defaultValues, _formValues)),\n ]);\n for (const fieldName of Array.from(fieldsToCheck)) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(\n fieldName as FieldPath<TFieldValues>,\n get(values, fieldName),\n );\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n HTMLFormElement.prototype.reset.call(form);\n break;\n }\n }\n }\n }\n }\n\n if (keepStateOptions.keepFieldsRef) {\n for (const fieldName of _names.mount) {\n setValue(\n fieldName as FieldPath<TFieldValues>,\n get(values, fieldName),\n );\n }\n } else {\n _fields = {};\n }\n }\n\n _formValues = _options.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? (cloneObject(_defaultValues) as TFieldValues)\n : ({} as TFieldValues)\n : (cloneObject(values) as TFieldValues);\n\n _subjects.array.next({\n values: { ...values },\n });\n\n _subjects.state.next({\n values: { ...values } as TFieldValues,\n });\n }\n\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n disabled: new Set(),\n readonly: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues ||\n (!_options.shouldUnregister && !isEmptyObject(values));\n\n _state.watch = !!_options.shouldUnregister;\n _state.keepIsValid = !!keepStateOptions.keepIsValid;\n _state.action = false;\n\n // Clear errors synchronously to prevent validation errors on subsequent submissions\n // This fixes the issue where form.reset() causes validation errors on subsequent\n // submissions in Next.js 16 with Server Actions\n if (!keepStateOptions.keepErrors) {\n _formState.errors = {};\n }\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isDirtySinceSubmit: false,\n hasBeenSubmitted: _hasBeenSubmitted, // Persist the hasBeenSubmitted flag\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n focusedField: undefined, // Always reset focused field on form reset\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n defaultValues: _defaultValues as FormState<TFieldValues>['defaultValues'],\n });\n };\n\n const reset: UseFormReset<TFieldValues> = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? (formValues as Function)(_formValues as TFieldValues)\n : formValues,\n { ..._options.resetOptions, ...keepStateOptions },\n );\n\n const setFocus: UseFormSetFocus<TFieldValues> = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n // Use setTimeout to ensure focus happens after any pending state updates\n // This fixes the issue where setFocus doesn't work immediately after setError\n setTimeout(() => {\n fieldRef.focus();\n options.shouldSelect &&\n isFunction(fieldRef.select) &&\n fieldRef.select();\n });\n }\n }\n };\n\n const _setFormState = (\n updatedFormState: Partial<FormState<TFieldValues>>,\n ) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n\n const _resetDefaultValues = () =>\n isFunction(_options.defaultValues) &&\n (_options.defaultValues as Function)().then((values: TFieldValues) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n _internalLoading = false;\n });\n\n const submit = () => {\n submitForm(id);\n };\n\n const _updateIsLoading = (isLoading?: boolean) => {\n if (!isUndefined(isLoading)) {\n const _loading = isLoading || _internalLoading;\n if (_formState.isLoading !== _loading) {\n _formState.isLoading = _loading;\n _subjects.state.next({\n isLoading: _loading,\n });\n }\n } else if (!!isLoading !== _formState.isLoading) {\n _formState.isLoading = _internalLoading;\n _subjects.state.next({\n isLoading: _internalLoading,\n });\n }\n };\n\n const _updateReadonlyFieldTracking = () => {\n // Re-evaluate all registered fields and update readonly tracking\n // based on current shouldSkipReadOnlyValidation flag and field readonly state\n Object.keys(_fields).forEach((fieldName) => {\n const field = get(_fields, fieldName);\n\n if (field && field._f) {\n // Get the actual DOM element reference\n const fieldRef = field._f.refs ? field._f.refs[0] : field._f.ref;\n\n if (fieldRef && 'readOnly' in fieldRef) {\n const isFieldReadonly = Boolean(fieldRef.readOnly);\n const shouldTrackAsReadonly =\n _options.shouldSkipReadOnlyValidation && isFieldReadonly;\n\n // Update readonly tracking set\n if (shouldTrackAsReadonly) {\n _names.readonly.add(fieldName);\n } else {\n _names.readonly.delete(fieldName);\n }\n }\n }\n });\n };\n\n const setMetadata = (metadata?: TMetadata) => {\n let _metadata: TMetadata;\n if (!metadata) {\n _metadata = _options.defaultMetadata\n ? cloneObject(_options.defaultMetadata)\n : ({} as TMetadata);\n } else {\n _metadata = metadata;\n }\n _formState.metadata = _metadata;\n _subjects.state.next({\n metadata: _metadata,\n });\n };\n\n const updateMetadata = (metadata: Partial<TMetadata>) => {\n const _metadata = deepMerge(\n _formState.metadata,\n metadata as Record<keyof TMetadata, any>,\n );\n _formState.metadata = _metadata;\n _subjects.state.next({\n metadata: _metadata,\n });\n };\n\n const methods = {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _subscribe,\n _runSchema,\n _updateIsValidating,\n _focusError,\n _getWatch,\n _getDirty,\n _setValid,\n _setFieldArray,\n _setDisabledField,\n _setErrors,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _removeUnmounted,\n _disableForm,\n _updateIsLoading,\n _updateReadonlyFieldTracking,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n subscribe,\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n id,\n submit,\n setMetadata,\n updateMetadata,\n };\n\n return {\n ...methods,\n formControl: methods,\n };\n}\n"],"names":["isCheckBox"],"mappings":"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"}
1
+ {"version":3,"file":"react-server.esm.mjs","sources":["../src/logic/appendErrors.ts","../src/constants.ts","../src/utils/isDateObject.ts","../src/utils/isNullOrUndefined.ts","../src/utils/isObject.ts","../src/utils/isPlainObject.ts","../src/utils/isWeb.ts","../src/utils/cloneObject.ts","../src/utils/compact.ts","../src/utils/convertToArrayPayload.ts","../src/utils/uuid.ts","../src/utils/createId.ts","../src/utils/createSubject.ts","../src/utils/isPrimitive.ts","../src/utils/deepEqual.ts","../src/utils/deepMerge.ts","../src/utils/extractFormValues.ts","../src/utils/isKey.ts","../src/utils/isUndefined.ts","../src/utils/stringToPath.ts","../src/utils/get.ts","../src/utils/isBoolean.ts","../src/utils/isCheckBoxInput.ts","../src/utils/isEmptyObject.ts","../src/utils/isFileInput.ts","../src/utils/isFunction.ts","../src/utils/isHTMLElement.ts","../src/utils/isMultipleSelect.ts","../src/utils/isRadioInput.ts","../src/utils/isRadioOrCheckbox.ts","../src/utils/isString.ts","../src/utils/live.ts","../src/utils/set.ts","../src/utils/submit.ts","../src/utils/unset.ts","../src/logic/generateWatchOutput.ts","../src/utils/objectHasFunction.ts","../src/logic/getDirtyFields.ts","../src/logic/getEventValue.ts","../src/logic/getCheckboxValue.ts","../src/logic/getFieldValueAs.ts","../src/logic/getRadioValue.ts","../src/logic/getFieldValue.ts","../src/logic/getResolverOptions.ts","../src/utils/isRegex.ts","../src/logic/getRuleValue.ts","../src/logic/getValidationModes.ts","../src/logic/hasPromiseValidation.ts","../src/logic/hasValidation.ts","../src/logic/getNodeParentName.ts","../src/logic/isNameInFieldArray.ts","../src/logic/isWatched.ts","../src/logic/iterateFieldsByAction.ts","../src/logic/schemaErrorLookup.ts","../src/logic/shouldRenderFormState.ts","../src/logic/shouldSubscribeByName.ts","../src/logic/skipValidation.ts","../src/logic/unsetEmptyArray.ts","../src/logic/updateFieldArrayRootError.ts","../src/logic/getValidateError.ts","../src/logic/getValueAndMessage.ts","../src/logic/validateField.ts","../src/logic/createFormControl.ts"],"sourcesContent":["import type {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","export const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n FOCUS: 'focus',\n FOCUS_IN: 'focusin',\n CHANGE: 'change',\n} as const;\n\nexport const VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n} as const;\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n} as const;\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown): value is object =>\n typeof value === 'object';\n\nexport default <T extends object>(value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject<T>(data: T): T {\n if (data instanceof Date) {\n return new Date(data) as any;\n }\n\n const isFileListInstance =\n typeof FileList !== 'undefined' && data instanceof FileList;\n\n if (isWeb && (data instanceof Blob || isFileListInstance)) {\n return data;\n }\n\n const isArray = Array.isArray(data);\n\n if (!isArray && !(isObject(data) && isPlainObject(data))) {\n return data;\n }\n\n const copy = isArray ? [] : Object.create(Object.getPrototypeOf(data));\n\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n\n return copy;\n}\n","export default <TValue>(value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","export default <T>(value: T) => (Array.isArray(value) ? value : [value]);\n","import crypto from 'crypto';\n\nexport default (): string => {\n if (\n typeof window !== 'undefined' &&\n typeof window.crypto.randomUUID === 'function'\n ) {\n return window.crypto.randomUUID();\n }\n return crypto.randomBytes(16).toString('hex');\n};\n","import uuid from './uuid';\n\nexport default (id?: string) => id || `form-${uuid()}`;\n","import type { Noop } from '../types';\n\nexport type Observer<T> = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject<T> = {\n readonly observers: Observer<T>[];\n subscribe: (value: Observer<T>) => Subscription;\n unsubscribe: Noop;\n} & Observer<T>;\n\nexport default <T>(): Subject<T> => {\n let _observers: Observer<T>[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer<T>): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n","import type { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isDateObject from './isDateObject';\nimport isObject from './isObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(\n object1: any,\n object2: any,\n _internal_visited = new WeakSet(),\n) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return Object.is(object1, object2);\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return Object.is(object1.getTime(), object2.getTime());\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n if (_internal_visited.has(object1) || _internal_visited.has(object2)) {\n return true;\n }\n _internal_visited.add(object1);\n _internal_visited.add(object2);\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2, _internal_visited)\n : !Object.is(val1, val2)\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import isObject from './isObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepMerge<\n T extends Record<keyof T, any>,\n U extends Record<keyof U, any>,\n>(target: T, source: U): T & U {\n if (isPrimitive(target) || isPrimitive(source)) {\n return source;\n }\n\n for (const key in source) {\n const targetValue = target[key];\n const sourceValue = source[key];\n\n try {\n target[key] =\n (isObject(targetValue) && isObject(sourceValue)) ||\n (Array.isArray(targetValue) && Array.isArray(sourceValue))\n ? deepMerge(targetValue, sourceValue)\n : sourceValue;\n } catch {}\n }\n\n return target;\n}\n","import isObject from './isObject';\n\nexport default function extractFormValues<\n T extends object,\n K extends Record<string, unknown>,\n>(fieldsState: T, formValues: K) {\n const values: Record<string, unknown> = {};\n\n for (const key in fieldsState) {\n if (fieldsState.hasOwnProperty(key)) {\n const fieldState = fieldsState[key];\n const fieldValue = formValues[key];\n\n if (fieldState && isObject(fieldState) && fieldValue) {\n const nestedFieldsState = extractFormValues(\n fieldState,\n fieldValue as K,\n );\n\n if (isObject(nestedFieldsState)) {\n values[key] = nestedFieldsState;\n }\n } else if (fieldsState[key]) {\n values[key] = fieldValue;\n }\n }\n }\n\n return values;\n}\n","export default (value: string) => /^\\w*$/.test(value);\n","export default (val: unknown): val is undefined => val === undefined;\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import isKey from './isKey';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nexport default <T>(\n object: T,\n path?: string | null,\n defaultValue?: unknown,\n): any => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n\n const result = (isKey(path) ? [path] : stringToPath(path)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof T & object],\n object,\n );\n\n return isUndefined(result) || result === object\n ? isUndefined(object[path as keyof T])\n ? defaultValue\n : object[path as keyof T]\n : result;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","import type { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import isWeb from './isWeb';\n\nexport default (value: unknown): value is HTMLElement => {\n if (!isWeb) {\n return false;\n }\n\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n return (\n value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n );\n};\n","import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","import type { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","export default (value: unknown): value is string => typeof value === 'string';\n","import type { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import type { FieldPath, FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default (\n object: FieldValues,\n path: FieldPath<FieldValues>,\n value?: unknown,\n) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n object[key] = newValue;\n object = object[key];\n }\n};\n","export default (id: string) => {\n try {\n document?.getElementById(id)?.dispatchEvent(\n new Event('submit', {\n bubbles: true,\n cancelable: true,\n }),\n );\n } catch {\n // noop\n }\n};\n","import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string | (string | number)[]) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n const index = paths.length - 1;\n const key = paths[index];\n\n if (childObject) {\n delete childObject[key];\n }\n\n if (\n index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))\n ) {\n unset(object, paths.slice(0, -1));\n }\n\n return object;\n}\n","import type { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default <T>(\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial<T> | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName),\n get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","import isFunction from './isFunction';\n\nexport default <T>(data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction isTraversable(value: any): boolean {\n return Array.isArray(value) || (isObject(value) && !objectHasFunction(value));\n}\n\nfunction markFieldsDirty<T>(data: T, fields: Record<string, any> = {}) {\n for (const key in data) {\n const value = data[key];\n\n if (isTraversable(value)) {\n fields[key] = Array.isArray(value) ? [] : {};\n markFieldsDirty(value, fields[key]);\n } else if (!isUndefined(value)) {\n fields[key] = true;\n }\n }\n\n return fields;\n}\n\nexport default function getDirtyFields<T>(\n data: T,\n formValues: T,\n dirtyFieldsFromValues?: Record<\n Extract<keyof T, string>,\n ReturnType<typeof markFieldsDirty> | boolean\n >,\n) {\n if (!dirtyFieldsFromValues) {\n dirtyFieldsFromValues = markFieldsDirty(formValues);\n }\n\n for (const key in data) {\n const value = data[key];\n\n if (isTraversable(value)) {\n if (isUndefined(formValues) || isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = markFieldsDirty(\n value,\n Array.isArray(value) ? [] : {},\n );\n } else {\n getDirtyFields(\n value,\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n const formValue = formValues[key];\n dirtyFieldsFromValues[key] = !deepEqual(value, formValue);\n }\n }\n\n return dirtyFieldsFromValues;\n}\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","import type { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default <T extends NativeFieldValue>(\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import type { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n","import type {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default <TFieldValues extends FieldValues>(\n fieldsNames: Set<InternalFieldName> | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record<InternalFieldName, Field['_f']> = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName<TFieldValues>[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import type {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default <T extends ValidationValue>(\n rule?: ValidationRule<T> | ValidationValueMessage<T>,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { VALIDATION_MODE } from '../constants';\nimport type { Mode, ValidationModeFlags } from '../types';\n\nexport default (mode?: Mode): ValidationModeFlags => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import type { Field, Validate } from '../types';\nimport isFunction from '../utils/isFunction';\nimport isObject from '../utils/isObject';\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\n\nexport default (fieldReference: Field['_f']) =>\n !!fieldReference &&\n !!fieldReference.validate &&\n !!(\n (isFunction(fieldReference.validate) &&\n fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n (isObject(fieldReference.validate) &&\n Object.values(fieldReference.validate).find(\n (validateFunction: Validate<unknown, unknown>) =>\n validateFunction.constructor.name === ASYNC_FUNCTION,\n ))\n );\n","import type { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","export default (name: string) =>\n name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n","import type { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set<InternalFieldName>, name: InternalFieldName) =>\n names.has(getNodeParentName(name));\n","import type { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n","import type { FieldRefs, InternalFieldName, Ref } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst iterateFieldsByAction = (\n fields: FieldRefs,\n action: (ref: Ref, name: string) => 1 | undefined | void,\n fieldsNames?: Set<InternalFieldName> | InternalFieldName[] | 0,\n abortEarly?: boolean,\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n return true;\n } else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n return true;\n } else {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n } else if (isObject(currentField)) {\n if (iterateFieldsByAction(currentField as FieldRefs, action)) {\n break;\n }\n }\n }\n }\n return;\n};\nexport default iterateFieldsByAction;\n","import type { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup<T extends FieldValues = FieldValues>(\n errors: FieldErrors<T>,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n if (foundError && foundError.root && foundError.root.type) {\n return {\n name: `${fieldName}.root`,\n error: foundError.root,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","import { VALIDATION_MODE } from '../constants';\nimport type {\n FieldValues,\n FormState,\n InternalFieldName,\n ReadFormState,\n} from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default <T extends FieldValues, K extends ReadFormState>(\n formStateData: Partial<FormState<T>> & {\n name?: InternalFieldName;\n values?: T;\n },\n _proxyFormState: K,\n updateFormState: (formState: Partial<FormState<T>>) => void,\n isRoot?: boolean,\n) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","import convertToArrayPayload from '../utils/convertToArrayPayload';\n\nexport default <T extends string | readonly string[] | undefined>(\n name?: T,\n signalName?: string,\n exact?: boolean,\n) =>\n !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some(\n (currentName) =>\n currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)),\n );\n","import type { ValidationModeFlags } from '../types';\n\n/**\n * Subset of ValidationModeFlags used for revalidation mode checking\n */\ntype ReValidateModeFlags = Pick<ValidationModeFlags, 'isOnBlur' | 'isOnChange'>;\n\nexport default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: ReValidateModeFlags,\n mode: Partial<ValidationModeFlags>,\n /**\n * Need to keep this order of parameters for backward compatibility\n */\n isFocusEvent: boolean,\n /**\n * Optional field-level validation mode that overrides form-level mode.\n * When provided, this field's mode takes precedence over the form's mode.\n * Partial because only the relevant flags (e.g., isOnChange, isOnBlur) need to be checked.\n */\n fieldMode?: Partial<ValidationModeFlags>,\n /**\n * Optional field-level revalidation mode that overrides form-level reValidateMode.\n * When provided, this field's reValidateMode takes precedence after form submission.\n * Only includes isOnBlur and isOnChange as these are the only valid revalidation modes.\n */\n fieldReValidateMode?: ReValidateModeFlags,\n) => {\n // Use field-level modes if provided, otherwise fallback to form-level modes\n // This allows individual fields to have different validation timing than the form\n const effectiveMode = fieldMode || mode;\n const effectiveReValidateMode = fieldReValidateMode || reValidateMode;\n\n // Focus events should always skip validation\n if (isFocusEvent) {\n return true;\n }\n\n if (effectiveMode.isOnAll) {\n return false;\n } else if (!isSubmitted && effectiveMode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (\n isSubmitted ? effectiveReValidateMode.isOnBlur : effectiveMode.isOnBlur\n ) {\n return !isBlurEvent;\n } else if (\n isSubmitted ? effectiveReValidateMode.isOnChange : effectiveMode.isOnChange\n ) {\n return isBlurEvent;\n }\n return true;\n};\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default <T>(ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n","import type {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default <T extends FieldValues = FieldValues>(\n errors: FieldErrors<T>,\n error: Partial<Record<string, FieldError>>,\n name: InternalFieldName,\n): FieldErrors<T> => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n","import type { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isString from '../utils/isString';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isString(result) ||\n (Array.isArray(result) && result.every(isString)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isString(result) ? result : '',\n ref,\n };\n }\n}\n","import type { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport type {\n Field,\n FieldError,\n FieldValues,\n InternalFieldErrors,\n InternalNameSet,\n MaxType,\n Message,\n MinType,\n NativeFieldValue,\n} from '../types';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async <T extends FieldValues>(\n field: Field,\n skippedFieldNames: InternalNameSet,\n formValues: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise<InternalFieldErrors> => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n } = field._f;\n const inputValue: NativeFieldValue = get(formValues, name);\n if (!mount || skippedFieldNames.has(name)) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType: MaxType = INPUT_VALIDATION_RULES.maxLength,\n minType: MinType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isString(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue, formValues),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n","import { EVENTS, VALIDATION_MODE } from '../constants';\nimport type {\n BatchFieldArrayUpdate,\n ChangeHandler,\n Control,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormMetadata,\n FormState,\n FromSubscribe,\n GetIsDirty,\n GetValuesConfig,\n InternalFieldName,\n Names,\n Path,\n ReadFormState,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormSubscribe,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createId from '../utils/createId';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport deepMerge from '../utils/deepMerge';\nimport extractFormValues from '../utils/extractFormValues';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport submitForm from '../utils/submit';\nimport unset from '../utils/unset';\n\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport getValidationModes from './getValidationModes';\nimport hasPromiseValidation from './hasPromiseValidation';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport iterateFieldsByAction from './iterateFieldsByAction';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport shouldRenderFormState from './shouldRenderFormState';\nimport shouldSubscribeByName from './shouldSubscribeByName';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n shouldSkipReadOnlyValidation: false,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n TMetadata extends FormMetadata = any,\n>(\n props: UseFormProps<\n TFieldValues,\n TContext,\n TTransformedValues,\n TMetadata\n > = {},\n): Omit<\n UseFormReturn<TFieldValues, TContext, TTransformedValues, TMetadata>,\n 'formState'\n> & {\n formControl: Omit<\n UseFormReturn<TFieldValues, TContext, TTransformedValues, TMetadata>,\n 'formState'\n >;\n} {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n\n let _internalLoading =\n _options.isLoading || isFunction(_options.defaultValues);\n let _formState: FormState<TFieldValues, TMetadata> = {\n submitCount: 0,\n isDirty: false,\n isDirtySinceSubmit: false,\n hasBeenSubmitted: false,\n isReady: false,\n isLoading: _internalLoading,\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n focusedField: undefined,\n validatingFields: {},\n errors: _options.errors || {},\n disabled: Array.isArray(_options.disabled)\n ? false\n : _options.disabled || false,\n metadata: _options.defaultMetadata || ({} as TMetadata),\n };\n\n let _fields: FieldRefs = {};\n let _defaultValues =\n isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? ({} as TFieldValues)\n : (cloneObject(_defaultValues) as TFieldValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n keepIsValid: false,\n };\n let _names: Names = {\n mount: new Set(),\n disabled: new Set(),\n readonly: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback: DelayCallback | null;\n let timer = 0;\n const defaultProxyFormState: ReadFormState = {\n isDirty: false,\n isDirtySinceSubmit: false,\n hasBeenSubmitted: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n focusedField: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _proxyFormState: ReadFormState = {\n ...defaultProxyFormState,\n };\n let _proxySubscribeFormState = {\n ..._proxyFormState,\n };\n const _subjects: Subjects<TFieldValues> = {\n array: createSubject(),\n state: createSubject(),\n };\n\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const id = createId(props.id);\n\n // Track if form was ever submitted (persists through resets)\n let _hasBeenSubmitted = false;\n\n const debounce =\n <T extends Function>(callback: T) =>\n (wait: number) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n\n const _setValid = async (shouldUpdateValid?: boolean) => {\n if (_state.keepIsValid) {\n return;\n }\n if (\n (Array.isArray(_options.disabled) || !_options.disabled) &&\n (_proxyFormState.isValid ||\n _proxySubscribeFormState.isValid ||\n shouldUpdateValid)\n ) {\n let isValid: boolean;\n if (_options.resolver) {\n isValid = isEmptyObject((await _runSchema()).errors);\n _updateIsValidating();\n } else {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateIsValidating = (names?: string[], isValidating?: boolean) => {\n if (\n !_options.disabled &&\n (_proxyFormState.isValidating ||\n _proxyFormState.validatingFields ||\n _proxySubscribeFormState.isValidating ||\n _proxySubscribeFormState.validatingFields)\n ) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n\n const _setFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method && !_options.disabled) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n (_proxyFormState.touchedFields ||\n _proxySubscribeFormState.touchedFields) &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields || _proxySubscribeFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const _setErrors = (errors: FieldErrors<TFieldValues>) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _state.mount && !_state.action && _setValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n isFocusEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick<\n FormState<TFieldValues>,\n | 'dirtyFields'\n | 'isDirty'\n | 'touchedFields'\n | 'focusedField'\n | 'isDirtySinceSubmit'\n >\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial<FormState<TFieldValues>> & { name: string } = {\n name,\n };\n\n if (!_options.disabled) {\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty || _proxySubscribeFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n const isCurrentFieldPristine = deepEqual(\n get(_defaultValues, name),\n fieldValue,\n );\n\n isPreviousDirty = !!get(_formState.dirtyFields, name);\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.dirtyFields ||\n _proxySubscribeFormState.dirtyFields) &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n\n // Set isDirtySinceSubmit to true if form was ever submitted and a field value is being changed\n // For change events (not blur/focus), always set if form was ever submitted\n // shouldDirty is true for onChange events, false for blur\n if (\n (_formState.isSubmitted || _hasBeenSubmitted) &&\n !_formState.isDirtySinceSubmit &&\n !isBlurEvent &&\n !isFocusEvent &&\n shouldDirty\n ) {\n _formState.isDirtySinceSubmit = output.isDirtySinceSubmit = true;\n shouldUpdateField =\n shouldUpdateField ||\n !!(\n _proxyFormState.isDirtySinceSubmit ||\n _proxySubscribeFormState.isDirtySinceSubmit\n );\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.touchedFields ||\n _proxySubscribeFormState.touchedFields) &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n // Handle focus state\n if (isFocusEvent || isBlurEvent) {\n const wasPreviouslyFocused = _formState.focusedField === name;\n const shouldBeFocused = isFocusEvent && !isBlurEvent;\n\n if (wasPreviouslyFocused !== shouldBeFocused) {\n if (shouldBeFocused) {\n _formState.focusedField = name as FieldPath<TFieldValues>;\n } else {\n _formState.focusedField = undefined;\n }\n output.focusedField = _formState.focusedField;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.focusedField ||\n _proxySubscribeFormState.focusedField) &&\n wasPreviouslyFocused !== shouldBeFocused);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean<TFieldValues>;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean<TFieldValues>;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n (_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (_options.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(_options.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n };\n\n const _runSchema = async (name?: InternalFieldName[]) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n return result;\n };\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _runSchema(names);\n _updateIsValidating(names);\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const executeBuiltInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context: {\n valid: boolean;\n } = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field as Field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction =\n field._f && hasPromiseValidation((field as Field)._f);\n\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([_f.name], true);\n }\n\n // Combine disabled and readonly field names for validation skipping\n const skipValidationFields = new Set([\n ..._names.disabled,\n ..._names.readonly,\n ]);\n\n const fieldError = await validateField(\n field as Field,\n skipValidationFields,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation && !shouldOnlyCheckValid,\n isFieldArrayRoot,\n );\n\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([_f.name]);\n }\n\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid || props.shouldUseNativeValidation) {\n break;\n }\n }\n\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath<TFieldValues>);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) =>\n !_options.disabled &&\n (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n\n const _getWatch: WatchInternal<TFieldValues> = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n },\n isGlobal,\n defaultValue,\n );\n\n const _getFieldArray = <TFieldArrayValues>(\n name: InternalFieldName,\n ): Partial<TFieldArrayValues>[] =>\n compact(\n get(\n _state.mount ? _formValues : _defaultValues,\n name,\n _options.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue<TFieldValues>,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.forEach((checkboxRef) => {\n if (!checkboxRef.defaultChecked || !checkboxRef.disabled) {\n if (Array.isArray(fieldValue)) {\n checkboxRef.checked = !!fieldValue.find(\n (data: string) => data === checkboxRef.value,\n );\n } else {\n checkboxRef.checked =\n fieldValue === checkboxRef.value || !!fieldValue;\n }\n }\n });\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.state.next({\n name,\n values: cloneObject(_formValues),\n });\n }\n }\n }\n }\n\n const isSubmittedAndDirty =\n (_formState.isSubmitted || _hasBeenSubmitted) &&\n !deepEqual(get(_defaultValues, name), fieldValue);\n\n // If the form was submitted, track value changes for isDirtySinceSubmit\n // only when the value actually differs from the default value,\n // even if shouldDirty is not explicitly set\n const shouldTrackChange =\n options.shouldDirty || options.shouldTouch || isSubmittedAndDirty;\n\n shouldTrackChange &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n false, // isFocusEvent - not applicable for setValue\n options.shouldDirty || isSubmittedAndDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path<TFieldValues>);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue<TFieldValues>,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n if (!value.hasOwnProperty(fieldKey)) {\n return;\n }\n const fieldValue = value[fieldKey];\n const fieldName = name + '.' + fieldKey;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue<TFieldValues> = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: cloneObject(_formValues),\n });\n\n if (\n (_proxyFormState.isDirty ||\n _proxyFormState.dirtyFields ||\n _proxySubscribeFormState.isDirty ||\n _proxySubscribeFormState.dirtyFields ||\n _proxyFormState.isDirtySinceSubmit ||\n _proxySubscribeFormState.isDirtySinceSubmit) &&\n options.shouldDirty\n ) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n ...((_formState.isSubmitted || _hasBeenSubmitted) &&\n !_formState.isDirtySinceSubmit\n ? { isDirtySinceSubmit: true }\n : {}),\n });\n } else if (\n (_formState.isSubmitted || _hasBeenSubmitted) &&\n !_formState.isDirtySinceSubmit\n ) {\n _subjects.state.next({\n name,\n isDirtySinceSubmit: true,\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n if (isWatched(name, _names)) {\n _subjects.state.next({\n ..._formState,\n name,\n values: cloneObject(_formValues),\n });\n } else {\n _subjects.state.next({\n name: _state.mount ? name : undefined,\n values: cloneObject(_formValues),\n });\n }\n\n // Trigger validation when shouldValidate is true\n // This ensures validation happens for all cases including:\n // - Field arrays\n // - Empty arrays\n // - Nested fields with array values\n if (options.shouldValidate) {\n trigger(name as Path<TFieldValues>);\n }\n };\n\n const onChange: ChangeHandler = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name: string = target.name;\n let isFieldValueUpdated = true;\n const field: Field = get(_fields, name);\n const _updateIsFieldValueUpdated = (fieldValue: unknown) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(\n _options.reValidateMode,\n );\n\n // Extract field-level validation modes if they exist\n // Field-level modes take precedence over form-level modes, allowing\n // individual fields to override when they validate (mode) and when they\n // revalidate after form submission (reValidateMode)\n const fieldMode = field?._f.mode\n ? getValidationModes(field._f.mode)\n : undefined;\n const fieldReValidateMode = field?._f.reValidateMode\n ? getValidationModes(field._f.reValidateMode)\n : undefined;\n\n if (field) {\n // Check if field is disabled and should not process events\n const isFieldDisabled = isBoolean(field._f.disabled)\n ? field._f.disabled\n : isBoolean(_options.disabled)\n ? _options.disabled\n : Array.isArray(_options.disabled)\n ? new Set(_options.disabled).has(name as FieldPath<TFieldValues>)\n : false;\n\n if (isFieldDisabled) {\n // Restore the original value if the field is disabled\n const originalValue = get(_formValues, name);\n if (target.value !== originalValue) {\n target.value = originalValue;\n }\n return;\n }\n\n // Check if field is readonly and should skip validation (only when flag is enabled)\n if (_options.shouldSkipReadOnlyValidation && target && target.readOnly) {\n // Add to readonly fields set for validation skipping\n _names.readonly.add(name);\n\n // For readonly fields, we still want to update the form values\n // but skip validation (similar to disabled fields behavior)\n const fieldValue = target.type\n ? getFieldValue(field._f)\n : getEventValue(event);\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const isFocusEvent =\n event.type === EVENTS.FOCUS || event.type === EVENTS.FOCUS_IN;\n const watched = isWatched(name, _names, isBlurEvent || isFocusEvent);\n\n // Update form values but skip validation and error handling\n set(_formValues, name, fieldValue);\n\n // Update touch and dirty state\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n isFocusEvent,\n !isBlurEvent, // shouldDirty - true for onChange events, false for blur\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.state.next({\n name,\n type: event.type,\n values: cloneObject(_formValues),\n });\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n } else if (_options.shouldSkipReadOnlyValidation) {\n // Remove from readonly fields set if not readonly anymore (only when flag is enabled)\n _names.readonly.delete(name);\n }\n\n let error;\n let isValid;\n const fieldValue = target.type\n ? getFieldValue(field._f)\n : getEventValue(event);\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const isFocusEvent =\n event.type === EVENTS.FOCUS || event.type === EVENTS.FOCUS_IN;\n\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n isFocusEvent,\n fieldMode,\n fieldReValidateMode,\n );\n const watched = isWatched(name, _names, isBlurEvent || isFocusEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n if (!target || !target.readOnly) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n isFocusEvent,\n !isBlurEvent, // shouldDirty - true for onChange events, false for blur\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.state.next({\n name,\n type: event.type,\n values: cloneObject(_formValues),\n });\n\n if (shouldSkipValidation) {\n if (_proxyFormState.isValid || _proxySubscribeFormState.isValid) {\n if (_options.mode === 'onBlur') {\n if (isBlurEvent) {\n _setValid();\n }\n } else if (!isBlurEvent) {\n _setValid();\n }\n }\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n\n if (_options.resolver) {\n const { errors } = await _runSchema([name]);\n _updateIsValidating([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n }\n } else {\n _updateIsValidating([name], true);\n\n // Combine disabled and readonly field names for validation skipping\n const skipValidationFields = new Set([\n ..._names.disabled,\n ..._names.readonly,\n ]);\n\n error = (\n await validateField(\n field,\n skipValidationFields,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n false, // isFieldArray\n )\n )[name];\n _updateIsValidating([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n } else if (\n _proxyFormState.isValid ||\n _proxySubscribeFormState.isValid\n ) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n\n if (isFieldValueUpdated) {\n field._f.deps &&\n (!Array.isArray(field._f.deps) || field._f.deps.length > 0) &&\n trigger(\n field._f.deps as\n | FieldPath<TFieldValues>\n | FieldPath<TFieldValues>[],\n );\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n\n const _focusInput = (ref: Ref, key: string) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n\n const trigger: UseFormTrigger<TFieldValues> = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(\n field && field._f ? { [fieldName]: field } : field,\n );\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _setValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n ((_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&\n isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(\n _fields,\n _focusInput,\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues<TFieldValues> = (\n fieldNames?:\n | FieldPath<TFieldValues>\n | ReadonlyArray<FieldPath<TFieldValues>>,\n config?: GetValuesConfig,\n ) => {\n let values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n\n if (config) {\n values = extractFormValues(\n config.dirtyFields ? _formState.dirtyFields : _formState.touchedFields,\n values,\n );\n }\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getFieldState: UseFormGetFieldState<TFieldValues> = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n isFocused: (formState || _formState).focusedField === name,\n });\n\n const clearErrors: UseFormClearErrors<TFieldValues> = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n );\n\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n\n const setError: UseFormSetError<TFieldValues> = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch<TFieldValues> = (\n name?:\n | FieldPath<TFieldValues>\n | ReadonlyArray<FieldPath<TFieldValues>>\n | WatchObserver<TFieldValues>,\n defaultValue?: DeepPartial<TFieldValues>,\n ) =>\n isFunction(name)\n ? _subjects.state.subscribe({\n next: (payload) =>\n 'values' in payload &&\n name(\n _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath<TFieldValues>;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n\n const _subscribe: FromSubscribe<TFieldValues> = (props) =>\n _subjects.state.subscribe({\n next: (\n formState: Partial<FormState<TFieldValues>> & {\n name?: InternalFieldName;\n values?: TFieldValues | undefined;\n type?: EventType;\n },\n ) => {\n if (\n shouldSubscribeByName(props.name, formState.name, props.exact) &&\n shouldRenderFormState(\n formState,\n (props.formState as ReadFormState) || _proxyFormState,\n _setFormState,\n props.reRenderRoot,\n )\n ) {\n props.callback({\n values: { ..._formValues } as TFieldValues,\n ..._formState,\n ...formState,\n defaultValues:\n _defaultValues as FormState<TFieldValues>['defaultValues'],\n });\n }\n },\n }).unsubscribe;\n\n const subscribe: UseFormSubscribe<TFieldValues> = (props) => {\n _state.mount = true;\n _proxySubscribeFormState = {\n ..._proxySubscribeFormState,\n ...props.formState,\n };\n return _subscribe({\n ...props,\n formState: {\n ...defaultProxyFormState,\n ...props.formState,\n },\n });\n };\n\n const unregister: UseFormUnregister<TFieldValues> = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n\n _subjects.state.next({\n values: cloneObject(_formValues),\n });\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _setValid();\n };\n\n const _setDisabledField: Control<TFieldValues>['_setDisabledField'] = ({\n disabled,\n name,\n }) => {\n if (\n (isBoolean(disabled) && _state.mount) ||\n !!disabled ||\n _names.disabled.has(name)\n ) {\n disabled ? _names.disabled.add(name) : _names.disabled.delete(name);\n }\n };\n\n const register: UseFormRegister<TFieldValues> = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined =\n isBoolean(options.disabled) ||\n isBoolean(_options.disabled) ||\n Array.isArray(_options.disabled);\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n if (field) {\n _setDisabledField({\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : Array.isArray(_options.disabled)\n ? new Set(_options.disabled).has(name)\n : _options.disabled,\n name,\n });\n } else {\n updateValidAndValue(name, true, options.value);\n }\n\n return {\n ...(disabledIsDefined\n ? {\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : Array.isArray(_options.disabled)\n ? new Set(_options.disabled).has(name)\n : !!_options.disabled,\n }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue<number>(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n onFocus: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n\n // Check if field is readonly and should skip validation (only when flag is enabled)\n if (\n _options.shouldSkipReadOnlyValidation &&\n fieldRef &&\n 'readOnly' in fieldRef &&\n fieldRef.readOnly\n ) {\n _names.readonly.add(name);\n }\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n\n const _disableForm = (disabled?: boolean | string[]) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(\n _fields,\n (ref, name) => {\n const currentField: Field = get(_fields, name);\n if (currentField) {\n ref.disabled = isBoolean(currentField._f.disabled)\n ? currentField._f.disabled\n : disabled;\n\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = isBoolean(currentField._f.disabled)\n ? currentField._f.disabled\n : disabled;\n });\n }\n }\n },\n 0,\n false,\n );\n } else if (Array.isArray(disabled)) {\n // For array mode, we don't set the global disabled state\n // but we update individual fields based on their inclusion in the array\n iterateFieldsByAction(\n _fields,\n (ref, name) => {\n const currentField: Field = get(_fields, name);\n if (currentField) {\n // Field-level disabled takes precedence over array disabled\n const isFieldDisabled = isBoolean(currentField._f.disabled)\n ? currentField._f.disabled\n : new Set(disabled).has(name);\n ref.disabled = isFieldDisabled;\n\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = isFieldDisabled;\n });\n }\n }\n },\n 0,\n false,\n );\n }\n };\n\n const handleSubmit: UseFormHandleSubmit<TFieldValues, TTransformedValues> =\n (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n (e as React.BaseSyntheticEvent).persist &&\n (e as React.BaseSyntheticEvent).persist();\n }\n let fieldValues:\n | TFieldValues\n | TTransformedValues\n | Record<string, never> = cloneObject(_formValues);\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n if (_options.resolver) {\n const { errors, values } = await _runSchema();\n _updateIsValidating();\n _formState.errors = errors;\n fieldValues = cloneObject(values);\n } else {\n await executeBuiltInValidation(_fields);\n }\n\n if (_names.disabled.size) {\n for (const name of _names.disabled) {\n unset(fieldValues, name);\n }\n }\n\n unset(_formState.errors, 'root');\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues as TTransformedValues, e);\n } catch (error) {\n onValidError = error;\n }\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n\n _hasBeenSubmitted = true; // Mark that form was submitted at least once\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n isDirtySinceSubmit: false,\n hasBeenSubmitted: _hasBeenSubmitted,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n\n const resetField: UseFormResetField<TFieldValues> = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n } else {\n setValue(\n name,\n options.defaultValue as Parameters<typeof setValue<typeof name>>[1],\n );\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _setValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const _reset: UseFormReset<TFieldValues> = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...Object.keys(getDirtyFields(_defaultValues, _formValues)),\n ]);\n for (const fieldName of Array.from(fieldsToCheck)) {\n const isDirty = get(_formState.dirtyFields, fieldName);\n const existingValue = get(_formValues, fieldName);\n const newValue = get(values, fieldName);\n\n if (isDirty && !isUndefined(existingValue)) {\n set(values, fieldName, existingValue);\n } else if (!isDirty && !isUndefined(newValue)) {\n setValue(fieldName as FieldPath<TFieldValues>, newValue);\n }\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n HTMLFormElement.prototype.reset.call(form);\n break;\n }\n }\n }\n }\n }\n\n if (keepStateOptions.keepFieldsRef) {\n for (const fieldName of _names.mount) {\n setValue(\n fieldName as FieldPath<TFieldValues>,\n get(values, fieldName),\n );\n }\n } else {\n _fields = {};\n }\n }\n\n _formValues = _options.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? (cloneObject(_defaultValues) as TFieldValues)\n : ({} as TFieldValues)\n : (cloneObject(values) as TFieldValues);\n\n _subjects.array.next({\n values: { ...values },\n });\n\n _subjects.state.next({\n values: { ...values } as TFieldValues,\n });\n }\n\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n disabled: new Set(),\n readonly: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues ||\n (!_options.shouldUnregister && !isEmptyObject(values));\n\n _state.watch = !!_options.shouldUnregister;\n _state.keepIsValid = !!keepStateOptions.keepIsValid;\n _state.action = false;\n\n // Clear errors synchronously to prevent validation errors on subsequent submissions\n // This fixes the issue where form.reset() causes validation errors on subsequent\n // submissions in Next.js 16 with Server Actions\n if (!keepStateOptions.keepErrors) {\n _formState.errors = {};\n }\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isDirtySinceSubmit: false,\n hasBeenSubmitted: _hasBeenSubmitted, // Persist the hasBeenSubmitted flag\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n focusedField: undefined, // Always reset focused field on form reset\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n defaultValues: _defaultValues as FormState<TFieldValues>['defaultValues'],\n });\n };\n\n const reset: UseFormReset<TFieldValues> = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? (formValues as Function)(_formValues as TFieldValues)\n : formValues,\n { ..._options.resetOptions, ...keepStateOptions },\n );\n\n const setFocus: UseFormSetFocus<TFieldValues> = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n // Use setTimeout to ensure focus happens after any pending state updates\n // This fixes the issue where setFocus doesn't work immediately after setError\n setTimeout(() => {\n fieldRef.focus();\n options.shouldSelect &&\n isFunction(fieldRef.select) &&\n fieldRef.select();\n });\n }\n }\n };\n\n const _setFormState = (\n updatedFormState: Partial<FormState<TFieldValues>>,\n ) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n\n const _resetDefaultValues = () =>\n isFunction(_options.defaultValues) &&\n (_options.defaultValues as Function)().then((values: TFieldValues) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n _internalLoading = false;\n });\n\n const submit = () => {\n submitForm(id);\n };\n\n const _updateIsLoading = (isLoading?: boolean) => {\n if (!isUndefined(isLoading)) {\n const _loading = isLoading || _internalLoading;\n if (_formState.isLoading !== _loading) {\n _formState.isLoading = _loading;\n _subjects.state.next({\n isLoading: _loading,\n });\n }\n } else if (!!isLoading !== _formState.isLoading) {\n _formState.isLoading = _internalLoading;\n _subjects.state.next({\n isLoading: _internalLoading,\n });\n }\n };\n\n const _updateReadonlyFieldTracking = () => {\n // Re-evaluate all registered fields and update readonly tracking\n // based on current shouldSkipReadOnlyValidation flag and field readonly state\n Object.keys(_fields).forEach((fieldName) => {\n const field = get(_fields, fieldName);\n\n if (field && field._f) {\n // Get the actual DOM element reference\n const fieldRef = field._f.refs ? field._f.refs[0] : field._f.ref;\n\n if (fieldRef && 'readOnly' in fieldRef) {\n const isFieldReadonly = Boolean(fieldRef.readOnly);\n const shouldTrackAsReadonly =\n _options.shouldSkipReadOnlyValidation && isFieldReadonly;\n\n // Update readonly tracking set\n if (shouldTrackAsReadonly) {\n _names.readonly.add(fieldName);\n } else {\n _names.readonly.delete(fieldName);\n }\n }\n }\n });\n };\n\n const setMetadata = (metadata?: TMetadata) => {\n let _metadata: TMetadata;\n if (!metadata) {\n _metadata = _options.defaultMetadata\n ? cloneObject(_options.defaultMetadata)\n : ({} as TMetadata);\n } else {\n _metadata = metadata;\n }\n _formState.metadata = _metadata;\n _subjects.state.next({\n metadata: _metadata,\n });\n };\n\n const updateMetadata = (metadata: Partial<TMetadata>) => {\n const _metadata = deepMerge(\n _formState.metadata,\n metadata as Record<keyof TMetadata, any>,\n );\n _formState.metadata = _metadata;\n _subjects.state.next({\n metadata: _metadata,\n });\n };\n\n const methods = {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _subscribe,\n _runSchema,\n _updateIsValidating,\n _focusError,\n _getWatch,\n _getDirty,\n _setValid,\n _setFieldArray,\n _setDisabledField,\n _setErrors,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _removeUnmounted,\n _disableForm,\n _updateIsLoading,\n _updateReadonlyFieldTracking,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n subscribe,\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n id,\n submit,\n setMetadata,\n updateMetadata,\n };\n\n return {\n ...methods,\n formControl: methods,\n };\n}\n"],"names":["isCheckBox"],"mappings":";;AAMA,mBAAe,CACb,IAAuB,EACvB,wBAAiC,EACjC,MAA2B,EAC3B,IAAY,EACZ,OAAuB,KAEvB;AACE,MAAE;QACE,GAAG,MAAM,CAAC,IAAI,CAAC;AACf,QAAA,KAAK,EAAE;YACL,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAE,CAAC,KAAK,GAAG,EAAE,CAAC;AACnE,YAAA,CAAC,IAAI,GAAG,OAAO,IAAI,IAAI;AACxB,SAAA;AACF;MACD,EAAE;;ACrBD,MAAM,MAAM,GAAG;AACpB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,SAAS,EAAE,UAAU;AACrB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,QAAQ,EAAE,UAEF;AAEH,MAAM,eAAe,GAAG;AAC7B,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,GAAG,EAAE,KAAK;CACF;AAEH,MAAM,sBAAsB,GAAG;AACpC,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,QAAQ,EAAE,UAAU;CACZ;;ACxBV,mBAAe,CAAC,KAAc,KAAoB,KAAK,YAAY,IAAI;;ACAvE,wBAAe,CAAC,KAAc,KAAgC,KAAK,IAAI,IAAI;;ACGpE,MAAM,YAAY,GAAG,CAAC,KAAc,KACzC,OAAO,KAAK,KAAK,QAAQ;AAE3B,eAAe,CAAmB,KAAc,KAC9C,CAAC,iBAAiB,CAAC,KAAK,CAAC;AACzB,IAAA,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IACrB,YAAY,CAAC,KAAK,CAAC;AACnB,IAAA,CAAC,YAAY,CAAC,KAAK,CAAC;;ACRtB,oBAAe,CAAC,UAAkB,KAAI;IACpC,MAAM,aAAa,GACjB,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC,SAAS;AAE5D,IAAA,QACE,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,cAAc,CAAC,eAAe,CAAC;AAE5E,CAAC;;ACTD,YAAe,OAAO,MAAM,KAAK,WAAW;AAC1C,IAAA,OAAO,MAAM,CAAC,WAAW,KAAK,WAAW;IACzC,OAAO,QAAQ,KAAK,WAAW;;ACEnB,SAAU,WAAW,CAAI,IAAO,EAAA;AAC5C,IAAA,IAAI,IAAI,YAAY,IAAI,EAAE;AACxB,QAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAQ;IAC9B;IAEA,MAAM,kBAAkB,GACtB,OAAO,QAAQ,KAAK,WAAW,IAAI,IAAI,YAAY,QAAQ;IAE7D,IAAI,KAAK,KAAK,IAAI,YAAY,IAAI,IAAI,kBAAkB,CAAC,EAAE;AACzD,QAAA,OAAO,IAAI;IACb;IAEA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAEnC,IAAA,IAAI,CAAC,OAAO,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE;AACxD,QAAA,OAAO,IAAI;IACb;IAEA,MAAM,IAAI,GAAG,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAEtE,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YACnD,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC;IACF;AAEA,IAAA,OAAO,IAAI;AACb;;AC/BA,cAAe,CAAS,KAAe,KACrC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;;ACDnD,4BAAe,CAAI,KAAQ,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;;ACExE,WAAe,MAAa;IAC1B,IACE,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,EAC9C;AACA,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;IACnC;IACA,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,CAAC;;ACRD,eAAe,CAAC,EAAW,KAAK,EAAE,IAAI,CAAA,KAAA,EAAQ,IAAI,EAAE,CAAA,CAAE;;ACctD,oBAAe,MAAoB;IACjC,IAAI,UAAU,GAAkB,EAAE;AAElC,IAAA,MAAM,IAAI,GAAG,CAAC,KAAQ,KAAI;AACxB,QAAA,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;YACjC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACvC;AACF,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG,CAAC,QAAqB,KAAkB;AACxD,QAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;QACzB,OAAO;YACL,WAAW,EAAE,MAAK;AAChB,gBAAA,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC;YACvD,CAAC;SACF;AACH,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;QACvB,UAAU,GAAG,EAAE;AACjB,IAAA,CAAC;IAED,OAAO;AACL,QAAA,IAAI,SAAS,GAAA;AACX,YAAA,OAAO,UAAU;QACnB,CAAC;QACD,IAAI;QACJ,SAAS;QACT,WAAW;KACZ;AACH,CAAC;;ACzCD,kBAAe,CAAC,KAAc,KAC5B,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;;ACFpC,SAAU,SAAS,CAC/B,OAAY,EACZ,OAAY,EACZ,iBAAiB,GAAG,IAAI,OAAO,EAAE,EAAA;IAEjC,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;QAChD,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;IACpC;IAEA,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;AAClD,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IACxD;IAEA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IAElC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AACjC,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACpE,QAAA,OAAO,IAAI;IACb;AACA,IAAA,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;AAC9B,IAAA,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;AAE9B,IAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACvB,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;QAEzB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACxB,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,GAAG,KAAK,KAAK,EAAE;AACjB,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;YAEzB,IACE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC;iBACxC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClC,iBAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;kBACvC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB;kBACxC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAC1B;AACA,gBAAA,OAAO,KAAK;YACd;QACF;IACF;AAEA,IAAA,OAAO,IAAI;AACb;;AClDc,SAAU,SAAS,CAG/B,MAAS,EAAE,MAAS,EAAA;IACpB,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;AAC9C,QAAA,OAAO,MAAM;IACf;AAEA,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACxB,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/B,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC;AAE/B,QAAA,IAAI;YACF,MAAM,CAAC,GAAG,CAAC;gBACT,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC;AAC/C,qBAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AACvD,sBAAE,SAAS,CAAC,WAAW,EAAE,WAAW;sBAClC,WAAW;QACnB;QAAE,OAAA,EAAA,EAAM,EAAC;IACX;AAEA,IAAA,OAAO,MAAM;AACf;;ACvBc,SAAU,iBAAiB,CAGvC,WAAc,EAAE,UAAa,EAAA;IAC7B,MAAM,MAAM,GAA4B,EAAE;AAE1C,IAAA,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;AAC7B,QAAA,IAAI,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACnC,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC;AACnC,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC;YAElC,IAAI,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,EAAE;gBACpD,MAAM,iBAAiB,GAAG,iBAAiB,CACzC,UAAU,EACV,UAAe,CAChB;AAED,gBAAA,IAAI,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC/B,oBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,iBAAiB;gBACjC;YACF;AAAO,iBAAA,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;AAC3B,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU;YAC1B;QACF;IACF;AAEA,IAAA,OAAO,MAAM;AACf;;AC7BA,YAAe,CAAC,KAAa,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;ACArD,kBAAe,CAAC,GAAY,KAAuB,GAAG,KAAK,SAAS;;ACEpE,mBAAe,CAAC,KAAa,KAC3B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;;ACGxD,UAAe,CACb,MAAS,EACT,IAAoB,EACpB,YAAsB,KACf;IACP,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC9B,QAAA,OAAO,YAAY;IACrB;IAEA,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,CAC/D,CAAC,MAAM,EAAE,GAAG,KACV,iBAAiB,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,GAAuB,CAAC,EACtE,MAAM,CACP;AAED,IAAA,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK;AACvC,UAAE,WAAW,CAAC,MAAM,CAAC,IAAe,CAAC;AACnC,cAAE;AACF,cAAE,MAAM,CAAC,IAAe;UACxB,MAAM;AACZ,CAAC;;AC1BD,gBAAe,CAAC,KAAc,KAAuB,OAAO,KAAK,KAAK,SAAS;;ACE/E,sBAAe,CAAC,OAAqB,KACnC,OAAO,CAAC,IAAI,KAAK,UAAU;;ACC7B,oBAAe,CAAC,KAAc,KAC5B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;;ACH/C,kBAAe,CAAC,OAAqB,KACnC,OAAO,CAAC,IAAI,KAAK,MAAM;;ACHzB,iBAAe,CAAC,KAAc,KAC5B,OAAO,KAAK,KAAK,UAAU;;ACC7B,oBAAe,CAAC,KAAc,KAA0B;IACtD,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,MAAM,KAAK,GAAG,KAAK,GAAK,KAAqB,CAAC,aAA0B,GAAG,CAAC;AAC5E,IAAA,QACE,KAAK;AACL,SAAC,KAAK,IAAI,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;AAE9E,CAAC;;ACVD,uBAAe,CAAC,OAAqB,KACnC,OAAO,CAAC,IAAI,KAAK,CAAA,eAAA,CAAiB;;ACDpC,mBAAe,CAAC,OAAqB,KACnC,OAAO,CAAC,IAAI,KAAK,OAAO;;ACE1B,wBAAe,CAAC,GAAiB,KAC/B,YAAY,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC;;ACN3C,eAAe,CAAC,KAAc,KAAsB,OAAO,KAAK,KAAK,QAAQ;;ACI7E,WAAe,CAAC,GAAQ,KAAK,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW;;ACElE,UAAe,CACb,MAAmB,EACnB,IAA4B,EAC5B,KAAe,KACb;AACF,IAAA,IAAI,KAAK,GAAG,EAAE;AACd,IAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC;AAC1D,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;AAC9B,IAAA,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC;AAE5B,IAAA,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;AACvB,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3B,IAAI,QAAQ,GAAG,KAAK;AAEpB,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC;YAC5B,QAAQ;gBACN,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ;AAC1C,sBAAE;sBACA,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;AAC3B,0BAAE;0BACA,EAAE;QACZ;AAEA,QAAA,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,WAAW,EAAE;YACvE;QACF;AAEA,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ;AACtB,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;IACtB;AACF,CAAC;;ACrCD,iBAAe,CAAC,EAAU,KAAI;;AAC5B,IAAA,IAAI;AACF,QAAA,CAAA,EAAA,GAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,cAAc,CAAC,EAAE,CAAC,0CAAE,aAAa,CACzC,IAAI,KAAK,CAAC,QAAQ,EAAE;AAClB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,UAAU,EAAE,IAAI;AACjB,SAAA,CAAC,CACH;IACH;AAAE,IAAA,OAAA,EAAA,EAAM;;IAER;AACF,CAAC;;ACLD,SAAS,OAAO,CAAC,MAAW,EAAE,UAA+B,EAAA;AAC3D,IAAA,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM;IAC7C,IAAI,KAAK,GAAG,CAAC;AAEb,IAAA,OAAO,KAAK,GAAG,MAAM,EAAE;QACrB,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IACtE;AAEA,IAAA,OAAO,MAAM;AACf;AAEA,SAAS,YAAY,CAAC,GAAc,EAAA;AAClC,IAAA,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;AACrB,QAAA,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AACrD,YAAA,OAAO,KAAK;QACd;IACF;AACA,IAAA,OAAO,IAAI;AACb;AAEc,SAAU,KAAK,CAAC,MAAW,EAAE,IAAkC,EAAA;AAC3E,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI;AAC9B,UAAE;AACF,UAAE,KAAK,CAAC,IAAI;cACR,CAAC,IAAI;AACP,cAAE,YAAY,CAAC,IAAI,CAAC;IAExB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;AAExE,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;AAC9B,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;IAExB,IAAI,WAAW,EAAE;AACf,QAAA,OAAO,WAAW,CAAC,GAAG,CAAC;IACzB;IAEA,IACE,KAAK,KAAK,CAAC;SACV,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC;AACnD,aAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAC5D;AACA,QAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnC;AAEA,IAAA,OAAO,MAAM;AACf;;AC/CA,0BAAe,CACb,KAAoC,EACpC,MAAa,EACb,UAAwB,EACxB,QAAkB,EAClB,YAAuC,KACrC;AACF,IAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QACnB,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QACnC,OAAO,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC;IAC7C;AAEA,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,OAAO,KAAK,CAAC,GAAG,CACd,CAAC,SAAS,MACR,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;AACvC,YAAA,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAC3B,CACF;IACH;IAEA,QAAQ,KAAK,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;AAEpC,IAAA,OAAO,UAAU;AACnB,CAAC;;AC1BD,wBAAe,CAAI,IAAO,KAAa;AACrC,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACzB,YAAA,OAAO,IAAI;QACb;IACF;AACA,IAAA,OAAO,KAAK;AACd,CAAC;;ACFD,SAAS,aAAa,CAAC,KAAU,EAAA;AAC/B,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/E;AAEA,SAAS,eAAe,CAAI,IAAO,EAAE,SAA8B,EAAE,EAAA;AACnE,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAEvB,QAAA,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YAC5C,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC;AAAO,aAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AAC9B,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI;QACpB;IACF;AAEA,IAAA,OAAO,MAAM;AACf;AAEc,SAAU,cAAc,CACpC,IAAO,EACP,UAAa,EACb,qBAGC,EAAA;IAED,IAAI,CAAC,qBAAqB,EAAE;AAC1B,QAAA,qBAAqB,GAAG,eAAe,CAAC,UAAU,CAAC;IACrD;AAEA,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAEvB,QAAA,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE;gBACtE,qBAAqB,CAAC,GAAG,CAAC,GAAG,eAAe,CAC1C,KAAK,EACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAC/B;YACH;iBAAO;gBACL,cAAc,CACZ,KAAK,EACL,iBAAiB,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,EACpD,qBAAqB,CAAC,GAAG,CAAC,CAC3B;YACH;QACF;aAAO;AACL,YAAA,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC;YACjC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;QAC3D;IACF;AAEA,IAAA,OAAO,qBAAqB;AAC9B;;ACxDA,oBAAe,CAAC,KAAc,KAC5B,QAAQ,CAAC,KAAK,CAAC,IAAK,KAAe,CAAC;AAClC,MAAE,eAAe,CAAE,KAAe,CAAC,MAAM;AACvC,UAAG,KAAe,CAAC,MAAM,CAAC;AAC1B,UAAG,KAAe,CAAC,MAAM,CAAC;MAC1B,KAAK;;ACHX,MAAM,aAAa,GAAwB;AACzC,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,OAAO,EAAE,KAAK;CACf;AAED,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;AAElD,uBAAe,CAAC,OAA4B,KAAyB;AACnE,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC1B,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,MAAM,GAAG;AACZ,iBAAA,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ;iBAC/D,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC;AAChC,YAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;QACpD;AAEA,QAAA,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvC;AACE,gBAAA,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;AACjE,sBAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK;AACtD,0BAAE;AACF,0BAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI;AAC5C,sBAAE;cACF,aAAa;IACnB;AAEA,IAAA,OAAO,aAAa;AACtB,CAAC;;AC9BD,sBAAe,CACb,KAAQ,EACR,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAe,KAEvD,WAAW,CAAC,KAAK;AACf,MAAE;AACF,MAAE;UACE,KAAK,KAAK;AACV,cAAE;AACF,cAAE;kBACE,CAAC;AACH,kBAAE;AACN,UAAE,WAAW,IAAI,QAAQ,CAAC,KAAK;AAC7B,cAAE,IAAI,IAAI,CAAC,KAAK;AAChB,cAAE;AACA,kBAAE,UAAU,CAAC,KAAK;kBAChB,KAAK;;ACfjB,MAAM,aAAa,GAAqB;AACtC,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,KAAK,EAAE,IAAI;CACZ;AAED,oBAAe,CAAC,OAA4B,KAC1C,KAAK,CAAC,OAAO,CAAC,OAAO;MACjB,OAAO,CAAC,MAAM,CACZ,CAAC,QAAQ,EAAE,MAAM,KACf,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC;AAClC,UAAE;AACE,YAAA,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,MAAM,CAAC,KAAK;AACpB;AACH,UAAE,QAAQ,EACd,aAAa;MAEf,aAAa;;ACXL,SAAU,aAAa,CAAC,EAAe,EAAA;AACnD,IAAA,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG;AAElB,IAAA,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,KAAK;IAClB;AAEA,IAAA,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;QACrB,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK;IACrC;AAEA,IAAA,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE;AACzB,QAAA,OAAO,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC;IAC3D;AAEA,IAAA,IAAIA,eAAU,CAAC,GAAG,CAAC,EAAE;QACnB,OAAO,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK;IACxC;IAEA,OAAO,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/E;;ACpBA,yBAAe,CACb,WAAyD,EACzD,OAAkB,EAClB,YAA2B,EAC3B,yBAA+C,KAC7C;IACF,MAAM,MAAM,GAA2C,EAAE;AAEzD,IAAA,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;QAC9B,MAAM,KAAK,GAAU,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;QAEvC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC;IAEA,OAAO;QACL,YAAY;AACZ,QAAA,KAAK,EAAE,CAAC,GAAG,WAAW,CAA8B;QACpD,MAAM;QACN,yBAAyB;KAC1B;AACH,CAAC;;AC/BD,cAAe,CAAC,KAAc,KAAsB,KAAK,YAAY,MAAM;;ACS3E,mBAAe,CACb,IAAoD,KAEpD,WAAW,CAAC,IAAI;AACd,MAAE;AACF,MAAE,OAAO,CAAC,IAAI;UACV,IAAI,CAAC;AACP,UAAE,QAAQ,CAAC,IAAI;AACb,cAAE,OAAO,CAAC,IAAI,CAAC,KAAK;AAClB,kBAAE,IAAI,CAAC,KAAK,CAAC;kBACX,IAAI,CAAC;cACP,IAAI;;ACjBd,yBAAe,CAAC,IAAW,MAA2B;IACpD,UAAU,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,eAAe,CAAC,QAAQ;AACtD,IAAA,QAAQ,EAAE,IAAI,KAAK,eAAe,CAAC,MAAM;AACzC,IAAA,UAAU,EAAE,IAAI,KAAK,eAAe,CAAC,QAAQ;AAC7C,IAAA,OAAO,EAAE,IAAI,KAAK,eAAe,CAAC,GAAG;AACrC,IAAA,SAAS,EAAE,IAAI,KAAK,eAAe,CAAC,SAAS;AAC9C,CAAA,CAAC;;ACLF,MAAM,cAAc,GAAG,eAAe;AAEtC,2BAAe,CAAC,cAA2B,KACzC,CAAC,CAAC,cAAc;IAChB,CAAC,CAAC,cAAc,CAAC,QAAQ;IACzB,CAAC,EACC,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC;QAClC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc;AAC7D,SAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CACzC,CAAC,gBAA4C,KAC3C,gBAAgB,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc,CACvD,CAAC,CACL;;ACfH,oBAAe,CAAC,OAAoB,KAClC,OAAO,CAAC,KAAK;KACZ,OAAO,CAAC,QAAQ;AACf,QAAA,OAAO,CAAC,GAAG;AACX,QAAA,OAAO,CAAC,GAAG;AACX,QAAA,OAAO,CAAC,SAAS;AACjB,QAAA,OAAO,CAAC,SAAS;AACjB,QAAA,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,QAAQ,CAAC;;ACVrB,wBAAe,CAAC,IAAY,KAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,IAAI;;ACGvD,yBAAe,CAAC,KAA6B,EAAE,IAAuB,KACpE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;;ACHpC,gBAAe,CACb,IAAuB,EACvB,MAAa,EACb,WAAqB,KAErB,CAAC,WAAW;KACX,MAAM,CAAC,QAAQ;AACd,QAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CACpB,CAAC,SAAS,KACR,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;AAC1B,YAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAC9C,CAAC;;ACVN,MAAM,qBAAqB,GAAG,CAC5B,MAAiB,EACjB,MAAwD,EACxD,WAA8D,EAC9D,UAAoB,KAClB;AACF,IAAA,KAAK,MAAM,GAAG,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACpD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;QAE9B,IAAI,KAAK,EAAE;YACT,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK;YAErC,IAAI,EAAE,EAAE;gBACN,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE;AACnE,oBAAA,OAAO,IAAI;gBACb;AAAO,qBAAA,IAAI,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC3D,oBAAA,OAAO,IAAI;gBACb;qBAAO;AACL,oBAAA,IAAI,qBAAqB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;wBAC/C;oBACF;gBACF;YACF;AAAO,iBAAA,IAAI,QAAQ,CAAC,YAAY,CAAC,EAAE;AACjC,gBAAA,IAAI,qBAAqB,CAAC,YAAyB,EAAE,MAAM,CAAC,EAAE;oBAC5D;gBACF;YACF;QACF;IACF;IACA;AACF,CAAC;;AC9Ba,SAAU,iBAAiB,CACvC,MAAsB,EACtB,OAAoB,EACpB,IAAY,EAAA;IAKZ,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AAE/B,IAAA,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;QACxB,OAAO;YACL,KAAK;YACL,IAAI;SACL;IACH;IAEA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAE7B,IAAA,OAAO,KAAK,CAAC,MAAM,EAAE;QACnB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACjC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;QACrC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AAEzC,QAAA,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,SAAS,EAAE;YACxD,OAAO,EAAE,IAAI,EAAE;QACjB;AAEA,QAAA,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE;YACjC,OAAO;AACL,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,KAAK,EAAE,UAAU;aAClB;QACH;AAEA,QAAA,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;YACzD,OAAO;gBACL,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,KAAA,CAAO;gBACzB,KAAK,EAAE,UAAU,CAAC,IAAI;aACvB;QACH;QAEA,KAAK,CAAC,GAAG,EAAE;IACb;IAEA,OAAO;QACL,IAAI;KACL;AACH;;AC3CA,4BAAe,CACb,aAGC,EACD,eAAkB,EAClB,eAA2D,EAC3D,MAAgB,KACd;IACF,eAAe,CAAC,aAAa,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,GAAG,aAAa;AAE5C,IAAA,QACE,aAAa,CAAC,SAAS,CAAC;AACxB,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM;AACpE,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CACzB,CAAC,GAAG,KACF,eAAe,CAAC,GAA0B,CAAC;aAC1C,CAAC,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,CACnC;AAEL,CAAC;;AC5BD,4BAAe,CACb,IAAQ,EACR,UAAmB,EACnB,KAAe,KAEf,CAAC,IAAI;AACL,IAAA,CAAC,UAAU;AACX,IAAA,IAAI,KAAK,UAAU;IACnB,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,CAC9B,CAAC,WAAW,KACV,WAAW;AACX,SAAC;cACG,WAAW,KAAK;AAClB,cAAE,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC;AAClC,gBAAA,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAC1C;;ACVH,qBAAe,CACb,WAAoB,EACpB,SAAkB,EAClB,WAAoB,EACpB,cAAmC,EACnC,IAAkC;AAClC;;AAEG;AACH,YAAqB;AACrB;;;;AAIG;AACH,SAAwC;AACxC;;;;AAIG;AACH,mBAAyC,KACvC;;;AAGF,IAAA,MAAM,aAAa,GAAG,SAAS,IAAI,IAAI;AACvC,IAAA,MAAM,uBAAuB,GAAG,mBAAmB,IAAI,cAAc;;IAGrE,IAAI,YAAY,EAAE;AAChB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACzB,QAAA,OAAO,KAAK;IACd;AAAO,SAAA,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,SAAS,EAAE;AAClD,QAAA,OAAO,EAAE,SAAS,IAAI,WAAW,CAAC;IACpC;AAAO,SAAA,IACL,WAAW,GAAG,uBAAuB,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,EACvE;QACA,OAAO,CAAC,WAAW;IACrB;AAAO,SAAA,IACL,WAAW,GAAG,uBAAuB,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,EAC3E;AACA,QAAA,OAAO,WAAW;IACpB;AACA,IAAA,OAAO,IAAI;AACb,CAAC;;AClDD,sBAAe,CAAI,GAAM,EAAE,IAAY,KACrC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;;ACKrD,gCAAe,CACb,MAAsB,EACtB,KAA0C,EAC1C,IAAuB,KACL;IAClB,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjE,GAAG,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAA,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC;AACnC,IAAA,OAAO,MAAM;AACf,CAAC;;ACfa,SAAU,gBAAgB,CACtC,MAAsB,EACtB,GAAQ,EACR,IAAI,GAAG,UAAU,EAAA;IAEjB,IACE,QAAQ,CAAC,MAAM,CAAC;AAChB,SAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAChD,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAC9B;QACA,OAAO;YACL,IAAI;AACJ,YAAA,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,EAAE;YACvC,GAAG;SACJ;IACH;AACF;;AChBA,yBAAe,CAAC,cAA+B,KAC7C,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc;AACjD,MAAE;AACF,MAAE;AACE,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,OAAO,EAAE,EAAE;KACZ;;ACsBP,oBAAe,OACb,KAAY,EACZ,iBAAkC,EAClC,UAAa,EACb,wBAAiC,EACjC,yBAAmC,EACnC,YAAsB,KACU;AAChC,IAAA,MAAM,EACJ,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,SAAS,EACT,GAAG,EACH,GAAG,EACH,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,aAAa,EACb,KAAK,GACN,GAAG,KAAK,CAAC,EAAE;IACZ,MAAM,UAAU,GAAqB,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1D,IAAI,CAAC,KAAK,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACzC,QAAA,OAAO,EAAE;IACX;AACA,IAAA,MAAM,QAAQ,GAAqB,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAI,GAAwB;AAC7E,IAAA,MAAM,iBAAiB,GAAG,CAAC,OAA0B,KAAI;AACvD,QAAA,IAAI,yBAAyB,IAAI,QAAQ,CAAC,cAAc,EAAE;AACxD,YAAA,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;YACnE,QAAQ,CAAC,cAAc,EAAE;QAC3B;AACF,IAAA,CAAC;IACD,MAAM,KAAK,GAAwB,EAAE;AACrC,IAAA,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC;AACjC,IAAA,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC;AACvC,IAAA,MAAM,iBAAiB,GAAG,OAAO,IAAI,UAAU;IAC/C,MAAM,OAAO,GACX,CAAC,CAAC,aAAa,IAAI,WAAW,CAAC,GAAG,CAAC;AACjC,QAAA,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB,WAAW,CAAC,UAAU,CAAC;SACxB,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;AACxC,QAAA,UAAU,KAAK,EAAE;AACjB,SAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACnD,IAAA,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CACzC,IAAI,EACJ,IAAI,EACJ,wBAAwB,EACxB,KAAK,CACN;AACD,IAAA,MAAM,gBAAgB,GAAG,CACvB,SAAkB,EAClB,gBAAyB,EACzB,gBAAyB,EACzB,UAAmB,sBAAsB,CAAC,SAAS,EACnD,OAAA,GAAmB,sBAAsB,CAAC,SAAS,KACjD;QACF,MAAM,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,gBAAgB;QAC/D,KAAK,CAAC,IAAI,CAAC,GAAG;YACZ,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO;YACnC,OAAO;YACP,GAAG;AACH,YAAA,GAAG,iBAAiB,CAAC,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;SAC7D;AACH,IAAA,CAAC;AAED,IAAA,IACE;AACE,UAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5C,UAAE,QAAQ;AACR,aAAC,CAAC,CAAC,iBAAiB,KAAK,OAAO,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAChE,iBAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;iBACrC,UAAU,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AAC/C,iBAAC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAChD;QACA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,QAAQ;cACxC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ;AACxC,cAAE,kBAAkB,CAAC,QAAQ,CAAC;QAEhC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,IAAI,CAAC,GAAG;gBACZ,IAAI,EAAE,sBAAsB,CAAC,QAAQ;gBACrC,OAAO;AACP,gBAAA,GAAG,EAAE,QAAQ;AACb,gBAAA,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC;aAC/D;YACD,IAAI,CAAC,wBAAwB,EAAE;gBAC7B,iBAAiB,CAAC,OAAO,CAAC;AAC1B,gBAAA,OAAO,KAAK;YACd;QACF;IACF;AAEA,IAAA,IAAI,CAAC,OAAO,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE;AACpE,QAAA,IAAI,SAAS;AACb,QAAA,IAAI,SAAS;AACb,QAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC;AACzC,QAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC;AAEzC,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAoB,CAAC,EAAE;AAClE,YAAA,MAAM,WAAW,GACd,GAAwB,CAAC,aAAa;iBACtC,UAAU,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;YACzC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC,KAAK;YAC3C;YACA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAA,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC,KAAK;YAC3C;QACF;aAAO;YACL,MAAM,SAAS,GACZ,GAAwB,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,UAAoB,CAAC;YACzE,MAAM,iBAAiB,GAAG,CAAC,IAAa,KACtC,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;AAClD,YAAA,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM;AACjC,YAAA,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM;YAEjC,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE;AAC3C,gBAAA,SAAS,GAAG;sBACR,iBAAiB,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK;AACnE,sBAAE;AACA,0BAAE,UAAU,GAAG,SAAS,CAAC;0BACvB,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC7C;YAEA,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE;AAC3C,gBAAA,SAAS,GAAG;sBACR,iBAAiB,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK;AACnE,sBAAE;AACA,0BAAE,UAAU,GAAG,SAAS,CAAC;0BACvB,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC7C;QACF;AAEA,QAAA,IAAI,SAAS,IAAI,SAAS,EAAE;YAC1B,gBAAgB,CACd,CAAC,CAAC,SAAS,EACX,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,OAAO,EACjB,sBAAsB,CAAC,GAAG,EAC1B,sBAAsB,CAAC,GAAG,CAC3B;YACD,IAAI,CAAC,wBAAwB,EAAE;gBAC7B,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,OAAO,CAAC;AACvC,gBAAA,OAAO,KAAK;YACd;QACF;IACF;AAEA,IAAA,IACE,CAAC,SAAS,IAAI,SAAS;AACvB,QAAA,CAAC,OAAO;AACR,SAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EACrE;AACA,QAAA,MAAM,eAAe,GAAG,kBAAkB,CAAC,SAAS,CAAC;AACrD,QAAA,MAAM,eAAe,GAAG,kBAAkB,CAAC,SAAS,CAAC;QACrD,MAAM,SAAS,GACb,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC;AACzC,YAAA,UAAU,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,KAAK;QAC5C,MAAM,SAAS,GACb,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC;AACzC,YAAA,UAAU,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,KAAK;AAE5C,QAAA,IAAI,SAAS,IAAI,SAAS,EAAE;YAC1B,gBAAgB,CACd,SAAS,EACT,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,OAAO,CACxB;YACD,IAAI,CAAC,wBAAwB,EAAE;gBAC7B,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,OAAO,CAAC;AACvC,gBAAA,OAAO,KAAK;YACd;QACF;IACF;IAEA,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE;AAC/C,QAAA,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAEpE,QAAA,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;YAC5D,KAAK,CAAC,IAAI,CAAC,GAAG;gBACZ,IAAI,EAAE,sBAAsB,CAAC,OAAO;gBACpC,OAAO;gBACP,GAAG;AACH,gBAAA,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC;aAC9D;YACD,IAAI,CAAC,wBAAwB,EAAE;gBAC7B,iBAAiB,CAAC,OAAO,CAAC;AAC1B,gBAAA,OAAO,KAAK;YACd;QACF;IACF;IAEA,IAAI,QAAQ,EAAE;AACZ,QAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;YACxB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;YACrD,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC;YAExD,IAAI,aAAa,EAAE;gBACjB,KAAK,CAAC,IAAI,CAAC,GAAG;AACZ,oBAAA,GAAG,aAAa;oBAChB,GAAG,iBAAiB,CAClB,sBAAsB,CAAC,QAAQ,EAC/B,aAAa,CAAC,OAAO,CACtB;iBACF;gBACD,IAAI,CAAC,wBAAwB,EAAE;AAC7B,oBAAA,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC;AACxC,oBAAA,OAAO,KAAK;gBACd;YACF;QACF;AAAO,aAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC7B,IAAI,gBAAgB,GAAG,EAAgB;AAEvC,YAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;gBAC1B,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,wBAAwB,EAAE;oBACjE;gBACF;AAEA,gBAAA,MAAM,aAAa,GAAG,gBAAgB,CACpC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAC3C,QAAQ,EACR,GAAG,CACJ;gBAED,IAAI,aAAa,EAAE;AACjB,oBAAA,gBAAgB,GAAG;AACjB,wBAAA,GAAG,aAAa;AAChB,wBAAA,GAAG,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC;qBACjD;AAED,oBAAA,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC;oBAExC,IAAI,wBAAwB,EAAE;AAC5B,wBAAA,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB;oBAChC;gBACF;YACF;AAEA,YAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE;gBACpC,KAAK,CAAC,IAAI,CAAC,GAAG;AACZ,oBAAA,GAAG,EAAE,QAAQ;AACb,oBAAA,GAAG,gBAAgB;iBACpB;gBACD,IAAI,CAAC,wBAAwB,EAAE;AAC7B,oBAAA,OAAO,KAAK;gBACd;YACF;QACF;IACF;IAEA,iBAAiB,CAAC,IAAI,CAAC;AACvB,IAAA,OAAO,KAAK;AACd,CAAC;;AC7LD,MAAM,cAAc,GAAG;IACrB,IAAI,EAAE,eAAe,CAAC,QAAQ;IAC9B,cAAc,EAAE,eAAe,CAAC,QAAQ;AACxC,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,4BAA4B,EAAE,KAAK;CAC3B;AAEJ,SAAU,iBAAiB,CAM/B,KAAA,GAKI,EAAE,EAAA;AAUN,IAAA,IAAI,QAAQ,GAAG;AACb,QAAA,GAAG,cAAc;AACjB,QAAA,GAAG,KAAK;KACT;AAED,IAAA,IAAI,gBAAgB,GAClB,QAAQ,CAAC,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC1D,IAAA,IAAI,UAAU,GAAuC;AACnD,QAAA,WAAW,EAAE,CAAC;AACd,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,kBAAkB,EAAE,KAAK;AACzB,QAAA,gBAAgB,EAAE,KAAK;AACvB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,kBAAkB,EAAE,KAAK;AACzB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,gBAAgB,EAAE,EAAE;AACpB,QAAA,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE;QAC7B,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ;AACvC,cAAE;AACF,cAAE,QAAQ,CAAC,QAAQ,IAAI,KAAK;AAC9B,QAAA,QAAQ,EAAE,QAAQ,CAAC,eAAe,IAAK,EAAgB;KACxD;IAED,IAAI,OAAO,GAAc,EAAE;AAC3B,IAAA,IAAI,cAAc,GAChB,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM;AAC1D,UAAE,WAAW,CAAC,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI;UAC1D,EAAE;AACR,IAAA,IAAI,WAAW,GAAG,QAAQ,CAAC;AACzB,UAAG;AACH,UAAG,WAAW,CAAC,cAAc,CAAkB;AACjD,IAAA,IAAI,MAAM,GAAG;AACX,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,WAAW,EAAE,KAAK;KACnB;AACD,IAAA,IAAI,MAAM,GAAU;QAClB,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,KAAK,EAAE,IAAI,GAAG,EAAE;KACjB;AACD,IAAA,IAAI,kBAAwC;IAC5C,IAAI,KAAK,GAAG,CAAC;AACb,IAAA,MAAM,qBAAqB,GAAkB;AAC3C,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,kBAAkB,EAAE,KAAK;AACzB,QAAA,gBAAgB,EAAE,KAAK;AACvB,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,gBAAgB,EAAE,KAAK;AACvB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,MAAM,EAAE,KAAK;KACd;AACD,IAAA,MAAM,eAAe,GAAkB;AACrC,QAAA,GAAG,qBAAqB;KACzB;AACD,IAAA,IAAI,wBAAwB,GAAG;AAC7B,QAAA,GAAG,eAAe;KACnB;AACD,IAAA,MAAM,SAAS,GAA2B;QACxC,KAAK,EAAE,aAAa,EAAE;QACtB,KAAK,EAAE,aAAa,EAAE;KACvB;IAED,MAAM,gCAAgC,GACpC,QAAQ,CAAC,YAAY,KAAK,eAAe,CAAC,GAAG;IAE/C,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;;IAG7B,IAAI,iBAAiB,GAAG,KAAK;IAE7B,MAAM,QAAQ,GACZ,CAAqB,QAAW,KAChC,CAAC,IAAY,KAAI;QACf,YAAY,CAAC,KAAK,CAAC;AACnB,QAAA,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;AACpC,IAAA,CAAC;AAEH,IAAA,MAAM,SAAS,GAAG,OAAO,iBAA2B,KAAI;AACtD,QAAA,IAAI,MAAM,CAAC,WAAW,EAAE;YACtB;QACF;AACA,QAAA,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ;aACtD,eAAe,CAAC,OAAO;AACtB,gBAAA,wBAAwB,CAAC,OAAO;gBAChC,iBAAiB,CAAC,EACpB;AACA,YAAA,IAAI,OAAgB;AACpB,YAAA,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACrB,OAAO,GAAG,aAAa,CAAC,CAAC,MAAM,UAAU,EAAE,EAAE,MAAM,CAAC;AACpD,gBAAA,mBAAmB,EAAE;YACvB;iBAAO;gBACL,OAAO,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC;YACzD;AACA,YAAA,IAAI,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE;AAClC,gBAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;oBACnB,OAAO;AACR,iBAAA,CAAC;YACJ;QACF;AACF,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,KAAgB,EAAE,YAAsB,KAAI;QACvE,IACE,CAAC,QAAQ,CAAC,QAAQ;aACjB,eAAe,CAAC,YAAY;AAC3B,gBAAA,eAAe,CAAC,gBAAgB;AAChC,gBAAA,wBAAwB,CAAC,YAAY;AACrC,gBAAA,wBAAwB,CAAC,gBAAgB,CAAC,EAC5C;AACA,YAAA,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,KAAI;gBACnD,IAAI,IAAI,EAAE;oBACR;0BACI,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,EAAE,YAAY;0BACnD,KAAK,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC;gBAC9C;AACF,YAAA,CAAC,CAAC;AAEF,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnB,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;AAC7C,gBAAA,YAAY,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC;AAC1D,aAAA,CAAC;QACJ;AACF,IAAA,CAAC;IAED,MAAM,cAAc,GAA0B,CAC5C,IAAI,EACJ,MAAM,GAAG,EAAE,EACX,MAAM,EACN,IAAI,EACJ,eAAe,GAAG,IAAI,EACtB,0BAA0B,GAAG,IAAI,KAC/B;QACF,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACxC,YAAA,MAAM,CAAC,MAAM,GAAG,IAAI;AACpB,YAAA,IAAI,0BAA0B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE;AACnE,gBAAA,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;gBACpE,eAAe,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC;YACpD;AAEA,YAAA,IACE,0BAA0B;AAC1B,gBAAA,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAC3C;gBACA,MAAM,MAAM,GAAG,MAAM,CACnB,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAC5B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,CACV;gBACD,eAAe,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;AACvD,gBAAA,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;YAC1C;YAEA,IACE,CAAC,eAAe,CAAC,aAAa;gBAC5B,wBAAwB,CAAC,aAAa;gBACxC,0BAA0B;AAC1B,gBAAA,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,EAClD;gBACA,MAAM,aAAa,GAAG,MAAM,CAC1B,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EACnC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,CACV;gBACD,eAAe,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC;YACvE;YAEA,IAAI,eAAe,CAAC,WAAW,IAAI,wBAAwB,CAAC,WAAW,EAAE;gBACvE,UAAU,CAAC,WAAW,GAAG,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC;YACtE;AAEA,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnB,IAAI;AACJ,gBAAA,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;gBAChC,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,OAAO,EAAE,UAAU,CAAC,OAAO;AAC5B,aAAA,CAAC;QACJ;aAAO;AACL,YAAA,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC;QAChC;AACF,IAAA,CAAC;AAED,IAAA,MAAM,YAAY,GAAG,CAAC,IAAuB,EAAE,KAAiB,KAAI;QAClE,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,UAAU,CAAC,MAAM;AAC1B,SAAA,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,MAAiC,KAAI;AACvD,QAAA,UAAU,CAAC,MAAM,GAAG,MAAM;AAC1B,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,UAAU,CAAC,MAAM;AACzB,YAAA,OAAO,EAAE,KAAK;AACf,SAAA,CAAC;AACJ,IAAA,CAAC;IAED,MAAM,mBAAmB,GAAG,CAC1B,IAAuB,EACvB,oBAA6B,EAC7B,KAAe,EACf,GAAS,KACP;QACF,MAAM,KAAK,GAAU,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;QAEvC,IAAI,KAAK,EAAE;YACT,MAAM,YAAY,GAAG,GAAG,CACtB,WAAW,EACX,IAAI,EACJ,WAAW,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,KAAK,CACvD;YAED,WAAW,CAAC,YAAY,CAAC;AACzB,iBAAC,GAAG,IAAK,GAAwB,CAAC,cAAc,CAAC;gBACjD;kBACI,GAAG,CACD,WAAW,EACX,IAAI,EACJ,oBAAoB,GAAG,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;AAEjE,kBAAE,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC;YAErC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE;QAC/C;AACF,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAC1B,IAAuB,EACvB,UAAmB,EACnB,WAAqB,EACrB,YAAsB,EACtB,WAAqB,EACrB,YAAsB,KAUpB;QACF,IAAI,iBAAiB,GAAG,KAAK;QAC7B,IAAI,eAAe,GAAG,KAAK;AAC3B,QAAA,MAAM,MAAM,GAAwD;YAClE,IAAI;SACL;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,IAAI,WAAW,EAAE;gBAC/B,IAAI,eAAe,CAAC,OAAO,IAAI,wBAAwB,CAAC,OAAO,EAAE;AAC/D,oBAAA,eAAe,GAAG,UAAU,CAAC,OAAO;oBACpC,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,SAAS,EAAE;AACjD,oBAAA,iBAAiB,GAAG,eAAe,KAAK,MAAM,CAAC,OAAO;gBACxD;AAEA,gBAAA,MAAM,sBAAsB,GAAG,SAAS,CACtC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,EACzB,UAAU,CACX;gBAED,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC;gBACrD;sBACI,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI;sBAClC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3C,gBAAA,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW;gBAC3C,iBAAiB;oBACf,iBAAiB;yBAChB,CAAC,eAAe,CAAC,WAAW;4BAC3B,wBAAwB,CAAC,WAAW;AACpC,4BAAA,eAAe,KAAK,CAAC,sBAAsB,CAAC;YAClD;;;;AAKA,YAAA,IACE,CAAC,UAAU,CAAC,WAAW,IAAI,iBAAiB;gBAC5C,CAAC,UAAU,CAAC,kBAAkB;AAC9B,gBAAA,CAAC,WAAW;AACZ,gBAAA,CAAC,YAAY;AACb,gBAAA,WAAW,EACX;gBACA,UAAU,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,GAAG,IAAI;gBAChE,iBAAiB;oBACf,iBAAiB;AACjB,wBAAA,CAAC,EACC,eAAe,CAAC,kBAAkB;4BAClC,wBAAwB,CAAC,kBAAkB,CAC5C;YACL;YAEA,IAAI,WAAW,EAAE;gBACf,MAAM,sBAAsB,GAAG,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC;gBAElE,IAAI,CAAC,sBAAsB,EAAE;oBAC3B,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC;AAChD,oBAAA,MAAM,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa;oBAC/C,iBAAiB;wBACf,iBAAiB;6BAChB,CAAC,eAAe,CAAC,aAAa;gCAC7B,wBAAwB,CAAC,aAAa;gCACtC,sBAAsB,KAAK,WAAW,CAAC;gBAC7C;YACF;;AAGA,YAAA,IAAI,YAAY,IAAI,WAAW,EAAE;AAC/B,gBAAA,MAAM,oBAAoB,GAAG,UAAU,CAAC,YAAY,KAAK,IAAI;AAC7D,gBAAA,MAAM,eAAe,GAAG,YAAY,IAAI,CAAC,WAAW;AAEpD,gBAAA,IAAI,oBAAoB,KAAK,eAAe,EAAE;oBAC5C,IAAI,eAAe,EAAE;AACnB,wBAAA,UAAU,CAAC,YAAY,GAAG,IAA+B;oBAC3D;yBAAO;AACL,wBAAA,UAAU,CAAC,YAAY,GAAG,SAAS;oBACrC;AACA,oBAAA,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY;oBAC7C,iBAAiB;wBACf,iBAAiB;6BAChB,CAAC,eAAe,CAAC,YAAY;gCAC5B,wBAAwB,CAAC,YAAY;gCACrC,oBAAoB,KAAK,eAAe,CAAC;gBAC/C;YACF;YAEA,iBAAiB,IAAI,YAAY,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QACnE;QAEA,OAAO,iBAAiB,GAAG,MAAM,GAAG,EAAE;AACxC,IAAA,CAAC;IAED,MAAM,mBAAmB,GAAG,CAC1B,IAAuB,EACvB,OAAiB,EACjB,KAAkB,EAClB,UAIC,KACC;QACF,MAAM,kBAAkB,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;QACvD,MAAM,iBAAiB,GACrB,CAAC,eAAe,CAAC,OAAO,IAAI,wBAAwB,CAAC,OAAO;YAC5D,SAAS,CAAC,OAAO,CAAC;AAClB,YAAA,UAAU,CAAC,OAAO,KAAK,OAAO;AAEhC,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,KAAK,EAAE;AAChC,YAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9D,YAAA,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC;QACzC;aAAO;YACL,YAAY,CAAC,KAAK,CAAC;YACnB,kBAAkB,GAAG,IAAI;YACzB;kBACI,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK;kBAClC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;QACpC;AAEA,QAAA,IACE,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,KAAK,CAAC,GAAG,kBAAkB;YACnE,CAAC,aAAa,CAAC,UAAU,CAAC;AAC1B,YAAA,iBAAiB,EACjB;AACA,YAAA,MAAM,gBAAgB,GAAG;AACvB,gBAAA,GAAG,UAAU;AACb,gBAAA,IAAI,iBAAiB,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;gBAC/D,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,IAAI;aACL;AAED,YAAA,UAAU,GAAG;AACX,gBAAA,GAAG,UAAU;AACb,gBAAA,GAAG,gBAAgB;aACpB;AAED,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACxC;AACF,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,OAAO,IAA0B,KAAI;AACtD,QAAA,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/B,QAAA,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAS,CACrC,WAA2B,EAC3B,QAAQ,CAAC,OAAO,EAChB,kBAAkB,CAChB,IAAI,IAAI,MAAM,CAAC,KAAK,EACpB,OAAO,EACP,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,yBAAyB,CACnC,CACF;AACD,QAAA,OAAO,MAAM;AACf,IAAA,CAAC;AAED,IAAA,MAAM,2BAA2B,GAAG,OAAO,KAA2B,KAAI;QACxE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC;QAC1C,mBAAmB,CAAC,KAAK,CAAC;QAE1B,IAAI,KAAK,EAAE;AACT,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;gBAC/B;sBACI,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK;sBAClC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;YACpC;QACF;aAAO;AACL,YAAA,UAAU,CAAC,MAAM,GAAG,MAAM;QAC5B;AAEA,QAAA,OAAO,MAAM;AACf,IAAA,CAAC;IAED,MAAM,wBAAwB,GAAG,OAC/B,MAAiB,EACjB,oBAA8B,EAC9B,OAAA,GAEI;AACF,QAAA,KAAK,EAAE,IAAI;AACZ,KAAA,KACC;AACF,QAAA,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;AACzB,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YAE1B,IAAI,KAAK,EAAE;gBACT,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,KAAc;gBAE5C,IAAI,EAAE,EAAE;AACN,oBAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;AAClD,oBAAA,MAAM,iBAAiB,GACrB,KAAK,CAAC,EAAE,IAAI,oBAAoB,CAAE,KAAe,CAAC,EAAE,CAAC;AAEvD,oBAAA,IAAI,iBAAiB,IAAI,eAAe,CAAC,gBAAgB,EAAE;wBACzD,mBAAmB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;oBACtC;;AAGA,oBAAA,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;wBACnC,GAAG,MAAM,CAAC,QAAQ;wBAClB,GAAG,MAAM,CAAC,QAAQ;AACnB,qBAAA,CAAC;oBAEF,MAAM,UAAU,GAAG,MAAM,aAAa,CACpC,KAAc,EACd,oBAAoB,EACpB,WAAW,EACX,gCAAgC,EAChC,QAAQ,CAAC,yBAAyB,IAAI,CAAC,oBAAoB,EAC3D,gBAAgB,CACjB;AAED,oBAAA,IAAI,iBAAiB,IAAI,eAAe,CAAC,gBAAgB,EAAE;AACzD,wBAAA,mBAAmB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAChC;AAEA,oBAAA,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACvB,wBAAA,OAAO,CAAC,KAAK,GAAG,KAAK;AACrB,wBAAA,IAAI,oBAAoB,IAAI,KAAK,CAAC,yBAAyB,EAAE;4BAC3D;wBACF;oBACF;AAEA,oBAAA,CAAC,oBAAoB;AACnB,yBAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI;AACtB,8BAAE;AACA,kCAAE,yBAAyB,CACvB,UAAU,CAAC,MAAM,EACjB,UAAU,EACV,EAAE,CAAC,IAAI;AAEX,kCAAE,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC;AACvD,8BAAE,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC1C;gBAEA,CAAC,aAAa,CAAC,UAAU,CAAC;qBACvB,MAAM,wBAAwB,CAC7B,UAAU,EACV,oBAAoB,EACpB,OAAO,CACR,CAAC;YACN;QACF;QAEA,OAAO,OAAO,CAAC,KAAK;AACtB,IAAA,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAK;AAC5B,QAAA,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;YACjC,MAAM,KAAK,GAAU,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;YAEvC,KAAK;AACH,iBAAC,KAAK,CAAC,EAAE,CAAC;AACR,sBAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;sBACvC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACxB,UAAU,CAAC,IAA+B,CAAC;QAC/C;AAEA,QAAA,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE;AAC5B,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAe,CAAC,IAAI,EAAE,IAAI,KACvC,CAAC,QAAQ,CAAC,QAAQ;SACjB,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;YAC7C,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,cAAc,CAAC,CAAC;AAE1C,IAAA,MAAM,SAAS,GAAgC,CAC7C,KAAK,EACL,YAAY,EACZ,QAAQ,KAER,mBAAmB,CACjB,KAAK,EACL,MAAM,EACN;QACE,IAAI,MAAM,CAAC;AACT,cAAE;AACF,cAAE,WAAW,CAAC,YAAY;AACxB,kBAAE;AACF,kBAAE,QAAQ,CAAC,KAAK;AACd,sBAAE,EAAE,CAAC,KAAK,GAAG,YAAY;sBACvB,YAAY,CAAC;AACtB,KAAA,EACD,QAAQ,EACR,YAAY,CACb;IAEH,MAAM,cAAc,GAAG,CACrB,IAAuB,KAEvB,OAAO,CACL,GAAG,CACD,MAAM,CAAC,KAAK,GAAG,WAAW,GAAG,cAAc,EAC3C,IAAI,EACJ,QAAQ,CAAC,gBAAgB,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAC/D,CACF;IAEH,MAAM,aAAa,GAAG,CACpB,IAAuB,EACvB,KAAkC,EAClC,OAAA,GAA0B,EAAE,KAC1B;QACF,MAAM,KAAK,GAAU,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;QACvC,IAAI,UAAU,GAAY,KAAK;QAE/B,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,cAAc,GAAG,KAAK,CAAC,EAAE;YAE/B,IAAI,cAAc,EAAE;gBAClB,CAAC,cAAc,CAAC,QAAQ;AACtB,oBAAA,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBAEhE,UAAU;oBACR,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,KAAK;AAC1D,0BAAE;0BACA,KAAK;AAEX,gBAAA,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACxC,oBAAA,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CACrC,CAAC,SAAS,MACP,SAAS,CAAC,QAAQ,GACjB,UACD,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAC/B;gBACH;AAAO,qBAAA,IAAI,cAAc,CAAC,IAAI,EAAE;AAC9B,oBAAA,IAAI,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;wBACvC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,KAAI;4BAC1C,IAAI,CAAC,WAAW,CAAC,cAAc,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AACxD,gCAAA,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;oCAC7B,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CACrC,CAAC,IAAY,KAAK,IAAI,KAAK,WAAW,CAAC,KAAK,CAC7C;gCACH;qCAAO;AACL,oCAAA,WAAW,CAAC,OAAO;wCACjB,UAAU,KAAK,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,UAAU;gCACpD;4BACF;AACF,wBAAA,CAAC,CAAC;oBACJ;yBAAO;wBACL,cAAc,CAAC,IAAI,CAAC,OAAO,CACzB,CAAC,QAA0B,MACxB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,KAAK,UAAU,CAAC,CACrD;oBACH;gBACF;AAAO,qBAAA,IAAI,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC1C,oBAAA,cAAc,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;gBAC/B;qBAAO;AACL,oBAAA,cAAc,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU;AAErC,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE;AAC5B,wBAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;4BACnB,IAAI;AACJ,4BAAA,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;AACjC,yBAAA,CAAC;oBACJ;gBACF;YACF;QACF;QAEA,MAAM,mBAAmB,GACvB,CAAC,UAAU,CAAC,WAAW,IAAI,iBAAiB;YAC5C,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC;;;;QAKnD,MAAM,iBAAiB,GACrB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,IAAI,mBAAmB;QAEnE,iBAAiB;YACf,mBAAmB,CACjB,IAAI,EACJ,UAAU,EACV,OAAO,CAAC,WAAW,EACnB,KAAK;AACL,YAAA,OAAO,CAAC,WAAW,IAAI,mBAAmB,EAC1C,IAAI,CACL;AAEH,QAAA,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,IAA0B,CAAC;AAC/D,IAAA,CAAC;IAED,MAAM,SAAS,GAAG,CAKhB,IAAO,EACP,KAAQ,EACR,OAAU,KACR;AACF,QAAA,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;gBACnC;YACF;AACA,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC;AAClC,YAAA,MAAM,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ;YACvC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;AAErC,YAAA,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBACrB,QAAQ,CAAC,UAAU,CAAC;AACpB,iBAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,CAAC,YAAY,CAAC,UAAU;kBACpB,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO;kBACxC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC;QACnD;AACF,IAAA,CAAC;IAED,MAAM,QAAQ,GAAkC,CAC9C,IAAI,EACJ,KAAK,EACL,OAAO,GAAG,EAAE,KACV;QACF,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;QAChC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3C,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC;AAErC,QAAA,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC;QAElC,IAAI,YAAY,EAAE;AAChB,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnB,IAAI;AACJ,gBAAA,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;AACjC,aAAA,CAAC;YAEF,IACE,CAAC,eAAe,CAAC,OAAO;AACtB,gBAAA,eAAe,CAAC,WAAW;AAC3B,gBAAA,wBAAwB,CAAC,OAAO;AAChC,gBAAA,wBAAwB,CAAC,WAAW;AACpC,gBAAA,eAAe,CAAC,kBAAkB;gBAClC,wBAAwB,CAAC,kBAAkB;gBAC7C,OAAO,CAAC,WAAW,EACnB;AACA,gBAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;oBACnB,IAAI;AACJ,oBAAA,WAAW,EAAE,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC;AACxD,oBAAA,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;AACpC,oBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,iBAAiB;wBAChD,CAAC,UAAU,CAAC;AACV,0BAAE,EAAE,kBAAkB,EAAE,IAAI;0BAC1B,EAAE,CAAC;AACR,iBAAA,CAAC;YACJ;AAAO,iBAAA,IACL,CAAC,UAAU,CAAC,WAAW,IAAI,iBAAiB;AAC5C,gBAAA,CAAC,UAAU,CAAC,kBAAkB,EAC9B;AACA,gBAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;oBACnB,IAAI;AACJ,oBAAA,kBAAkB,EAAE,IAAI;AACzB,iBAAA,CAAC;YACJ;QACF;aAAO;YACL,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU;kBAC/C,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO;kBACnC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC;QAC9C;AAEA,QAAA,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;AAC3B,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,gBAAA,GAAG,UAAU;gBACb,IAAI;AACJ,gBAAA,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;AACjC,aAAA,CAAC;QACJ;aAAO;AACL,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,GAAG,SAAS;AACrC,gBAAA,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;AACjC,aAAA,CAAC;QACJ;;;;;;AAOA,QAAA,IAAI,OAAO,CAAC,cAAc,EAAE;YAC1B,OAAO,CAAC,IAA0B,CAAC;QACrC;AACF,IAAA,CAAC;AAED,IAAA,MAAM,QAAQ,GAAkB,OAAO,KAAK,KAAI;AAC9C,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI;AACnB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AAC3B,QAAA,IAAI,IAAI,GAAW,MAAM,CAAC,IAAI;QAC9B,IAAI,mBAAmB,GAAG,IAAI;QAC9B,MAAM,KAAK,GAAU,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACvC,QAAA,MAAM,0BAA0B,GAAG,CAAC,UAAmB,KAAI;YACzD,mBAAmB;AACjB,gBAAA,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;AACxB,qBAAC,YAAY,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;AACzD,oBAAA,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAC7D,QAAA,CAAC;QACD,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpE,MAAM,yBAAyB,GAAG,kBAAkB,CAClD,QAAQ,CAAC,cAAc,CACxB;;;;;QAMD,MAAM,SAAS,GAAG,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,EAAE,CAAC,IAAI;cAC5B,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;cAChC,SAAS;QACb,MAAM,mBAAmB,GAAG,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,EAAE,CAAC,cAAc;cAChD,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc;cAC1C,SAAS;QAEb,IAAI,KAAK,EAAE;;YAET,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ;AACjD,kBAAE,KAAK,CAAC,EAAE,CAAC;AACX,kBAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ;sBACzB,QAAQ,CAAC;sBACT,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ;AAC/B,0BAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAA+B;0BAC9D,KAAK;YAEb,IAAI,eAAe,EAAE;;gBAEnB,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;AAC5C,gBAAA,IAAI,MAAM,CAAC,KAAK,KAAK,aAAa,EAAE;AAClC,oBAAA,MAAM,CAAC,KAAK,GAAG,aAAa;gBAC9B;gBACA;YACF;;YAGA,IAAI,QAAQ,CAAC,4BAA4B,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;;AAEtE,gBAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;;;AAIzB,gBAAA,MAAM,UAAU,GAAG,MAAM,CAAC;AACxB,sBAAE,aAAa,CAAC,KAAK,CAAC,EAAE;AACxB,sBAAE,aAAa,CAAC,KAAK,CAAC;AACxB,gBAAA,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS;AAC/D,gBAAA,MAAM,YAAY,GAChB,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ;AAC/D,gBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,IAAI,YAAY,CAAC;;AAGpE,gBAAA,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC;;AAGlC,gBAAA,MAAM,UAAU,GAAG,mBAAmB,CACpC,IAAI,EACJ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,CAAC,WAAW,CACb;gBAED,MAAM,YAAY,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,OAAO;AAE1D,gBAAA,CAAC,WAAW;AACV,oBAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;wBACnB,IAAI;wBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,wBAAA,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;AACjC,qBAAA,CAAC;AAEJ,gBAAA,QACE,YAAY;oBACZ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,OAAO,GAAG,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;YAElE;AAAO,iBAAA,IAAI,QAAQ,CAAC,4BAA4B,EAAE;;AAEhD,gBAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YAC9B;AAEA,YAAA,IAAI,KAAK;AACT,YAAA,IAAI,OAAO;AACX,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC;AACxB,kBAAE,aAAa,CAAC,KAAK,CAAC,EAAE;AACxB,kBAAE,aAAa,CAAC,KAAK,CAAC;AACxB,YAAA,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS;AAC/D,YAAA,MAAM,YAAY,GAChB,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ;YAE/D,MAAM,oBAAoB,GACxB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,CAAC,QAAQ,CAAC,QAAQ;AAClB,gBAAA,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;AAC7B,gBAAA,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;gBAChB,cAAc,CACZ,WAAW,EACX,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EACnC,UAAU,CAAC,WAAW,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,YAAY,EACZ,SAAS,EACT,mBAAmB,CACpB;AACH,YAAA,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,IAAI,YAAY,CAAC;AAEpE,YAAA,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC;YAElC,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC/B,oBAAA,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,oBAAA,kBAAkB,IAAI,kBAAkB,CAAC,CAAC,CAAC;gBAC7C;YACF;AAAO,iBAAA,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE;AAC5B,gBAAA,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1B;AAEA,YAAA,MAAM,UAAU,GAAG,mBAAmB,CACpC,IAAI,EACJ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,CAAC,WAAW,CACb;YAED,MAAM,YAAY,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,OAAO;AAE1D,YAAA,CAAC,WAAW;AACV,gBAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;oBACnB,IAAI;oBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,oBAAA,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;AACjC,iBAAA,CAAC;YAEJ,IAAI,oBAAoB,EAAE;gBACxB,IAAI,eAAe,CAAC,OAAO,IAAI,wBAAwB,CAAC,OAAO,EAAE;AAC/D,oBAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE;wBAC9B,IAAI,WAAW,EAAE;AACf,4BAAA,SAAS,EAAE;wBACb;oBACF;yBAAO,IAAI,CAAC,WAAW,EAAE;AACvB,wBAAA,SAAS,EAAE;oBACb;gBACF;AAEA,gBAAA,QACE,YAAY;oBACZ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,OAAO,GAAG,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;YAElE;AAEA,YAAA,CAAC,WAAW,IAAI,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;AAElE,YAAA,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACrB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3C,gBAAA,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC;gBAE3B,0BAA0B,CAAC,UAAU,CAAC;gBAEtC,IAAI,mBAAmB,EAAE;AACvB,oBAAA,MAAM,yBAAyB,GAAG,iBAAiB,CACjD,UAAU,CAAC,MAAM,EACjB,OAAO,EACP,IAAI,CACL;AACD,oBAAA,MAAM,iBAAiB,GAAG,iBAAiB,CACzC,MAAM,EACN,OAAO,EACP,yBAAyB,CAAC,IAAI,IAAI,IAAI,CACvC;AAED,oBAAA,KAAK,GAAG,iBAAiB,CAAC,KAAK;AAC/B,oBAAA,IAAI,GAAG,iBAAiB,CAAC,IAAI;AAE7B,oBAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;gBACjC;YACF;iBAAO;AACL,gBAAA,mBAAmB,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;;AAGjC,gBAAA,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;oBACnC,GAAG,MAAM,CAAC,QAAQ;oBAClB,GAAG,MAAM,CAAC,QAAQ;AACnB,iBAAA,CAAC;gBAEF,KAAK,GAAG,CACN,MAAM,aAAa,CACjB,KAAK,EACL,oBAAoB,EACpB,WAAW,EACX,gCAAgC,EAChC,QAAQ,CAAC,yBAAyB,EAClC,KAAK,CACN,EACD,IAAI,CAAC;AACP,gBAAA,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC;gBAE3B,0BAA0B,CAAC,UAAU,CAAC;gBAEtC,IAAI,mBAAmB,EAAE;oBACvB,IAAI,KAAK,EAAE;wBACT,OAAO,GAAG,KAAK;oBACjB;yBAAO,IACL,eAAe,CAAC,OAAO;wBACvB,wBAAwB,CAAC,OAAO,EAChC;wBACA,OAAO,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC;oBACzD;gBACF;YACF;YAEA,IAAI,mBAAmB,EAAE;gBACvB,KAAK,CAAC,EAAE,CAAC,IAAI;qBACV,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3D,oBAAA,OAAO,CACL,KAAK,CAAC,EAAE,CAAC,IAEoB,CAC9B;gBACH,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC;YACvD;QACF;AACF,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAE,GAAW,KAAI;AAC5C,QAAA,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE;YAC5C,GAAG,CAAC,KAAK,EAAE;AACX,YAAA,OAAO,CAAC;QACV;QACA;AACF,IAAA,CAAC;IAED,MAAM,OAAO,GAAiC,OAAO,IAAI,EAAE,OAAO,GAAG,EAAE,KAAI;AACzE,QAAA,IAAI,OAAO;AACX,QAAA,IAAI,gBAAgB;AACpB,QAAA,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAwB;AAErE,QAAA,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACrB,YAAA,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAC9C,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,UAAU,CACtC;AAED,YAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AAC/B,YAAA,gBAAgB,GAAG;AACjB,kBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;kBAC5C,OAAO;QACb;aAAO,IAAI,IAAI,EAAE;AACf,YAAA,gBAAgB,GAAG,CACjB,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,OAAO,SAAS,KAAI;gBACjC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;gBACrC,OAAO,MAAM,wBAAwB,CACnC,KAAK,IAAI,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,GAAG,KAAK,EAAE,GAAG,KAAK,CACnD;YACH,CAAC,CAAC,CACH,EACD,KAAK,CAAC,OAAO,CAAC;AAChB,YAAA,EAAE,CAAC,gBAAgB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE;QAC5D;aAAO;YACL,gBAAgB,GAAG,OAAO,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC;QACtE;AAEA,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;iBAClB,CAAC,eAAe,CAAC,OAAO,IAAI,wBAAwB,CAAC,OAAO;AAC3D,oBAAA,OAAO,KAAK,UAAU,CAAC,OAAO;AAC9B,kBAAE;AACF,kBAAE,EAAE,IAAI,EAAE,CAAC;AACb,YAAA,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAClD,MAAM,EAAE,UAAU,CAAC,MAAM;AAC1B,SAAA,CAAC;AAEF,QAAA,OAAO,CAAC,WAAW;AACjB,YAAA,CAAC,gBAAgB;AACjB,YAAA,qBAAqB,CACnB,OAAO,EACP,WAAW,EACX,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC,KAAK,CACjC;AAEH,QAAA,OAAO,gBAAgB;AACzB,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAmC,CAChD,UAE0C,EAC1C,MAAwB,KACtB;AACF,QAAA,IAAI,MAAM,GAAG;AACX,YAAA,IAAI,MAAM,CAAC,KAAK,GAAG,WAAW,GAAG,cAAc,CAAC;SACjD;QAED,IAAI,MAAM,EAAE;YACV,MAAM,GAAG,iBAAiB,CACxB,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,aAAa,EACtE,MAAM,CACP;QACH;QAEA,OAAO,WAAW,CAAC,UAAU;AAC3B,cAAE;AACF,cAAE,QAAQ,CAAC,UAAU;AACnB,kBAAE,GAAG,CAAC,MAAM,EAAE,UAAU;AACxB,kBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACnD,IAAA,CAAC;IAED,MAAM,aAAa,GAAuC,CACxD,IAAI,EACJ,SAAS,MACL;AACJ,QAAA,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC;AACtD,QAAA,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC;AAC3D,QAAA,KAAK,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC;QAClD,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC;AACtD,QAAA,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC;QAC/D,SAAS,EAAE,CAAC,SAAS,IAAI,UAAU,EAAE,YAAY,KAAK,IAAI;AAC3D,KAAA,CAAC;AAEF,IAAA,MAAM,WAAW,GAAqC,CAAC,IAAI,KAAI;QAC7D,IAAI;YACF,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,KAC5C,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CACpC;AAEH,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,EAAE;AACtC,SAAA,CAAC;AACJ,IAAA,CAAC;IAED,MAAM,QAAQ,GAAkC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,KAAI;QACvE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG;AACzD,QAAA,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE;;AAGvD,QAAA,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,GAAG,YAAY;AAE3E,QAAA,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;AAC3B,YAAA,GAAG,eAAe;AAClB,YAAA,GAAG,KAAK;YACR,GAAG;AACJ,SAAA,CAAC;AAEF,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YACnB,IAAI;YACJ,MAAM,EAAE,UAAU,CAAC,MAAM;AACzB,YAAA,OAAO,EAAE,KAAK;AACf,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI,OAAO,CAAC,WAAW,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE;AACnE,IAAA,CAAC;AAED,IAAA,MAAM,KAAK,GAA+B,CACxC,IAG+B,EAC/B,YAAwC,KAExC,UAAU,CAAC,IAAI;AACb,UAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;YACxB,IAAI,EAAE,CAAC,OAAO,KACZ,QAAQ,IAAI,OAAO;gBACnB,IAAI,CACF,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,EAClC,OAIC,CACF;SACJ;UACD,SAAS,CACP,IAA+C,EAC/C,YAAY,EACZ,IAAI,CACL;AAEP,IAAA,MAAM,UAAU,GAAgC,CAAC,KAAK,KACpD,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;AACxB,QAAA,IAAI,EAAE,CACJ,SAIC,KACC;AACF,YAAA,IACE,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;AAC9D,gBAAA,qBAAqB,CACnB,SAAS,EACR,KAAK,CAAC,SAA2B,IAAI,eAAe,EACrD,aAAa,EACb,KAAK,CAAC,YAAY,CACnB,EACD;gBACA,KAAK,CAAC,QAAQ,CAAC;AACb,oBAAA,MAAM,EAAE,EAAE,GAAG,WAAW,EAAkB;AAC1C,oBAAA,GAAG,UAAU;AACb,oBAAA,GAAG,SAAS;AACZ,oBAAA,aAAa,EACX,cAA0D;AAC7D,iBAAA,CAAC;YACJ;QACF,CAAC;KACF,CAAC,CAAC,WAAW;AAEhB,IAAA,MAAM,SAAS,GAAmC,CAAC,KAAK,KAAI;AAC1D,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI;AACnB,QAAA,wBAAwB,GAAG;AACzB,YAAA,GAAG,wBAAwB;YAC3B,GAAG,KAAK,CAAC,SAAS;SACnB;AACD,QAAA,OAAO,UAAU,CAAC;AAChB,YAAA,GAAG,KAAK;AACR,YAAA,SAAS,EAAE;AACT,gBAAA,GAAG,qBAAqB;gBACxB,GAAG,KAAK,CAAC,SAAS;AACnB,aAAA;AACF,SAAA,CAAC;AACJ,IAAA,CAAC;IAED,MAAM,UAAU,GAAoC,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,KAAI;AACzE,QAAA,KAAK,MAAM,SAAS,IAAI,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE;AACzE,YAAA,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;AAC9B,YAAA,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;AAE9B,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACtB,gBAAA,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC;AACzB,gBAAA,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC;YAC/B;AAEA,YAAA,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC;AACzD,YAAA,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC;AAC9D,YAAA,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC;YAClE,CAAC,OAAO,CAAC,gBAAgB;AACvB,gBAAA,KAAK,CAAC,UAAU,CAAC,gBAAgB,EAAE,SAAS,CAAC;YAC/C,CAAC,QAAQ,CAAC,gBAAgB;gBACxB,CAAC,OAAO,CAAC,gBAAgB;AACzB,gBAAA,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC;QACpC;AAEA,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,YAAA,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;AACjC,SAAA,CAAC;AAEF,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,YAAA,GAAG,UAAU;AACb,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC;AACxD,SAAA,CAAC;AAEF,QAAA,CAAC,OAAO,CAAC,WAAW,IAAI,SAAS,EAAE;AACrC,IAAA,CAAC;IAED,MAAM,iBAAiB,GAA+C,CAAC,EACrE,QAAQ,EACR,IAAI,GACL,KAAI;QACH,IACE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,KAAK;AACpC,YAAA,CAAC,CAAC,QAAQ;YACV,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EACzB;YACA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACrE;AACF,IAAA,CAAC;IAED,MAAM,QAAQ,GAAkC,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,KAAI;QACrE,IAAI,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AAC9B,QAAA,MAAM,iBAAiB,GACrB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC3B,YAAA,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC5B,YAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAElC,QAAA,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;AACjB,YAAA,IAAI,KAAK,IAAI,EAAE,CAAC;AAChB,YAAA,EAAE,EAAE;gBACF,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;gBACrD,IAAI;AACJ,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,GAAG,OAAO;AACX,aAAA;AACF,SAAA,CAAC;AACF,QAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAEtB,IAAI,KAAK,EAAE;AACT,YAAA,iBAAiB,CAAC;AAChB,gBAAA,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ;sBAChC,OAAO,CAAC;sBACR,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ;AAC/B,0BAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI;0BACnC,QAAQ,CAAC,QAAQ;gBACvB,IAAI;AACL,aAAA,CAAC;QACJ;aAAO;YACL,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC;QAChD;QAEA,OAAO;AACL,YAAA,IAAI;AACF,kBAAE;AACE,oBAAA,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ;0BAChC,OAAO,CAAC;0BACR,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ;AAC/B,8BAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI;AACrC,8BAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ;AAC1B;kBACD,EAAE,CAAC;YACP,IAAI,QAAQ,CAAC;AACX,kBAAE;AACE,oBAAA,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;AAC5B,oBAAA,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;AAC9B,oBAAA,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;AAC9B,oBAAA,SAAS,EAAE,YAAY,CAAS,OAAO,CAAC,SAAS,CAAW;AAC5D,oBAAA,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS,CAAW;AACpD,oBAAA,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAW;AACjD;kBACD,EAAE,CAAC;YACP,IAAI;YACJ,QAAQ;AACR,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,GAAG,EAAE,CAAC,GAA4B,KAAU;gBAC1C,IAAI,GAAG,EAAE;AACP,oBAAA,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;AACvB,oBAAA,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AAE1B,oBAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK;0BAClC,GAAG,CAAC;8BACD,GAAG,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAS,IAAI;AAC/D,8BAAE;0BACF,GAAG;AACP,oBAAA,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC;oBACnD,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;AAEhC,oBAAA,IACE;AACE,0BAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAW,KAAK,MAAM,KAAK,QAAQ;0BAC9C,QAAQ,KAAK,KAAK,CAAC,EAAE,CAAC,GAAG,EAC7B;wBACA;oBACF;AAEA,oBAAA,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;AACjB,wBAAA,EAAE,EAAE;4BACF,GAAG,KAAK,CAAC,EAAE;AACX,4BAAA,IAAI;AACF,kCAAE;AACE,oCAAA,IAAI,EAAE;AACJ,wCAAA,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;wCACpB,QAAQ;wCACR,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAC1D,qCAAA;oCACD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;AACnC;AACH,kCAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACvB,yBAAA;AACF,qBAAA,CAAC;oBAEF,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;;oBAGrD,IACE,QAAQ,CAAC,4BAA4B;wBACrC,QAAQ;AACR,wBAAA,UAAU,IAAI,QAAQ;wBACtB,QAAQ,CAAC,QAAQ,EACjB;AACA,wBAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC3B;gBACF;qBAAO;oBACL,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;AAE9B,oBAAA,IAAI,KAAK,CAAC,EAAE,EAAE;AACZ,wBAAA,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,KAAK;oBACxB;AAEA,oBAAA,CAAC,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB;AACpD,wBAAA,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;AAC1D,wBAAA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC5B;YACF,CAAC;SACF;AACH,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,MAClB,QAAQ,CAAC,gBAAgB;QACzB,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC;AAE3D,IAAA,MAAM,YAAY,GAAG,CAAC,QAA6B,KAAI;AACrD,QAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;YACvB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;YAClC,qBAAqB,CACnB,OAAO,EACP,CAAC,GAAG,EAAE,IAAI,KAAI;gBACZ,MAAM,YAAY,GAAU,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;gBAC9C,IAAI,YAAY,EAAE;oBAChB,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ;AAC/C,0BAAE,YAAY,CAAC,EAAE,CAAC;0BAChB,QAAQ;oBAEZ,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;wBACvC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;4BACxC,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ;AACpD,kCAAE,YAAY,CAAC,EAAE,CAAC;kCAChB,QAAQ;AACd,wBAAA,CAAC,CAAC;oBACJ;gBACF;AACF,YAAA,CAAC,EACD,CAAC,EACD,KAAK,CACN;QACH;AAAO,aAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;;;YAGlC,qBAAqB,CACnB,OAAO,EACP,CAAC,GAAG,EAAE,IAAI,KAAI;gBACZ,MAAM,YAAY,GAAU,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;gBAC9C,IAAI,YAAY,EAAE;;oBAEhB,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ;AACxD,0BAAE,YAAY,CAAC,EAAE,CAAC;0BAChB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,oBAAA,GAAG,CAAC,QAAQ,GAAG,eAAe;oBAE9B,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;wBACvC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACxC,4BAAA,QAAQ,CAAC,QAAQ,GAAG,eAAe;AACrC,wBAAA,CAAC,CAAC;oBACJ;gBACF;AACF,YAAA,CAAC,EACD,CAAC,EACD,KAAK,CACN;QACH;AACF,IAAA,CAAC;AAED,IAAA,MAAM,YAAY,GAChB,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAC,KAAI;QAClC,IAAI,YAAY,GAAG,SAAS;QAC5B,IAAI,CAAC,EAAE;AACL,YAAA,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,cAAc,EAAE;AACrC,YAAA,CAA8B,CAAC,OAAO;gBACpC,CAA8B,CAAC,OAAO,EAAE;QAC7C;AACA,QAAA,IAAI,WAAW,GAGa,WAAW,CAAC,WAAW,CAAC;AAEpD,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;AAEF,QAAA,IAAI,QAAQ,CAAC,QAAQ,EAAE;YACrB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,EAAE;AAC7C,YAAA,mBAAmB,EAAE;AACrB,YAAA,UAAU,CAAC,MAAM,GAAG,MAAM;AAC1B,YAAA,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;QACnC;aAAO;AACL,YAAA,MAAM,wBAAwB,CAAC,OAAO,CAAC;QACzC;AAEA,QAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;AACxB,YAAA,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE;AAClC,gBAAA,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC;YAC1B;QACF;AAEA,QAAA,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;AAEhC,QAAA,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AACpC,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,gBAAA,MAAM,EAAE,EAAE;AACX,aAAA,CAAC;AACF,YAAA,IAAI;AACF,gBAAA,MAAM,OAAO,CAAC,WAAiC,EAAE,CAAC,CAAC;YACrD;YAAE,OAAO,KAAK,EAAE;gBACd,YAAY,GAAG,KAAK;YACtB;QACF;aAAO;YACL,IAAI,SAAS,EAAE;gBACb,MAAM,SAAS,CAAC,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9C;AACA,YAAA,WAAW,EAAE;YACb,UAAU,CAAC,WAAW,CAAC;QACzB;AAEA,QAAA,iBAAiB,GAAG,IAAI,CAAC;AACzB,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,YAAY,EAAE,KAAK;YACnB,kBAAkB,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY;AACrE,YAAA,WAAW,EAAE,UAAU,CAAC,WAAW,GAAG,CAAC;AACvC,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,gBAAgB,EAAE,iBAAiB;YACnC,MAAM,EAAE,UAAU,CAAC,MAAM;AAC1B,SAAA,CAAC;QACF,IAAI,YAAY,EAAE;AAChB,YAAA,MAAM,YAAY;QACpB;AACF,IAAA,CAAC;IAEH,MAAM,UAAU,GAAoC,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,KAAI;AACzE,QAAA,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;AACtB,YAAA,IAAI,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACrC,gBAAA,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;YACxD;iBAAO;AACL,gBAAA,QAAQ,CACN,IAAI,EACJ,OAAO,CAAC,YAA2D,CACpE;AACD,gBAAA,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9D;AAEA,YAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AACxB,gBAAA,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC;YACvC;AAEA,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACtB,gBAAA,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC;AACnC,gBAAA,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,sBAAE,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;sBACtD,SAAS,EAAE;YACjB;AAEA,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACtB,gBAAA,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;AAC9B,gBAAA,eAAe,CAAC,OAAO,IAAI,SAAS,EAAE;YACxC;YAEA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;QACzC;AACF,IAAA,CAAC;IAED,MAAM,MAAM,GAA+B,CACzC,UAAU,EACV,gBAAgB,GAAG,EAAE,KACnB;AACF,QAAA,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,cAAc;AAC3E,QAAA,MAAM,kBAAkB,GAAG,WAAW,CAAC,aAAa,CAAC;AACrD,QAAA,MAAM,kBAAkB,GAAG,aAAa,CAAC,UAAU,CAAC;QACpD,MAAM,MAAM,GAAG,kBAAkB,GAAG,cAAc,GAAG,kBAAkB;AAEvE,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;YACvC,cAAc,GAAG,aAAa;QAChC;AAEA,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAChC,YAAA,IAAI,gBAAgB,CAAC,eAAe,EAAE;AACpC,gBAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;oBAC5B,GAAG,MAAM,CAAC,KAAK;oBACf,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAC5D,iBAAA,CAAC;gBACF,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;oBACjD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC;oBACtD,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC;oBACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;oBAEvC,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;AAC1C,wBAAA,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC;oBACvC;yBAAO,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;AAC7C,wBAAA,QAAQ,CAAC,SAAoC,EAAE,QAAQ,CAAC;oBAC1D;gBACF;YACF;iBAAO;AACL,gBAAA,IAAI,KAAK,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE;AACpC,oBAAA,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;wBAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AAChC,wBAAA,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE;4BACrB,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;kCAC9C,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACjB,kCAAE,KAAK,CAAC,EAAE,CAAC,GAAG;AAEhB,4BAAA,IAAI,aAAa,CAAC,cAAc,CAAC,EAAE;gCACjC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;gCAC3C,IAAI,IAAI,EAAE;oCACR,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;oCAC1C;gCACF;4BACF;wBACF;oBACF;gBACF;AAEA,gBAAA,IAAI,gBAAgB,CAAC,aAAa,EAAE;AAClC,oBAAA,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,KAAK,EAAE;wBACpC,QAAQ,CACN,SAAoC,EACpC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CACvB;oBACH;gBACF;qBAAO;oBACL,OAAO,GAAG,EAAE;gBACd;YACF;YAEA,WAAW,GAAG,QAAQ,CAAC;kBACnB,gBAAgB,CAAC;AACjB,sBAAG,WAAW,CAAC,cAAc;AAC7B,sBAAG;AACL,kBAAG,WAAW,CAAC,MAAM,CAAkB;AAEzC,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,gBAAA,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE;AACtB,aAAA,CAAC;AAEF,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,gBAAA,MAAM,EAAE,EAAE,GAAG,MAAM,EAAkB;AACtC,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,GAAG;AACP,YAAA,KAAK,EAAE,gBAAgB,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE;YAClE,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,KAAK,EAAE,IAAI,GAAG,EAAE;YAChB,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,KAAK,EAAE,IAAI,GAAG,EAAE;AAChB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,KAAK,EAAE,EAAE;SACV;AAED,QAAA,MAAM,CAAC,KAAK;YACV,CAAC,eAAe,CAAC,OAAO;gBACxB,CAAC,CAAC,gBAAgB,CAAC,WAAW;gBAC9B,CAAC,CAAC,gBAAgB,CAAC,eAAe;iBACjC,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAExD,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,gBAAgB;QAC1C,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,gBAAgB,CAAC,WAAW;AACnD,QAAA,MAAM,CAAC,MAAM,GAAG,KAAK;;;;AAKrB,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAChC,YAAA,UAAU,CAAC,MAAM,GAAG,EAAE;QACxB;AAEA,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YACnB,WAAW,EAAE,gBAAgB,CAAC;kBAC1B,UAAU,CAAC;AACb,kBAAE,CAAC;AACL,YAAA,OAAO,EAAE;AACP,kBAAE;kBACA,gBAAgB,CAAC;sBACf,UAAU,CAAC;AACb,sBAAE,CAAC,EACC,gBAAgB,CAAC,iBAAiB;AAClC,wBAAA,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CACvC;AACP,YAAA,kBAAkB,EAAE,KAAK;YACzB,gBAAgB,EAAE,iBAAiB;YACnC,WAAW,EAAE,gBAAgB,CAAC;kBAC1B,UAAU,CAAC;AACb,kBAAE,KAAK;AACT,YAAA,WAAW,EAAE;AACX,kBAAE;kBACA,gBAAgB,CAAC;AACjB,sBAAE,gBAAgB,CAAC,iBAAiB,IAAI;AACtC,0BAAE,cAAc,CAAC,cAAc,EAAE,WAAW;0BAC1C,UAAU,CAAC;AACf,sBAAE,gBAAgB,CAAC,iBAAiB,IAAI;AACtC,0BAAE,cAAc,CAAC,cAAc,EAAE,UAAU;0BACzC,gBAAgB,CAAC;8BACf,UAAU,CAAC;AACb,8BAAE,EAAE;YACZ,aAAa,EAAE,gBAAgB,CAAC;kBAC5B,UAAU,CAAC;AACb,kBAAE,EAAE;YACN,YAAY,EAAE,SAAS;AACvB,YAAA,MAAM,EAAE,gBAAgB,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,GAAG,EAAE;YAC5D,kBAAkB,EAAE,gBAAgB,CAAC;kBACjC,UAAU,CAAC;AACb,kBAAE,KAAK;AACT,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,aAAa,EAAE,cAA0D;AAC1E,SAAA,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,KAAK,GAA+B,CAAC,UAAU,EAAE,gBAAgB,KACrE,MAAM,CACJ,UAAU,CAAC,UAAU;AACnB,UAAG,UAAuB,CAAC,WAA2B;AACtD,UAAE,UAAU,EACd,EAAE,GAAG,QAAQ,CAAC,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAClD;IAEH,MAAM,QAAQ,GAAkC,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,KAAI;QACrE,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AAChC,QAAA,MAAM,cAAc,GAAG,KAAK,IAAI,KAAK,CAAC,EAAE;QAExC,IAAI,cAAc,EAAE;AAClB,YAAA,MAAM,QAAQ,GAAG,cAAc,CAAC;AAC9B,kBAAE,cAAc,CAAC,IAAI,CAAC,CAAC;AACvB,kBAAE,cAAc,CAAC,GAAG;AAEtB,YAAA,IAAI,QAAQ,CAAC,KAAK,EAAE;;;gBAGlB,UAAU,CAAC,MAAK;oBACd,QAAQ,CAAC,KAAK,EAAE;AAChB,oBAAA,OAAO,CAAC,YAAY;AAClB,wBAAA,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC3B,QAAQ,CAAC,MAAM,EAAE;AACrB,gBAAA,CAAC,CAAC;YACJ;QACF;AACF,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CACpB,gBAAkD,KAChD;AACF,QAAA,UAAU,GAAG;AACX,YAAA,GAAG,UAAU;AACb,YAAA,GAAG,gBAAgB;SACpB;AACH,IAAA,CAAC;IAED,MAAM,mBAAmB,GAAG,MAC1B,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;QACjC,QAAQ,CAAC,aAA0B,EAAE,CAAC,IAAI,CAAC,CAAC,MAAoB,KAAI;AACnE,YAAA,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC;AACpC,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,gBAAA,SAAS,EAAE,KAAK;AACjB,aAAA,CAAC;YACF,gBAAgB,GAAG,KAAK;AAC1B,QAAA,CAAC,CAAC;IAEJ,MAAM,MAAM,GAAG,MAAK;QAClB,UAAU,CAAC,EAAE,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,gBAAgB,GAAG,CAAC,SAAmB,KAAI;AAC/C,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;AAC3B,YAAA,MAAM,QAAQ,GAAG,SAAS,IAAI,gBAAgB;AAC9C,YAAA,IAAI,UAAU,CAAC,SAAS,KAAK,QAAQ,EAAE;AACrC,gBAAA,UAAU,CAAC,SAAS,GAAG,QAAQ;AAC/B,gBAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,oBAAA,SAAS,EAAE,QAAQ;AACpB,iBAAA,CAAC;YACJ;QACF;aAAO,IAAI,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,EAAE;AAC/C,YAAA,UAAU,CAAC,SAAS,GAAG,gBAAgB;AACvC,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA,CAAC;QACJ;AACF,IAAA,CAAC;IAED,MAAM,4BAA4B,GAAG,MAAK;;;QAGxC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;YACzC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;AAErC,YAAA,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE;;gBAErB,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG;AAEhE,gBAAA,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,EAAE;oBACtC,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAClD,oBAAA,MAAM,qBAAqB,GACzB,QAAQ,CAAC,4BAA4B,IAAI,eAAe;;oBAG1D,IAAI,qBAAqB,EAAE;AACzB,wBAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;oBAChC;yBAAO;AACL,wBAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;oBACnC;gBACF;YACF;AACF,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,QAAoB,KAAI;AAC3C,QAAA,IAAI,SAAoB;QACxB,IAAI,CAAC,QAAQ,EAAE;YACb,SAAS,GAAG,QAAQ,CAAC;AACnB,kBAAE,WAAW,CAAC,QAAQ,CAAC,eAAe;kBACnC,EAAgB;QACvB;aAAO;YACL,SAAS,GAAG,QAAQ;QACtB;AACA,QAAA,UAAU,CAAC,QAAQ,GAAG,SAAS;AAC/B,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,YAAA,QAAQ,EAAE,SAAS;AACpB,SAAA,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,QAA4B,KAAI;QACtD,MAAM,SAAS,GAAG,SAAS,CACzB,UAAU,CAAC,QAAQ,EACnB,QAAwC,CACzC;AACD,QAAA,UAAU,CAAC,QAAQ,GAAG,SAAS;AAC/B,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,YAAA,QAAQ,EAAE,SAAS;AACpB,SAAA,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,OAAO,GAAG;AACd,QAAA,OAAO,EAAE;YACP,QAAQ;YACR,UAAU;YACV,aAAa;YACb,YAAY;YACZ,QAAQ;YACR,UAAU;YACV,UAAU;YACV,mBAAmB;YACnB,WAAW;YACX,SAAS;YACT,SAAS;YACT,SAAS;YACT,cAAc;YACd,iBAAiB;YACjB,UAAU;YACV,cAAc;YACd,MAAM;YACN,mBAAmB;YACnB,gBAAgB;YAChB,YAAY;YACZ,gBAAgB;YAChB,4BAA4B;YAC5B,SAAS;YACT,eAAe;AACf,YAAA,IAAI,OAAO,GAAA;AACT,gBAAA,OAAO,OAAO;YAChB,CAAC;AACD,YAAA,IAAI,WAAW,GAAA;AACb,gBAAA,OAAO,WAAW;YACpB,CAAC;AACD,YAAA,IAAI,MAAM,GAAA;AACR,gBAAA,OAAO,MAAM;YACf,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,EAAA;gBACd,MAAM,GAAG,KAAK;YAChB,CAAC;AACD,YAAA,IAAI,cAAc,GAAA;AAChB,gBAAA,OAAO,cAAc;YACvB,CAAC;AACD,YAAA,IAAI,MAAM,GAAA;AACR,gBAAA,OAAO,MAAM;YACf,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,EAAA;gBACd,MAAM,GAAG,KAAK;YAChB,CAAC;AACD,YAAA,IAAI,UAAU,GAAA;AACZ,gBAAA,OAAO,UAAU;YACnB,CAAC;AACD,YAAA,IAAI,QAAQ,GAAA;AACV,gBAAA,OAAO,QAAQ;YACjB,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,EAAA;AAChB,gBAAA,QAAQ,GAAG;AACT,oBAAA,GAAG,QAAQ;AACX,oBAAA,GAAG,KAAK;iBACT;YACH,CAAC;AACF,SAAA;QACD,SAAS;QACT,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,KAAK;QACL,QAAQ;QACR,SAAS;QACT,KAAK;QACL,UAAU;QACV,WAAW;QACX,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,aAAa;QACb,EAAE;QACF,MAAM;QACN,WAAW;QACX,cAAc;KACf;IAED,OAAO;AACL,QAAA,GAAG,OAAO;AACV,QAAA,WAAW,EAAE,OAAO;KACrB;AACH;;;;"}