@angular/forms 19.0.0-next.1 → 19.0.0-next.11

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 (47) hide show
  1. package/LICENSE +21 -0
  2. package/fesm2022/forms.mjs +186 -132
  3. package/fesm2022/forms.mjs.map +1 -1
  4. package/index.d.ts +6 -5
  5. package/package.json +4 -6
  6. package/esm2022/forms.mjs +0 -5
  7. package/esm2022/index.mjs +0 -13
  8. package/esm2022/public_api.mjs +0 -15
  9. package/esm2022/src/directives/abstract_control_directive.mjs +0 -279
  10. package/esm2022/src/directives/abstract_form_group_directive.mjs +0 -61
  11. package/esm2022/src/directives/checkbox_value_accessor.mjs +0 -58
  12. package/esm2022/src/directives/control_container.mjs +0 -32
  13. package/esm2022/src/directives/control_value_accessor.mjs +0 -92
  14. package/esm2022/src/directives/default_value_accessor.mjs +0 -124
  15. package/esm2022/src/directives/error_examples.mjs +0 -57
  16. package/esm2022/src/directives/form_interface.mjs +0 -9
  17. package/esm2022/src/directives/ng_control.mjs +0 -38
  18. package/esm2022/src/directives/ng_control_status.mjs +0 -139
  19. package/esm2022/src/directives/ng_form.mjs +0 -313
  20. package/esm2022/src/directives/ng_model.mjs +0 -331
  21. package/esm2022/src/directives/ng_model_group.mjs +0 -95
  22. package/esm2022/src/directives/ng_no_validate_directive.mjs +0 -39
  23. package/esm2022/src/directives/number_value_accessor.mjs +0 -70
  24. package/esm2022/src/directives/radio_control_value_accessor.mjs +0 -201
  25. package/esm2022/src/directives/range_value_accessor.mjs +0 -72
  26. package/esm2022/src/directives/reactive_directives/form_control_directive.mjs +0 -183
  27. package/esm2022/src/directives/reactive_directives/form_control_name.mjs +0 -216
  28. package/esm2022/src/directives/reactive_directives/form_group_directive.mjs +0 -359
  29. package/esm2022/src/directives/reactive_directives/form_group_name.mjs +0 -246
  30. package/esm2022/src/directives/reactive_errors.mjs +0 -119
  31. package/esm2022/src/directives/select_control_value_accessor.mjs +0 -220
  32. package/esm2022/src/directives/select_multiple_control_value_accessor.mjs +0 -252
  33. package/esm2022/src/directives/shared.mjs +0 -350
  34. package/esm2022/src/directives/template_driven_errors.mjs +0 -54
  35. package/esm2022/src/directives/validators.mjs +0 -505
  36. package/esm2022/src/directives.mjs +0 -128
  37. package/esm2022/src/errors.mjs +0 -9
  38. package/esm2022/src/form_builder.mjs +0 -258
  39. package/esm2022/src/form_providers.mjs +0 -105
  40. package/esm2022/src/forms.mjs +0 -49
  41. package/esm2022/src/model/abstract_model.mjs +0 -992
  42. package/esm2022/src/model/form_array.mjs +0 -461
  43. package/esm2022/src/model/form_control.mjs +0 -126
  44. package/esm2022/src/model/form_group.mjs +0 -490
  45. package/esm2022/src/util.mjs +0 -13
  46. package/esm2022/src/validators.mjs +0 -680
  47. package/esm2022/src/version.mjs +0 -18
