7forwardreversenormalpreserve lowerBound upperBound debugLabelanimationBehaviorviewdurationreverseDuration_tickerresync _simulationvalue_valueresetvelocity_internalSetValuelastElapsedDuration_lastElapsedDuration isAnimating _directionstatus_statustoggle animateTo animateBack_animateToInternalrepeat_directionSetterfling animateWithanimateBackWith_startSimulationstopdispose_lastReportedStatus_checkStatusChanged_ticktoStringDetails_durationInSeconds_begin_end_curvexdxisDoneminmaxcountdirectionSetter_periodInSeconds _initialT_exitTimeInSeconds_AnimationDirection_kFlingSpringDescription_kFlingToleranceAnimationBehaviorAnimationController_InterpolationSimulation_DirectionSetter_RepeatingSimulationq lerpDouble SimulationSpringDescription TickerFutureTickerProvider AnimationAnimationStatusCurvewithDampingRatiomass stiffness TolerancevelocitydoubleinfinitydistanceAccessibilityFeaturesdisableAnimationspreserveState TickerModeTickerSingleTickerProviderStateMixinStatefulWidget initStatedisposeFutureorCanceldidUpdateWidgetTickerCanceledmountedSlideTransitiondurationTweenAnimationEagerListenerMixinAnimationLocalListenersMixin"AnimationLocalStatusListenersMixintoStringnormalforwarddebugMaybeDispatchCreatedvsync createTickernegativeInfinityStringnew unboundedDurationvoid absorbTickeroverridenotifyListenersdxinMicrosecondstoDoublemicrosecondsPerSecond clampDouble dismissed completedreversemuted isAnimatingboolisActivefrom FlutterErrorisForwardOrCompletedCurveslinearcurveSemanticsBindinginstanceisFiniteabszerocompleteminmaxcountintperiodspringDescription SpringTypecriticallyDamped overDamped underDampedanimationBehaviorSpringSimulation tolerancetypexstartstopcanceled fromPartsDiagnosticsNode ErrorSummaryErrorDescription runtimeTypeDiagnosticsPropertystyleDiagnosticsTreeStyle errorPropertydebugMaybeDispatchDisposedclearStatusListenersclearListenersnotifyStatusListenersisDonetoStringDetailstoStringAsFixed transformtimeisOdd AnimationAnimationEagerListenerMixinAnimationLocalListenersMixin"AnimationLocalStatusListenersMixin Simulationp[÷˜ê—.üݳä Jù‚m‚� SimulationSpringDescription‚Gpackage:flutter/physics.dart‚º‚Û TickerFutureTickerProvider‚’package:flutter/scheduler.dart‚øƒ AnimationAnimationStatus‚àanimation.dartƒ/ƒ9Curveƒ curves.dart�6�E lerpDouble� �0�3ui�3dart:ui�Kpackage:flutter/foundation.dart�vpackage:flutter/physics.dart�žpackage:flutter/scheduler.dart�Èpackage:flutter/semantics.dart�ôanimation.dart‚ curves.dart‚%listener_helpers.dartÀk²À¦¥„*=€ˆ€§€©€Ù����H�J�u���Ç�ñ�ó‚ ‚$‚E‚G‚’‚Þ‚àƒƒ<ƒ>ƒWƒ³ƒÌƒóƒõ„*„F„}„‰„‹„̈́ل܄ޅ6…D…Y…]…_…¹…»††††j†»‡‡T‡o‡t‡Æˆˆhˆ‚ˆÁˆû‰‰‰E‰L‰ž‰äŠ(Š5Š8Š:Š^ŠcŠ“Š˜Šä‹‹\‹¡‹¦‹ôŒ#Œ(ŒzŒË��O�œ�ëŽ6Ž‚Ž“Ž˜Ž±Ž¶��6���Ð�Õ��^�«�í�ò‘‘ ‘Z‘«‘ì’;’@’s’x’Ä““d“±””+”0””‹”�”¥”ª”å•&•u•Á– –S–d–i–v–ž–×–Ü–ü———B—I—N—œ—ɗΗߗù˜˜A˜˜¥˜±˜º˜¿˜Ð˜ý™(™Y™b™g™x™�™°™Ê™Ó™Ø™éšš9šBšIšRšcšxš}šÅ›››(›Z›g›¢›Ý›ôœœœ;œ…œŽœ•œžœ¯œ´��U�š�åž4žvž³ž¸žÍŸ ŸQŸ”ŸÕ  I � § ¬¡ ¡¡¡.¡3¡€¡¨¡Ý¡ç¢ ¢4¢b¢Š¢‘¢â¢ò¢ù£?£F£�£¸£¿¤ ¤O¤V¤£¤å¤ì¥>¥Š¥°¥É¥Ý¥ñ¦ ¦"¦>¦Z¦’¦¶¦à§§e§�§¼§Á§Ã¨¨¨$¨\¨c¨©¨°¨ù©"©)©{©Ç©í©ôªFª�ª­ªÐªéªý««.«R«Œ«º«à¬¬e¬�¬®¬³¬µ¬ù­­­[­w­y­Ä®®$®&®{®‹®’®â¯¯S¯�¯ƒ¯Ò°$°^°…°‡°½°Ä±±g±~±€±Î±Õ²%²9²W²Y²m²o²¬²Ó²û³%³L³Q³S³o³q³œ³£³ç³÷³þ´E´†´˜´¥´Ä´Û´Ýµ%µ7µ>µƒµ˜µŸµë¶9¶@¶“¶ç·)·0·A·H·“·å¸2¸Z¸©¸ð¹¹¹?¹W¹s¹x¹z¹ÉºººrºÆ»»» »'»v»À¼¼_¼‡¼™¼²¼·¼¹¼ê¼ñ½@½W½p½‰½œ½£½À¾¾ ¾%¾'¾T¾‘¾²¾Þ¿¿2¿@¿g¿¨¿é¿ó¿ú¿ÿÀ@À@RÀ@„À@‹À@ÙÀAÀA:ÀA<ÀA�ÀA¤ÀAîÀB6ÀB‡ÀB¼ÀBÃÀCÀCbÀC®ÀC»ÀCüÀCþÀD!ÀD#ÀD0ÀDZÀD{ÀD}ÀD¾ÀDÅÀEÀEÀEnÀE„ÀE‹ÀEÞÀF2ÀFtÀF{ÀFËÀGÀGAÀGkÀG|ÀG›ÀG¸ÀHÀHfÀH”ÀH ÀH©ÀH½ÀHÈÀHÕÀHíÀIAÀI‘ÀI™ÀIÈÀIáÀIöÀIýÀJ)ÀJ.ÀJ0ÀJyÀJ€ÀJÐÀJ×ÀK*ÀK@ÀKGÀKšÀKîÀL0ÀL7ÀL‡ÀLÑÀLýÀM'ÀM8ÀMrÀM�ÀMðÀNeÀN“ÀNŸÀN¨ÀN¼ÀNÇÀNÔÀNìÀO@ÀO�ÀO˜ÀOÇÀOàÀOõÀOüÀP(ÀP-ÀP/ÀP‹ÀP’ÀPçÀQ;ÀQŠÀQ‘ÀQäÀQúÀRÀRTÀR¨ÀRêÀSÀS$ÀSOÀSrÀS™ÀS¢ÀSÁÀSÞÀT+ÀT‹ÀT¸ÀTÄÀTÍÀTáÀTìÀTùÀUÀUdÀU´ÀU¼ÀV ÀV9ÀVNÀVUÀVŠÀV¼ÀVîÀV÷ÀVüÀVþÀWQÀWXÀW§ÀW®ÀXÀXUÀX—ÀXžÀXíÀY7ÀY{ÀYŸÀY¦ÀYðÀZ@ÀZ\ÀZºÀZËÀ[À[ À[‰À[ëÀ\GÀ\wÀ\ƒÀ\ŒÀ\ À\«À\¸À\ÐÀ]&À]vÀ]~À]­À]÷À]üÀ]þÀ^RÀ^YÀ^¨À^¯À_À_VÀ_˜À_ŸÀ_îÀ`8À`|À` À`§À`ñÀaAÀa]Àa½ÀaÎÀb!Àb>Àb¼Àc Àc‘ÀcÃÀcÏÀcØÀcìÀc÷ÀdÀdÀdtÀdÄÀdÌÀdûÀeEÀeJÀeLÀepÀe†ÀeŸÀeÁÀeÉÀfÀfdÀf£Àg ÀgrÀg”ÀgîÀh4Àh<ÀhjÀh‘ÀhçÀhöÀiÀiTÀi{Ài…ÀiºÀjÀjDÀj–Àj´ÀjÑÀkÀk7ÀkcÀkŽÀk•Àk¢ÀkÒÀkðÀl/ÀlKÀlTÀl‘Àl¸ÀlàÀlþÀm%Àm,Àm]ÀmxÀm–ÀméÀmñÀmöÀmøÀn;ÀnlÀnsÀnÁÀoÀoÀodÀo´ÀpÀp2Àp9Àp�ÀpèÀq9Àq@Àq�ÀqßÀqæÀr;Àr“Àr¶Àr½ÀsÀsdÀs¦Às¿ÀsÑÀsãÀsþÀtÀt&Àt.ÀtGÀt`ÀtzÀt‹Àt¨ÀtÅÀu1ÀuŽÀuêÀvÀv#Àv,Àv@ÀvKÀvdÀv™ÀvòÀvÿÀwÀwwÀwÀw„Àw†ÀwÀÀwÝÀxÀx;Àx_Àx{Àx€Àx‚ÀxÓÀxðÀx÷ÀyFÀyŒÀyÞÀzÀz ÀzTÀz¦ÀzøÀ{EÀ{jÀ{qÀ{ÄÀ{üÀ|À|RÀ|YÀ|¬À}À}BÀ}ZÀ}vÀ}¡À}ÌÀ}ÔÀ~ À~gÀ~‘À~ÃÀ~öÀKÀyÀÎÀ€)À€oÀ€wÀ€²À€ÌÀ€ÚÀ€éÀ�À�(À�5À�gÀ�µÀ‚À‚SÀ‚¨À‚°À‚½À‚çÀ‚ìÀ‚îÀƒ-Àƒ4ÀƒyÀƒÃÀ„À„QÀ„XÀ„§À„®À…À…UÀ…—À…­À…´À†À†À†%À†6À†=À†�À†²À†çÀ†ôÀ‡ À‡dÀ‡´À‡¼À‡ÉÀ‡øÀˆ"Àˆ'Àˆ)ÀˆzÀˆœÀˆ£ÀˆåÀˆìÀ‰<À‰VÀ‰]À‰nÀ‰uÀ‰ÁÀ‰æÀŠÀŠ,ÀŠDÀŠœÀŠìÀŠôÀ‹À‹0À‹ZÀ‹_À‹aÀ‹›À‹¶À‹ÕÀŒÀŒFÀŒyÀŒ´ÀŒ×ÀŒûÀ�À�+À�0À�2À�WÀ�^À�©À�¿À�ÆÀŽÀŽXÀŽ«ÀŽúÀ�2À�9À�JÀ�QÀ�¡À�ÎÀ�!À�SÀ�zÀ�‡À�ŸÀ�ðÀ‘@À‘HÀ‘aÀ‘ƒÀ‘«À‘°À‘²À’À’'À’.À’�À’ÕÀ“À“$À“8À“IÀ“gÀ“ À“ñÀ”KÀ”€À”ÎÀ”áÀ•À•'À•4À•=À•QÀ•\À•‹À•¤À•¹À•ÖÀ•íÀ–À–À– À–NÀ–nÀ–�À–ÊÀ–òÀ—À—"À—'À—)À—KÀ—pÀ—•À—âÀ˜À˜]À˜�À˜ÌÀ˜óÀ™À™9À™@À™XÀ™tÀ™yÀ™{À™ˆÀ™¦À™àÀšBÀšZÀškÀšŒÀš²Àš»ÀšÏÀšÚÀ›-À›VÀ›[À›^À›`À›•À›÷Àœ#ÀœƒÀœ…Àœ©ÀœÁÀœ×ÀœîÀœðÀœýÀ�!À�rÀ�‹À�¡À�µÀ�ñÀ�ùÀ�þÀžÀž Àž2Àž^ÀžµÀžºÀž¼ÀžÉÀŸÀŸÀŸÀŸdÀŸfÀŸ—ÀŸ°ÀŸÊÀŸÙÀŸèÀŸûÀ À ,À =À ˜À êÀ¡ À¡À¡fÀ¡²À¡×À¡öÀ¡ûÀ¡ýÀ¢À¢'À¢>À¢SÀ¢~À¢€À¢¢À¢½À¢¿À£À£À£!À£EÀ£hÀ£jÀ£¬À£ñÀ¤DÀ¤FÀ¤nÀ¤£À¤ÎÀ¤ÜÀ¥À¥<À¥CÀ¥HÀ¥JÀ¥WÀ¥�À¥ŸÀ¥¬À¥ÓÀ¦'À¦YÀ¦�À¦¢À¦¥g/// @docImport 'package:flutter/widgets.dart'; /// @docImport 'package:flutter_test/flutter_test.dart';��4�3�6�E�J�u���Ç�ó‚ ‚$‚G‚m‚�‚’‚º‚Û‚à‚øƒƒƒ/ƒ9Š:À‘"¡®¡®–Ú/// A controller for an animation. /// /// This class lets you perform tasks such as: /// /// * Play an animation [forward] or in [reverse], or [stop] an animation. /// * Set the animation to a specific [value]. /// * Define the [upperBound] and [lowerBound] values of an animation. /// * Create a [fling] animation effect using a physics simulation. /// /// By default, an [AnimationController] linearly produces values that range /// from 0.0 to 1.0, during a given duration. /// /// When the animation is actively animating, the animation controller generates /// a new value each time the device running your app is ready to display a new /// frame (typically, this rate is around 60–120 values per second). /// If the animation controller is associated with a [State] /// through a [TickerProvider], then its updates will be silenced when that /// [State]'s subtree is disabled as defined by [TickerMode]; time will still /// elapse, and methods like [forward] and [stop] can still be called and /// will change the value, but the controller will not generate new values /// on its own. /// /// ## Ticker providers /// /// An [AnimationController] needs a [TickerProvider], which is configured using /// the `vsync` argument on the constructor. /// The constructor uses the [TickerProvider] to create a [Ticker], which /// the [AnimationController] uses to step through the animation it controls. /// /// For advice on obtaining a ticker provider, see [TickerProvider]. /// Typically the relevant [State] serves as the ticker provider, /// after applying a suitable mixin (like [SingleTickerProviderStateMixin]) /// to cause the [State] subclass to implement [TickerProvider]. /// /// ## Life cycle /// /// An [AnimationController] should be [dispose]d when it is no longer needed. /// This reduces the likelihood of leaks. When used with a [StatefulWidget], it /// is common for an [AnimationController] to be created in the /// [State.initState] method and then disposed in the [State.dispose] method. /// /// ## Using [Future]s with [AnimationController] /// /// The methods that start animations return a [TickerFuture] object which /// completes when the animation completes successfully, and never throws an /// error; if the animation is canceled, the future never completes. This object /// also has a [TickerFuture.orCancel] property which returns a future that /// completes when the animation completes successfully, and completes with an /// error when the animation is aborted. /// /// This can be used to write code such as the `fadeOutAndUpdateState` method /// below. /// /// {@tool snippet} /// /// Here is a stateful `Foo` widget. Its [State] uses the /// [SingleTickerProviderStateMixin] to implement the necessary /// [TickerProvider], creating its controller in the [State.initState] method /// and disposing of it in the [State.dispose] method. The duration of the /// controller is configured from a property in the `Foo` widget; as that /// changes, the [State.didUpdateWidget] method is used to update the /// controller. /// /// ```dart /// class Foo extends StatefulWidget { /// const Foo({ super.key, required this.duration }); /// /// final Duration duration; /// /// @override /// State createState() => _FooState(); /// } /// /// class _FooState extends State with SingleTickerProviderStateMixin { /// late AnimationController _controller; /// /// @override /// void initState() { /// super.initState(); /// _controller = AnimationController( /// vsync: this, // the SingleTickerProviderStateMixin /// duration: widget.duration, /// ); /// } /// /// @override /// void didUpdateWidget(Foo oldWidget) { /// super.didUpdateWidget(oldWidget); /// _controller.duration = widget.duration; /// } /// /// @override /// void dispose() { /// _controller.dispose(); /// super.dispose(); /// } /// /// @override /// Widget build(BuildContext context) { /// return Container(); // ... /// } /// } /// ``` /// {@end-tool} /// {@tool snippet} /// /// The following method (for a [State] subclass) drives two animation /// controllers using Dart's asynchronous syntax for awaiting [Future] objects: /// /// ```dart /// Future fadeOutAndUpdateState() async { /// try { /// await fadeAnimationController.forward().orCancel; /// await sizeAnimationController.forward().orCancel; /// setState(() { /// dismissed = true; /// }); /// } on TickerCanceled { /// // the animation got canceled, probably because we were disposed /// } /// } /// ``` /// {@end-tool} /// /// The assumption in the code above is that the animation controllers are being /// disposed in the [State] subclass' override of the [State.dispose] method. /// Since disposing the controller cancels the animation (raising a /// [TickerCanceled] exception), the code here can skip verifying whether /// [State.mounted] is still true at each step. (Again, this assumes that the /// controllers are created in [State.initState] and disposed in /// [State.dispose], as described in the previous section.) /// /// {@tool dartpad} /// This example shows how to use [AnimationController] and /// [SlideTransition] to create an animated digit like you might find /// on an old pinball machine our your car's odometer. New digit /// values slide into place from below, as the old value slides /// upwards and out of view. Taps that occur while the controller is /// already animating cause the controller's /// [AnimationController.duration] to be reduced so that the visuals /// don't fall behind. /// /// ** See code in examples/api/lib/animation/animation_controller/animated_digit.0.dart ** /// {@end-tool} /// /// See also: /// /// * [Tween], the base class for converting an [AnimationController] to a /// range of values of other types.¢d…[¥²¥²¥Åƒ/// Creates an animation controller. /// /// * `value` is the initial value of the animation. If defaults to the lower /// bound. /// /// * [duration] is the length of time this animation should last. /// /// * [debugLabel] is a string to help identify this animation during /// debugging (used by [toString]). /// /// * [lowerBound] is the smallest value this animation can obtain and the /// value at which this animation is deemed to be dismissed. /// /// * [upperBound] is the largest value this animation can obtain and the /// value at which this animation is deemed to be completed. /// /// * `vsync` is the required [TickerProvider] for the current context. It can /// be changed by calling [resync]. See [TickerProvider] for advice on /// obtaining a ticker provider.¥Í ¥Ö¥Õ¥á ¥ç¥æ¥õ¥û¥ú¦¦¦¦&¦,¦+¦B¦H¦G¦^1¦d¦c¦–¦¯¦®¦8¦T¦w¦ˆ¦‰¦½¦Ã¦Ü¦Ï¦Ä¦Ò¦ò¦ç¦ô§§§Å„쪯ªÂªÃªÌªÃ‚¶/// Creates an animation controller with no upper or lower bound for its /// value. /// /// * [value] is the initial value of the animation. /// /// * [duration] is the length of time this animation should last. /// /// * [debugLabel] is a string to help identify this animation during /// debugging (used by [toString]). /// /// * `vsync` is the required [TickerProvider] for the current context. It can /// be changed by calling [resync]. See [TickerProvider] for advice on /// obtaining a ticker provider. /// /// This constructor is most useful for animations that will be driven using a /// physics simulation, especially when the physics simulation has no /// pre-determined bounds.ªÔªÜªÛªí ªóªò«««««"«!«2«K«J«V3«\«[ªã«o«€«�«ž«“« «¦«§«Ì«Á«Î«Ô«Õ«ò«ç«ô¬¬ ¬·[­­@/// The value at which this animation is deemed to be dismissed.­[­j­j@/// The value at which this animation is deemed to be completed.­{€¦®®€‡/// A label that is used in the [toString] output. Intended to aid with /// identifying animation controller instances in debug output.®(�V¯m¯m�/// The behavior of the controller when [AccessibilityFeatures.disableAnimations] /// is true. /// /// Defaults to [AnimationBehavior.normal] for the [AnimationController.new] /// constructor, and [AnimationBehavior.preserve] for the /// [AnimationController.unbounded] constructor.°‰€ò±s±s€Ó/// The length of time this animation should last. /// /// If [reverseDuration] is specified, then [duration] is only used when going /// [forward]. Otherwise, it specifies the duration going in both directions.±‚€Ò²E²E€¬/// The length of time this animation should last when going in [reverse]. /// /// The value of [duration] is used if [reverseDuration] is not specified or /// set to null.²[²c²c³U³a³a´Æ´Ò´ÒÀAÀA#ÀA#ÀDÀDÀDÀD\ÀDqÀDqÀ– ?À–À–À–2À–AÀ–B¯…€þ°v°v€Ñ/// Returns an [Animation] for this animation controller, so that a /// pointer to this object can be passed around without allowing users of that /// pointer to mutate the [AnimationController] state.³s�O´²´²�/// The current value of the animation. /// /// Setting this value notifies all the listeners that the value /// changed. /// /// Setting this value also stops the controller if it is currently /// running; if this happens, it also notifies all the status /// listeners.´š´›¼»�h½d½d€‘/// The rate of change of [value] per second. /// /// If [isAnimating] is false, then [value] is not changing and the rate of /// change is zero.À@�À@éÀ@é€Ë/// The amount of time that has passed between the time the animation started /// and the most recent tick of the animation. /// /// If the controller is not animating, the last elapsed duration is null.ÀA>‚¼ÀCÆÀCÆ‚S/// Whether this animation is currently animating in either the forward or reverse direction. /// /// This is separate from whether it is actively ticking. An animation /// controller's ticker might get muted, in which case the animation /// controller's callbacks will no longer fire even though time is continuing /// to pass. See [Ticker.muted] and [TickerMode]. /// /// If the animation was stopped (e.g. with [stop] or by setting a new [value]), /// [isAnimating] will return `false` but the [status] will not change, /// so the value of [AnimationStatus.isAnimating] might still be `true`.ÀC°ÀC±ÀD%3ÀDFÀDFÀD%ÀD&´ß„—¸ö¸öƒÓ/// Stops the animation controller and sets the current value of the /// animation. /// /// The new value is clamped to the range set by [lowerBound] and /// [upperBound]. /// /// Value listeners are notified even if this does not change the value. /// Status listeners are notified if the animation was previously playing. /// /// The most recently returned [TickerFuture], if any, is marked as having been /// canceled, meaning the future never completes and its [TickerFuture.orCancel] /// derivative future completes with a [TickerCanceled] error. /// /// See also: /// /// * [reset], which is equivalent to setting [value] to [lowerBound]. /// * [stop], which aborts the animation without changing its value or status /// and without dispatching any notifications other than completing or /// canceling the [TickerFuture]. /// * [forward], [reverse], [animateTo], [animateWith], [animateBackWith], /// [fling], and [repeat], which start the animation controller.¸ü¹¹²q€Þ²³²³9/// Recreates the [Ticker] with the new [TickerProvider].²º²Ê²É¹|ƒ9¼Ž¼Ž‚â/// Sets the controller's value to [lowerBound], stopping the animation (if /// in progress), and resetting to its beginning point, or dismissed state. /// /// The most recently returned [TickerFuture], if any, is marked as having been /// canceled, meaning the future never completes and its [TickerFuture.orCancel] /// derivative future completes with a [TickerCanceled] error. /// /// See also: /// /// * [value], which can be explicitly set to a specific value as desired. /// * [forward], which starts the animation in the forward direction. /// * [stop], which aborts the animation without changing its value or status /// and without dispatching any notifications other than completing or /// canceling the [TickerFuture].¾)�Ô¾.¾.¾@¾H¾GÀD…­ÀGPÀGP‚™/// Starts running this animation forwards (towards the end). /// /// Returns a [TickerFuture] that completes when the animation is complete. /// /// If [from] is non-null, it will be set as the current [value] before running /// the animation. /// /// The most recently returned [TickerFuture], if any, is marked as having been /// canceled, meaning the future never completes and its [TickerFuture.orCancel] /// derivative future completes with a [TickerCanceled] error. /// /// During the animation, [status] is reported as [AnimationStatus.forward], /// which switches to [AnimationStatus.completed] when [upperBound] is /// reached at the end of the animation.ÀGY ÀGbÀGaÀJ2…ùÀM ÀM ‚¢/// Starts running this animation in reverse (towards the beginning). /// /// Returns a [TickerFuture] that completes when the animation is dismissed. /// /// If [from] is non-null, it will be set as the current [value] before running /// the animation. /// /// The most recently returned [TickerFuture], if any, is marked as having been /// canceled, meaning the future never completes and its [TickerFuture.orCancel] /// derivative future completes with a [TickerCanceled] error. /// /// During the animation, [status] is reported as [AnimationStatus.reverse], /// which switches to [AnimationStatus.dismissed] when [lowerBound] is /// reached at the end of the animation.ÀM ÀMÀMÀP1†ÉÀRùÀRù‚–/// Toggles the direction of this animation, based on whether it [isForwardOrCompleted]. /// /// Specifically, this function acts the same way as [reverse] if the [status] is /// either [AnimationStatus.forward] or [AnimationStatus.completed], and acts as /// [forward] for [AnimationStatus.reverse] or [AnimationStatus.dismissed]. /// /// If [from] is non-null, it will be set as the current [value] before running /// the animation. /// /// The most recently returned [TickerFuture], if any, is marked as having been /// canceled, meaning the future never completes and its [TickerFuture.orCancel] /// derivative future completes with a [TickerCanceled] error.ÀS ÀS ÀS ÀW†úÀZkÀZkƒ-/// Drives the animation from its current value to the given target, "forward". /// /// Returns a [TickerFuture] that completes when the animation is complete. /// /// The most recently returned [TickerFuture], if any, is marked as having been /// canceled, meaning the future never completes and its [TickerFuture.orCancel] /// derivative future completes with a [TickerCanceled] error. /// /// During the animation, [status] is reported as [AnimationStatus.forward] /// regardless of whether `target` > [value] or not. At the end of the /// animation, when `target` is reached, [status] is reported as /// [AnimationStatus.completed]. /// /// If the `target` argument is the same as the current [value] of the /// animation, then this won't animate, and the returned [TickerFuture] will /// be already complete.ÀZu ÀZ}ÀZ|ÀZ…ÀZ�ÀZ�ÀZ™ÀZ ÀZŸÀZ§ÀZ­ÀZ®À^‡HÀalÀalƒ./// Drives the animation from its current value to the given target, "backward". /// /// Returns a [TickerFuture] that completes when the animation is complete. /// /// The most recently returned [TickerFuture], if any, is marked as having been /// canceled, meaning the future never completes and its [TickerFuture.orCancel] /// derivative future completes with a [TickerCanceled] error. /// /// During the animation, [status] is reported as [AnimationStatus.reverse] /// regardless of whether `target` < [value] or not. At the end of the /// animation, when `target` is reached, [status] is reported as /// [AnimationStatus.dismissed]. /// /// If the `target` argument is the same as the current [value] of the /// animation, then this won't animate, and the returned [TickerFuture] will /// be already complete.Àax Àa€ÀaÀaˆÀa“Àa’ÀaœÀa£Àa¢ÀaªÀa°Àa±ÀeNˆ¦Àe[Àe[Àet Àe|Àe{ÀeŠÀe•Àe”Àe£ÀeªÀe©Àe±Àe·Àe¸Àmú‰ˆÀsµÀsµ…b/// Starts running this animation in the forward direction, and /// restarts the animation when it completes. /// /// Defaults to repeating between the [lowerBound] and [upperBound] of the /// [AnimationController] when no explicit value is set for [min] and [max]. /// /// With [reverse] set to true, instead of always starting over at [min] /// the starting value will alternate between [min] and [max] values on each /// repeat. The [status] will be reported as [AnimationStatus.reverse] when /// the animation runs from [max] to [min]. /// /// Each run of the animation will have a duration of `period`. If `period` is not /// provided, [duration] will be used instead, which has to be set before [repeat] is /// called either in the constructor or later by using the [duration] setter. /// /// If a value is passed to [count], the animation will perform that many /// iterations before stopping. Otherwise, the animation repeats indefinitely. /// /// Returns a [TickerFuture] that never completes, unless a [count] is specified. /// The [TickerFuture.orCancel] future completes with an error when the animation is /// stopped (e.g. with [stop]). /// /// The most recently returned [TickerFuture], if any, is marked as having been /// canceled, meaning the future never completes and its [TickerFuture.orCancel] /// derivative future completes with a [TickerCanceled] error.Àsà ÀsÌÀsËÀsÕ ÀsÞÀsÝÀsçÀsíÀsìÀtÀt Àt Àt ÀtÀtÀsöÀwˆ€öÀw�Àw�ÀwžÀw³Àw²Àx„ŠfÀ}QÀ}Q„}/// Drives the animation with a spring (within [lowerBound] and [upperBound]) /// and initial velocity. /// /// If velocity is positive, the animation will complete, otherwise it will /// dismiss. The velocity is specified in units per second. If the /// [SemanticsBinding.disableAnimations] flag is set, the velocity is somewhat /// arbitrarily multiplied by 200. /// /// The [springDescription] parameter can be used to specify a custom /// [SpringType.criticallyDamped] or [SpringType.overDamped] spring with which /// to drive the animation. By default, a [SpringType.criticallyDamped] spring /// is used. See [SpringDescription.withDampingRatio] for how to create a /// suitable [SpringDescription]. /// /// The resulting spring simulation cannot be of type [SpringType.underDamped]; /// such a spring would oscillate rather than fling. /// /// Returns a [TickerFuture] that completes when the animation is complete. /// /// The most recently returned [TickerFuture], if any, is marked as having been /// canceled, meaning the future never completes and its [TickerFuture.orCancel] /// derivative future completes with a [TickerCanceled] error.À}^À}fÀ}eÀ}z$À}ŽÀ}�À}¥$À}¹À}¸À}pÀ‚ð…5À†ÁÀ†Áƒ„/// Drives the animation according to the given simulation. /// /// {@template flutter.animation.AnimationController.animateWith} /// The values from the simulation are clamped to the [lowerBound] and /// [upperBound]. To avoid this, consider creating the [AnimationController] /// using the [AnimationController.unbounded] constructor. /// /// Returns a [TickerFuture] that completes when the animation is complete. /// /// The most recently returned [TickerFuture], if any, is marked as having been /// canceled, meaning the future never completes and its [TickerFuture.orCancel] /// derivative future completes with a [TickerCanceled] error. /// {@endtemplate} /// /// The [status] is always [AnimationStatus.forward] for the entire duration /// of the simulation. /// /// See also: /// /// * [animateBackWith], which is like this method but the status is always /// [AnimationStatus.reverse].À†ÍÀ†ÙÀ†ØÀˆ+ƒ2À‰õÀ‰õ�˜/// Drives the animation according to the given simulation with a [status] of /// [AnimationStatus.reverse]. /// /// {@macro flutter.animation.AnimationController.animateWith} /// /// The [status] is always [AnimationStatus.reverse] for the entire duration /// of the simulation. /// /// See also: /// /// * [animateWith], which is like this method but the status is always /// [AnimationStatus.forward].ÀŠÀŠÀŠÀ‹c�ËÀ‹pÀ‹pÀ‹�À‹�À‹ŒÀ�4„zÀ�ZÀ�Z‚í/// Stops running this animation. /// /// This does not trigger any notifications. The animation stops in its /// current state. /// /// By default, the most recently returned [TickerFuture] is marked as having /// been canceled, meaning the future never completes and its /// [TickerFuture.orCancel] derivative future completes with a [TickerCanceled] /// error. By passing the `canceled` argument with the value false, this is /// reversed, and the futures complete successfully. /// /// See also: /// /// * [reset], which stops the animation and resets it to the [lowerBound], /// and which does send notifications. /// * [forward], [reverse], [animateTo], [animateWith], [fling], and [repeat], /// which restart the animation controller.À�`À�fÀ�eÀ�pÀ‘´„RÀ“+À“+�R/// Release the resources used by this object. The object is no longer usable /// after this method is called. /// /// The most recently returned [TickerFuture], if any, is marked as having been /// canceled, meaning the future never completes and its [TickerFuture.orCancel] /// derivative future completes with a [TickerCanceled] error.À“À“À–P€ÕÀ–UÀ–UÀ—+‚LÀ—0À—0À—6À—@À—?À™}�ÜÀ™‘À™‘À™}À™~À›`ƒ¶À›fÀ›fÀ›—€êÀ›—À›—À›¯À›° À›¶À›µÀ›½ À›ÃÀ›ÂÀ›ÈÀ›ÒÀ›ÑÀ›Û À›áÀ›àÀ›è À›ðÀ›ïÀ›ýÀœÀœÀœÀœÀœ Àœ ÀœÀœ<Àœ)Àœ`Àœ>Àœ^ÀœWÀœ?ÀœGÀœHÀœYÀœbÀœjÀœkÀœ‡Àœ”Àœ”Àœ«Àœ¸Àœ¸ÀœÃÀœÐÀœÐÀœÙÀœåÀœåÀœò� À�À�À�À�À�ÀœòÀœóÀž€¶ÀžÀžÀžÀž!Àž ÀžÀžÀž¾UÀžÐÀžÐÀž×ÀžßÀžÞÀž¾Àž¿ÀŸf‡=ÀŸlÀŸlÀŸ™‚`ÀŸ™ÀŸ™ÀŸ­ÀŸ´ÀŸ¼ÀŸ»ÀŸÎÀŸÔÀŸÓÀŸÝÀŸãÀŸâÀŸì ÀŸòÀŸñÀŸÿÀ  À À À À À 0 À 6À 5;À CÀ IÀ dÀ ”À XÀ PÀ JÀ SÀ aÀ [À cÀ fÀ ¯À žÀ ÇÀ ±À ·À ¸À ÉÀ ÑÀ ÒÀ úÀ ðÀ¡À¡%À üÀ¡À¡À ýÀ¡À¡À¡cÀ¡'À¡aÀ¡TÀ¡(À¡RÀ¡MÀ¡)À¡4À¡KÀ¡5À¡CÀ¡HÀ¡OÀ¡VÀ¡`À¡[À¡WÀ¡]À¡vÀ¡­À¡�À¡wÀ¡}À¡~À¡�À¡—À¡˜À¡ÿÀ¢ À¢ À¢À¢!À¢!À¢)À¢4À¢4À¢@À¢KÀ¢KÀ¢U&À¢lÀ¢lÀ¢‚À¢�À¢�À¢¤À¢±À¢±À¢ÁNÀ¢ÓÀ¢ÓÀ£À¢èÀ£À¢ðÀ¢îÀ¢éÀ¢òÀ£À£‚0À£*À£*À£,À£4À£3À£À£À¥LOÀ¥`À¥`À¥cÀ¥kÀ¥jÀ¥LÀ¥MÀ¥¡€ÿÀ¥³À¥³À¥ºÀ¥ÂÀ¥ÁÀ¥¡À¥¢ƒõ€å„/„/3/// The direction in which an animation is running.„H>„„3/// The animation is running from beginning to end.„�I„Ï„Ï>/// The animation is running backwards, from end to beginning.…»„{ˆmˆm‚ /// Configures how an [AnimationController] behaves when animations are /// disabled. /// /// When [AccessibilityFeatures.disableAnimations] is true, the device is asking /// Flutter to reduce or disable animations as much as possible. To honor this, /// we reduce the duration and the corresponding number of frames for /// animations. This enum is used to allow certain [AnimationController]s to opt /// out of this behavior. /// /// For example, the [AnimationController] which controls the physics simulation /// for a scrollable list will have [AnimationBehavior.preserve], so that when /// a user attempts to scroll it does not jump to the end/beginning too quickly.ˆ„ˆýˆýr/// The [AnimationController] will reduce its duration when /// [AccessibilityFeatures.disableAnimations] is true.‰ �(Š*Š*�/// The [AnimationController] will preserve its behavior. /// /// This is the default for repeating animations in order to prevent them from /// flashing rapidly on the screen if the widget does not take the /// [AccessibilityFeatures.disableAnimations] flag into account.ÀŸHÀŸ"ÀŸ"ÀŸCÀŸXÀŸW„Þ|„ö„ö ……"…#…3…Y…<…8…>…O…F…Q…_W…o…o …‚…‹…µ…”…Œ…–…œ…�…¯…§…±€²package:flutter/widgets.dart€â&package:flutter_test/flutter_test.dart„*=€ˆ€§€©€Ù����H�J�u���Ç�ñ�ó‚ ‚$‚E‚G‚’‚Þ‚àƒƒ<ƒ>ƒWƒ³ƒÌƒóƒõ„*„F„}„‰„‹„̈́ل܄ޅ6…D…Y…]…_…¹…»††††j†»‡‡T‡o‡t‡Æˆˆhˆ‚ˆÁˆû‰‰‰E‰L‰ž‰äŠ(Š5Š8Š:Š^ŠcŠ“Š˜Šä‹‹\‹¡‹¦‹ôŒ#Œ(ŒzŒË��O�œ�ëŽ6Ž‚Ž“Ž˜Ž±Ž¶��6���Ð�Õ��^�«�í�ò‘‘ ‘Z‘«‘ì’;’@’s’x’Ä““d“±””+”0””‹”�”¥”ª”å•&•u•Á– –S–d–i–v–ž–×–Ü–ü———B—I—N—œ—ɗΗߗù˜˜A˜˜¥˜±˜º˜¿˜Ð˜ý™(™Y™b™g™x™�™°™Ê™Ó™Ø™éšš9šBšIšRšcšxš}šÅ›››(›Z›g›¢›Ý›ôœœœ;œ…œŽœ•œžœ¯œ´��U�š�åž4žvž³ž¸žÍŸ ŸQŸ”ŸÕ  I � § ¬¡ ¡¡¡.¡3¡€¡¨¡Ý¡ç¢ ¢4¢b¢Š¢‘¢â¢ò¢ù£?£F£�£¸£¿¤ ¤O¤V¤£¤å¤ì¥>¥Š¥°¥É¥Ý¥ñ¦ ¦"¦>¦Z¦’¦¶¦à§§e§�§¼§Á§Ã¨¨¨$¨\¨c¨©¨°¨ù©"©)©{©Ç©í©ôªFª�ª­ªÐªéªý««.«R«Œ«º«à¬¬e¬�¬®¬³¬µ¬ù­­­[­w­y­Ä®®$®&®{®‹®’®â¯¯S¯�¯ƒ¯Ò°$°^°…°‡°½°Ä±±g±~±€±Î±Õ²%²9²W²Y²m²o²¬²Ó²û³%³L³Q³S³o³q³œ³£³ç³÷³þ´E´†´˜´¥´Ä´Û´Ýµ%µ7µ>µƒµ˜µŸµë¶9¶@¶“¶ç·)·0·A·H·“·å¸2¸Z¸©¸ð¹¹¹?¹W¹s¹x¹z¹ÉºººrºÆ»»» »'»v»À¼¼_¼‡¼™¼²¼·¼¹¼ê¼ñ½@½W½p½‰½œ½£½À¾¾ ¾%¾'¾T¾‘¾²¾Þ¿¿2¿@¿g¿¨¿é¿ó¿ú¿ÿÀ@À@RÀ@„À@‹À@ÙÀAÀA:ÀA<ÀA�ÀA¤ÀAîÀB6ÀB‡ÀB¼ÀBÃÀCÀCbÀC®ÀC»ÀCüÀCþÀD!ÀD#ÀD0ÀDZÀD{ÀD}ÀD¾ÀDÅÀEÀEÀEnÀE„ÀE‹ÀEÞÀF2ÀFtÀF{ÀFËÀGÀGAÀGkÀG|ÀG›ÀG¸ÀHÀHfÀH”ÀH ÀH©ÀH½ÀHÈÀHÕÀHíÀIAÀI‘ÀI™ÀIÈÀIáÀIöÀIýÀJ)ÀJ.ÀJ0ÀJyÀJ€ÀJÐÀJ×ÀK*ÀK@ÀKGÀKšÀKîÀL0ÀL7ÀL‡ÀLÑÀLýÀM'ÀM8ÀMrÀM�ÀMðÀNeÀN“ÀNŸÀN¨ÀN¼ÀNÇÀNÔÀNìÀO@ÀO�ÀO˜ÀOÇÀOàÀOõÀOüÀP(ÀP-ÀP/ÀP‹ÀP’ÀPçÀQ;ÀQŠÀQ‘ÀQäÀQúÀRÀRTÀR¨ÀRêÀSÀS$ÀSOÀSrÀS™ÀS¢ÀSÁÀSÞÀT+ÀT‹ÀT¸ÀTÄÀTÍÀTáÀTìÀTùÀUÀUdÀU´ÀU¼ÀV ÀV9ÀVNÀVUÀVŠÀV¼ÀVîÀV÷ÀVüÀVþÀWQÀWXÀW§ÀW®ÀXÀXUÀX—ÀXžÀXíÀY7ÀY{ÀYŸÀY¦ÀYðÀZ@ÀZ\ÀZºÀZËÀ[À[ À[‰À[ëÀ\GÀ\wÀ\ƒÀ\ŒÀ\ À\«À\¸À\ÐÀ]&À]vÀ]~À]­À]÷À]üÀ]þÀ^RÀ^YÀ^¨À^¯À_À_VÀ_˜À_ŸÀ_îÀ`8À`|À` À`§À`ñÀaAÀa]Àa½ÀaÎÀb!Àb>Àb¼Àc Àc‘ÀcÃÀcÏÀcØÀcìÀc÷ÀdÀdÀdtÀdÄÀdÌÀdûÀeEÀeJÀeLÀepÀe†ÀeŸÀeÁÀeÉÀfÀfdÀf£Àg ÀgrÀg”ÀgîÀh4Àh<ÀhjÀh‘ÀhçÀhöÀiÀiTÀi{Ài…ÀiºÀjÀjDÀj–Àj´ÀjÑÀkÀk7ÀkcÀkŽÀk•Àk¢ÀkÒÀkðÀl/ÀlKÀlTÀl‘Àl¸ÀlàÀlþÀm%Àm,Àm]ÀmxÀm–ÀméÀmñÀmöÀmøÀn;ÀnlÀnsÀnÁÀoÀoÀodÀo´ÀpÀp2Àp9Àp�ÀpèÀq9Àq@Àq�ÀqßÀqæÀr;Àr“Àr¶Àr½ÀsÀsdÀs¦Às¿ÀsÑÀsãÀsþÀtÀt&Àt.ÀtGÀt`ÀtzÀt‹Àt¨ÀtÅÀu1ÀuŽÀuêÀvÀv#Àv,Àv@ÀvKÀvdÀv™ÀvòÀvÿÀwÀwwÀwÀw„Àw†ÀwÀÀwÝÀxÀx;Àx_Àx{Àx€Àx‚ÀxÓÀxðÀx÷ÀyFÀyŒÀyÞÀzÀz ÀzTÀz¦ÀzøÀ{EÀ{jÀ{qÀ{ÄÀ{üÀ|À|RÀ|YÀ|¬À}À}BÀ}ZÀ}vÀ}¡À}ÌÀ}ÔÀ~ À~gÀ~‘À~ÃÀ~öÀKÀyÀÎÀ€)À€oÀ€wÀ€²À€ÌÀ€ÚÀ€éÀ�À�(À�5À�gÀ�µÀ‚À‚SÀ‚¨À‚°À‚½À‚çÀ‚ìÀ‚îÀƒ-Àƒ4ÀƒyÀƒÃÀ„À„QÀ„XÀ„§À„®À…À…UÀ…—À…­À…´À†À†À†%À†6À†=À†�À†²À†çÀ†ôÀ‡ À‡dÀ‡´À‡¼À‡ÉÀ‡øÀˆ"Àˆ'Àˆ)ÀˆzÀˆœÀˆ£ÀˆåÀˆìÀ‰<À‰VÀ‰]À‰nÀ‰uÀ‰ÁÀ‰æÀŠÀŠ,ÀŠDÀŠœÀŠìÀŠôÀ‹À‹0À‹ZÀ‹_À‹aÀ‹›À‹¶À‹ÕÀŒÀŒFÀŒyÀŒ´ÀŒ×ÀŒûÀ�À�+À�0À�2À�WÀ�^À�©À�¿À�ÆÀŽÀŽXÀŽ«ÀŽúÀ�2À�9À�JÀ�QÀ�¡À�ÎÀ�!À�SÀ�zÀ�‡À�ŸÀ�ðÀ‘@À‘HÀ‘aÀ‘ƒÀ‘«À‘°À‘²À’À’'À’.À’�À’ÕÀ“À“$À“8À“IÀ“gÀ“ À“ñÀ”KÀ”€À”ÎÀ”áÀ•À•'À•4À•=À•QÀ•\À•‹À•¤À•¹À•ÖÀ•íÀ–À–À– À–NÀ–nÀ–�À–ÊÀ–òÀ—À—"À—'À—)À—KÀ—pÀ—•À—âÀ˜À˜]À˜�À˜ÌÀ˜óÀ™À™9À™@À™XÀ™tÀ™yÀ™{À™ˆÀ™¦À™àÀšBÀšZÀškÀšŒÀš²Àš»ÀšÏÀšÚÀ›-À›VÀ›[À›^À›`À›•À›÷Àœ#ÀœƒÀœ…Àœ©ÀœÁÀœ×ÀœîÀœðÀœýÀ�!À�rÀ�‹À�¡À�µÀ�ñÀ�ùÀ�þÀžÀž Àž2Àž^ÀžµÀžºÀž¼ÀžÉÀŸÀŸÀŸÀŸdÀŸfÀŸ—ÀŸ°ÀŸÊÀŸÙÀŸèÀŸûÀ À ,À =À ˜À êÀ¡ À¡À¡fÀ¡²À¡×À¡öÀ¡ûÀ¡ýÀ¢À¢'À¢>À¢SÀ¢~À¢€À¢¢À¢½À¢¿À£À£À£!À£EÀ£hÀ£jÀ£¬À£ñÀ¤DÀ¤FÀ¤nÀ¤£À¤ÎÀ¤ÜÀ¥À¥<À¥CÀ¥HÀ¥JÀ¥WÀ¥�À¥ŸÀ¥¬À¥ÓÀ¦'À¦YÀ¦�À¦¢À¦¥_AnimationDirection_kFlingSpringDescription_kFlingToleranceAnimationBehaviorAnimationController_InterpolationSimulation_RepeatingSimulation1flutter.animation.AnimationController.animateWith�àThe values from the simulation are clamped to the [lowerBound] and [upperBound]. To avoid this, consider creating the [AnimationController] using the [AnimationController.unbounded] constructor. Returns a [TickerFuture] that completes when the animation is complete. The most recently returned [TickerFuture], if any, is marked as having been canceled, meaning the future never completes and its [TickerFuture.orCancel] derivative future completes with a [TickerCanceled] error.Š*