cacheassetfilememorynetworkcomposition
controller	frameRateanimaterepeatreversewidthheightfit	alignment	delegatesoptionsaddRepaintBoundaryfilterQualityrenderCachetraceEnabledcreateState_autoAnimation	initStatedidUpdateWidget_updateAutoAnimationdispose_progressAnimationbuildLottie_LottieState^LottieCompositionStatefulWidgetLottieCachesharedLottieCacheboolAssetBundleLottieBuilderString	Animationdouble	FrameRateLottieDelegatesLottieOptionsvoidLottieImageProviderFactoryKeyLottieFrameBuilderImageErrorWidgetBuilderBoxFitAlignmentGeometryFilterQualityWarningCallbackLottieDecoderRenderCacheasset
controller	frameRateanimaterepeatreverse	delegatesoptionsimageProviderFactoryonLoadedkeybundleframeBuildererrorBuilderwidthheightfit	alignmentpackageaddRepaintBoundaryfilterQuality	onWarningdecoderrenderCachebackgroundLoadingFileObjectfile	Uint8ListmemoryClientMapnetworkclientheaders	AlignmentcenterAlignmentDirectionaltexthighlowrasterdrawingCommandsLtraceEnabledoverrideStateTickerProviderStateMixinAnimationController	initStatevsyncdurationwidgetcompositionDurationsecondsdidUpdateWidgetstopforwarddisposeWidgetBuildContextAnimatedBuilder	animationbuilder	RawLottieprogressvalueRepaintBoundarychildStatefulWidgetStateTickerProviderStateMixin—jË·Êjòü!Cs\V¯‡       dart:typed_data     package:flutter/widgets.dart  B   adhttpdpackage:http/http.dart  k   ../lottie.dart  €„   composition.dart  €Ÿ   l.dart  €°   lottie_builder.dart  €Î   providers/lottie_provider.dart¢ º«�Í Aj€ƒ€ž€¯€Í€ö€÷�-��Î‚"‚>‚d‚¦‚Û‚Ü‚í‚üƒƒ0ƒ@ƒQƒeƒsƒ†ƒšƒ¬ƒ¿ƒÓƒå„„„1„S„v„–„Î„Ï…+…I…\……’…¬…¾…Ñ…ñ††=†s†�†š†À†ë†þ‡‡#‡E‡Z‡x‡š‡º‡Ö‡ôˆˆ.ˆ8ˆTˆnˆ„ˆ˜ˆ®ˆÈˆÞ‰‰&‰4‰H‰h‰ˆ‰š‰®‰¼‰Ö‰ìŠŠ:ŠTŠjŠˆŠ²Š·Š¸‹‹)‹<‹_‹y‹Œ‹ž‹±‹Ñ‹íŒ#ŒSŒaŒ‡Œ²ŒÅŒÙŒê��*�L�l�ˆ�¦�Ã�ß�éŽŽŽ5ŽIŽ_ŽyŽ�Ž¿Ž×Žå��%�7�K�Y�s�Ÿ�Á�Û�ñ��9�>�?�˜�·�Î�ñ‘‘‘0‘C‘c‘‘µ‘å‘ó’’D’W’k’|’ž’¼’Þ’þ““8“U“s“~“š“´“Ê“Þ“ô””$”T”l”z”š”º”Ì”à”î••4•V•p•†•¤•Î•Ó•Ô–+–K–]–v–˜–»–Õ–è–ú——-—I——¯—½—ã˜˜!˜5˜F˜h˜†˜¨˜È˜ä™™™>™G™[™q™�™§™½™Ñ™çšššGš_šmš�š­š¿šÓšášû›'›I›c›y›—›Á›Æ›Ç›ðœ<œdœeœ¥œú�)�P�Q�‚�çž6ž<žŒž°žÎžÏŸŸdŸ¶Ÿ¼Ÿÿ   l À Õ Ö¡(¡s¡Ž¡õ¢¢¢L¢R¢¤¢¸¢Ï¢Ð£££h£|£”£•£ê£ÿ¤ ¤6¤<¤�¤Ù¥+¥t¥Á¦¦D¦J¦p¦v¦†¦Œ¦Ö¦ÿ§K§p§–§—§Ý¨2¨�¨Ö©©&©'©c©—©Ù©ù©úªOª£ª¶ª¼ªæ«««B«}«ƒ«©«Ï«Ð«õ¬A¬l¬®¬´­­­f­º­Ó­Ù­ü®W®µ¯¯e¯Ò°(°e°k°½±±±[±}±Ý²+²1²Œ²Ò²ç³	³
³<³f³„³ˆ³‰³•³Æ³È³É´´=´>´J´_´v´w´¡´´µ µµ#µ'µ(µ4µ_µ…µ†µ¤µè¶¶¶	¶)¶D¶E¶|¶—¶Ï¶Þ· ······2·P·e·i·j·˜·Ã·Ä·Ð·÷¸¸@¸^¸x¸£¸Ê¸í¹¹B¹a¹‚¹�¹Ä¹óºº)º2º9º:º_ºŒº’º“º¥º©º«         Ad j  €ƒ  €ž  €¯  €Í      ‚ä ‚ê    ‚ñ‚ñ	‚÷   ƒ ƒ ƒ   ƒƒƒ$   ƒ4ƒ4
ƒ9   ƒDƒDƒI   ƒUƒUƒZ   ƒiƒiƒn   ƒwƒwƒ}   ƒŠƒŠƒ�   ƒžƒžƒ¤   ƒ°ƒ°ƒ¶   ƒÃƒÃƒÈ   ƒ×ƒ×ƒÜ   ƒéƒéƒï   „„„   „„„$ „@„8„J„B„M„b„Z„l„d„o„„„}„�„†„�„°„�„Å„²„È‚Þ‚Þ�ï    œW›É€™œWp/// The Lottie composition to animate.
/// It could be parsed asynchronously with `LottieComposition.fromBytes`. �Dœg€ç�D€½/// The animation controller to animate the Lottie animation.
/// If null, a controller is automatically created by this class and is configured
/// with the properties [animate], [reverse] žÃ�S�yžÃ�R/// The number of frames per second to render.
/// Use `FrameRate.composition` to use the original frame rate of the Lottie composition (default)
/// Use `FrameRate.max` to advance the animation progression at every frame.
///
/// The advantage of using a low frame rate is to preserve the device battery
/// by doing less rendering work.  žÑ�B �%/// If no controller is specified, this value indicate whether or not the
/// Lottie animation should be played automatically (default to true).
/// If there is an animation controller specified, this property has no effect.
///
/// See [repeat] to control whether the animation should repeat.  Í €» Í€¥/// Specify that the automatic animation should repeat in a loop (default to true).
/// The property has no effect if [animate] is false or [controller] is not null. ¢ Ø�1¢�/// Specify that the automatic animation should repeat in a loop in a "reverse"
/// mode (go from start to end and then continuously from end to start).
/// It default to false.
/// The property has no effect if [animate] is false, [repeat] is false or [controller] is not null. ¢È¢€¿¢È€£/// If non-null, requires the composition to have this width.
///
/// If null, the composition will pick a size that best preserves its intrinsic
/// aspect ratio. £Œ¢Ò€À£Œ€£/// If non-null, require the composition to have this height.
///
/// If null, the composition will pick a size that best preserves its intrinsic
/// aspect ratio. £ú£—f£úR/// How to inscribe the Lottie composition into the space allocated during layout. §‹¤ƒ’§‹ƒK/// How to align the composition within its bounds.
///
/// The alignment aligns the given position in the image to the given position
/// in the layout bounds. For example, an [Alignment] alignment of (-1.0,
/// -1.0) aligns the image to the top-left corner of its layout bounds, while a
/// [Alignment] alignment of (1.0, 1.0) aligns the bottom right of the
/// image with the bottom right corner of its layout bounds. Similarly, an
/// alignment of (0.0, 1.0) aligns the bottom middle of the image with the
/// middle of the bottom edge of its layout bounds.
///
/// Defaults to [Alignment.center].
///
/// See also:
///
///  * [Alignment], a class with convenient constants typically used to
///    specify an [AlignmentGeometry].
///  * [AlignmentDirectional], like [Alignment] for specifying alignments
///    relative to text direction. ©§™�‹©�`/// A group of callbacks to further customize the lottie animation.
/// - A [text] delegate to dynamically change some text displayed in the animation
/// - A value callback to change the properties of the animation at runtime.
/// - A text style factory to map between a font family specified in the animation
///   and the font family in your assets. ©ð©)€Î©ð€«/// Some options to enable/disable some feature of Lottie
/// - enableMergePaths: Enable merge path support
/// - enableApplyingOpacityToLayers: Enable layer-level opacity ªó©ü�	ªó€á/// Indicate to automatically add a `RepaintBoundary` widget around the animation.
/// This allows to optimize the app performance by isolating the animation in its
/// own `Layer`.
///
/// This property is `true` by default. «À«
€Ã«À€˜/// The quality of the image layer. See [FilterQuality]
/// [FilterQuality.high] is highest quality but slowest.
///
/// Defaults to [FilterQuality.low] ²ü«Ò‡5²ü†Ù/// {@template lottie.renderCache}
/// Opt-in to a special render mode where the frames of the animation are
/// lazily rendered and kept in a cache.
/// Subsequent runs of the animation will be cheaper to render.
///
/// This is useful is the animation is complex and can consume lot of energy
/// from the battery.
/// This will trade an excessive CPU usage for an increase memory usage.
/// The main use-case is a short and small (size on the screen) animation that is
/// played repeatedly.
///
/// There are 2 kinds of caches:
/// - [RenderCache.raster]: keep the frame rasterized in the cache (as [dart:ui.Image]).
///   Subsequent runs of the animation are very cheap for both the CPU and GPU but it takes
///   a lot of memory (rendered_width * rendered_height * frame_rate * duration_of_the_animation).
///   This should only be used for very short and very small animations.
/// - [RenderCache.drawingCommands]: keep the frame as a list of graphical operations ([dart:ui.Picture]).
///   Subsequent runs of the animation are cheaper for the CPU but not for the GPU.
///   Memory usage is a lot lower than RenderCache.raster.
///
/// The render cache is managed internally and will release the memory once the
/// animation disappear. The cache is shared between all animations.
/// Any change in the configuration of the animation (delegates, frame rate etc...)
/// will clear the cache entry.
/// For RenderCache.raster, any change in the size will invalidate the cache entry. The cache
/// use the final size visible on the screen (with all transforms applied).
///
/// In order to not exceed the memory limit of a device, the raster cache is constrained
/// to maximum 50MB. After that, animations are not cached anymore.
/// {@endtemplate}   ‚f‚ft‚¿?/// The cache instance for recently loaded Lottie compositions.   ³³/³    ³V³V³[  ³>³>I³I    …M…M…T   …`…`…s   …ƒ…ƒ…‰   …–…–…¡   …°…°…¶   …Â…Â…È   …Õ…Õ…æ   …õ…õ†   ††*†3   †A†A0†]   †w†w†|   †…†…†’   †ž†ž †²   †Ä†Ä%†Ý   †ï†ï†÷   ‡‡‡
   ‡‡‡   ‡'‡'‡:   ‡I‡I‡Q   ‡^‡^‡d   ‡|‡|‡‹   ‡ž‡ž‡¯   ‡¾‡¾‡Í   ‡Ú‡Ú‡ç   ‡ø‡ø‡þ  „Ñ„Ñ…å…BY/// Creates a widget that displays an [LottieComposition] obtained from an [AssetBundle].   ‹-‹-‹4   ‹@‹@‹S   ‹c‹c‹n   ‹}‹}‹ƒ   ‹�‹�‹–   ‹¢‹¢‹¨   ‹µ‹µ‹Æ   ‹Õ‹Õ‹ä   ‹ñ‹ñ0Œ   Œ'Œ'*ŒI   ŒWŒWŒ\   ŒeŒe Œy   Œ‹Œ‹%Œ¤   Œ¶Œ¶Œ¾   ŒÉŒÉŒÑ   ŒÝŒÝŒå   ŒîŒî�   ���   �.�.�=   �P�P�a   �p�p�   �Œ�Œ�™   �ª�ª�°  ŠºŠº…ƒ‹#Q/// Creates a widget that displays an [LottieComposition] obtained from a [File].   �»�»�Å   �Ò�Ò�å   �õ�õ‘    ‘‘‘   ‘"‘"‘(   ‘4‘4‘:   ‘G‘G‘X   ‘g‘g‘v   ‘ƒ‘ƒ0‘Ÿ   ‘¹‘¹*‘Û   ‘é‘é‘î   ‘÷‘÷ ’   ’’%’6   ’H’H’P   ’[’[’c   ’o’o’w   ’€’€’“   ’¢’¢’¨   ’À’À’Ï   ’â’â’ó   “““   “““+   “<“<“B  �A�A…‘�¯V/// Creates a widget that displays an [LottieComposition] obtained from a [Uint8List].   –O–O