@@ -1,49 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /**
9
- * @module
10
- * @description
11
- * This module is used for handling user input, by defining and building a `FormGroup` that
12
- * consists of `FormControl` objects, and mapping them onto the DOM. `FormControl`
13
- * objects can then be used to read information from the form DOM elements.
14
- *
15
- * Forms providers are not included in default providers; you must import these providers
16
- * explicitly.
17
- */
18
- export { ɵInternalFormsSharedModule } from './directives';
19
- export { AbstractControlDirective } from './directives/abstract_control_directive';
20
- export { AbstractFormGroupDirective } from './directives/abstract_form_group_directive';
21
- export { CheckboxControlValueAccessor } from './directives/checkbox_value_accessor';
22
- export { ControlContainer } from './directives/control_container';
23
- export { NG_VALUE_ACCESSOR } from './directives/control_value_accessor';
24
- export { COMPOSITION_BUFFER_MODE, DefaultValueAccessor } from './directives/default_value_accessor';
25
- export { NgControl } from './directives/ng_control';
26
- export { NgControlStatus, NgControlStatusGroup } from './directives/ng_control_status';
27
- export { NgForm } from './directives/ng_form';
28
- export { NgModel } from './directives/ng_model';
29
- export { NgModelGroup } from './directives/ng_model_group';
30
- export { ɵNgNoValidate } from './directives/ng_no_validate_directive';
31
- export { NumberValueAccessor } from './directives/number_value_accessor';
32
- export { RadioControlValueAccessor } from './directives/radio_control_value_accessor';
33
- export { RangeValueAccessor } from './directives/range_value_accessor';
34
- export { FormControlDirective } from './directives/reactive_directives/form_control_directive';
35
- export { FormControlName } from './directives/reactive_directives/form_control_name';
36
- export { FormGroupDirective } from './directives/reactive_directives/form_group_directive';
37
- export { FormArrayName, FormGroupName } from './directives/reactive_directives/form_group_name';
38
- export { NgSelectOption, SelectControlValueAccessor, } from './directives/select_control_value_accessor';
39
- export { SelectMultipleControlValueAccessor, ɵNgSelectMultipleOption, } from './directives/select_multiple_control_value_accessor';
40
- export { CheckboxRequiredValidator, EmailValidator, MaxLengthValidator, MaxValidator, MinLengthValidator, MinValidator, PatternValidator, RequiredValidator, } from './directives/validators';
41
- export { FormBuilder, NonNullableFormBuilder, UntypedFormBuilder, } from './form_builder';
42
- export { AbstractControl, ControlEvent, FormResetEvent, FormSubmittedEvent, PristineChangeEvent, StatusChangeEvent, TouchedChangeEvent, ValueChangeEvent, } from './model/abstract_model';
43
- export { FormArray, isFormArray, UntypedFormArray, } from './model/form_array';
44
- export { FormControl, isFormControl, UntypedFormControl, } from './model/form_control';
45
- export { FormGroup, FormRecord, isFormGroup, isFormRecord, UntypedFormGroup, } from './model/form_group';
46
- export { NG_ASYNC_VALIDATORS, NG_VALIDATORS, Validators } from './validators';
47
- export { VERSION } from './version';
48
- export * from './form_providers';
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3Jtcy9zcmMvZm9ybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7Ozs7Ozs7OztHQVNHO0FBRUgsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RixPQUFPLEVBQUMsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUVsRyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDOUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUM3RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDbkYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDekYsT0FBTyxFQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUM5RixPQUFPLEVBQ0wsY0FBYyxFQUNkLDBCQUEwQixHQUMzQixNQUFNLDRDQUE0QyxDQUFDO0FBQ3BELE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMsdUJBQXVCLEdBQ3hCLE1BQU0scURBQXFELENBQUM7QUFFN0QsT0FBTyxFQUdMLHlCQUF5QixFQUN6QixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixpQkFBaUIsR0FJbEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBRUwsV0FBVyxFQUNYLHNCQUFzQixFQUN0QixrQkFBa0IsR0FFbkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsZUFBZSxFQUVmLFlBQVksRUFFWixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQVNqQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLGdCQUFnQixHQUdqQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxXQUFXLEVBR1gsYUFBYSxFQUNiLGtCQUFrQixHQUVuQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osZ0JBQWdCLEdBSWpCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDNUUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVsQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQG1vZHVsZVxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGlzIG1vZHVsZSBpcyB1c2VkIGZvciBoYW5kbGluZyB1c2VyIGlucHV0LCBieSBkZWZpbmluZyBhbmQgYnVpbGRpbmcgYSBgRm9ybUdyb3VwYCB0aGF0XG4gKiBjb25zaXN0cyBvZiBgRm9ybUNvbnRyb2xgIG9iamVjdHMsIGFuZCBtYXBwaW5nIHRoZW0gb250byB0aGUgRE9NLiBgRm9ybUNvbnRyb2xgXG4gKiBvYmplY3RzIGNhbiB0aGVuIGJlIHVzZWQgdG8gcmVhZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBmb3JtIERPTSBlbGVtZW50cy5cbiAqXG4gKiBGb3JtcyBwcm92aWRlcnMgYXJlIG5vdCBpbmNsdWRlZCBpbiBkZWZhdWx0IHByb3ZpZGVyczsgeW91IG11c3QgaW1wb3J0IHRoZXNlIHByb3ZpZGVyc1xuICogZXhwbGljaXRseS5cbiAqL1xuXG5leHBvcnQge8m1SW50ZXJuYWxGb3Jtc1NoYXJlZE1vZHVsZX0gZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCB7QWJzdHJhY3RDb250cm9sRGlyZWN0aXZlfSBmcm9tICcuL2RpcmVjdGl2ZXMvYWJzdHJhY3RfY29udHJvbF9kaXJlY3RpdmUnO1xuZXhwb3J0IHtBYnN0cmFjdEZvcm1Hcm91cERpcmVjdGl2ZX0gZnJvbSAnLi9kaXJlY3RpdmVzL2Fic3RyYWN0X2Zvcm1fZ3JvdXBfZGlyZWN0aXZlJztcbmV4cG9ydCB7Q2hlY2tib3hDb250cm9sVmFsdWVBY2Nlc3Nvcn0gZnJvbSAnLi9kaXJlY3RpdmVzL2NoZWNrYm94X3ZhbHVlX2FjY2Vzc29yJztcbmV4cG9ydCB7Q29udHJvbENvbnRhaW5lcn0gZnJvbSAnLi9kaXJlY3RpdmVzL2NvbnRyb2xfY29udGFpbmVyJztcbmV4cG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICcuL2RpcmVjdGl2ZXMvY29udHJvbF92YWx1ZV9hY2Nlc3Nvcic7XG5leHBvcnQge0NPTVBPU0lUSU9OX0JVRkZFUl9NT0RFLCBEZWZhdWx0VmFsdWVBY2Nlc3Nvcn0gZnJvbSAnLi9kaXJlY3RpdmVzL2RlZmF1bHRfdmFsdWVfYWNjZXNzb3InO1xuZXhwb3J0IHtGb3JtfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9ybV9pbnRlcmZhY2UnO1xuZXhwb3J0IHtOZ0NvbnRyb2x9IGZyb20gJy4vZGlyZWN0aXZlcy9uZ19jb250cm9sJztcbmV4cG9ydCB7TmdDb250cm9sU3RhdHVzLCBOZ0NvbnRyb2xTdGF0dXNHcm91cH0gZnJvbSAnLi9kaXJlY3RpdmVzL25nX2NvbnRyb2xfc3RhdHVzJztcbmV4cG9ydCB7TmdGb3JtfSBmcm9tICcuL2RpcmVjdGl2ZXMvbmdfZm9ybSc7XG5leHBvcnQge05nTW9kZWx9IGZyb20gJy4vZGlyZWN0aXZlcy9uZ19tb2RlbCc7XG5leHBvcnQge05nTW9kZWxHcm91cH0gZnJvbSAnLi9kaXJlY3RpdmVzL25nX21vZGVsX2dyb3VwJztcbmV4cG9ydCB7ybVOZ05vVmFsaWRhdGV9IGZyb20gJy4vZGlyZWN0aXZlcy9uZ19ub192YWxpZGF0ZV9kaXJlY3RpdmUnO1xuZXhwb3J0IHtOdW1iZXJWYWx1ZUFjY2Vzc29yfSBmcm9tICcuL2RpcmVjdGl2ZXMvbnVtYmVyX3ZhbHVlX2FjY2Vzc29yJztcbmV4cG9ydCB7UmFkaW9Db250cm9sVmFsdWVBY2Nlc3Nvcn0gZnJvbSAnLi9kaXJlY3RpdmVzL3JhZGlvX2NvbnRyb2xfdmFsdWVfYWNjZXNzb3InO1xuZXhwb3J0IHtSYW5nZVZhbHVlQWNjZXNzb3J9IGZyb20gJy4vZGlyZWN0aXZlcy9yYW5nZV92YWx1ZV9hY2Nlc3Nvcic7XG5leHBvcnQge0Zvcm1Db250cm9sRGlyZWN0aXZlfSBmcm9tICcuL2RpcmVjdGl2ZXMvcmVhY3RpdmVfZGlyZWN0aXZlcy9mb3JtX2NvbnRyb2xfZGlyZWN0aXZlJztcbmV4cG9ydCB7Rm9ybUNvbnRyb2xOYW1lfSBmcm9tICcuL2RpcmVjdGl2ZXMvcmVhY3RpdmVfZGlyZWN0aXZlcy9mb3JtX2NvbnRyb2xfbmFtZSc7XG5leHBvcnQge0Zvcm1Hcm91cERpcmVjdGl2ZX0gZnJvbSAnLi9kaXJlY3RpdmVzL3JlYWN0aXZlX2RpcmVjdGl2ZXMvZm9ybV9ncm91cF9kaXJlY3RpdmUnO1xuZXhwb3J0IHtGb3JtQXJyYXlOYW1lLCBGb3JtR3JvdXBOYW1lfSBmcm9tICcuL2RpcmVjdGl2ZXMvcmVhY3RpdmVfZGlyZWN0aXZlcy9mb3JtX2dyb3VwX25hbWUnO1xuZXhwb3J0IHtcbiAgTmdTZWxlY3RPcHRpb24sXG4gIFNlbGVjdENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxufSBmcm9tICcuL2RpcmVjdGl2ZXMvc2VsZWN0X2NvbnRyb2xfdmFsdWVfYWNjZXNzb3InO1xuZXhwb3J0IHtcbiAgU2VsZWN0TXVsdGlwbGVDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgybVOZ1NlbGVjdE11bHRpcGxlT3B0aW9uLFxufSBmcm9tICcuL2RpcmVjdGl2ZXMvc2VsZWN0X211bHRpcGxlX2NvbnRyb2xfdmFsdWVfYWNjZXNzb3InO1xuZXhwb3J0IHtTZXREaXNhYmxlZFN0YXRlT3B0aW9ufSBmcm9tICcuL2RpcmVjdGl2ZXMvc2hhcmVkJztcbmV4cG9ydCB7XG4gIEFzeW5jVmFsaWRhdG9yLFxuICBBc3luY1ZhbGlkYXRvckZuLFxuICBDaGVja2JveFJlcXVpcmVkVmFsaWRhdG9yLFxuICBFbWFpbFZhbGlkYXRvcixcbiAgTWF4TGVuZ3RoVmFsaWRhdG9yLFxuICBNYXhWYWxpZGF0b3IsXG4gIE1pbkxlbmd0aFZhbGlkYXRvcixcbiAgTWluVmFsaWRhdG9yLFxuICBQYXR0ZXJuVmFsaWRhdG9yLFxuICBSZXF1aXJlZFZhbGlkYXRvcixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JGbixcbn0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMnO1xuZXhwb3J0IHtcbiAgQ29udHJvbENvbmZpZyxcbiAgRm9ybUJ1aWxkZXIsXG4gIE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgybVFbGVtZW50LFxufSBmcm9tICcuL2Zvcm1fYnVpbGRlcic7XG5leHBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEFic3RyYWN0Q29udHJvbE9wdGlvbnMsXG4gIENvbnRyb2xFdmVudCxcbiAgRm9ybUNvbnRyb2xTdGF0dXMsXG4gIEZvcm1SZXNldEV2ZW50LFxuICBGb3JtU3VibWl0dGVkRXZlbnQsXG4gIFByaXN0aW5lQ2hhbmdlRXZlbnQsXG4gIFN0YXR1c0NoYW5nZUV2ZW50LFxuICBUb3VjaGVkQ2hhbmdlRXZlbnQsXG4gIFZhbHVlQ2hhbmdlRXZlbnQsXG4gIMm1Q29lcmNlU3RyQXJyVG9OdW1BcnIsXG4gIMm1R2V0UHJvcGVydHksXG4gIMm1TmF2aWdhdGUsXG4gIMm1UmF3VmFsdWUsXG4gIMm1VG9rZW5pemUsXG4gIMm1VHlwZWRPclVudHlwZWQsXG4gIMm1VmFsdWUsXG4gIMm1V3JpdGVhYmxlLFxufSBmcm9tICcuL21vZGVsL2Fic3RyYWN0X21vZGVsJztcbmV4cG9ydCB7XG4gIEZvcm1BcnJheSxcbiAgaXNGb3JtQXJyYXksXG4gIFVudHlwZWRGb3JtQXJyYXksXG4gIMm1Rm9ybUFycmF5UmF3VmFsdWUsXG4gIMm1Rm9ybUFycmF5VmFsdWUsXG59IGZyb20gJy4vbW9kZWwvZm9ybV9hcnJheSc7XG5leHBvcnQge1xuICBGb3JtQ29udHJvbCxcbiAgRm9ybUNvbnRyb2xPcHRpb25zLFxuICBGb3JtQ29udHJvbFN0YXRlLFxuICBpc0Zvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIMm1Rm9ybUNvbnRyb2xDdG9yLFxufSBmcm9tICcuL21vZGVsL2Zvcm1fY29udHJvbCc7XG5leHBvcnQge1xuICBGb3JtR3JvdXAsXG4gIEZvcm1SZWNvcmQsXG4gIGlzRm9ybUdyb3VwLFxuICBpc0Zvcm1SZWNvcmQsXG4gIFVudHlwZWRGb3JtR3JvdXAsXG4gIMm1Rm9ybUdyb3VwUmF3VmFsdWUsXG4gIMm1Rm9ybUdyb3VwVmFsdWUsXG4gIMm1T3B0aW9uYWxLZXlzLFxufSBmcm9tICcuL21vZGVsL2Zvcm1fZ3JvdXAnO1xuZXhwb3J0IHtOR19BU1lOQ19WQUxJREFUT1JTLCBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3JzfSBmcm9tICcuL3ZhbGlkYXRvcnMnO1xuZXhwb3J0IHtWRVJTSU9OfSBmcm9tICcuL3ZlcnNpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2Zvcm1fcHJvdmlkZXJzJztcbiJdfQ==