VimUnDo^Lo!~?>t h`(*PZ@_Pg 5_  vP  function take(source, n) { /**H Returns sequence of first `n` items of the given `source`. If `source`J contains less items than `n` then that's how much items return sequence will contain.8 print(take([ 1, 2, 3, 4, 5 ], 2)) // => 4 print(take([ 1, 2, 3 ], 5)) // =>  **// return transformer(source, function(source) {% var count = n >= 0 ? n : Infinity< return transform(source, function(next, value, result) { count = count - 1E return count === 0 ? next(accumulated(), next(value, result)) :. count > 0 ? next(value, result) :4 next(accumulated(), result) }) })}5_ vPmodule.exports = take5_  vP  *  5_  vP  *  5_  vP  *  5_  vP A Returns sequence of all `source`'s items except first `n` one. 5_  A vP A Returns sequence of all `source`'s items except first `n` one. 5_ < vP < Returns sequence of all `source`'s items after `n`-th one.5_ = vP H Returns sequence of all `source`'s items after `n`-th one. if sequence5_ H vP H Returns sequence of all `source`'s items after `n`-th one. If sequence5_  vP,5_   vP,B Drops first n characters from s. Returns an empty string if n is5_  vP-greater than the length of s.5_ vP-< Returns sequence of first `n` items of the given `source`.5_ vP./ Reduces given `reducible` to first `n` items.5_ vP6  5_  vP98 print(take([ 1, 2, 3, 4, 5 ], 2)) // => 5_ vP>8 print(drop([ 1, 2, 3, 4, 5 ], 2)) // => 5_/ vPC5 print(drop([ 1, 2, 3, 4 ], 2)) // => 5_1 vPD5 print(drop([ 1, 2, 3, 4 ], 2)) // => 5_1 vPJ4 print(take([ 1, 2, 3 ], 5)) // => 5_  vPL . print(take([ 1, 2, 3 ], 5)) // => 5_ vPN 5_ vPQ 5_.vPt. print(drop([ 1, 2, 3 ], 5)) // => 5_!.vPv 5 print(drop([ 1, 2, 3, 4 ], 2)) // => 5_.vP *var accumulated = require("./accumulated")5_  vP    5_PJ&M/*jshint asi: true undef: true es5: true node: true browser: true devel: true5_  PJ'9 forin: true latedef: false globalstrict: true */5_! PJ'5_ "!PJ( 'use strict';5_!#" PJ) "use strict';5_"$#vP4*var transformer = require("./transformer")&var transform = require("./transform")5_#%$vP45_$&%vP4 5_%'&vP4 return reducible()5_&('vP4  return reducible(function())5_')(vP4 ! return reducible(function() {})5_(*)vP4# return reducible(function() {5_)+*(vP43 5_*,+vP4: return reduce()5_+-,$vP4=% return reduce(source, function())5_,.-&vP4=( return reduce(source, function() {})5_-/.vP4> })5_.0/vP4E }, n)5_/10#vP4T& return reduce(source, function() {5_021*vP4b 5_132 vP4h if ()5_243vP4o if (count --> 0)5_354vP4} if (count -- > 0)5_465vP4 if (n > 0)5_586 vP4 if (n > 0) next()5_6978vP4 if (n === 0) next()5_8:9vP4 5_9;:vP4 }, n >= 0 ? n : 1)5_:<; vP4 if (n === 0) next(value)5_;=<vP4  5_<>=vP4 count5_=?>vP4  5_>@?vP4 " if (count === 0) next(value)5_?A@vP4!  5_@BA vP4! return count >= 0) next(value)!! if (count >= 0) next(value)5_ACBvP4 $ return count >= 0) next(value)5_BDC%vP4 % return count >= 0 ? next(value)5_CED$vP4 . return reduce(source, function(n, value) {5_DFE%vP4 % return count >= 0 ? next(result5_EGF0vP5 6 return count >= 0 ? next(result, value) : result5_FHGvP5 / return transformer(source, function(source) {5_GIHvP5  var count = n >= 0 ? n : 15_HJIvP5 < return transform(source, function(next, value, result) {5_IKJvP5 $ return count -- > 0 ? result :5_JLKvP5 / next(value, result)5_KMLvP5  })5_LNMvP5  })5_MONvP59/ return count >= 0 ? next(result, value) :5_NPOvP5E/ return count <= 0 ? next(result, value) :5_OQPvP5J result5_PRQvPfunction drop(source, n) {&var reducible = require("./reducible") var reduce = require("./reduce")function drop(source, n) {5_QSRvP5_RTSvP 5_SUTvP C// If take `0` then optimize by returning an empty if less then `0`5_TVUvP 5_UWV vP E // If take `0` then optimize by returning an empty if less then `0`5_VXW4vP E // If drop `0` then optimize by returning an empty if less then `0`5_WYX:vP H // If drop `0` then optimize by returning source it if less then `0`5_XZY6vP D // If drop `0` then optimize by returning source its less then `0`5_Y[ZvP& G // If drop `0` then optimize by returning source itself less then `0`5_Z\[ vP+  if (n === 0) return void(0)5_[]\JvP3 J // If drop `<= 0` then optimize by returning source itself less then `0`5_\^]vP8  if (n <= 0) return void(0)5_]_^vP=$ // then just return `source` back.5_^`_=vP>= // If drop `<= 0` then optimize by returning source itself.5__a` vPN  if (n < 0) return source5_`ba vPP  if (n === 0) return source5_acb#vPS # if (n === Infinity) return source5_bdc"vPW # if (n === Infinity) return void()5_cedvP_  var count = n >= 0 ? n : 15_dgevPl 3 return reduce(source, function(result, value) {5_ehfgvP , return reducible(function(next, initial) {5_gihvP - return reducible(function (next, initial) {5_hji%vP 7 return reducible(function reduceDrop(next, initial) {5_ikj*%vP ; return reducible(function accumulateTake(next, initial) {5_jlk)vP 0 accumulate(source, function(result, value) {5_kml.)vP ? accumulate(source, function accumulateDrop(result, value) {5_lnm/)vP @ accumulate(source, function accumulateWhile(result, value) {5_mon=)vP E accumulate(source, function accumulateDropSource(result, value) {5_npo:)vP = accumulate(source, function accumulateDropSource(value) {5_oqp)vP!  5_prq)vP  result = 5_qsr&)vP . return count < 0 ? next(result, value) :5_rvs#)vP" & return count < 0 ? next(value) :5_swtv)vP!  5_vxw )vP! if ()5_wyx)vP! if (count >)5_xzy)vP! if (count === 0)5_y{z)vP count = count - 15_z|{)vP 5_{}|)vP!$ if (count === 0) return result5_|~},)vP!, if (count === 0) return reduced(result5_}~-)vP!- if (count === 0) return reduced(result)5_~&)vP!, if (count === 0) return reduced(result5_)vP" !5_)vP# "5_)vP# result = next()5_ )vP$ #5_)vP5_)vP. return count < 0 ? next(value, result) :5_)vP# result5_)vP$!$ if (count === 0) return result5_)vP%!" if (count > 0) return result5_)vP/" !5_ )vP0" if ()5_)vP2" if (isError())5_)vP6#"5_)vP;#var isError = require()5_)vP<#var isError = require("")5_)vP?&var end = require("./end")5_)vPB" if (isError(value))5_)vPD" if (isError(value)) next()5_)vPI"- if (isError(value)) next(error, result)5_+)vPQ'"4 if (isError(value)) return next(error, result)5_)vPk"" result = next(value, result)5_)vPm- return result5_)vP!# if (count >= 0) return result5_$)vP!$ if (count === 0) return result5_)vP! if (count === 0) next()5_))vP!* if (count === 0) next(value, return)5_ )vP0! return next(value, result)5_)vP2!* if (count === 0) next(value, result)5_)vP" !5_J)vP#J // If value is an error (which also includes end of collection) than5_)vP3# //5_A)vP*4#A // pass it through `reducible` will take care of everything5_3)vP-5$ #5_%)vPO8% $5_ "vP& %5_#vP if ()5_"vP& %5_ #vP& if ()5_#vP& if (value === end)5_"#vP&" if (value === end) reducible5_%#vP!&& if (value === end) return next()5_#vP&'&5_$vP)'var end = require()5_$vP)9'var end = require("")5_$vP.( '5_%vP3( // If value is end 5_BvP>(J // If value is an error (which also includes end of collection) justB // pass it through `reducible` will take care of everything.4 if (isError(value)) return next(value, result)5_ HvP?&: if (isError(value)) return next(value, result)5_'HvPB&' // If value is end just pass it t5_HvPF(` // If value is end or // If value is an error (which also includes end of collection) just5_5HvPL(n // If value is end of collection or // If value is an error (which also includes end of collection) just5_KHvPS(b // If value is end of collection or is an error (which also includes end of collection) just5_ HvPU) // end of collection) just9pass it through `reducible` will take care of everything.)B // pass it through `reducible` will take care of everything.5_0HvP](Z // end of collection) just pass it through `reducible` will take care of everything.5_LHvP_([ // end of collection) just pass it through, `reducible` will take care of everything.5_HvP`;5_PC](&var reducible = require("./reducible")5_PC`((var accumulate = require("./accumulate")5_PCc(0var accumulate = require("reducible/accumulate")5_ PCe(,var reduec = require("reducible/accumulate")5_ PCg(,var reduec = require("reducible/accumulate")5_ PCi(,var reduec = require("reducible/accumulate")5_PCl(#var isError = require("./is-error")5_PCo<(var end = require("./end")5_PCu(E accumulate(source, function accumulateDropSource(value, result) {5_ PCw(A reduec(source, function accumulateDropSource(value, result) {5_&PC|=(; return reducible(function accumulateDrop(next, initial) {5_&PC?(A reduce(source, function accumulateDropSource(value, result) {5_*PL@(,var reduce = require("reducible/accumulate")5_PY( "use strict";.var reducible = require("reducible/reducible")(var reduce = require("reducible/reduce")+var isError = require("reducible/is-error")"var end = require("reducible/end")function drop(source, n) { /**O Returns sequence of all `source`'s items after `n`-th one. If source contains1 less then `n` items empty sequence is returned. ## Example6 print(drop([ 1, 2, 3, 4 ], 2)) // => 2 print(drop([ 1, 2, 3 ], 5)) // =>  **/K // If drop `<= 0` then optimize by returning source itself. If `Infinity` // return empty. if (n <= 0) return source$ if (n === Infinity) return void(0)7 return reducible(function reduceDrop(next, initial) { var count = n= reduce(source, function reduceDropSource(value, result) {J // If value is end of collection or is an error (which also includesL // end of collection) just pass it through, `reducible` will take care // of everything.3 if (value === end) return next(value, result)4 if (isError(value)) return next(value, result)G // If count of items has reached `0` just keep on passing values.1 if (count === 0) return next(value, result)< // Otherwise just decrement count and return `result`. count = count - 1 return result }, initial) })}module.exports = drop5_PZ( "use strict";&var reducible = require("./reducible")(var accumulate = require("./accumulate")#var isError = require("./is-error")var end = require("./end")function drop(source, n) { /**O Returns sequence of all `source`'s items after `n`-th one. If source contains1 less then `n` items empty sequence is returned. ## Example6 print(drop([ 1, 2, 3, 4 ], 2)) // => 2 print(drop([ 1, 2, 3 ], 5)) // =>  **/K // If drop `<= 0` then optimize by returning source itself. If `Infinity` // return empty. if (n <= 0) return source$ if (n === Infinity) return void(0); return reducible(function accumulateDrop(next, initial) { var count = nE accumulate(source, function accumulateDropSource(value, result) {J // If value is end of collection or is an error (which also includesL // end of collection) just pass it through, `reducible` will take care // of everything.3 if (value === end) return next(value, result)4 if (isError(value)) return next(value, result)G // If count of items has reached `0` just keep on passing values.1 if (count === 0) return next(value, result)< // Otherwise just decrement count and return `result`. count = count - 1 return result }, initial) })}module.exports = drop5_)vP/!* if (count === 1) next(value, result)5_)vP!( if (count > 0) next(value, result)5_)vP+!$ if (count === 0) return result5_)vP,5_)vP|)!" if (count > 0) return result5_suvt)vP_  ! result = next()5_tu)vPd!" result = next(value, result)5_egf&vPx * accumulate(source, function(, value) {5_687vP4 })va5