W_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 _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 ValueNotifierinfinityFlutterMemoryAllocationsinstancedispatchObjectCreatedlibrary classNameobject VoidCallbackmaptoListcall minExtent maxExtent initialExtentshouldCloseOnMinExtentdispatchdispatchObjectDisposed snapSizessnapAnimationDuration initialSize initStatewidget minChildSize maxChildSize controller_attachintindexlengthisEmptyfirstlastdidUpdateWidget_detachdidChangeDependencies shouldResetValueListenableBuildervalueListenablebuilder LayoutBuilderBoxConstraintsavailablePixels constraintsbiggestheightFractionallySizedBox heightFactor alignment Alignment bottomCenterchildexpandSizedBoxcopyWith_onExtentReplacedWidgetsBindingaddPostFrameCallback positions elementAt goBallistic debugLabelasMapkeystoStringPrimaryScrollController ScrollPhysics ScrollContextphysicsapplyToAlwaysScrollableScrollPhysics oldPosition getExtent_cancelActivityoffset millisecondsCurveslineardetachScrollActivityViewportScrollPositionWithSingleContextpixelsabsorb_dragCancelCallbackballisticController beginActivityisAtMinisAtMax addPixelDeltaapplyUserOffsetanysnapSizeabs toleranceFordistance SimulationinitialVelocity pixelSnapSizepixelSnapSizes toleranceClampingScrollSimulationvelocityobjectRuntimeTypesign isCompleted animateWithwhenCompleteOrCancelcontainsremoveDragDragStartDetailsdrag"dependOnInheritedWidgetOfExactType _sendResetnotifierInheritedResetNotifier hasListenersInheritedNotifier sendResetInheritedWidget _wasCalledinMillisecondsminmax indexWheresize ChangeNotifierStatefulWidget NotificationViewportNotificationMixinStateScrollControllerScrollPositionWithSingleContextInheritedNotifier SimulationñPÇò¸?R-èî¼ C`’…€ª€¼€¿math€¿ dart:math€Épackage:flutter/foundation.dart€ôpackage:flutter/gestures.dart� basic.dart�5 binding.dart�Mframework.dart�ginherited_notifier.dart�Šlayout_builder.dart�©notification_listener.dart�Ïscroll_activity.dart�ïscroll_context.dart‚scroll_controller.dart‚0scroll_notification.dart‚Tscroll_physics.dart‚sscroll_position.dart‚“(scroll_position_with_single_context.dart‚Çscroll_simulation.dart‚évalue_listenable_builder.dartÀcÀ·n„®=€ˆ€§€©€Æ€È€ó���4�L�f�‰�¨�Î�î‚ ‚/‚S‚r‚’‚Ƃ胃ƒUƒ£ƒÝƒâ„2„�„š„Î„ç… ………?…D…–…æ†5†m†r†Ã‡‡‡a‡±‡ûˆJˆ—ˆÎ‰ ‰H‰m‰š‰Ó‰Ú‰ß‰áŠ$ŠwŠyŠÑŠæŠþ‹3‹8‹:‹u‹Œ‹¤‹Û‹à‹âŒ9Œ_ŒwŒ³Œ¸Œº��@�G�–�ä�óŽMŽOެŽÔŽì�*�/�1���»�Â��g�€�‡�Ô‘&‘s‘«‘²’’!’(’‰’À’Ç““U“z“•“©“Ê“å“ó” ”0”X”¬”ç••&•[•ˆ•Û––D–„–Ý— —0—9—B—l—›—¿˜˜˜˜A˜¥˜À˜Õ˜Ý˜â˜ä™1™k™r™¿šš š\š¯šÈšÏ›-›d›‚›š›¿œœIœvœ«œß�N�S�U�½�Ï�çž žžž-ž:žMž±ŸŸŸŸŸkŸØ  Q ž £ ¥ ç¡9¡‹¡£¡ï¢A¢‹¢Â¢Ü¢ã¢è¢ê££4£b£p£Á£È£í¤¤¤¤>¤’¤¸¤¿¤ã¤è¤ë¤í¥<¥~¥ƒ¥Ç¥Ì¦¦a¦³¦¸§§?§D§Ž§à¨/¨}¨Å©©F©K©›©çª-ª{ª›ª ªé«;«‹«�«à¬0¬~¬˜¬�¬²¬·­­R­¢­í®?®_®d®Ñ¯¯#¯x¯¸°3°8°˜°�± ±±T±¢±Æ±Ö±ø²²5²N²f²{²œ²²²Û²÷³³C³v³©´´´U´s´z´Ãµµjµqµ”µ¶µ¸¶ ¶'¶.¶R¶p¶r¶Ã¶á¶è· ·)·+·}·Œ·“·ß¸.¸]¸d¸†¸œ¸ž¸ì¹¹¹h¹ºº ºº]ºÁºÈ»»W»£»Ï»ã»å¼#¼*¼y¼Å¼Ü¼ã½0½ƒ½Î½å½ì¾<¾y¾€¾Í¿¿n¿�¿’¿Å¿ÌÀ@À@QÀ@{À@}À@ÊÀ@þÀAÀANÀAvÀA}ÀAÊÀBÀB'ÀB)ÀBwÀBÃÀBÛÀCÀCÀCÀCjÀCmÀCoÀCºÀC÷ÀDÀDÀDmÀD¶ÀDþÀEHÀE”ÀEßÀF ÀFÀF]ÀF­ÀFÿÀGMÀG˜ÀGéÀH:ÀHvÀHÓÀI%ÀI5ÀI<ÀIŽÀIßÀJÀJÀJ=ÀJ[ÀJ}ÀJ™ÀJÂÀJäÀKÀK+ÀKWÀK|ÀK¨ÀKªÀK÷ÀLÀLÀLFÀLaÀLcÀL‰ÀL¤ÀL¦ÀLÙÀLøÀLúÀM?ÀMFÀM—ÀMåÀNÀN8ÀN:ÀNŠÀNÇÀNÎÀOÀO>ÀO@ÀOMÀO†ÀO´ÀP*ÀP/ÀP2ÀP4ÀPqÀP§ÀP×ÀPÜÀQ)ÀQyÀQ~ÀQÑÀQÖÀRÀRNÀRmÀRˆÀR¤ÀRÀÀRÙÀR÷ÀSÀS8ÀSaÀSxÀS�ÀS¸ÀS×ÀSöÀTÀTHÀT“ÀT¿ÀTêÀUÀUWÀU�ÀU½ÀUýÀV/ÀV]ÀVtÀV~ÀV…ÀVŠÀVŒÀV®ÀV°ÀVÉÀVâÀVöÀWÀWAÀW^ÀW„ÀW±ÀWÌÀWÎÀXÀX*ÀX,ÀX{ÀXŠÀXÔÀXäÀY.ÀY}ÀYÍÀZÀZCÀZWÀZYÀZ�ÀZÅÀZÇÀZøÀ[9À[;À[‡À[‰À[ÙÀ\À\À\hÀ\¸À\ÉÀ]À]#À]FÀ]KÀ]MÀ]˜À]ÒÀ]ÙÀ^$À^oÀ^«À^ÖÀ^ôÀ_À_bÀ_„À_œÀ_´À_ÕÀ_äÀ_ëÀ`(À`-À`/À`zÀ`šÀ`¡À`óÀa ÀaEÀa�Àa»ÀaÊÀaÑÀaøÀbÀb9ÀbTÀbpÀb“Àb¬ÀbãÀbýÀcÀcÀc,Àc\ÀcaÀccÀc‰Àc·Àc¼Àc¾ÀcÒÀcÿÀdNÀdUÀdrÀdwÀdyÀd�Àd»ÀdÙÀdòÀeÀe:Àe`Àe‰Àe‘Àe´ÀeÍÀeæÀeùÀfÀfKÀflÀf½ÀfÛÀgÀgOÀgjÀg‰Àg¨ÀgßÀgçÀgìÀgïÀgñÀhAÀh†Àh­Àh¯Àh¼ÀhÒÀhêÀiÀi5ÀiZÀitÀi›Ài×ÀjÀjBÀjJÀjŸÀjÓÀjØÀjÚÀkÀkPÀk‰ÀkÛÀlHÀl�ÀlãÀlêÀm8ÀmzÀm’Àm°ÀmÎÀmØÀmßÀmõÀnEÀnbÀn±Àn¹Àn¾ÀnÀÀnÍÀoÀo<ÀorÀošÀoÐÀo×Ào÷ÀoüÀoþÀp Àp-ÀpQÀpŠÀp¬Àp³Àp¸ÀpºÀpÇÀpïÀqÀqIÀq¥ÀqìÀrCÀryÀr¡ÀrÑÀrìÀrúÀsCÀsOÀsYÀs“Às›Às Às¢Às¯ÀsÃÀséÀtÀtÀtIÀtPÀtrÀtˆÀt�Àt�ÀtÖÀuÀu9Àu^ÀuƒÀu�ÀuÄÀvÀv-Àv5ÀvƒÀvÚÀwÀwOÀwqÀw¬ÀwËÀwàÀx7Àx`ÀxiÀx·ÀyÀyPÀy¢ÀyÖÀz!ÀzuÀz¹À{À{CÀ{NÀ{†À{�À{’À{”À{ÈÀ|À|2À|~À|¤À|ÑÀ|ÜÀ|üÀ}À}À}xÀ}žÀ}£À}¦À}¨À}úÀ~ À~%À~vÀ~ÈÀÀÀÀÀwÀ�ÀÔÀ€&À€;À€‡À€¶À€ÑÀ€ØÀ€ÚÀ€ûÀ� À�"À�/À�pÀ�ŒÀ�¨À�ÊÀ�ÑÀ‚À‚NÀ‚gÀ‚ˆÀ‚¨À‚°À‚µÀ‚·À‚ÄÀ‚ýÀƒ+ÀƒTÀƒYÀƒ[ÀƒhÀƒ£ÀƒåÀƒçÀƒùÀ„À„>À„^À„¥À„ÇÀ…À…À…/À…=À…qÀ…�À…šÀ…¡À…ôÀ…ùÀ…ûÀ†À†2À†SÀ†pÀ†uÀ†xÀ†zÀ†´À†æÀ†ëÀ‡;À‡ŠÀ‡ÅÀˆÀˆ.Àˆ3ÀˆBÀˆGÀˆ¥ÀˆþÀ‰+À‰HÀ‰eÀ‰}À‰›À‰¢À‰¤À‰ÊÀ‰ÿÀŠRÀŠ€ÀŠ‚ÀжÀЏÀŠÅÀŠìÀ‹À‹0À‹2À‹pÀ‹À‹†À‹ˆÀ‹¶À‹îÀŒÀŒÀŒ#ÀŒ%ÀŒ2ÀŒgÀŒ˜ÀŒìÀ�À�À�=À�BÀ�DÀ�QÀ�yÀ�—À�ÈÀ�ôÀŽ!ÀŽdÀŽrÀŽ—ÀŽžÀŽ£ÀŽ¥ÀŽÁÀŽãÀŽþÀ�qÀ�{À�ƒÀ�ˆÀ�×À�ÙÀ�æÀ�úÀ�NÀ�tÀ�{À�ŸÀ�µÀ�ºÀ�¼À�ÉÀ�ðÀ‘À‘OÀ‘~À‘¢À‘±À‘¸À’ À’-À’NÀ’PÀ’wÀ’�À’ØÀ“À“*À“NÀ“}À“»À“ëÀ“õÀ”À”RÀ”¤À”ÒÀ•À•:À•WÀ•‡À•‘À•˜À•šÀ•îÀ–?À–\À–dÀ–™À–›À–ÌÀ–ßÀ—%À—VÀ—˜À—ëÀ˜=À˜‹À˜¬À™*À™PÀ™uÀ™ªÀ™ÉÀ™ÒÀ™ÙÀ™ÛÀ™ôÀšÀšFÀšTÀššÀšÚÀ›À›À›À›)À›.À›0À›=À›‡À›ÙÀœÀœ=ÀœBÀœEÀœGÀœ•ÀœÊÀœÏÀ�À�nÀ�¿ÀžÀžÀžRÀž¢ÀžõÀŸ?ÀŸ‘ÀŸÓÀ À ^À ‰À �À ºÀ áÀ ñÀ¡ À¡À¡À¡eÀ¡¥À¡¼À¡¾À¡ÀÀ¢À¢/À¢6À¢€À¢ÉÀ¢ÛÀ£À£~À£«À£°À£²À£¿À¤À¤À¤ À¤vÀ¤¬À¤®À¤»À¤ãÀ¥2À¥7À¥9À¥FÀ¥ZÀ¥tÀ¥ŠÀ¥�À¥’À¥”À¥ÛÀ¦À¦DÀ¦ZÀ¦‡À¦ÀÀ¦ÇÀ¦ÌÀ¦þÀ§À§9À§UÀ§WÀ§‰À§�À§ÀÀ§ÖÀ§ðÀ¨À¨ À¨$À¨<À¨NÀ¨SÀ¨VÀ¨XÀ¨£À¨òÀ©fÀ©‰À©¤À©ÑÀ©ØÀ©ÚÀª Àª ÀªWÀªpÀªwÀª¿ÀªòÀ«^À«yÀ«ŽÀ«•À«ÅÀ¬À¬cÀ¬˜À¬¯À¬´À¬·À¬¹À¬éÀ­À­À­EÀ­oÀ­•À­«À­³À­÷À­ùÀ®OÀ®­À®´À¯ À¯]À¯ˆÀ¯ÄÀ¯ÒÀ° À°À°À°À°5À°TÀ°VÀ°£À°ÃÀ°ñÀ°óÀ±À±À±'À±CÀ±\À±mÀ±tÀ±ŠÀ±�À±‘À±žÀ±¼À±ãÀ±èÀ±êÀ±÷À²À²NÀ²ŠÀ²ÅÀ²þÀ³À³#À³<À³AÀ³CÀ³�À³ÕÀ³òÀ´@À´pÀ´©À´ÊÀ´îÀ´õÀµ3ÀµyÀµ±À¶ À¶EÀ¶cÀ¶sÀ¶�À¶–À¶�À¶ÝÀ¶ÿÀ·2À·9À·fÀ·kÀ·n€©€À€¿€È€ó��4�L�f�‰�¨�Î�î‚ ‚/‚S‚r‚’‚Æ‚è …ŸÖˆÔˆÔƒª/// 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.‰€Ï‰J‰J‰g8/// Creates a controller for [DraggableScrollableSheet].‰ã>ŠŠŠ&NŠEŠEŠrŠsŠ]ŠqŠ^Š{€»ŠÞŠÞ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.Œ¼���þ�þ�&/// 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. ‹ä€ÒŒBŒBS/// Convert a sheet's size (fractional value of parent container height) to pixels.ŒO ŒWŒVŽQ€Ü޵޵Y/// Convert a sheet's pixel height to size (fractional value of parent container height).ŽÂ ŽÊŽÉ�3‰­“‰“‰„ /// 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].“™ “¡“ “­“À“¿“Γޓݘæ„k›k›k‚[/// 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.›r ›z›y�W€¶�Ä�Äd/// Reset the attached sheet to its initial size (see: [DraggableScrollableSheet.initialChildSize]).ž�žžŸ�‚Ÿ$Ÿ$Ÿ,:ŸWŸV §‚? ¬ ¬ ¾$ Õ Ô¢ì�%¢ñ¢ñ¢ú£¢ÿ£¤€Ï¤¤¤íž~±!±!‹ö/// 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}±V‚ª±ª±ª±ÂJ/// Creates a widget that can be dragged and scrolled in a single gesture. ±Ê ±Ñ±Ð±Ú±à±ß±ü²²²²!² ²9²?²>²R²X²W²j²p²o²²…²„² ²¦²¥²¶"²¼²»²ß²î²í*±ò²²/²G²^²Ô²ÿ³³³³³³%³+³?³9³,³<³K³Q³r³_³R³b³~³„³¥³–³…³™³±³·³þ³Ö³Î³¸³Ñ³ï³Ù³ñ³ù³ú ´�­µ£µ£�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`.µº€³¶a¶a€�/// The minimum fractional value of the parent container's height to use when /// displaying the widget. /// /// The default value is `0.25`.¶t€²··€Œ/// The maximum fractional value of the parent container's height to use when /// displaying the widget. /// /// The default value is `1.0`.·-�l¸“¸“�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.¸ ƒ@»Ü»Üƒ/// 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].»çƒ¦¿„¿„ƒ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].¿”€äÀ@cÀ@c€²/// 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.À@|À@ñÀ@ñI/// A controller that can be used to programmatically control this sheet.ÀA�"ÀBÀB€ñ/// 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.ÀB+€×ÀBûÀBû€¨/// 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.ÀC _ÀC6ÀC6ÀC ÀC ÀCoŒÁÀH|ÀH|„ò/// 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.ÀHÕ‚ÑÀIáÀIáÀJ€ü/// 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].ÀJÀJÀJÀJ#ÀJ2ÀJ1ÀJAÀJPÀJOÀJ_ÀJnÀJmÀJ�ÀJ�ÀJ�ÀJ�"ÀJ£ÀJ¢%ÀJ»ÀJÉÀJÏÀJàÀJÔÀJÐÀJ×ÀJëÀJñÀKÀJüÀJòÀJÿÀK ÀKÀK'ÀKÀKÀK!ÀK2ÀK8ÀKSÀKCÀK9ÀKFÀK^ÀKdÀKxÀKlÀKeÀKoÀKƒÀK‰ÀK¤ÀK˜ÀKŠÀK›ÀK¬`ÀLÀLI/// The current value of the extent, between [minExtent] and [maxExtent].ÀLKÀLUÀLU1/// The minimum value of [extent], which is >= 0.ÀLe<ÀL˜ÀL˜"/// The maximum value of [extent].ÀL¨MÀLèÀLè//// The initially requested value for [extent].ÀLü�9ÀN.ÀN.�/// 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.ÀN<€ÿÀO%ÀO%€Ñ/// 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.ÀOB€ëÀOTÀOTÀOiÀOwÀOvÀOBÀOCÀP4—¹ÀRTÀRT‚/// 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`.ÀRo„ÀRoÀRoÀR„ ÀRŒÀR›ÀRšÀR¨ÀR·ÀR¶ÀRÄÀRÓÀRÒÀRÝÀRìÀRëÀRûÀS ÀS ÀSÀS!ÀS ÀS<"ÀSTÀSSÀSeÀSlÀSkÀS|ÀSƒÀS‚ÀS“"ÀS™ÀS˜3ÀS±ÀSÀÀSÆÀSÓÀSÏÀSÇÀSÒÀSßÀSåÀSòÀSîÀSæÀSñÀSþÀTÀTÀT ÀTÀTÀT'ÀT-ÀTDÀT:ÀT.ÀT=ÀT]ÀTPÀTkÀT_ÀTnÀT{ÀT‚ÀT|ÀTƒÀT�ÀT„ÀT«ÀT›ÀT­ÀT³ÀT´ÀTÒÀTÇÀTßÀTÔÀTâÀTýÀTòÀU ÀTÿÀU ÀVŽÀVœÀVœÀV²ÀV¿ÀV¿ÀVËÀVØÀVØÀVäÀVïÀVïÀVøÀW ÀW ÀW%ÀW)ÀW)ÀWCÀWPÀWPÀW`!ÀWkÀWkÀW†(ÀW¢ÀW¢ÀW³ÀWºÀWºÀXÀXÀXÀZEÀZJÀZJÀZ[2ÀZdÀZdÀZ‘2ÀZšÀZšÀZÉ-ÀZÔÀZÔÀZú=À[À[À[=HÀ[NÀ[NÀ[‹�¾À\ÐÀ\Ð�-/// 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.À\ß À\öÀ\õÀ]O‚ÜÀ^vÀ^v�/// 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.À^„ À^ŒÀ^‹À^’À^ À^ŸÀ`1‚ÏÀ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:Àa9ÀcYÀc Àc Àc Àc"Àc!ÀceUÀclÀclÀcy Àc�Àc€ÀcÀ€µÀcÅÀcÅÀd{ƒoÀd‘Àd‘Àd¡Àd²Àd±Àd¿ÀdÐÀdÏÀdÝÀdìÀdëÀdöÀe Àe ÀeÀe-Àe,Àe>ÀeIÀeHÀed"ÀejÀeiÀe‚Àgñ•³Àg÷Àg÷ÀhC@ÀhrÀhrÀhˆ"Àh£Àh£Àh±‚%ÀhÃÀhÃÀh±Àh²Àj܃àÀjéÀjéÀnÂ�8ÀnÔÀnÔÀnä,ÀoÀoÀnÂÀnÃÀp€¶ÀpÀpÀpÀpÀp¼‚âÀpÐÀpÐÀpÖÀpäÀpãÀp¼Àp½Às¤€çÀs¶Às¶Às¤Às¥Àt‘†ÿÀt–Àt–Àt¥,ÀtÉÀtÈÀ{–‚ À{�À{�À{³À{¸À{·À}¨ˆÎÀ€AÀ€A‚„/// 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.À€‰MÀ€‰À€‰À€²À€ºÀ€ÉÀ€ÈÀ€ÜÀ€òÀ€òÀ€ý À� À� Àƒ]€†Àƒ–Àƒ–Àƒ]Àƒ^À�$��À�YÀ�YÀ�tÀ�ƒÀ�‚À��À�ŸÀ�žÀ�¬À�½À�¼À�$À�%À‚¹€žÀ‚ËÀ‚ËÀ‚àÀ‚îÀ‚íÀ‚¹À‚ºÀƒé‚ÀƒîÀƒîÀ…ývÀ†À†À†À†&À†%À…ýÀ…þÀ†z•ÉÀˆ«Àˆ«‚/// 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].À‰€ À‰À‰À‰'À‰/À‰?À‰>À‰LÀ‰\À‰[À‰iÀ‰pÀ‰oÀ‰�À‰�À‰�À‰¦!À‰´À‰´À‰Ì0À‰óÀ‰óÀŠNÀŠ ÀŠ ÀŠMÀŠNÀŠ8ÀŠLÀŠ9ÀŠT*ÀŠ]ÀŠ]ÀŠ„0ÀŠžÀŠžÀާ€ßÀްÀްÀ�ŠKÀ�“À�“ÀŠº�gÀŠÌÀŠÌÀŠÓÀŠãÀŠâÀŠºÀŠ»ÀŒ'�ÀŒ9ÀŒ9ÀŒGÀŒXÀŒWÀŒ'ÀŒ(À�F�[À�XÀ�XÀ�h À�pÀ�oÀ�FÀ�GÀ�Û€ÝÀ�íÀ�íÀ�ÛÀ�ÜÀ�¾ŠnÀ�ÐÀ�ÐÀ�ÜÀ�äÀ�ãÀ�¾À�¿À›2�À›DÀ›DÀ›IÀ›[À›ZÀ›cÀ›qÀ›pÀ›2À›3ÀœG‡ÕÀŸÙÀŸÙƒ}/// 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]).À €ÿÀ ÂÀ ÂÀ Ý€ž/// Creates a widget that can notify descendent [DraggableScrollableSheet]s /// to reset to their initial position. /// /// The [child] parameter is required.À å À ìÀ ëÀ õÀ¡À¡À¡€£À¡´À¡´€Š/// This child's [DraggableScrollableSheet] descendant will be reset when the /// [reset] method is applied to a context that includes it.À¡Â�ìÀ¢éÀ¢é�/// 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.À¢ïÀ¢ýÀ¢üÀ£´eÀ£äÀ£äÀ£´À£µÀ¤ �pÀ¤&À¤&À¤x1À¤�À¤�À¤™À¤§À¤¨À¤°€…À¤ÄÀ¤ÄÀ¤ÊÀ¤ØÀ¤×À¤°À¤±À¥;RÀ¥MÀ¥MÀ¥;À¥<À¥”‚ÀÀ¦À¦~/// A [ChangeNotifier] to use with [InheritedResetNotifier] to notify /// descendants that they should reset to initial state.À¦F€„À¦FÀ¦FÀ¦TÀ¦Î€„À§@À§@c/// Whether someone called [sendReset] or not. /// /// This flag should be reset after checking it.À§MÀ§Y€øÀ§ÇÀ§Ç_/// Fires a reset notification to descendants. /// /// Returns false if there are no listeners.À¨X„]À¨^À¨^À¨¥�1À©nÀ©nÀ©…€¼/// Creates an [InheritedNotifier] that the [DraggableScrollableSheet] will /// listen to for an indication that it should reset itself back to [DraggableScrollableSheet.initialChildSize].À©�À©�À©œÀ©¨&À©ÇÀ©ÆÀ©Ü+À©áÀ©áÀª ‚¥ÀªÍÀªÍ€§/// Specifies whether the [DraggableScrollableSheet] should reset to its /// initial position. /// /// Returns true if the notifier requested a reset, false otherwise.ÀªÙÀªçÀªæÀ¬¹Š³À¬¿À¬¿À¬ëƒ,À¬ëÀ¬ëÀ¬þÀ­À­À­À­#À­4À­3À­I#À­`À­_À­sÀ­~À­}À­™À­ À­ŸÀ°À°*À°*À°7À°IÀ°IÀ°Å)À°ÙÀ°ÙÀ°èÀ°õ À±À±À±qÀ±0À±0À±3 À±;À±:À±À±À±“SÀ±¥À±¥À±¬ À±´À±³À±“À±”À±ì�SÀ²À²À² À² À² À±ìÀ±íÀ³ôƒuÀ³ûÀ³ûÀ´À´À´À´ À´.À´-ƒ�ü„¢„¢�/// 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.„Єބ݄é!„û„ú„®=€ˆ€§€©€Æ€È€ó���4�L�f�‰�¨�Î�î‚ ‚/‚S‚r‚’‚Ƃ胃ƒUƒ£ƒÝƒâ„2„�„š„Î„ç… ………?…D…–…æ†5†m†r†Ã‡‡‡a‡±‡ûˆJˆ—ˆÎ‰ ‰H‰m‰š‰Ó‰Ú‰ß‰áŠ$ŠwŠyŠÑŠæŠþ‹3‹8‹:‹u‹Œ‹¤‹Û‹à‹âŒ9Œ_ŒwŒ³Œ¸Œº��@�G�–�ä�óŽMŽOެŽÔŽì�*�/�1���»�Â��g�€�‡�Ô‘&‘s‘«‘²’’!’(’‰’À’Ç““U“z“•“©“Ê“å“ó” ”0”X”¬”ç••&•[•ˆ•Û––D–„–Ý— —0—9—B—l—›—¿˜˜˜˜A˜¥˜À˜Õ˜Ý˜â˜ä™1™k™r™¿šš š\š¯šÈšÏ›-›d›‚›š›¿œœIœvœ«œß�N�S�U�½�Ï�çž žžž-ž:žMž±ŸŸŸŸŸkŸØ  Q ž £ ¥ ç¡9¡‹¡£¡ï¢A¢‹¢Â¢Ü¢ã¢è¢ê££4£b£p£Á£È£í¤¤¤¤>¤’¤¸¤¿¤ã¤è¤ë¤í¥<¥~¥ƒ¥Ç¥Ì¦¦a¦³¦¸§§?§D§Ž§à¨/¨}¨Å©©F©K©›©çª-ª{ª›ª ªé«;«‹«�«à¬0¬~¬˜¬�¬²¬·­­R­¢­í®?®_®d®Ñ¯¯#¯x¯¸°3°8°˜°�± ±±T±¢±Æ±Ö±ø²²5²N²f²{²œ²²²Û²÷³³C³v³©´´´U´s´z´Ãµµjµqµ”µ¶µ¸¶ ¶'¶.¶R¶p¶r¶Ã¶á¶è· ·)·+·}·Œ·“·ß¸.¸]¸d¸†¸œ¸ž¸ì¹¹¹h¹ºº ºº]ºÁºÈ»»W»£»Ï»ã»å¼#¼*¼y¼Å¼Ü¼ã½0½ƒ½Î½å½ì¾<¾y¾€¾Í¿¿n¿�¿’¿Å¿ÌÀ@À@QÀ@{À@}À@ÊÀ@þÀAÀANÀAvÀA}ÀAÊÀBÀB'ÀB)ÀBwÀBÃÀBÛÀCÀCÀCÀCjÀCmÀCoÀCºÀC÷ÀDÀDÀDmÀD¶ÀDþÀEHÀE”ÀEßÀF ÀFÀF]ÀF­ÀFÿÀGMÀG˜ÀGéÀH:ÀHvÀHÓÀI%ÀI5ÀI<ÀIŽÀIßÀJÀJÀJ=ÀJ[ÀJ}ÀJ™ÀJÂÀJäÀKÀK+ÀKWÀK|ÀK¨ÀKªÀK÷ÀLÀLÀLFÀLaÀLcÀL‰ÀL¤ÀL¦ÀLÙÀLøÀLúÀM?ÀMFÀM—ÀMåÀNÀN8ÀN:ÀNŠÀNÇÀNÎÀOÀO>ÀO@ÀOMÀO†ÀO´ÀP*ÀP/ÀP2ÀP4ÀPqÀP§ÀP×ÀPÜÀQ)ÀQyÀQ~ÀQÑÀQÖÀRÀRNÀRmÀRˆÀR¤ÀRÀÀRÙÀR÷ÀSÀS8ÀSaÀSxÀS�ÀS¸ÀS×ÀSöÀTÀTHÀT“ÀT¿ÀTêÀUÀUWÀU�ÀU½ÀUýÀV/ÀV]ÀVtÀV~ÀV…ÀVŠÀVŒÀV®ÀV°ÀVÉÀVâÀVöÀWÀWAÀW^ÀW„ÀW±ÀWÌÀWÎÀXÀX*ÀX,ÀX{ÀXŠÀXÔÀXäÀY.ÀY}ÀYÍÀZÀZCÀZWÀZYÀZ�ÀZÅÀZÇÀZøÀ[9À[;À[‡À[‰À[ÙÀ\À\À\hÀ\¸À\ÉÀ]À]#À]FÀ]KÀ]MÀ]˜À]ÒÀ]ÙÀ^$À^oÀ^«À^ÖÀ^ôÀ_À_bÀ_„À_œÀ_´À_ÕÀ_äÀ_ëÀ`(À`-À`/À`zÀ`šÀ`¡À`óÀa ÀaEÀa�Àa»ÀaÊÀaÑÀaøÀbÀb9ÀbTÀbpÀb“Àb¬ÀbãÀbýÀcÀcÀc,Àc\ÀcaÀccÀc‰Àc·Àc¼Àc¾ÀcÒÀcÿÀdNÀdUÀdrÀdwÀdyÀd�Àd»ÀdÙÀdòÀeÀe:Àe`Àe‰Àe‘Àe´ÀeÍÀeæÀeùÀfÀfKÀflÀf½ÀfÛÀgÀgOÀgjÀg‰Àg¨ÀgßÀgçÀgìÀgïÀgñÀhAÀh†Àh­Àh¯Àh¼ÀhÒÀhêÀiÀi5ÀiZÀitÀi›Ài×ÀjÀjBÀjJÀjŸÀjÓÀjØÀjÚÀkÀkPÀk‰ÀkÛÀlHÀl�ÀlãÀlêÀm8ÀmzÀm’Àm°ÀmÎÀmØÀmßÀmõÀnEÀnbÀn±Àn¹Àn¾ÀnÀÀnÍÀoÀo<ÀorÀošÀoÐÀo×Ào÷ÀoüÀoþÀp Àp-ÀpQÀpŠÀp¬Àp³Àp¸ÀpºÀpÇÀpïÀqÀqIÀq¥ÀqìÀrCÀryÀr¡ÀrÑÀrìÀrúÀsCÀsOÀsYÀs“Às›Às Às¢Às¯ÀsÃÀséÀtÀtÀtIÀtPÀtrÀtˆÀt�Àt�ÀtÖÀuÀu9Àu^ÀuƒÀu�ÀuÄÀvÀv-Àv5ÀvƒÀvÚÀwÀwOÀwqÀw¬ÀwËÀwàÀx7Àx`ÀxiÀx·ÀyÀyPÀy¢ÀyÖÀz!ÀzuÀz¹À{À{CÀ{NÀ{†À{�À{’À{”À{ÈÀ|À|2À|~À|¤À|ÑÀ|ÜÀ|üÀ}À}À}xÀ}žÀ}£À}¦À}¨À}úÀ~ À~%À~vÀ~ÈÀÀÀÀÀwÀ�ÀÔÀ€&À€;À€‡À€¶À€ÑÀ€ØÀ€ÚÀ€ûÀ� À�"À�/À�pÀ�ŒÀ�¨À�ÊÀ�ÑÀ‚À‚NÀ‚gÀ‚ˆÀ‚¨À‚°À‚µÀ‚·À‚ÄÀ‚ýÀƒ+ÀƒTÀƒYÀƒ[ÀƒhÀƒ£ÀƒåÀƒçÀƒùÀ„À„>À„^À„¥À„ÇÀ…À…À…/À…=À…qÀ…�À…šÀ…¡À…ôÀ…ùÀ…ûÀ†À†2À†SÀ†pÀ†uÀ†xÀ†zÀ†´À†æÀ†ëÀ‡;À‡ŠÀ‡ÅÀˆÀˆ.Àˆ3ÀˆBÀˆGÀˆ¥ÀˆþÀ‰+À‰HÀ‰eÀ‰}À‰›À‰¢À‰¤À‰ÊÀ‰ÿÀŠRÀŠ€ÀŠ‚ÀжÀЏÀŠÅÀŠìÀ‹À‹0À‹2À‹pÀ‹À‹†À‹ˆÀ‹¶À‹îÀŒÀŒÀŒ#ÀŒ%ÀŒ2ÀŒgÀŒ˜ÀŒìÀ�À�À�=À�BÀ�DÀ�QÀ�yÀ�—À�ÈÀ�ôÀŽ!ÀŽdÀŽrÀŽ—ÀŽžÀŽ£ÀŽ¥ÀŽÁÀŽãÀŽþÀ�qÀ�{À�ƒÀ�ˆÀ�×À�ÙÀ�æÀ�úÀ�NÀ�tÀ�{À�ŸÀ�µÀ�ºÀ�¼À�ÉÀ�ðÀ‘À‘OÀ‘~À‘¢À‘±À‘¸À’ À’-À’NÀ’PÀ’wÀ’�À’ØÀ“À“*À“NÀ“}À“»À“ëÀ“õÀ”À”RÀ”¤À”ÒÀ•À•:À•WÀ•‡À•‘À•˜À•šÀ•îÀ–?À–\À–dÀ–™À–›À–ÌÀ–ßÀ—%À—VÀ—˜À—ëÀ˜=À˜‹À˜¬À™*À™PÀ™uÀ™ªÀ™ÉÀ™ÒÀ™ÙÀ™ÛÀ™ôÀšÀšFÀšTÀššÀšÚÀ›À›À›À›)À›.À›0À›=À›‡À›ÙÀœÀœ=ÀœBÀœEÀœGÀœ•ÀœÊÀœÏÀ�À�nÀ�¿ÀžÀžÀžRÀž¢ÀžõÀŸ?ÀŸ‘ÀŸÓÀ À ^À ‰À �À ºÀ áÀ ñÀ¡ À¡À¡À¡eÀ¡¥À¡¼À¡¾À¡ÀÀ¢À¢/À¢6À¢€À¢ÉÀ¢ÛÀ£À£~À£«À£°À£²À£¿À¤À¤À¤ À¤vÀ¤¬À¤®À¤»À¤ãÀ¥2À¥7À¥9À¥FÀ¥ZÀ¥tÀ¥ŠÀ¥�À¥’À¥”À¥ÛÀ¦À¦DÀ¦ZÀ¦‡À¦ÀÀ¦ÇÀ¦ÌÀ¦þÀ§À§9À§UÀ§WÀ§‰À§�À§ÀÀ§ÖÀ§ðÀ¨À¨ À¨$À¨<À¨NÀ¨SÀ¨VÀ¨XÀ¨£À¨òÀ©fÀ©‰À©¤À©ÑÀ©ØÀ©ÚÀª Àª ÀªWÀªpÀªwÀª¿ÀªòÀ«^À«yÀ«ŽÀ«•À«ÅÀ¬À¬cÀ¬˜À¬¯À¬´À¬·À¬¹À¬éÀ­À­À­EÀ­oÀ­•À­«À­³À­÷À­ùÀ®OÀ®­À®´À¯ À¯]À¯ˆÀ¯ÄÀ¯ÒÀ° À°À°À°À°5À°TÀ°VÀ°£À°ÃÀ°ñÀ°óÀ±À±À±'À±CÀ±\À±mÀ±tÀ±ŠÀ±�À±‘À±žÀ±¼À±ãÀ±èÀ±êÀ±÷À²À²NÀ²ŠÀ²ÅÀ²þÀ³À³#À³<À³AÀ³CÀ³�À³ÕÀ³òÀ´@À´pÀ´©À´ÊÀ´îÀ´õÀµ3ÀµyÀµ±À¶ À¶EÀ¶cÀ¶sÀ¶�À¶–À¶�À¶ÝÀ¶ÿÀ·2À·9À·fÀ·kÀ·n DraggableScrollableControllerDraggableScrollableSheetDraggableScrollableNotification_DraggableSheetExtent_DraggableScrollableSheetState)_DraggableScrollableSheetScrollController'_DraggableScrollableSheetScrollPositionDraggableScrollableActuator!_DraggableScrollableActuatorState_ResetNotifier_InheritedResetNotifier_SnappingSimulationº