ZlerpcurvedurationonEndcreateStatedebugFillProperties
controller	animation
_animation	initStatedidUpdateWidget_createCurvedispose_constructTweensforEachTweendidUpdateTweens_handleAnimationChangedchild	alignmentpadding
decorationforegroundDecorationconstraintsmargin	transformtransformAlignmentclipBehavior
_alignment_padding_decoration_foregroundDecoration_constraints_margin
_transform_transformAlignmentbuildheightFactorwidthFactor_heightFactorTween_widthFactorTweenlefttoprightbottomwidthheight_left_top_right_bottom_width_heightstartend_start_endscalefilterQuality_scale_scaleAnimationturns_turns_turnsAnimationoffset_offset_offsetAnimationopacityalwaysIncludeSemantics_opacity_opacityAnimationsliverstyle	textAlignsoftWrapoverflowmaxLinestextWidthBasistextHeightBehavior_styleshapeborderRadius	elevationcoloranimateColorshadowColoranimateShadowColor_borderRadius
_elevation_color_shadowColor'BoxConstraintsTweenDecorationTweenEdgeInsetsTweenEdgeInsetsGeometryTweenBorderRadiusTweenBorderTweenMatrix4TweenTextStyleTweenImplicitlyAnimatedWidgetTweenConstructorTweenVisitorImplicitlyAnimatedWidgetStateAnimatedWidgetBaseStateAnimatedContainer_AnimatedContainerStateAnimatedPadding_AnimatedPaddingStateAnimatedAlign_AnimatedAlignStateAnimatedPositioned_AnimatedPositionedStateAnimatedPositionedDirectional#_AnimatedPositionedDirectionalStateAnimatedScale_AnimatedScaleStateAnimatedRotation_AnimatedRotationStateAnimatedSlide_AnimatedSlideStateAnimatedOpacity_AnimatedOpacityStateSliverAnimatedOpacity_SliverAnimatedOpacityStateAnimatedDefaultTextStyle_AnimatedDefaultTextStyleStateAnimatedPhysicalModel_AnimatedPhysicalModelStateAnimatedFractionallySizedBox"_AnimatedFractionallySizedBoxStateTextHeightBehaviorBoxConstraintslerpTweenbeginendoverridedouble
DecorationShapeDecorationlerpTolerpFromRoundedRectangleBorderCircleBorderStadiumBorder	BoxBorder
EdgeInsetsEdgeInsetsGeometryBorderRadiusBorderMatrix4Vector3zero
Quaternionidentity	decomposescaled
normalizedcompose	TextStyleStateAnimatedWidgetAnimationController	AnimationTweenAnimationBuilderAlign	ContainerDefaultTextStyle	TransformscalerotateOpacityPaddingPhysicalModel
PositionedPositionedDirectionalAnimatedThemeThemeAnimatedCrossFadeAnimatedSizeAnimatedSwitcherStatefulWidgetCurveslinearCurveDurationVoidCallbackvoidDiagnosticPropertiesBuilderdebugFillPropertiesaddIntPropertyinMillisecondsunitforEachTweenObjectTSingleTickerProviderStateMixin	protecteddurationwidget
debugLabel
kDebugModetoStringShortvsyncCurvedAnimation	initStateaddStatusListenerAnimationStatusstatusisCompletedonEndcalldidUpdateWidgetcurvedisposedynamictweenevaluatetargetValueforwardfromparentboolconstructorbuild
controlleraddListenersetStateDecoratedBoxTransitionStack	alignmentColorClipnoneisNonNegativedebugAssertIsValidcolorBoxDecorationwidthheighttightentightForWidget	AlignmentAlignmentGeometryAlignmentDirectional
decorationgetClipPathUnsupportedErrorDiagnosticsPropertyshowNamedefaultValueObjectFlagPropertyhasAlignmentGeometryTweenvaluepaddingforegroundDecorationconstraintsmargin	transformtransformAlignmentBuildContext	animationclipBehaviorchildfastOutSlowIn	easeInOutclampinfinityAlignTransitionTextDirectionheightFactorwidthFactorSlideTransitionPositionedTransitionDirectionalityRectrectlefttopDoublePropertyrightbottomstartdebugCheckHasDirectionalitydirectionaltextDirectionofFlutterLogoScaleTransitioncenterFilterQualityEnumPropertydrivefilterQualityRotationTransitionturnsOffsetoffsetpositionFlowIgnorePointerFadeTransitionopacityalwaysIncludeSemanticsSliverOpacityCustomScrollViewSliverFixedExtentListFloatingActionButtonSliverIgnorePointerSliverFadeTransitionsliverTextelasticInOutDefaultTextStyleTransitionTextOverflowclipTextWidthBasis	TextAlignsoftWrapmaxLinesintFlagPropertyifTrueifFalsestyle	textAlignoverflowtextWidthBasistextHeightBehaviorBoxShape	rectangleColorProperty
ColorTweenborderRadius	elevationshadowColorshapeanimateColoranimateShadowColorFractionallySizedBoxTweenStatefulWidgetStateSingleTickerProviderStateMixinImplicitlyAnimatedWidgetStateImplicitlyAnimatedWidgetAnimatedWidgetBaseStated$r,t  TextHeightBehavior    ݁uidart:ui     package:flutter/foundation.dart  (   package:flutter/rendering.dart  Q   'package:vector_math/vector_math_64.dart     
basic.dart     container.dart     
debug.dart     framework.dart     	text.dart     ticker_provider.dart     transitions.dart  V  <Հف)Ruˁ́'PƂ߂-.F{
ÄIdhYbdeLˈω\%Wy΋lWYZٌ:>LPVQSTߐLP^b &iّڒ(4
#'mʓДBqr̕?C28{ʖ˗%]_`ؘ	?C֘ܙ(vęߙ@k˚Z+)-/0_cÝǞVH_ڟ$&'pϡhx|Ϣ>BkoJ)sL<@ۧ*.w8LeѪ!qԫ1=iǭ
KtƭCXYFq6a߰1eiղ$%y}:>Դ15ϴڴ޴DY]Ѷ*+quRV=O޹(5xӹ)ZԻ0NV^vѻ">agż0:OͽY]^kwӾ׾ؾ-Je @  @G @X @} @ @ @ @ @ @ @ @ @ AD AT AZ A| A A B Bh B B B C C C1 C7 C C D* Dx D D D E Ee E F  FL Fm Fs F F F G% Gi G G G G G H. H= HC HQ H H H H H I I/ Iv I I I I I J' Jj J J J K K8 K K K L L LQ Ln Lx L L L L L L M. MH MN M M M N N NP N N O" O( Ov O P Pc P P Q Q Q! Q" Qs Q Q Q R) RW R[ R R S SN S} S S S S S S S T T1 Tt T| T T T T T U/ Uz U U U V3 V V W W2 W6 Wy W} W W X$ XL XP X X X X X Y YA Y Y Z* ZC Z Z [G [ [ \  \6 \E \Y \k \} \ \ \ \ ]  ] ]% ]B ]R ]u ] ] ] ] ^$ ^j ^ ^ ^ _) _ _ _ `$ `g ` ` ` ` ` aE a a b b bF b] b^ b b b c+ c{ c c c c c d	 d2 d~ d d d e e; e` ea e e e f) f9 fY fZ f f f f f g? gr gx g g g h h/ h0 hx h h h i iI iO i_ ie i i i j j# jo ju j j j k? k k k l l l" l{ l| l l l m m: mO mb m{ m m m n ng n n o o" o7 oS ol ou o| o p, p@ pn p p p p p q! q% q' q( q{ q q q r r5 rY ru r r r r r s s" sB s s s s s t t* t t t t t t u ul uz u u u u v vf vt v v v v v wM w[ w w w w w x1 x? xh xy x x x y y y8 yR yc y y z z zA zE zF zR zy z z z {' {[ { { | |7 |{ | | | | | | } }I }^ } } } } } } } ~ ~q ~x ~ ~ L S h       
  z     ; X t }        ` d   ? C W    ! 1 5 C G   
 4 m       $ A R x y      < S T `     2         @ O ` x    + / 0 < c w        R ~       J     h l   a   F      
 c s w     (   / H      # 3 J ` q      4 :   ' u   9 ? O U    = b c      6 < z     / L M Y     ' {       < = I ~     6 D l     
 T d       % o         # `        @ U    1 8 M       V Z      k   S ` d   B F   8   $ _ c w     |      * K     U        * ; K \ m      f         5 P m          ] s t     - . x      ' > ? Y _      U V b    \   6        $ > W q r ~    < G    / N \    J i w     	 0 G o     A \ c g h t   1 z   c     	 T a e      O   4    $ C     $ a    =    	 " 2 @ N _ o   ® ¿  = > n t å û ü    ` u v ĺ    2 3 L R Ţ       P v Ǝ Ə ƛ     d Ǐ   _ ȩ  ; ? A B l ɱ     + E F R ʇ ʔ    z ˙ ˤ    - ̏ ̮ ̻  : H ͪ      3 V · α   ) S  Ϛ ϡ ϥ Ϧ ϲ  $ q к  R џ     K ҍ ґ ҥ ҩ  C G S Ӏ Ӥ Ө Ӹ    0 J N j Ԥ Ԭ ԰    9 W s ՚     B ` ֖           $ 2 6 x   ? ؎   K c r ق ٛ         P V ڇ ڞ ڟ ڷ    P V ۦ    8 > ~ ܤ ܥ ܱ  	  Z ݅ ݹ  + 2 ޗ ޛ ޝ ޞ   2 3 ? t ߁       , \ ` a m      7 > B D E       V     
   Z ` d         J a     , ; P     ( 9 H U ` h n v      * u     ' @ g         , C D       p     < =       e f r    *       R k      D c g h t        4 W        0 4      r    & * 8 <    5    ( 7 G a r        % & ?       ' l      2 L w x    ) H L M Y t      + / 1 2      _     i m        , 2 6 h        8 O      D S o           * . x ]rvi9/}^ :IYt>Du./z	0	x				
:
;
G





KfGfjkw;x9FJ>BVO_cvz`nMeA	)8Idu.FGag4:SY;pa,Gst(GKLXs "?|&q~37    p !!g!""?""""##-#A#[#####$$"$S$T$$$$$$$%K%d%e%%%&&&E&K&&&&&''#'r''''(>(D(|(((()#)J)K)u))))*"*#*/*t**+#+7+K+_+x+++,,	,c,,,- --E-N-U-i-----.....i...../6/V/Z/[/g////00:0[0000000111H1L11252l2p22233w34 4424844455565[5~555566)6:6W6h66666777!7'7L7d7e777778)8/8^88888993949W9l9m999999:#:D:E:Q:::;;/;k;;</<|<=====v======>+>?>P>m>>??(?9?J?d????@@b@~@@@@A$A2ANARASA_AAAABBNBBBCC5C<C@CBCCCCD4DADEDDDDE
EREEEF\FlFpF~FFGGGHH4HzHII9I?IIIIIJ
J!J7JHJeJvJJJKK#KTKkKlKKKLL5L6LzLLLLM!M"M.MsMMN?NNNNNOO(OMOqOrO~OOOOPPkPyPPPPQQ?QQQQQR RR6RZRRRRRRRSS4SgSSSTTTTTXTTTU UUuU|UUUUV    /// @docImport 'package:flutter/material.dart';
///
/// @docImport 'animated_cross_fade.dart';
/// @docImport 'animated_size.dart';
/// @docImport 'animated_switcher.dart';
/// @docImport 'scroll_view.dart';
/// @docImport 'sliver.dart';
/// @docImport 'tween_animation_builder.dart';  '  P                  %          	   /// Creates a [BoxConstraints] tween.
///
/// The [begin] and [end] properties may be null; the null value
/// is treated as a tight constraint of zero size.       007 +K/// Returns the value this variable has at the given animation clock value. ÄÂ/// An interpolation between two [BoxConstraints].
///
/// This class specializes the interpolation of [Tween<BoxConstraints>] to use
/// [BoxConstraints.lerp].
///
/// See [Tween] for a discussion on how to use interpolation objects.          	  YYb +/// Creates a decoration tween.
///
/// The [begin] and [end] properties may be null. If both are null, then the
/// result is always null. If [end] is not null, then its lerping logic is
/// used (via [Decoration.lerpTo]). Otherwise, [begin]'s lerping logic is used
/// (via [Decoration.lerpFrom]).       ))0 $K/// Returns the value this variable has at the given animation clock value. ee+/// An interpolation between two [Decoration]s.
///
/// This class specializes the interpolation of [Tween<BoxConstraints>] to use
/// [Decoration.lerp].
///
/// For [ShapeDecoration]s which know how to [ShapeDecoration.lerpTo] or
/// [ShapeDecoration.lerpFrom] each other, this will produce a smooth
/// interpolation between decorations.
///
/// See also:
///
///  * [Tween] for a discussion on how to use interpolation objects.
///  * [ShapeDecoration], [RoundedRectangleBorder], [CircleBorder], and
///    [StadiumBorder] for examples of shape borders that can be smoothly
///    interpolated.
///  * [BoxBorder] for a border that can only be smoothly interpolated between other
///    [BoxBorder]s.          	   /// Creates an [EdgeInsets] tween.
///
/// The [begin] and [end] properties may be null; the null value
/// is treated as an [EdgeInsets] with no inset.       ##* K/// Returns the value this variable has at the given animation clock value. ZZ[/// An interpolation between two [EdgeInsets]s.
///
/// This class specializes the interpolation of [Tween<EdgeInsets>] to use
/// [EdgeInsets.lerp].
///
/// See [Tween] for a discussion on how to use interpolation objects.
///
/// See also:
///
///  * [EdgeInsetsGeometryTween], which interpolates between two
///    [EdgeInsetsGeometry] objects.          ̑	   /// Creates an [EdgeInsetsGeometry] tween.
///
/// The [begin] and [end] properties may be null; the null value
/// is treated as an [EdgeInsetsGeometry] with no inset.       NNU *+ܑ܀IK/// Returns the value this variable has at the given animation clock value. TT1\/// An interpolation between two [EdgeInsetsGeometry]s.
///
/// This class specializes the interpolation of [Tween<EdgeInsetsGeometry>] to
/// use [EdgeInsetsGeometry.lerp].
///
/// See [Tween] for a discussion on how to use interpolation objects.
///
/// See also:
///
///  * [EdgeInsetsTween], which interpolates between two [EdgeInsets] objects.  D U    WW]   dd	j   /// Creates a [BorderRadius] tween.
///
/// The [begin] and [end] properties may be null; the null value
/// is treated as a right angle (no radius).        ÔttK/// Returns the value this variable has at the given animation clock value. s/// An interpolation between two [BorderRadius]s.
///
/// This class specializes the interpolation of [Tween<BorderRadius>] to use
/// [BorderRadius.lerp].
///
/// See [Tween] for a discussion on how to use interpolation objects.          	   /// Creates a [Border] tween.
///
/// The [begin] and [end] properties may be null; the null value
/// is treated as having no border.       44; ͖̀/K/// Returns the value this variable has at the given animation clock value. K/// An interpolation between two [Border]s.
///
/// This class specializes the interpolation of [Tween<Border>] to use
/// [Border.lerp].
///
/// See [Tween] for a discussion on how to use interpolation objects.          	   /// Creates a [Matrix4] tween.
///
/// The [begin] and [end] properties must be non-null before the tween is
/// first used, but the arguments can be null if the values are going to be
/// filled in later.       ә r  ``(/// An interpolation between two [Matrix4]s.
///
/// This class specializes the interpolation of [Tween<Matrix4>] to be
/// appropriate for transformation matrices.
///
/// Currently this class works only for translations.
///
/// See [Tween] for a discussion on how to use interpolation objects.  a o    qqw   ~~	   /// Creates a text style tween.
///
/// The [begin] and [end] properties must be non-null before the tween is
/// first used, but the arguments can be null if the values are going to be
/// filled in later.        ܟݟK/// Returns the value this variable has at the given animation clock value. 00\%/// An interpolation between two [TextStyle]s.
///
/// This class specializes the interpolation of [Tween<TextStyle>] to use
/// [TextStyle.lerp].
///
/// This will not work well if the styles don't set the same fields.
///
/// See [Tween] for a discussion on how to use interpolation objects.  |     	      ʭ   
 MM &/// Initializes fields for subclasses.  Q[QG/// The curve to apply when animating the parameters of this container. [bH/// The duration over which to animate the parameters of this container. /// Called every time an animation completes.
///
/// This can be useful to trigger additional actions (e.g. another animation)
/// at the end of the current animation.    R    &(   ''/// An abstract class for building widgets that animate changes to their
/// properties.
///
/// Widgets of this type will not animate when they are first added to the
/// widget tree. Rather, when they are rebuilt with different values, they will
/// respond to those _changes_ by animating the changes over a specified
/// [duration].
///
/// Which properties are animated is left up to the subclass. Subclasses' [State]s
/// must extend [ImplicitlyAnimatedWidgetState] and provide a way to visit the
/// relevant fields to animate.
///
/// ## Relationship to [AnimatedWidget]s
///
/// [ImplicitlyAnimatedWidget]s (and their subclasses) automatically animate
/// changes in their properties whenever they change. For this,
/// they create and manage their own internal [AnimationController]s to power
/// the animation. While these widgets are simple to use and don't require you
/// to manually manage the lifecycle of an [AnimationController], they
/// are also somewhat limited: Besides the target value for the animated
/// property, developers can only choose a [duration] and [curve] for the
/// animation. If you require more control over the animation (e.g. you want
/// to stop it somewhere in the middle), consider using an
/// [AnimatedWidget] or one of its subclasses. These widgets take an [Animation]
/// as an argument to power the animation. This gives the developer full control
/// over the animation at the cost of requiring you to manually manage the
/// underlying [AnimationController].
///
/// ## Common implicitly animated widgets
///
/// A number of implicitly animated widgets ship with the framework. They are
/// usually named `AnimatedFoo`, where `Foo` is the name of the non-animated
/// version of that widget. Commonly used implicitly animated widgets include:
///
///  * [TweenAnimationBuilder], which animates any property expressed by
///    a [Tween] to a specified target value.
///  * [AnimatedAlign], which is an implicitly animated version of [Align].
///  * [AnimatedContainer], which is an implicitly animated version of
///    [Container].
///  * [AnimatedDefaultTextStyle], which is an implicitly animated version of
///    [DefaultTextStyle].
///  * [AnimatedScale], which is an implicitly animated version of [Transform.scale].
///  * [AnimatedRotation], which is an implicitly animated version of [Transform.rotate].
///  * [AnimatedSlide], which implicitly animates the position of a widget relative to its normal position.
///  * [AnimatedOpacity], which is an implicitly animated version of [Opacity].
///  * [AnimatedPadding], which is an implicitly animated version of [Padding].
///  * [AnimatedPhysicalModel], which is an implicitly animated version of
///    [PhysicalModel].
///  * [AnimatedPositioned], which is an implicitly animated version of
///    [Positioned].
///  * [AnimatedPositionedDirectional], which is an implicitly animated version
///    of [PositionedDirectional].
///  * [AnimatedTheme], which is an implicitly animated version of [Theme].
///  * [AnimatedCrossFade], which cross-fades between two given children and
///    animates itself between their sizes.
///  * [AnimatedSize], which automatically transitions its size over a given
///    duration.
///  * [AnimatedSwitcher], which fades from one widget to another. ||"| *+cv湄|˹ȹɹ͹ܹ׹޹VVG/// The animation controller driving this widget's implicit animations.~q\0q    mA</// The animation driving this widget's implicit animations.       » [    i   `amn``v~    ھڂ     L L L  L L @ @ L/// Visits each tween controlled by this state with the specified `visitor`
/// function.
///
/// ### Subclass responsibility
///
/// Properties to be animated are represented by [Tween] member variables in
/// the state. For each such tween, [forEachTween] implementations are
/// expected to call `visitor` with the appropriate arguments and store the
/// result back into the member variable. The arguments to `visitor` are as
/// follows:
///
/// {@macro flutter.widgets.TweenVisitor.arguments}
///
/// ### When this method will be called
///
/// [forEachTween] is initially called during [initState]. It is expected that
/// the visitor's `tween` argument will be set to null, causing the visitor to
/// call its `constructor` argument to construct the tween for the first time.
/// The resulting tween will have its `begin` value set to the target value
/// and will have its `end` value set to null. The animation will not be
/// started.
///
/// When this state's [widget] is updated (thus triggering the
/// [didUpdateWidget] method to be called), [forEachTween] will be called
/// again to check if the target value has changed. If the target value has
/// changed, signaling that the [animation] should start, then the visitor
/// will update the tween's `start` and `end` values accordingly, and the
/// animation will be started.
///
/// ### Other member variables
///
/// Subclasses that contain properties based on tweens created by
/// [forEachTween] should override [didUpdateTweens] to update those
/// properties. Dependent properties should not be updated within
/// [forEachTween].
///
/// {@tool snippet}
///
/// This sample implements an implicitly animated widget's `State`.
/// The widget animates between colors whenever `widget.targetColor`
/// changes.
///
/// ```dart
/// class MyWidgetState extends AnimatedWidgetBaseState<MyWidget> {
///   ColorTween? _colorTween;
///
///   @override
///   Widget build(BuildContext context) {
///     return Text(
///       'Hello World',
///       // Computes the value of the text color at any given time.
///       style: TextStyle(color: _colorTween?.evaluate(animation)),
///     );
///   }
///
///   @override
///   void forEachTween(TweenVisitor<dynamic> visitor) {
///     // Update the tween using the provided visitor function.
///     _colorTween = visitor(
///       // The latest tween value. Can be `null`.
///       _colorTween,
///       // The color value toward which we are animating.
///       widget.targetColor,
///       // A function that takes a color value and returns a tween
///       // beginning at that value.
///       (dynamic value) => ColorTween(begin: value as Color?),
///     ) as ColorTween?;
///
///     // We could have more tweens than one by using the visitor
///     // multiple times.
///   }
/// }
/// ```
/// {@end-tool}   P P L L> Q
/// Optional hook for subclasses that runs after all tweens have been updated
/// via [forEachTween].
///
/// Any properties that depend upon tweens created by [forEachTween] should be
/// updated within [didUpdateTweens], not within [forEachTween].
///
/// This method will be called both:
///
///  1. After the tweens are _initially_ constructed (by
///     the `constructor` argument to the [TweenVisitor] that's passed to
///     [forEachTween]). In this case, the tweens are likely to contain only
///     a [Tween.begin] value and not a [Tween.end].
///
///  2. When the state's [widget] is updated, and one or more of the tweens
///     visited by [forEachTween] specifies a target value that's different
///     than the widget's current value, thus signaling that the [animation]
///     should run. In this case, the [Tween.begin] value for each tween will
///     an evaluation of the tween against the current [animation], and the
///     [Tween.end] value for each tween will be the target value. ++^#/// A base class for the `State` of widgets with implicit animations.
///
/// [ImplicitlyAnimatedWidgetState] requires that subclasses respond to the
/// animation themselves. If you would like `setState()` to be called
/// automatically as the animation changes, use [AnimatedWidgetBaseState].
///
/// Properties that subclasses choose to animate are represented by [Tween]
/// instances. Subclasses must implement the [forEachTween] method to allow
/// [ImplicitlyAnimatedWidgetState] to iterate through the widget's fields and
/// animate them.  S* S*" S*       S S S S S S{ S     S S T   Q" Q"_ S/// A base class for widgets with implicit animations that need to rebuild their
/// widget tree as the animation runs.
///
/// This class calls [build] each frame that the animation ticks. For a
/// variant that does not rebuild each frame, consider subclassing
/// [ImplicitlyAnimatedWidgetState] directly.
///
/// Subclasses must implement the [forEachTween] method to allow
/// [AnimatedWidgetBaseState] to iterate through the subclasses' widget's fields
/// and animate them.   \"  \3     \: \:	 \@    \I \I \N    \] \] \b    \o \o \v    \ \ \    \ \ \    \ \ \    \ \ \    \ \ \    ] ] ]	    ] ] ]    ]) ]) ].    ]F ]F
 ]K    ]V ]V ][    ]y ]y ]    ] ] ]    ] ] ] s ]j ]n ]o ] ] ] ] ] ] ] ] ] ] ] ] ^! ^	 ^ ] ^ ^ ^ ^ ^+ ^1 ^g ^E ^= ^2 ^@ ^H ^R ^S ^e ^f ^q ^w ^ ^ ^ ^x ^ ^ ^ ^ ^ ^ ^ ^ ^ _ ^ ^ ^ ^ ^ ^ ^ ^ _2 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ `  _ `/ ` ` `" ` `	 ` ` ` ` ` `d `1 `< `> `E `b `K `F `M `Z `T `\ `x ` ` ` ` ` ` ` ` ` ` ` [ [߄ @/// Creates a container that animates its parameters implicitly. 
  bV `ˁ bVl/// The [child] contained by the container.
///
/// If null, and if the [constraints] are unbounded or also null, the
/// container will expand to fill all available space in its parent, unless
/// the parent provides unbounded constraints, in which case the container
/// will attempt to be as small as possible.
///
/// {@macro flutter.widgets.ProxyWidget.child}  d b`g d(/// Align the [child] within the container.
///
/// If non-null, the container will expand to fill its parent and position its
/// child within itself according to the given value. If the incoming
/// constraints are unbounded, then the child will be shrink-wrapped instead.
///
/// Ignored if [child] is null.
///
/// See also:
///
///  * [Alignment], a class with convenient constants typically used to
///    specify an [AlignmentGeometry].
///  * [AlignmentDirectional], like [Alignment] for specifying alignments
///    relative to text direction.  eW d̀ eWl/// Empty space to inscribe inside the [decoration]. The [child], if any, is
/// placed inside this padding.  fM ec fM/// The decoration to paint behind the [child].
///
/// A shorthand for specifying just a solid color is available in the
/// constructor: set the `color` argument instead of the `decoration`
/// argument.  f f\[ f2/// The decoration to paint in front of the child.  g f g/// Additional constraints to apply to the child.
///
/// The constructor `width` and `height` arguments are combined with the
/// `constraints` argument to set this property.
///
/// The [padding] goes inside the constraints.  h' g\ h'9/// Empty space to surround the [decoration] and [child].  h h2` hE/// The transformation matrix to apply before painting the container.  i h: i /// The alignment of the origin, relative to the size of the container, if [transform] is specified.
///
/// When [transform] is null, the value of this property is ignored.
///
/// See also:
///
///  * [Transform.alignment], which is set by this property.  l iւ= l/// The clip behavior when [AnimatedContainer.decoration] is not null.
///
/// Defaults to [Clip.none]. Must be [Clip.none] if [decoration] is null.
///
/// Unlike other properties of [AnimatedContainer], changes to this property
/// apply immediately and have no animation.
///
/// If a clip is to be applied, the [Decoration.getClipPath] method
/// for the provided decoration must return a clip path. (This is not
/// supported by all decorations; the default implementation of that
/// method throws an [UnsupportedError].)     l l l lb lO     l l& l  l~ l l~ l~ l   T T [/// Animated version of [Container] that gradually changes its values over a period of time.
///
/// The [AnimatedContainer] will automatically animate between the old and
/// new values of properties when they change using the provided curve and
/// duration. Properties that are null are not animated. Its child and
/// descendants are not animated.
///
/// This class is useful for generating simple implicit transitions between
/// different parameters to [Container] with its internal [AnimationController].
/// For more complex animations, you'll likely want to use a subclass of
/// [AnimatedWidget] such as the [DecoratedBoxTransition] or use your own
/// [AnimationController].
///
/// {@youtube 560 315 https://www.youtube.com/watch?v=yI-8QHpGIP4}
///
/// {@tool dartpad}
/// The following example (depicted above) transitions an AnimatedContainer
/// between two states. It adjusts the `height`, `width`, `color`, and
/// [alignment] properties when tapped.
///
/// ** See code in examples/api/lib/widgets/implicit_animations/animated_container.0.dart **
/// {@end-tool}
///
/// See also:
///
///  * [AnimatedPadding], which is a subset of this widget that only
///    supports animating the [padding].
///  * The [catalog of layout widgets](https://flutter.dev/widgets/layout/).
///  * [AnimatedPositioned], which, as a child of a [Stack], automatically
///    transitions its child's position over a given duration whenever the given
///    position changes.
///  * [AnimatedAlign], which automatically transitions its child's
///    position over a given duration whenever the given [AnimatedAlign.alignment] changes.
///  * [AnimatedSwitcher], which switches out a child for a new one with a customizable transition.
///  * [AnimatedCrossFade], which fades between two children and interpolates their sizes.    q q}" q   q q! q   q q q   q q& q   r' r! r'   rP r7  rP   ri r[ ri   r rw+ r       r r r  r r r r r     za za zn  zH zI zH zH z[     | |' }  | | | |̈́ |   q( q(a q.            	            
           ( ( 7    E E K  Y _ u ` g h o o S/// Creates a widget that insets its child by a value that animates
/// implicitly.    {W 4/// The amount of space by which to inset the child.  L z L`/// The widget below this widget in the tree.
///
/// {@macro flutter.widgets.ProxyWidget.child}     V W V V^       &            :/// Animated version of [Padding] which automatically transitions the
/// indentation over a given duration whenever the given inset changes.
///
/// {@youtube 560 315 https://www.youtube.com/watch?v=PY2m0fhGNz4}
///
/// Here's an illustration of what using this widget looks like, using a [curve]
/// of [Curves.fastOutSlowIn].
/// {@animation 250 266 https://flutter.github.io/assets-for-api-docs/assets/widgets/animated_padding.mp4}
///
/// {@tool dartpad}
/// The following code implements the [AnimatedPadding] widget, using a [curve] of
/// [Curves.easeInOut].
///
/// ** See code in examples/api/lib/widgets/implicit_animations/animated_padding.0.dart **
/// {@end-tool}
///
/// See also:
///
///  * [AnimatedContainer], which can transition more values at once.
///  * [AnimatedAlign], which automatically transitions its child's
///    position over a given duration whenever the given
///    [AnimatedAlign.alignment] changes.     !          5     -      K K X  2 3 2 2 E     ' '' C          r             	     
 
     ' '
 ,    7 7 <    N N S    d d j    u u                               [/// Creates a widget that positions its child by an alignment that animates
/// implicitly.   W H W/// How to align the child.
///
/// The x and y values of the [Alignment] control the horizontal and vertical
/// alignment, respectively. An x value of -1.0 means that the left edge of
/// the child is aligned with the left edge of the parent whereas an x value
/// of 1.0 means that the right edge of the child is aligned with the right
/// edge of the parent. Other values interpolate (and extrapolate) linearly.
/// For example, a value of 0.0 means that the center of the child is aligned
/// with the center of the parent.
///
/// See also:
///
///  * [Alignment], which has more details and some convenience constants for
///    common positions.
///  * [AlignmentDirectional], which has a horizontal coordinate orientation
///    that depends on the [TextDirection].   ez `/// The widget below this widget in the tree.
///
/// {@macro flutter.widgets.ProxyWidget.child}   䀲 /// If non-null, sets its height to the child's height multiplied by this factor.
///
/// Must be greater than or equal to 0.0, defaults to null.  ?  ?/// If non-null, sets its width to the child's width multiplied by this factor.
///
/// Must be greater than or equal to 0.0, defaults to null.     O P O OZ       &            NI/// Animated version of [Align] which automatically transitions the child's
/// position over a given duration whenever the given [alignment] changes.
///
/// Here's an illustration of what this can look like, using a [curve] of
/// [Curves.fastOutSlowIn].
/// {@animation 250 266 https://flutter.github.io/assets-for-api-docs/assets/widgets/animated_align.mp4}
///
/// For the animation, you can choose a [curve] as well as a [duration] and the
/// widget will automatically animate to the new target [alignment]. If you require
/// more control over the animation (e.g. if you want to stop it mid-animation),
/// consider using an [AlignTransition] instead, which takes a provided
/// [Animation] as argument. While that allows you to fine-tune the animation,
/// it also requires more development overhead as you have to manually manage
/// the lifecycle of the underlying [AnimationController].
///
/// {@tool dartpad}
/// The following code implements the [AnimatedAlign] widget, using a [curve] of
/// [Curves.fastOutSlowIn].
///
/// ** See code in examples/api/lib/widgets/implicit_animations/animated_align.0.dart **
/// {@end-tool}
///
/// See also:
///
///  * [AnimatedContainer], which can transition more values at once.
///  * [AnimatedPadding], which can animate the padding instead of the
///    alignment.
///  * [AnimatedSlide], which can animate the translation of child by a given offset relative to its size.
///  * [AnimatedPositioned], which, as a child of a [Stack], automatically
///    transitions its child's position over a given duration whenever the given
///    position changes.     "     !    )   )       ] ] s  ? @ ? ?j P                   '      ā     9             	            	            
 #    . . 3    ? ?
 D    O O T    ` ` f    q q                                   	    $/// Creates a widget that animates its position implicitly.
///
/// Only two out of the three horizontal values ([left], [right],
/// [width]), and only two out of the three vertical values ([top],
/// [bottom], [height]), can be set. In each case, at least one of
/// the three must be null.   h z       	                                      ) % + / 0 B < D H I ^ W ` d e z t |     z {H/// Creates a widget that animates the rectangle it occupies implicitly.    y `/// The widget below this widget in the tree.
///
/// {@macro flutter.widgets.ProxyWidget.child}  m X mC/// The offset of the child's left edge from the left of the stack.   vU A/// The offset of the child's top edge from the top of the stack.  & [ &E/// The offset of the child's right edge from the right of the stack.   0^ G/// The offset of the child's bottom edge from the bottom of the stack.  7  7/// The child's width.
///
/// Only two out of the three horizontal values ([left], [right], [width]) can
/// be set. The third must be null.   A 倍/// The child's height.
///
/// Only two out of the three vertical values ([top], [bottom], [height]) can
/// be set. The third must be null.        d (     } }&   X Y X X+ i     Q/// Animated version of [Positioned] which automatically transitions the child's
/// position over a given duration whenever the given position changes.
///
/// {@youtube 560 315 https://www.youtube.com/watch?v=hC3s2YdtWt8}
///
/// Only works if it's the child of a [Stack].
///
/// This widget is a good choice if the _size_ of the child would end up
/// changing as a result of this animation. If the size is intended to remain
/// the same, with only the _position_ changing over time, then consider
/// [SlideTransition] instead. [SlideTransition] only triggers a repaint each
/// frame of the animation, whereas [AnimatedPositioned] will trigger a relayout
/// as well.
///
/// Here's an illustration of what using this widget looks like, using a [curve]
/// of [Curves.fastOutSlowIn].
/// {@animation 250 266 https://flutter.github.io/assets-for-api-docs/assets/widgets/animated_positioned.mp4}
///
/// For the animation, you can choose a [curve] as well as a [duration] and the
/// widget will automatically animate to the new target position. If you require
/// more control over the animation (e.g. if you want to stop it mid-animation),
/// consider using a [PositionedTransition] instead, which takes a provided
/// [Animation] as an argument. While that allows you to fine-tune the animation,
/// it also requires more development overhead as you have to manually manage
/// the lifecycle of the underlying [AnimationController].
///
/// {@tool dartpad}
/// The following example transitions an AnimatedPositioned
/// between two states. It adjusts the `height`, `width`, and
/// [Positioned] properties when tapped.
///
/// ** See code in examples/api/lib/widgets/implicit_animations/animated_positioned.0.dart **
/// {@end-tool}
///
/// See also:
///
///  * [AnimatedPositionedDirectional], which adapts to the ambient
///    [Directionality] (the same as this widget, but for animating
///    [PositionedDirectional]).                   5 & 5   O @ O   h Y h           t u t t        %      g       '   j k j jK {    0             	           & &
 +    6 6 ;    D D I    R R W    c c
 h    s s x            ¤    ² ² ¸                 
 : )     !  $ 3 , 6   /// Creates a widget that animates its position implicitly.
///
/// Only two out of the three horizontal values ([start], [end], [width]), and
/// only two out of the three vertical values ([top], [bottom], [height]), can
/// be set. In each case, at least one of the three must be null.   ô @y ô`/// The widget below this widget in the tree.
///
/// {@macro flutter.widgets.ProxyWidget.child}   þ[ E/// The offset of the child's start edge from the start of the stack.  p U pA/// The offset of the child's top edge from the top of the stack.   xU A/// The offset of the child's end edge from the end of the stack.  * ^ *G/// The offset of the child's bottom edge from the bottom of the stack.   5 ؀/// The child's width.
///
/// Only two out of the three horizontal values ([start], [end], [width]) can
/// be set. The third must be null.  Ɔ ‪ Ɔ/// The child's height.
///
/// Only two out of the three vertical values ([top], [bottom], [height]) can
/// be set. The third must be null.     Ƒ ƒ Ƒ Ƒ      : :& V     ) &     g/// Animated version of [PositionedDirectional] which automatically transitions
/// the child's position over a given duration whenever the given position
/// changes.
///
/// The ambient [Directionality] is used to determine whether [start] is to the
/// left or to the right.
///
/// Only works if it's the child of a [Stack].
///
/// This widget is a good choice if the _size_ of the child would end up
/// changing as a result of this animation. If the size is intended to remain
/// the same, with only the _position_ changing over time, then consider
/// [SlideTransition] instead. [SlideTransition] only triggers a repaint each
/// frame of the animation, whereas [AnimatedPositionedDirectional] will trigger
/// a relayout as well. ([SlideTransition] is also text-direction-aware.)
///
/// Here's an illustration of what using this widget looks like, using a [curve]
/// of [Curves.fastOutSlowIn].
/// {@animation 250 266 https://flutter.github.io/assets-for-api-docs/assets/widgets/animated_positioned_directional.mp4}
///
/// See also:
///
///  * [AnimatedPositioned], which specifies the widget's position visually (the
///    same as this widget, but for animating [Positioned]).     ɳ              	  	   #  #   < - <       f f |  H I H H Y            Ё       '   Ϩ ϩ Ϩ ϨI Ϲ   B B H    S  `     g g	 m    v v
 {    ن ن ٔ    ٟ ٟ! ٤                          ٰ ٹ ٺ   8/// Creates a widget that animates its scale implicitly.   ڗ "z ڗ`/// The widget below this widget in the tree.
///
/// {@macro flutter.widgets.ProxyWidget.child}   ڡ* /// The target scale.   Ё ڀ/// The alignment of the origin of the coordinate system in which the scale
/// takes place, relative to the size of the box.
///
/// For example, to set the origin of the scale to bottom middle, you can use
/// an alignment of (0.0, 1.0).  ܕ 耺 ܕ/// The filter quality with which to apply the transform as a bitmap operation.
///
/// {@macro flutter.widgets.Transform.optional.FilterQuality}     ܧ ܨ ܧ ܧ`      0 0& L           ߆/// Animated version of [Transform.scale] which automatically transitions the child's
/// scale over a given duration whenever the given scale changes.
///
/// {@tool snippet}
///
/// This code defines a widget that uses [AnimatedScale] to change the size
/// of [FlutterLogo] gradually to a new scale whenever the button is pressed.
///
/// ```dart
/// class LogoScale extends StatefulWidget {
///   const LogoScale({super.key});
///
///   @override
///   State<LogoScale> createState() => LogoScaleState();
/// }
///
/// class LogoScaleState extends State<LogoScale> {
///   double scale = 1.0;
///
///   void _changeScale() {
///     setState(() => scale = scale == 1.0 ? 3.0 : 1.0);
///   }
///
///   @override
///   Widget build(BuildContext context) {
///     return Column(
///       mainAxisAlignment: MainAxisAlignment.center,
///       children: <Widget>[
///         ElevatedButton(
///           onPressed: _changeScale,
///           child: const Text('Scale Logo'),
///         ),
///         Padding(
///           padding: const EdgeInsets.all(50),
///           child: AnimatedScale(
///             scale: scale,
///             duration: const Duration(seconds: 2),
///             child: const FlutterLogo(),
///           ),
///         ),
///       ],
///     );
///   }
/// }
/// ```
/// {@end-tool}
///
/// See also:
///
///  * [AnimatedRotation], for animating the rotation of a child.
///  * [AnimatedSize], for animating the resize of a child based on changes
///    in layout.
///  * [AnimatedSlide], for animating the translation of a child by a given offset relative to its size.
///  * [ScaleTransition], an explicitly animated version of this widget, where
///    an [Animation] is provided by the caller instead of being built in.           ! 
& !       S S i  5 6 5 5 F       X      | |   c d c c v   ޞ ޞ ޤ            	      
      + + 9    D D! I    k k p                    U ^ _  籁 ;/// Creates a widget that animates its rotation implicitly.   < z <`/// The widget below this widget in the tree.
///
/// {@macro flutter.widgets.ProxyWidget.child}   F /// The animation that controls the rotation of the child.
///
/// If the current value of the turns animation is v, the child will be
/// rotated v * 2 * pi radians before being painted.  1 ! 1/// The alignment of the origin of the coordinate system in which the rotation
/// takes place, relative to the size of the box.
///
/// For example, to set the origin of the rotation to bottom middle, you can use
/// an alignment of (0.0, 1.0).   ? 쀑/// The filter quality with which to apply the transform as a bitmap operation.
///
/// {@macro flutter.widgets.Transform.optional.FilterQuality}        f :      &   h i h h y   E E {//// Animated version of [Transform.rotate] which automatically transitions the child's
/// rotation over a given duration whenever the given rotation changes.
///
/// {@tool snippet}
///
/// This code defines a widget that uses [AnimatedRotation] to rotate a [FlutterLogo]
/// gradually by an eighth of a turn (45 degrees) with each press of the button.
///
/// ```dart
/// class LogoRotate extends StatefulWidget {
///   const LogoRotate({super.key});
///
///   @override
///   State<LogoRotate> createState() => LogoRotateState();
/// }
///
/// class LogoRotateState extends State<LogoRotate> {
///   double turns = 0.0;
///
///   void _changeRotation() {
///     setState(() => turns += 1.0 / 8.0);
///   }
///
///   @override
///   Widget build(BuildContext context) {
///     return Column(
///       mainAxisAlignment: MainAxisAlignment.center,
///       children: <Widget>[
///         ElevatedButton(
///           onPressed: _changeRotation,
///           child: const Text('Rotate Logo'),
///         ),
///         Padding(
///           padding: const EdgeInsets.all(50),
///           child: AnimatedRotation(
///             turns: turns,
///             duration: const Duration(seconds: 1),
///             child: const FlutterLogo(),
///           ),
///         ),
///       ],
///     );
///   }
/// }
/// ```
/// {@end-tool}
///
/// See also:
///
///  * [AnimatedScale], for animating the scale of a child.
///  * [RotationTransition], an explicitly animated version of this widget, where
///    an [Animation] is provided by the caller instead of being built in.    c T c    m&                    j k j jX {            ƀ            %     , ,	 2    ; ;
 @    K K Y    e e k    v v           ʀ E/// Creates a widget that animates its offset translation implicitly.    z `/// The widget below this widget in the tree.
///
/// {@macro flutter.widgets.ProxyWidget.child}   ( t/// The target offset.
/// The child will be translated horizontally by `width * dx` and vertically by `height * dy`        `      B B& ^      .    4 /// Widget which automatically transitions the child's
/// offset relative to its normal position whenever the given offset changes.
///
/// The translation is expressed as an [Offset] scaled to the child's size. For
/// example, an [Offset] with a `dx` of 0.25 will result in a horizontal
/// translation of one quarter the width of the child.
///
/// {@tool dartpad}
/// This code defines a widget that uses [AnimatedSlide] to translate a [FlutterLogo]
/// up or down and right or left by dragging the X and Y axis sliders.
///
/// ** See code in examples/api/lib/widgets/implicit_animations/animated_slide.0.dart **
/// {@end-tool}
///
/// See also:
///
///  * [AnimatedPositioned], which, as a child of a [Stack], automatically
///    transitions its child's position over a given duration whenever the given
///    position changes.
///  * [AnimatedAlign], which automatically transitions its child's
///    position over a given duration whenever the given [AnimatedAlign.alignment] changes.    C 4 C   e N' e           z { z z     O P O OZ `                 O    ( 7    >>	D   MM
R   ]]k   xx~         # 
s /// Creates a widget that animates its opacity implicitly.
///
/// The [opacity] argument must be between zero and one, inclusive.  z`/// The widget below this widget in the tree.
///
/// {@macro flutter.widgets.ProxyWidget.child} %%/// The target opacity.
///
/// An opacity of 1.0 is fully opaque. An opacity of 0.0 is fully transparent
/// (i.e., invisible). 	1	m/// Whether the semantic information of the children is always included.
///
/// Defaults to false.
///
/// When true, regardless of the opacity settings the child semantic
/// information is exposed as if the widget were fully visible. This is
/// useful in cases where labels may be hidden during animations that
/// would otherwise contribute relevant semantics.    				d
    
b
b&
~ 
=
>
=
=
N   2 2d+/// Animated version of [Opacity] which automatically transitions the child's
/// opacity over a given duration whenever the given opacity changes.
///
/// {@youtube 560 315 https://www.youtube.com/watch?v=QZAvjqOqiLY}
///
/// Animating an opacity is relatively expensive because it requires painting
/// the child into an intermediate buffer.
///
/// Here's an illustration of what using this widget looks like, using a [curve]
/// of [Curves.fastOutSlowIn].
/// {@animation 250 266 https://flutter.github.io/assets-for-api-docs/assets/widgets/animated_opacity.mp4}
///
/// {@tool snippet}
///
/// ```dart
/// class LogoFade extends StatefulWidget {
///   const LogoFade({super.key});
///
///   @override
///   State<LogoFade> createState() => LogoFadeState();
/// }
///
/// class LogoFadeState extends State<LogoFade> {
///   double opacityLevel = 1.0;
///
///   void _changeOpacity() {
///     setState(() => opacityLevel = opacityLevel == 0 ? 1.0 : 0.0);
///   }
///
///   @override
///   Widget build(BuildContext context) {
///     return Column(
///       mainAxisAlignment: MainAxisAlignment.center,
///       children: <Widget>[
///         AnimatedOpacity(
///           opacity: opacityLevel,
///           duration: const Duration(seconds: 3),
///           child: const FlutterLogo(),
///         ),
///         ElevatedButton(
///           onPressed: _changeOpacity,
///           child: const Text('Fade Logo'),
///         ),
///       ],
///     );
///   }
/// }
/// ```
/// {@end-tool}
///
/// ## Hit testing
///
/// Setting the [opacity] to zero does not prevent hit testing from being
/// applied to the descendants of the [AnimatedOpacity] widget. This can be
/// confusing for the user, who may not see anything, and may believe the area
/// of the interface where the [AnimatedOpacity] is hiding a widget to be
/// non-interactive.
///
/// With certain widgets, such as [Flow], that compute their positions only when
/// they are painted, this can actually lead to bugs (from unexpected geometry
/// to exceptions), because those widgets are not painted by the [AnimatedOpacity]
/// widget at all when the [opacity] animation reaches zero.
///
/// To avoid such problems, it is generally a good idea to use an
/// [IgnorePointer] widget when setting the [opacity] to zero. This prevents
/// interactions with any children in the subtree when the [child] is animating
/// away.
///
/// See also:
///
///  * [AnimatedCrossFade], for fading between two children.
///  * [AnimatedSwitcher], for fading between many children in sequence.
///  * [FadeTransition], an explicitly animated version of this widget, where
///    an [Animation] is provided by the caller instead of being built in.
///  * [SliverAnimatedOpacity], for automatically transitioning a _sliver's_
///    opacity over a given duration whenever the given opacity changes.   \M\  h(          mnmm\~     ̀  


    &    --	3   <<A   MM[   hhn   yy      # z /// Creates a widget that animates its opacity implicitly.
///
/// The [opacity] argument must be between zero and one, inclusive.  > D>-/// The sliver below this widget in the tree. I߀/// The target opacity.
///
/// An opacity of 1.0 is fully opaque. An opacity of 0.0 is fully transparent
/// (i.e., invisible). }끨}v/// Whether the semantic information of the children is always included.
///
/// Defaults to false.
///
/// When true, regardless of the opacity settings the sliver child's semantic
/// information is exposed as if the widget were fully visible. This is
/// useful in cases where labels may be hidden during animations that
/// would otherwise contribute relevant semantics.    v    77&S #  (G/// Animated version of [SliverOpacity] which automatically transitions the
/// sliver child's opacity over a given duration whenever the given opacity
/// changes.
///
/// Animating an opacity is relatively expensive because it requires painting
/// the sliver child into an intermediate buffer.
///
/// Here's an illustration of what using this widget looks like, using a [curve]
/// of [Curves.fastOutSlowIn].
///
/// {@tool dartpad}
/// Creates a [CustomScrollView] with a [SliverFixedExtentList] and a
/// [FloatingActionButton]. Pressing the button animates the lists' opacity.
///
/// ** See code in examples/api/lib/widgets/implicit_animations/sliver_animated_opacity.0.dart **
/// {@end-tool}
///
/// ## Hit testing
///
/// Setting the [opacity] to zero does not prevent hit testing from being
/// applied to the descendants of the [SliverAnimatedOpacity] widget. This can
/// be confusing for the user, who may not see anything, and may believe the
/// area of the interface where the [SliverAnimatedOpacity] is hiding a widget
/// to be non-interactive.
///
/// With certain widgets, such as [Flow], that compute their positions only when
/// they are painted, this can actually lead to bugs (from unexpected geometry
/// to exceptions), because those widgets are not painted by the
/// [SliverAnimatedOpacity] widget at all when the [opacity] animation reaches
/// zero.
///
/// To avoid such problems, it is generally a good idea to use a
/// [SliverIgnorePointer] widget when setting the [opacity] to zero. This
/// prevents interactions with any children in the subtree when the [sliver] is
/// animating away.
///
/// See also:
///
///  * [SliverFadeTransition], an explicitly animated version of this widget, where
///    an [Animation] is provided by the caller instead of being built in.
///  * [AnimatedOpacity], for automatically transitioning a box child's
///    opacity over a given duration whenever the given opacity changes.   =.=  `I(`       vwvv   NONN\_       ˂   " "    ""	"   ""#   ###&   #1#1#6   #E#E#J   #_#_!#d   ###   ##+#   ###   ###   ##$   $$$ #U#o#{#|###$)$/$P$A$9$0$<$M$D$O"" E/// Creates a widget that animates the default text style implicitly.  $$Vy$`/// The widget below this widget in the tree.
///
/// {@macro flutter.widgets.ProxyWidget.child} %]$Ԁ%]r/// The target text style.
///
/// When this property is changed, the style will be animated over [duration] time. & %g& /// How the text should be aligned horizontally.
///
/// This property takes effect immediately when changed, it is not animated. &&&/// Whether the text should break at soft line breaks.
///
/// This property takes effect immediately when changed, it is not animated.
///
/// See [DefaultTextStyle.softWrap] for more details. '&'{/// How visual overflow should be handled.
///
/// This property takes effect immediately when changed, it is not animated. ('(/// An optional maximum number of lines for the text to span, wrapping if necessary.
///
/// This property takes effect immediately when changed, it is not animated.
///
/// See [DefaultTextStyle.maxLines] for more details. ):():/// The strategy to use when calculating the width of the Text.
///
/// See [TextWidthBasis] for possible values and their implications. ))MY)'/// {@macro dart.ui.textHeightBehavior}    ))))v)    *J*J&*f *%*&*%*%*6  |"E/// Animated version of [DefaultTextStyle] which automatically transitions the
/// default text style (the text style to apply to descendant [Text] widgets
/// without explicit style) over a given duration whenever the given style
/// changes.
///
/// The [textAlign], [softWrap], [overflow], [maxLines], [textWidthBasis]
/// and [textHeightBehavior] properties are not animated and take effect
/// immediately when changed.
///
/// Here's an illustration of what using this widget looks like, using a [curve]
/// of [Curves.elasticInOut].
/// {@animation 250 266 https://flutter.github.io/assets-for-api-docs/assets/widgets/animated_default_text_style.mp4}
///
/// For the animation, you can choose a [curve] as well as a [duration] and the
/// widget will automatically animate to the new default text style. If you require
/// more control over the animation (e.g. if you want to stop it mid-animation),
/// consider using a [DefaultTextStyleTransition] instead, which takes a provided
/// [Animation] as argument. While that allows you to fine-tune the animation,
/// it also requires more development overhead as you have to manually manage
/// the lifecycle of the underlying [AnimationController].   .{.k.{      ... .....    /v/v/ /]/^/]/]/p  ...   4 5    55	5   5!5!5/   5:5:5?   5_5_5d   555   555   555   555   555   6	6	6   6-6-63   6>6>6M   6[6[6a 5G5O5P5s5w5x556#6o6u666v633 )/// Creates a widget that animates the properties of a [PhysicalModel].
///
/// The [elevation] must be non-negative.
///
/// Animating [color] is optional and is controlled by the [animateColor] flag.
///
/// Animating [shadowColor] is optional and is controlled by the [animateShadowColor] flag. 	 7 6y7 `/// The widget below this widget in the tree.
///
/// {@macro flutter.widgets.ProxyWidget.child} 7]7
X7]=/// The type of shape.
///
/// This property is not animated. 77gr7T/// {@macro flutter.material.Material.clipBehavior}
///
/// Defaults to [Clip.none]. 8t7ހ8t{/// The target border radius of the rounded corners for a rectangle shape.
///
/// If null, treated as [BorderRadius.zero]. 9(89(/// The target z-coordinate relative to the parent at which to place this
/// physical object.
///
/// The value will always be non-negative. 9e9649e /// The target background color. 99oC9)/// Whether the color should be animated. 9969/// The target shadow color. :09P:00/// Whether the shadow color should be animated.    :G:H:G:Gj:    ::&: ::::b:  0033}/// Animated version of [PhysicalModel].
///
/// The [borderRadius] and [elevation] are animated.
///
/// The [color] is animated if the [animateColor] property is set; otherwise,
/// the color changes immediately at the start of the animation for the other
/// two properties. This allows the color to be animated independently (e.g.
/// because it is being driven by an [AnimatedTheme]).
///
/// The [shape] is not animated.
///
/// Here's an illustration of what using this widget looks like, using a [curve]
/// of [Curves.fastOutSlowIn].
/// {@animation 250 266 https://flutter.github.io/assets-for-api-docs/assets/widgets/animated_physical_model.mp4}   ==x =  ===  ===  ===      >
>
>  ====e=    AnAnA{ AUAVAUAUAh  ==&=!   I I    II	I   II!I   II
J   JJJ   J%J%J*   J;J;JA   JLJLJ[   JiJiJo IIIJ}JJJJJJJJJJJJJJJJJJJH|H|o /// Creates a widget that sizes its child to a fraction of the total available
/// space that animates implicitly, and positions its child by an alignment
/// that animates implicitly.
///
/// If non-null, the [widthFactor] and [heightFactor] arguments must be
/// non-negative.  KdJzKd`/// The widget below this widget in the tree.
///
/// {@macro flutter.widgets.ProxyWidget.child} KKnaKD/// {@macro flutter.widgets.basic.fractionallySizedBox.heightFactor} L(K_L(C/// {@macro flutter.widgets.basic.fractionallySizedBox.widthFactor} LL8eLA/// {@macro flutter.widgets.basic.fractionallySizedBox.alignment}    LLLL~L    MIMI&Me M$M%M$M$mM5  CCCCPH:/// Animated version of [FractionallySizedBox] which automatically transitions the
/// child's size over a given duration whenever the given [widthFactor] or
/// [heightFactor] changes, as well as the position whenever the given [alignment]
/// changes.
///
/// For the animation, you can choose a [curve] as well as a [duration] and the
/// widget will automatically animate to the new target [widthFactor] or
/// [heightFactor].
///
/// {@tool dartpad}
/// The following example transitions an [AnimatedFractionallySizedBox]
/// between two states. It adjusts the [heightFactor], [widthFactor], and
/// [alignment] properties when tapped, using a [curve] of [Curves.fastOutSlowIn]
///
/// ** See code in examples/api/lib/widgets/implicit_animations/animated_fractionally_sized_box.0.dart **
/// {@end-tool}
///
/// See also:
///
///  * [AnimatedAlign], which is an implicitly animated version of [Align].
///  * [AnimatedContainer], which can transition more values at once.
///  * [AnimatedSlide], which can animate the translation of child by a given offset relative to its size.
///  * [AnimatedPositioned], which, as a child of a [Stack], automatically
///    transitions its child's position over a given duration whenever the given
///    position changes.   OO"O  O9O*!O9  O^OO O^      OOO OtOuOtOtjO    RRS RRRR"R    T-T-'TI TT	TTT  NNjN            i݁/// Signature for a [Tween] factory.
///
/// This is the type of one of the arguments of [TweenVisitor], the signature
/// used by [AnimatedWidgetBaseState.forEachTween].
///
/// Instances of this function are expected to take a value and return a tween
/// beginning at that value.  %%/// Signature for callbacks passed to [ImplicitlyAnimatedWidgetState.forEachTween].
///
/// {@template flutter.widgets.TweenVisitor.arguments}
/// The `tween` argument should contain the current tween value. This will
/// initially be null when the state is first initialized.
///
/// The `targetValue` argument should contain the value toward which the state
/// is animating. For instance, if the state is animating its widget's
/// opacity value, then this argument should contain the widget's current
/// opacity value.
///
/// The `constructor` argument should contain a function that takes a value
/// (the widget's value being animated) and returns a tween beginning at that
/// value.
///
/// {@endtemplate}
///
/// `forEachTween()` is expected to update its tween value to the return value
/// of this visitor.
///
/// The `<T>` parameter specifies the type of value that's being animated.     package:flutter/material.dart    animated_cross_fade.dart    animated_size.dart  2  animated_switcher.dart  [  scroll_view.dart  ~  sliver.dart    tween_animation_builder.dart  <Հف)Ruˁ́'PƂ߂-.F{
ÄIdhYbdeLˈω\%Wy΋lWYZٌ:>LPVQSTߐLP^b &iّڒ(4
#'mʓДBqr̕?C28{ʖ˗%]_`ؘ	?C֘ܙ(vęߙ@k˚Z+)-/0_cÝǞVH_ڟ$&'pϡhx|Ϣ>BkoJ)sL<@ۧ*.w8LeѪ!qԫ1=iǭ
KtƭCXYFq6a߰1eiղ$%y}:>Դ15ϴڴ޴DY]Ѷ*+quRV=O޹(5xӹ)ZԻ0NV^vѻ">agż0:OͽY]^kwӾ׾ؾ-Je @  @G @X @} @ @ @ @ @ @ @ @ @ AD AT AZ A| A A B Bh B B B C C C1 C7 C C D* Dx D D D E Ee E F  FL Fm Fs F F F G% Gi G G G G G H. H= HC HQ H H H H H I I/ Iv I I I I I J' Jj J J J K K8 K K K L L LQ Ln Lx L L L L L L M. MH MN M M M N N NP N N O" O( Ov O P Pc P P Q Q Q! Q" Qs Q Q Q R) RW R[ R R S SN S} S S S S S S S T T1 Tt T| T T T T T U/ Uz U U U V3 V V W W2 W6 Wy W} W W X$ XL XP X X X X X Y YA Y Y Z* ZC Z Z [G [ [ \  \6 \E \Y \k \} \ \ \ \ ]  ] ]% ]B ]R ]u ] ] ] ] ^$ ^j ^ ^ ^ _) _ _ _ `$ `g ` ` ` ` ` aE a a b b bF b] b^ b b b c+ c{ c c c c c d	 d2 d~ d d d e e; e` ea e e e f) f9 fY fZ f f f f f g? gr gx g g g h h/ h0 hx h h h i iI iO i_ ie i i i j j# jo ju j j j k? k k k l l l" l{ l| l l l m m: mO mb m{ m m m n ng n n o o" o7 oS ol ou o| o p, p@ pn p p p p p q! q% q' q( q{ q q q r r5 rY ru r r r r r s s" sB s s s s s t t* t t t t t t u ul uz u u u u v vf vt v v v v v wM w[ w w w w w x1 x? xh xy x x x y y y8 yR yc y y z z zA zE zF zR zy z z z {' {[ { { | |7 |{ | | | | | | } }I }^ } } } } } } } ~ ~q ~x ~ ~ L S h       
  z     ; X t }        ` d   ? C W    ! 1 5 C G   
 4 m       $ A R x y      < S T `     2         @ O ` x    + / 0 < c w        R ~       J     h l   a   F      
 c s w     (   / H      # 3 J ` q      4 :   ' u   9 ? O U    = b c      6 < z     / L M Y     ' {       < = I ~     6 D l     
 T d       % o         # `        @ U    1 8 M       V Z      k   S ` d   B F   8   $ _ c w     |      * K     U        * ; K \ m      f         5 P m          ] s t     - . x      ' > ? Y _      U V b    \   6        $ > W q r ~    < G    / N \    J i w     	 0 G o     A \ c g h t   1 z   c     	 T a e      O   4    $ C     $ a    =    	 " 2 @ N _ o   ® ¿  = > n t å û ü    ` u v ĺ    2 3 L R Ţ       P v Ǝ Ə ƛ     d Ǐ   _ ȩ  ; ? A B l ɱ     + E F R ʇ ʔ    z ˙ ˤ    - ̏ ̮ ̻  : H ͪ      3 V · α   ) S  Ϛ ϡ ϥ Ϧ ϲ  $ q к  R џ     K ҍ ґ ҥ ҩ  C G S Ӏ Ӥ Ө Ӹ    0 J N j Ԥ Ԭ ԰    9 W s ՚     B ` ֖           $ 2 6 x   ? ؎   K c r ق ٛ         P V ڇ ڞ ڟ ڷ    P V ۦ    8 > ~ ܤ ܥ ܱ  	  Z ݅ ݹ  + 2 ޗ ޛ ޝ ޞ   2 3 ? t ߁       , \ ` a m      7 > B D E       V     
   Z ` d         J a     , ; P     ( 9 H U ` h n v      * u     ' @ g         , C D       p     < =       e f r    *       R k      D c g h t        4 W        0 4      r    & * 8 <    5    ( 7 G a r        % & ?       ' l      2 L w x    ) H L M Y t      + / 1 2      _     i m        , 2 6 h        8 O      D S o           * . x ]rvi9/}^ :IYt>Du./z	0	x				
:
;
G





KfGfjkw;x9FJ>BVO_cvz`nMeA	)8Idu.FGag4:SY;pa,Gst(GKLXs "?|&q~37    p !!g!""?""""##-#A#[#####$$"$S$T$$$$$$$%K%d%e%%%&&&E&K&&&&&''#'r''''(>(D(|(((()#)J)K)u))))*"*#*/*t**+#+7+K+_+x+++,,	,c,,,- --E-N-U-i-----.....i...../6/V/Z/[/g////00:0[0000000111H1L11252l2p22233w34 4424844455565[5~555566)6:6W6h66666777!7'7L7d7e777778)8/8^88888993949W9l9m999999:#:D:E:Q:::;;/;k;;</<|<=====v======>+>?>P>m>>??(?9?J?d????@@b@~@@@@A$A2ANARASA_AAAABBNBBBCC5C<C@CBCCCCD4DADEDDDDE
EREEEF\FlFpF~FFGGGHH4HzHII9I?IIIIIJ
J!J7JHJeJvJJJKK#KTKkKlKKKLL5L6LzLLLLM!M"M.MsMMN?NNNNNOO(OMOqOrO~OOOOPPkPyPPPPQQ?QQQQQR RR6RZRRRRRRRSS4SgSSSTTTTTXTTTU UUuU|UUUUV    %BoxConstraintsTweenDecorationTweenEdgeInsetsTweenEdgeInsetsGeometryTweenBorderRadiusTweenBorderTweenMatrix4TweenTextStyleTweenImplicitlyAnimatedWidgetImplicitlyAnimatedWidgetStateAnimatedWidgetBaseStateAnimatedContainer_AnimatedContainerStateAnimatedPadding_AnimatedPaddingStateAnimatedAlign_AnimatedAlignStateAnimatedPositioned_AnimatedPositionedStateAnimatedPositionedDirectional#_AnimatedPositionedDirectionalStateAnimatedScale_AnimatedScaleStateAnimatedRotation_AnimatedRotationStateAnimatedSlide_AnimatedSlideStateAnimatedOpacity_AnimatedOpacityStateSliverAnimatedOpacity_SliverAnimatedOpacityStateAnimatedDefaultTextStyle_AnimatedDefaultTextStyleStateAnimatedPhysicalModel_AnimatedPhysicalModelStateAnimatedFractionallySizedBox"_AnimatedFractionallySizedBoxState&flutter.widgets.TweenVisitor.argumentsThe `tween` argument should contain the current tween value. This will
initially be null when the state is first initialized.

The `targetValue` argument should contain the value toward which the state
is animating. For instance, if the state is animating its widget's
opacity value, then this argument should contain the widget's current
opacity value.

The `constructor` argument should contain a function that takes a value
(the widget's value being animated) and returns a tween beginning at that
value. ͥ