Update: 2026-06-21 18:58:05

This commit is contained in:
Hamza-Ayed
2026-06-21 18:58:13 +03:00
parent b492b5076b
commit e73be65a72
8755 changed files with 92977 additions and 99 deletions

View File

@@ -0,0 +1,675 @@
€…
axisDirection
controllerphysicsviewportBuilderincrementCalculatorexcludeFromSemanticshitTestBehaviorsemanticChildCountdragStartBehavior
restorationIdscrollBehavior clipBehavioraxis createStatedebugFillPropertiesmaybeOfof"recommendDeferredLoadingForContext
ensureVisible
scrollablepositionupdateShouldNotify _positionresolvedPhysics_physicsdeltaToScrollOrigin_effectiveScrollControllervsyncdevicePixelRatio_devicePixelRationotificationContextstorageContext_persistedScrollOffset_configuration_fallbackScrollController_mediaQueryGestureSettings_updatePosition restoreState
saveOffset initStatedidChangeDependencies_shouldUpdatePositiondidUpdateWidgetdispose_scrollSemanticsKeysetSemanticsActions_gestureDetectorKey_ignorePointerKey_gestureRecognizers_shouldIgnorePointer _lastCanDrag_lastAxisDirection
setCanDragsetIgnorePointer_drag_hold_handleDragDown_handleDragStart_handleDragUpdate_handleDragEnd_handleDragCancel _disposeHold _disposeDrag#_targetScrollOffsetForPointerScroll_pointerSignalEventDelta_receivedPointerSignal_handlePointerScroll _handleScrollMetricsNotification _buildChromebuild_performEnsureVisiblestatechild registrar_selectionDelegate_kDefaultDragTargetSize%_kDefaultSelectToScrollVelocityScalar
_autoScroller_scheduledLayoutChange _currentDragStartRelatedToOrigin_currentDragEndRelatedToOrigin_selectionStartsInScrollable_scheduleLayoutChange!_selectableStartEdgeUpdateRecords_selectableEndEdgeUpdateRecordsdidChangeSelectableshandleClearSelectionhandleSelectionEdgeUpdate_inferPositionRelatedToOrigin"_updateDragLocationsFromGeometrieshandleSelectAllhandleSelectWordhandleGranularlyExtendSelection"handleDirectionallyExtendSelection _jumpToEdge_globalPositionInScrollable_dragTargetFromEventdispatchSelectionEventToChildensureChildUpdatedallowImplicitScrollingcreateRenderObjectupdateRenderObject_allowImplicitScrolling_semanticChildCount_onScrollToOffsetdescribeSemanticsConfiguration
_innerNodeassembleSemanticsNodeclearSemanticscreateDefaultValuedidUpdateValuefromPrimitives toPrimitivesenablednone
weightedEventweightedContinuousfreediagonalDragBehaviorhorizontalDetailsverticalDetails_verticalFallbackController_horizontalFallbackController_verticalOuterScrollableKey_horizontalInnerScrollableKeyverticalScrollablehorizontalScrollabletwoDimensionalScrollable
horizontalKey
lockedAxislastDragOffset_evaluateLockedAxisverticalOuterKeyViewportBuilderTwoDimensionalViewportBuilder_EnsureVisibleResults
Scrollable_ScrollableScopeScrollableState_ScrollableSelectionHandler _ScrollableSelectionHandlerState%_ScrollableSelectionContainerDelegate_getDeltaToScrollOrigin_ScrollSemantics_RenderScrollSemantics_RestorableScrollOffsetDiagonalDragBehaviorTwoDimensionalScrollableTwoDimensionalScrollableState_TwoDimensionalScrollableScope_VerticalOuterDimension_VerticalOuterDimensionState_HorizontalInnerDimension_HorizontalInnerDimensionState<74>Ÿ ToleranceWidget BuildContextViewportOffsetListFuturevoidViewportListViewGridViewCustomScrollViewof
ensureVisibleSingleChildScrollViewShrinkWrappingViewportScrollControllerScrollPositionPageViewPageController PageStoragekeepScrollOffsetPageStorageKeykey
ScrollViewScrollNotificationNotificationListenerStatefulWidget
AxisDirectiondownDragStartBehaviorstartCliphardEdgeHitTestBehavioropaque
axisDirectionrightinitialScrollOffsetoffset animateToScrollConfigurationScrollBehaviorscrollBehavior
ScrollPhysicsphysicsAlwaysScrollableScrollPhysics ScrollActionScrollIncrementTypepagelineScrollIncrementCalculatorGestureDetectorexcludeFromSemanticsbool separatedSemanticsConfigurationscrollChildCountintDragGestureRecognizerdragStartBehaviorRestorationBucketRestorationScopeRestorationManagerString ScrollbarScrollableDetails clipBehaviorAxisaxisDirectionToAxisoverrideDiagnosticPropertiesBuilderdebugFillPropertiesadd EnumPropertyDiagnosticsPropertyStringPropertyInheritedElement'getElementForInheritedWidgetOfExactTypewidget
scrollabledependOnInheritedElementcontextmaybeOfaxis FlutterError fromPartsDiagnosticsNode ErrorSummaryErrorDescription ErrorHintrecommendDeferredLoadingactivityScrollActivityvelocitygetInheritedWidgetOfExactTypepositiondoubleDurationzeroCurveCurveseaseScrollPositionAlignmentPolicyexplicit RenderObject_performEnsureVisiblefindRenderObject alignmentdurationcurvealignmentPolicytargetRenderObjectaddAllisEmptyvaluelengthsinglewaitthenInheritedWidgetStateTickerProviderStateMixinRestorationMixin
ScrollContextcreateScrollPositionOffsetEdgeDraggingAutoScrolleruppixelsleft
controllerTickerProvidercurrentContext
restorationIdDeviceGestureSettingsgetScrollPhysicsapplyTodetachscheduleMicrotaskdisposeattach protectedregisterForRestoration
restoreOffsetinitialRestore!debugIsSerializableForRestorationServicesBindinginstancerestorationManager flushData initState
MediaQuerymaybeGestureSettingsOfmaybeDevicePixelRatioOfViewdevicePixelRatiodidChangeDependencies shouldNotify runtimeTypeparentdidUpdateWidget GlobalKeySetSemanticsAction currentStatereplaceSemanticsActionsRawGestureDetectorStateMapTypeGestureRecognizerFactoryverticalVerticalDragGestureRecognizer$GestureRecognizerFactoryWithHandlerssupportedDevices dragDevicesonDownonStartonUpdateonEndonCancelminFlingDistanceminFlingVelocitymaxFlingVelocityvelocityTrackerBuildermultitouchDragStrategygetMultitouchDragStrategygestureSettings
horizontalHorizontalDragGestureRecognizerreplaceGestureRecognizersRenderIgnorePointerignoringDragScrollHoldControllerDragDownDetailsholdDragStartDetailsdragDragUpdateDetailsupdateDragEndDetailsendcancelminmaxminScrollExtentmaxScrollExtentPointerScrollEventLogicalKeyboardKeyHardwareKeyboardlogicalKeysPressedanypointerAxisModifierscontainskindPointerDeviceKindmouseflipAxis scrollDeltadxdyaxisDirectionIsReversedPointerSignalEventshouldAcceptUserOffsetrespondallowPlatformDefaultGestureBindingpointerSignalResolverregisterPointerScrollInertiaCancelEvent
pointerScroll PointerEventScrollMetricsNotificationdepthmarkNeedsSemanticsUpdate directiondecorationClipBehaviorbuildScrollbarbuildOverscrollIndicatorchildListeneronPointerSignalRawGestureDetectorgesturesbehaviorhitTestBehavior SemanticsexplicitChildNodes
IgnorePointerviewportBuilderonNotificationallowImplicitScrollingsemanticChildCountSelectionRegistrarSelectionContainerstate registrardelegate)MultiSelectableSelectionContainerDelegatevelocityScalar addListenerremoveListenerSchedulerBindingaddPostFrameCallbacklayoutDidChange
debugLabelSelectionEdgeUpdateEvent
Selectable selectablestoSet removeWheredidChangeSelectablesSelectionResultClearSelectionEventclearhandleClearSelectionglobalPositiontypeSelectionEventType
endEdgeUpdate translateforEnd granularityforStarthandleSelectionEdgeUpdatependingstopAutoScrollstartAutoScrollIfNecessary scrolling RenderBox
globalToLocal
localToGlobalsizeheightwidthinfiniteMatrix4getTransformTocurrentSelectionStartIndexforceUpdateStartSelectionGeometry hasSelectionSelectionPointstartSelectionPoint MatrixUtilstransformPoint
localPosition
lineHeightcurrentSelectionEndIndexforceUpdateEndendSelectionPointSelectAllSelectionEventhandleSelectAllSelectWordSelectionEventhandleSelectWordGranularlyExtendSelectionEventhandleGranularlyExtendSelectionisEnd!DirectionallyExtendSelectionEvent"handleDirectionallyExtendSelectionRectfromLTRB
edgeBottombottomedgeToptopjumpTofromLTWH
fromCentercenterSelectionEventstartEdgeUpdategranularlyExtendSelectiondirectionallyExtendSelectionremove selectAll
selectWordselectParagraphdispatchSelectionEventToChildabsprecisionErrorTolerancedispatchSelectionEvent
SemanticsNodeRenderViewportexcludeFromScrollingRenderAbstractViewportuseTwoPaneSemanticsdescribeSemanticsConfigurationSingleChildRenderObjectWidgetRenderProxyBoxisSemanticBoundaryhaveDimensionshasImplicitScrollingscrollPositionscrollExtentMaxscrollExtentMinonScrollToOffsetIterablefirstisTaggedassembleSemanticsNode showOnScreenrectflagsCollectionisHidden
indexInParent scrollIndex
updateWithconfigchildrenInInversePaintOrderclearSemanticsRestorableValuenotifyListenersObject
kTouchSlopTwoDimensionalViewportTwoDimensionalScrollViewnoneverticalScrollablehorizontalScrollable"dependOnInheritedWidgetOfExactTypetwoDimensionalScrollable
ScrollMetricsverticalDetailshorizontalDetails
horizontalKeyincrementCalculatordiagonalDragBehaviorverticalOuterKeyverticalOffsethorizontalOffset
weightedEventweightedContinuousfree_handleDragDown_handleDragStartsourceTimeStampdelta primaryDelta_handleDragUpdatepixelsPerSecondVelocityprimaryVelocity_handleDragEnd_handleDragCancel
setCanDrag_gestureRecognizersPanGestureRecognizer_configuration_physics_mediaQueryGestureSettings _lastCanDrag_lastAxisDirection_gestureDetectorKey_effectiveScrollController StatefulWidgetInheritedWidgetStateTickerProviderStateMixinRestorationMixin
ScrollContext)MultiSelectableSelectionContainerDelegateSingleChildRenderObjectWidgetRenderProxyBoxRestorableValue
ScrollableScrollableStateO<>î™}¶¼’`¹ü!¹…”…¢ Tolerance…npackage:flutter/physics.dart0
dart:asyncEWZmathZ dart:mathbpackage:flutter/foundation.dart‚Œpackage:flutter/gestures.dart´package:flutter/rendering.dart‚Ýpackage:flutter/scheduler.dartƒpackage:flutter/services.dartƒ/
basic.dartƒDframework.dartƒ]gesture_detector.dartƒ}media_query.dartƒ˜notification_listener.dartƒ½restoration.dartƒØrestoration_properties.dartƒþscroll_activity.dartscroll_configuration.dart„Ascroll_context.dart„_scroll_controller.dart„€scroll_physics.dart„žscroll_position.dart„½scrollable_helpers.dart„ßselectable_region.dartselection_container.dart…#ticker_provider.dart…B view.dart…V
viewport.dartÀ¥˜À|‰ü<€†€¤€¥€Õ€Ù€ý<E282AC><1E>D<EFBFBD>o<EFBFBD><EFBFBD>Â<EFBFBD>õ%./D`a³Üƒƒ-ƒ.ƒCƒ\ƒ|ƒ—ƒ¼ƒ×ƒý„„@„^„<7F>„¼„Þ„ÿ…"…A…U…m…n…¤…¥…½…ۅ܆'†L†¦†§†ö‡%‡M‡b‡~‡¥‡Î‡Õ‡ÖˆˆˆLˆˆÀ‰‰X‰<58>‰…‰ÐŠŠbŠfŠ·RjnºŒ ŒŒŒ`ŒdŒ±<C592><00>C<EFBFBD><43><EFBFBD><EFBFBD>ÚŽŽk޲޶ŽíŽñ<C5BD>?<3F><><EFBFBD>Ü<EFBFBD>'<27>u<EFBFBD>y<EFBFBD><EFBFBD><EFBFBD>ÔTqÀÙ'E¢õ“4“^“ƒ“˜“§“Ô“é“û””<”c”€”¶”Δç••A•‡•ˆ•Õõ•ûIâ—/—€—œ—¢—ʗߘ˜˜=˜Ž˜ž˜¤˜ò™B™<42>™Ôš#šlšš—šæ &6<›‡›¯›Ä›ê›ëœ œTœZœ¦œÑœ×<C593>%<25>N<EFBFBD>T<EFBFBD><EFBFBD>Úžžždž´ŸŸNŸžŸí   % + | Ê¡¡1¡Q¡R¡Ÿ¡¥¡ö¢5¢;¢K¢Q¢¢ê£.£W£X£™£å¤2¤H¤N¤š¤ë¥"¥(¥`¥®¥ç¥ü¦4¦5¦w¦Ä¦á¦ç§7§ƒ§Í§â§è§ø§þ¨O¨c¨†¨‡¨Ä©©©d©š©¯©µ©Å©Ëªª;ª<ª„ªŠªÚªà«,«w«Ã«É¬¬\¬b¬r¬x¬½­­8­9­<39>­Ï®
®®[®§®ñ¯¯¯a¯¯¯à¯æ°.°4°D°J°™°»°Á°Ö±±±?±<>±“±â²²%²p²¼²Â²Ò²Ø³%³7³L³k³l³¨³ó³ù´F´Š´<C5A0>´Õµµbµzµ<7A>µ·µ¸µîµô¶¶u¶È··)·*·^·d·<64>·Ä·Å·Ñ¸¸¸¸Y¸¸Õ¹!¹e¹i¹j¹º¹ã¹éº ºº ºaºkºqº½»»P»v»|»Ê¼¼g¼„¼Š¼Ö½&½A½G½W½]½£½Ñ¾¾`¾…¾ê¿¿b¿µ¿ñÀ@,À@GÀ@OÀ@sÀ@ÈÀ@ÎÀ@ßÀ@ãÀ@äÀA4ÀACÀAIÀAlÀArÀA€ÀA»ÀAÅÀAËÀBÀB^ÀBªÀBÐÀBÖÀC$ÀCtÀC¾ÀCÄÀDÀD`ÀD{ÀD<>ÀDÍÀEÀE
ÀEÀE#ÀEsÀE¡ÀEãÀF.ÀF>ÀFcÀFÀF³ÀGÀG&ÀG3ÀGOÀGÀGÐÀH"ÀHwÀH®ÀHÔÀHîÀHûÀIÀI.ÀI„ÀI²ÀIÁÀIÍÀIÕÀIèÀIòÀJÀJÀJÀJeÀJ£ÀJ©ÀJ÷ÀKHÀK˜ÀKžÀKëÀL:ÀLƒÀL‰ÀL×ÀM ÀMjÀM<>ÀM“ÀMâÀMþÀNUÀN¯ÀNÌÀO&ÀOhÀOpÀOÀOåÀOëÀOýÀPÀPÀPQÀPnÀPtÀP·ÀQÀQ)ÀQNÀQjÀQ†ÀQ­ÀQÌÀR(ÀR/ÀRUÀRVÀR¥ÀRôÀSCÀSˆÀS·ÀS¾ÀSþÀT$ÀTcÀT„ÀT¯ÀTòÀUÀU5ÀUQÀUgÀUÀUÁÀUÊÀUìÀUíÀV&ÀVJÀVzÀV€ÀV<>ÀV¹ÀVÜÀVâÀWÀWÀW$ÀWnÀWrÀWtÀWuÀWÆÀXÀX8ÀXœÀX<>ÀXÁÀXâÀXãÀXïÀY!ÀYFÀYJÀYLÀYMÀYyÀY}ÀYÇÀYòÀYöÀZ;ÀZˆÀZŒÀZÝÀ[À[BÀ[vÀ[•À[¢À[£À[çÀ[íÀ\;À\ˆÀ\ÖÀ]À] À]!À]^À]<5D>À]«À]¬À]ûÀ^=À^CÀ^”À^ËÀ_À_=À_sÀ_ªÀ_áÀ_æÀ_çÀ`À`SÀ`TÀ``À`›À`œÀ`¨À`ÌÀ`ÍÀ`ÙÀa
Àa.Àa/Àa;ÀaŠÀaÀa—ÀaÅÀaÆÀaÒÀbÀb[Àb\ÀbÀb±ÀbæÀbçÀc/ÀcJÀc™ÀcÆÀdÀdKÀdŒÀd<>ÀdÀÀdßÀeÀebÀe®ÀeäÀfÀfÀfÀfxÀf—ÀfÈÀfÌÀfÍÀfÚÀfæÀg/ÀgmÀgŒÀg¼ÀhÀhÀh#Àh$Àh1Àh=Àh`Àh—ÀhÂÀi
ÀiUÀiÀiÀi—Ài¤Ài°ÀiÅÀiêÀj Àj&Àj=ÀjAÀjBÀjOÀj[Àj|ÀjÉÀjáÀk;ÀkRÀkuÀkyÀkzÀk¯ÀlÀlÀlÀlBÀlnÀl¸ÀlËÀlÑÀm5ÀmUÀm§Àm°ÀmðÀnÀn
Àn4Àn[Àn“Àn”ÀnäÀnèÀnéÀnöÀoÀo1ÀoWÀoXÀo<>Ào·ÀpÀp(Àp[Àp†Àp»ÀpéÀqÀq"ÀqVÀq†Àq¯ÀqúÀrÀrSÀr]ÀreÀržÀrÑÀr×ÀrØÀsÀsÀs#Às'Às(Às5ÀsAÀsTÀsyÀs¤Às±ÀsäÀtÀtÀtÀt/ÀtUÀtjÀtnÀtoÀt~ÀtÀt´ÀtµÀtÁÀtÎÀu Àu=Àu‡Àu<>ÀuÀuÀuÀÀuÁÀvÀv.ÀvaÀvbÀv·ÀvóÀw#ÀwHÀwIÀw_Àw{Àw|ÀwˆÀw•ÀwµÀxÀxÀxÀx-ÀxsÀxÁÀy ÀyIÀydÀyqÀyŽÀyªÀyìÀzÀzlÀzÑÀ{À{+À{\À{<7B>À{ÄÀ{óÀ|(À|nÀ|´À|úÀ}ZÀ}ŸÀ~À~GÀ~ŽÀ~£À~¶À~ÃÀ~áÀ§À¿À€$À€cÀ€€À€±À€äÀ<00>À<00><00><00>ÃÀ À‚¯À‚ôÀƒWÀƒœÀƒãÀƒøÀ ÀÀ„ À„&À„@À„fÀ„šÀ„òÀ„øÀ„üÀ„ýÀ… ÀÀ…<À…eÀ…sÀ…yÀ…›À…ÏÀ…çÀ†?À†pÀ†vÀ†zÀ†{À<>À<>À†ŸÀ†¾À†¿À†ñÀ À‡'À‡PÀ‡TÀ‡UÀ‡‰À‡ÓÀˆˆˆˆšÀˆµÀÀÀ‰2À‰8À‰<À‰=À‰sÀ‰ÂÀ‰îÀŠ
ÀŠÀŠÀŠ?ÀŠŽÀŠºÀŠÓÀŠîÀŠòÀŠóÀÀ‹”À‹ÝÀ‹ðÀ‹þÀŒÀŒ4ÀŒƒÀŒ¯ÀŒÄÀŒÙÀŒôÀ<00>À<00>À<00>À<00><00><00><00><00><00><00><00><00>„À<00>…À<00>ÕÀŽÀŽLÀŽaÀޤÀŽÄÀŽËÀŽÏÀŽÐÀ<00>À<00><00><00>´À<00>À<00><00><00>®ÀÀ‘ À‘ïÀÀ’ŸÀ’ÎÀ’ûÀÀÀ“NÀ“RÀ“SÀ<>À“ÉÀÀ”eÀ”ŒÀ”¿À”ÏÀ”×ÀÀ•gÀ•¼À•ÿÀ–ÄÀ–éÀÀ—UÀ—vÀ—ÎÀ—ÔÀ—ØÀ—ÙÀ˜ À˜˜„À˜ÖÀÀ™<À™BÀ™FÀ™GÀ™™À™¼ÀšÀš7ÀšhÀš¨Àš°Àš¶ÀšÈÀšÌÀšÍÀ À›…À›¸À›¿À›ÀÀ›êÀ›ùÀœAÀœPÀœWÀœ[Àœ\ÀœmÀœnÀœ{Àœ‡Àœ®ÀœÍÀ<00><00><00><00>¡À<00>ÌÀ<00>ÓÀž1ÀžuÀž›Àž³ÀžÍÀžäÀŸÀŸ8ÀŸ\ÀŸ…ÀŸ±ÀŸîÀ 
À   <>À ¾À þÀ¡
À¡À¡%À¡.À¡5À¡6À¡^À¡žÀ¡ØÀ¡ùÀ¢À¢;À¢À¢œÀ¢ÕÀ¢îÀ¢ùÀ£À£À£ À£5À£6À£yÀ£ÈÀ£åÀ¤À¤&À¤BÀ¤`À¤wÀ¤€À¤†À¤‡À¤šÀ¤žÀ¤ŸÀ¤íÀ¥9À¥À¥®À¥ÉÀ¥åÀ¦ À¦+À¦‡À¦­À¦´À¦ùÀ§À§#À§=À§QÀ§yÀ§§À§®À§æÀ§êÀ§ëÀ§øÀ¨À¨IÀ¨tÀ¨ÄÀ©À©À©!À©"À©UÀ©YÀ©–À©ØÀªÀª9ÀªRÀªnÀª‹Àª¤ÀªªÀª«ÀªÊÀªëÀ«À«'À«(À«4À«ŒÀ«ŽÀ«<>À«ãÀ¬$À¬%À¬1À¬FÀ¬]À¬<>À¬¸À¬ÙÀ¬àÀ¬äÀ¬åÀ¬ñÀ­­­ˆÀ­½À­ÃÀ­ÇÀ­ÈÀ­ÔÀ­çÀ® À®À®"À®#À®/À®VÀ®uÀ®˜À®¼À®×À®ÞÀ®âÀ®äÀ®åÀ¯4À¯_À¯cÀ¯³À°À°OÀ°_À°¿À± À±<À±lÀ±{À±ºÀ±ÄÀ±öÀ±úÀ±ûÀ²;À²nÀ²oÀ²¦À²èÀ²éÀ³À³8À³_À³‹À³µÀ³¶À´À´´´´´¤À´ÂÀ´ÐÀ´ÖÀµ Àµ"ÀµTÀµXÀµYÀµ£ÀµãÀÀ¶&À¶4À¶:À¶]À¶§À¶ÌÀ¶ÜÀ¶äÀ·
À·#À·gÀ·kÀ·lÀ·¯À·ÑÀ·×À¸¸¸¸›À¸êÀ¹7À¹ˆÀ¹™À¹ŸÀ¹íÀº=ÀºŽÀºÍÀ»)À»ƒÀ»„À»<>À»°À»ïÀ¼"À¼hÀ¼oÀ¼ À¼æÀ¼íÀ½À½À½À½ À½dÀ½“À½ÀÀ½íÀ¾À¾BÀ¾pÀ¾tÀ¾uÀ¾<>À¾ÏÀ¿-À¿ZÀ¿²À¿¸À¿ùÀÀ3ÀÀ<>ÀÀÙÀÀôÀÁÀÁÀÁGÀÁjÀÁ’ÀÁ›ÀÁ¨ÀÂÀÂTÀÂoÀŠÀ“ÀÂÄÀÂéÀÃÀÃÀà ÀÃkÀÃlÀþÀÄÀÄ!ÀÄNÀÄtÀĉÀÄ<>ÀÄ·ÀÅÀÅ)ÀÅQÀÅYÀÅ_ÀÅrÀÅvÀÅwÀÅ·ÀÅ÷ÀÆ;ÀÆdÀƵÀÇÀÇRÀÇ¢ÀÇÜÀÈ ÀÈÀÈhÀȈÀÈ<>ÀÈ–ÀÈ×ÀÉ2ÀÉ6ÀÉ7ÀÉoÀÉ©ÀɯÀÉþÀÊ4ÀÊ‚ÀÊÄÀÊðÀËÀË2ÀË9ÀËzÀ˺ÀËòÀÌÀÌhÀÌÀÀÌåÀÍ'À͉ÀÍÉÀÍáÀÎ!ÀÎ*ÀÎoÀ΂ÀΪÀγÀιÀÎãÀÏ)ÀÏÀϤÀÏâÀÐBÀЀÀИÀÐÔÀÐÝÀÑ ÀÑ3ÀÑYÀÑbÀÑhÀÑlÀÑmÀÑyÀѼÀÑçÀÒ(ÀÒ|ÀÒ¨ÀÒÔÀÒÚÀÒíÀÒñÀÒòÀÒþÀÓCÀÓ™ÀÓÛÀÔÀÔÀÔÀÔÀÔ)ÀÔƒÀÔÔÀÕ!ÀÕpÀÕ¯ÀÖÀÖ<ÀÖ\ÀÖbÀÖuÀÖyÀÖzÀÖ†ÀÖæÀ×ׇÀ×ÖÀØÀØzÀØ¢ÀØÂÀØÈÀØÛÀØßÀØàÀÙÀÙ%ÀÙCÀÙcÀÙwÀÙ±ÀÙâÀÚ%ÀÚ2ÀÚnÀÚ¡ÀÚæÀÚìÀÛÀÛ(ÀÛ.ÀÛxÀÛÀÀÜÀÜ"ÀÜ<ÀÜCÀܨÀÜËÀÜèÀÝ0ÀÝ‚ÀÝÖÀÝèÀÝòÀÞ$ÀÞuÀÞ‡ÀÞ‘ÀÞ½ÀßÀßÀß"ÀßBÀß„ÀßÏÀßáÀßëÀàÀà`ÀàrÀà|Àà¦ÀàïÀàùÀá Àá(ÀápÀáÂÀâÀâ(Àâ2ÀâdÀâµÀâÇÀâÑÀâýÀãHÀãRÀãbÀã<>ÀãÃÀäÀä Àä*ÀäUÀäŸÀä±Àä»ÀäåÀå.Àå8ÀåHÀåNÀåRÀåSÀå<>ÀåÏÀæÀæZÀæƒÀæ‡ÀæˆÀæÆÀæâÀçÀç,ÀçSÀçZÀç^Àç_ÀçkÀçÊÀçäÀèÀèbÀèŠÀè·ÀéÀé,ÀéeÀé¡ÀéÉÀêÀêeÀêŠÀêÆÀëÀë-ÀëWÀë†ÀëÓÀì"Àì(ÀìkÀìoÀìpÀì|Àì¯ÀìãÀí:ÀínÀí–ÀíèÀî!ÀîdÀî²ÀîÍÀîèÀîñÀïÀïbÀïkÀïÃÀïùÀðFÀðLÀðŸÀðÑÀð÷ÀñGÀñ€ÀñÃÀò
Àò(ÀòCÀòLÀò±ÀóÀó>Àó‰Àó<>Àó“Àó”Àó Àó³ÀóâÀôÀô3ÀôWÀôlÀôpÀôrÀôsÀôµÀôçÀõ,ÀõrÀõ¹ÀöÀöÀöÀöÀöJÀöˆÀöŒÀöÇÀ÷À÷\À÷‡À÷ºÀ÷¾ÀøÀø\Àø¬ÀøôÀù
ÀùLÀùgÀùvÀù’Àù¼ÀùÔÀùúÀú ÀúQÀúRÀúsÀú˜Àú¹ÀúÌÀúÍÀúÙÀûÀû@ÀûZÀû<>Àû¾ÀûÐÀû×ÀûÛÀûÜÀûèÀü?ÀüPÀüˆÀüœÀü¸ÀüéÀüíÀüïÀüðÀý&ÀýAÀýgÀý‘Àý©ÀýÏÀýåÀþÀþ;ÀþlÀþ‚Àþ¶ÀþºÀþ»ÀÿÀÿ,ÀÿHÀÿoÀÿ<>Àÿ›Àÿ¡ÀÿÙÀÿðÀ¼ÀÜÀÀŒÀ<01>À‘ÀžÀŸÀÕÀñÀÀ”À˜À™ÀÉÀóÀÀÂÀôÀÀ‚À®ÀäÀÀ¦ÀÛÀãÀéÀíÀîÀ À ÀÀ—À<06>ÀùÀÀ³À´ÀÐÀÀ‘ÀÒÀïÀþÀ ‰À ‘À —À ÃÀ
À




‹À
§À
¾À
ÂÀ
ÄÀ
ÅÀ À    šÀ ›À §À ÑÀ èÀ ìÀ íÀ ùÀ         €À ŒÀ ±À ³À ´À ÄÀ ÅÀ
À


•À
ÔÀ
ÚÀ˜À·À½À
À³ÀíÀóÀ<10>À•À«À¬ÀôÀÀ ÀÀÀ¡À¸À¼À
À<12>À×ÀèÀìÀ†À¾ÀÂÀÐÀÔÀÀ§ÀµÀíÀŠÀ­À¼ÀáÀÀ„À¿ÀõÀ<17>ÀÃÀÄÀüÀÀ–ÀÃÀÄÀúÀÀ’À½À¾À ÀÀªÀ°ÀÀÀÆÀÀ°À¶ÀÝÀÀÀ–ÀçÀ„ÀŠÀ±ÀÔÀÕÀÀÀ¢À¨ÀÏÀüÀýÀ À®À×ÀÝÀ À À À <20>À ÃÀ!À!bÀ!¢À!¨À!÷À"À"#À"3À"9À"…À"»À#À#>À#<23>À#ºÀ#¾À#¿À$À$À$$À$GÀ$MÀ$[À$²À$¼À$ÂÀ%À%RÀ%£À%ãÀ%éÀ&9À&}À&ƒÀ&ÔÀ&óÀ&ùÀ' À'À'\À'©À'ëÀ(8À(HÀ(mÀ(¥À(½À)À)NÀ)[À)wÀ)ÊÀ*À*kÀ*»À*áÀ*ûÀ+À+À+À+/À+9À+VÀ+ZÀ+\À+]À+—À+›À+ìÀ,<À,JÀ,NÀ,›À,áÀ-)À-lÀ-žÀ-ìÀ.À.PÀ.¯À/À/À/CÀ/IÀ/„À/ŠÀ/ØÀ/÷À0"À0`À0À0šÀ0À0ÏÀ0ÕÀ1À1À1fÀ1…À1²À1òÀ2*À2.À2/À2<À2HÀ2]À2À2ÊÀ2ÐÀ3À3AÀ3GÀ3^À3bÀ3cÀ3pÀ3|À3¹À3ßÀ4!À4"À42À4‡À4ÁÀ5À52À5gÀ5¢À5ÒÀ5þÀ6<À6…À6¢À6×À7À7À7À7 À72À7À7ÇÀ8À88À8oÀ8¬À8ÞÀ9 À9LÀ9•À9²À9éÀ:%À:-À:3À:7À:8À:EÀ:QÀ:xÀ:„À:ÒÀ;À;"À;.À;€À;ÍÀ;ÔÀ;ÕÀ<À<,À<RÀ<|À<žÀ<ÔÀ=
À=dÀ=•À=«À=ÞÀ>À>6À>oÀ>ªÀ>êÀ?À?ZÀ?‹À?ÜÀ@À@8À@sÀ@²ÀAÀAHÀAbÀAÀAÞÀAýÀB:ÀByÀB¿ÀBøÀC7ÀClÀCÃÀDÀD*ÀD7ÀDBÀDKÀDRÀDSÀD˜ÀDÑÀDÒÀE,ÀE0ÀE1ÀE>ÀEJÀE]ÀE‰ÀE·ÀEÌÀEÐÀEÒÀEÓÀF ÀFCÀF€ÀF£ÀFâÀG ÀG7ÀGQÀGWÀGXÀG˜ÀG™ÀG¥ÀGíÀGïÀGðÀHÀHPÀHrÀH<>ÀH¢ÀHÆÀHèÀHþÀIÀI)ÀIHÀIhÀI…ÀIžÀI¹ÀIôÀJMÀJNÀJ<>ÀJ³ÀJ´ÀJÀÀKÀKÀKÀKPÀKƒÀKÃÀKñÀL8ÀL9ÀLMÀLgÀLhÀL£ÀL¯ÀLÞÀLùÀMÀM<ÀM[ÀM·ÀMÝÀMäÀMðÀMýÀNNÀNŸÀNÆÀNÍÀNòÀNöÀN÷ÀO#ÀOGÀO€ÀOÑÀPÀP&ÀPsÀP€ÀP™ÀPŸÀP£ÀP¤ÀP°ÀPâÀQÀQ,ÀQ;ÀQjÀQžÀQÄÀRÀR)ÀR`ÀRfÀRŠÀRŽÀR<>ÀRÀRÏÀRüÀS ÀSFÀSUÀS{ÀSžÀSØÀTÀT?ÀTsÀT<>ÀTÒÀTðÀUÀUFÀU„ÀUÀÀUàÀVÀVKÀV_ÀV}ÀVÍÀV×ÀVÝÀWÀWÀWÀWÀWIÀW|ÀW¬ÀWØÀWþÀX,ÀXXÀX_ÀX”ÀXÄÀXðÀYÀYDÀYpÀYwÀYxÀYœÀYÂÀYøÀZ.ÀZ>ÀZdÀZ€ÀZÇÀZýÀ[
À[AÀ[vÀ[«À[ÜÀ\ À\7À\sÀ\¤À\ÓÀ]
À]À]À]4À]EÀ]tÀ]»À]×À]öÀ^=À^MÀ^gÀ^‘À^—À^ÉÀ^ÍÀ^ÎÀ^ÚÀ_
À_%À_<À_wÀ_²À_âÀ`À`9À`@À`rÀ`®À`ÉÀ`ÐÀ`ÑÀ`õÀaÀa*ÀaYÀa<>Àa³Àa÷ÀaýÀb,Àb0Àb1Àb=ÀbZÀbuÀbŒÀb°ÀbÖÀbåÀcÀcHÀcnÀc Àc¦ÀcÅÀcÉÀcÊÀcÖÀcöÀdÀd@ÀdÀd¦ÀdÇÀd×ÀeÀe:Àe`ÀeuÀeÄÀfÀf[ÀfªÀfÒÀgÀgrÀgÊÀgúÀhÀh@ÀhoÀh ÀhËÀhüÀi>Ài€ÀiÂÀjÀj_Àj¡Àj²ÀjÁÀjÎÀk ÀknÀk°ÀkÏÀkïÀlÀlUÀl³Àl¿ÀlÉÀlÙÀlßÀlãÀläÀlðÀm,ÀmSÀmzÀm¨ÀmÑÀmØÀnÀnDÀnÀn•Àn—Àn˜ÀnÇÀnüÀo Ào/ÀoSÀowÀo™Ào¯ÀoÂÀoÚÀoùÀpÀp6ÀpOÀpjÀp¥ÀqÀqÀq7ÀqjÀqkÀqwÀqËÀqÍÀqÎÀr
Àr8Àr9ÀrnÀr¬ÀrßÀs!Às"Às.ÀsOÀs€ÀsÔÀs÷ÀsûÀsüÀtJÀtÀtäÀtðÀuÀu:ÀuVÀu}ÀuœÀuøÀvÀv%ÀvLÀvjÀvzÀv˜Àv´ÀvÊÀvôÀvýÀw.Àw>Àw\ÀwxÀwŽÀw¸ÀwÁÀwÈÀwÉÀwöÀwúÀwûÀxÀx'ÀxKÀxqÀx¸Àx×ÀxøÀyÀy7ÀykÀyÀy¦ÀyñÀz@ÀzÀzÝÀ{-À{wÀ{³À|À|SÀ|•À|´À|ÔÀ}À}:À}˜À}¤À}®À}¾À}ÄÀ}ÈÀ}ÉÀ}ÕÀ~À~8À~_À~<7E>À~¶À~½ÀÀ|<01>/// @docImport 'package:flutter/material.dart';
///
/// @docImport 'page_storage.dart';
/// @docImport 'page_view.dart';
/// @docImport 'scroll_metrics.dart';
/// @docImport 'scroll_notification.dart';
/// @docImport 'scroll_view.dart';
/// @docImport 'single_child_scroll_view.dart';
/// @docImport 'two_dimensional_scroll_view.dart';
/// @docImport 'two_dimensional_viewport.dart';/DZa‚³‚܃ƒ.ƒCƒ\ƒ|ƒ—ƒ¼ƒ×ƒý„@„^„<>„¼„Þ„ÿ…"…A…U…n…”…¢“‹“•
“œ“œ “¢“«“«'“°“ؓؓݓí“í “ò“ÿ“ÿ
”"”"”'”@”@!”E”g”g”l”„”„0”‰”º”º”¿”Ò”Ò”×”ë”ë!”ð-“À“͓Δ\”<>”®”¯”ÿ••)•8•9•H•N•„•j•b•O•e•€•m•ƒ“`“`&"/// Creates a widget that scrolls. —õ•Šx—õ‚>/// {@template flutter.widgets.Scrollable.axisDirection}
/// The direction in which this widget scrolls.
///
/// For example, if the [Scrollable.axisDirection] is [AxisDirection.down],
/// increasing the scroll position will cause content below the bottom of the
/// viewport to become visible through the viewport. Similarly, if the
/// axisDirection is [AxisDirection.right], increasing the scroll position
/// will cause content beyond the right edge of the viewport to become visible
/// through the viewport.
///
/// Defaults to [AxisDirection.down].
/// {@endtemplate}›Þ˜ƒá›Þƒ–/// {@template flutter.widgets.Scrollable.controller}
/// An object that can be used to control the position to which this widget is
/// scrolled.
///
/// A [ScrollController] serves several purposes. It can be used to control
/// the initial scroll position (see [ScrollController.initialScrollOffset]).
/// It can be used to control whether the scroll view should automatically
/// save and restore its scroll position in the [PageStorage] (see
/// [ScrollController.keepScrollOffset]). It can be used to read the current
/// scroll position (see [ScrollController.offset]), or change it (see
/// [ScrollController.animateTo]).
///
/// If null, a [ScrollController] will be created internally by [Scrollable]
/// in order to create and manage the [ScrollPosition].
///
/// See also:
///
/// * [Scrollable.ensureVisible], which animates the scroll position to
/// reveal a given [BuildContext].
/// {@endtemplate}¡Hí…b¡H…/// {@template flutter.widgets.Scrollable.physics}
/// How the widgets should respond to user input.
///
/// For example, determines how the widget continues to animate after the
/// user stops dragging the scroll view.
///
/// Defaults to matching platform conventions via the physics provided from
/// the ambient [ScrollConfiguration].
///
/// If an explicit [ScrollBehavior] is provided to
/// [Scrollable.scrollBehavior], the [ScrollPhysics] provided by that behavior
/// will take precedence after [Scrollable.physics].
///
/// The physics can be changed dynamically, but new physics will only take
/// effect if the _class_ of the provided object changes. Merely constructing
/// a new instance with a different configuration is insufficient to cause the
/// physics to be reapplied. (This is because the final object used is
/// generated dynamically, which can be relatively expensive, and it would be
/// inefficient to speculatively create this object each frame to see if the
/// physics should be updated.)
///
/// See also:
///
/// * [AlwaysScrollableScrollPhysics], which can be used to indicate that the
/// scrollable should react to scroll requests (and possible overscroll)
/// even if the scrollable's contents fit without scrolling being necessary.
/// {@endtemplate}£F¡T£F<C2A3>Ç/// Builds the viewport through which the scrollable content is displayed.
///
/// A typical viewport uses the given [ViewportOffset] to determine which part
/// of its content is actually visible through the viewport.
///
/// See also:
///
/// * [Viewport], which is a viewport that displays a list of slivers.
/// * [ShrinkWrappingViewport], which is a viewport that displays a list of
/// slivers and sizes itself based on the size of the slivers.¦£Zئ‚‰/// {@template flutter.widgets.Scrollable.incrementCalculator}
/// An optional function that will be called to calculate the distance to
/// scroll when the scrollable is asked to scroll via the keyboard using a
/// [ScrollAction].
///
/// If not supplied, the [Scrollable] will scroll a default amount when a
/// keyboard navigation key is pressed (e.g. pageUp/pageDown, control-upArrow,
/// etc.), or otherwise invoked by a [ScrollAction].
///
/// If [incrementCalculator] is null, the default for
/// [ScrollIncrementType.page] is 80% of the size of the scroll window, and
/// for [ScrollIncrementType.line], 50 logical pixels.
/// {@endtemplate}¨p¦7M¨p/// {@template flutter.widgets.scrollable.excludeFromSemantics}
/// Whether the scroll actions introduced by this [Scrollable] are exposed
/// in the semantics tree.
///
/// Text fields with an overflow are usually scrollable to make sure that the
/// user can get to the beginning/end of the entered text. However, these
/// scrolling actions are generally not exposed to the semantics layer.
/// {@endtemplate}
///
/// See also:
///
/// * [GestureDetector.excludeFromSemantics], which is used to accomplish the
/// exclusion.ª*¨‰<C2A8>°ª*<2A>v/// {@template flutter.widgets.scrollable.hitTestBehavior}
/// Defines the behavior of gesture detector used in this [Scrollable].
///
/// This defaults to [HitTestBehavior.opaque] which means it prevents targets
/// behind this [Scrollable] from receiving events.
/// {@endtemplate}
///
/// See also:
///
/// * [HitTestBehavior], for an explanation on different behaviors.­$ª>‚ø­$‚¼/// The number of children that will contribute semantic information.
///
/// The value will be null if the number of children is unknown or unbounded.
///
/// Some subtypes of [ScrollView] can infer this value automatically. For
/// example [ListView] will use the number of widgets in the child list,
/// while the [ListView.separated] constructor will use half that amount.
///
/// For [CustomScrollView] and other types which do not receive a builder
/// or list of widgets, the child count must be explicitly provided.
///
/// See also:
///
/// * [CustomScrollView], for an explanation of scroll semantics.
/// * [SemanticsConfiguration.scrollChildCount], the corresponding semantics property.°ð­ƒo°ðƒ/// {@template flutter.widgets.scrollable.dragStartBehavior}
/// Determines the way that drag start behavior is handled.
///
/// If set to [DragStartBehavior.start], scrolling drag behavior will
/// begin at the position where the drag gesture won the arena. If set to
/// [DragStartBehavior.down] it will begin at the position where a down
/// event is first detected.
///
/// In general, setting this to [DragStartBehavior.start] will make drag
/// animation smoother and setting it to [DragStartBehavior.down] will make
/// drag behavior feel slightly more reactive.
///
/// By default, the drag start behavior is [DragStartBehavior.start].
///
/// See also:
///
/// * [DragGestureRecognizer.dragStartBehavior], which gives an example for
/// the different behaviors.
///
/// {@endtemplate}³\±c³\+/// {@template flutter.widgets.scrollable.restorationId}
/// Restoration ID to save and restore the scroll offset of the scrollable.
///
/// If a restoration id is provided, the scrollable will persist its current
/// scroll offset and restore it during state restoration.
///
/// The scroll offset is persisted in a [RestorationBucket] claimed from
/// the surrounding [RestorationScope] using the provided restoration ID.
///
/// See also:
///
/// * [RestorationManager], which explains how state restoration works in
/// Flutter.
/// {@endtemplate}µ§³nGµ§‚ /// {@template flutter.widgets.scrollable.scrollBehavior}
/// A [ScrollBehavior] that will be applied to this widget individually.
///
/// Defaults to null, wherein the inherited [ScrollBehavior] is copied and
/// modified to alter the viewport decoration, like [Scrollbar]s.
///
/// [ScrollBehavior]s also provide [ScrollPhysics]. If an explicit
/// [ScrollPhysics] is provided in [physics], it will take precedence,
/// followed by [scrollBehavior], and then the inherited ancestor
/// [ScrollBehavior].
/// {@endtemplate}·µº<C2B5>m·<1B>G/// {@macro flutter.material.Material.clipBehavior}
///
/// Defaults to [Clip.hardEdge].
///
/// This is passed to decorators in [ScrollableDetails], and does not directly affect
/// clipping of the [Scrollable]. This reflects the same [Clip] that is provided
/// to [ScrollView.clipBehavior] and is supplied to the [Viewport].·,·,€—·˜\/// The axis along which the scroll view scrolls.
///
/// Determined by the [axisDirection].·Ç·È·Ç·Ç?·ã¸/¸/&¸K¸
¸ ¸
¸
<EFBFBD>^¸½ó½ó¾¾
¾
¾¹l¹l‡v½ë„0/// The state from the closest instance of this class that encloses the given
/// context, or null if none is found.
///
/// Typical usage is as follows:
///
/// ```dart
/// ScrollableState? scrollable = Scrollable.maybeOf(context);
/// ```
///
/// Calling this method will create a dependency on the [ScrollableState]
/// that is returned, if there is one. This is typically the closest
/// [Scrollable], but may be a more distant ancestor if [axis] is used to
/// target a specific [Scrollable].
///
/// Using the optional [Axis] is useful when Scrollables are nested and the
/// target [Scrollable] is not the closest instance. When [axis] is provided,
/// the nearest enclosing [ScrollableState] in that [Axis] is returned, or
/// null if there is none.
///
/// This finds the nearest _ancestor_ [Scrollable] of the `context`. This
/// means that if the `context` is that of a [Scrollable], it will _not_ find
/// _that_ [Scrollable].
///
/// See also:
///
/// * [Scrollable.of], which is similar to this method, but asserts
/// if no [Scrollable] ancestor is found.ÀE½ÀÀÀEÔÀ
ÀÀ@æÀ@æ‰,ÀEº„/// The state from the closest instance of this class that encloses the given
/// context.
///
/// Typical usage is as follows:
///
/// ```dart
/// ScrollableState scrollable = Scrollable.of(context);
/// ```
///
/// Calling this method will create a dependency on the [ScrollableState]
/// that is returned, if there is one. This is typically the closest
/// [Scrollable], but may be a more distant ancestor if [axis] is used to
/// target a specific [Scrollable].
///
/// Using the optional [Axis] is useful when Scrollables are nested and the
/// target [Scrollable] is not the closest instance. When [axis] is provided,
/// the nearest enclosing [ScrollableState] in that [Axis] is returned.
///
/// This finds the nearest _ancestor_ [Scrollable] of the `context`. This
/// means that if the `context` is that of a [Scrollable], it will _not_ find
/// _that_ [Scrollable].
///
/// If no [Scrollable] ancestor is found, then this method will assert in
/// debug mode, and throw an exception in release mode.
///
/// See also:
///
/// * [Scrollable.maybeOf], which is similar to this method, but returns null
/// if no [Scrollable] ancestor is found.ÀN/ÀN/ÀN<ÀNFÀNF
ÀNLÀJÀJ…êÀN ƒÅ/// Provides a heuristic to determine if expensive frame-bound tasks should be
/// deferred for the [context] at a specific point in time.
///
/// Calling this method does _not_ create a dependency on any other widget.
/// This also means that the value returned is only good for the point in time
/// when it is called, and callers will not get updated if the value changes.
///
/// The heuristic used is determined by the [physics] of this [Scrollable]
/// via [ScrollPhysics.recommendDeferredLoading]. That method is called with
/// the current [ScrollPosition.activity]'s [ScrollActivity.velocity].
///
/// The optional [Axis] allows targeting of a specific [Scrollable] of that
/// axis, useful when Scrollables are nested. When [axis] is provided,
/// [ScrollPosition.recommendDeferredLoading] is called for the nearest
/// [Scrollable] in that [Axis].
///
/// If there is no [Scrollable] in the widget tree above the [context], this
/// method returns false.ÀQRÀQRÀQ_ÀQnÀQnÀQuÀQŠÀQŠ!ÀQ“ÀQ±ÀÀÀQÐÀQÐVÀ
ÀQ<>ÀQžÀQ¦ÀQ§ÀQ¿ÀQÅÀQÆÀRÀRÀRÀPÀP‡mÀQ?<3F>/// Scrolls all scrollables that enclose the given context so as to make the
/// given context visible.
///
/// If a [Scrollable] enclosing the provided [BuildContext] is a
/// [TwoDimensionalScrollable], both vertical and horizontal axes will ensure
/// the target is made visible.ÀNk“:Š+/// A widget that manages scrolling in one dimension and informs the [Viewport]
/// through which the content is viewed.
///
/// [Scrollable] implements the interaction model for a scrollable widget,
/// including gesture recognition, but does not have an opinion about how the
/// viewport, which actually displays the children, is constructed.
///
/// It's rare to construct a [Scrollable] directly. Instead, consider [ListView]
/// or [GridView], which combine scrolling, viewporting, and a layout model. To
/// combine layout models (or to use a custom layout mode), consider using
/// [CustomScrollView].
///
/// The static [Scrollable.of] and [Scrollable.ensureVisible] functions are
/// often used to interact with the [Scrollable] widget inside a [ListView] or
/// a [GridView].
///
/// To further customize scrolling behavior with a [Scrollable]:
///
/// 1. You can provide a [viewportBuilder] to customize the child model. For
/// example, [SingleChildScrollView] uses a viewport that displays a single
/// box child whereas [CustomScrollView] uses a [Viewport] or a
/// [ShrinkWrappingViewport], both of which display a list of slivers.
///
/// 2. You can provide a custom [ScrollController] that creates a custom
/// [ScrollPosition] subclass. For example, [PageView] uses a
/// [PageController], which creates a page-oriented scroll position subclass
/// that keeps the same page visible when the [Scrollable] resizes.
///
/// ## Persisting the scroll position during a session
///
/// Scrollables attempt to persist their scroll position using [PageStorage].
/// This can be disabled by setting [ScrollController.keepScrollOffset] to false
/// on the [controller]. If it is enabled, using a [PageStorageKey] for the
/// [key] of this widget (or one of its ancestors, e.g. a [ScrollView]) is
/// recommended to help disambiguate different [Scrollable]s from each other.
///
/// See also:
///
/// * [ListView], which is a commonly used [ScrollView] that displays a
/// scrolling, linear list of child widgets.
/// * [PageView], which is a scrolling list of child widgets that are each the
/// size of the viewport.
/// * [GridView], which is a [ScrollView] that displays a scrolling, 2D array
/// of child widgets.
/// * [CustomScrollView], which is a [ScrollView] that creates custom scroll
/// effects using slivers.
/// * [SingleChildScrollView], which is a scrollable widget that has a single
/// child.
/// * [ScrollNotification] and [NotificationListener], which can be used to watch
/// the scroll position without using a [ScrollController].ÀX@ÀXPÀXRÀXRÀX`ÀXlÀXlÀXzÀX„ÀX„ÀX“ÀX:ÀX:aÀXµÀÀÀXØÀÀÀY ÀY ÀYÀXåÀXæÀXåÀXådÀÀXÀX<07>DÀX
À]À]À]À]¡À]ÀÀaÀaÀaÀb@ÀbWÀbXÀb'Àb PÀb'ÀbrÀb^"ÀbrÀbÀb„+ÀbÀbÊÀb³1ÀÀt§Àt°Àt±ÀtÀt<>1ÀtÀvÀvÀv)ÀvÀv*Àv+ÀuìÀuÃiÀÀvTÀv]Àv^Àv@Àv0/Àv@ÀvùÀwÀw ÀvÿÀwÀwÀwÀvÝÀv¹hÀÀwAÀw*Àw%!Àw*ÀwQÀwKÀwQÀwgÀwaÀwgÀ†˜À†’ À†˜À†·À†¡À†·
À[¥À<>]À<>(/// The manager for this [Scrollable] widget's viewport position.
///
/// To control what kind of [ScrollPosition] is created for a [Scrollable],
/// provide it with custom [ScrollController] that creates the appropriate
/// [ScrollPosition] in its [ScrollController.createScrollPosition] method.À]#À]#lÀ]s:/// The resolved [ScrollPhysics] of the [ScrollableState].À]®À7À<>/// An [Offset] that represents the absolute distance from the origin, or 0,
/// of the [ScrollPosition] expressed in the associated [Axis].
///
/// Used by [EdgeDraggingAutoScroller] to progress the position forward when a
/// drag gesture reaches the edge of the [Viewport].À_éÀ_éiÀÀ`VÀ`WÀ`VÀ`VDÀ`tÀ`žÀ`ŸÀ`žÀ`ž-ÀÀ`ÏÀ`ÐÀ`ÏÀ`Ï=ÀÀa1Àa2Àa1Àa1XÀaOÀa<>ÀaŽÀa<>Àa<>7ÀÀaÈÀaÉÀaÈÀaÈ>ÀÀc1Àc1ƒšÀc6ÀfúÀÀg
ÀgÀgÀgÀfÏÀfÐÀfÜÀfÝÀfÏÀ<66>SÀÀhOÀhO
ÀhVÀh&Àh'Àh3Àh4Àh&Àh&<26>oÀhDÀi™ÀišÀi¦Ài§Ài™Ài™€§ÀÀjDÀjEÀjQÀjRÀjDÀjD<6A>4ÀjbÀk—Àk—ÀÀk|Àk|ƒkÀk<>ÀoÀoÀo$ÀnëÀnìÀnøÀnùÀnëÀnë„;Ào Às*Às+Às7Às8Às*Às*<2A>CÀsHÀtéÀÀÀt·Àt¸ÀtÃÀtÄÀt·Àt·€ÙÀÀw§À
ÀÀw~ÀwÀwŠÀwÀw~Àw~<7E>}ÀÀ….À….
À…3À„ÿÀÀ À À„ÿÀ„ÿ<E2809E>zÀÀ†ÖÀ†ÖÀ†æÀ†ÁÀ†Á€’À†ÆÀ‡mÀ‡mÀ‡~À‡WÀ‡W<E280A1>äÀ‡\À‰VÀ‰VÀ‰hÀ‰?À‰?€ÎÀ‰DÀŠ%ÀŠ%ÀŠ4ÀŠÀŠ€àÀŠÀŠõÀŠõ‚ÀŠúÀ<00>À<00>+À<00>À<00><00>E+À<00>JÀŽ<ÀŽ< ÀŽCÀŽÀŽ€½ÀŽÀ<00>˜À<00>˜À<00>«À<00><00>xƒÙÀ<00>À“qÀ“qÀ“„À“UÀ“U„À“ZÀ—õÀ—õÀ˜À—ÛÀ—Û<E28094>jÀ—àÀ™oÀ™o&À™‰À™IÀ™I<E284A2>À™NÀšãÀšãÀšðÀšùÀšù ÀÀšÏÀšÏ<C5A1>ÀšÖÀœ–Àœ–Àœ£ÀœpÀœqÀœ}Àœ~ÀœpÀœpˆ-Àœ<>À¥²À¥²À¥¿À¥ÍÀ¥ÍÀ¥ÔÀ¥éÀ¥é!À¥òÀ¦À¦À¦À¦/À¦/VÀ¦MÀ¦‹À¦‹ À¦™
À¥àÀ¥ýÀ¦À¦À¦À¦$À¦%À¦_À¦|À¦}À¥<>À¥<>hÀ¥—À¨À¨&À¨;À§íÀ§îÀ§úÀ§ûÀ§íÀ§í<C2A7>1À¨ ÀYMÀYMÀÀ[<18>Ä/// State object for a [Scrollable] widget.
///
/// To manipulate a [Scrollable] widget's scroll position, use the object
/// obtained from the [position] property.
///
/// To be informed of when a [Scrollable] widget is scrolling, use a
/// [NotificationListener] to listen for [ScrollNotification] notifications.
///
/// This class is not intended to be subclassed. To specialize the behavior of a
/// [Scrollable], provide it with a [ScrollPhysics].ÀªÀª6Àª=Àª=ÀªKÀªVÀªVÀªdÀªrÀªrÀª€Àª<>Àª<>Àª<>ÀªÀª€”ÀªÃÀª­ÀªÃÀªáÀªÌÀªáÀªúÀªíÀªúÀ«À«"À«À«*À«+À«*À«*aÀ«WÀ©"À©"kÀ©Þ€µ/// A widget to handle selection for a scrollable.
///
/// This widget registers itself to the [registrar] and uses
/// [SelectionContainer] to collect selectables from its subtree.À¬À«å=À¬À¬'À¬(À¬'À¬'€¼À¬8À­À­%À­$À¬çÀ¬èÀ¬çÀ¬ç€ßÀ¬øÀ­ÊÀ­ËÀ­ÊÀ­ÊWÀ­ÛÀ®>À®>À®KÀ®%À®&À®%À®%€¼À®8À«<>À«<>ƒTÀ«•À°ÁÀ°æÀ°èÀ°èÀ°öÀ°ýÀ°ý À± À±0À±&À±2À±PÀ±BÀ±RÀ±jÀ±ÀÀ±tÀ±‘À±ƒÀ±“À°ÁÀ°Á<C2B0>8 À²kÀ²QÀ²=/À²QÀ²äÀ²¼À²¨>À²¼À³À²ëÀ³À³)À³
,À³)À³XÀ³?À³:#À³?À³iÀ³a(À³iÀ³•À³<>&À³•À´´À´ )À´À´´cÀ´rÀ»%À»&À»À»$À»À»ÀºíÀ·nƒ¹Àºíƒ@/// Stores the scroll offset when a scrollable receives the last
/// [SelectionEdgeUpdateEvent].
///
/// The stored scroll offset may be null if a scrollable never receives a
/// [SelectionEdgeUpdateEvent].
///
/// When a new [SelectionEdgeUpdateEvent] is dispatched to a selectable, this
/// updater checks the current scroll offset against the one stored in these
/// records. If the scroll offset is different, it synthesizes an opposite
/// [SelectionEdgeUpdateEvent] and dispatches the event before dispatching the
/// new event.
///
/// For example, if a selectable receives an end [SelectionEdgeUpdateEvent]
/// and its scroll offset in the records is different from the current value,
/// it synthesizes a start [SelectionEdgeUpdateEvent] and dispatches it before
/// dispatching the original end [SelectionEdgeUpdateEvent].À»À»€À»kÀ»~À»lÀ»xÀ»IÀ»+VÀ»IÀ´´7)À´JÀ´ŒÀ´ŒÀ´À´À´€ØÀ´ƒÀµåÀµå<C2B5>ÀµêÀ»†À»‡À»†À»†<C2BB>ŒÀ»—À½GÀ½GÀ½[À½À½À½À½<16>]À½2À¾­À¾­À¾ÆÀ¾wÀ¾xÀ¾wÀ¾w†þÀ¾“ÀÅžÀÅžÀÅ¥ÀÅyÀÅyƒ¼ÀÅ€ÀÊôÀÊôÀÊùÀËÀËÀËÀË ÀË,ÀÉ9ÀÉ9ˆ2ÀÊË<C38A>~/// Infers the [_currentDragStartRelatedToOrigin] and
/// [_currentDragEndRelatedToOrigin] from the geometry.
///
/// This method is called after a select word and select all event where the
/// selection is triggered by none drag events. The
/// [_currentDragStartRelatedToOrigin] and [_currentDragEndRelatedToOrigin]
/// are essential to handle future [SelectionEdgeUpdateEvent]s.ÀÑ›ÀÑ›ÀѳÀÑoÀÑpÀÑoÀÑo<C391><6F>ÀÑ‹ÀÓ!ÀÓ!ÀÓ:ÀÒôÀÒõÀÒôÀÒô<C392>'ÀÓÀÔ[ÀÔ[$ÀÔzÀÔÀÔ ÀÔÀÔYÀÔ;ÀÖ»ÀÖ»'ÀÖÝÀÖ|ÀÖ}ÀÖ|ÀÖ|bÀÖ˜ÀØóÀØó
ÀØøÀØâÀØâŒoÀØçÀåvÀåvÀå}ÀåUÀåU<C3A5>1ÀåZÀæ¤Àæ¤Àæ½ÀæŠÀ技ÓÀæ<>Àç›Àç›Àç¦Àç²Àç²ÀçÁÀçaÀçbÀçaÀça…
Àç}Àì–Àì–Àì¡ÀìrÀìsÀìrÀìr‡ ÀìƒÀó–Àó—Àó–Àó–€ÙÀó§À®åÀ®åÀÀ°e<C2B0>y/// This updater handles the case where the selectables change frequently, and
/// it optimizes toward scrolling updates.
///
/// It keeps track of the drag start offset relative to scroll origin for every
/// selectable. The records are used to determine whether the selection is up to
/// date with the scroll position when it sends the drag update event to a
/// selectable.ÀùTÀùdÀùkÀùk ÀùqÀùzÀùzÀùˆÀù–Àù–$Àù¤ÀùÀÀùÀÀùÎÀùØÀùØ ÀùæÀùþÀùþ Àú
ÀúÀúÀúNÀú4Àú,ÀúÀú/ÀúJÀú7ÀúMÀùNÀùN<C3B9>ÀúiÀúTÀúiÀú€Àúu!Àú€Àú¥ÀúšÀú¥ÀúÆÀú»ÀúÆÀûÀûÀûÀúÏÀúÐÀúÏÀúÏ<C3BA> ÀúòÀüÀüÀüÀüÀü#Àü/ÀûÞÀûßÀûÞÀûÞ<C3BB>ÀûïÀöÀö†æÀùƒ/// With [_ScrollSemantics] certain child [SemanticsNode]s can be
/// excluded from the scrollable area for semantics purposes.
///
/// Nodes, that are to be excluded, have to be tagged with
/// [RenderViewport.excludeFromScrolling] and the [RenderAbstractViewport] in
/// use has to add the [RenderViewport.useTwoPaneSemantics] tag to its
/// [SemanticsConfiguration] by overriding
/// [RenderObject.describeSemanticsConfiguration].
///
/// If the tag [RenderViewport.useTwoPaneSemantics] is present on the viewport,
/// two semantics nodes will be used to represent the [Scrollable]: The outer
/// node will contain all children, that are excluded from scrolling. The inner
/// node, which is annotated with the scrolling actions, will house the
/// scrollable children.Àý(Àý>ÀýEÀýE Àý]ÀýkÀýk$ÀýyÀý•Àý•Àý£Àý­Àý­ Àý»ÀýÓÀýÓÀýÞ
ÀýöÀýìÀýøÀþ!Àþ Àþ#ÀþVÀþBÀþXÀþsÀþxÀþ~ÀþyÀý(Àý(<28>Àÿ=Àÿ.Àÿ=ÀÃÀ¾ÀÃÀ˜ÀÀ˜ÀÜÀ×ÀÜÀÿÀðÀÿÀþ½Àþ½nÀÿB/// Whether this render object is excluded from the semantic tree.ÀLoÀ‰1/// Whether this node can be scrolled implicitly.À¡À¡3ÀªÀÿWÀÿWÀÿfÀÿJÀÿJ€þÀÿNÀùÀù
ÀþÀÞÀÞ€±ÀâÀ
À
ÀÀóÀó€¤À÷À²À²À¹À›À›€ÒÀ À¡À¡À¸Àq{ÀÀ:ÀHÀRÀiÀu À<06>ÀÀÀÀ„UÀÀ



gZÀ
xÀüðÀüð<C3BC>ÓÀüöÀ ‚À ƒÀ ‚À .À À    h1À |À ½À ½À ÅÀ <0B>À žÀ <0B>À <0B>NÀ ®À À  À À ïÀ ðÀ ïÀ ïQÀ À    D:À XÀ  %<25><>À +ÀÀª
À±À± À·ÀÀÀÀÀÎÀåÀåÀóÀÀÀÀ+À0ÀIÀNÀa!ÀfÀˆÀˆ5À<16>ÀÃÀÃ0ÀÈÀùÀù-Àþ
À¤À¸À¹ÀÜÀíÀîÀÀÀ ÀïÀï‚>€”/// Creates a widget that scrolls in two dimensions.
///
/// The [horizontalDetails], [verticalDetails], and [viewportBuilder] must not
/// be null. À­À1€<31>À­\/// How scrolling gestures should lock to one axis, or allow free movement
/// in both axes.ˡˮ۞ˡۃ/// The configuration of the horizontal [Scrollable].
///
/// These [ScrollableDetails] can be used to set the [AxisDirection],
/// [ScrollController], [ScrollPhysics] and more for the horizontal axis.À¬ÀÆ€õÀ¬€Å/// The configuration of the vertical [Scrollable].
///
/// These [ScrollableDetails] can be used to set the [AxisDirection],
/// [ScrollController], [ScrollPhysics] and more for the vertical axis.ÀÀ<>¯À`<60>i/// Builds the viewport through which the scrollable content is displayed.
///
/// A [TwoDimensionalViewport] uses two given [ViewportOffset]s to determine
/// which part of its content is actually visible through the viewport.
///
/// See also:
///
/// * [TwoDimensionalViewport], which is a viewport that displays a span of
/// widgets in both dimensions.ÀÀt€ŸÀd/// {@macro flutter.widgets.Scrollable.incrementCalculator}
///
/// This value applies in both axes.À<18>*À5<>/// {@macro flutter.widgets.scrollable.restorationId}
///
/// Internally, the [TwoDimensionalScrollable] will introduce a
/// [RestorationScope] that will be assigned this value. The two [Scrollable]s
/// within will then be given unique IDs within this scope.À¾ÀG€À¾e/// {@macro flutter.widgets.scrollable.excludeFromSemantics}
///
/// This value applies to both axes.À×€ŒÀT`/// {@macro flutter.widgets.scrollable.hitTestBehavior}
///
/// This value applies to both axes.ÀéÀh€Àéb/// {@macro flutter.widgets.scrollable.dragStartBehavior}
///
/// This value applies in both axes.ÀÿÀÀÿÀÿ]À+À"ëÀÀÀ`„]À"ãƒ2/// The state from the closest instance of this class that encloses the given
/// context, or null if none is found.
///
/// Typical usage is as follows:
///
/// ```dart
/// TwoDimensionalScrollableState? scrollable = TwoDimensionalScrollable.maybeOf(context);
/// ```
///
/// Calling this method will create a dependency on the closest
/// [TwoDimensionalScrollable] in the [context]. The internal [Scrollable]s
/// can be accessed through [TwoDimensionalScrollableState.verticalScrollable]
/// and [TwoDimensionalScrollableState.horizontalScrollable].
///
/// Alternatively, [Scrollable.maybeOf] can be used by providing the desired
/// [Axis] to the `axis` parameter.
///
/// See also:
///
/// * [TwoDimensionalScrollable.of], which is similar to this method, but
/// asserts if no [Scrollable] ancestor is found.À'ÓÀÀÀ#ÁÀ#Á‡˜À'Ѓ¹/// The state from the closest instance of this class that encloses the given
/// context.
///
/// Typical usage is as follows:
///
/// ```dart
/// TwoDimensionalScrollableState scrollable = TwoDimensionalScrollable.of(context);
/// ```
///
/// Calling this method will create a dependency on the closest
/// [TwoDimensionalScrollable] in the [context]. The internal [Scrollable]s
/// can be accessed through [TwoDimensionalScrollableState.verticalScrollable]
/// and [TwoDimensionalScrollableState.horizontalScrollable].
///
/// If no [TwoDimensionalScrollable] ancestor is found, then this method will
/// assert in debug mode, and throw an exception in release mode.
///
/// Alternatively, [Scrollable.of] can be used by providing the desired [Axis]
/// to the `axis` parameter.
///
/// See also:
///
/// * [TwoDimensionalScrollable.maybeOf], which is similar to this method,
/// but returns null if no [TwoDimensionalScrollable] ancestor is found.ÀÀšLÀ»ƒ¥/// A widget that manages scrolling in both the vertical and horizontal
/// dimensions and informs the [TwoDimensionalViewport] through which the
/// content is viewed.
///
/// [TwoDimensionalScrollable] implements the interaction model for a scrollable
/// widget in both the vertical and horizontal axes, including gesture
/// recognition, but does not have an opinion about how the
/// [TwoDimensionalViewport], which actually displays the children, is
/// constructed.
///
/// It's rare to construct a [TwoDimensionalScrollable] directly. Instead,
/// consider subclassing [TwoDimensionalScrollView], which combines scrolling,
/// viewporting, and a layout model in both dimensions.
///
/// See also:
///
/// * [TwoDimensionalScrollView], an abstract base class for displaying a
/// scrolling array of children in both directions.
/// * [TwoDimensionalViewport], which can be used to customize the child layout
/// model.À.À-î-À.À.1À./À.1À.‘À.šÀ.ªÀ.›À.«À.¬À.sÀ.R[À.sÀ.òÀ.ûÀ/ À.üÀ/ À/
À.ÒÀ.±]ÀÀ/À/<13>À0
€Ù/// The [ScrollableState] of the vertical axis.
///
/// Accessible by calling [TwoDimensionalScrollable.of].
///
/// Alternatively, [Scrollable.of] can be used by providing [Axis.vertical]
/// to the `axis` parameter.À0<>À0<><30><EFBFBD>À1€Ý/// The [ScrollableState] of the horizontal axis.
///
/// Accessible by calling [TwoDimensionalScrollable.of].
///
/// Alternatively, [Scrollable.of] can be used by providing [Axis.horizontal]
/// to the `axis` parameter.À21À22À2>À2?À21À21<32>0À2OÀ3“À3“"ÀÀ3eÀ3fÀ3rÀ3sÀ3eÀ3e†ÑÀÀ:`À:`À:mÀ::À:;À:GÀ:HÀ::À::ŠõÀ:ZÀE3ÀE4ÀE@ÀEAÀE3ÀE3€œÀEQÀ+]À+]štÀ-¤‚@/// State object for a [TwoDimensionalScrollable] widget.
///
/// To manipulate one of the internal [Scrollable] widget's scroll position, use
/// the object obtained from the [verticalScrollable] or [horizontalScrollable]
/// property.
///
/// To be informed of when a [TwoDimensionalScrollable] widget is scrolling,
/// use a [NotificationListener] to listen for [ScrollNotification]s.
/// Both axes will have the same viewport depth since there is only one
/// viewport, and so should be differentiated by the [Axis] of the
/// [ScrollMetrics] provided by the notification.ÀÀGÀGÀG&ÀGÀG;ÀG;ÀGJÀFäÀFärÀG~ÀGZ<ÀG~ÀG¿ÀG¿"ÀÀGÀGœÀGÀGQÀÀF£À<46>KÀÀHXÀHo
ÀHvÀHv ÀH|ÀH…ÀH…ÀH“ÀH¦ÀÀÀHÊÀÀÀHìÀÀÀIÀI
ÀIÀIÀIÀIÀI-ÀI-ÀI3ÀILÀILÀIRÀIlÀIlÀIrÀI‰ÀI‰ÀI<>ÀI¢ÀÀÀI½ÀI½5ÀÀIÙÀIíÀIîÀIûÀJÀJJÀJ$ÀJÀJÀJÀJ ÀJ!ÀJ5ÀJ'ÀJ8ÀJEÀJFÀHRÀHR<48>úÀJkÀJP/ÀJkÀJ¤ÀJƒ.ÀÀJ¶ÀJ·ÀJ¶ÀJ¶YÀÀHÀH‚ôÀH#ÀLAÀL;ÀLAÀLWÀLOÀLWÀKRÀKRpÀKkÀKÅÀKÅrÀ ÀLâÀÀÀLýÀÀMÀMÀM!ÀM"ÀM@ÀM@ÀMFÀM_ÀM_VÀM}ÀM»ÀÀ ÀL¥ÀL¦ÀMÀM-ÀM5ÀM6ÀMNÀMTÀMUÀM<>ÀM¬ÀM­ÀL¥ÀPÀÀOÀO
ÀOÀNùÀ<4E>©ÀÀPÇÀÀP×ÀP¦ÀP§ÀP¦À<50>çÀÀR³ÀÀÀRÀRÀRÀR„tÀÀW,ÀW,ÀW>ÀW ÀW
ÀW ÀW ‡ÃÀWÀ^ðÀÀ^ÿÀ^ÐÀ^ÑÀ^ÐÀ^Ѓ_ÀÀb3Àb4Àb3Àb3<62>ÀbDÀcèÀ
ÀÀcÌÀcÍÀcÌÀc̉ÀÀmÀmÀmÀmÀm Àm#ÀlæÀlçÀlæÀ<6C>®ÀÀKÀK£ƒÀKÀoÀo
Ào$Ào$ Ào*Ào3Ào3ÀoAÀoWÀoWÀofÀo{Ào{ÀÀo<>Ào<>ÀÀo³À
ÀÀoÆÀÀÀoÞÀÀÀoýÀÀpÀpÀpÀp#Àp:Àp:Àp@ÀpSÀpSÀpYÀpnÀpn5ÀpsÀpŠÀpžÀpŸÀp¬Àp²ÀpþÀp×ÀpÁÀp³ÀpÄÀpÑÀpÒÀpèÀpÚÀpëÀpøÀpùÀnþÀÀq%Àq1Àq%ÀqTÀq9/ÀqTÀqmÀqnÀqmÀqm]Àq˜ÀnÇÀnǃÀÀr$Àr'Àr$Àr;Àr;pÀrZÀr®Àr®rÀÀs$Às%Às$Às$€ÖÀs5Àu#Àu#Àu0Àu>Àu>ÀuEÀuZÀuZ!ÀucÀu<>Àu<>Àu‡Àu Àu VÀÀuüÀÀv
ÀtæÀtçÀuQÀunÀuvÀuwÀu<>Àu•ÀuÀuÐÀuíÀuîÀtæÀtæƒÀuÀxÀx
ÀxÀwýÀwþÀwýÀwý…ÊÀxÀ}ëÀÀÀ~À~ À~À}ËÀ}ÌÀ}ËÀ<>®ÀÀqÎÀ<71>­ÀÀ
—À
—€¹ÀL€¬/// This behavior will not allow for any diagonal scrolling.
///
/// Drag gestures in one direction or the other will lock the input axis until
/// the gesture is released.ÀU<>À^€þ/// This behavior will only allow diagonal scrolling on a weighted
/// scale per gesture event.
///
/// This means that after initially evaluating the drag gesture, the weighted
/// evaluation (based on [kTouchSlop]) stands until the gesture is released.Àp<>9À<>/// This behavior will only allow diagonal scrolling on a weighted
/// scale that is evaluated throughout a gesture event.
///
/// This means that during each update to the drag gesture, the scrolling
/// axis will be allowed to scroll diagonally if it exceeds the
/// [kTouchSlop].À®À®\ÀS/// This behavior allows free movement in any and all directions when
/// dragging.À ÅÀ Å„HÀ
~`/// Specifies how to configure the [DragGestureRecognizer]s of a
/// [TwoDimensionalScrollable].Àô’Àô’Àô¢ÀôsÀôs<C3B4>Àôz…܅܀ɆTo/// Signature used by [Scrollable] to build the viewport through which the
/// scrollable content is displayed.†§†§<E280A0>-‡-}/// Signature used by [TwoDimensionalScrollable] to build the viewport through
/// which the scrollable content is displayed.ˆÀˆÀFˆÈ €®package:flutter/material.dart€âpage_storage.dart<00>page_view.dart<00>'scroll_metrics.dart<00>Mscroll_notification.dart<00>xscroll_view.dart<00>single_child_scroll_view.dart<00>Ë two_dimensional_scroll_view.dart<00>þtwo_dimensional_viewport.dart‰ü<€†€¤€¥€Õ€Ù€ý<E282AC><1E>D<EFBFBD>o<EFBFBD><EFBFBD>Â<EFBFBD>õ%./D`a³Üƒƒ-ƒ.ƒCƒ\ƒ|ƒ—ƒ¼ƒ×ƒý„„@„^„<7F>„¼„Þ„ÿ…"…A…U…m…n…¤…¥…½…ۅ܆'†L†¦†§†ö‡%‡M‡b‡~‡¥‡Î‡Õ‡ÖˆˆˆLˆˆÀ‰‰X‰<58>‰…‰ÐŠŠbŠfŠ·RjnºŒ ŒŒŒ`ŒdŒ±<C592><00>C<EFBFBD><43><EFBFBD><EFBFBD>ÚŽŽk޲޶ŽíŽñ<C5BD>?<3F><><EFBFBD>Ü<EFBFBD>'<27>u<EFBFBD>y<EFBFBD><EFBFBD><EFBFBD>ÔTqÀÙ'E¢õ“4“^“ƒ“˜“§“Ô“é“û””<”c”€”¶”Δç••A•‡•ˆ•Õõ•ûIâ—/—€—œ—¢—ʗߘ˜˜=˜Ž˜ž˜¤˜ò™B™<42>™Ôš#šlšš—šæ &6<›‡›¯›Ä›ê›ëœ œTœZœ¦œÑœ×<C593>%<25>N<EFBFBD>T<EFBFBD><EFBFBD>Úžžždž´ŸŸNŸžŸí   % + | Ê¡¡1¡Q¡R¡Ÿ¡¥¡ö¢5¢;¢K¢Q¢¢ê£.£W£X£™£å¤2¤H¤N¤š¤ë¥"¥(¥`¥®¥ç¥ü¦4¦5¦w¦Ä¦á¦ç§7§ƒ§Í§â§è§ø§þ¨O¨c¨†¨‡¨Ä©©©d©š©¯©µ©Å©Ëªª;ª<ª„ªŠªÚªà«,«w«Ã«É¬¬\¬b¬r¬x¬½­­8­9­<39>­Ï®
®®[®§®ñ¯¯¯a¯¯¯à¯æ°.°4°D°J°™°»°Á°Ö±±±?±<>±“±â²²%²p²¼²Â²Ò²Ø³%³7³L³k³l³¨³ó³ù´F´Š´<C5A0>´Õµµbµzµ<7A>µ·µ¸µîµô¶¶u¶È··)·*·^·d·<64>·Ä·Å·Ñ¸¸¸¸Y¸¸Õ¹!¹e¹i¹j¹º¹ã¹éº ºº ºaºkºqº½»»P»v»|»Ê¼¼g¼„¼Š¼Ö½&½A½G½W½]½£½Ñ¾¾`¾…¾ê¿¿b¿µ¿ñÀ@,À@GÀ@OÀ@sÀ@ÈÀ@ÎÀ@ßÀ@ãÀ@äÀA4ÀACÀAIÀAlÀArÀA€ÀA»ÀAÅÀAËÀBÀB^ÀBªÀBÐÀBÖÀC$ÀCtÀC¾ÀCÄÀDÀD`ÀD{ÀD<>ÀDÍÀEÀE
ÀEÀE#ÀEsÀE¡ÀEãÀF.ÀF>ÀFcÀFÀF³ÀGÀG&ÀG3ÀGOÀGÀGÐÀH"ÀHwÀH®ÀHÔÀHîÀHûÀIÀI.ÀI„ÀI²ÀIÁÀIÍÀIÕÀIèÀIòÀJÀJÀJÀJeÀJ£ÀJ©ÀJ÷ÀKHÀK˜ÀKžÀKëÀL:ÀLƒÀL‰ÀL×ÀM ÀMjÀM<>ÀM“ÀMâÀMþÀNUÀN¯ÀNÌÀO&ÀOhÀOpÀOÀOåÀOëÀOýÀPÀPÀPQÀPnÀPtÀP·ÀQÀQ)ÀQNÀQjÀQ†ÀQ­ÀQÌÀR(ÀR/ÀRUÀRVÀR¥ÀRôÀSCÀSˆÀS·ÀS¾ÀSþÀT$ÀTcÀT„ÀT¯ÀTòÀUÀU5ÀUQÀUgÀUÀUÁÀUÊÀUìÀUíÀV&ÀVJÀVzÀV€ÀV<>ÀV¹ÀVÜÀVâÀWÀWÀW$ÀWnÀWrÀWtÀWuÀWÆÀXÀX8ÀXœÀX<>ÀXÁÀXâÀXãÀXïÀY!ÀYFÀYJÀYLÀYMÀYyÀY}ÀYÇÀYòÀYöÀZ;ÀZˆÀZŒÀZÝÀ[À[BÀ[vÀ[•À[¢À[£À[çÀ[íÀ\;À\ˆÀ\ÖÀ]À] À]!À]^À]<5D>À]«À]¬À]ûÀ^=À^CÀ^”À^ËÀ_À_=À_sÀ_ªÀ_áÀ_æÀ_çÀ`À`SÀ`TÀ``À`›À`œÀ`¨À`ÌÀ`ÍÀ`ÙÀa
Àa.Àa/Àa;ÀaŠÀaÀa—ÀaÅÀaÆÀaÒÀbÀb[Àb\ÀbÀb±ÀbæÀbçÀc/ÀcJÀc™ÀcÆÀdÀdKÀdŒÀd<>ÀdÀÀdßÀeÀebÀe®ÀeäÀfÀfÀfÀfxÀf—ÀfÈÀfÌÀfÍÀfÚÀfæÀg/ÀgmÀgŒÀg¼ÀhÀhÀh#Àh$Àh1Àh=Àh`Àh—ÀhÂÀi
ÀiUÀiÀiÀi—Ài¤Ài°ÀiÅÀiêÀj Àj&Àj=ÀjAÀjBÀjOÀj[Àj|ÀjÉÀjáÀk;ÀkRÀkuÀkyÀkzÀk¯ÀlÀlÀlÀlBÀlnÀl¸ÀlËÀlÑÀm5ÀmUÀm§Àm°ÀmðÀnÀn
Àn4Àn[Àn“Àn”ÀnäÀnèÀnéÀnöÀoÀo1ÀoWÀoXÀo<>Ào·ÀpÀp(Àp[Àp†Àp»ÀpéÀqÀq"ÀqVÀq†Àq¯ÀqúÀrÀrSÀr]ÀreÀržÀrÑÀr×ÀrØÀsÀsÀs#Às'Às(Às5ÀsAÀsTÀsyÀs¤Às±ÀsäÀtÀtÀtÀt/ÀtUÀtjÀtnÀtoÀt~ÀtÀt´ÀtµÀtÁÀtÎÀu Àu=Àu‡Àu<>ÀuÀuÀuÀÀuÁÀvÀv.ÀvaÀvbÀv·ÀvóÀw#ÀwHÀwIÀw_Àw{Àw|ÀwˆÀw•ÀwµÀxÀxÀxÀx-ÀxsÀxÁÀy ÀyIÀydÀyqÀyŽÀyªÀyìÀzÀzlÀzÑÀ{À{+À{\À{<7B>À{ÄÀ{óÀ|(À|nÀ|´À|úÀ}ZÀ}ŸÀ~À~GÀ~ŽÀ~£À~¶À~ÃÀ~áÀ§À¿À€$À€cÀ€€À€±À€äÀ<00>À<00><00><00>ÃÀ À‚¯À‚ôÀƒWÀƒœÀƒãÀƒøÀ ÀÀ„ À„&À„@À„fÀ„šÀ„òÀ„øÀ„üÀ„ýÀ… ÀÀ…<À…eÀ…sÀ…yÀ…›À…ÏÀ…çÀ†?À†pÀ†vÀ†zÀ†{À<>À<>À†ŸÀ†¾À†¿À†ñÀ À‡'À‡PÀ‡TÀ‡UÀ‡‰À‡ÓÀˆˆˆˆšÀˆµÀÀÀ‰2À‰8À‰<À‰=À‰sÀ‰ÂÀ‰îÀŠ
ÀŠÀŠÀŠ?ÀŠŽÀŠºÀŠÓÀŠîÀŠòÀŠóÀÀ‹”À‹ÝÀ‹ðÀ‹þÀŒÀŒ4ÀŒƒÀŒ¯ÀŒÄÀŒÙÀŒôÀ<00>À<00>À<00>À<00><00><00><00><00><00><00><00><00>„À<00>…À<00>ÕÀŽÀŽLÀŽaÀޤÀŽÄÀŽËÀŽÏÀŽÐÀ<00>À<00><00><00>´À<00>À<00><00><00>®ÀÀ‘ À‘ïÀÀ’ŸÀ’ÎÀ’ûÀÀÀ“NÀ“RÀ“SÀ<>À“ÉÀÀ”eÀ”ŒÀ”¿À”ÏÀ”×ÀÀ•gÀ•¼À•ÿÀ–ÄÀ–éÀÀ—UÀ—vÀ—ÎÀ—ÔÀ—ØÀ—ÙÀ˜ À˜˜„À˜ÖÀÀ™<À™BÀ™FÀ™GÀ™™À™¼ÀšÀš7ÀšhÀš¨Àš°Àš¶ÀšÈÀšÌÀšÍÀ À›…À›¸À›¿À›ÀÀ›êÀ›ùÀœAÀœPÀœWÀœ[Àœ\ÀœmÀœnÀœ{Àœ‡Àœ®ÀœÍÀ<00><00><00><00>¡À<00>ÌÀ<00>ÓÀž1ÀžuÀž›Àž³ÀžÍÀžäÀŸÀŸ8ÀŸ\ÀŸ…ÀŸ±ÀŸîÀ 
À   <>À ¾À þÀ¡
À¡À¡%À¡.À¡5À¡6À¡^À¡žÀ¡ØÀ¡ùÀ¢À¢;À¢À¢œÀ¢ÕÀ¢îÀ¢ùÀ£À£À£ À£5À£6À£yÀ£ÈÀ£åÀ¤À¤&À¤BÀ¤`À¤wÀ¤€À¤†À¤‡À¤šÀ¤žÀ¤ŸÀ¤íÀ¥9À¥À¥®À¥ÉÀ¥åÀ¦ À¦+À¦‡À¦­À¦´À¦ùÀ§À§#À§=À§QÀ§yÀ§§À§®À§æÀ§êÀ§ëÀ§øÀ¨À¨IÀ¨tÀ¨ÄÀ©À©À©!À©"À©UÀ©YÀ©–À©ØÀªÀª9ÀªRÀªnÀª‹Àª¤ÀªªÀª«ÀªÊÀªëÀ«À«'À«(À«4À«ŒÀ«ŽÀ«<>À«ãÀ¬$À¬%À¬1À¬FÀ¬]À¬<>À¬¸À¬ÙÀ¬àÀ¬äÀ¬åÀ¬ñÀ­­­ˆÀ­½À­ÃÀ­ÇÀ­ÈÀ­ÔÀ­çÀ® À®À®"À®#À®/À®VÀ®uÀ®˜À®¼À®×À®ÞÀ®âÀ®äÀ®åÀ¯4À¯_À¯cÀ¯³À°À°OÀ°_À°¿À± À±<À±lÀ±{À±ºÀ±ÄÀ±öÀ±úÀ±ûÀ²;À²nÀ²oÀ²¦À²èÀ²éÀ³À³8À³_À³‹À³µÀ³¶À´À´´´´´¤À´ÂÀ´ÐÀ´ÖÀµ Àµ"ÀµTÀµXÀµYÀµ£ÀµãÀÀ¶&À¶4À¶:À¶]À¶§À¶ÌÀ¶ÜÀ¶äÀ·
À·#À·gÀ·kÀ·lÀ·¯À·ÑÀ·×À¸¸¸¸›À¸êÀ¹7À¹ˆÀ¹™À¹ŸÀ¹íÀº=ÀºŽÀºÍÀ»)À»ƒÀ»„À»<>À»°À»ïÀ¼"À¼hÀ¼oÀ¼ À¼æÀ¼íÀ½À½À½À½ À½dÀ½“À½ÀÀ½íÀ¾À¾BÀ¾pÀ¾tÀ¾uÀ¾<>À¾ÏÀ¿-À¿ZÀ¿²À¿¸À¿ùÀÀ3ÀÀ<>ÀÀÙÀÀôÀÁÀÁÀÁGÀÁjÀÁ’ÀÁ›ÀÁ¨ÀÂÀÂTÀÂoÀŠÀ“ÀÂÄÀÂéÀÃÀÃÀà ÀÃkÀÃlÀþÀÄÀÄ!ÀÄNÀÄtÀĉÀÄ<>ÀÄ·ÀÅÀÅ)ÀÅQÀÅYÀÅ_ÀÅrÀÅvÀÅwÀÅ·ÀÅ÷ÀÆ;ÀÆdÀƵÀÇÀÇRÀÇ¢ÀÇÜÀÈ ÀÈÀÈhÀȈÀÈ<>ÀÈ–ÀÈ×ÀÉ2ÀÉ6ÀÉ7ÀÉoÀÉ©ÀɯÀÉþÀÊ4ÀÊ‚ÀÊÄÀÊðÀËÀË2ÀË9ÀËzÀ˺ÀËòÀÌÀÌhÀÌÀÀÌåÀÍ'À͉ÀÍÉÀÍáÀÎ!ÀÎ*ÀÎoÀ΂ÀΪÀγÀιÀÎãÀÏ)ÀÏÀϤÀÏâÀÐBÀЀÀИÀÐÔÀÐÝÀÑ ÀÑ3ÀÑYÀÑbÀÑhÀÑlÀÑmÀÑyÀѼÀÑçÀÒ(ÀÒ|ÀÒ¨ÀÒÔÀÒÚÀÒíÀÒñÀÒòÀÒþÀÓCÀÓ™ÀÓÛÀÔÀÔÀÔÀÔÀÔ)ÀÔƒÀÔÔÀÕ!ÀÕpÀÕ¯ÀÖÀÖ<ÀÖ\ÀÖbÀÖuÀÖyÀÖzÀÖ†ÀÖæÀ×ׇÀ×ÖÀØÀØzÀØ¢ÀØÂÀØÈÀØÛÀØßÀØàÀÙÀÙ%ÀÙCÀÙcÀÙwÀÙ±ÀÙâÀÚ%ÀÚ2ÀÚnÀÚ¡ÀÚæÀÚìÀÛÀÛ(ÀÛ.ÀÛxÀÛÀÀÜÀÜ"ÀÜ<ÀÜCÀܨÀÜËÀÜèÀÝ0ÀÝ‚ÀÝÖÀÝèÀÝòÀÞ$ÀÞuÀÞ‡ÀÞ‘ÀÞ½ÀßÀßÀß"ÀßBÀß„ÀßÏÀßáÀßëÀàÀà`ÀàrÀà|Àà¦ÀàïÀàùÀá Àá(ÀápÀáÂÀâÀâ(Àâ2ÀâdÀâµÀâÇÀâÑÀâýÀãHÀãRÀãbÀã<>ÀãÃÀäÀä Àä*ÀäUÀäŸÀä±Àä»ÀäåÀå.Àå8ÀåHÀåNÀåRÀåSÀå<>ÀåÏÀæÀæZÀæƒÀæ‡ÀæˆÀæÆÀæâÀçÀç,ÀçSÀçZÀç^Àç_ÀçkÀçÊÀçäÀèÀèbÀèŠÀè·ÀéÀé,ÀéeÀé¡ÀéÉÀêÀêeÀêŠÀêÆÀëÀë-ÀëWÀë†ÀëÓÀì"Àì(ÀìkÀìoÀìpÀì|Àì¯ÀìãÀí:ÀínÀí–ÀíèÀî!ÀîdÀî²ÀîÍÀîèÀîñÀïÀïbÀïkÀïÃÀïùÀðFÀðLÀðŸÀðÑÀð÷ÀñGÀñ€ÀñÃÀò
Àò(ÀòCÀòLÀò±ÀóÀó>Àó‰Àó<>Àó“Àó”Àó Àó³ÀóâÀôÀô3ÀôWÀôlÀôpÀôrÀôsÀôµÀôçÀõ,ÀõrÀõ¹ÀöÀöÀöÀöÀöJÀöˆÀöŒÀöÇÀ÷À÷\À÷‡À÷ºÀ÷¾ÀøÀø\Àø¬ÀøôÀù
ÀùLÀùgÀùvÀù’Àù¼ÀùÔÀùúÀú ÀúQÀúRÀúsÀú˜Àú¹ÀúÌÀúÍÀúÙÀûÀû@ÀûZÀû<>Àû¾ÀûÐÀû×ÀûÛÀûÜÀûèÀü?ÀüPÀüˆÀüœÀü¸ÀüéÀüíÀüïÀüðÀý&ÀýAÀýgÀý‘Àý©ÀýÏÀýåÀþÀþ;ÀþlÀþ‚Àþ¶ÀþºÀþ»ÀÿÀÿ,ÀÿHÀÿoÀÿ<>Àÿ›Àÿ¡ÀÿÙÀÿðÀ¼ÀÜÀÀŒÀ<01>À‘ÀžÀŸÀÕÀñÀÀ”À˜À™ÀÉÀóÀÀÂÀôÀÀ‚À®ÀäÀÀ¦ÀÛÀãÀéÀíÀîÀ À ÀÀ—À<06>ÀùÀÀ³À´ÀÐÀÀ‘ÀÒÀïÀþÀ ‰À ‘À —À ÃÀ
À




‹À
§À
¾À
ÂÀ
ÄÀ
ÅÀ À    šÀ ›À §À ÑÀ èÀ ìÀ íÀ ùÀ         €À ŒÀ ±À ³À ´À ÄÀ ÅÀ
À


•À
ÔÀ
ÚÀ˜À·À½À
À³ÀíÀóÀ<10>À•À«À¬ÀôÀÀ ÀÀÀ¡À¸À¼À
À<12>À×ÀèÀìÀ†À¾ÀÂÀÐÀÔÀÀ§ÀµÀíÀŠÀ­À¼ÀáÀÀ„À¿ÀõÀ<17>ÀÃÀÄÀüÀÀ–ÀÃÀÄÀúÀÀ’À½À¾À ÀÀªÀ°ÀÀÀÆÀÀ°À¶ÀÝÀÀÀ–ÀçÀ„ÀŠÀ±ÀÔÀÕÀÀÀ¢À¨ÀÏÀüÀýÀ À®À×ÀÝÀ À À À <20>À ÃÀ!À!bÀ!¢À!¨À!÷À"À"#À"3À"9À"…À"»À#À#>À#<23>À#ºÀ#¾À#¿À$À$À$$À$GÀ$MÀ$[À$²À$¼À$ÂÀ%À%RÀ%£À%ãÀ%éÀ&9À&}À&ƒÀ&ÔÀ&óÀ&ùÀ' À'À'\À'©À'ëÀ(8À(HÀ(mÀ(¥À(½À)À)NÀ)[À)wÀ)ÊÀ*À*kÀ*»À*áÀ*ûÀ+À+À+À+/À+9À+VÀ+ZÀ+\À+]À+—À+›À+ìÀ,<À,JÀ,NÀ,›À,áÀ-)À-lÀ-žÀ-ìÀ.À.PÀ.¯À/À/À/CÀ/IÀ/„À/ŠÀ/ØÀ/÷À0"À0`À0À0šÀ0À0ÏÀ0ÕÀ1À1À1fÀ1…À1²À1òÀ2*À2.À2/À2<À2HÀ2]À2À2ÊÀ2ÐÀ3À3AÀ3GÀ3^À3bÀ3cÀ3pÀ3|À3¹À3ßÀ4!À4"À42À4‡À4ÁÀ5À52À5gÀ5¢À5ÒÀ5þÀ6<À6…À6¢À6×À7À7À7À7 À72À7À7ÇÀ8À88À8oÀ8¬À8ÞÀ9 À9LÀ9•À9²À9éÀ:%À:-À:3À:7À:8À:EÀ:QÀ:xÀ:„À:ÒÀ;À;"À;.À;€À;ÍÀ;ÔÀ;ÕÀ<À<,À<RÀ<|À<žÀ<ÔÀ=
À=dÀ=•À=«À=ÞÀ>À>6À>oÀ>ªÀ>êÀ?À?ZÀ?‹À?ÜÀ@À@8À@sÀ@²ÀAÀAHÀAbÀAÀAÞÀAýÀB:ÀByÀB¿ÀBøÀC7ÀClÀCÃÀDÀD*ÀD7ÀDBÀDKÀDRÀDSÀD˜ÀDÑÀDÒÀE,ÀE0ÀE1ÀE>ÀEJÀE]ÀE‰ÀE·ÀEÌÀEÐÀEÒÀEÓÀF ÀFCÀF€ÀF£ÀFâÀG ÀG7ÀGQÀGWÀGXÀG˜ÀG™ÀG¥ÀGíÀGïÀGðÀHÀHPÀHrÀH<>ÀH¢ÀHÆÀHèÀHþÀIÀI)ÀIHÀIhÀI…ÀIžÀI¹ÀIôÀJMÀJNÀJ<>ÀJ³ÀJ´ÀJÀÀKÀKÀKÀKPÀKƒÀKÃÀKñÀL8ÀL9ÀLMÀLgÀLhÀL£ÀL¯ÀLÞÀLùÀMÀM<ÀM[ÀM·ÀMÝÀMäÀMðÀMýÀNNÀNŸÀNÆÀNÍÀNòÀNöÀN÷ÀO#ÀOGÀO€ÀOÑÀPÀP&ÀPsÀP€ÀP™ÀPŸÀP£ÀP¤ÀP°ÀPâÀQÀQ,ÀQ;ÀQjÀQžÀQÄÀRÀR)ÀR`ÀRfÀRŠÀRŽÀR<>ÀRÀRÏÀRüÀS ÀSFÀSUÀS{ÀSžÀSØÀTÀT?ÀTsÀT<>ÀTÒÀTðÀUÀUFÀU„ÀUÀÀUàÀVÀVKÀV_ÀV}ÀVÍÀV×ÀVÝÀWÀWÀWÀWÀWIÀW|ÀW¬ÀWØÀWþÀX,ÀXXÀX_ÀX”ÀXÄÀXðÀYÀYDÀYpÀYwÀYxÀYœÀYÂÀYøÀZ.ÀZ>ÀZdÀZ€ÀZÇÀZýÀ[
À[AÀ[vÀ[«À[ÜÀ\ À\7À\sÀ\¤À\ÓÀ]
À]À]À]4À]EÀ]tÀ]»À]×À]öÀ^=À^MÀ^gÀ^‘À^—À^ÉÀ^ÍÀ^ÎÀ^ÚÀ_
À_%À_<À_wÀ_²À_âÀ`À`9À`@À`rÀ`®À`ÉÀ`ÐÀ`ÑÀ`õÀaÀa*ÀaYÀa<>Àa³Àa÷ÀaýÀb,Àb0Àb1Àb=ÀbZÀbuÀbŒÀb°ÀbÖÀbåÀcÀcHÀcnÀc Àc¦ÀcÅÀcÉÀcÊÀcÖÀcöÀdÀd@ÀdÀd¦ÀdÇÀd×ÀeÀe:Àe`ÀeuÀeÄÀfÀf[ÀfªÀfÒÀgÀgrÀgÊÀgúÀhÀh@ÀhoÀh ÀhËÀhüÀi>Ài€ÀiÂÀjÀj_Àj¡Àj²ÀjÁÀjÎÀk ÀknÀk°ÀkÏÀkïÀlÀlUÀl³Àl¿ÀlÉÀlÙÀlßÀlãÀläÀlðÀm,ÀmSÀmzÀm¨ÀmÑÀmØÀnÀnDÀnÀn•Àn—Àn˜ÀnÇÀnüÀo Ào/ÀoSÀowÀo™Ào¯ÀoÂÀoÚÀoùÀpÀp6ÀpOÀpjÀp¥ÀqÀqÀq7ÀqjÀqkÀqwÀqËÀqÍÀqÎÀr
Àr8Àr9ÀrnÀr¬ÀrßÀs!Às"Às.ÀsOÀs€ÀsÔÀs÷ÀsûÀsüÀtJÀtÀtäÀtðÀuÀu:ÀuVÀu}ÀuœÀuøÀvÀv%ÀvLÀvjÀvzÀv˜Àv´ÀvÊÀvôÀvýÀw.Àw>Àw\ÀwxÀwŽÀw¸ÀwÁÀwÈÀwÉÀwöÀwúÀwûÀxÀx'ÀxKÀxqÀx¸Àx×ÀxøÀyÀy7ÀykÀyÀy¦ÀyñÀz@ÀzÀzÝÀ{-À{wÀ{³À|À|SÀ|•À|´À|ÔÀ}À}:À}˜À}¤À}®À}¾À}ÄÀ}ÈÀ}ÉÀ}ÕÀ~À~8À~_À~<7E>À~¶À~½ÀÀ|
Scrollable_ScrollableScopeScrollableState_ScrollableSelectionHandler _ScrollableSelectionHandlerState%_ScrollableSelectionContainerDelegate_getDeltaToScrollOrigin_ScrollSemantics_RenderScrollSemantics_RestorableScrollOffsetDiagonalDragBehaviorTwoDimensionalScrollableTwoDimensionalScrollableState_TwoDimensionalScrollableScope_VerticalOuterDimension_VerticalOuterDimensionState_HorizontalInnerDimension_HorizontalInnerDimensionState (flutter.widgets.Scrollable.axisDirection<6F>ÌThe direction in which this widget scrolls.
For example, if the [Scrollable.axisDirection] is [AxisDirection.down],
increasing the scroll position will cause content below the bottom of the
viewport to become visible through the viewport. Similarly, if the
axisDirection is [AxisDirection.right], increasing the scroll position
will cause content beyond the right edge of the viewport to become visible
through the viewport.
Defaults to [AxisDirection.down].%flutter.widgets.Scrollable.controllerƒ An object that can be used to control the position to which this widget is
scrolled.
A [ScrollController] serves several purposes. It can be used to control
the initial scroll position (see [ScrollController.initialScrollOffset]).
It can be used to control whether the scroll view should automatically
save and restore its scroll position in the [PageStorage] (see
[ScrollController.keepScrollOffset]). It can be used to read the current
scroll position (see [ScrollController.offset]), or change it (see
[ScrollController.animateTo]).