VimUnDon8 var names = map(data, function(value) { return value.name })+ print(names) // =>  **/? return transform(source, function(next, value, accumulated) {& return next(f(value), accumulated) })}5_ vP&&var transform = require("./transform")5_!vP)#var reduce = require("./transform")5_vP,5_ vP. var reduce = require("./reduce")5_! v P3#var reducible = require("./reduce")5_ v P85_  v P9module.exports = map5_ ' v PN 7 Flattens given `reducible` collection of `reducible`s5_  v PP * Flattens given sequences of `reducible`s5_ ' v PR ) Flattens given sequence of `reducible`s5_  ' v PT ( Flattens given sequence of `sequence`s5_   v PU ' Flattens given sequence of `sequences5_  v PV & Flattens given sequence of sequences3to a `reducible` with items of nested `reducibles`. 5 to a `reducible` with items of nested `reducibles`.5_ 6 v PX Z Flattens given sequence of sequences to a `reducible` with items of nested `reducibles`.5_ C v Pb W Flattens given sequence of sequences to a sequence with items of nested `reducibles`.5_  v Pg  all nested `reducibles`.5_  v Pj  all nested sequence.5_  v P  all nested sequences.5_ = v P C all nested sequences. Note that function does no guarantees about5_ : v P : all nested sequences. Note that function does not about5_ ) v P ) an order of items in resulting sequence5_ G v P G all nested sequences. Note that function does not deals with ordering5_ 9 v P 9 of items in resulting sequence. Items there will appear5_  v P  appear 5_  v P   are ordered by time 5_  v P  are ordered by the time 5_ v P0 " item from the second subsequnce 5_ v P1 # item from the second subssequnce 5_  v P7 # item from the second sub-sequnce 5_! $ v P: $ item from the second sub-sequence 5_ "! v Pi sequence too.5_!#" v Pp  sequence too. If you need to 5_"$#- v P- sequence too. If you need to keep order of 5_#%$5 v P: sequence too. If you need to keep order by sequence you 5_$&%7 v P 7 sequence too. If you need to keep order by index you 5_%'&  v P sequential5_&(' v P  sequential ordering5_')(" v P" sequential ordering by wrapping 5_(*)8 v P 8 sequential ordering by wrapping `source` into sequence5_)+* v P  print 5_*,+& v P& print(flatten([ [1, 2], [ 3, 4 ] ]))5_+-,= v P> print(flatten([ [1, 2], [ 3, 4 ] ])) // => 5_,.-PJcM/*jshint asi: true undef: true es5: true node: true browser: true devel: true5_-/. PJc9 forin: true latedef: false globalstrict: true */5_.0/PJd5_/10PJd 'use strict';5_021 PJf "use strict';5_132 vP 5_243Y vP ]print(flatten([ ["A", "B"] , flatten([ [ "a", "b" ], flatten([ [ 1 ], [ 2 ], [ 3 ] ]) ])) ]))5_3543[vP (  5_465 [ vP ,  console.log()5_576 [ vP ,  console.log("")5_687 [ vP 3 console.log(nested)5_798[vP ;  5_8:9 [ vP >  console.log()5_9;:  [ vP c\print(flatten([ ["A", "B"] , flatten([ [ "a", "b" ], flatten([ [ 1 ], [ 2 ], [ 3 ] ]) ]) ]))5_:<;  [ vP e ^//print(flatten([ ["A", "B"] , flatten([ [ "a", "b" ], flatten([ [ 1 ], [ 2 ], [ 3 ] ]) ]) ]))5_;=< [ vP e5_<>=[vP f5_=?>[vP 5_>@?[vP var eventual = require()5_?A@[vP var eventual = require("")5_@BA[vP 4 return reduce(source, function(result, nested) {5_ACB[vP  }, initial)5_BDC[vP $var eventual = require("./eventual")5_CED [vP "var eventual = require("eventual")5_DFE[vP  console.log(value)5_EGF#[vP "= return reduce(source, eventual(function(result, nested) {5_FHG[vP - }), initial)5_GIH[vP 0 5_HJI[vP 5 console.log()5_IKJ[vP F 5_JLK[vP I console.log()5_KML[vP  5_LNM [ vP  }, initial)5_MON) [ vP 4 return reduce(source, function(result, nested) {5_NPO+ [ vP 5 return reduce(nested, function(result, value) {5_OQP [ vP  }, result)5_PRQ [ vP " return next(result, value)5_QZR  [ vP  ( var result = next(result, value)5_R[WZ [ vP "7 return reducible(source, function(_, next, initial) {5_Z\[ [ vP $ result = next(result, value)5_[]\ [ vP  var result = initial5_\^][vP ! console.log(result, nested)5_]_^$[vP / return reduce(source, function(_, nested) {5_^`_&[vP 0 return reduce(nested, function(_, value) {5__a`[vP  })5_`ba[vP  }, resulting)5_acb[vP # })5_bdc[vP5 return reducible(null, function(_, next, initial) {5_ced [vP function and5_dfe [ vPfunction and()5_egf [ vP function and() {}5_fhg ![!vP function and() {5_gih![!vP !  5_hji"["vP ! when()5_ikj"["vP ! when(a, function())5_jlk"["vP ! when(a, function() {})5_kml#[#vP "5_lnm$[$vP when(a, function() {5_mon#[#vP5_npo"["vP })5_oqp![!vP function and(a, b) {5_prq ![!vP var and = function and(a, b) {5_qsr![!vP 'var and = eventual(function and(a, b) {} }5_rts( [ vP$(var and = eventual(function and(a, b) {}5_sut  [ vP5 return reduce(nested, function(result, value) {5_tvu [ vP% }, result)5_uwv( [ vP&)var and = eventual(function and(a, b) {})5_vxw [ vP'var and = eventual(Array)5_wyx [ vP(A return and(result, reduce(nested, function(result, value) {5_xy [ vP2  5_yzvP." // !5_vP1" console.log()5_vP2" console.log('')5_vP33" console.log('>>>>')5_Pk4! console.log('>>>>', nested)5_P.45!7 return reducible(source, function(_, next, initial) {5_P6C!5 return reducible(null, function(_, next, initial) {5_P6I>!/ return reducible(function(_, next, initial) {5_5*vPD?!@ print(flatten([ [1, 2], [ 3, 4 ] ])) // => 5_/*vPQ" !5_*vPQ" console.log()5_*vPQ" console.log('')5_*vPQ@" console.log('>>>')5_ *vPRL# "5_*vPRS# var promise = deliver()5_*vPRd var promise = defer()5_*vPRh"C return group(result, reduce(nested, function(result, value) {5_*vPRk" }, result))5_*vPRmA" console.log('>>>', result)5_*vPR" !5_*vPR" }, initial)5_+*vPS"5 return reduce(nested, function(result, value) {5_*vPS "" return next(result, value)5_)*vPS"4 return reduce(source, function(result, nested) {5_*vPS" var state = initial5_*vPS" var results5_ *vPS"# state = next(result, value)5_*vPS#" }, result)5_*vPS*" })5_*vPS-" })5_*vPS5B# "5_$*vPS#/ return reduce(source, function(_, nested) {5_ *vPS # }, null)5_ *vPS#0 return reduce(nested, function(_, value) {5_*vPSC# }, null)5_vPT'$#5_vPT+function identical5_vPTvar group = eventual(Array)5_vPTE5_vPT!@ return group(previous, reduce(nested, function(_, value) {5_vPT! }, null))5_ vPT" !5_9vPU#? // Result is accumulated into this outer variable as nested5_?vPU#E // Result is accumulated into this outer variable as items nested5_DvPU#J // Result is accumulated into this outer variable as items from nested5_vPU$ // nested collections $ // collections 5_vPU!# // nested collections 5_&vPU*/ // nested collections can come in arbitary 5_0vPU+#0 // nested collections can come in arbitrary 5_6vPU6F#6 // nested collections can come in arbitrary order.5_7vPU<#7 // nested collections can come in time based order.5_ vPUO$ // to 5_+vPU]$6 return reduce(source, function(previous, nested) {5_vPU|G return result5_ vPU#5 return reduce(source, function(promise, nested) {5_ vPU!$ !#5_ vPU!$ when()5_ vPU!$ when(promise, function())5_ vPU!$ when(promise, function() {})5_ vPU$+var eventual = require("eventual/decorate")5_%vPUJ$'var when = require("eventual/decorate")5_vP[q$#var when = require("eventual/when")5_%vP[uK$'var eventual = require("eventual/when")5_(vP[zvar first = eventual%$5_ vP[&var first = eventual()5_ vP[& var first = eventual(function())5_! vP[&#var first = eventual(function() {})5_ vP[&$var first = eventual(function() { })5_" vP[&(var first = eventual(function(item) { })5_& vP[&)var first = eventual(function(value) { })5_ vP[&< var promise = reduce(source, function(promise, nested) {5_" vP[!"/ when(promise, function() { return result })5_ vP[%. reduce(source, function(promise, nested) {5_  vP[%0 return reduce(nested, function(_, value) {5_ vP[%? return first(promise, reduce(nested, function(_, value) {5_  vP[L!% }, null)5_ vP[!& !%5_  vP[z!& return resulting5_ vP &$ result = next(result, value)5_ vP{ & result = next(value)5_ vP|&6 return first(reduce(nested, function(_, value) {5_ vP'&5_  vP'var when = require()5_  vP}'var when = require("")5_   vP  ( //  '5_  vP ( when()5_  vP ( return when()5_%  vP  (& return when(promise, function())5_'  vP !() return when(promise, function() [])5_   vP!  ])5_   vP$!(: return first(accumulate(nested, function(_, value) {5_!  vP( "($ result = next(value, result)5_"  vP*!#( return result5_#  vP,"$( }, null), promise)5_#  vP6"$( }, null), promise)5_#  vP9"$( }), promise)5_#   vPD#%) #%(5_'  vPJ )' return when(promise, function() [5_'  vPK )( return when(promise, function() []5_(  vPN )( return when(promise, function() {}5_$  vPQ~#%) }5_ vPb*)5_ vPd5_  vPe* var reduce = require("./reduce")5_" v Pl*$var accumulate = require("./reduce")5_! v Pо "*/ accumulate(nested, function(_, value) {5_! v P "*6 return accumulate(nested, function(_, value) {5_&  v P&(*5_' v P&'5_!% v PѬ!#+ !#*5_" v PѮ!#+ console.log()5_" v Pѯ!#+ console.log("")5_" v Pѱ!#+ console.log(">>>>>")5_'  v P'), ')+5_  v P,5 return reduce(source, function(promise, nested) {5_( v P'), when5_(  v P'), when()5_( v P'), when(promise)5_( v P'), when(promise, function())5_(! v P')," when(promise, function(value))5_(# v P'),# when(promise, function(value) )5_(# v P'),$ when(promise, function(value) {}5_() v P'),+ when(promise, function(value) { next()}5_(4 v P'),5 when(promise, function(value) { next(end, value)}5_(6 v P'),6 when(promise, function(value) { next(end, value) }5_(; v P'),< when(promise, function(value) { next(end, value) }, end)5_ v P-,5_ v P-var end = require()5_  v P-var end = require("")5_  ! v Pl "-' return when(promise, function() {5_   ! v Po ! return function() {5_   & v Pp%& })5_   !% !vP~ &+2 return reduce(nested, function(_, value) {% console.log(">>>>>", value)& result = next(value, result) return result })5_  1% !vPҙ+< var promise = reduce(source, function(promise, nested) {5_ ! % !vP "+0 return reduce(nested, function(_, value) {5_+% !vP+6 var promise = reduce(source, function(_, nested) {5_%% !vP$&+ })5_"% !vP!"# console.log(">>>>>", value)5_ vP['! "use strict"; var reduce = require("./reduce")&var reducible = require("./reducible")+var eventual = require("eventual/decorate")var group = eventual(Array)function flatten(source) { /**B Flattens given sequence of sequences to a sequence with items ofA all nested sequences. Note that items in the resulting sequence> are ordered by the time rather then index, in other words ifD item from the second sub-sequence is deliver earlier then the itemD from first sub-sequence it will in appear earlier in the resultingE sequence too. If you need to keep order by index you should enforceC sequential ordering by wrapping `source` into `sequential` before passing it to flatten.@ print(flatten([ [1, 2], [ 3, 4 ] ])) // =>  **/, return reducible(function(next, initial) {4 return reduce(source, function(result, nested) {J // we group results to make sure flattened stream won't finish until& // all the streams are finished.C return group(result, reduce(nested, function(result, value) {" return next(result, value) }, result)) }, initial) })}module.exports = flatten5_ vPe!y"& "use strict"; var reduce = require("./reduce")&var reducible = require("./reducible")+var eventual = require("eventual/decorate")6var first = eventual(function(value) { return value })function flatten(source) { /**B Flattens given sequence of sequences to a sequence with items ofA all nested sequences. Note that items in the resulting sequence> are ordered by the time rather then index, in other words ifD item from the second sub-sequence is deliver earlier then the itemD from first sub-sequence it will in appear earlier in the resultingE sequence too. If you need to keep order by index you should enforceC sequential ordering by wrapping `source` into `sequential` before passing it to flatten.: print(flatten([ [1, 2], [ 3, 4 ] ])) // => < 1 2 3 4 /> **/, return reducible(function(next, initial) {H // Result is accumulated into this outer variable as items from thenL // nested collections can come in time based order so it won't be passed! // to in to reducer function. var result = initial5 return reduce(source, function(promise, nested) {J // we group results to make sure flattened stream won't finish until& // all the streams are finished.6 return first(reduce(nested, function(_, value) {$ result = next(result, value) return result }, null), promise) }, source) })}module.exports = flatten5_ vPe@'! "use strict"; var reduce = require("./reduce")&var reducible = require("./reducible")+var eventual = require("eventual/decorate")var group = eventual(Array)function flatten(source) { /**B Flattens given sequence of sequences to a sequence with items ofA all nested sequences. Note that items in the resulting sequence> are ordered by the time rather then index, in other words ifD item from the second sub-sequence is deliver earlier then the itemD from first sub-sequence it will in appear earlier in the resultingE sequence too. If you need to keep order by index you should enforceC sequential ordering by wrapping `source` into `sequential` before passing it to flatten.@ print(flatten([ [1, 2], [ 3, 4 ] ])) // =>  **/, return reducible(function(next, initial) {4 return reduce(source, function(result, nested) {J // we group results to make sure flattened stream won't finish until& // all the streams are finished.C return group(result, reduce(nested, function(result, value) {" return next(result, value) }, result)) }, initial) })}module.exports = flatten5_ vPi !!"function reducer5_!  vPq "#reducer5_! vPs "# reducer()5_! vPt "#reducer(function flatten())5_! vPx "#reducer(function flatten() {})5_! vPx "#reducer(function flatten() {})5_! vP~ "$*reducer(function flatten(value, results) {5_! vP "5_! vP "5_ vP"8 return accumulate(source, function(result, nested) {5_  vP"$var accumulate = require("./reduce")5_vP5_vP5_vPN5_&vPO@ return accumulate(source, function forward(result, nested) {5_ .vPP return accumulate(source, function accumulateFlattenSource(result, nested) {5_  vPP> return reducible(function accumulateFlatten(next, initial) {5_   GvPQH return accumulate(source, function accumulateFlattenSource(nested) {5_   =vP5_   vP  function forward()5_  vP  function forward() {}5_ vP  function forward() { }5_ vP!5_vP"% function forward(value, result) {5_"vP" function forward(value) {5_vP"5_vP# var state = initial5_vP# $ if ()5_ vP$ if (value)5_vP$ if (value === end)5_vP$ if (value === end) cou5_vP$ % var open = 15_vP.%' if (value === end) open = open -15_&vP3%( if (value === end) open = open - 15_vP6%) if (value === end) {open = open - 15_vP7% if (value === end) { open = open - 15_vP7& ' }5_vP9' ( if ()5_  vP:( if (open)5_! vP=( if (open === 0)5_ "!vPG( if (open === 0) next()5_!#"vPI(! if (open === 0) next(end)5_"$#vPP( if (open === 0) return next(end)5_#%$vPS)return next(end))( if (open === 0) return next(end)5_$&%vPX()var end = require()5_%'&vP\)var end = require("")5_&*'vP\) var end = require("./reducible")5_'+(*vPo) } else if5_*,+vPw) } else if ()5_+-,vPw) } else if (isEnd())5_,.-vPy) } else if (isError())5_-/.vP{) } else if (isError(value))5_.0/vP})! } else if (isError(value) )5_/10!vP) } else {}5_021vP) } else { }5_132vP* + return next()5_243vP+! return next(value, state)5_354vP +5_465!vP!", !#- accumulate()5_576"vP!#-! accumulate(nested, forward)5_687" vP!#-' accumulate(nested, forward, null)5_798!%vP!"- !#. if ()5_8:9" vP!#. if (nested === 0)5_9;:"vP!#. if (nested === end)5_:<;"vP!#.# if (nested === end) forward()5_;=<""vP!#.) if (nested === end) forward(nested)5_<>=" vP!#./ if (isEnd(nested === end) forward(nested)5_=?>"vP!#.' if (isEnd(nested) forward(nested)5_>@?"vPR!#.) if (isError(nested) forward(nested)5_?A@vP./var isError = require()5_@BAvP/var isError = require("")5_ACBvPS/ var isError = require("./error")5_BDCvP T/#var isError = require("./is-error")5_CED#vP"$/* if (isError(nested)) forward(nested)5_DFE$vP#%/, else accumulate(nested, forward, null)5_EGF%vP$&5_FHG%vP$&5_GIH%vP$&5_HJI%vP$&5_IKJ%vP$&5_JLK%vP $&* }, null)5_KML"vP(!#*H return accumulate(source, function accumulateFlattenSource(nested) {5_LNM vP.U* var open = 15_MONvP<* if (value === end && ()) {5_NPOvP?*/ if (value === end && (open = open - 1)) {5_OQPvPG*0 if (value === end && !(open = open - 1)) {5_PRQvPK5_QSR0vPK). if (value === end && !(open = open - 1))5_RTSvPN) return next(end)5_SUTvPV) * return 5_TVU vPX*$value === end && !(open = open - 1))*1 return value === end && !(open = open - 1))5_UWV1vP[)9 return value === end && !(open = open - 1) ? next()5_VXW8vP^)< return value === end && !(open = open - 1) ? next(end)5_WYX<vP`)> return value === end && !(open = open - 1) ? next(end) : next next()5_XZYvPd* next(value, state)5_Y[ZvPn5_Z\[vPo5_[]\vPo5_\^]vPoW5_]_^ vP&  'H // If there is an error or end of `source` collection just forward // 5_^`_HvP (I // If there is an error or end of `source` collection just forward`5__a`AvP (J // If there is an error or end of `source` collection just `forward`5_`ba vP!( // it 5_acbAvP (H // If there is an error or end of `source` collection just pass it // to `forward`5_bdc!vP "5_ced vPX!(. // to `forward` it will take care of it.5_dfe!vP "(1 if (isError(nested)) return forward(nested)5_egf !vP !( //  ") return 5_fhg" vP!#)'isError(nested)) return forward(nested) #)4 return isError(nested)) return forward(nested)5_gih!vP "(3 return isError(nested) return forward(nested)5_hji!$vP "(. return isError(nested) ? forward(nested)5_ikj .vP!(G // to `forward` it will take care of detecting weather it's error // or `end` 5_jlk!vP ")( // or `end` and if everything has 5_kml!vP ")1 // or `end` and in later if everything has 5_lnm!!vP ")3 // or `end` and in later case everything has 5_mon!#vP ")6 // or `end` and in later case if everything has 5_nqo!6vP ")9 // or `end` and in later case if everything should 5_orpq!vPI ")6 // or `end`. in later case if everything should 5_qsr!vPK ")6 // or `end`. In later case if everything should 5_rts!6vPN ")G // or `end`. In later case it will also figure out if this is the // kA5_sut!GvP^ "*I // or `end`. In later case it will also figure out if it's `end` of) // result to and act appropriately.5_tvu#vP|"$5_uwv$ vP~#%*. accumulate(nested, forward, null)5_vxw#.vP"$*0 return isError(nested) ? forward(nested) :5_wyx#/vP#$* #%+B // If `nested` item is not end nor error just accumulate it 5_xzy$4vP#%+C // If `nested` item is not end nor error just `accumulate it 5_y{z$?vP#%+D // If `nested` item is not end nor error just `accumulate` it 5_z|{$DvP#%+G // If `nested` item is not end nor error just `accumulate` it via //5_{}|$GvP#%,G // If `nested` item is not end nor error just `accumulate` it via5_|~}%vP$&,, // `forward` that will also make sure 5_}~"(vP"#, // "$- open = open + 15_~##vPY- var open = 05_###vP"$- 5_###vP"$5_$$vPZ,  - open = open + 15_&,$$vP%'-F // `forward` that keeps track of all collections that are concat5_&F$$vP%'-L // `forward` that keeps track of all collections that are bing forward5_&L$$vP[%'-N // `forward` that keeps track of all collections that are bing forwarded // to it.5_$$vP\.var end = require("./end")5_%%vP. / console.log()5_%%vP]/% console.log(open, value, state)5_ %%vP_/' state = next(value, state)5_%%vP`/- console.log(">>>>", open, value, state)5_''vP4/ 0 con5_! ''vP8 "1A accumulate(source, function accumulateFlattenSource(nested) {5_''vP: 1 connso5_&&vP; 5_ ''vP< !0  "1 console.log()5_!''vP?a "1 console.log(nested)5_!''vPLb "1 console.log(arguments)5_"''vP^c1(var accumulate = require("./accumulate")5_!&&vPdd "5_%%vPe5_%%vPf/ var open = 15_&&vP/ 0 console.log()5_&&vP0 console.log("")5_&&vP0 console.log(">>")5_&&vP0! console.log(">>", open, "")5_&&vP0$ console.log(">>", open, ">>>")5_# vPg0+ console.log(">>", open, ">>>", value)5_* vPh0: console.log(">>", open, ">>>", value, value === end)5_ vP0J console.log(">>", value === end ? open, ">>>", value, value === end)5_, vP 0T console.log(">>", value === end ? open -1 : open, ">>>", value, value === end)5_S vPi07 console.log(">>", value === end ? open -1 : open)5_6 vPj07 console.log(">>", value === end ? open -1 : open)5_  vP[05_ vP20 "use strict";(var accumulate = require("./accumulate")&var reducible = require("./reducible")var end = require("./end")#var isError = require("./is-error")function flatten(source) { /**B Flattens given sequence of sequences to a sequence with items ofA all nested sequences. Note that items in the resulting sequence> are ordered by the time rather then index, in other words ifD item from the second sub-sequence is deliver earlier then the itemD from first sub-sequence it will in appear earlier in the resultingE sequence too. If you need to keep order by index you should enforceC sequential ordering by wrapping `source` into `sequential` before passing it to flatten.@ print(flatten([ [1, 2], [ 3, 4 ] ])) // =>  **/> return reducible(function accumulateFlatten(next, initial) { var state = initial var open = 1 function forward(value) {7 console.log(">>", value === end ? open -1 : open)> return value === end && !(open = open - 1) ? next(end) :' state = next(value, state) }A accumulate(source, function accumulateFlattenSource(nested) { open = open + 1H // If there is an error or end of `source` collection just pass itG // to `forward` it will take care of detecting weather it's errorI // or `end`. In later case it will also figure out if it's `end` of) // result to and act appropriately.0 return isError(nested) ? forward(nested) :G // If `nested` item is not end nor error just `accumulate` it viaN // `forward` that keeps track of all collections that are bing forwarded // to it.. accumulate(nested, forward, null) }, null) })}module.exports = flatten5_6 vPk0> console.log(">>", value === end ? open -1 : open, value)5_ vPl0@ console.log("\n>>", value === end ? open -1 : open, value)5_ vP?0= return value === end && (open = open - 1) ? next(end) :5_/ vPC0@ return value === end && (open = open - 1) == ? next(end) :5_1 vPE0 1 if ()5_  vPG1 if (value === end)5_ vPJ1 if (value === end) {}5_ vPK1 if (value === end) { }5_ vPM2 3 open = open - 15_ vPT3 4 if ()5_  vPU4 if (open === 0)5_ vPZ4% if (open === 0) return next()5_$ vP]4( if (open === 0) return next(end)5_ vPa 5_  vPb 3 state = next(value, state)5_ vPhm 3 !4 return state5_ vPnn5_ vP3 } else {}5_ vP3 } else {5_ vP3" state = next(value, state)5_vPp3  4 }5_%vP($&5_(vP*()3 // (*4 if ()5_) vP.(*4 if (isError())5_)vP0(*4 if (isError(nested))5_)vP2(*4 if (isError(nested)) {}5_)vP2(*4 if (isError(nested)) { }5_)vP4(*5 if (isError(nested))5_)vP6(*5+ if (isError(nested)) return forward()5_)*vP8(*51 if (isError(nested)) return forward(nested)5_*vP<)+5_*vP>)+5_,vPA,-3 // ,.4 open = open + 15_. vPFq-/4' accumulate(nested, forward, null)5_( vP()4 // (*5 if ()5_) vP(*5 if (nested === end)5_)vP(*5* if (nested === end) return forward()5_))vPr(*5- if (nested === end) return forward(end)5_$+vPQ$%5 $&6 console.log()5_%vPV$&6 console.log(nested)5_%vPXs$&6 console.log("!", nested)5_vPŒ6 7 console.log()5_vPŗ7 console.log("")5_vPř7 console.log("~")5_vPśu7 console.log("~", value)5_vP-v5_%vP/w$&5_0 5VPax/15 }, initial)5_vP43 if (open = open - 1 === 0) return next(end)5_ vP3 } else {}5_ vP3 } else {5_oqp!vPC ")5 // or `end` in later case if everything should 5_')*(vPf) if (value === end) next()5_()vPh)" if (value === end) next(end)5_vPT!0 return reduce(nested, function(_, value) {5_vPT! }, null)5_vPT5_ vPT  }, initial)5_ vPT  }, source)5_vPT  }, )5_+vPT 4 return reduce(source, function(result, nested) {5_ vPT  }, result)5_ vPT,#var identity = eventual(Array)5_vPT2##var identity = eventual(function())5_"vPT3#&var identity = eventual(function() {})5_$vPT4#$var identity = eventual(function() {})5_ **v*PT6$-var identity = eventual(function identity() {5_***v*PT9$2var identity = eventual(function identity(value) {5_.**v*PT;$  % return value5_vPTA%C return identity(previous, reduce(nested, function(_, value) {5_vPTD%; return identity(, reduce(nested, function(_, value) {5_vPTE%9 return identity(reduce(nested, function(_, value) {5_ vPTGD!% }, null), previous)5_*vPRZ5_ *vPR^"; var promise = reduce(source, function(result, nested) {5_**0vP!4 return group(result, reduce(nested, , result))5_**0vP<8 return group(result, reduce(nested, next, result))5_*0vP/* return reduce(nested, next, result))5_**0vP0=) return reduce(nested, next, result)5_P/"! "use strict"; var reduce = require("./reduce")&var reducible = require("./reducible")+var eventual = require("eventual/decorate")var group = eventual(Array)function flatten(source) { /**B Flattens given sequence of sequences to a sequence with items ofA all nested sequences. Note that items in the resulting sequence> are ordered by the time rather then index, in other words ifD item from the second sub-sequence is deliver earlier then the itemD from first sub-sequence it will in appear earlier in the resultingE sequence too. If you need to keep order by index you should enforceC sequential ordering by wrapping `source` into `sequential` before passing it to flatten.@ print(flatten([ [1, 2], [ 3, 4 ] ])) // =>  **/7 return reducible(source, function(_, next, initial) {4 return reduce(source, function(result, nested) {J // we group results to make sure flattened stream won't finish until& // all the streams are finished.C return group(result, reduce(nested, function(result, value) {" return next(result, value) }, result)) }, initial) })}module.exports = flatten5_P6!* return convert(function(next, initial) {5_P67!0 return convert(null, function(next, initial) {5_P6!"var convert = require()5_P6"var convert = require("")5_P78""var convert = require("./convert")5_ P79"3 return convert(null, function(_, next, initial) {5_yzvP!= return group(, reduce(nested, function(result, value) {5_z{vPb/!; return group(reduce(nested, function(result, value) {5_vP}!5 return reduce(nested, function(result, value) {5_vP! }, result)5_ vP0!. reduce(nested, function(result, value) {5_z|{vP!; return group(reduce(nested, function(result, value) {5_{}|vP *! }, result), result)5_|~}vP!5 return reduce(nested, function(result, value) {5_}~vP+! }, result)5_~ vP-!. reduce(nested, function(result, value) {5_vP;.! next(result, value)5_vPL! // " console.log()5_vPS" console.log(rde)5_vP&! next(result, value)5_RXSZW [ vP + return reduce({}, function(_, nested) {5_WYX [ vP * return reduce(), function(_, nested) {5_XY [ vP !- return reduce(null, function(_, nested) {5_RTWS[vP 5_SUT$[vP F. return reduce(source, function(, nested) {5_TVU#[vP I/ return reduce(source, function(, nested) {5_UV#[vP K. return reduce(source, function(, nested) {5_ ' v PI " Flattens given ` of `reducible`s5