6maybeOfofchild	onWillPopcanPoponPopInvokedonPopInvokedWithResult	onChangedautovalidateMode_callPopInvokedcreateState_generation_hasInteractedByUser_fields_fieldDidChange_forceRebuild	_register_unregister_updateFieldbuildsaveresetvalidatevalidateGranularly	_validate
_formStateformupdateShouldNotifyonSavedforceErrorText	validatorbuilderinitialValueenabledrestorationId_value
_errorText
_focusNodevalue	errorTexthasErrorhasInteractedByUserisValid	didChangesetValuerestoreState
deactivate	initStatedidUpdateWidgetdisposedisabledalwaysonUserInteraction	onUnfocus
_kIOSAnnouncementDelayDurationForm	FormState
_FormScopeFormFieldValidatorFormFieldSetterFormFieldBuilder	FormFieldFormFieldStateAutovalidateModetDurationseconds	TextFieldof	GlobalKeycurrentStateTextFormFieldElevatedButtonStatefulWidget
DeprecateddisabledBuildContext"dependOnInheritedWidgetOfExactType
_formStatemaybeOfFlutterErrorWidget
ModalRouteWillPopScopeWillPopCallbackPopScopecanPopboolPopInvokedCallbackonPopInvokedWithResultPopInvokedWithResultCallbackObjectVoidCallbackvoidcalloverrideStateintSetdynamicwidget	onChangedanyfield_hasInteractedByUservaluesetStateaddautovalidateMode	onUnfocus
_focusNodeaddListenerremoveremoveListenerhasFocusalwaysonUserInteractiononPopInvoked_callPopInvokedchild	formState
generation	onWillPopsaveinitialValueresetStringvalidate	errorTextinvalidFields
isNotEmptyTextDirectionDirectionalitycontextdefaultTargetPlatformTargetPlatformiOS	unawaitedFuturedelayedSemanticsServiceannounceassertivenessAssertiveness	assertiveInheritedWidget_generation	validatorTonSavedbuilderInputDecorationSizedBox
helperTextDropdownButtonFormFieldDropdownButtonRestorationBucketRestorationScopeRestorationManagerRestorationMixinRestorableStringNRestorableBool	FocusNodeforceErrorText_fieldDidChangeSlider	protectedrestorationIdregisterForRestoration_unregister
deactivate	initStatedidUpdateWidgetdisposeenabled	_registerFocuscanRequestFocusskipTraversalonFocusChange	focusNodeStatefulWidgetStateInheritedWidgetRestorationMixin[5_t]E\       
dart:async  &   package:flutter/foundation.dart  P   package:flutter/rendering.dart  z   
basic.dart     focus_manager.dart     focus_scope.dart     framework.dart     navigator.dart     pop_scope.dart     restoration.dart  -   restoration_properties.dart  S   routes.dart  i   will_pop_scope.dart B  e <Ձ$%OxyƁ߁,Rh-.FdeуՄ$pUEtxǆˇ-1q!EpɈ39Pq'O?Ehn|ɌύAGW]ōQost׎ݏ =PZ`ԏڐ*;AQWɐ*:Yu̒t!+BFGw}œ˓cהZpJPfCU[kqʗ>TUϙ
89y*0rm>RstĜМ֝;<r˝ٝߝ:<=hl#I`џҠ\w6H]eij4:>?sϣPvǣ'Vz¤a9XclrsȦ(/34w§֧ܧ0PV0kéĪ:@sy֫#DYquvZ`PŭڭYt,nЯ5Yckqrܱ?u}̲:Z|}MstʹϴдGVZ} !Z[÷%)xU+/o.2@DӺ"6E`rϻXY¼8T8>NT @ @H @h @i @ @ @ AF A A A A BC B B C+ CG Cq Cr C D
 D0 DU DV D D D E  E& El E F Fn F F F F G Gk G G G H H H$ Ha H H I4 Iy I I I I I J5 J; J J J K KX K^ Kn Kt K K K K K L9 L; L< L L M M5 Mf M M N N4 N5 N` Nz N{ N O O0 O6 O O P P/ P0 Pd P P P P Q0 QT Q Q Q Q R R! R' R7 R= R R R S; S< S S S S S S S T T+ TU Tt T| T T T U Uq Uw U U U U V# V7 VI V\ Vd Vz V~ V V V V W W( W. WR W W W W W W X	 XR XX X X Y Y< YN Yd Y Y Y Y Y Y Z ZN Z Z [4 [P [] [ [ [ [ [ [ \$ \% \1 \z \ \ ]  ] ] ]# ]Q ]i ]m ]n ]z ] ] ] ] ] ] ^# ^I ^ ^ ^ ^ ^ ^ ^ ^ _ _8 _M _Q _R _^ _ _ _ _ ` `6 `b `{ ` ` ` ` ` ` ` a$ a% a a b b( bE bk b b b b b b b c# c, c2 c3 cT cX cY c[ c\ c c c c c dE dO dP d d d d e e e% e e e e   _/// @docImport 'package:flutter/material.dart';
/// @docImport 'package:flutter/services.dart';  %  O  y              ,  R  h    eֈ'/// An optional container for grouping together multiple form field widgets
/// (e.g. [TextField] widgets).
///
/// Each individual form field should be wrapped in a [FormField] widget, with
/// the [Form] widget as a common ancestor of all of those. Call methods on
/// [FormState] to save, reset, or validate each [FormField] that is a
/// descendant of this [Form]. To obtain the [FormState], you may use [Form.of]
/// with a context whose ancestor is the [Form], or pass a [GlobalKey] to the
/// [Form] constructor and call [GlobalKey.currentState].
///
/// {@tool dartpad}
/// This example shows a [Form] with one [TextFormField] to enter an email
/// address and an [ElevatedButton] to submit the form. A [GlobalKey] is used here
/// to identify the [Form] and validate input.
///
/// ![](https://flutter.github.io/assets-for-api-docs/assets/widgets/form.png)
///
/// ** See code in examples/api/lib/widgets/form/form.0.dart **
/// {@end-tool}
///
/// See also:
///
///  * [GlobalKey], a key that is unique across the entire app.
///  * [FormField], a single form field widget that maintains the current state.
///  * [TextFormField], a convenience widget that wraps a [TextField] widget in a [FormField]. Gy x|(/// Creates a container for form fields.	      C  TZ  u	    +">  3ǉ7ψuvÊgVzi}܋ŊՊȊ؊ދ &xd'b[(YP@)CS^qgtzIǔ/// The widget below this widget in the tree.
///
/// This is the root of the widget hierarchy that contains this form.
///
/// {@macro flutter.widgets.ProxyWidget.child} H/// Enables the form to veto attempts by the user to dismiss the [ModalRoute]
/// that contains the form.
///
/// If the callback returns a Future that resolves to false, the form's route
/// will not be popped.
///
/// See also:
///
///  * [WillPopScope], another widget that provides a way to intercept the
///    back button.rs}5L/// {@macro flutter.widgets.PopScope.canPop}
///
/// {@tool dartpad}
/// This sample demonstrates how to use this parameter to show a confirmation
/// dialog when a navigation pop would cause form data to be lost.
///
/// ** See code in examples/api/lib/widgets/form/form.1.dart **
/// {@end-tool}
///
/// See also:
///
///  * [onPopInvokedWithResult], which also comes from [PopScope] and is often used in
///    conjunction with this parameter.
///  * [PopScope.canPop], which is what [Form] delegates to internally. Wߙ*=/// {@macro flutter.widgets.navigator.onPopInvokedWithResult}ә;w/// {@macro flutter.widgets.navigator.onPopInvokedWithResult}
///
/// {@tool dartpad}
/// This sample demonstrates how to use this parameter to show a confirmation
/// dialog when a navigation pop would cause form data to be lost.
///
/// ** See code in examples/api/lib/widgets/form/form.1.dart **
/// {@end-tool}
///
/// See also:
///
///  * [canPop], which also comes from [PopScope] and is often used in
///    conjunction with this parameter.
///  * [PopScope.onPopInvokedWithResult], which is what [Form] delegates to internally. h/// Called when one of the form fields changes.
///
/// In addition to this callback being invoked, all the form fields themselves
/// will rebuild. vÝ)/// Used to enable/disable form fields auto validation and update their error
/// text.
///
/// {@macro flutter.widgets.FormField.autovalidateMode}  Ăف/// Returns the [FormState] of the closest [Form] widget which encloses the
/// given context, or null if none is found.
///
/// Typical usage is as follows:
///
/// ```dart
/// FormState? form = Form.maybeOf(context);
/// form?.save();
/// ```
///
/// Calling this method will create a dependency on the closest [Form] in the
/// [context], if there is one.
///
/// See also:
///
/// * [Form.of], which is similar to this method, but asserts if no [Form]
///   ancestor is found.    vϐ܂,/// Returns the [FormState] of the closest [Form] widget which encloses the
/// given context.
///
/// Typical usage is as follows:
///
/// ```dart
/// FormState form = Form.of(context);
/// form.save();
/// ```
///
/// If no [Form] ancestor is found, this will assert in debug mode, and throw
/// an exception in release mode.
///
/// Calling this method will create a dependency on the closest [Form] in the
/// [context].
///
/// See also:
///
/// * [Form.maybeOf], which is similar to this method, but returns null if no
///   [Form] ancestor is found.    >ĝC  SY  `i   3    =b)/// State associated with a [Form] widget.
///
/// A [FormState] object can be used to [save], [reset], and [validate] every
/// [FormField] that is a descendant of the associated [Form].
///
/// Typically obtained via [Form.of].  KO ]b!g ~H ͟Ο̟ß˟ ^c    I$    lѡq  {   AآF  Rk   u"  /H       6~@/// Saves every [FormField] that is a descendant of this [Form].   ߩ&//// Resets every [FormField] that is a descendant of this [Form] back to its
/// [FormField.initialValue].
///
/// The [Form.onChanged] callback will be called.
///
/// If the form's [Form.autovalidateMode] property is [AutovalidateMode.always],
/// the fields will all be revalidated after being reset.   Ɓ:/// Validates every [FormField] that is a descendant of this [Form], and
/// returns true if there are no errors.
///
/// The form will rebuild to report the results.
///
/// See also:
///  * [validateGranularly], which also validates descendant [FormField]s,
/// but instead returns a [Set] of fields with errors.   x9/// Validates every [FormField] that is a descendant of this [Form], and
/// returns a [Set] of [FormFieldState] of the invalid field(s) only, if any.
///
/// This method can be useful to highlight field(s) with errors.
///
/// The form will rebuild to report the results.
///
/// See also:
///  * [validate], which also validates descendant [FormField]s,
/// and return true if there are no errors.     )+H    -  ΀ Բ     !/  MBOnbp  ~d/// Incremented every time a form field has changed. This lets us know when
/// to rebuild the form. !QX+/// The [Form] associated with this widget.   vV    vw .ك/// A single form field.
///
/// This widget maintains the current state of the form field, so that updates
/// and validation errors are visually reflected in the UI.
///
/// When used inside a [Form], you can use methods on [FormState] to query or
/// manipulate the form data as a whole. For example, calling [FormState.save]
/// will invoke each [FormField]'s [onSaved] callback in turn.
///
/// Use a [GlobalKey] with [FormField] if you want to retrieve its current
/// state, for example if you want one form field to depend on another.
///
/// A [Form] ancestor is not required. The [Form] allows one to
/// save, reset, or validate multiple fields at once. To use without a [Form],
/// pass a [GlobalKey] to the constructor and use [GlobalKey.currentState] to
/// save or reset the form field.
///
/// See also:
///
///  * [Form], which is the widget that aggregates the form fields.
///  * [TextField], which is a commonly used form field for entering text.V *3 /// Creates a single form field.	:	A  IX  dj  v|        "    ɼ':)=MN[d/// An optional method to call with the final value when the form is saved via
/// [FormState.save]. | @X?/// An optional property that forces the [FormFieldState] into an error state
/// by directly setting the [FormFieldState.errorText] property without
/// running the validator function.
///
/// When the [forceErrorText] property is provided, the [FormFieldState.errorText]
/// will be set to the provided value, causing the form field to be considered
/// invalid and to display the error message specified.
///
/// When [validator] is provided, [forceErrorText] will override any error that it
/// returns. [validator] will not be called unless [forceErrorText] is null.
///
/// See also:
///
/// * [InputDecoration.errorText], which is used to display error messages in the text
/// field's decoration without effecting the field's state. When [forceErrorText] is
/// not null, it will override [InputDecoration.errorText] value.  @k Cf/// An optional method that validates an input. Returns an error string to
/// display if the input is invalid, or null otherwise.
///
/// The returned value is exposed by the [FormFieldState.errorText] property.
/// The [TextFormField] uses this to override the [InputDecoration.errorText]
/// value.
///
/// Alternating between error and normal state can cause the height of the
/// [TextFormField] to change if no other subtext decoration is set on the
/// field. To create a field whose height is fixed regardless of whether or
/// not an error is displayed, either wrap the  [TextFormField] in a fixed
/// height parent like [SizedBox], or set the [InputDecoration.helperText]
/// parameter to a space.  Ct DL/// Function that returns the widget representing this form field. It is
/// passed the form field state as input, containing the current value and
/// validation state of this field.  DX- Fy/// An optional value to initialize the form field to, or null otherwise.
///
/// This is called `value` in the [DropdownButtonFormField] constructor to be
/// consistent with [DropdownButton].
///
/// The `initialValue` affects the form field's state in two cases:
/// 1. When the form field is first built, `initialValue` determines the field's initial state.
/// 2. When [FormFieldState.reset] is called (either directly or by calling
///    [FormFieldState.reset]), the form field is reset to this `initialValue`.  F3 G/// Whether the form is able to receive user input.
///
/// Defaults to true. If [autovalidateMode] is not [AutovalidateMode.disabled],
/// the field will be auto validated. Likewise, if this field is false, the widget
/// will not be validated regardless of [autovalidateMode].  G* I܁/// Used to enable/disable this form field auto validation and update its
/// error text.
///
/// {@template flutter.widgets.FormField.autovalidateMode}
/// If [AutovalidateMode.onUserInteraction], this FormField will only
/// auto-validate after its content changes. If [AutovalidateMode.always], it
/// will auto-validate even without user interaction. If
/// [AutovalidateMode.disabled], auto-validation will be disabled.
///
/// Defaults to [AutovalidateMode.disabled].
/// {@endtemplate}  I K/// Restoration ID to save and restore the state of the form field.
///
/// Setting the restoration ID to a non-null value results in whether or not
/// the form field validation persists.
///
/// The state of this widget is persisted in a [RestorationBucket] claimed
/// from the surrounding [RestorationScope] using the provided restoration ID.
///
/// See also:
///
///  * [RestorationManager], which explains how state restoration works in
///    Flutter.   KC L    K K  L< Lǀ/// The current state of a [FormField]. Passed to the [FormFieldBuilder] method
/// for use in constructing the form field's widget. L L  M$ M  M  M& M' M' M   MA M  M M N N  N
( N  N' N0 N1 N7B Ni(/// The current value of the form field.    N} Px/// The current validation error returned by the [FormField.validator]
/// callback, or the manually provided error message using the
/// [FormField.forceErrorText] property.
///
/// This property is automatically updated when [validate] is called and the
/// [FormField.validator] callback is invoked, or If [FormField.forceErrorText] is set
/// directly to a non-null value.    P2b Po1/// True if this field has any validation errors.    P Q_/// Returns true if the user has modified the value of this field.
///
/// This only updates to true once [didChange] has been called and resets to
/// false when [reset] is called.    Q R4/// True if the current value is valid.
///
/// This will not set [errorText] or [hasError] and it will not update
/// error display.
///
/// See also:
///
///  * [validate], which may update [errorText] and [hasError].
///
///  * [FormField.forceErrorText], which also may update [errorText] and [hasError].    [> [    [ [ S>w SB/// Calls the [FormField]'s onSaved method with the current value.    S S*/// Resets the field to its initial value.    T V*c/// Calls [FormField.validator] to set the [errorText] only if [FormField.forceErrorText] is null.
/// When [FormField.forceErrorText] is not null, [FormField.validator] will not be called.
///
/// Returns true if there were no errors.
/// See also:
///
///  * [isValid], which passively gets the validity without setting
///    [errorText] or [hasError].    V: V     W Y&U/// Updates this field's state to the new value. Useful for responding to
/// child widget changes, e.g. [Slider]'s [Slider.onChanged] argument.
///
/// Triggers the [Form.onChanged] callback and, if [Form.autovalidateMode] is
/// [AutovalidateMode.always] or [AutovalidateMode.onUserInteraction],
/// revalidates all the fields of the form.  Y0 Y4    Yʂ [y/// Sets the value associated with this form field.
///
/// This method should only be called by subclasses that need to update
/// the form field value due to state changes identified during the widget
/// build phase, when calling `setState` is prohibited. In all other cases,
/// the value should be set by a call to [didChange], which ensures that
/// `setState` is called.  [ [   [R [S \' \8   \E \Y   \c \i   \' \( ]i ]    ] ] ]pt ]    ]p ]q ] ]   ^	 ^   ] ] ^À ^    ^ ^ _T _g   _m _{   _T _U   c\W cL/// Used to configure the auto validation of [FormField] and [Form] widgets.   c- c"/// No auto validation will occur.  cX dGO/// Used to auto-validate [Form] and [FormField] even without user interaction.  dRl dV/// Used to auto-validate [Form] and [FormField] only after each user
/// interaction.  dÀ e/// Used to auto-validate [Form] and [FormField] only after the field has
/// lost focus.
///
/// In order to validate all fields of a [Form] after the first time the user interacts
/// with one, use [always] instead.         Ѐ赅/// Signature for validating a form field.
///
/// Returns an error string to display if the input is invalid, or null
/// otherwise.
///
/// Used by [FormField.validator].    )f/// Signature for being notified when a form field changes value.
///
/// Used by [FormField.onSaved].99 LP   [g/// Signature for building the widget representing the form field.
///
/// Used by [FormField.builder].     D *' )     package:flutter/material.dart    package:flutter/services.dart  <Ձ$%OxyƁ߁,Rh-.FdeуՄ$pUEtxǆˇ-1q!EpɈ39Pq'O?Ehn|ɌύAGW]ōQost׎ݏ =PZ`ԏڐ*;AQWɐ*:Yu̒t!+BFGw}œ˓cהZpJPfCU[kqʗ>TUϙ
89y*0rm>RstĜМ֝;<r˝ٝߝ:<=hl#I`џҠ\w6H]eij4:>?sϣPvǣ'Vz¤a9XclrsȦ(/34w§֧ܧ0PV0kéĪ:@sy֫#DYquvZ`PŭڭYt,nЯ5Yckqrܱ?u}̲:Z|}MstʹϴдGVZ} !Z[÷%)xU+/o.2@DӺ"6E`rϻXY¼8T8>NT @ @H @h @i @ @ @ AF A A A A BC B B C+ CG Cq Cr C D
 D0 DU DV D D D E  E& El E F Fn F F F F G Gk G G G H H H$ Ha H H I4 Iy I I I I I J5 J; J J J K KX K^ Kn Kt K K K K K L9 L; L< L L M M5 Mf M M N N4 N5 N` Nz N{ N O O0 O6 O O P P/ P0 Pd P P P P Q0 QT Q Q Q Q R R! R' R7 R= R R R S; S< S S S S S S S T T+ TU Tt T| T T T U Uq Uw U U U U V# V7 VI V\ Vd Vz V~ V V V V W W( W. WR W W W W W W X	 XR XX X X Y Y< YN Yd Y Y Y Y Y Y Z ZN Z Z [4 [P [] [ [ [ [ [ [ \$ \% \1 \z \ \ ]  ] ] ]# ]Q ]i ]m ]n ]z ] ] ] ] ] ] ^# ^I ^ ^ ^ ^ ^ ^ ^ ^ _ _8 _M _Q _R _^ _ _ _ _ ` `6 `b `{ ` ` ` ` ` ` ` a$ a% a a b b( bE bk b b b b b b b c# c, c2 c3 cT cX cY c[ c\ c c c c c dE dO dP d d d d e e e% e e e e    _kIOSAnnouncementDelayDurationForm	FormState
_FormScope	FormFieldFormFieldStateAutovalidateMode ?