X_attachedController_animationControllerssizepixels sizeToPixels isAttached pixelsToSize animateTojumpToreset_assertAttached_attach_onExtentReplaced_detach_disposeAnimationControllersinitialChildSize minChildSize maxChildSizeexpandsnap snapSizessnapAnimationDuration controllershouldCloseOnMinExtentbuilder createStateextent minExtent maxExtent initialExtentcontextdebugFillDescription_cancelActivityminSizemaxSize initialSize _currentSizeavailablePixels hasDragged hasChangedisAtMinisAtMax currentSize currentPixelspixelSnapSizes startActivity addPixelDelta updateSizedisposecopyWith_scrollController_extent initState_impliedSnapSizesdidUpdateWidgetdidChangeDependenciesbuild_replaceExtent_snapSizeErrorMessageonPositionDetachedcreateScrollPositionpositiondetach_dragCancelCallback getExtent_ballisticControllerslistShouldScrollabsorb beginActivityapplyUserOffset_getCurrentSnapSize _isAtSnapSize _shouldSnap goBallisticdragchild _notifier _wasCalled sendReset _sendReset shouldResetvelocity minimumSpeed_pixelSnapSizedxisDonex _getSnapSize ScrollableWidgetBuilderDraggableScrollableControllerDraggableScrollableSheetDraggableScrollableNotification_DraggableSheetExtent_DraggableScrollableSheetState)_DraggableScrollableSheetScrollController'_DraggableScrollableSheetScrollPositionDraggableScrollableActuator!_DraggableScrollableActuatorState_ResetNotifier_InheritedResetNotifier_SnappingSimulation€Ð BuildContextScrollControllerAxisscrollController ScrollViewSingleChildScrollViewListViewGridViewWidgetStatebuild ListenableChangeNotifier kFlutterMemoryAllocationsEnabledmaybeDispatchObjectCreationSetAnimationControllerdoubleextent currentSize currentPixels sizeToPixelsScrollPositionbool hasClients pixelsToSizesnapFuture WidgetTester pumpAndSettlevoidDurationCurvedurationzero unboundedvsyncpositioncontextvalueaddgoIdle hasDragged hasChanged startActivity onCanceled isAnimatingstop addListener updateSizenotificationContext animateTo clampDoubleminSizemaxSizecurveinitialChildSizereset _currentSizenotifyListenersonPositionDetached disposeExtentdisposeremoveListeneranimationControllerclear ScrollablejumpToListTileScaffoldScrollBehaviorPointerDeviceKindmouse dragDevicesStatefulWidgetCenterListoverride NotificationNotificationListenerdepthsetStateFloatingActionButtonViewportNotificationMixinStringdebugFillDescription ValueNotifierinfinitydebugMaybeDispatchCreated VoidCallbackmaptoListcall minExtent maxExtent initialExtentshouldCloseOnMinExtentdispatchdebugMaybeDispatchDisposed snapSizessnapAnimationDuration initialSize initStatewidget minChildSize maxChildSize controller_attachintindexlengthisEmptyfirstlastdidUpdateWidget_detachdidChangeDependencies shouldResetValueListenableBuildervalueListenablebuilder LayoutBuilderBoxConstraintsavailablePixels constraintsbiggestheightFractionallySizedBox heightFactor alignment Alignment bottomCenterchildexpandSizedBoxcopyWith_onExtentReplacedWidgetsBindinginstanceaddPostFrameCallback positions elementAt goBallistic debugLabelasMapkeystoStringPrimaryScrollController ScrollPhysics ScrollContextphysicsapplyToAlwaysScrollableScrollPhysics oldPosition getExtent_cancelActivityoffset millisecondsCurveslineardetachScrollActivityViewportScrollPositionWithSingleContextpixelsabsorb_dragCancelCallbackballisticController beginActivityisAtMinisAtMax addPixelDeltaapplyUserOffsetfirstWhereOrNullsnapSizeabs toleranceFordistance SimulationinitialVelocity pixelSnapSizepixelSnapSizes toleranceClampingScrollSimulationvelocityobjectRuntimeTypesign isCompleted animateWithwhenCompleteOrCancelcontainsremoveDragDragStartDetailsdrag"dependOnInheritedWidgetOfExactType _sendResetnotifier hasListenersInheritedNotifier sendResetInheritedWidget _wasCalledinMillisecondsminmax indexWheresize ChangeNotifierStatefulWidget NotificationViewportNotificationMixinStateScrollControllerScrollPositionWithSingleContextInheritedNotifier SimulationÔ›& ÉHivÙÌ�¢�‚‚0‚3math‚3 dart:math‚="package:collection/collection.dart‚kpackage:flutter/foundation.dart‚–package:flutter/gestures.dart‚Á basic.dart‚× binding.dart‚ïframework.dartƒ inherited_notifier.dartƒ,layout_builder.dartƒKnotification_listener.dartƒqscroll_activity.dartƒ‘scroll_context.dartƒ°scroll_controller.dartƒÒscroll_notification.dartƒöscroll_physics.dart„scroll_position.dart„5(scroll_position_with_single_context.dart„iscroll_simulation.dart„‹value_listenable_builder.dartÀdŽÀ¹ù„´=€ˆ€§€©€Ú���K�x�œ�¿�ð‚‚‚‚:‚<‚j‚•‚¾‚À‚ւ+ƒJƒpƒ�ƒ¯ƒÑƒõ„„4„h„Š„³„µ„÷…E……„…Ô†#†<†_†®†°†Ü†á‡3‡ƒ‡Òˆ ˆˆ`ˆ¯ˆ´ˆþ‰N‰˜‰çŠ4ŠkŠ©Šå‹ ‹7‹p‹w‹|‹~‹ÁŒŒŒnŒƒŒ›ŒÐŒÕŒ×��)�A�x�}��Ö�üŽŽPŽUŽWŽºŽÝŽä�3�����ê�ì�I�q�‰�Ç�Ì�Α‘X‘_‘±’’’$’q’Ó“H“O“ž“¾“Å”&”]”d”­”ò••z•’•·•ß–3–n–¥–­–â——b———Ë—û˜˜n˜ž˜Å˜Ð˜Ú˜â™ ™;™_™¤™®™·™ášEš`šuš}š‚š„šÑ› ››_›¦›­›üœOœhœoœÍ��"�:�_�¦�éžžKžž¬ž¹žüŸŸ Ÿ ŸsŸ…Ÿ�ŸÀŸÅŸÇŸãŸð  g Â Ê Ï Ñ¡¡,¡P¡š¡¢¡Ï¢¢h¢m¢o¢±££U£m£¹¤ ¤U¤Œ¤¦¤­¤²¤´¤ä¤þ¥,¥:¥‹¥’¥·¥Ø¥Ý¥ß¦¦\¦‚¦‰¦­¦²¦µ¦·§§H§M§‘§–§Ú¨+¨}¨‚¨Ï© ©©X©ª©ùªGª�ªà«««e«±«÷¬E¬e¬j¬³­­U­Z­ª­ú®H®b®g®|®�®Ð¯¯l¯·° °)°.°›°è°í±B±‚±ý²²b²g²Ô²å³³l³�³ ³Â³á³ÿ´´0´E´f´|´¥´Á´æµ µ=µoµÇµÉ¶¶8¶?¶ˆ¶Ù·/·6·Y·{·}·Î·ì·ó¸¸5¸7¸ˆ¸¦¸­¸Ð¸î¸ð¹B¹Q¹X¹¤¹óº"º)ºKºaºcº±ºÔºÛ»-»»Ð»×¼"¼†¼�¼Ü½½h½”½¨½ª½è½ï¾>¾Š¾¡¾¨¾õ¿H¿“¿ª¿±À@À@>À@EÀ@’À@áÀA3ÀAUÀAWÀAŠÀA‘ÀAáÀBÀB@ÀBBÀB�ÀBÃÀBÅÀCÀC;ÀCBÀC�ÀCÆÀCìÀCîÀD<ÀDˆÀD ÀDÊÀDÌÀDÙÀE/ÀE2ÀE4ÀEÀE¼ÀEÝÀEâÀF2ÀF{ÀFÃÀG ÀGYÀG¤ÀGÏÀGÔÀH"ÀHrÀHÄÀIÀI]ÀI®ÀIÿÀJ;ÀJ˜ÀJêÀJúÀKÀKSÀK¤ÀKÉÀKäÀLÀL ÀLBÀL^ÀL‡ÀL©ÀLËÀLðÀMÀMAÀMmÀMoÀM¼ÀMÔÀMÖÀN ÀN&ÀN(ÀNNÀNiÀNkÀNžÀN½ÀN¿ÀOÀO ÀO\ÀOªÀOÞÀOýÀOÿÀPOÀPŒÀP“ÀPÝÀQÀQÀQÀQKÀQyÀQ�ÀQöÀQþÀRÀRÀRÀREÀR{ÀR«ÀR°ÀRýÀSMÀSRÀS¥ÀSªÀSÕÀT"ÀTAÀT\ÀTxÀT”ÀT­ÀTËÀTëÀU ÀU5ÀULÀUcÀUŒÀUªÀUÈÀUðÀVÀVbÀV�ÀV·ÀVâÀW4ÀW9ÀW;ÀW]ÀW_ÀWxÀW‘ÀW¥ÀWÆÀWðÀX ÀX3ÀX`ÀX{ÀX}ÀXÅÀXÙÀXÛÀY*ÀY9ÀYƒÀY“ÀYÝÀZ,ÀZ|ÀZÊÀZòÀ[À[À[>À[tÀ[vÀ[§À[èÀ[êÀ\6À\8À\ˆÀ\¿À\ÆÀ]À]gÀ]xÀ]´À]ÒÀ]õÀ]úÀ]üÀ^GÀ^�À^ˆÀ^ÓÀ_À_ZÀ_…À_£À_ÀÀ`À`3À`KÀ`cÀ`„À`“À`šÀ`×À`ÜÀ`ÞÀa)ÀaIÀaPÀa¢Àa¹ÀaôÀb<ÀbjÀbyÀb€Àb§ÀbÍÀbèÀcÀcÀcBÀc[Àc’Àc¬Àc±Àc³ÀcÛÀd ÀdÀdÀd8ÀdfÀdkÀdmÀd�Àd°ÀdÍÀdÒÀdÔÀdøÀeÀe4ÀeMÀesÀe•ÀeÄÀeïÀe÷ÀfÀf3ÀfLÀf_Àf|Àf±ÀfÒÀg#ÀgAÀglÀgÃÀgÍÀgìÀh ÀhBÀhJÀhOÀhRÀhTÀh¤ÀhéÀiÀiÀiÀi5ÀiMÀisÀi˜Ài½Ài×ÀiþÀj:ÀjgÀj¥Àj­ÀkÀk6Àk;Àk=ÀkcÀk³ÀkìÀkûÀlHÀl´Àl¾ÀlÍÀm ÀmbÀmlÀmsÀmÁÀnÀnEÀnLÀnbÀn²ÀnÏÀoÀo&Ào+Ào-Ào:Ào‚Ào©ÀoßÀpÀp=ÀpDÀpdÀpiÀpkÀpxÀpšÀp¾Àp÷ÀqÀq Àq%Àq'Àq4Àq\ÀqˆÀq¶ÀrÀrYÀr°ÀræÀsÀs>ÀsYÀsgÀs°Às¼ÀsÆÀtÀtÀt ÀtÀtÀt0ÀtVÀtpÀt~Àt¶Àt½ÀtßÀtõÀtúÀtüÀuCÀu~Àu¦ÀuËÀuðÀv Àv1ÀvmÀvšÀvØÀvàÀw.Àw…Àw®ÀwúÀxÀxWÀxvÀxŽÀxåÀyÀy\Ày¦ÀyõÀzGÀz{ÀzÆÀ{À{^À{šÀ{ÙÀ{ýÀ|À|@À|GÀ|LÀ|NÀ|‚À|äÀ}.À}RÀ}}À}†À}¤À}¶À~À~=À~BÀ~EÀ~GÀ~™À~¿À~ÄÀÀgÀ¢À§À¶À»À€À€/À€sÀ€ÅÀ€ÚÀ�&À�lÀ�nÀ��À�´À�¶À�ÃÀ‚À‚ À‚<À‚^À‚eÀ‚šÀ‚âÀ‚ûÀƒÀƒ<ÀƒDÀƒIÀƒKÀƒXÀƒ‘Àƒ¿ÀƒèÀƒíÀƒïÀƒüÀ„7À„yÀ„{À„�À„²À„ÒÀ„òÀ…9À…[À…—À…±À† À†À†cÀ†hÀ†jÀ†wÀ†¡À†ÂÀ†ßÀ†äÀ†çÀ†éÀ‡#À‡UÀ‡ZÀ‡ªÀ‡ùÀˆ4Àˆ~Àˆ�Àˆ¢Àˆ±Àˆ¶À‰À‰mÀ‰šÀ‰·À‰ÔÀ‰ìÀŠ ÀŠÀŠÀŠ9ÀŠnÀŠÁÀŠïÀŠñÀ‹%À‹'À‹4À‹[À‹uÀ‹ŸÀ‹¡À‹ßÀ‹îÀ‹õÀ‹÷ÀŒ%ÀŒ]ÀŒ†ÀŒ�ÀŒ’ÀŒ”ÀŒ¡ÀŒÖÀ�À�[À�~À�…À�¬À�±À�³À�ÀÀ�èÀŽÀŽ7ÀŽeÀŽ”ÀŽ×ÀŽåÀ� À�À�À�À�hÀ�—À�ºÀ�üÀ�3À�xÀ��À�†À�ˆÀ�ÂÀ�ÄÀ‘À‘À‘"À‘6À‘ŠÀ‘°À‘·À‘ÛÀ‘ñÀ‘öÀ‘øÀ’À’,À’\À’�À’¼À’àÀ’ïÀ’öÀ“IÀ“kÀ“ŒÀ“ŽÀ“µÀ“ÍÀ”À”?À”hÀ”ŒÀ”»À”ùÀ•)À•3À•AÀ•�À•âÀ–À–OÀ–xÀ–•À–ÅÀ–ÏÀ–ÖÀ–ØÀ—,À—}À—šÀ—¢À—×À—ÙÀ˜ À˜À˜cÀ˜”À˜ÖÀ™)À™{À™ÉÀ™êÀ™þÀš*Àš‚Àš¨ÀšÍÀ›À›LÀ›�À›½À›öÀœÀœ]ÀœhÀœ‡Àœ�Àœ—Àœ™Àœ²ÀœÍÀ�À�LÀ�ŠÀ�´À�¿À�ÊÀ�ÏÀ�ÑÀ�ÞÀž(ÀžzÀž©ÀžÞÀžãÀžæÀžèÀŸ6ÀŸkÀŸpÀŸ¾À À `À ¡À ¦À óÀ¡CÀ¡–À¡àÀ¢2À¢tÀ¢°À¢ÿÀ£*À£1À£[À££À£¥À£öÀ¤6À¤MÀ¤OÀ¤žÀ¤¾À¤ÅÀ¥À¥XÀ¥jÀ¥—À¥ÎÀ¦À¦DÀ¦IÀ¦KÀ¦XÀ¦´À¦·À¦¹À§À§EÀ§GÀ§TÀ§|À§ËÀ§ÐÀ§ÒÀ§ßÀ§óÀ¨ À¨#À¨(À¨+À¨-À¨uÀ¨¯À¨ÞÀ¨ôÀ©!À©ZÀ©aÀ©fÀ©hÀ©šÀ©¡À©ÕÀ©ñÀ©óÀª%Àª,Àª\ÀªrÀªŒÀª¡Àª¨ÀªÀÀªØÀªêÀªïÀªòÀªôÀ«?À«ŽÀ¬À¬dÀ¬fÀ¬•À¬—À¬ãÀ¬üÀ­À­KÀ­~À­«À­ôÀ®À®$À®+À®[À®µÀ®ùÀ¯.À¯EÀ¯JÀ¯MÀ¯OÀ¯À¯˜À¯µÀ¯ÛÀ°À°+À°AÀ°IÀ°�À°�À°åÀ±BÀ±IÀ±ŸÀ±òÀ²À²YÀ²gÀ²¢À²©À²®À²°À²ÊÀ²éÀ²ëÀ³8À³XÀ³†À³ˆÀ³­À³¯À³¼À³ØÀ³ñÀ´À´ À´À´$À´&À´3À´QÀ´xÀ´}À´À´ŒÀ´§À´ãÀµÀµZÀµ“Àµ±Àµ¸ÀµÑÀµÖÀµØÀ¶"À¶jÀ¶‡À¶ÕÀ·4À·UÀ·yÀ·€À·¾À¸À¸<À¸”À¸ÐÀ¸îÀ¸þÀ¹À¹!À¹(À¹hÀ¹ŠÀ¹½À¹ÄÀ¹ñÀ¹öÀ¹ù�^/// @docImport 'package:flutter/material.dart'; /// @docImport 'package:flutter_test/flutter_test.dart'; /// /// @docImport 'primary_scroll_controller.dart'; /// @docImport 'scroll_configuration.dart'; /// @docImport 'scroll_view.dart'; /// @docImport 'scrollable.dart'; /// @docImport 'single_child_scroll_view.dart'; /// @docImport 'viewport.dart';‚‚4‚3‚<‚j‚•‚À‚ւ+ƒJƒpƒ�ƒ¯ƒÑƒõ„„4„h„Š †° ŠqŠqƒª/// Controls a [DraggableScrollableSheet]. /// /// Draggable scrollable controllers are typically stored as member variables in /// [State] objects and are reused in each [State.build]. Controllers can only /// be used to control one sheet at a time. A controller can be reused with a /// new sheet if the previous sheet has been disposed. /// /// The controller's methods cannot be used until after the controller has been /// passed into a [DraggableScrollableSheet] and the sheet has run initState. /// /// A [DraggableScrollableController] is a [Listenable]. It notifies its /// listeners whenever an attached sheet changes sizes. It does not notify its /// listeners when a sheet is first attached or when an attached sheet's /// parameters change without affecting the sheet's current size. It does not /// fire when [pixels] changes without [size] changing. For example, if the /// constraints provided to an attached sheet change.Š«€ÏŠçŠç‹8/// Creates a controller for [DraggableScrollableSheet].‹€>‹«‹«‹ÃN‹â‹âŒŒ‹úŒ‹ûŒ€»Œ{Œ{T/// Get the current size (as a fraction of the parent height) of the attached sheet.ŒÙ€¢��7/// Get the current pixel height of the attached sheet.ŽY���›�›�&/// Returns Whether any [DraggableScrollableController] objects have attached themselves to the /// [DraggableScrollableSheet]. /// /// If this is false, then members that interact with the [ScrollPosition], /// such as [sizeToPixels], [size], [animateTo], and [jumpTo], must not be /// called. ��€Ò�ß�ßS/// Convert a sheet's size (fractional value of parent container height) to pixels.�ì �ô�ó�î€Ü�R�RY/// Convert a sheet's pixel height to size (fractional value of parent container height).�_ �g�f�Љ°•&•&„ /// Animates the attached sheet from its current size to the given [size], a /// fractional value of the parent container's height. /// /// Any active sheet animation is canceled. If the sheet's internal scrollable /// is currently animating (e.g. responding to a user fling), that animation is /// canceled as well. /// /// An animation will be interrupted whenever the user attempts to scroll /// manually, whenever another activity is started, or when the sheet hits its /// max or min size (e.g. if you animate to 1 but the max size is .8, the /// animation will stop playing when it reaches .8). /// /// The duration must not be zero. To jump to a particular value without an /// animation, use [jumpTo]. /// /// The sheet will not snap after calling [animateTo] even if [DraggableScrollableSheet.snap] /// is true. Snapping only occurs after user drags. /// /// When calling [animateTo] in widget tests, `await`ing the returned /// [Future] may cause the test to hang and timeout. Instead, use /// [WidgetTester.pumpAndSettle].•0 •8•7•>•Q•P•Z•j•iš†„�� � ‚[/// Jumps the attached sheet from its current size to the given [size], a /// fractional value of the parent container's height. /// /// If [size] is outside of a the attached sheet's min or max child size, /// [jumpTo] will jump the sheet to the nearest valid size instead. /// /// Any active sheet animation is canceled. If the sheet's inner scrollable /// is currently animating (e.g. responding to a user fling), that animation is /// canceled as well. /// /// The sheet will not snap after calling [jumpTo] even if [DraggableScrollableSheet.snap] /// is true. Snapping only occurs after user drags.� ��Ÿ €¶ŸzŸzd/// Reset the attached sheet to its initial size (see: [DraggableScrollableSheet.initialChildSize]).ŸÉ�ŸÎŸÎ Ó�˜ Ø Ø à:¡ ¡ ¢q‚?¢v¢v¢ˆ$¢Ÿ¢ž¤¶�%¤»¤»¤Ä¤Ê¤É¤Ù¥á€Ï¥æ¥æ¦·žy²ë²ë‹ö/// A container for a [Scrollable] that responds to drag gestures by resizing /// the scrollable until a limit is reached, and then scrolling. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=Hgw819mL_78} /// /// This widget can be dragged along the vertical axis between its /// [minChildSize], which defaults to `0.25` and [maxChildSize], which defaults /// to `1.0`. These sizes are percentages of the height of the parent container. /// /// The widget coordinates resizing and scrolling of the widget returned by /// builder as the user drags along the horizontal axis. /// /// The widget will initially be displayed at its initialChildSize which /// defaults to `0.5`, meaning half the height of its parent. Dragging will work /// between the range of minChildSize and maxChildSize (as percentages of the /// parent container's height) as long as the builder creates a widget which /// uses the provided [ScrollController]. If the widget created by the /// [ScrollableWidgetBuilder] does not use the provided [ScrollController], the /// sheet will remain at the initialChildSize. /// /// By default, the widget will stay at whatever size the user drags it to. To /// make the widget snap to specific sizes whenever they lift their finger /// during a drag, set [snap] to `true`. The sheet will snap between /// [minChildSize] and [maxChildSize]. Use [snapSizes] to add more sizes for /// the sheet to snap between. /// /// The snapping effect is only applied on user drags. Programmatically /// manipulating the sheet size via [DraggableScrollableController.animateTo] or /// [DraggableScrollableController.jumpTo] will ignore [snap] and [snapSizes]. /// /// By default, the widget will expand its non-occupied area to fill available /// space in the parent. If this is not desired, e.g. because the parent wants /// to position sheet based on the space it is taking, the [expand] property /// may be set to false. /// /// {@tool dartpad} /// /// This is a sample widget which shows a [ListView] that has 25 [ListTile]s. /// It starts out as taking up half the body of the [Scaffold], and can be /// dragged up to the full height of the scaffold or down to 25% of the height /// of the scaffold. Upon reaching full height, the list contents will be /// scrolled up or down, until they reach the top of the list again and the user /// drags the sheet back down. /// /// On desktop and web running on desktop platforms, dragging to scroll with a mouse is disabled by default /// to align with the natural behavior found in other desktop applications. /// /// This behavior is dictated by the [ScrollBehavior], and can be changed by adding /// [PointerDeviceKind.mouse] to [ScrollBehavior.dragDevices]. /// For more info on this, please refer to https://docs.flutter.dev/release/breaking-changes/default-scroll-behavior-drag /// /// Alternatively, this example illustrates how to add a drag handle for desktop applications. /// /// ** See code in examples/api/lib/widgets/draggable_scrollable_sheet/draggable_scrollable_sheet.0.dart ** /// {@end-tool}³ ‚¥³t³t³ŒJ/// Creates a widget that can be dragged and scrolled in a single gesture. ³” ³›³š³¤³ª³©³Æ³Ì³Ë³å³ë³ê´´ ´´´"´!´4´:´9´I´O´N´j´p´o´€"´†´…´©´¸´·*³¼³Ú³ù´´(´ž´È´Î´â´Ü´Ï´ß´í´óµµ´ôµµµµ9µ&µµ)µDµJµkµ\µKµ_µvµ|µÃµ›µ“µ}µ–µ´µžµ¶µ¾µ¿ µË�­·h·h�w/// The initial fractional value of the parent container's height to use when /// displaying the widget. /// /// Rebuilding the sheet with a new [initialChildSize] will only move /// the sheet to the new value if the sheet has not yet been dragged since it /// was first built or since the last call to [DraggableScrollableActuator.reset]. /// /// The default value is `0.5`.·€³¸&¸&€�/// The minimum fractional value of the parent container's height to use when /// displaying the widget. /// /// The default value is `0.25`.¸9€²¸ß¸ß€Œ/// The maximum fractional value of the parent container's height to use when /// displaying the widget. /// /// The default value is `1.0`.¸ò�lºXºX�B/// Whether the widget should expand to fill the available space in its parent /// or not. /// /// In most cases, this should be true. However, in the case of a parent /// widget that will position this one based on its desired size (such as a /// [Center]), this should be set to false. /// /// The default value is true.ºeƒ@½¡½¡ƒ/// Whether the widget should snap between [snapSizes] when the user lifts /// their finger during a drag. /// /// If the user's finger was still moving when they lifted it, the widget will /// snap to the next snap size (see [snapSizes]) in the direction of the drag. /// If their finger was still, the widget will snap to the nearest snap size. /// /// Snapping is not applied when the sheet is programmatically moved by /// calling [DraggableScrollableController.animateTo] or [DraggableScrollableController.jumpTo]. /// /// Rebuilding the sheet with snap newly enabled will immediately trigger a /// snap unless the sheet has not yet been dragged away from /// [initialChildSize] since first being built or since the last call to /// [DraggableScrollableActuator.reset].½¬ƒ¦ÀAIÀAIƒU/// A list of target sizes that the widget should snap to. /// /// Snap sizes are fractional values of the parent container's height. They /// must be listed in increasing order and be between [minChildSize] and /// [maxChildSize]. /// /// The [minChildSize] and [maxChildSize] are implicitly included in snap /// sizes and do not need to be specified here. For example, `snapSizes = [.5]` /// will result in a sheet that snaps between [minChildSize], `.5`, and /// [maxChildSize]. /// /// Any modifications to the [snapSizes] list will not take effect until the /// `build` function containing this widget is run again. /// /// Rebuilding with a modified or new list will trigger a snap unless the /// sheet has not yet been dragged away from [initialChildSize] since first /// being built or since the last call to [DraggableScrollableActuator.reset].ÀAY€äÀB(ÀB(€²/// Defines a duration for the snap animations. /// /// If it's not set, then the animation duration is the distance to the snap /// target divided by the velocity of the widget.ÀBD|ÀB¶ÀB¶I/// A controller that can be used to programmatically control this sheet.ÀBÇ�"ÀCÓÀCÓ€ñ/// Whether the sheet, when dragged (or flung) to its minimum size, should /// cause its parent sheet to close. /// /// Set on emitted [DraggableScrollableNotification]s. It is up to parent /// classes to properly read and handle this value.ÀCð€×ÀDÀÀDÀ€¨/// The builder that creates a child to display in this widget, which will /// use the provided [ScrollController] to enable dragging and scrolling /// of the contents.ÀDÎ_ÀDûÀDûÀDÎÀDÏÀE4ŒÐÀJAÀJA„ò/// A [Notification] related to the extent, which is the size, and scroll /// offset, which is the position of the child list, of the /// [DraggableScrollableSheet]. /// /// [DraggableScrollableSheet] widgets notify their ancestors when the size of /// the sheet changes. When the extent of the sheet changes via a drag, /// this notification bubbles up through the tree, which means a given /// [NotificationListener] will receive notifications for all descendant /// [DraggableScrollableSheet] widgets. To focus on notifications from the /// nearest [DraggableScrollableSheet] descendant, check that the [depth] /// property of the notification is zero. /// /// When an extent notification is received by a [NotificationListener], the /// listener will already have completed build and layout, and it is therefore /// too late for that widget to call [State.setState]. Any attempt to adjust the /// build or layout based on an extent notification would result in a layout /// that lagged one frame behind, which is a poor user experience. Extent /// notifications are used primarily to drive animations. The [Scaffold] widget /// listens for extent notifications and responds by driving animations for the /// [FloatingActionButton] as the bottom sheet scrolls up.ÀJš‚ÑÀK¦ÀK¦ÀKÅ€ü/// Creates a notification that the extent of a [DraggableScrollableSheet] has /// changed. /// /// All parameters are required. The [minExtent] must be >= 0. The [maxExtent] /// must be <= 1.0. The [extent] must be between [minExtent] and [maxExtent].ÀKÍÀKÜÀKÛÀKèÀK÷ÀKöÀLÀLÀLÀL$ÀL3ÀL2ÀLFÀLUÀLTÀLb"ÀLhÀLg%ÀL€ÀLŽÀL”ÀL¥ÀL™ÀL•ÀLœÀL°ÀL¶ÀLÇÀLÁÀL·ÀLÄÀLÒÀLØÀLìÀLãÀLÙÀLæÀL÷ÀLýÀMÀMÀLþÀM ÀM#ÀM)ÀM=ÀM1ÀM*ÀM4ÀMHÀMNÀMiÀM]ÀMOÀM`ÀMq`ÀMËÀMËI/// The current value of the extent, between [minExtent] and [maxExtent].ÀMØKÀNÀN1/// The minimum value of [extent], which is >= 0.ÀN*<ÀN]ÀN]"/// The maximum value of [extent].ÀNmMÀN­ÀN­//// The initially requested value for [extent].ÀNÁ�9ÀOóÀOó�/// The build context of the widget that fired this notification. /// /// This can be used to find the sheet's render objects to determine the size /// of the viewport, for instance. A listener can only assume this context /// is live when it first gets the notification.ÀP€ÿÀPêÀPê€Ñ/// Whether the widget that fired this notification, when dragged (or flung) /// to minExtent, should cause its parent sheet to close. /// /// It is up to parent classes to properly read and handle this value.ÀQ€úÀQÀQÀQ.ÀQ<ÀQ;ÀQÀQÀR–HÀT(ÀT(‚/// Manages state between [_DraggableScrollableSheetState], /// [_DraggableScrollableSheetScrollController], and /// [_DraggableScrollableSheetScrollPosition]. /// /// The State knows the pixels available along the axis the widget wants to /// scroll, but expects to get a fraction of those pixels to render the sheet. /// /// The ScrollPosition knows the number of pixels a user wants to move the sheet. /// /// The [currentSize] will never be null. /// The [availablePixels] will never be null, but may be `double.infinity`.ÀTC‚ôÀTCÀTCÀTX ÀT`ÀToÀTnÀT|ÀT‹ÀTŠÀT˜ÀT§ÀT¦ÀT±ÀTÀÀT¿ÀTÏÀTÞÀTÝÀTïÀTõÀTôÀU"ÀU(ÀU'ÀU9ÀU@ÀU?ÀUPÀUWÀUVÀUg"ÀUmÀUl3ÀU…ÀU“ÀU™ÀU¦ÀU¢ÀUšÀU¥ÀU±ÀU·ÀUÄÀUÀÀU¸ÀUÃÀUÏÀUÕÀUìÀUÞÀUÖÀUáÀU÷ÀUýÀVÀV ÀUþÀV ÀV,ÀVÀV:ÀV.ÀV=ÀVJÀVQÀVKÀVRÀV^ÀVSÀVyÀViÀV{ÀV�ÀV‚ÀVŸÀV”ÀV¬ÀV¡ÀV¯ÀVÉÀV¾ÀVÖÀVËÀVÙ ÀW=ÀWKÀWKÀWaÀWnÀWnÀWzÀW‡ÀW‡ÀW“ÀWžÀWžÀW§ÀWºÀWºÀWÈ%ÀWØÀWØÀWòÀWÿÀWÿÀX!ÀXÀXÀX5(ÀXQÀXQÀXbÀXiÀXiÀXÇÀXÌÀXÌÀZôÀZùÀZùÀ[ 2À[À[À[@2À[IÀ[IÀ[x-À[ƒÀ[ƒÀ[©=À[´À[´À[ìHÀ[ýÀ[ýÀ\:�¾À]À]�-/// Start an activity that affects the sheet and register a cancel call back /// that will be called if another activity starts. /// /// The `onCanceled` callback will get called even if the subsequent activity /// started after this one finished, so `onCanceled` must be safe to call at /// any time.À]Ž À]¥À]¤À]þ‚ÜÀ_%À_%�/// The scroll position gets inputs in terms of pixels, but the size is /// expected to be expressed as a number between 0..1. /// /// This should only be called to respond to a user drag. To update the /// size in response to a programmatic call, use [updateSize] directly.À_3 À_;À_:À_AÀ_OÀ_NÀ`à‚ÏÀaÀÀaÀ€Ë/// Set the size to the new value. [newSize] should be a number between /// [minSize] and [maxSize]. /// /// This can be triggered by a programmatic (e.g. controller triggered) change /// or a user drag.ÀaËÀaÓÀaÒÀaÛÀaéÀaèÀcµYÀc¼Àc¼ÀcÉ ÀcÑÀcÐÀdUÀdÀdÀd( Àd0Àd/ÀdoaÀdtÀdtÀdÖƒwÀdìÀdìÀdüÀe Àe ÀeÀe+Àe*Àe8ÀeGÀeFÀeQÀehÀegÀewÀeˆÀe‡Àe™(Àe­Àe¬ÀeÈ$Àe×ÀeÖÀhT•ïÀhZÀhZÀh¦@ÀhÕÀhÕÀhë"ÀiÀiÀi‚%Ài&Ài&ÀiÀiÀk?ƒêÀkLÀkLÀo/�8ÀoAÀoAÀoQ,ÀouÀotÀo/Ào0Àpm€¶ÀpÀpÀpmÀpnÀq)‚âÀq=Àq=ÀqCÀqQÀqPÀq)Àq*Àt€çÀt#Àt#ÀtÀtÀtþ‡LÀuÀuÀu,Àu6Àu5À|P�ðÀ|WÀ|WÀ|mÀ|rÀ|qÀ~GˆžÀ€àÀ€à‚„/// A [ScrollController] suitable for use in a [ScrollableWidgetBuilder] created /// by a [DraggableScrollableSheet]. /// /// If a [DraggableScrollableSheet] contains content that is exceeds the height /// of its container, this controller will allow the sheet to both be dragged to /// fill the container and then scroll the child content. /// /// See also: /// /// * [_DraggableScrollableSheetScrollPosition], which manages the positioning logic for /// this controller. /// * [PrimaryScrollController], which can be used to establish a /// [_DraggableScrollableSheetScrollController] as the primary controller for /// descendants.À�(BÀ�(À�(À�QÀ�SÀ�bÀ�aÀ�pÀ�†À�†À�‘ À�ŸÀ�ŸÀƒñ€†À„*À„*ÀƒñÀƒòÀ�¸��À�íÀ�íÀ‚À‚À‚À‚$À‚3À‚2À‚@À‚QÀ‚PÀ�¸À�¹ÀƒM€žÀƒ_Àƒ_ÀƒtÀƒ‚Àƒ�ÀƒMÀƒNÀ„}�éÀ„‚À„‚À†lvÀ†~À†~À†…À†•À†”À†lÀ†mÀ†é—ûÀ‰À‰‚/// A scroll position that manages scroll activities for /// [_DraggableScrollableSheetScrollController]. /// /// This class is a concrete subclass of [ScrollPosition] logic that handles a /// single [ScrollContext], such as a [Scrollable]. An instance of this class /// manages [ScrollActivity] instances, which changes the /// [_DraggableSheetExtent.currentSize] or visible content offset in the /// [Scrollable]'s [Viewport] /// /// See also: /// /// * [_DraggableScrollableSheetScrollController], which uses this as its [ScrollPosition].À‰o€ À‰oÀ‰oÀ‰–À‰žÀ‰®À‰­À‰»À‰ËÀ‰ÊÀ‰ØÀ‰ßÀ‰ÞÀ‰ðÀ‰ÿÀ‰þÀŠ!ÀŠ#ÀŠ#ÀŠ;0ÀŠbÀŠbÀŠpNÀŠ�ÀŠ�ÀмÀнÀЧÀŠ»ÀЍÀŠÃ*ÀŠÌÀŠÌÀŠó0À‹ À‹ À‹)�gÀ‹;À‹;À‹BÀ‹RÀ‹QÀ‹)À‹*ÀŒ–�ÀŒ¨ÀŒ¨ÀŒ¶ÀŒÇÀŒÆÀŒ–ÀŒ—À�µ�_À�ÇÀ�ÇÀ�× À�ßÀ�ÞÀ�µÀ�¶À�™€ëÀ�¡À�¡À�Š6À��À��À�ÆKÀ�ËÀ�ËÀ‘€ÝÀ‘)À‘)À‘À‘À‘ú‹ÓÀ’ À’ À’À’ À’À‘úÀ‘ûÀ�Ó�À�åÀ�åÀ�êÀ�üÀ�ûÀžÀžÀžÀ�ÓÀ�ÔÀžè‡ÍÀ¢zÀ¢zƒ}/// A widget that can notify a descendent [DraggableScrollableSheet] that it /// should reset its position to the initial state. /// /// The [Scaffold] uses this widget to notify a persistent bottom sheet that /// the user has tapped back if the sheet has started to cover more of the body /// than when at its initial position. This is important for users of assistive /// technology, where dragging may be difficult to communicate. /// /// This is just a wrapper on top of [DraggableScrollableController]. It is /// primarily useful for controlling a sheet in a part of the widget tree that /// the current code does not control (e.g. library code trying to affect a sheet /// in library users' code). Generally, it's easier to control the sheet /// directly by creating a controller and passing the controller to the sheet in /// its constructor (see [DraggableScrollableSheet.controller]).À¢²€ïÀ£cÀ£cÀ£~€ž/// Creates a widget that can notify descendent [DraggableScrollableSheet]s /// to reset to their initial position. /// /// The [child] parameter is required.À£€ À£‡À£†À£‹À£šÀ£™À£§€£À¤EÀ¤E€Š/// This child's [DraggableScrollableSheet] descendant will be reset when the /// [reset] method is applied to a context that includes it.À¤Q�öÀ¥xÀ¥x�/// Notifies any descendant [DraggableScrollableSheet] that it should reset /// to its initial position. /// /// Returns `true` if a [DraggableScrollableActuator] is available and /// some [DraggableScrollableSheet] is listening for updates, `false` /// otherwise.À¥~À¥ŒÀ¥‹À¦MeÀ¦}À¦}À¦MÀ¦NÀ¦¹�pÀ¦¿À¦¿À§1À§&À§&À§2À§@À§AÀ§I€…À§]À§]À§cÀ§qÀ§pÀ§IÀ§JÀ§ÔRÀ§æÀ§æÀ§ÔÀ§ÕÀ¨-‚ÃÀ¨µÀ¨µ/// A [ChangeNotifier] to use with [_InheritedResetNotifier] to notify /// descendants that they should reset to initial state.À¨à€„À¨àÀ¨àÀ¨îÀ©j€„À©ÜÀ©Üc/// Whether someone called [sendReset] or not. /// /// This flag should be reset after checking it.À©éÀ©õ€øÀªcÀªc_/// Fires a reset notification to descendants. /// /// Returns false if there are no listeners.Àªô„WÀªúÀªúÀ«A�!À¬ À¬ À¬!€¼/// Creates an [InheritedNotifier] that the [DraggableScrollableSheet] will /// listen to for an indication that it should reset itself back to [DraggableScrollableSheet.initialChildSize].À¬#À¬3À¬2À¬9&À¬XÀ¬WÀ¬h+À¬mÀ¬mÀ¬™‚¯À­YÀ­Y€§/// Specifies whether the [DraggableScrollableSheet] should reset to its /// initial position. /// /// Returns true if the notifier requested a reset, false otherwise.À­eÀ­sÀ­rÀ¯OЍÀ¯UÀ¯UÀ¯�ƒ+À¯�À¯�À¯”À¯œÀ¯«À¯ªÀ¯¹À¯ÊÀ¯ÉÀ¯ß#À¯öÀ¯õÀ° À°À°À°/À°6À°5À²²À²¿À²¿À²ÌÀ²ÞÀ²ÞÀ³Z)À³nÀ³nÀ³}À³Š À³œÀ³œÀ³±qÀ³ÅÀ³ÅÀ³È À³ÐÀ³ÏÀ³±À³²À´(SÀ´:À´:À´A À´IÀ´HÀ´(À´)À´��SÀ´•À´•À´— À´ŸÀ´žÀ´�À´‚À¶‰ƒkÀ¶�À¶�À¶�À¶¥À¶¤À¶µÀ¶ÃÀ¶Â„µ�÷†D†D�/// The signature of a method that provides a [BuildContext] and /// [ScrollController] for building a widget that may overflow the draggable /// [Axis] of the containing [DraggableScrollableSheet]. /// /// Users should apply the [scrollController] to a [ScrollView] subclass, such /// as a [SingleChildScrollView], [ListView] or [GridView], to have the whole /// sheet be draggable.†s†�†€†‰!†›†š€²package:flutter/material.dart€ã&package:flutter_test/flutter_test.dart�"primary_scroll_controller.dart�Tscroll_configuration.dart��scroll_view.dart�¥scrollable.dart�Èsingle_child_scroll_view.dart�ù viewport.dart„´=€ˆ€§€©€Ú���K�x�œ�¿�ð‚‚‚‚:‚<‚j‚•‚¾‚À‚ւ+ƒJƒpƒ�ƒ¯ƒÑƒõ„„4„h„Š„³„µ„÷…E……„…Ô†#†<†_†®†°†Ü†á‡3‡ƒ‡Òˆ ˆˆ`ˆ¯ˆ´ˆþ‰N‰˜‰çŠ4ŠkŠ©Šå‹ ‹7‹p‹w‹|‹~‹ÁŒŒŒnŒƒŒ›ŒÐŒÕŒ×��)�A�x�}��Ö�üŽŽPŽUŽWŽºŽÝŽä�3�����ê�ì�I�q�‰�Ç�Ì�Α‘X‘_‘±’’’$’q’Ó“H“O“ž“¾“Å”&”]”d”­”ò••z•’•·•ß–3–n–¥–­–â——b———Ë—û˜˜n˜ž˜Å˜Ð˜Ú˜â™ ™;™_™¤™®™·™ášEš`šuš}š‚š„šÑ› ››_›¦›­›üœOœhœoœÍ��"�:�_�¦�éžžKžž¬ž¹žüŸŸ Ÿ ŸsŸ…Ÿ�ŸÀŸÅŸÇŸãŸð  g Â Ê Ï Ñ¡¡,¡P¡š¡¢¡Ï¢¢h¢m¢o¢±££U£m£¹¤ ¤U¤Œ¤¦¤­¤²¤´¤ä¤þ¥,¥:¥‹¥’¥·¥Ø¥Ý¥ß¦¦\¦‚¦‰¦­¦²¦µ¦·§§H§M§‘§–§Ú¨+¨}¨‚¨Ï© ©©X©ª©ùªGª�ªà«««e«±«÷¬E¬e¬j¬³­­U­Z­ª­ú®H®b®g®|®�®Ð¯¯l¯·° °)°.°›°è°í±B±‚±ý²²b²g²Ô²å³³l³�³ ³Â³á³ÿ´´0´E´f´|´¥´Á´æµ µ=µoµÇµÉ¶¶8¶?¶ˆ¶Ù·/·6·Y·{·}·Î·ì·ó¸¸5¸7¸ˆ¸¦¸­¸Ð¸î¸ð¹B¹Q¹X¹¤¹óº"º)ºKºaºcº±ºÔºÛ»-»»Ð»×¼"¼†¼�¼Ü½½h½”½¨½ª½è½ï¾>¾Š¾¡¾¨¾õ¿H¿“¿ª¿±À@À@>À@EÀ@’À@áÀA3ÀAUÀAWÀAŠÀA‘ÀAáÀBÀB@ÀBBÀB�ÀBÃÀBÅÀCÀC;ÀCBÀC�ÀCÆÀCìÀCîÀD<ÀDˆÀD ÀDÊÀDÌÀDÙÀE/ÀE2ÀE4ÀEÀE¼ÀEÝÀEâÀF2ÀF{ÀFÃÀG ÀGYÀG¤ÀGÏÀGÔÀH"ÀHrÀHÄÀIÀI]ÀI®ÀIÿÀJ;ÀJ˜ÀJêÀJúÀKÀKSÀK¤ÀKÉÀKäÀLÀL ÀLBÀL^ÀL‡ÀL©ÀLËÀLðÀMÀMAÀMmÀMoÀM¼ÀMÔÀMÖÀN ÀN&ÀN(ÀNNÀNiÀNkÀNžÀN½ÀN¿ÀOÀO ÀO\ÀOªÀOÞÀOýÀOÿÀPOÀPŒÀP“ÀPÝÀQÀQÀQÀQKÀQyÀQ�ÀQöÀQþÀRÀRÀRÀREÀR{ÀR«ÀR°ÀRýÀSMÀSRÀS¥ÀSªÀSÕÀT"ÀTAÀT\ÀTxÀT”ÀT­ÀTËÀTëÀU ÀU5ÀULÀUcÀUŒÀUªÀUÈÀUðÀVÀVbÀV�ÀV·ÀVâÀW4ÀW9ÀW;ÀW]ÀW_ÀWxÀW‘ÀW¥ÀWÆÀWðÀX ÀX3ÀX`ÀX{ÀX}ÀXÅÀXÙÀXÛÀY*ÀY9ÀYƒÀY“ÀYÝÀZ,ÀZ|ÀZÊÀZòÀ[À[À[>À[tÀ[vÀ[§À[èÀ[êÀ\6À\8À\ˆÀ\¿À\ÆÀ]À]gÀ]xÀ]´À]ÒÀ]õÀ]úÀ]üÀ^GÀ^�À^ˆÀ^ÓÀ_À_ZÀ_…À_£À_ÀÀ`À`3À`KÀ`cÀ`„À`“À`šÀ`×À`ÜÀ`ÞÀa)ÀaIÀaPÀa¢Àa¹ÀaôÀb<ÀbjÀbyÀb€Àb§ÀbÍÀbèÀcÀcÀcBÀc[Àc’Àc¬Àc±Àc³ÀcÛÀd ÀdÀdÀd8ÀdfÀdkÀdmÀd�Àd°ÀdÍÀdÒÀdÔÀdøÀeÀe4ÀeMÀesÀe•ÀeÄÀeïÀe÷ÀfÀf3ÀfLÀf_Àf|Àf±ÀfÒÀg#ÀgAÀglÀgÃÀgÍÀgìÀh ÀhBÀhJÀhOÀhRÀhTÀh¤ÀhéÀiÀiÀiÀi5ÀiMÀisÀi˜Ài½Ài×ÀiþÀj:ÀjgÀj¥Àj­ÀkÀk6Àk;Àk=ÀkcÀk³ÀkìÀkûÀlHÀl´Àl¾ÀlÍÀm ÀmbÀmlÀmsÀmÁÀnÀnEÀnLÀnbÀn²ÀnÏÀoÀo&Ào+Ào-Ào:Ào‚Ào©ÀoßÀpÀp=ÀpDÀpdÀpiÀpkÀpxÀpšÀp¾Àp÷ÀqÀq Àq%Àq'Àq4Àq\ÀqˆÀq¶ÀrÀrYÀr°ÀræÀsÀs>ÀsYÀsgÀs°Às¼ÀsÆÀtÀtÀt ÀtÀtÀt0ÀtVÀtpÀt~Àt¶Àt½ÀtßÀtõÀtúÀtüÀuCÀu~Àu¦ÀuËÀuðÀv Àv1ÀvmÀvšÀvØÀvàÀw.Àw…Àw®ÀwúÀxÀxWÀxvÀxŽÀxåÀyÀy\Ày¦ÀyõÀzGÀz{ÀzÆÀ{À{^À{šÀ{ÙÀ{ýÀ|À|@À|GÀ|LÀ|NÀ|‚À|äÀ}.À}RÀ}}À}†À}¤À}¶À~À~=À~BÀ~EÀ~GÀ~™À~¿À~ÄÀÀgÀ¢À§À¶À»À€À€/À€sÀ€ÅÀ€ÚÀ�&À�lÀ�nÀ��À�´À�¶À�ÃÀ‚À‚ À‚<À‚^À‚eÀ‚šÀ‚âÀ‚ûÀƒÀƒ<ÀƒDÀƒIÀƒKÀƒXÀƒ‘Àƒ¿ÀƒèÀƒíÀƒïÀƒüÀ„7À„yÀ„{À„�À„²À„ÒÀ„òÀ…9À…[À…—À…±À† À†À†cÀ†hÀ†jÀ†wÀ†¡À†ÂÀ†ßÀ†äÀ†çÀ†éÀ‡#À‡UÀ‡ZÀ‡ªÀ‡ùÀˆ4Àˆ~Àˆ�Àˆ¢Àˆ±Àˆ¶À‰À‰mÀ‰šÀ‰·À‰ÔÀ‰ìÀŠ ÀŠÀŠÀŠ9ÀŠnÀŠÁÀŠïÀŠñÀ‹%À‹'À‹4À‹[À‹uÀ‹ŸÀ‹¡À‹ßÀ‹îÀ‹õÀ‹÷ÀŒ%ÀŒ]ÀŒ†ÀŒ�ÀŒ’ÀŒ”ÀŒ¡ÀŒÖÀ�À�[À�~À�…À�¬À�±À�³À�ÀÀ�èÀŽÀŽ7ÀŽeÀŽ”ÀŽ×ÀŽåÀ� À�À�À�À�hÀ�—À�ºÀ�üÀ�3À�xÀ��À�†À�ˆÀ�ÂÀ�ÄÀ‘À‘À‘"À‘6À‘ŠÀ‘°À‘·À‘ÛÀ‘ñÀ‘öÀ‘øÀ’À’,À’\À’�À’¼À’àÀ’ïÀ’öÀ“IÀ“kÀ“ŒÀ“ŽÀ“µÀ“ÍÀ”À”?À”hÀ”ŒÀ”»À”ùÀ•)À•3À•AÀ•�À•âÀ–À–OÀ–xÀ–•À–ÅÀ–ÏÀ–ÖÀ–ØÀ—,À—}À—šÀ—¢À—×À—ÙÀ˜ À˜À˜cÀ˜”À˜ÖÀ™)À™{À™ÉÀ™êÀ™þÀš*Àš‚Àš¨ÀšÍÀ›À›LÀ›�À›½À›öÀœÀœ]ÀœhÀœ‡Àœ�Àœ—Àœ™Àœ²ÀœÍÀ�À�LÀ�ŠÀ�´À�¿À�ÊÀ�ÏÀ�ÑÀ�ÞÀž(ÀžzÀž©ÀžÞÀžãÀžæÀžèÀŸ6ÀŸkÀŸpÀŸ¾À À `À ¡À ¦À óÀ¡CÀ¡–À¡àÀ¢2À¢tÀ¢°À¢ÿÀ£*À£1À£[À££À£¥À£öÀ¤6À¤MÀ¤OÀ¤žÀ¤¾À¤ÅÀ¥À¥XÀ¥jÀ¥—À¥ÎÀ¦À¦DÀ¦IÀ¦KÀ¦XÀ¦´À¦·À¦¹À§À§EÀ§GÀ§TÀ§|À§ËÀ§ÐÀ§ÒÀ§ßÀ§óÀ¨ À¨#À¨(À¨+À¨-À¨uÀ¨¯À¨ÞÀ¨ôÀ©!À©ZÀ©aÀ©fÀ©hÀ©šÀ©¡À©ÕÀ©ñÀ©óÀª%Àª,Àª\ÀªrÀªŒÀª¡Àª¨ÀªÀÀªØÀªêÀªïÀªòÀªôÀ«?À«ŽÀ¬À¬dÀ¬fÀ¬•À¬—À¬ãÀ¬üÀ­À­KÀ­~À­«À­ôÀ®À®$À®+À®[À®µÀ®ùÀ¯.À¯EÀ¯JÀ¯MÀ¯OÀ¯À¯˜À¯µÀ¯ÛÀ°À°+À°AÀ°IÀ°�À°�À°åÀ±BÀ±IÀ±ŸÀ±òÀ²À²YÀ²gÀ²¢À²©À²®À²°À²ÊÀ²éÀ²ëÀ³8À³XÀ³†À³ˆÀ³­À³¯À³¼À³ØÀ³ñÀ´À´ À´À´$À´&À´3À´QÀ´xÀ´}À´À´ŒÀ´§À´ãÀµÀµZÀµ“Àµ±Àµ¸ÀµÑÀµÖÀµØÀ¶"À¶jÀ¶‡À¶ÕÀ·4À·UÀ·yÀ·€À·¾À¸À¸<À¸”À¸ÐÀ¸îÀ¸þÀ¹À¹!À¹(À¹hÀ¹ŠÀ¹½À¹ÄÀ¹ñÀ¹öÀ¹ù DraggableScrollableControllerDraggableScrollableSheetDraggableScrollableNotification_DraggableSheetExtent_DraggableScrollableSheetState)_DraggableScrollableSheetScrollController'_DraggableScrollableSheetScrollPositionDraggableScrollableActuator!_DraggableScrollableActuatorState_ResetNotifier_InheritedResetNotifier_SnappingSimulation,r