<castFromisBroadcastasBroadcastStreamlistenwheremapasyncMapasyncExpandhandleErrorexpandpipe	transformreducefoldjoincontainsforEacheveryanylengthisEmptycasttoListtoSetdraintake	takeWhileskip	skipWhiledistinctfirstlastsingle
firstWhere	lastWheresingleWhere	elementAttimeoutcancelonDataonErroronDonepauseresumeisPausedasFutureaddaddErrorclose_stream	addStreamdonebindmoveNextcurrent_sink_ensureSinkaddSyncaddErrorSync	closeSync_TimerCallbackStreamStreamSubscription	EventSink
StreamViewStreamConsumer
StreamSinkStreamTransformerStreamTransformerBaseStreamIterator_ControllerEventSinkWrapperMultiStreamController€¥dartasyncvoidIterableforEachvmIsolateUnsendable	broadcastSincebool_AsyncStreamController_add_closeUncheckedstream
stackTraceObject
StackTrace
AsyncError_interceptUserError	_addErrorFuture_StreamController_SyncStreamControllerthenvalueonErrorerrorintisClosedfuturescheduleMicrotaskcloseIteratormoveNextcurrentmultiiterator_interceptCaughtErrores
controlleraddErrorZonehasListenerisPausedaddErrorSync	closeSyncaddSynconResumeStreamControlleronListenisBroadcast_MultiStreamcomputationDurationtypeAcceptsNullArgumentError	StopwatchresetaddTimerperiodiconCancelcancel_nullFutureonPausestopelapsedstartdynamic_BoundSinkStream
CastStreamasFuture_AsBroadcastStreamonDoneemptycancelOnErrorFunction_WhereStream
_MapStreamFutureOr_StreamControllerBase_SyncBroadcastStreamControllerlistenNullresumeonDataeventpausewhenComplete	addStreamtest	transform_HandleErrorStream_ExpandStream	ConverterstartChunkedConversionbindreduce_Future_completeErrorIterableElementError	noElement_trySetStackTrace_completeWithErrorCallback	_complete_runUserCodeelementnewValue_cancelAndErrorClosurefoldtoString	separatorStringStringBufferisEmptywrite_cancelAndErrorWithReplacement==isMatch_cancelAndValuecastFromListdataSetfutureValue_TakeStream_TakeWhileStream_SkipStream_SkipWhileStreamequals_DistinctStreamtooManyorElse
RangeErrorcheckNotNegative
IndexError
withLength	indexablename	onTimeoutTimeoutExceptionregisterUnaryCallback_sinkrunUnaryGuardedcreateTimerhandleUncaughtErrorresumeSignalSinkeventTransformedasBroadcastStreampipemapwhereexpandfromHandlersfromBindbindCallback
handleDatahandleError
handleDoneCastStreamTransformer_StreamIterator
_EventSink
StateErrordoneSinkStream	EventSinkStreamConsumerStreamTransformerStreamControllerñÝä`™âE
w\wBù�   ÀX^ Àœ¸Šö N€œ€Ø€Ù€í€î�5�J�‘�’�±�²�Ü�à‚‚l‚¶‚äƒ3ƒ7ƒ„ƒÎƒø„F„—„Ç„Ô„à„þ…<…Y…p……©…É…Ó…Û…á…é†8†…†Ê‡‡b‡¥‡ð‡üˆIˆyˆ§ˆó‰‰J‰{‰¯‰ÕŠŠFŠ�Š¨Š÷Šû‹B‹‡‹±‹µ‹õŒ=ŒŒŒ—Œ›Œê�0�{�Á�öŽ)ŽcŽgŽ­ŽÆŽÊ��8�x�»�ö�F�ƒ�‡�Ö‘‘‘S‘~‘‚‘È’’’U’Y’¢’é“““Q“¡“½“Á””b”¦”ì•<•Œ•�•î––`–—–›–ã—-—|—Â—Ó—×˜(˜u˜“˜—˜Ö™"™n™z™�™°™Â™Ã™ì™òš8šUš[šjšxš�š²šÄšãšî›››'›0›:›@›w›››ÑœœœFœ{œËœÌ���P�y��Ž�œ�Ø�üžžž"žažkžqž·ŸŸ*ŸcŸ}ŸžŸ±Ÿ²Ÿý  L x ~ � › Ò à¡¡%¡1¡G¡[¡e¡m¡­¡·¡ý¢:¢ƒ¢ž¢ß£-£k£”£³£Ä£È£É¤	¤¤W¤Ž¤”¤£¤±¤Û¥¥7¥?¥E¥ƒ¥ž¥Ö¥Ü¥î¦&¦M¦W¦‡¦Î§§[§›§§§³§¿§Ë§Ò§ã§ó¨¨9¨B¨g¨˜¨¾¨Ç¨Î¨ì¨ð¨ñ©4©:©‰©®©ðªª#ªuª´ªºª÷ªý«A«G«V«d«‰«Ã«Ö«Þ«ä¬¬F¬h¬p¬v¬Á­
­­"­I­­¦­°­ì®,®8®D®P®\®c®v®·®Õ¯#¯?¯a¯�¯¹¯Á¯Ç¯È¯û°°I°�°‰°�°�°ß±±b±„±“±Á±Ç±ÿ²8²V²Z²[²–²œ²ê³.³j³°³¶³ú´0´s´«´±´üµµµ&µ4µ^µ‘µ›µÒµ÷¶¶#¶K¶d¶—¶Õ¶ó···0·P·Q·g·§·Û·ü¸¸¸4¸D¸o¸Š¸¿¹¹'¹;¹G¹`¹r¹¦¹Ã¹úº@ºNº�º¼ºÑºô»»»9»E»O»P»s»‘»±»Û»ç»ò»ó¼¼#¼$¼O¼U¼ˆ¼Õ½½3½9½€½†½Å¾¾S¾”¾Ï¿¿¿Z¿…¿¶¿àÀ @À @#À @gÀ @®À @êÀ A.À AXÀ A^À A¨À AâÀ B1À B?À BŒÀ B¯À BËÀ BçÀ C&À CFÀ CbÀ C³À CìÀ DIÀ DcÀ D|À D—À DàÀ EÀ EÀ EAÀ EYÀ E{À E‘À EŸÀ EÍÀ EóÀ F5À F\À F�À FžÀ F¬À F¶À F¾À FÈÀ FàÀ GÀ G6À G=À GpÀ GtÀ GuÀ GÀÀ GÆÀ HÀ HaÀ HtÀ HzÀ H°À H¶À HþÀ IÀ IOÀ InÀ ItÀ IƒÀ I‘À I¦À IÕÀ JÀ JÀ JZÀ JdÀ JÀ J–À JÀÀ JÇÀ JÿÀ K À K.À KEÀ KˆÀ K‘À K—À KÞÀ L#À LFÀ LeÀ L…À LŸÀ L¶À LÙÀ LìÀ LüÀ M1À MLÀ M�À MÁÀ MÕÀ MáÀ NÀ NÀ N[À NeÀ NmÀ NnÀ N¥À N¶À NÐÀ NêÀ OÀ OÀ O2À OJÀ OdÀ OnÀ OˆÀ O´À OÍÀ OüÀ P3À PPÀ P^À PiÀ PpÀ PŽÀ P’À P“À PãÀ Q À QÀ QOÀ Q�À QåÀ R2À R�À RÎÀ RðÀ RöÀ S7À S=À SnÀ S|À S·À SäÀ TÀ TÀ T5À TVÀ TwÀ T�À T‡À TÇÀ TõÀ TýÀ UÀ UVÀ U‰À UÐÀ UäÀ VÀ V$À V*À VbÀ VlÀ V­À VÐÀ VìÀ WÀ W%À WSÀ WWÀ WXÀ WƒÀ W‰À WÓÀ X#À X)À XwÀ XÈÀ XÉÀ XúÀ YÀ YÀ YmÀ YsÀ YºÀ ZÀ Z4À Z:À ZˆÀ ZÐÀ [À [kÀ [–À [œÀ [éÀ \1À \pÀ \vÀ \ÄÀ ]À ]AÀ ]GÀ ]–À ]áÀ ^+À ^gÀ ^mÀ ^|À ^ŠÀ ^ŸÀ ^ìÀ _À _À _CÀ _dÀ _†À _¤À _¯À _ÖÀ _ûÀ ` À `AÀ `MÀ `XÀ `aÀ `gÀ `´À `ìÀ aÀ a"À a-À aRÀ a[À aaÀ a°À aóÀ bÀ b9À b?À b�À bŸÀ b°À bÀÀ bÑÀ cÀ c=À cuÀ c³À cÅÀ cÐÀ cÚÀ cúÀ d2À djÀ dqÀ d­À d±À d²À dÜÀ dâÀ e3À eqÀ e»À eÜÀ eâÀ f/À fhÀ fnÀ f¹À fèÀ fîÀ g<À gmÀ gºÀ gÐÀ h!À hGÀ hMÀ h†À hÙÀ iÀ iMÀ i~À i„À iÐÀ jÀ jÀ j[À j¢À j¨À jìÀ k*À kTÀ ktÀ k‘À k¨À k¼À kÕÀ kÛÀ kÜÀ l%À l+À luÀ l¶À l¼À mÀ m:À m@À mƒÀ mÐÀ müÀ nÀ nÀ nÀ n4À n�À nšÀ n À níÀ o/À o9À oaÀ o‰À o�À oŽÀ oÔÀ oÚÀ pÀ phÀ pnÀ p²À pëÀ q1À qFÀ qLÀ q�À q£À qæÀ r/À r|À r·À r½À s À sNÀ s›À sãÀ t+À ttÀ t‰À t�À tžÀ t¬À tÁÀ uÀ u&À u,À uLÀ u‘À u¹À uÌÀ ußÀ uòÀ vÀ vÀ v#À vLÀ vxÀ v|À v}À vËÀ vèÀ vîÀ w8À wˆÀ wÔÀ wúÀ x À xCÀ x{À x¤À x»À xýÀ y
À yOÀ yUÀ yVÀ yuÀ y­À y»À zÀ z%À z.À zRÀ zqÀ zyÀ zzÀ z§À zÑÀ z÷À {À {#À {HÀ {aÀ {”À {ÒÀ {äÀ {îÀ |À |3À |yÀ |ŠÀ |®À |¸À |ÂÀ |óÀ }À } À }IÀ }hÀ }pÀ }wÀ }•À }™À }šÀ }àÀ }æÀ ~6À ~<À ~‹À ~©À ~óÀ CÀ �À ÞÀ €*À €|À €¦À €âÀ €èÀ �+À �eÀ �ŽÀ �¥À �çÀ �ôÀ ‚9À ‚?À ‚@À ‚_À ‚—À ‚¥À ‚íÀ ƒÀ ƒÀ ƒ>À ƒ\À ƒjÀ ƒ�À ƒ©À ƒÜÀ „À „,À „6À „WÀ „wÀ „ÄÀ „ÎÀ „ØÀ …	À …#À …6À …_À …‹À …“À …šÀ …¸À …¼À …½À †
À †À †`À †�À †‡À †ÕÀ ‡À ‡SÀ ‡iÀ ‡ºÀ ‡àÀ ‡æÀ ˆ+À ˆrÀ ˆ�À ˆ“À ˆãÀ ‰/À ‰lÀ ‰»À ŠÀ ŠLÀ ŠRÀ Š¢À ŠêÀ ‹À ‹À ‹JÀ ‹—À ‹ØÀ ‹ÞÀ ‹íÀ ‹ûÀ Œ7À ŒQÀ Œ�À Œ‹À Œ¡À ŒÕÀ ŒÛÀ ŒíÀ ŒøÀ �À �)À �4À �?À �IÀ �ŠÀ �ÀÀ �øÀ ŽÀ ŽEÀ ŽuÀ Ž�À Ž–À Ž£À ŽÄÀ ŽÕÀ ŽèÀ �6À �TÀ �]À �cÀ �›À �ŸÀ � À �êÀ �ðÀ �9À �\À �¨À �ñÀ ‘À ‘aÀ ‘®À ‘ÕÀ ‘ÛÀ ’'À ’EÀ ’KÀ ’ŽÀ ’ÛÀ “À “QÀ “€À “„À “…À “ÂÀ “ÈÀ ”À ”.À ”€À ”ÒÀ ”ØÀ •"À •JÀ •PÀ • À •ÁÀ –	À –-À –_À –®À –²À –³À –åÀ –ëÀ —À —NÀ —›À —¼À —ÊÀ ˜À ˜À ˜RÀ ˜XÀ ˜�À ˜ÍÀ ˜÷À ™#À ™)À ™qÀ ™¨À ™íÀ š5À šsÀ š´À šôÀ ›2À ›nÀ ›´À ›ÝÀ ›áÀ ›âÀ œ(À œ.À œsÀ œ¨À œãÀ �À �IÀ �xÀ �~À �ÄÀ �âÀ �èÀ ž-À ž=À žƒÀ ž»À žÜÀ žâÀ žñÀ žÿÀ Ÿ@À Ÿ~À Ÿ™À Ÿ£À ŸÚÀ   À  À  .À  dÀ  pÀ  –À  ©À  ÃÀ  ëÀ ¡#À ¡NÀ ¡ŠÀ ¡›À ¡¾À ¡ÈÀ ¡ÑÀ ¡ìÀ ¡óÀ ¢À ¢0À ¢sÀ ¢�À ¢ÉÀ ¢ØÀ ¢ñÀ £À £À £À £.À £2À £3À £yÀ £À £ÂÀ ¤À ¤À ¤^À ¤—À ¤�À ¤ãÀ ¥À ¥IÀ ¥OÀ ¥•À ¥ÍÀ ¥îÀ ¥ôÀ ¦À ¦À ¦RÀ ¦—À ¦²À ¦¼À §À §*À §FÀ §|À §ˆÀ §®À §ÁÀ §âÀ §ëÀ ¨À ¨À ¨3À ¨tÀ ¨ŽÀ ¨ÆÀ ¨ÎÀ ¨áÀ ¨åÀ ¨æÀ ©1À ©7À ©‡À ©ÏÀ ©æÀ ©ìÀ ª=À ªLÀ ªRÀ ª À ªØÀ ªôÀ ªúÀ «	À «À «bÀ «yÀ «¦À «°À «áÀ ¬À ¬;À ¬RÀ ¬ˆÀ ¬”À ¬ºÀ ¬ÍÀ ¬úÀ ­À ­À ­%À ­>À ­VÀ ­pÀ ­„À ­«À ­ÊÀ ®À ®&À ®4À ®NÀ ®jÀ ®“À ®£À ®ÀÀ ®ÔÀ ®ûÀ ¯À ¯fÀ ¯vÀ ¯…À ¯ŒÀ ¯ŸÀ ¯£À ¯¤À ¯óÀ ¯ùÀ °CÀ °•À °åÀ °ôÀ °úÀ ±BÀ ±zÀ ±–À ±œÀ ±«À ±¹À ²À ²%À ²BÀ ²LÀ ²vÀ ²¢À ²ØÀ ²äÀ ³
À ³À ³>À ³GÀ ³bÀ ³iÀ ³�À ³ÎÀ ³åÀ ´À ´&À ´^À ´fÀ ´yÀ ´}À ´~À ´¶À ´¼À µÀ µÀ µ$À µlÀ µ¡À µ½À µîÀ ¶À ¶DÀ ¶PÀ ¶vÀ ¶‰À ¶©À ¶²À ¶ÍÀ ¶ÔÀ ¶úÀ ·À ·3À ·CÀ ·yÀ ·‚À ·ŠÀ ·�À ·¡À ·¢À ·ìÀ ·òÀ ¸%À ¸vÀ ¸’À ¸˜À ¸âÀ ¹À ¹À ¹bÀ ¹šÀ ¹¶À ¹¼À ¹ËÀ ¹ÙÀ ¹îÀ º<À ºTÀ ºyÀ º—À º¡À ºÎÀ ºúÀ »0À »<À »bÀ »uÀ »•À »žÀ »¹À »ÀÀ »æÀ ¼À ¼7À ¼oÀ ¼yÀ ¼±À ¼¹À ¼ÌÀ ¼ÐÀ ¼ÑÀ ½À ½ À ½SÀ ½¢À ½¾À ½ÄÀ ¾À ¾CÀ ¾IÀ ¾�À ¾ÇÀ ¾ãÀ ¾éÀ ¾øÀ ¿À ¿À ¿iÀ ¿�À ¿°À ¿¶À ¿ÓÀ ¿ÝÀ ÀÀ À4À ÀjÀ ÀvÀ ÀœÀ À¯À ÀÐÀ ÀÙÀ ÀôÀ ÀûÀ Á!À ÁZÀ ÁqÀ Á¨À Á²À ÁêÀ ÁòÀ ÂÀ Â	À Â
À Â7À Â=À Â�À ÂÅÀ ÂËÀ ÂðÀ Ã(À ÃDÀ ÃJÀ Ã™À ÃÃÀ ÃÞÀ ÄÀ ÄÀ Ä,À Ä8À ÄIÀ ÄRÀ ÄxÀ Ä‹À Ä¬À ÄµÀ ÄÐÀ Ä×À ÄêÀ ÄîÀ ÄïÀ Å À Å&À ÅtÀ Å�À ÅßÀ ÅüÀ ÆÀ ÆSÀ Æ`À ÆfÀ ÆµÀ ÆéÀ ÇÀ Ç2À ÇhÀ ÇtÀ ÇšÀ Ç­À ÇÍÀ ÇÖÀ ÇñÀ ÇøÀ ÈÀ ÈJÀ ÈRÀ ÈeÀ ÈiÀ ÈjÀ È—À È�À ÈéÀ É2À ÉhÀ ÉiÀ É¡À É§À ÉòÀ ÊÀ Ê`À ÊfÀ Ê‹À ÊÃÀ ÊßÀ ÊüÀ ËÀ ËJÀ Ë[À ËlÀ Ë†À Ë�À ËµÀ ËÈÀ ËêÀ ËóÀ ÌÀ ÌÀ Ì(À Ì,À Ì-À Ì`À ÌfÀ Ì°À ÌÐÀ ÍÀ Í#À ÍbÀ Í«À ÍÌÀ Î	À Î"À Î(À ÎMÀ Î…À Î¡À Î¼À ÎÚÀ Ï
À ÏÀ Ï,À ÏFÀ ÏOÀ ÏuÀ ÏˆÀ ÏªÀ Ï³À ÏÎÀ ÏÕÀ ÏèÀ ÏìÀ ÏíÀ Ð=À ÐMÀ ÐSÀ Ð À ÐñÀ ÑÀ ÑÀ ÑaÀ ÑŽÀ Ñ”À ÑØÀ ÑíÀ ÑóÀ ÒCÀ ÒIÀ ÒXÀ ÒfÀ Ò¬À ÒÒÀ ÒÜÀ ÓÀ Ó$À ÓJÀ ÓPÀ Ó—À Ó›À ÓœÀ ÓáÀ ÓçÀ Ô0À ÔWÀ Ô¢À ÔÔÀ ÔÚÀ Õ)À ÕLÀ ÕRÀ Õ À ÕñÀ Õ÷À ÖFÀ Ö�À Ö–À ÖæÀ ×$À ×NÀ ×TÀ ×cÀ ×qÀ ×†À ×ËÀ ×äÀ ØÀ Ø)À ØGÀ ØoÀ ØsÀ ØtÀ Ø«À Ø±À ØõÀ Ù À ÙcÀ Ù©À Ù¯À ÙüÀ ÚJÀ ÚtÀ ÚzÀ Ú¼À ÚÂÀ ÛÀ Û^À Û’À Û˜À ÛÛÀ Ü"À ÜLÀ ÜRÀ ÜaÀ ÜoÀ Ü¿À ÜëÀ Ý&À Ý0À Ý^À ÝŠÀ ÝŽÀ Ý�À ÝËÀ ÝÑÀ ÞÀ Þ]À Þ€À Þ·À Þ½À Þ÷À ß:À ß@À ßƒÀ ßËÀ ßõÀ ßûÀ à
À àÀ à-À à{À àÊÀ àÔÀ àòÀ áÀ áÀ áÀ áiÀ áoÀ á±À â À â3À â{À â¼À âôÀ ãAÀ ãYÀ ã_À ã«À ã±À ãôÀ ä;À äeÀ äkÀ äzÀ äˆÀ äØÀ äìÀ åÀ åKÀ åUÀ åƒÀ å¯À å³À å´À åúÀ æ À æJÀ æ“À æØÀ ç À çCÀ çIÀ ç’À çÞÀ çäÀ è+À èpÀ è¶À èêÀ èðÀ é3À é€À é³À é¹À éÈÀ éÖÀ ê&À êdÀ ênÀ ê©À êÖÀ êÚÀ êÛÀ ëÀ ë	À ëYÀ ë_À ë­À ëúÀ ì2À ì8À ìˆÀ ì¬À ì²À íÀ í6À í<À í�À íœÀ í´À íÚÀ îÀ îÀ îBÀ îUÀ î{À î±À îÚÀ ïÀ ïÀ ï8À ï?À ïcÀ ï—À ïŸÀ ï²À ï¶À ï·À ïÞÀ ïäÀ ðÀ ðFÀ ðbÀ ðhÀ ð«À ðÞÀ ðõÀ ñÀ ñ.À ñLÀ ñXÀ ñjÀ ñ†À ñžÀ ñ§À ñÍÀ ñàÀ ñûÀ òÀ ò1À ò;À òaÀ ò—À òÀÀ òúÀ óÀ óÀ ó%À ó8À ó<À ó=À ófÀ ólÀ ó—À óÎÀ óêÀ óðÀ ô.À ôaÀ ôzÀ ô À ô³À ôÑÀ õÀ õÀ õ9À õLÀ õgÀ õ‹À õ�À õ§À õÍÀ öÀ ö,À öfÀ öoÀ öŠÀ ö‘À öµÀ öÎÀ öüÀ ÷"À ÷VÀ ÷À ÷ËÀ ÷ÛÀ ÷ãÀ ÷ýÀ øÀ øÀ ø.À ø2À ø3À øqÀ øwÀ øÆÀ øíÀ øóÀ ùÀ ù_À ù£À ùëÀ úÀ ú+À ú1À úxÀ úÆÀ úÌÀ ûÀ û4À û:À ûŒÀ ûÝÀ ü(À ü.À ü{À ü¥À üÛÀ üáÀ üðÀ üþÀ ý=À ý…À ý À ý¦À ýàÀ þ(À þCÀ þMÀ þ‹À þ®À þäÀ þðÀ ÿÀ ÿ)À ÿGÀ ÿ�À ÿ¢À ÿ¬À ÿÒÀ À 1À kÀ tÀ �À –À —À »À òÀ	ÀAÀKÀƒÀ‹ÀžÀ¢À£ÀàÀæÀ4À[ÀaÀ…À‹ÀÔÀÀÀeÀkÀºÀÖÀÜÀëÀùÀ@À‡À¢À¨ÀëÀ3ÀNÀXÀ•À¸ÀËÀéÀÀ+ÀQÀdÀÀ£ÀµÀ¿ÀÝÀ&À8ÀBÀhÀžÀÇÀÀ
À%À,À-ÀQÀˆÀŸÀ½À×ÀáÀ	À	!À	4À	8À	9À	xÀ	~À	ÎÀ	õÀ	ûÀ
À
%À
uÀ
·À
½ÀÀIÀOÀ—À�ÀçÀÀÀ*À8ÀzÀÃÀÞÀäÀ$ÀmÀˆÀŽÀÎÀÀ(À2ÀqÀ—ÀªÀÈÀþÀ
À0ÀCÀ^À‚À”ÀžÀ¼ÀÀÀ!ÀGÀ}À¦ÀàÀéÀÀÀÀ0ÀgÀ~À›ÀÅÀýÀ*ÀzÀŽÀšÀ¸ÀÒÀÜÀÀÀ/À3À4ÀxÀ~ÀËÀÛÀáÀ1À}À±À·ÀÀÀ#ÀpÀ‹À®ÀßÀÀÀGÀgÀsÀ™À¬ÀËÀìÀÿÀÀ6ÀQÀ^ÀzÀ…ÀŽÀ©À°ÀÔÀ÷À-À=ÀEÀ^ÀfÀgÀzÀ~ÀÀ¿ÀÅÀ
ÀSÀ£À¾ÀÄÀÀJÀ�ÀØÀóÀ0ÀzÀ½À ÀÀEÀŒÀÑÀÀZÀ`ÀªÀßÀ)ÀGÀMÀ�ÀÝÀ$ÀdÀjÀyÀ‡À¯ÀÔÀ À À RÀ ›À ¾À ÚÀ äÀ êÀ!#À!)À!;À!UÀ!cÀ!mÀ!½À!æÀ!ýÀ"?À"LÀ"‘À"—À"˜À"¶À"ÜÀ# À#À#:À#WÀ#‘À#¡À#¬À#µÀ#ÂÀ$À$%À$.À$hÀ$…À$ÄÀ% À%À%'À%-À%.À%bÀ%�À%ÃÀ%ïÀ&;À&NÀ&kÀ&…À&ÅÀ'À'4À'pÀ'²À'ÓÀ'ÞÀ(À(2À(rÀ(’À(¥À(½À(ëÀ(öÀ)À)&À)DÀ)PÀ)~À)ŸÀ)·À)ÝÀ)æÀ* À*À*.À*JÀ*lÀ*xÀ*”À*·À*ùÀ+À+À+À+À+4À+8À+:À+;À+iÀ+mÀ+¦À+ÕÀ+ÙÀ,À,FÀ,ŒÀ,ÄÀ,ÈÀ,ÕÀ,áÀ-.À-AÀ-EÀ-’À-šÀ-ÆÀ-ÜÀ-ñÀ.À.5À.=À.jÀ.€À.•À.°À.ÛÀ.ãÀ/À/'À/<À/WÀ/_À/�À/±À/·À/úÀ0 À0OÀ0sÀ0yÀ0¿À0ÒÀ0ØÀ1%À1vÀ1¾À2À2À2bÀ2ƒÀ2œÀ2�À2ÙÀ2ßÀ3+À3PÀ3ŠÀ3�À3ØÀ4À4:À4;À4xÀ4~À4ÅÀ5À57À5=À5ƒÀ5ÊÀ5ìÀ5òÀ66À6QÀ6WÀ6ŸÀ6ñÀ7À7À7UÀ7[À7�À7áÀ7çÀ8/À8€À8£À8¤À8çÀ8íÀ9,À9uÀ9˜À9ãÀ9úÀ:DÀ:JÀ:‘À:×À;À;À;nÀ;¬À;ÙÀ<(À<[À<aÀ<’À<˜À<ÜÀ=À=XÀ=¥À=ôÀ>À>À>[À>¡À>ÍÀ>ÎÀ>ëÀ>ñÀ?!À?lÀ?±À?æÀ?ìÀ@;À@]À@nÀ@oÀ@«À@±À@ùÀA@ÀAVÀA\ÀA¡ÀAÙÀAîÀAïÀB9ÀB?ÀBŒÀBÃÀBÉÀCÀCVÀC\ÀC ÀCµÀC»ÀD
ÀDTÀDeÀD�ÀD’ÀD“ÀD½ÀDÁÀEÀEEÀEIÀE’ÀEØÀEþÀF9ÀF`ÀFfÀF‘ÀF¦ÀF§ÀFÊÀFÐÀFûÀG4ÀG5ÀGLÀGRÀG™ÀGŸÀGäÀGôÀGöÀG÷ÀH6ÀH^ÀHyÀHzÀH³ÀH´ÀHãÀHäÀIÀI<ÀItÀI¿ÀIÀÀIàÀIýÀJÀJ(ÀJAÀJHÀJcÀJqÀJ‰ÀJŸÀJÃÀJÊÀJÎÀJÐÀJÑÀKÀKÀKiÀKµÀKæÀKêÀL4ÀL{ÀL·ÀLäÀMÀMÀMPÀMVÀM¥ÀMÝÀN'ÀNLÀNRÀN–ÀNÙÀO*ÀO0ÀOzÀOÂÀP ÀP&ÀP'ÀPgÀPmÀP·ÀPáÀPçÀQ2ÀQƒÀQ­ÀQ¿ÀQÁÀQÂÀRÀRÀRdÀRhÀR³ÀRùÀS$ÀS(ÀSqÀS¿ÀSØÀSÜÀT&ÀT<ÀT@ÀT€ÀT§ÀTØÀUÀU!ÀUnÀU˜ÀUžÀUìÀV=ÀVgÀVmÀV–ÀVœÀVìÀW:ÀW‡ÀWÏÀWÕÀX&ÀXXÀXjÀXkÀX·ÀX½ÀXìÀY;ÀYrÀYxÀY¸ÀY¾ÀZÀZLÀZ†ÀZ™ÀZ›ÀZœÀZµÀZ¹ÀZùÀ[EÀ[…À[¤À[¨À[÷À\À\"À\qÀ\uÀ\»À\úÀ]HÀ]pÀ]tÀ]ÁÀ^À^UÀ^¢À^³À^æÀ_2À_8À_„À_ÏÀ`À`UÀ`[À`£À`îÀ`ôÀaBÀa„ÀaÈÀbÀbÀb]Àb©ÀbçÀc,Àc2Àc�ÀcÓÀcüÀdÀdBÀdHÀd�ÀdÞÀe+ÀeDÀe‹ÀeÖÀfÀf"Àf1Àf7ÀfEÀf�ÀfáÀg
ÀgZÀg–Àg¹ÀgìÀhÀh1ÀhSÀh`ÀhŒÀh´ÀháÀi#Ài8ÀicÀi�Ài¾ÀiÉÀjÀj*ÀjYÀjaÀjgÀj‹ÀjÐÀjÖÀjïÀkÀk ÀkCÀk�Àk¹ÀkºÀlÀlÀlBÀlHÀlVÀl£ÀlâÀlÿÀm?ÀmNÀmXÀm^Àm­ÀmúÀn!Àn'ÀnvÀn«Àn±ÀoÀoRÀo ÀoîÀp&Àp,Àp|ÀpÄÀqÀq'Àq-ÀqyÀqÈÀrÀr_ÀryÀrÀrÂÀsÀsIÀs�Às“ÀsÚÀt$Àt0Àt6ÀtqÀtµÀtúÀuEÀu^Àu¡ÀuêÀvÀvÀvÀvWÀvxÀv—Àv½ÀvåÀwÀwÀw"Àw=ÀwxÀwªÀwáÀxÀxKÀxVÀx\ÀxƒÀx»ÀyÀyPÀy¡Ày¾ÀyÔÀyêÀzÀzÀz2ÀzJÀzTÀzÀz°ÀzÿÀ{(À{PÀ{QÀ{‘À{—À{çÀ|5À|eÀ|kÀ|ˆÀ|ÒÀ}#À}-À}xÀ}œÀ}�À}ØÀ}ÞÀ~(À~xÀ~~À~ÌÀÀ7ÀtÀšÀ ÀÚÀÞÀßÀ€À€À€YÀ€rÀ€xÀ€·À€âÀ�/À�wÀ�½À�ÃÀ‚À‚'À‚sÀ‚¾À‚ÐÀƒÀƒkÀƒqÀƒÃÀ„À„[À„aÀ„šÀ„ÝÀ…À…dÀ…ˆÀ…‰À…×À…ÝÀ†)À†jÀ†´À†ÚÀ‡À‡À‡	À‡>À‡BÀ‡†À‡ÖÀ‡÷À‡øÀˆ&Àˆ\Àˆ^Àˆ_ÀˆžÀˆ¢ÀˆéÀ‰5À‰WÀ‰[À‰•À‰™À‰éÀŠ3ÀŠ`ÀŠ�ÀŠ»ÀŠýÀ‹À‹AÀ‹BÀ‹xÀ‹~À‹ÈÀŒÀŒ4ÀŒ~ÀŒ®ÀŒüÀ�À�#À�nÀ��À�«À�¬À�ÓÀ�ÙÀŽ'ÀŽxÀŽÊÀ�À� À�hÀ�¬À�öÀ�EÀ�“À�¤À�¥À�÷À�ýÀ‘JÀ‘{À‘�À‘ÎÀ’À’5À’;À’~À’½À’ìÀ’òÀ“<À“†À“›À“®À“°À“±À“ùÀ”8À”LÀ”wÀ”xÀ””À”ªÀ”èÀ”ùÀ”ýÀ”þÀ•À•0À•4À•5À•hÀ•—À•›À•œÀ•­À•ÈÀ•ÌÀ•ÎÀ•ÏÀ–À–À–QÀ–rÀ–ÀÀ—À—À—pÀ—ÁÀ—ÍÀ—ÿÀ˜$À˜FÀ˜LÀ˜“À˜ÖÀ™À™EÀ™^À™_À™‡À™�À™ÙÀšÀšYÀš‹ÀšÈÀšÉÀ› À›À›PÀ›iÀ›¬À›éÀœÀœhÀœ¢Àœ¶Àœ¸       �²À)‡™¤™¤—Ç/// A source of asynchronous data events.
///
/// A Stream provides a way to receive a sequence of events.
/// Each event is either a data event, also called an *element* of the stream,
/// or an error event, which is a notification that something has failed.
/// When a stream has emitted all its events,
/// a single "done" event notifies the listener that the end has been reached.
///
/// You produce a stream by calling an `async*` function, which then returns
/// a stream. Consuming that stream will lead the function to emit events
/// until it ends, and the stream closes.
/// You consume a stream either using an `await for` loop, which is available
/// inside an `async` or `async*` function, or by forwarding its events directly
/// using `yield*` inside an `async*` function.
/// Example:
/// ```dart
/// Stream<T> optionalMap<T>(
///     Stream<T> source , [T Function(T)? convert]) async* {
///   if (convert == null) {
///     yield* source;
///   } else {
///     await for (var event in source) {
///       yield convert(event);
///     }
///   }
/// }
/// ```
/// When this function is called, it immediately returns a `Stream<T>` object.
/// Then nothing further happens until someone tries to consume that stream.
/// At that point, the body of the `async*` function starts running.
/// If the `convert` function was omitted, the `yield*` will listen to the
/// `source` stream and forward all events, date and errors, to the returned
/// stream. When the `source` stream closes, the `yield*` is done,
/// and the `optionalMap` function body ends too. This closes the returned
/// stream.
/// If a `convert` *is* supplied, the function instead listens on the source
/// stream and enters an `await for` loop which
/// repeatedly waits for the next data event.
/// On a data event, it calls `convert` with the value and emits the result
/// on the returned stream.
/// If no error events are emitted by the `source` stream,
/// the loop ends when the `source` stream does,
/// then the `optionalMap` function body completes,
/// which closes the returned stream.
/// On an error event from the `source` stream,
/// the `await for` re-throws that error, which breaks the loop.
/// The error then reaches the end of the `optionalMap` function body,
/// since it's not caught.
/// That makes the error be emitted on the returned stream, which then closes.
///
/// The `Stream` class also provides functionality which allows you to
/// manually listen for events from a stream, or to convert a stream
/// into another stream or into a future.
///
/// The [forEach] function corresponds to the `await for` loop,
/// just as [Iterable.forEach] corresponds to a normal `for`/`in` loop.
/// Like the loop, it will call a function for each data event and break on an
/// error.
///
/// The more low-level [listen] method is what every other method is based on.
/// You call `listen` on a stream to tell it that you want to receive
/// events, and to register the callbacks which will receive those events.
/// When you call `listen`, you receive a [StreamSubscription] object
/// which is the active object providing the events,
/// and which can be used to stop listening again,
/// or to temporarily pause events from the subscription.
///
/// There are two kinds of streams: "Single-subscription" streams and
/// "broadcast" streams.
///
/// *A single-subscription stream* allows only a single listener during the whole
/// lifetime of the stream.
/// It doesn't start generating events until it has a listener,
/// and it stops sending events when the listener is unsubscribed,
/// even if the source of events could still provide more.
/// The stream created by an `async*` function is a single-subscription stream,
/// but each call to the function creates a new such stream.
///
/// Listening twice on a single-subscription stream is not allowed, even after
/// the first subscription has been canceled.
///
/// Single-subscription streams are generally used for streaming chunks of
/// larger contiguous data, like file I/O.
///
/// *A broadcast stream* allows any number of listeners, and it fires
/// its events when they are ready, whether there are listeners or not.
///
/// Broadcast streams are used for independent events/observers.
///
/// If several listeners want to listen to a single-subscription stream,
/// use [asBroadcastStream] to create a broadcast stream on top of the
/// non-broadcast stream.
///
/// On either kind of stream, stream transformations, such as [where] and
/// [skip], return the same type of stream as the one the method was called on,
/// unless otherwise noted.
///
/// When an event is fired, the listener(s) at that time will receive the event.
/// If a listener is added to a broadcast stream while an event is being fired,
/// that listener will not receive the event currently being fired.
/// If a listener is canceled, it immediately stops receiving events.
/// Listening on a broadcast stream can be treated as listening on a new stream
/// containing only the events that have not yet been emitted when the [listen]
/// call occurs.
/// For example the [first] getter listens to the stream, then returns the first
/// event that listener receives.
/// This is not necessarily the first even emitted by the stream, but the first
/// of the *remaining* events of the broadcast stream.
///
/// When the "done" event is fired, subscribers are unsubscribed before
/// receiving the event. After the event has been sent, the stream has no
/// subscribers. Adding new subscribers to a broadcast stream after this point
/// is allowed, but they will just receive a new "done" event as soon
/// as possible.
///
/// Stream subscriptions always respect "pause" requests. If necessary they need
/// to buffer their input, but often, and preferably they can simply request
/// their input to pause too.
///
/// The default implementation of [isBroadcast] returns false.
/// A broadcast stream inheriting from [Stream] must override [isBroadcast]
/// to return `true` if it wants to signal that it behaves like a broadcast
/// stream.™«™«™«
™²™¸ ™¸™¾    ™Åƒœ‹œ‘œ’œ—œ’‚…/// Creates an empty broadcast stream.
///
/// This is a stream which does nothing except sending a done event
/// when it's listened to.
///
/// Example:
/// ```dart
/// const stream = Stream.empty();
/// stream.listen(
///   (value) {
///     throw "Unreachable";
///   },
///   onDone: () {
///     print('Done');
///   },
/// );
/// ```
///
/// The stream defaults to being a broadcast stream,
/// as reported by [isBroadcast].
/// This value can be changed by passing `false` as
/// the [broadcast] parameter, which defaults to `true`.
///
/// The stream can be listened to more than once,
/// whether it reports itself as broadcast or not.œ™œ­œ¬  œ™œšœŸœ¥œ œÎ‚âŸŸŸŸŸ‚/// Creates a stream which emits a single data event before closing.
///
/// This stream emits a single data event of [value]
/// and then closes with a done event.
///
/// Example:
/// ```dart
/// Future<void> printThings(Stream<String> data) async {
///   await for (var x in data) {
///     print(x);
///   }
/// }
/// printThings(Stream<String>.value('ok')); // prints "ok".
/// ```
///
/// The returned stream is effectively equivalent to one created by
/// `(() async* { yield value; } ())` or `Future<T>.value(value).asStream()`.ŸŸ!Ÿ    Ÿ´„¢¨¢®¢¯¢´¢¯‚¿/// Creates a stream which emits a single error event before completing.
///
/// This stream emits a single error event of [error] and [stackTrace]
/// and then completes with a done event.
///
/// Example:
/// ```dart
/// Future<void> tryThings(Stream<int> data) async {
///   try {
///     await for (var x in data) {
///       print('Data: $x');
///     }
///   } catch (e) {
///     print(e);
///   }
/// }
/// tryThings(Stream<int>.error('Error')); // prints "Error".
/// ```
/// The returned stream is effectively equivalent to one created by
/// `Future<T>.error(error, stackTrace).asStream()`, by or
/// `(() async* { throw error; } ())`, except that you can control the
/// stack trace as well.¢µ¢½¢¼  ¢Ä¢Ñ¢Ð   £Ë…$¦a¦g¦h¦r¦h‚e/// Creates a new single-subscription stream from the future.
///
/// When the future completes, the stream will fire one event, either
/// data or error, and then close with a done-event.
///
/// Example:
/// ```dart
/// Future<String> futureTask() async {
///   await Future.delayed(const Duration(seconds: 5));
///   return 'Future complete';
/// }
///
/// final stream = Stream<String>.fromFuture(futureTask());
/// stream.listen(print,
///     onDone: () => print('Done'), onError: print);
///
/// // Outputs:
/// // "Future complete" after 'futureTask' finished.
/// // "Done" when stream completed.
/// ```¦s¦~¦}   ¨ó‰f­º­À­Á­Ì­Á„z/// Create a single-subscription stream from a group of futures.
///
/// The stream reports the results of the futures on the stream in the order
/// in which the futures complete.
/// Each future provides either a data event or an error event,
/// depending on how the future completes.
///
/// If some futures have already completed when `Stream.fromFutures` is called,
/// their results will be emitted in some unspecified order.
///
/// When all futures have completed, the stream is closed.
///
/// If [futures] is empty, the stream closes as soon as possible.
///
/// Example:
/// ```dart
/// Future<int> waitTask() async {
///   await Future.delayed(const Duration(seconds: 2));
///   return 10;
/// }
///
/// Future<String> doneTask() async {
///   await Future.delayed(const Duration(seconds: 5));
///   return 'Future complete';
/// }
///
/// final stream = Stream<Object>.fromFutures([doneTask(), waitTask()]);
/// stream.listen(print, onDone: () => print('Done'), onError: print);
///
/// // Outputs:
/// // 10 after 'waitTask' finished.
/// // "Future complete" after 'doneTask' finished.
/// // "Done" when stream completed.
/// ```­Í­â­á   ²]‰Åµ¥µ«µ¬µ¸µ¬ƒ/// Creates a stream that gets its data from [elements].
///
/// The iterable is iterated when the stream receives a listener, and stops
/// iterating if the listener cancels the subscription, or if the
/// [Iterator.moveNext] method returns `false` or throws.
/// Iteration is suspended while the stream subscription is paused.
///
/// If calling [Iterator.moveNext] on `elements.iterator` throws,
/// the stream emits that error and then it closes.
/// If reading [Iterator.current] on `elements.iterator` throws,
/// the stream emits that error, but keeps iterating.
///
/// Can be listened to more than once. Each listener iterates [elements]
/// independently.
///
/// Example:
/// ```dart
/// final numbers = [1, 2, 3, 5, 6, 7];
/// final stream = Stream.fromIterable(numbers);
/// ```µ¹µÆµÅ   ¼&‹MÀ FÒÀ FØÀ FÙÀ FÞÀ FÙŠ%/// Creates a multi-subscription stream.
///
/// Each time the created stream is listened to,
/// the [onListen] callback is invoked with a new [MultiStreamController],
/// which forwards events to the [StreamSubscription]
/// returned by that [listen] call.
///
/// This allows each listener to be treated as an individual stream.
///
/// The [MultiStreamController] does not support reading its
/// [StreamController.stream]. Setting its [StreamController.onListen]
/// has no effect since the [onListen] callback is called instead,
/// and the [StreamController.onListen] won't be called later.
/// The controller acts like an asynchronous controller,
/// but provides extra methods for delivering events synchronously.
///
/// If [isBroadcast] is set to `true`, the returned stream's
/// [Stream.isBroadcast] will be `true`.
/// This has no effect on the stream behavior,
/// it is up to the [onListen] function
/// to act like a broadcast stream if it claims to be one.
///
/// A multi-subscription stream can behave like any other stream.
/// If the [onListen] callback throws on every call after the first,
/// the stream behaves like a single-subscription stream.
/// If the stream emits the same events to all current listeners,
/// it behaves like a broadcast stream.
///
/// It can also choose to emit different events to different listeners.
/// For example, a stream which repeats the most recent
/// non-`null` event to new listeners, could be implemented as this example:
/// ```dart
/// extension StreamRepeatLatestExtension<T extends Object> on Stream<T> {
///   Stream<T> repeatLatest() {
///     var done = false;
///     T? latest = null;
///     var currentListeners = <MultiStreamController<T>>{};
///     this.listen((event) {
///       latest = event;
///       for (var listener in [...currentListeners]) listener.addSync(event);
///     }, onError: (Object error, StackTrace stack) {
///       for (var listener in [...currentListeners]) listener.addErrorSync(error, stack);
///     }, onDone: () {
///       done = true;
///       latest = null;
///       for (var listener in currentListeners) listener.closeSync();
///       currentListeners.clear();
///     });
///     return Stream.multi((controller) {
///       if (done) {
///         controller.close();
///         return;
///       }
///       currentListeners.add(controller);
///       var latestValue = latest;
///       if (latestValue != null) controller.add(latestValue);
///       controller.onCancel = () {
///         currentListeners.remove(controller);
///       };
///     });
///   }
/// }
/// ```À Fä0À GÀ G  À GÀ G"À G!  À G/À Gw‰À JnÀ JtÀ JuÀ J}À Ju‚Ä/// Creates a stream that repeatedly emits events at [period] intervals.
///
/// The event values are computed by invoking [computation]. The argument to
/// this callback is an integer that starts with 0 and is incremented for
/// every event.
///
/// The [period] must be a non-negative [Duration].
///
/// If [computation] is omitted, the event values will all be `null`.
///
/// The [computation] must not be omitted if the event type [T] does not
/// allow `null` as a value.
///
/// Example:
/// ```dart
/// final stream =
///     Stream<int>.periodic(const Duration(
///         seconds: 1), (count) => count * count).take(5);
///
/// stream.forEach(print); // Outputs event values 0,1,4,9,16.
/// ```À JƒÀ J�À JŒ  À Jš$À J�À Jœ À J¨À J­À J¬   À P•†ÁÀ V·À V½À V¾À VÎÀ V¾…Í/// Creates a stream where all events of an existing stream are piped through
/// a sink-transformation.
///
/// The given [mapSink] closure is invoked when the returned stream is
/// listened to. All events from the [source] are added into the event sink
/// that is returned from the invocation. The transformation puts all
/// transformed events into the sink the [mapSink] closure received during
/// its invocation. Conceptually the [mapSink] creates a transformation pipe
/// with the input sink being the returned [EventSink] and the output sink
/// being the sink it received.
///
/// This constructor is frequently used to build transformers.
///
/// Example use for a duplicating transformer:
/// ```dart
/// class DuplicationSink implements EventSink<String> {
///   final EventSink<String> _outputSink;
///   DuplicationSink(this._outputSink);
///
///   void add(String data) {
///     _outputSink.add(data);
///     _outputSink.add(data);
///   }
///
///   void addError(e, [st]) { _outputSink.addError(e, st); }
///   void close() { _outputSink.close(); }
/// }
///
/// class DuplicationTransformer extends StreamTransformerBase<String, String> {
///   // Some generic types omitted for brevity.
///   Stream bind(Stream stream) => Stream<String>.eventTransformed(
///       stream,
///       (EventSink sink) => DuplicationSink(sink));
/// }
///
/// stringStream.transform(DuplicationTransformer());
/// ```
/// The resulting stream is a broadcast stream if [source] is.À VÔÀ VåÀ Vä  À Vð-À WÀ W À WÀ WÀ W    À XËOÀ YÀ Y./// Whether this stream is a broadcast stream.   À Â‚áÀ ÃÕÀ ÃÕ�¢/// The number of elements in this stream.
///
/// Waits for all elements of this stream. When this stream ends,
/// the returned future is completed with the number of elements.
///
/// If this stream emits an error,
/// the returned future is completed with that error,
/// and processing stops.
///
/// This operation listens to this stream, and a non-broadcast stream cannot
/// be reused after finding its length.   À ÄñƒwÀ ÆüÀ Æü�á/// Whether this stream contains any elements.
///
/// Waits for the first element of this stream, then completes the returned
/// future with `false`.
/// If this stream ends without emitting any elements, the returned future is
/// completed with `true`.
///
/// If the first event is an error, the returned future is completed with that
/// error.
///
/// This operation listens to this stream, and a non-broadcast stream cannot
/// be reused after checking whether it is empty.   À êÝ„ØÀ í¬À í¬‚ /// The first element of this stream.
///
/// Stops listening to this stream after the first element has been received.
///
/// Internally the method cancels its subscription after the first element.
/// This means that single-subscription (non-broadcast) streams are closed
/// and cannot be reused after a call to this getter.
///
/// If an error event occurs before the first data event, the returned future
/// is completed with that error.
///
/// If this stream is empty (a done event occurs before the first data event),
/// the returned future completes with an error.
///
/// Except for the type of the error, this method is equivalent to
/// `this.elementAt(0)`.   À ï¹ƒ‚À ðîÀ ðî�/// The last element of this stream.
///
/// If this stream emits an error event,
/// the returned future is completed with that error
/// and processing stops.
///
/// If this stream is empty (the done event is the first event),
/// the returned future completes with an error.   À ó?„òÀ ôqÀ ôq�/// The single element of this stream.
///
/// If this stream emits an error event,
/// the returned future is completed with that error
/// and processing stops.
///
/// If this [Stream] is empty or has more than one element,
/// the returned future completes with an error.     À WZ�mÀ XŠÀ XŠ�/// Adapts [source] to be a `Stream<T>`.
///
/// This allows [source] to be used at the new type, but at run-time it
/// must satisfy the requirements of both the new type and its original type.
///
/// Data events created by the source stream must also be instances of [T].À X“À X“À X“À X–À X–À X–À X™À X¤À X£   À Y‹’À cæÀ cæŠ3/// Returns a multi-subscription stream that produces the same events as this.
///
/// The returned stream will subscribe to this stream when its first
/// subscriber is added, and will stay subscribed until this stream ends,
/// or a callback cancels the subscription.
///
/// If [onListen] is provided, it is called with a subscription-like object
/// that represents the underlying subscription to this stream. It is
/// possible to pause, resume or cancel the subscription during the call
/// to [onListen]. It is not possible to change the event handlers, including
/// using [StreamSubscription.asFuture].
///
/// If [onCancel] is provided, it is called in a similar way to [onListen]
/// when the returned stream stops having listeners. If it later gets
/// a new listener, the [onListen] function is called again.
///
/// Use the callbacks, for example, for pausing the underlying subscription
/// while having no subscribers to prevent losing events, or canceling the
/// subscription when there are no listeners.
///
/// Cancelling is intended to be used when there are no current subscribers.
/// If the subscription passed to `onListen` or `onCancel` is cancelled,
/// then no further events are ever emitted by current subscriptions on
/// the returned broadcast stream, not even a done event.
///
/// Example:
/// ```dart
/// final stream =
///     Stream<int>.periodic(const Duration(seconds: 1), (count) => count)
///         .take(10);
///
/// final broadcastStream = stream.asBroadcastStream(
///   onCancel: (controller) {
///     print('Stream paused');
///     controller.pause();
///   },
///   onListen: (controller) async {
///     if (controller.isPaused) {
///       print('Stream resumed');
///       controller.resume();
///     }
///   },
/// );
///
/// final oddNumberStream = broadcastStream.where((event) => event.isOdd);
/// final oddNumberListener = oddNumberStream.listen(
///       (event) {
///     print('Odd: $event');
///   },
///   onDone: () => print('Done'),
/// );
///
/// final evenNumberStream = broadcastStream.where((event) => event.isEven);
/// final evenNumberListener = evenNumberStream.listen((event) {
///   print('Even: $event');
/// }, onDone: () => print('Done'));
///
/// await Future.delayed(const Duration(milliseconds: 3500)); // 3.5 second
/// // Outputs:
/// // Even: 0
/// // Odd: 1
/// // Even: 2
/// oddNumberListener.cancel(); // Nothing printed.
/// evenNumberListener.cancel(); // "Stream paused"
/// await Future.delayed(const Duration(seconds: 2));
/// print(await broadcastStream.first); // "Stream resumed"
/// // Outputs:
/// // 3
/// ``` À cþ2À dÀ d À d"À d#À d"  À d62À d<À d; À dD"À d[À dZ   À d´‡&À klÀ kl†[/// Adds a subscription to this stream.
///
/// Returns a [StreamSubscription] which handles events from this stream using
/// the provided [onData], [onError] and [onDone] handlers.
/// The handlers can be changed on the subscription, but they start out
/// as the provided functions.
///
/// On each data event from this stream, the subscriber's [onData] handler
/// is called. If [onData] is `null`, nothing happens.
///
/// On errors from this stream, the [onError] handler is called with the
/// error object and possibly a stack trace.
///
/// The [onError] callback must be of type `void Function(Object error)` or
/// `void Function(Object error, StackTrace)`.
/// The function type determines whether [onError] is invoked with a stack
/// trace argument.
/// The stack trace argument may be [StackTrace.empty] if this stream received
/// an error without a stack trace.
///
/// Otherwise it is called with just the error object.
/// If [onError] is omitted, any errors on this stream are considered unhandled,
/// and will be passed to the current [Zone]'s error handler.
/// By default unhandled async errors are treated
/// as if they were uncaught top-level errors.
///
/// If this stream closes and sends a done event, the [onDone] handler is
/// called. If [onDone] is `null`, nothing happens.
///
/// If [cancelOnError] is `true`, the subscription is automatically canceled
/// when the first error event is delivered. The default is `false`.
///
/// While a subscription is paused, or when it has been canceled,
/// the subscription doesn't receive events and none of the
/// event handler functions are called. À kxÀ k~À k} À k„À k‡À k†  À k•À k À kŸ  À k¬À k²À k±  À kÀÀ kÇÀ kÆ   À kÞƒ®À oEÀ oEƒ2/// Creates a new stream from this stream that discards some elements.
///
/// The new stream sends the same error and done events as this stream,
/// but it only sends the data events that satisfy the [test].
///
/// If the [test] function throws, the data event is dropped and the
/// error is emitted on the returned stream instead.
///
/// The returned stream is a broadcast stream if this stream is.
/// If a broadcast stream is listened to more than once, each subscription
/// will individually perform the `test`.
///
/// Example:
/// ```dart
/// final stream =
///     Stream<int>.periodic(const Duration(seconds: 1), (count) => count)
///         .take(10);
///
/// final customStream = stream.where((event) => event > 3 && event <= 6);
/// customStream.listen(print); // Outputs event values: 4,5,6.
/// ``` À oKÀ oQÀ oP À oUÀ oXÀ oW   À o�†ëÀ v/À v/†D/// Transforms each element of this stream into a new stream event.
///
/// Creates a new stream that converts each element of this stream
/// to a new value using the [convert] function, and emits the result.
///
/// For each data event, `o`, in this stream, the returned stream
/// provides a data event with the value `convert(o)`.
/// If [convert] throws, the returned stream reports it as an error
/// event instead.
///
/// Error and done events are passed through unchanged to the returned stream.
///
/// The returned stream is a broadcast stream if this stream is.
/// The [convert] function is called once per data event per listener.
/// If a broadcast stream is listened to more than once, each subscription
/// will individually call [convert] on each data event.
///
/// Unlike [transform], this method does not treat the stream as
/// chunks of a single value. Instead each event is converted independently
/// of the previous and following events, which may not always be correct.
/// For example, UTF-8 encoding, or decoding, will give wrong results
/// if a surrogate pair, or a multibyte UTF-8 encoding, is split into
/// separate events, and those events are attempted encoded or decoded
/// independently.
///
/// Example:
/// ```dart
/// final stream =
///     Stream<int>.periodic(const Duration(seconds: 1), (count) => count)
///         .take(5);
///
/// final calculationStream =
///     stream.map<String>((event) => 'Square: ${event * event}');
/// calculationStream.forEach(print);
/// // Square: 0
/// // Square: 1
/// // Square: 4
/// // Square: 9
/// // Square: 16
/// ```À v3À v3À v3À v6À v9À v8 À v@À vCÀ vB   À v‡À xOÀ xO�³/// Creates a new stream with each data event of this stream asynchronously
/// mapped to a new event.
///
/// This acts like [map], in that [convert] function is called once per
/// data event, but here [convert] may be asynchronous and return a [Future].
/// If that happens, this stream waits for that future to complete before
/// continuing with further events.
///
/// The returned stream is a broadcast stream if this stream is.À xXÀ xXÀ xXÀ x[À xhÀ xg À xoÀ xrÀ xq   À }œˆÀ �7À �7ƒp/// Transforms each element into a sequence of asynchronous events.
///
/// Returns a new stream and for each event of this stream, do the following:
///
/// * If the event is an error event or a done event, it is emitted directly
/// by the returned stream.
/// * Otherwise it is an element. Then the [convert] function is called
/// with the element as argument to produce a convert-stream for the element.
/// * If that call throws, the error is emitted on the returned stream.
/// * If the call returns `null`, no further action is taken for the elements.
/// * Otherwise, this stream is paused and convert-stream is listened to.
/// Every data and error event of the convert-stream is emitted on the returned
/// stream in the order it is produced.
/// When the convert-stream ends, this stream is resumed.
///
/// The returned stream is a broadcast stream if this stream is.À �CÀ �CÀ �CÀ �FÀ �RÀ �Q À �YÀ �\À �[   À …¿‰ßÀ �UÀ �U‡-/// Creates a wrapper Stream that intercepts some errors from this stream.
///
/// If this stream sends an error that matches [test], then it is intercepted
/// by the [onError] function.
///
/// The [onError] callback must be of type `void Function(Object error)` or
/// `void Function(Object error, StackTrace)`.
/// The function type determines whether [onError] is invoked with a stack
/// trace argument.
/// The stack trace argument may be [StackTrace.empty] if this stream received
/// an error without a stack trace.
///
/// An asynchronous error `error` is matched by a test function if
/// `test(error)` returns true. If [test] is omitted, every error is
/// considered matching.
///
/// If the error is intercepted, the [onError] function can decide what to do
/// with it. It can throw if it wants to raise a new (or the same) error,
/// or simply return to make this stream forget the error.
/// If the received `error` value is thrown again by the [onError] function,
/// it acts like a `rethrow` and it is emitted along with its original
/// stack trace, not the stack trace of the `throw` inside [onError].
///
/// If you need to transform an error into a data event, use the more generic
/// [Stream.transform] to handle the event by writing a data event to
/// the output sink.
///
/// The returned stream is a broadcast stream if this stream is.
/// If a broadcast stream is listened to more than once, each subscription
/// will individually perform the `test` and handle the error.
///
/// Example:
/// ```dart
/// Stream.periodic(const Duration(seconds: 1), (count) {
///   if (count == 2) {
///     throw Exception('Exceptional event');
///   }
///   return count;
/// }).take(4).handleError(print).forEach(print);
///
/// // Outputs:
/// // 0
/// // 1
/// // Exception: Exceptional event
/// // 3
/// // 4
/// ``` À �aÀ �kÀ �j  À �tÀ �zÀ �y À �~À �À �~   À �¢ƒáÀ “%À “%ƒV/// Transforms each element of this stream into a sequence of elements.
///
/// Returns a new stream where each element of this stream is replaced
/// by zero or more data events.
/// The event values are provided as an [Iterable] by a call to [convert]
/// with the element as argument, and the elements of that iterable is
/// emitted in iteration order.
/// If calling [convert] throws, or if the iteration of the returned values
/// throws, the error is emitted on the returned stream and iteration ends
/// for that element of this stream.
///
/// Error events and the done event of this stream are forwarded directly
/// to the returned stream.
///
/// The returned stream is a broadcast stream if this stream is.
/// If a broadcast stream is listened to more than once, each subscription
/// will individually call `convert` and expand the events.À “,À “,À “,À “/À “<À “; À “C	À “FÀ “E   À “‡ƒ*À –6À –6‚‹/// Pipes the events of this stream into [streamConsumer].
///
/// All events of this stream are added to `streamConsumer` using
/// [StreamConsumer.addStream].
/// The `streamConsumer` is closed when this stream has been successfully added
/// to it - when the future returned by `addStream` completes without an error.
///
/// Returns a future which completes when this stream has been consumed
/// and the consumer has been closed.
///
/// The returned future completes with the same result as the future returned
/// by [StreamConsumer.close].
/// If the call to [StreamConsumer.addStream] fails in some way, this
/// method fails in the same way. À –; À –NÀ –M   À –µ…+À ›zÀ ›z„ˆ/// Applies [streamTransformer] to this stream.
///
/// Returns the transformed stream,
/// that is, the result of `streamTransformer.bind(this)`.
/// This method simply allows writing the call to `streamTransformer.bind`
/// in a chained fashion, like
/// ```dart
/// stream.map(mapping).transform(transformation).toList()
/// ```
/// which can be more convenient than calling `bind` directly.
///
/// The [streamTransformer] can return any stream.
/// Whether the returned stream is a broadcast stream or not,
/// and which elements it will contain,
/// is entirely up to the transformation.
///
/// This method should always be used for transformations which treat
/// the entire stream as representing a single value
/// which has perhaps been split into several parts for transport,
/// like a file being read from disk or being fetched over a network.
/// The transformation will then produce a new stream which
/// transforms the stream's value incrementally (perhaps using
/// [Converter.startChunkedConversion]). The resulting stream
/// may again be chunks of the result, but does not have to
/// correspond to specific events from the source string.À ›„À ›„À ›„À ›‡)À › À ›Ÿ   À ›ä‡MÀ Ÿ¯À Ÿ¯ƒ�/// Combines a sequence of values by repeatedly applying [combine].
///
/// Similar to [Iterable.reduce], this function maintains a value,
/// starting with the first element of this stream
/// and updated for each further element of this stream.
/// For each element after the first,
/// the value is updated to the result of calling [combine]
/// with the previous value and the element.
///
/// When this stream is done, the returned future is completed with
/// the value at that time.
///
/// If this stream is empty, the returned future is completed with
/// an error.
/// If this stream emits an error, or the call to [combine] throws,
/// the returned future is completed with that error,
/// and processing is stopped.
///
/// Example:
/// ```dart
/// final result = await Stream.fromIterable([2, 6, 10, 8, 2])
///     .reduce((previous, element) => previous + element);
/// print(result); // 28
/// ``` À Ÿ¶ À Ÿ¹À Ÿ¸ À ŸÀ
À ŸÃÀ ŸÂ  À ŸÌ	À ŸÏÀ ŸÎ   À £5…¯À ¦ÈÀ ¦Èƒ\/// Combines a sequence of values by repeatedly applying [combine].
///
/// Similar to [Iterable.fold], this function maintains a value,
/// starting with [initialValue] and updated for each element of
/// this stream.
/// For each element, the value is updated to the result of calling
/// [combine] with the previous value and the element.
///
/// When this stream is done, the returned future is completed with
/// the value at that time.
/// For an empty stream, the future is completed with [initialValue].
///
/// If this stream emits an error, or the call to [combine] throws,
/// the returned future is completed with that error,
/// and processing is stopped.
///
/// Example:
/// ```dart
/// final result = await Stream.fromIterable([2, 6, 10, 8, 2])
///     .fold<int>(10, (previous, element) => previous + element);
/// print(result); // 38
/// ```À ¦ÍÀ ¦ÍÀ ¦ÍÀ ¦ÐÀ ¦ÓÀ ¦Ò  À ¦à À ¦ãÀ ¦â À ¦ê
À ¦íÀ ¦ì  À ¦ö	À ¦ùÀ ¦ø   À ¨è†ºÀ «ÁÀ «Á‚£/// Combines the string representation of elements into a single string.
///
/// Each element is converted to a string using its [Object.toString] method.
/// If [separator] is provided, it is inserted between element string
/// representations.
///
/// The returned future is completed with the combined string when this stream
/// is done.
///
/// If this stream emits an error, or the call to [Object.toString] throws,
/// the returned future is completed with that error,
/// and processing stops.
///
/// Example:
/// ```dart
/// final result = await Stream.fromIterable(['Mars', 'Venus', 'Earth'])
///     .join('--');
/// print(result); // 'Mars--Venus--Earth'
/// ``` À «ÇÀ «ÏÀ «Î  À «ÚÀ ¯¦„ÖÀ ²[À ²[‚…/// Returns whether [needle] occurs in the elements provided by this stream.
///
/// Compares each element of this stream to [needle] using [Object.==].
/// If an equal element is found, the returned future is completed with `true`.
/// If this stream ends without finding a match, the future is completed with
/// `false`.
///
/// If this stream emits an error, or the call to [Object.==] throws,
/// the returned future is completed with that error,
/// and processing stops.
///
/// Example:
/// ```dart
/// final result = await Stream.fromIterable(['Year', 2021, 12, 24, 'Dart'])
///     .contains('Dart');
/// print(result); // true
/// ``` À ²dÀ ²mÀ ²l   À ´€ƒ À µÌÀ µÌ�./// Executes [action] on each element of this stream.
///
/// Completes the returned [Future] when all elements of this stream
/// have been processed.
///
/// If this stream emits an error, or if the call to [action] throws,
/// the returned future completes with that error,
/// and processing stops. À µÔÀ µÚÀ µÙ À µà	À µãÀ µâ   À ·¤…+À º°À º°‚Ô/// Checks whether [test] accepts all elements provided by this stream.
///
/// Calls [test] on each element of this stream.
/// If the call returns `false`, the returned future is completed with `false`
/// and processing stops.
///
/// If this stream ends without finding an element that [test] rejects,
/// the returned future is completed with `true`.
///
/// If this stream emits an error, or if the call to [test] throws,
/// the returned future is completed with that error,
/// and processing stops.
///
/// Example:
/// ```dart
/// final result =
///     await Stream.periodic(const Duration(seconds: 1), (count) => count)
///         .take(15)
///         .every((x) => x <= 5);
/// print(result); // false
/// ``` À º¶À º¼À º» À ºÀ	À ºÃÀ ºÂ   À ¼Ó…5À ¿ìÀ ¿ì‚ß/// Checks whether [test] accepts any element provided by this stream.
///
/// Calls [test] on each element of this stream.
/// If the call returns `true`, the returned future is completed with `true`
/// and processing stops.
///
/// If this stream ends without finding an element that [test] accepts,
/// the returned future is completed with `false`.
///
/// If this stream emits an error, or if the call to [test] throws,
/// the returned future is completed with that error,
/// and processing stops.
///
/// Example:
/// ```dart
/// final result =
///     await Stream.periodic(const Duration(seconds: 1), (count) => count)
///         .take(15)
///         .any((element) => element >= 5);
///
/// print(result); // true
/// ``` À ¿ðÀ ¿öÀ ¿õ À ¿ú	À ¿ýÀ ¿ü   À Èl€ûÀ É>À É>€¿/// Adapt this stream to be a `Stream<R>`.
///
/// This stream is wrapped as a `Stream<R>` which checks at run-time that
/// each data event emitted by this stream is also an instance of [R].À ÉCÀ ÉCÀ ÉC  À Ék‚ÀÀ ÊñÀ Êñ�c/// Collects all elements of this stream in a [List].
///
/// Creates a `List<T>` and adds all elements of this stream to the list
/// in the order they arrive.
/// When this stream ends, the returned future is completed with that list.
///
/// If this stream emits an error,
/// the returned future is completed with that error,
/// and processing stops.   À Ì/ƒ¼À Î²À Î²‚U/// Collects the data of this stream in a [Set].
///
/// Creates a `Set<T>` and adds all elements of this stream to the set.
/// in the order they arrive.
/// When this stream ends, the returned future is completed with that set.
///
/// The returned set is the same type as created by `<T>{}`.
/// If another type of set is needed, either use [forEach] to add each
/// element to the set, or use
/// `toList().then((list) => new SomeOtherSet.from(list))`
/// to create the set.
///
/// If this stream emits an error,
/// the returned future is completed with that error,
/// and processing stops.   À Ïïƒ«À ÒèÀ Òè‚Æ/// Discards all data on this stream, but signals when it is done or an error
/// occurred.
///
/// When subscribing using [drain], cancelOnError will be true. This means
/// that the future will complete with the first error on this stream and then
/// cancel the subscription.
///
/// If this stream emits an error, the returned future is completed with
/// that error, and processing is stopped.
///
/// In case of a `done` event the future completes with the given
/// [futureValue].
///
/// The [futureValue] must not be omitted if `null` is not assignable to [E].
///
/// Example:
/// ```dart
/// final result = await Stream.fromIterable([1, 2, 3]).drain(100);
/// print(result); // Outputs: 100.
/// ```À ÒîÀ ÒîÀ ÒîÀ ÒòÀ ÒöÀ Òõ   À Óž„ÔÀ Ø5À Ø5„V/// Provides at most the first [count] data events of this stream.
///
/// Returns a stream that emits the same events that this stream would
/// if listened to at the same time,
/// until either this stream ends or it has emitted [count] data events,
/// at which point the returned stream is done.
///
/// If this stream produces fewer than [count] data events before it's done,
/// so will the returned stream.
///
/// Starts listening to this stream when the returned stream is listened to
/// and stops listening when the first [count] data events have been received.
///
/// This means that if this is a single-subscription (non-broadcast) streams
/// it cannot be reused after the returned stream has been listened to.
///
/// If this is a broadcast stream, the returned stream is a broadcast stream.
/// In that case, the events are only counted from the time
/// the returned stream is listened to.
///
/// Example:
/// ```dart
/// final stream =
///     Stream<int>.periodic(const Duration(seconds: 1), (i) => i)
///         .take(60);
/// stream.forEach(print); // Outputs events: 0, ... 59.
/// ``` À Ø:	À Ø?À Ø>   À Øv…À Ý<À Ý<„…/// Forwards data events while [test] is successful.
///
/// Returns a stream that provides the same events as this stream
/// until [test] fails for a data event.
/// The returned stream is done when either this stream is done,
/// or when this stream first emits a data event that fails [test].
///
/// The `test` call is considered failing if it returns a non-`true` value
/// or if it throws. If the `test` call throws, the error is emitted as the
/// last event on the returned streams.
///
/// Stops listening to this stream after the accepted elements.
///
/// Internally the method cancels its subscription after these elements. This
/// means that single-subscription (non-broadcast) streams are closed and
/// cannot be reused after a call to this method.
///
/// The returned stream is a broadcast stream if this stream is.
/// For a broadcast stream, the events are only tested from the time
/// the returned stream is listened to.
///
/// Example:
/// ```dart
/// final stream = Stream<int>.periodic(const Duration(seconds: 1), (i) => i)
///     .takeWhile((event) => event < 6);
/// stream.forEach(print); // Outputs events: 0, ..., 5.
/// ``` À ÝFÀ ÝLÀ ÝK À ÝP	À ÝSÀ ÝR   À Ý‘ƒŒÀ ààÀ ààƒ/// Skips the first [count] data events from this stream.
///
/// Returns a stream that emits the same events as this stream would
/// if listened to at the same time, except that the first [count]
/// data events are not emitted.
/// The returned stream is done when this stream is.
///
/// If this stream emits fewer than [count] data events
/// before being done, the returned stream emits no data events.
///
/// The returned stream is a broadcast stream if this stream is.
/// For a broadcast stream, the events are only counted from the time
/// the returned stream is listened to.
///
/// Example:
/// ```dart
/// final stream =
///     Stream<int>.periodic(const Duration(seconds: 1), (i) => i).skip(7);
/// stream.forEach(print); // Skips events 0, ..., 6. Outputs events: 7, ...
/// ``` À àå	À àêÀ àé   À á!„‘À åaÀ åa„/// Skip data events from this stream while they are matched by [test].
///
/// Returns a stream that emits the same events as this stream,
/// except that data events are not emitted until a data event fails `test`.
/// The test fails when called with a data event
/// if it returns a non-`true` value or if the call to `test` throws.
/// If the call throws, the error is emitted as an error event
/// on the returned stream instead of the data event,
/// otherwise the event that made `test` return non-true is emitted as the
/// first data event.
///
/// Error and done events are provided by the returned stream unmodified.
///
/// The returned stream is a broadcast stream if this stream is.
/// For a broadcast stream, the events are only tested from the time
/// the returned stream is listened to.
///
/// Example:
/// ```dart
/// final stream = Stream<int>.periodic(const Duration(seconds: 1), (i) => i)
///     .take(10)
///     .skipWhile((x) => x < 5);
/// stream.forEach(print); // Outputs events: 5, ..., 9.
/// ``` À åkÀ åqÀ åp À åu	À åxÀ åw   À å¶…#À êzÀ êz„‡/// Skips data events if they are equal to the previous data event.
///
/// The returned stream provides the same events as this stream, except
/// that it never provides two consecutive data events that are equal.
/// That is, errors are passed through to the returned stream, and
/// data events are passed through if they are distinct from the most
/// recently emitted data event.
///
/// Equality is determined by the provided [equals] method. If that is
/// omitted, the '==' operator on the last provided data element is used.
///
/// If [equals] throws, the data event is replaced by an error event
/// containing the thrown error. The behavior is equivalent to the
/// original stream emitting the error event, and it doesn't change
/// what the most recently emitted data event is.
///
/// The returned stream is a broadcast stream if this stream is.
/// If a broadcast stream is listened to more than once, each subscription
/// will individually perform the `equals` test.
///
/// Example:
/// ```dart
/// final stream = Stream.fromIterable([2, 6, 6, 8, 12, 8, 8, 2]).distinct();
/// stream.forEach(print); // Outputs events: 2,6,8,12,8,2.
/// ``` À ê„ À êŠÀ ê‰ À ê�
À ê“À ê’  À êœÀ êŸÀ êž   À ø5‰lÀ þYÀ þY…Ñ/// Finds the first element of this stream matching [test].
///
/// Returns a future that is completed with the first element of this stream
/// for which [test] returns `true`.
///
/// {@template stream_where_or_else}
/// If no such element is found before this stream is done, and an
/// [orElse] function is provided, the result of calling [orElse]
/// becomes the value of the future. If [orElse] throws, the returned
/// future is completed with that error.
/// {@endtemplate}
///
/// If this stream emits an error before the first matching element,
/// the returned future is completed with that error, and processing stops.
///
/// Stops listening to this stream after the first matching element or error
/// has been received.
///
/// Internally the method cancels its subscription after the first element that
/// matches the predicate. This means that single-subscription (non-broadcast)
/// streams are closed and cannot be reused after a call to this method.
///
/// If an error occurs, or if this stream ends without finding a match and
/// with no [orElse] function provided,
/// the returned future is completed with an error.
///
/// Example:
/// ```dart
/// var result = await Stream.fromIterable([1, 3, 4, 9, 12])
///     .firstWhere((element) => element % 6 == 0, orElse: () => -1);
/// print(result); // 12
///
/// result = await Stream.fromIterable([1, 2, 3, 4, 5])
///     .firstWhere((element) => element % 6 == 0, orElse: () => -1);
/// print(result); // -1
/// ``` À þdÀ þjÀ þi À þn	À þqÀ þp  À þ{À þ~À þ}   À¥‡’ÀdÀdƒ‚/// Finds the last element in this stream matching [test].
///
/// Returns a future that is completed with the last element of this stream
/// for which [test] returns `true`.
///
/// {@macro stream_where_or_else}
///
/// If this stream emits an error at any point, the returned future is
/// completed with that error, and the subscription is canceled.
///
/// A non-error result cannot be provided before this stream is done.
///
/// Similar too [firstWhere], except that the last matching element is found
/// instead of the first.
///
/// Example:
/// ```dart
/// var result = await Stream.fromIterable([1, 3, 4, 7, 12, 24, 32])
///     .lastWhere((element) => element % 6 == 0, orElse: () => -1);
/// print(result); // 24
///
/// result = await Stream.fromIterable([1, 3, 4, 7, 12, 24, 32])
///     .lastWhere((element) => element % 10 == 0, orElse: () => -1);
/// print(result); // -1
/// ``` ÀnÀtÀs Àx	À{Àz  À…ÀˆÀ‡   À	;‰÷À>À>„¸/// Finds the single element in this stream matching [test].
///
/// Returns a future that is completed with the single element of this stream
/// for which [test] returns `true`.
///
/// {@macro stream_where_or_else}
///
/// Only one element may match. If more than one matching element is found an
/// error is thrown, regardless of whether [orElse] was passed.
///
/// If this stream emits an error at any point, the returned future is
/// completed with that error, and the subscription is canceled.
///
/// A non-error result cannot be provided before this stream is done.
///
/// Similar to [lastWhere], except that it is an error if more than one
/// matching element occurs in this stream.
///
/// Example:
/// ```dart
/// var result = await Stream.fromIterable([1, 2, 3, 6, 9, 12])
///     .singleWhere((element) => element % 4 == 0, orElse: () => -1);
/// print(result); // 12
///
/// result = await Stream.fromIterable([2, 6, 8, 12, 24, 32])
///     .singleWhere((element) => element % 9 == 0, orElse: () => -1);
/// print(result); // -1
///
/// result = await Stream.fromIterable([2, 6, 8, 12, 24, 32])
///     .singleWhere((element) => element % 6 == 0, orElse: () => -1);
/// // Throws.
/// ``` ÀJÀPÀO ÀT	ÀWÀV  ÀaÀdÀc   À6…GÀ—À—‚:/// Returns the value of the [index]th data event of this stream.
///
/// Stops listening to this stream after the [index]th data event has been
/// received.
///
/// Internally the method cancels its subscription after these elements. This
/// means that single-subscription (non-broadcast) streams are closed and
/// cannot be reused after a call to this method.
///
/// If an error event occurs before the value is found, the future completes
/// with this error.
///
/// If a done event occurs before the value is found, the future completes
/// with a [RangeError]. À¡	À¦À¥   À�’¶À!yÀ!yˆ‡/// Creates a new stream with the same events as this stream.
///
/// When someone is listening on the returned stream and more than
/// [timeLimit] passes without any event being emitted by this stream,
/// the [onTimeout] function is called, which can then emit further events on
/// the returned stream.
///
/// The countdown starts when the returned stream is listened to,
/// and is restarted when an event from this stream is emitted,
/// or when listening on the returned stream is paused and resumed.
/// The countdown is stopped when listening on the returned stream is
/// paused or cancelled.
/// No new countdown is started when a countdown completes
/// and the [onTimeout] function is called, even if events are emitted.
/// If the delay between events of this stream is multiple times
/// [timeLimit], at most one timeout will happen between events.
///
/// The [onTimeout] function is called with one argument: an
/// [EventSink] that allows putting events into the returned stream.
/// This `EventSink` is only valid during the call to [onTimeout].
/// Calling [EventSink.close] on the sink passed to [onTimeout] closes the
/// returned stream, and no further events are processed.
///
/// If [onTimeout] is omitted, a timeout will emit a [TimeoutException]
/// into the error channel of the returned stream.
/// If the call to [onTimeout] throws, the error is emitted as an error
/// on the returned stream.
///
/// The returned stream is a broadcast stream if this stream is.
/// If a broadcast stream is listened to more than once, each subscription
/// will have its individually timer that starts counting on listen,
/// and the subscriptions' timers can be paused individually.
///
/// Example:
/// ```dart
/// Future<String> waitTask() async {
///   return await Future.delayed(
///       const Duration(seconds: 4), () => 'Complete');
/// }
/// final stream = Stream<String>.fromFuture(waitTask())
///     .timeout(const Duration(seconds: 2), onTimeout: (controller) {
///   print('TimeOut occurred');
///   controller.close();
/// });
///
/// stream.listen(print, onDone: () => print('Done'));
///
/// // Outputs:
/// // TimeOut occurred
/// // Done
/// ``` À!�À!‹À!Š  À!–"À!œÀ!› À!¥À!³À!²   ™z™{À+;™VÀ/xÀ/x„#/// A subscription on events from a [Stream].
///
/// When you listen on a [Stream] using [Stream.listen],
/// a [StreamSubscription] object is returned.
///
/// The subscription provides events to the listener,
/// and holds the callbacks used to handle the events.
/// The subscription can also be used to unsubscribe from the events,
/// or to temporarily pause the events from the stream.
///
/// Example:
/// ```dart
/// final stream = Stream.periodic(const Duration(seconds: 1), (i) => i * i)
///     .take(10);
///
/// final subscription = stream.listen(print); // A StreamSubscription<int>.
/// ```
/// To pause the subscription, use [pause].
/// ```dart continued
/// // Do some work.
/// subscription.pause();
/// print(subscription.isPaused); // true
/// ```
/// To resume after the pause, use [resume].
/// ```dart continued
/// // Do some work.
/// subscription.resume();
/// print(subscription.isPaused); // false
/// ```
/// To cancel the subscription, use [cancel].
/// ```dart continued
/// // Do some work.
/// subscription.cancel();
/// ```À/‹À/‹À/‹  À@q�|ÀAäÀAä�Y/// Whether the [StreamSubscription] is currently paused.
///
/// If there have been more calls to [pause] than to [resume] on this
/// stream subscription, the subscription is paused, and this getter
/// returns `true`.
///
/// Returns `false` if the stream can currently emit events, or if
/// the subscription has completed or been cancelled.    À/’ƒ	À2’À2’‚Ð/// Cancels this subscription.
///
/// After this call, the subscription no longer receives events.
///
/// The stream may need to shut down the source of events and clean up after
/// the subscription is canceled.
///
/// Returns a future that is completed once the stream has finished
/// its cleanup.
///
/// Typically, cleanup happens when the stream needs to release resources.
/// For example, a stream might need to close an open file (as an asynchronous
/// operation). If the listener wants to delete the file after having
/// canceled the subscription, it must wait for the cleanup future to complete.
///
/// If the cleanup throws, which it really shouldn't, the returned future
/// completes with that error.   À2Ÿ�šÀ4À4�c/// Replaces the data event handler of this subscription.
///
/// The [handleData] function is called for each data event of the stream
/// after this function is called.
/// If [handleData] is `null`, data events are ignored.
///
/// This method replaces the current handler set by the invocation of
/// [Stream.listen] or by a previous call to [onData]. À4À4%À4$ À4/À42À41   À4=‚ÚÀ6øÀ6ø‚—/// Replaces the error event handler of this subscription.
///
/// The [handleError] function must be able to be called with either
/// one positional argument, or with two positional arguments
/// where the seconds is always a [StackTrace].
///
/// The [handleError] argument may be `null`, in which case further
/// error events are considered *unhandled*, and will be reported to
/// [Zone.handleUncaughtError].
///
/// The provided function is called for all error events from the
/// stream subscription.
///
/// This method replaces the current handler set by the invocation of
/// [Stream.listen], by calling [asFuture], or by a previous call to [onError]. À7 À7À7
   À7�‡À8‡À8‡�X/// Replaces the done event handler of this subscription.
///
/// The [handleDone] function is called when the stream closes.
/// The value may be `null`, in which case no function is called.
///
/// This method replaces the current handler set by the invocation of
/// [Stream.listen], by calling [asFuture], or by a previous call to [onDone]. À8ŽÀ8”À8“   À8¦†&À>¨À>¨…À/// Requests that the stream pauses events until further notice.
///
/// While paused, the subscription will not fire any events.
/// If it receives events from its source, they will be buffered until
/// the subscription is resumed.
/// For non-broadcast streams, the underlying source is usually informed
/// about the pause,
/// so it can stop generating events until the subscription is resumed.
///
/// To avoid buffering events on a broadcast stream, it is better to
/// cancel this subscription, and start to listen again when events
/// are needed, if the intermediate events are not important.
///
/// If [resumeSignal] is provided, the stream subscription will undo the pause
/// when the future completes, as if by a call to [resume].
/// If the future completes with an error,
/// the stream will still resume, but the error will be considered unhandled
/// and is passed to [Zone.handleUncaughtError].
///
/// A call to [resume] will also undo a pause.
///
/// If the subscription is paused more than once, an equal number
/// of resumes must be performed to resume the stream.
/// Calls to [resume] and the completion of a [resumeSignal] are
/// interchangeable - the [pause] which was passed a [resumeSignal] may be
/// ended by a call to [resume], and completing the [resumeSignal] may end a
/// different [pause].
///
/// It is safe to [resume] or complete a [resumeSignal] even when the
/// subscription is not paused, and the resume will have no effect. À>¯À>¾À>½   À>Ð��À@dÀ@d�|/// Resumes after a pause.
///
/// This undoes one previous call to [pause].
/// When all previously calls to [pause] have been matched by a calls to
/// [resume], possibly through a `resumeSignal` passed to [pause],
/// the stream subscription may emit events again.
///
/// It is safe to [resume] even when the subscription is not paused, and the
/// resume will have no effect.   ÀAñ‚žÀDqÀDq‚Y/// Returns a future that handles the [onDone] and [onError] callbacks.
///
/// This method *overwrites* the existing [onDone] and [onError] callbacks
/// with new ones that complete the returned future.
///
/// In case of an error the subscription will automatically cancel (even
/// when it was listening with `cancelOnError` set to `false`).
///
/// In case of a `done` event the future completes with the given
/// [futureValue].
///
/// If [futureValue] is omitted, the value `null as E` is used as a default.
/// If `E` is not nullable, this will throw immediately when [asFuture]
/// is called.ÀDzÀDzÀDzÀD~ÀD‚ÀD�    ÀD“ƒbÀFÀF�j/// A [Sink] that supports adding errors.
///
/// This makes it suitable for capturing the results of asynchronous
/// computations, which can complete with a value or an error.
///
/// The [EventSink] has been designed to handle asynchronous events from
/// [Stream]s. See, for example, [Stream.eventTransformed] which uses
/// `EventSink`s to transform events.ÀF!ÀF!ÀF!    ÀF;jÀF˜ÀF˜Q/// Adds a data [event] to the sink.
///
/// Must not be called on a closed sink. ÀFœÀFŸÀFž   ÀF©€ŠÀGÀGM/// Adds an [error] to the sink.
///
/// Must not be called on a closed sink. ÀGÀGÀG  ÀGÀG'ÀG&   ÀG7€¼ÀGëÀGë€¤/// Closes the sink.
///
/// Calling this method more than once is allowed, but does nothing.
///
/// Neither [add] nor [addError] must be called after this method.    ÀG÷‚ØÀH<ÀH<>/// [Stream] wrapper that only exposes the [Stream] interface.ÀHGÀHGÀHGÀH|6ÀH‚ ÀH‚ÀHŒ  ÀH�ÀH˜ÀH—  ÀH©ÀH¡ÀH«ÀH`ÀHpÀHp  ÀH¶,ÀH¿ÀH¿     ÀHæ€ØÀHðÀHð  ÀI2ÀIÀI ÀI"ÀI-ÀI,  ÀI@2ÀIFÀIE ÀIN"ÀIeÀId   ÀIÂ�ÀIØÀIØ  ÀIäÀIêÀIé ÀIðÀIóÀIò  ÀJÀJÀJ  ÀJÀJÀJ  ÀJ,ÀJ3ÀJ2    ÀJÑ†ïÀLÐÀLÐ�å/// Abstract interface for a "sink" accepting multiple entire streams.
///
/// A consumer can accept a number of consecutive streams using [addStream],
/// and when no further data need to be added, the [close] method tells the
/// consumer to complete its work and shut down.
///
/// The [Stream.pipe] accepts a `StreamConsumer` and will pass the stream
/// to the consumer's [addStream] method. When that completes, it will
/// call [close] and then complete its own returned future.ÀLßÀLßÀLß    ÀLæƒ?ÀP	ÀP	‚û/// Consumes the elements of [stream].
///
/// Listens on [stream] and does something for each event.
///
/// Returns a future which is completed when the stream is done being added,
/// and the consumer is ready to accept a new stream.
/// No further calls to [addStream] or [close] should happen before the
/// returned future has completed.
///
/// The consumer may stop listening to the stream after an error,
/// it may consume all the errors and only stop at a done event,
/// or it may be canceled early if the receiver don't want any further events.
///
/// If the consumer stops listening because of some error preventing it
/// from continuing, it may report this error in the returned future,
/// otherwise it will just complete the future with `null`. ÀPÀPÀP   ÀP)�•ÀQ¶ÀQ¶�u/// Tells the consumer that no further streams will be added.
///
/// This allows the consumer to complete any remaining work and release
/// resources that are no longer needed
///
/// Returns a future which is completed when the consumer has shut down.
/// If cleaning up can fail, the error may be reported in the returned future,
/// otherwise it completes with `null`.    ÀQÂˆØÀT™ÀT™‚½/// A object that accepts stream events both synchronously and asynchronously.
///
/// A [StreamSink] combines the methods from [StreamConsumer] and [EventSink].
///
/// The [EventSink] methods can't be used while the [addStream] is called.
/// As soon as the [addStream]'s [Future] completes with a value, the
/// [EventSink] methods can be used again.
///
/// If [addStream] is called after any of the [EventSink] methods, it'll
/// be delayed until the underlying system has consumed the data added by the
/// [EventSink] methods.
///
/// When [EventSink] methods are used, the [done] [Future] can be used to
/// catch any errors.
///
/// When [close] is called, it will return the [done] [Future].ÀT¤ÀT¤ÀT¤  ÀXm‚+ÀZ“ÀZ“‚/// Return a future which is completed when the [StreamSink] is finished.
///
/// If the `StreamSink` fails with an error,
/// perhaps in response to adding events using [add], [addError] or [close],
/// the [done] future will complete with that error.
///
/// Otherwise, the returned future will complete when either:
///
/// * all events have been processed and the sink has been closed, or
/// * the sink has otherwise been stopped from handling more events
///   (for example by canceling a stream subscription).    ÀTÚƒ�ÀXaÀXaƒ[/// Tells the stream sink that no further streams will be added.
///
/// This allows the stream sink to complete any remaining work and release
/// resources that are no longer needed
///
/// Returns a future which is completed when the stream sink has shut down.
/// If cleaning up can fail, the error may be reported in the returned future,
/// otherwise it completes with `null`.
///
/// Returns the same future as [done].
///
/// The stream sink may close before the [close] method is called, either due
/// to an error or because it is itself providing events to someone who has
/// stopped listening. In that case, the [done] future is completed first,
/// and the `close` method will return the `done` future when called.
///
/// Unifies [StreamConsumer.close] and [EventSink.close] which both mark their
/// object as not expecting any further events.    ÀZœ¬kÀ^ÌÀ^Ì„/// Transforms a Stream.
///
/// When a stream's [Stream.transform] method is invoked with a
/// [StreamTransformer], the stream calls the [bind] method on the provided
/// transformer. The resulting stream is then returned from the
/// [Stream.transform] method.
///
/// Conceptually, a transformer is simply a function from [Stream] to [Stream]
/// that is encapsulated into a class.
///
/// It is good practice to write transformers that can be used multiple times.
///
/// All other transforming methods on [Stream], such as [Stream.map],
/// [Stream.where] or [Stream.expand] can be implemented using
/// [Stream.transform]. A [StreamTransformer] is thus very powerful but often
/// also a bit more complicated to use.
///
/// The [StreamTransformer.fromHandlers] constructor allows passing separate
/// callbacks to react to events, errors, and the end of the stream.
/// The [StreamTransformer.fromBind] constructor creates a `StreamTransformer`
/// whose [bind] method is implemented by calling the function passed to the
/// constructor.À^ÞÀ^ÞÀ^ÞÀ^áÀ^áÀ^áÀ^èŒÐÀk0 Àk0ÀkA ‹±/// Creates a [StreamTransformer] based on the given [onListen] callback.
///
/// The returned stream transformer uses the provided [onListen] callback
/// when a transformed stream is listened to. At that time, the callback
/// receives the input stream (the one passed to [bind]) and a
/// boolean flag `cancelOnError` to create a [StreamSubscription].
///
/// If the transformed stream is a broadcast stream, so is the stream
/// returned by the [StreamTransformer.bind] method by this transformer.
///
/// If the transformed stream is listened to multiple times, the [onListen]
/// callback is called again for each new [Stream.listen] call.
/// This happens whether the stream is a broadcast stream or not,
/// but the call will usually fail for non-broadcast streams.
///
/// The [onListen] callback does *not* receive the handlers that were passed
/// to [Stream.listen]. These are automatically set after the call to the
/// [onListen] callback (using [StreamSubscription.onData],
/// [StreamSubscription.onError] and [StreamSubscription.onDone]).
///
/// Most commonly, an [onListen] callback will first call [Stream.listen] on
/// the provided stream (with the corresponding `cancelOnError` flag), and then
/// return a new [StreamSubscription].
///
/// There are two common ways to create a StreamSubscription:
///
/// 1. by allocating a [StreamController] and to return the result of
///    listening to its stream. It's important to forward pause, resume and
///    cancel events (unless the transformer intentionally wants to change
///    this behavior).
/// 2. by creating a new class that implements [StreamSubscription].
///    Note that the subscription should run callbacks in the [Zone] the
///    stream was listened to (see [Zone] and [Zone.bindCallback]).
///
/// Example:
///
/// ```dart
/// /// Starts listening to [input] and duplicates all non-error events.
/// StreamSubscription<int> _onListen(Stream<int> input, bool cancelOnError) {
///   // Create the result controller.
///   // Using `sync` is correct here, since only async events are forwarded.
///   var controller = StreamController<int>(sync: true);
///   controller.onListen = () {
///     var subscription = input.listen((data) {
///       // Duplicate the data.
///       controller.add(data);
///       controller.add(data);
///     },
///         onError: controller.addError,
///         onDone: controller.close,
///         cancelOnError: cancelOnError);
///     // Controller forwards pause, resume and cancel events.
///     controller
///       ..onPause = subscription.pause
///       ..onResume = subscription.resume
///       ..onCancel = subscription.cancel;
///   };
///   // Return a new [StreamSubscription] by listening to the controller's
///   // stream.
///   return controller.stream.listen(null);
/// }
///
/// // Instantiate a transformer:
/// var duplicator = const StreamTransformer<int, int>(_onListen);
///
/// // Use as follows:
/// intStream.transform(duplicator);
/// ```ÀkGDÀk^Àk] ÀkfÀkqÀkp  ÀkxÀk~Àk}   Àk¼�“Àz^ÀzoÀzpÀz|Àzp�ñ/// Creates a [StreamTransformer] that delegates events to the given functions.
///
/// Example use of a duplicating transformer:
///
/// ```dart
/// stringStream.transform(StreamTransformer<String, String>.fromHandlers(
///     handleData: (String value, EventSink<String> sink) {
///       sink.add(value);
///       sink.add(value);  // Duplicate the incoming events.
///     }));
/// ```
///
/// When a transformed stream returned from a call to [bind] is listened to,
/// the source stream is listened to, and a handler function is called for
/// each event of the source stream.
///
/// The handlers are invoked with the event data and with a sink that can be
/// used to emit events on the transformed stream.
///
/// The [handleData] handler is invoked for data events on the source stream.
/// If [handleData] was omitted, data events are added directly to the created
/// stream, as if calling [EventSink.add] on the sink with the event value.
/// If [handleData] is omitted the source stream event type, [S], must be a
/// subtype of the transformed stream event type [T].
///
/// The [handleError] handler is invoked for each error of the source stream.
/// If [handleError] is omitted, errors are forwarded directly to the
/// transformed stream, as if calling [EventSink.addError] with the error and
/// stack trace.
///
/// The [handleDone] handler is invoked when the source stream closes, as
/// signaled by sending a done event. The done handler takes no event value,
/// but can still send other events before calling [EventSink.close]. If
/// [handleDone] is omitted, a done event on the source stream closes the
/// transformed stream.
///
/// If any handler calls [EventSink.close] on the provided sink,
/// the transformed sink closes and the source stream subscription
/// is cancelled. No further events can be added to the sink by
/// that handler, and no further source stream events will occur.
///
/// The sink provided to the event handlers must only be used during
/// the call to that handler. It must not be stored and used at a later
/// time.
///
/// Transformers created this way should be *stateless*.
/// They should not retain state between invocations of handlers,
/// because the same transformer, and therefore the same handlers,
/// may be used on multiple streams, or on streams which can be listened
/// to more than once.
/// _To create per-stream handlers, [StreamTransformer.fromBind]
/// could be used to create a new [StreamTransformer.fromHandlers] per
/// stream to transform._
///
/// ```dart
/// var controller = StreamController<String>.broadcast();
/// controller.onListen = () {
///   scheduleMicrotask(() {
///     controller.addError("Bad");
///     controller.addError("Worse");
///     controller.addError("Worst");
///   });
/// };
/// var sharedState = 0;
/// var transformedStream = controller.stream.transform(
///     StreamTransformer<String>.fromHandlers(
///         handleError: (error, stackTrace, sink) {
///   sharedState++; // Increment shared error-counter.
///   sink.add("Error $sharedState: $error");
/// }));
///
/// transformedStream.listen(print);
/// transformedStream.listen(print); // Listen twice.
/// // Listening twice to the same stream makes the transformer share the same
/// // state. Instead of having "Error 1: Bad", "Error 2: Worse",
/// // "Error 3: Worst" as output (each twice for the separate subscriptions),
/// // this program emits:
/// // Error 1: Bad
/// // Error 2: Bad
/// // Error 3: Worse
/// // Error 4: Worse
/// // Error 5: Worst
/// // Error 6: Worst
/// ```Àzƒ+Àz‰Àzˆ Àz“Àz–Àz•  Àz›Àz©Àz¨  Àz´IÀzºÀz¹ ÀzÅÀzÍÀzÌ  ÀzÓÀzßÀzÞ  ÀzêÀzøÀz÷  À{#À{	À{ À{À{!À{    À{S‚HÀ}7À}HÀ}IÀ}QÀ}I�Ç/// Creates a [StreamTransformer] based on a [bind] callback.
///
/// The returned stream transformer uses the [bind] argument to implement the
/// [StreamTransformer.bind] API and can be used when the transformation is
/// available as a stream-to-stream function.
///
/// ```dart import:convert
/// final splitDecoded = StreamTransformer<List<int>, String>.fromBind(
///     (stream) => stream.transform(utf8.decoder).transform(LineSplitter()));
/// ```À}R"À}qÀ}p      À}Ÿ‚>ÀZÀZ�‰/// Adapts [source] to be a `StreamTransformer<TS, TT>`.
///
/// This allows [source] to be used at the new type, but at run-time it
/// must satisfy the requirements of both the new type and its original type.
///
/// Data events passed into the returned transformer must also be instances
/// of [SS], and data events produced by [source] for those events must
/// also be instances of [TT].ÀcÀcÀcÀgÀgÀgÀkÀkÀkÀoÀoÀoÀx À“À’   Àá…¦À…pÀ…p…N/// Transforms the provided [stream].
///
/// Returns a new stream with events that are computed from events of the
/// provided [stream].
///
/// The [StreamTransformer] interface is completely generic,
/// so it cannot say what subclasses do.
/// Each [StreamTransformer] should document clearly how it transforms the
/// stream (on the class or variable used to access the transformer),
/// as well as any differences from the following typical behavior:
///
/// * When the returned stream is listened to, it starts listening to the
///   input [stream].
/// * Subscriptions of the returned stream forward (in a reasonable time)
///   a [StreamSubscription.pause] call to the subscription of the input
///   [stream].
/// * Similarly, canceling a subscription of the returned stream eventually
///   (in reasonable time) cancels the subscription of the input [stream].
///
/// "Reasonable time" depends on the transformer and stream. Some transformers,
/// like a "timeout" transformer, might make these operations depend on a
/// duration. Others might not delay them at all, or just by a microtask.
///
/// Transformers are free to handle errors in any way.
/// A transformer implementation may choose to propagate errors,
/// or convert them to other events, or ignore them completely,
/// but if errors are ignored, it should be documented explicitly. À…uÀ…€À…   À…‹�zÀ†öÀ†ö�D/// Provides a `StreamTransformer<RS, RT>` view of this stream transformer.
///
/// The resulting transformer will check at run-time that all data events
/// of the stream it transforms are actually instances of [S],
/// and it will check that all data events produced by this transformer
/// are actually instances of [RT].À†ûÀ†ûÀ†ûÀ†ÿÀ†ÿÀ†ÿ   À‡	�TÀ‡•À‡•|/// Base class for implementing [StreamTransformer].
///
/// Contains default implementations of every method except [bind].À‡«À‡«À‡«À‡®À‡®À‡®À‡ØÀ‡Þ À‡ÞÀ‡ó       À‡úaÀˆÀˆ ÀˆÀˆÀˆÀˆÀˆÀˆ   Àˆ_‹PÀŠLÀŠL�Ó/// An [Iterator]-like interface for the values of a [Stream].
///
/// This wraps a [Stream] and a subscription on the stream. It listens
/// on the stream, and completes the future returned by [moveNext] when the
/// next value becomes available.
///
/// The stream may be paused between calls to [moveNext].
///
/// The [current] value must only be used after a future returned by [moveNext]
/// has completed with `true`, and only until [moveNext] is called again.ÀŠ[ÀŠ[ÀŠ[ÀŠb€ÞÀŠ— ÀŠ—ÀŠ¥ */// Create a [StreamIterator] on [stream].ÀŠ¦ÀŠ±ÀŠ°    À�®‚õÀ�›À�›‚Î/// The current value of the stream.
///
/// When a [moveNext] call completes with `true`, the [current] field holds
/// the most recent event of the stream, and it stays like that until the next
/// call to [moveNext]. This value must only be read after a call to [moveNext]
/// has completed with `true`, and only until the [moveNext] is called again.
///
/// If the StreamIterator has not yet been moved to the first element
/// ([moveNext] has not been called and completed yet), or if the
/// StreamIterator has been moved past the last element ([moveNext] has
/// returned `false`), then [current] is unspecified. A [StreamIterator] may
/// either throw or return an iterator-specific default value in that case.    À‹D‚fÀ�ŸÀ�Ÿ‚5/// Wait for the next stream value to be available.
///
/// Returns a future which will complete with either `true` or `false`.
/// Completing with `true` means that another event has been received and
/// can be read as [current].
/// Completing with `false` means that the stream iteration is done and
/// no further events will ever be available.
/// The future may complete with an error, if the stream produces an error,
/// which also ends iteration.
///
/// The function must not be called again until the future returned by a
/// previous call is completed.   À�§ƒÀ“¤À“¤‚Õ/// Cancels the stream iterator (and the underlying stream subscription) early.
///
/// The stream iterator is automatically canceled if the [moveNext] future
/// completes with either `false` or an error.
///
/// If you need to stop listening for values before the stream iterator is
/// automatically closed, you must call [cancel] to ensure that the stream
/// is properly closed.
///
/// If [moveNext] has been called when the iterator is canceled,
/// its returned future will complete with `false` as value,
/// as will all further calls to [moveNext].
///
/// Returns a future which completes when the cancellation is complete.
/// This can be an already completed future if the cancellation happens
/// synchronously.    À“±‚À“ÿÀ“ÿG/// Wraps an [_EventSink] so it exposes only the [EventSink] interface.À”À”À”À”N(À”N À”NÀ”i  À”j
À”pÀ”o   À”:À”EÀ”E    À”z€‚À”„À”„    À• 3À•À•  À•	À•À•   À•7cÀ•<À•<  À•EÀ•FÀ•E  À•MÀ•ZÀ•Y   À•ž-À•£À•£     À•Ï†èÀ—æÀ—æ�ý/// An enhanced stream controller provided by [Stream.multi].
///
/// Acts like a normal asynchronous controller, but also allows
/// adding events synchronously.
/// As with any synchronous event delivery, the sender should be very careful
/// to not deliver events at times when a new listener might not
/// be ready to receive them.
/// That usually means only delivering events synchronously in response to other
/// asynchronous events, because that is a time when an asynchronous event could
/// happen.À—üÀ—üÀ—ü    À˜&�7À™LÀ™L�/// Adds and delivers an event.
///
/// Adds an event like [add] and attempts to deliver it immediately.
/// Delivery can be delayed if other previously added events are
/// still pending delivery, if the subscription is paused,
/// or if the subscription isn't listening yet. À™TÀ™WÀ™V   À™a�fÀš’Àš’�/// Adds and delivers an error event.
///
/// Adds an error like [addError] and attempts to deliver it immediately.
/// Delivery can be delayed if other previously added events are
/// still pending delivery, if the subscription is paused,
/// or if the subscription isn't listening yet. ÀšŸÀš§Àš¦  Àš®Àš»Àšº   ÀšË�êÀœ©Àœ©�Æ/// Closes the controller and delivers a done event.
///
/// Closes the controller like [close] and attempts to deliver a "done"
/// event immediately.
/// Delivery can be delayed if other previously added events are
/// still pending delivery, if the subscription is paused,
/// or if the subscription isn't listening yet.
/// If it's necessary to know whether the "done" event has been delivered,
/// [done] future will complete when that has happened.           �’�Ÿ�Ÿ         Šö N€œ€Ø€Ù€í€î�5�J�‘�’�±�²�Ü�à‚‚l‚¶‚äƒ3ƒ7ƒ„ƒÎƒø„F„—„Ç„Ô„à„þ…<…Y…p……©…É…Ó…Û…á…é†8†…†Ê‡‡b‡¥‡ð‡üˆIˆyˆ§ˆó‰‰J‰{‰¯‰ÕŠŠFŠ�Š¨Š÷Šû‹B‹‡‹±‹µ‹õŒ=ŒŒŒ—Œ›Œê�0�{�Á�öŽ)ŽcŽgŽ­ŽÆŽÊ��8�x�»�ö�F�ƒ�‡�Ö‘‘‘S‘~‘‚‘È’’’U’Y’¢’é“““Q“¡“½“Á””b”¦”ì•<•Œ•�•î––`–—–›–ã—-—|—Â—Ó—×˜(˜u˜“˜—˜Ö™"™n™z™�™°™Â™Ã™ì™òš8šUš[šjšxš�š²šÄšãšî›››'›0›:›@›w›››ÑœœœFœ{œËœÌ���P�y��Ž�œ�Ø�üžžž"žažkžqž·ŸŸ*ŸcŸ}ŸžŸ±Ÿ²Ÿý  L x ~ � › Ò à¡¡%¡1¡G¡[¡e¡m¡­¡·¡ý¢:¢ƒ¢ž¢ß£-£k£”£³£Ä£È£É¤	¤¤W¤Ž¤”¤£¤±¤Û¥¥7¥?¥E¥ƒ¥ž¥Ö¥Ü¥î¦&¦M¦W¦‡¦Î§§[§›§§§³§¿§Ë§Ò§ã§ó¨¨9¨B¨g¨˜¨¾¨Ç¨Î¨ì¨ð¨ñ©4©:©‰©®©ðªª#ªuª´ªºª÷ªý«A«G«V«d«‰«Ã«Ö«Þ«ä¬¬F¬h¬p¬v¬Á­
­­"­I­­¦­°­ì®,®8®D®P®\®c®v®·®Õ¯#¯?¯a¯�¯¹¯Á¯Ç¯È¯û°°I°�°‰°�°�°ß±±b±„±“±Á±Ç±ÿ²8²V²Z²[²–²œ²ê³.³j³°³¶³ú´0´s´«´±´üµµµ&µ4µ^µ‘µ›µÒµ÷¶¶#¶K¶d¶—¶Õ¶ó···0·P·Q·g·§·Û·ü¸¸¸4¸D¸o¸Š¸¿¹¹'¹;¹G¹`¹r¹¦¹Ã¹úº@ºNº�º¼ºÑºô»»»9»E»O»P»s»‘»±»Û»ç»ò»ó¼¼#¼$¼O¼U¼ˆ¼Õ½½3½9½€½†½Å¾¾S¾”¾Ï¿¿¿Z¿…¿¶¿àÀ @À @#À @gÀ @®À @êÀ A.À AXÀ A^À A¨À AâÀ B1À B?À BŒÀ B¯À BËÀ BçÀ C&À CFÀ CbÀ C³À CìÀ DIÀ DcÀ D|À D—À DàÀ EÀ EÀ EAÀ EYÀ E{À E‘À EŸÀ EÍÀ EóÀ F5À F\À F�À FžÀ F¬À F¶À F¾À FÈÀ FàÀ GÀ G6À G=À GpÀ GtÀ GuÀ GÀÀ GÆÀ HÀ HaÀ HtÀ HzÀ H°À H¶À HþÀ IÀ IOÀ InÀ ItÀ IƒÀ I‘À I¦À IÕÀ JÀ JÀ JZÀ JdÀ JÀ J–À JÀÀ JÇÀ JÿÀ K À K.À KEÀ KˆÀ K‘À K—À KÞÀ L#À LFÀ LeÀ L…À LŸÀ L¶À LÙÀ LìÀ LüÀ M1À MLÀ M�À MÁÀ MÕÀ MáÀ NÀ NÀ N[À NeÀ NmÀ NnÀ N¥À N¶À NÐÀ NêÀ OÀ OÀ O2À OJÀ OdÀ OnÀ OˆÀ O´À OÍÀ OüÀ P3À PPÀ P^À PiÀ PpÀ PŽÀ P’À P“À PãÀ Q À QÀ QOÀ Q�À QåÀ R2À R�À RÎÀ RðÀ RöÀ S7À S=À SnÀ S|À S·À SäÀ TÀ TÀ T5À TVÀ TwÀ T�À T‡À TÇÀ TõÀ TýÀ UÀ UVÀ U‰À UÐÀ UäÀ VÀ V$À V*À VbÀ VlÀ V­À VÐÀ VìÀ WÀ W%À WSÀ WWÀ WXÀ WƒÀ W‰À WÓÀ X#À X)À XwÀ XÈÀ XÉÀ XúÀ YÀ YÀ YmÀ YsÀ YºÀ ZÀ Z4À Z:À ZˆÀ ZÐÀ [À [kÀ [–À [œÀ [éÀ \1À \pÀ \vÀ \ÄÀ ]À ]AÀ ]GÀ ]–À ]áÀ ^+À ^gÀ ^mÀ ^|À ^ŠÀ ^ŸÀ ^ìÀ _À _À _CÀ _dÀ _†À _¤À _¯À _ÖÀ _ûÀ ` À `AÀ `MÀ `XÀ `aÀ `gÀ `´À `ìÀ aÀ a"À a-À aRÀ a[À aaÀ a°À aóÀ bÀ b9À b?À b�À bŸÀ b°À bÀÀ bÑÀ cÀ c=À cuÀ c³À cÅÀ cÐÀ cÚÀ cúÀ d2À djÀ dqÀ d­À d±À d²À dÜÀ dâÀ e3À eqÀ e»À eÜÀ eâÀ f/À fhÀ fnÀ f¹À fèÀ fîÀ g<À gmÀ gºÀ gÐÀ h!À hGÀ hMÀ h†À hÙÀ iÀ iMÀ i~À i„À iÐÀ jÀ jÀ j[À j¢À j¨À jìÀ k*À kTÀ ktÀ k‘À k¨À k¼À kÕÀ kÛÀ kÜÀ l%À l+À luÀ l¶À l¼À mÀ m:À m@À mƒÀ mÐÀ müÀ nÀ nÀ nÀ n4À n�À nšÀ n À níÀ o/À o9À oaÀ o‰À o�À oŽÀ oÔÀ oÚÀ pÀ phÀ pnÀ p²À pëÀ q1À qFÀ qLÀ q�À q£À qæÀ r/À r|À r·À r½À s À sNÀ s›À sãÀ t+À ttÀ t‰À t�À tžÀ t¬À tÁÀ uÀ u&À u,À uLÀ u‘À u¹À uÌÀ ußÀ uòÀ vÀ vÀ v#À vLÀ vxÀ v|À v}À vËÀ vèÀ vîÀ w8À wˆÀ wÔÀ wúÀ x À xCÀ x{À x¤À x»À xýÀ y
À yOÀ yUÀ yVÀ yuÀ y­À y»À zÀ z%À z.À zRÀ zqÀ zyÀ zzÀ z§À zÑÀ z÷À {À {#À {HÀ {aÀ {”À {ÒÀ {äÀ {îÀ |À |3À |yÀ |ŠÀ |®À |¸À |ÂÀ |óÀ }À } À }IÀ }hÀ }pÀ }wÀ }•À }™À }šÀ }àÀ }æÀ ~6À ~<À ~‹À ~©À ~óÀ CÀ �À ÞÀ €*À €|À €¦À €âÀ €èÀ �+À �eÀ �ŽÀ �¥À �çÀ �ôÀ ‚9À ‚?À ‚@À ‚_À ‚—À ‚¥À ‚íÀ ƒÀ ƒÀ ƒ>À ƒ\À ƒjÀ ƒ�À ƒ©À ƒÜÀ „À „,À „6À „WÀ „wÀ „ÄÀ „ÎÀ „ØÀ …	À …#À …6À …_À …‹À …“À …šÀ …¸À …¼À …½À †
À †À †`À †�À †‡À †ÕÀ ‡À ‡SÀ ‡iÀ ‡ºÀ ‡àÀ ‡æÀ ˆ+À ˆrÀ ˆ�À ˆ“À ˆãÀ ‰/À ‰lÀ ‰»À ŠÀ ŠLÀ ŠRÀ Š¢À ŠêÀ ‹À ‹À ‹JÀ ‹—À ‹ØÀ ‹ÞÀ ‹íÀ ‹ûÀ Œ7À ŒQÀ Œ�À Œ‹À Œ¡À ŒÕÀ ŒÛÀ ŒíÀ ŒøÀ �À �)À �4À �?À �IÀ �ŠÀ �ÀÀ �øÀ ŽÀ ŽEÀ ŽuÀ Ž�À Ž–À Ž£À ŽÄÀ ŽÕÀ ŽèÀ �6À �TÀ �]À �cÀ �›À �ŸÀ � À �êÀ �ðÀ �9À �\À �¨À �ñÀ ‘À ‘aÀ ‘®À ‘ÕÀ ‘ÛÀ ’'À ’EÀ ’KÀ ’ŽÀ ’ÛÀ “À “QÀ “€À “„À “…À “ÂÀ “ÈÀ ”À ”.À ”€À ”ÒÀ ”ØÀ •"À •JÀ •PÀ • À •ÁÀ –	À –-À –_À –®À –²À –³À –åÀ –ëÀ —À —NÀ —›À —¼À —ÊÀ ˜À ˜À ˜RÀ ˜XÀ ˜�À ˜ÍÀ ˜÷À ™#À ™)À ™qÀ ™¨À ™íÀ š5À šsÀ š´À šôÀ ›2À ›nÀ ›´À ›ÝÀ ›áÀ ›âÀ œ(À œ.À œsÀ œ¨À œãÀ �À �IÀ �xÀ �~À �ÄÀ �âÀ �èÀ ž-À ž=À žƒÀ ž»À žÜÀ žâÀ žñÀ žÿÀ Ÿ@À Ÿ~À Ÿ™À Ÿ£À ŸÚÀ   À  À  .À  dÀ  pÀ  –À  ©À  ÃÀ  ëÀ ¡#À ¡NÀ ¡ŠÀ ¡›À ¡¾À ¡ÈÀ ¡ÑÀ ¡ìÀ ¡óÀ ¢À ¢0À ¢sÀ ¢�À ¢ÉÀ ¢ØÀ ¢ñÀ £À £À £À £.À £2À £3À £yÀ £À £ÂÀ ¤À ¤À ¤^À ¤—À ¤�À ¤ãÀ ¥À ¥IÀ ¥OÀ ¥•À ¥ÍÀ ¥îÀ ¥ôÀ ¦À ¦À ¦RÀ ¦—À ¦²À ¦¼À §À §*À §FÀ §|À §ˆÀ §®À §ÁÀ §âÀ §ëÀ ¨À ¨À ¨3À ¨tÀ ¨ŽÀ ¨ÆÀ ¨ÎÀ ¨áÀ ¨åÀ ¨æÀ ©1À ©7À ©‡À ©ÏÀ ©æÀ ©ìÀ ª=À ªLÀ ªRÀ ª À ªØÀ ªôÀ ªúÀ «	À «À «bÀ «yÀ «¦À «°À «áÀ ¬À ¬;À ¬RÀ ¬ˆÀ ¬”À ¬ºÀ ¬ÍÀ ¬úÀ ­À ­À ­%À ­>À ­VÀ ­pÀ ­„À ­«À ­ÊÀ ®À ®&À ®4À ®NÀ ®jÀ ®“À ®£À ®ÀÀ ®ÔÀ ®ûÀ ¯À ¯fÀ ¯vÀ ¯…À ¯ŒÀ ¯ŸÀ ¯£À ¯¤À ¯óÀ ¯ùÀ °CÀ °•À °åÀ °ôÀ °úÀ ±BÀ ±zÀ ±–À ±œÀ ±«À ±¹À ²À ²%À ²BÀ ²LÀ ²vÀ ²¢À ²ØÀ ²äÀ ³
À ³À ³>À ³GÀ ³bÀ ³iÀ ³�À ³ÎÀ ³åÀ ´À ´&À ´^À ´fÀ ´yÀ ´}À ´~À ´¶À ´¼À µÀ µÀ µ$À µlÀ µ¡À µ½À µîÀ ¶À ¶DÀ ¶PÀ ¶vÀ ¶‰À ¶©À ¶²À ¶ÍÀ ¶ÔÀ ¶úÀ ·À ·3À ·CÀ ·yÀ ·‚À ·ŠÀ ·�À ·¡À ·¢À ·ìÀ ·òÀ ¸%À ¸vÀ ¸’À ¸˜À ¸âÀ ¹À ¹À ¹bÀ ¹šÀ ¹¶À ¹¼À ¹ËÀ ¹ÙÀ ¹îÀ º<À ºTÀ ºyÀ º—À º¡À ºÎÀ ºúÀ »0À »<À »bÀ »uÀ »•À »žÀ »¹À »ÀÀ »æÀ ¼À ¼7À ¼oÀ ¼yÀ ¼±À ¼¹À ¼ÌÀ ¼ÐÀ ¼ÑÀ ½À ½ À ½SÀ ½¢À ½¾À ½ÄÀ ¾À ¾CÀ ¾IÀ ¾�À ¾ÇÀ ¾ãÀ ¾éÀ ¾øÀ ¿À ¿À ¿iÀ ¿�À ¿°À ¿¶À ¿ÓÀ ¿ÝÀ ÀÀ À4À ÀjÀ ÀvÀ ÀœÀ À¯À ÀÐÀ ÀÙÀ ÀôÀ ÀûÀ Á!À ÁZÀ ÁqÀ Á¨À Á²À ÁêÀ ÁòÀ ÂÀ Â	À Â
À Â7À Â=À Â�À ÂÅÀ ÂËÀ ÂðÀ Ã(À ÃDÀ ÃJÀ Ã™À ÃÃÀ ÃÞÀ ÄÀ ÄÀ Ä,À Ä8À ÄIÀ ÄRÀ ÄxÀ Ä‹À Ä¬À ÄµÀ ÄÐÀ Ä×À ÄêÀ ÄîÀ ÄïÀ Å À Å&À ÅtÀ Å�À ÅßÀ ÅüÀ ÆÀ ÆSÀ Æ`À ÆfÀ ÆµÀ ÆéÀ ÇÀ Ç2À ÇhÀ ÇtÀ ÇšÀ Ç­À ÇÍÀ ÇÖÀ ÇñÀ ÇøÀ ÈÀ ÈJÀ ÈRÀ ÈeÀ ÈiÀ ÈjÀ È—À È�À ÈéÀ É2À ÉhÀ ÉiÀ É¡À É§À ÉòÀ ÊÀ Ê`À ÊfÀ Ê‹À ÊÃÀ ÊßÀ ÊüÀ ËÀ ËJÀ Ë[À ËlÀ Ë†À Ë�À ËµÀ ËÈÀ ËêÀ ËóÀ ÌÀ ÌÀ Ì(À Ì,À Ì-À Ì`À ÌfÀ Ì°À ÌÐÀ ÍÀ Í#À ÍbÀ Í«À ÍÌÀ Î	À Î"À Î(À ÎMÀ Î…À Î¡À Î¼À ÎÚÀ Ï
À ÏÀ Ï,À ÏFÀ ÏOÀ ÏuÀ ÏˆÀ ÏªÀ Ï³À ÏÎÀ ÏÕÀ ÏèÀ ÏìÀ ÏíÀ Ð=À ÐMÀ ÐSÀ Ð À ÐñÀ ÑÀ ÑÀ ÑaÀ ÑŽÀ Ñ”À ÑØÀ ÑíÀ ÑóÀ ÒCÀ ÒIÀ ÒXÀ ÒfÀ Ò¬À ÒÒÀ ÒÜÀ ÓÀ Ó$À ÓJÀ ÓPÀ Ó—À Ó›À ÓœÀ ÓáÀ ÓçÀ Ô0À ÔWÀ Ô¢À ÔÔÀ ÔÚÀ Õ)À ÕLÀ ÕRÀ Õ À ÕñÀ Õ÷À ÖFÀ Ö�À Ö–À ÖæÀ ×$À ×NÀ ×TÀ ×cÀ ×qÀ ×†À ×ËÀ ×äÀ ØÀ Ø)À ØGÀ ØoÀ ØsÀ ØtÀ Ø«À Ø±À ØõÀ Ù À ÙcÀ Ù©À Ù¯À ÙüÀ ÚJÀ ÚtÀ ÚzÀ Ú¼À ÚÂÀ ÛÀ Û^À Û’À Û˜À ÛÛÀ Ü"À ÜLÀ ÜRÀ ÜaÀ ÜoÀ Ü¿À ÜëÀ Ý&À Ý0À Ý^À ÝŠÀ ÝŽÀ Ý�À ÝËÀ ÝÑÀ ÞÀ Þ]À Þ€À Þ·À Þ½À Þ÷À ß:À ß@À ßƒÀ ßËÀ ßõÀ ßûÀ à
À àÀ à-À à{À àÊÀ àÔÀ àòÀ áÀ áÀ áÀ áiÀ áoÀ á±À â À â3À â{À â¼À âôÀ ãAÀ ãYÀ ã_À ã«À ã±À ãôÀ ä;À äeÀ äkÀ äzÀ äˆÀ äØÀ äìÀ åÀ åKÀ åUÀ åƒÀ å¯À å³À å´À åúÀ æ À æJÀ æ“À æØÀ ç À çCÀ çIÀ ç’À çÞÀ çäÀ è+À èpÀ è¶À èêÀ èðÀ é3À é€À é³À é¹À éÈÀ éÖÀ ê&À êdÀ ênÀ ê©À êÖÀ êÚÀ êÛÀ ëÀ ë	À ëYÀ ë_À ë­À ëúÀ ì2À ì8À ìˆÀ ì¬À ì²À íÀ í6À í<À í�À íœÀ í´À íÚÀ îÀ îÀ îBÀ îUÀ î{À î±À îÚÀ ïÀ ïÀ ï8À ï?À ïcÀ ï—À ïŸÀ ï²À ï¶À ï·À ïÞÀ ïäÀ ðÀ ðFÀ ðbÀ ðhÀ ð«À ðÞÀ ðõÀ ñÀ ñ.À ñLÀ ñXÀ ñjÀ ñ†À ñžÀ ñ§À ñÍÀ ñàÀ ñûÀ òÀ ò1À ò;À òaÀ ò—À òÀÀ òúÀ óÀ óÀ ó%À ó8À ó<À ó=À ófÀ ólÀ ó—À óÎÀ óêÀ óðÀ ô.À ôaÀ ôzÀ ô À ô³À ôÑÀ õÀ õÀ õ9À õLÀ õgÀ õ‹À õ�À õ§À õÍÀ öÀ ö,À öfÀ öoÀ öŠÀ ö‘À öµÀ öÎÀ öüÀ ÷"À ÷VÀ ÷À ÷ËÀ ÷ÛÀ ÷ãÀ ÷ýÀ øÀ øÀ ø.À ø2À ø3À øqÀ øwÀ øÆÀ øíÀ øóÀ ùÀ ù_À ù£À ùëÀ úÀ ú+À ú1À úxÀ úÆÀ úÌÀ ûÀ û4À û:À ûŒÀ ûÝÀ ü(À ü.À ü{À ü¥À üÛÀ üáÀ üðÀ üþÀ ý=À ý…À ý À ý¦À ýàÀ þ(À þCÀ þMÀ þ‹À þ®À þäÀ þðÀ ÿÀ ÿ)À ÿGÀ ÿ�À ÿ¢À ÿ¬À ÿÒÀ À 1À kÀ tÀ �À –À —À »À òÀ	ÀAÀKÀƒÀ‹ÀžÀ¢À£ÀàÀæÀ4À[ÀaÀ…À‹ÀÔÀÀÀeÀkÀºÀÖÀÜÀëÀùÀ@À‡À¢À¨ÀëÀ3ÀNÀXÀ•À¸ÀËÀéÀÀ+ÀQÀdÀÀ£ÀµÀ¿ÀÝÀ&À8ÀBÀhÀžÀÇÀÀ
À%À,À-ÀQÀˆÀŸÀ½À×ÀáÀ	À	!À	4À	8À	9À	xÀ	~À	ÎÀ	õÀ	ûÀ
À
%À
uÀ
·À
½ÀÀIÀOÀ—À�ÀçÀÀÀ*À8ÀzÀÃÀÞÀäÀ$ÀmÀˆÀŽÀÎÀÀ(À2ÀqÀ—ÀªÀÈÀþÀ
À0ÀCÀ^À‚À”ÀžÀ¼ÀÀÀ!ÀGÀ}À¦ÀàÀéÀÀÀÀ0ÀgÀ~À›ÀÅÀýÀ*ÀzÀŽÀšÀ¸ÀÒÀÜÀÀÀ/À3À4ÀxÀ~ÀËÀÛÀáÀ1À}À±À·ÀÀÀ#ÀpÀ‹À®ÀßÀÀÀGÀgÀsÀ™À¬ÀËÀìÀÿÀÀ6ÀQÀ^ÀzÀ…ÀŽÀ©À°ÀÔÀ÷À-À=ÀEÀ^ÀfÀgÀzÀ~ÀÀ¿ÀÅÀ
ÀSÀ£À¾ÀÄÀÀJÀ�ÀØÀóÀ0ÀzÀ½À ÀÀEÀŒÀÑÀÀZÀ`ÀªÀßÀ)ÀGÀMÀ�ÀÝÀ$ÀdÀjÀyÀ‡À¯ÀÔÀ À À RÀ ›À ¾À ÚÀ äÀ êÀ!#À!)À!;À!UÀ!cÀ!mÀ!½À!æÀ!ýÀ"?À"LÀ"‘À"—À"˜À"¶À"ÜÀ# À#À#:À#WÀ#‘À#¡À#¬À#µÀ#ÂÀ$À$%À$.À$hÀ$…À$ÄÀ% À%À%'À%-À%.À%bÀ%�À%ÃÀ%ïÀ&;À&NÀ&kÀ&…À&ÅÀ'À'4À'pÀ'²À'ÓÀ'ÞÀ(À(2À(rÀ(’À(¥À(½À(ëÀ(öÀ)À)&À)DÀ)PÀ)~À)ŸÀ)·À)ÝÀ)æÀ* À*À*.À*JÀ*lÀ*xÀ*”À*·À*ùÀ+À+À+À+À+4À+8À+:À+;À+iÀ+mÀ+¦À+ÕÀ+ÙÀ,À,FÀ,ŒÀ,ÄÀ,ÈÀ,ÕÀ,áÀ-.À-AÀ-EÀ-’À-šÀ-ÆÀ-ÜÀ-ñÀ.À.5À.=À.jÀ.€À.•À.°À.ÛÀ.ãÀ/À/'À/<À/WÀ/_À/�À/±À/·À/úÀ0 À0OÀ0sÀ0yÀ0¿À0ÒÀ0ØÀ1%À1vÀ1¾À2À2À2bÀ2ƒÀ2œÀ2�À2ÙÀ2ßÀ3+À3PÀ3ŠÀ3�À3ØÀ4À4:À4;À4xÀ4~À4ÅÀ5À57À5=À5ƒÀ5ÊÀ5ìÀ5òÀ66À6QÀ6WÀ6ŸÀ6ñÀ7À7À7UÀ7[À7�À7áÀ7çÀ8/À8€À8£À8¤À8çÀ8íÀ9,À9uÀ9˜À9ãÀ9úÀ:DÀ:JÀ:‘À:×À;À;À;nÀ;¬À;ÙÀ<(À<[À<aÀ<’À<˜À<ÜÀ=À=XÀ=¥À=ôÀ>À>À>[À>¡À>ÍÀ>ÎÀ>ëÀ>ñÀ?!À?lÀ?±À?æÀ?ìÀ@;À@]À@nÀ@oÀ@«À@±À@ùÀA@ÀAVÀA\ÀA¡ÀAÙÀAîÀAïÀB9ÀB?ÀBŒÀBÃÀBÉÀCÀCVÀC\ÀC ÀCµÀC»ÀD
ÀDTÀDeÀD�ÀD’ÀD“ÀD½ÀDÁÀEÀEEÀEIÀE’ÀEØÀEþÀF9ÀF`ÀFfÀF‘ÀF¦ÀF§ÀFÊÀFÐÀFûÀG4ÀG5ÀGLÀGRÀG™ÀGŸÀGäÀGôÀGöÀG÷ÀH6ÀH^ÀHyÀHzÀH³ÀH´ÀHãÀHäÀIÀI<ÀItÀI¿ÀIÀÀIàÀIýÀJÀJ(ÀJAÀJHÀJcÀJqÀJ‰ÀJŸÀJÃÀJÊÀJÎÀJÐÀJÑÀKÀKÀKiÀKµÀKæÀKêÀL4ÀL{ÀL·ÀLäÀMÀMÀMPÀMVÀM¥ÀMÝÀN'ÀNLÀNRÀN–ÀNÙÀO*ÀO0ÀOzÀOÂÀP ÀP&ÀP'ÀPgÀPmÀP·ÀPáÀPçÀQ2ÀQƒÀQ­ÀQ¿ÀQÁÀQÂÀRÀRÀRdÀRhÀR³ÀRùÀS$ÀS(ÀSqÀS¿ÀSØÀSÜÀT&ÀT<ÀT@ÀT€ÀT§ÀTØÀUÀU!ÀUnÀU˜ÀUžÀUìÀV=ÀVgÀVmÀV–ÀVœÀVìÀW:ÀW‡ÀWÏÀWÕÀX&ÀXXÀXjÀXkÀX·ÀX½ÀXìÀY;ÀYrÀYxÀY¸ÀY¾ÀZÀZLÀZ†ÀZ™ÀZ›ÀZœÀZµÀZ¹ÀZùÀ[EÀ[…À[¤À[¨À[÷À\À\"À\qÀ\uÀ\»À\úÀ]HÀ]pÀ]tÀ]ÁÀ^À^UÀ^¢À^³À^æÀ_2À_8À_„À_ÏÀ`À`UÀ`[À`£À`îÀ`ôÀaBÀa„ÀaÈÀbÀbÀb]Àb©ÀbçÀc,Àc2Àc�ÀcÓÀcüÀdÀdBÀdHÀd�ÀdÞÀe+ÀeDÀe‹ÀeÖÀfÀf"Àf1Àf7ÀfEÀf�ÀfáÀg
ÀgZÀg–Àg¹ÀgìÀhÀh1ÀhSÀh`ÀhŒÀh´ÀháÀi#Ài8ÀicÀi�Ài¾ÀiÉÀjÀj*ÀjYÀjaÀjgÀj‹ÀjÐÀjÖÀjïÀkÀk ÀkCÀk�Àk¹ÀkºÀlÀlÀlBÀlHÀlVÀl£ÀlâÀlÿÀm?ÀmNÀmXÀm^Àm­ÀmúÀn!Àn'ÀnvÀn«Àn±ÀoÀoRÀo ÀoîÀp&Àp,Àp|ÀpÄÀqÀq'Àq-ÀqyÀqÈÀrÀr_ÀryÀrÀrÂÀsÀsIÀs�Às“ÀsÚÀt$Àt0Àt6ÀtqÀtµÀtúÀuEÀu^Àu¡ÀuêÀvÀvÀvÀvWÀvxÀv—Àv½ÀvåÀwÀwÀw"Àw=ÀwxÀwªÀwáÀxÀxKÀxVÀx\ÀxƒÀx»ÀyÀyPÀy¡Ày¾ÀyÔÀyêÀzÀzÀz2ÀzJÀzTÀzÀz°ÀzÿÀ{(À{PÀ{QÀ{‘À{—À{çÀ|5À|eÀ|kÀ|ˆÀ|ÒÀ}#À}-À}xÀ}œÀ}�À}ØÀ}ÞÀ~(À~xÀ~~À~ÌÀÀ7ÀtÀšÀ ÀÚÀÞÀßÀ€À€À€YÀ€rÀ€xÀ€·À€âÀ�/À�wÀ�½À�ÃÀ‚À‚'À‚sÀ‚¾À‚ÐÀƒÀƒkÀƒqÀƒÃÀ„À„[À„aÀ„šÀ„ÝÀ…À…dÀ…ˆÀ…‰À…×À…ÝÀ†)À†jÀ†´À†ÚÀ‡À‡À‡	À‡>À‡BÀ‡†À‡ÖÀ‡÷À‡øÀˆ&Àˆ\Àˆ^Àˆ_ÀˆžÀˆ¢ÀˆéÀ‰5À‰WÀ‰[À‰•À‰™À‰éÀŠ3ÀŠ`ÀŠ�ÀŠ»ÀŠýÀ‹À‹AÀ‹BÀ‹xÀ‹~À‹ÈÀŒÀŒ4ÀŒ~ÀŒ®ÀŒüÀ�À�#À�nÀ��À�«À�¬À�ÓÀ�ÙÀŽ'ÀŽxÀŽÊÀ�À� À�hÀ�¬À�öÀ�EÀ�“À�¤À�¥À�÷À�ýÀ‘JÀ‘{À‘�À‘ÎÀ’À’5À’;À’~À’½À’ìÀ’òÀ“<À“†À“›À“®À“°À“±À“ùÀ”8À”LÀ”wÀ”xÀ””À”ªÀ”èÀ”ùÀ”ýÀ”þÀ•À•0À•4À•5À•hÀ•—À•›À•œÀ•­À•ÈÀ•ÌÀ•ÎÀ•ÏÀ–À–À–QÀ–rÀ–ÀÀ—À—À—pÀ—ÁÀ—ÍÀ—ÿÀ˜$À˜FÀ˜LÀ˜“À˜ÖÀ™À™EÀ™^À™_À™‡À™�À™ÙÀšÀšYÀš‹ÀšÈÀšÉÀ› À›À›PÀ›iÀ›¬À›éÀœÀœhÀœ¢Àœ¶Àœ¸  
dart.async€á
 StreamStreamSubscription	EventSink
StreamViewStreamConsumer
StreamSinkStreamTransformerStreamTransformerBaseStreamIterator_ControllerEventSinkWrapperMultiStreamControllerstream_where_or_else€ãIf no such element is found before this stream is done, and an
[orElse] function is provided, the result of calling [orElse]
becomes the value of the future. If [orElse] throws, the returned
future is completed with that error. Iö