–V   –a–a–n   –z–z–�   –œ–œ–¯   –¿–¿–Ê   –Ù–Ù–ß   –ì–ì–ò   –þ–þ—   ———"   —1—1—@   —M—M0—i   —ƒ—ƒ*—¥   —³—³—¸   —Á—Á —Õ   —ç—ç%˜    ˜˜˜   ˜%˜%˜-   ˜9˜9˜A   ˜J˜J˜]   ˜l˜l˜r   ˜Š˜Š˜™   ˜¬˜¬˜½   ˜Ì˜Ì˜Û   ˜è˜è˜õ   ™™™  •Ö•Ö…ï–BT/// Creates a widget that displays an [LottieComposition] obtained from the network.  ³‹³Œ³‹³‹:³¥  €÷€÷²Ð‚D�F/// A widget to display a loaded [LottieComposition].
/// The [controller] property allows to specify a custom AnimationController that
/// will drive the animation. If [controller] is null, the animation will play
/// automatically and the behavior could be adjusted with the properties [animate],
/// [repeat] and [reverse].   ´-´'´-    ·l·lV·‚    ´@´A´@´@€æ´Q    µKµKµR µ*µ+µ*µ*€Ýµ;    ¶¶�¶   ····S·&    ·ß·ß·ì ·Æ·Ç·Æ·Æ‚â·Ù  ³É³É†á³Ï             �Í Aj€ƒ€ž€¯€Í€ö€÷�-��Î‚"‚>‚d‚¦‚Û‚Ü‚í‚üƒƒ0ƒ@ƒQƒeƒsƒ†ƒšƒ¬ƒ¿ƒÓƒå„„„1„S„v„–„Î„Ï…+…I…\……’…¬…¾…Ñ…ñ††=†s†�†š†À†ë†þ‡‡#‡E‡Z‡x‡š‡º‡Ö‡ôˆˆ.ˆ8ˆTˆnˆ„ˆ˜ˆ®ˆÈˆÞ‰‰&‰4‰H‰h‰ˆ‰š‰®‰¼‰Ö‰ìŠŠ:ŠTŠjŠˆŠ²Š·Š¸‹‹)‹<‹_‹y‹Œ‹ž‹±‹Ñ‹íŒ#ŒSŒaŒ‡Œ²ŒÅŒÙŒê��*�L�l�ˆ�¦�Ã�ß�éŽŽŽ5ŽIŽ_ŽyŽ�Ž¿Ž×Žå��%�7�K�Y�s�Ÿ�Á�Û�ñ��9�>�?�˜�·�Î�ñ‘‘‘0‘C‘c‘‘µ‘å‘ó’’D’W’k’|’ž’¼’Þ’þ““8“U“s“~“š“´“Ê“Þ“ô””$”T”l”z”š”º”Ì”à”î••4•V•p•†•¤•Î•Ó•Ô–+–K–]–v–˜–»–Õ–è–ú——-—I——¯—½—ã˜˜!˜5˜F˜h˜†˜¨˜È˜ä™™™>™G™[™q™�™§™½™Ñ™çšššGš_šmš�š­š¿šÓšášû›'›I›c›y›—›Á›Æ›Ç›ðœ<œdœeœ¥œú�)�P�Q�‚�çž6ž<žŒž°žÎžÏŸŸdŸ¶Ÿ¼Ÿÿ   l À Õ Ö¡(¡s¡Ž¡õ¢¢¢L¢R¢¤¢¸¢Ï¢Ð£££h£|£”£•£ê£ÿ¤ ¤6¤<¤�¤Ù¥+¥t¥Á¦¦D¦J¦p¦v¦†¦Œ¦Ö¦ÿ§K§p§–§—§Ý¨2¨�¨Ö©©&©'©c©—©Ù©ù©úªOª£ª¶ª¼ªæ«««B«}«ƒ«©«Ï«Ð«õ¬A¬l¬®¬´­­­f­º­Ó­Ù­ü®W®µ¯¯e¯Ò°(°e°k°½±±±[±}±Ý²+²1²Œ²Ò²ç³	³
³<³f³„³ˆ³‰³•³Æ³È³É´´=´>´J´_´v´w´¡´´µ µµ#µ'µ(µ4µ_µ…µ†µ¤µè¶¶¶	¶)¶D¶E¶|¶—¶Ï¶Þ· ······2·P·e·i·j·˜·Ã·Ä·Ð·÷¸¸@¸^¸x¸£¸Ê¸í¹¹B¹a¹‚¹�¹Ä¹óºº)º2º9º:º_ºŒº’º“º¥º©º«   Lottie_LottieStatelottie.renderCache†7Opt-in to a special render mode where the frames of the animation are
lazily rendered and kept in a cache.
Subsequent runs of the animation will be cheaper to render.

This is useful is the animation is complex and can consume lot of energy
from the battery.
This will trade an excessive CPU usage for an increase memory usage.
The main use-case is a short and small (size on the screen) animation that is
played repeatedly.

There are 2 kinds of caches:
- [RenderCache.raster]: keep the frame rasterized in the cache (as [dart:ui.Image]).
  Subsequent runs of the animation are very cheap for both the CPU and GPU but it takes
  a lot of memory (rendered_width * rendered_height * frame_rate * duration_of_the_animation).
  This should only be used for very short and very small animations.
- [RenderCache.drawingCommands]: keep the frame as a list of graphical operations ([dart:ui.Picture]).
  Subsequent runs of the animation are cheaper for the CPU but not for the GPU.
  Memory usage is a lot lower than RenderCache.raster.

The render cache is managed internally and will release the memory once the
animation disappear. The cache is shared between all animations.
Any change in the configuration of the animation (delegates, frame rate etc...)
will clear the cache entry.
For RenderCache.raster, any change in the size will invalidate the cache entry. The cache
use the final size visible on the screen (with all transforms applied).

In order to not exceed the memory limit of a device, the raster cache is constrained
to maximum 50MB. After that, animations are not cached anymore. ''