VimUnDo$ZLc!ERG]/& this.tail = tail || List.empty P z`_Os5_Os5_Os5_Os5_Os!!  5_ Os$"5_#Os"$%5_ #Os#% record: )"%%var List = define()5_ $ Ot#%& record: [])5_ $ Ot#%& record: [ ''])5_ $Ot#%& record: [ 'head'])5_ $Ot#%& record: [ 'head', ''])5_  $Ot #%& record: [ 'head', 'tail'])5_ $Ot #&& record: [ 'head', 'tail' ])5_$Ot$&'5_$ Ot#%( record: [ 'head', 'tail' ],5_%Ot$&(5_&Ot$& Reducible, )$&( )%'()5_%Ot$'' Reducible, {})5_%Ot%') %'(5_&Ot$%') reduce: function()5_&Ot&%') reduce: function(f, start)5_& Ot'%()! reduce: function(f, start) {}5_&Ot+&(+ &(*5_'Ot0&(+ 5_'Ot<&(+ this.head5_'OtC&(+ this.tail this.head5_'OtG&(+ reduce(this.tail this.head5_'OtI&(+" reduce(this.tail, this.head5_'OtM&(+! reduce(this.tail, this.head5_ '#OtN&(+# reduce(this.tail, f(this.head5_! '+OtT&(++ reduce(this.tail, f(this.head, start)5_ "!)Otc),,)++5_!#"+Otu*,-5_"$#+Otx*,-function list()5_#%$+Otz*,-function list(head, tail)5_$&%+Otz*--function list(head, tail) {}5_%'&+Ot{+-/ +-.5_&(',Ot+-/ return new List()5_')(-Ot,/0}-/0-//5_(*)&Ot%'0 reduce: function(f, start) {5_)+*'Ot&(0, reduce(this.tail, f(this.head, start))5_*,+'''%v%Ou&(0/ reduce(this.tail, next(this.head, start))5_+-,'''%v%Ou&(0& reduce(this.tail, next(, start))5_,.-'"''%v%Ou&(0$ reduce(this.tail, next(start))5_-/.' ''%v%Ou9&(0/ reduce(this.tail, next(start, this.head))5_.0/&''%v%OuP&(1 &(05_/10'((%v%OuR&(1 console.log()5_021'((%v%OuV&' console.log(next)5_132&''%v%Ou[%'0# reduce: function(next, start) {5_243'''%v%Ou^&(05 reduce(next, this.tail, next(start, this.head))5_354'.''%v%Ou` &(05 reduce(next, list.tail, next(start, this.head))5_465&''%v%Ou|%'0) reduce: function(list, next, start) {5_576&''%v%Ou~ %'0# reduce: function(next, start) {5_687'''%v%Ou &(05 reduce(next, list.tail, next(start, list.head))5_798. ''%v%Ou.11.005_8:90''%v%Ou/05_9;:0''%v%Ou/05_:<;vP 'use strict';02;(function(id, factory) { // Module boilerplate :(3 if (typeof(define) === 'function') { // RequireJS define(factory);: } else if (typeof(require) === 'function') { // CommonJS1 factory.call(this, require, exports, module);= } else if (~String(this).indexOf('BackstagePass')) { // JSM# factory(function require(uri) { var imports = {}; Cu.import(uri, imports); return imports;' }, this, { uri: __URI__, id: id });. this.EXPORTED_SYMBOLS = Object.keys(this); } else { // Browser or alike var globals = this" factory(function require(id) { return globals[id];O }, (globals[id] = {}), { uri: document.location.href + '#' + id, id: id }); }<}).call(this, 'loader', function(require, exports, module) { 'use strict';5_;=<vP1/*global define: true, Cu: true, __URI__: true */5_<>=$vP& forin: true latedef: false */5_=?>vP0var protocol = require('protocol/core').protocol5_>@?vP!var reducers = require('./core'),5_?A@vP? Reducible = reducers.Reducible, reduced = reducers.reduced,5_@BAvP. is = reducers.is, reduce = reducers.reduce5_ACBvP5_BDCvP$var ego = require('alter-ego/core'),5_CEDvP, define = ego.define, record = ego.record5_DFEvP5_EGFvPvar List = define(5_FHGvP record, [ 'head', 'tail' ],5_GIHvP Reducible, {5_HJIvP) reduce: function(next, list, start) {5_IKJvP< return reduce(next, list.tail, next(start, list.head))5_JLKvP }5_KMLvP })5_LNMvP5_MONvPfunction list(head, tail) {5_NPOvP return new List(head, tail)5_OQPvP}5_PRQvPexports.list = list5_QSRvP5_RTSvP});5_SUTvP function List5_TVUvPfunction List()5_UWVvPfunction List() {}5_VXWvP 5_WYXvP List.prototype.toString()5_XZYvPList.prototype.toString() {}5_Y[ZvP! List.prototype.toString() {5_Z\[vP, 1List.prototype.toString() = function toString() {5_[]\vP^  5_\^]vPcfunction List(head, tail) {}5_]_^vPd 5_^`_vPg   5__a` vPm  var value = '', tail = this;5_`ba vPq  while (!isEmpty(tail)) {5_acbvP5_bdcvPfunction List(head, tail) {5_cedvP this.head = head5_dfevP this.tail = tail5_egfvPfunction List() {}}5_fhgvP var list = new List();5_gihvP5_hjivP 5_ikjvP5_jlkvP5_kmlvP var isEmpty = Method  5_lnm vP  5_mon vP var 5_npo vP  5_oqp vP ! 5_prqvP "!5_qsrvP($#5_rtsvP/$isEmpty.define()5_sutvP2$ isEmpty.define(List, function())5_tvu!vP2$#isEmpty.define(List, function() {})5_uwvvP5%5_vxwvP8&!isEmpty.define(List, function() {5_wyxvP:&5_x{yvP@& return count()5_y|z{vPG& return count(list)5_{}|vPI& return count(list) === 0[]5_|~}vP_'&5_}~ vPc'count.define()5_~vPe'count.define(List, function())5_!vPg'"count.define(List, function(list))5_#vPg'%count.define(List, function(list) {})5_vPh) (5_vPn*)5_vPq* isEmpty()5_vPs*isEmpty.define()5_vPz* isEmpty.define(null, function())5_!vP{*#isEmpty.define(null, function() {})5_vP|, +5_ vP~, return ture5_ vP "- ",5_! vP "-count.define()5_!vP "-count.define(null, function())5_!vP "-!count.define(null, function() {})5_vP-!isEmpty.define(null, function() { return true- return true5_vP,-isEmpty.define(null, function() { return true}),})5_+vP +.count.define(null, function() { return true })5_'vP!+5_vP,* value = value + ' ' + first(tail);5_&vP,& value = value + ' ' + first(tail);5_vP, tail = next(tail);5_vP, tail = next(tail);5_vP, tail = next(tail)5_vP, }5_vP,' return '(' + value.substr(1) + ')';5_%vP,% return '(' + value.substr(1) + ')';5_vP,5_vP-};5_(vP'(5_(vP'(5_(vP'(function List() {5_(vP'(}5_(vP'(/List.prototype.toString = function toString() {5_(vP'(}5_ vP #( "'5_"vP!#)first5_" vP!#)first.define()5_"vP!#)first.define(List, function())5_"!vP!#)"first.define(List, function(list))5_"#vP!$)%first.define(List, function(list) {})5_"vP"$+ "$*5_#vP#%+5_$vP#$5_!vP!#,!#+5_" vP!#,first.define()5_"vP!#,first.define(Array, function())5_"#vP!#,$first.define(Array, function(array))5_"%vP!$,'first.define(Array, function(array) {})5_"vP"$-5_vP.5_vP0/5_ vP0count.define()5_vP0count.define(Array, function())5_#vP0$count.define(Array, function(array))5_%vP 0'count.define(Array, function(array) {})5_vP 15_vP%count.define(Array, function(array) {5_vP5_vP})5_#vP "#%first.define(Array, function(array) {5_#vP "#5_#vP "#})5_%vP %'-%',5_& vP%'- rest.define()5_&vP%'-rest.define(List, function())5_&vP%'- rest.define(List, function() {})5_&vP%'-!rest.define(List, function() { })5_&"vP%'-%rest.define(List, function(list) { })5_$vP'"$-#first.define(List, function(list) {return list.head#%- return list.head5_$vP("$,4first.define(List, function(list) { return list.head})#%,})5_vP-+#count.define(List, function(list) {return list.length + return list.length5_vP/*6count.define(List, function(list) { return list.length}) *})5_8vP1)9count.define(List, function(list) { return list.length })5_8vP15_8vP2!)!(5_8vP5)%isEmpty.define(List, function(list) {return count(list) === 0) return count(list) === 05_8vP7(>isEmpty.define(List, function(list) { return count(list) === 0})(})5_@vP9'AisEmpty.define(List, function(list) { return count(list) === 0 })5_@vP:5_@vP;'&5_@vP?5_&@vPa&&5_ @vPe . -5_ @vPk .5_ @vPk 0 /5_ @vPr 05_@vPs215_@vPy25_@vPz435_4 @ vP445_/ @ vP.05 var list = new List();5_0 @ vP/15 list.head = head;5_1 @ vP025 list.tail = tail;5_2  @ vP135 list.length = count(tail) + 1;5_3 @ vP 245 return list;5_5  @ vP!555_ vP v875_ vP {8var sequence = require()5_ vP |8var sequence = require('')5_ vP var Name = require('name')5_ vP var Method = require('method')5_ vP 5_ vP var isEmpty = Method()5_vP exports.isEmpty = isEmpty5_vP 5_vP var count = Method()5_vP exports.count = count5_vP 5_vP var first = Method()5_vP exports.first = first5_vP 5_vP var rest = Method()5_vP "exports.rest = rest5_$vP # *$var sequence = require('./sequence')5_ vP 5_ vP 0isEmpty.define(null, function() { return true })5_ vP %+count.define(null, function() { return 0 })5_) vP @(5_) vP C()function reverse(source) {5_) vP D()7 return list.apply(list, arraify(source).reverse());5_) vP D()}5_) vP E()5_) vP F()#function reduce(source, f, start) {5_) vP F(), return arraify(source).reduce(f, start);5_) vP G()}5_) vP H()5_* vP I)+17 return list.apply(list, arraify(source).filter(f));5_. vP K-/14 return list.apply(list, arraify(source).map(f));5_+ vP L+-2+-15_0 vP S&0230225_. vP a.04 .035_/ vP k.04 return cons()5_/ vP l.04 return cons(f())5_/ vP o.04 return cons(f(first()))5_/ vP p.04 return cons(f(first(source)))5_ /$ vP t.04& return cons(f(first(source)), map())5_  /) vP u.04, return cons(f(first(source)), map(rest()))5_   /0 vP {.042 return cons(f(first(source)), map(rest(source)))5_   0 vP ~'/02 return list.apply(list, arraify(source).map(f));5_   ) vP )+4 )+35_  * vP )+4 return cons()5_ ) vP (*4function filter(source, f) {5_* ) )vP )+4 return cons5_*) )vP )+4 return predicate()5_*) )vP )+4 return predicate(first())5_*!) )vP )+4! return predicate(first(source))5_*)) )vP )+4* return predicate(first(source)) ? cons()5_*/) )vP )+41 return predicate(first(source)) ? cons(first())5_*6) )vP )+47 return predicate(first(source)) ? cons(first(source))5_*?) )vP )+4A return predicate(first(source)) ? cons(first(source), filter())5_*D) )vP )+4G return predicate(first(source)) ? cons(first(source), filter(rest()))5_*K) )vP )+4M return predicate(first(source)) ? cons(first(source), filter(rest(source)))5_*L) )vP )+4M return predicate(first(source)) ? cons(first(source), filter(rest(source)))5_*W) )vP )+4X return predicate(first(source)) ? cons(first(source), filter(rest(source)), predicate)5_*) )vP )+4P return predicate(first(source)) ? cons(first(source), filter(rest(source)), f)5_)!) )vP (*4$function filter(source, predicate) {5_*H) )vP *," filter),4H return f(first(source)) ? cons(first(source), filter(rest(source)), f)5_+#) )vP *,5$ filter()5_ +() )vP *,5* filter(rest())5_! +/) )vP *,50 filter(rest(source))5_ "!,) )vP (+,5 return list.apply(list, arraify(source).filter(f));5_!#") )vP  function list545_"$#+ +vP 6function list()5_#%$+ +vP )6function list() {}5_$&%, ,vP  9 8  75_%'&2 2vP  5_&('1 1vP * 5_')(0 0vP "<  ;5_(*) 3 3vP !>6 while (count--) value = cons(items[count], value);5_)+*!3 3vP  "> return value;5_*,+43 3vP # >? var items = arguments, count = items.length, value = empty();5_+-, 23 3vP (!>4 while (count--) value = cons(items[count], value);5_,.-!3 3vP * "> return value;5_-/. 3 3vP 1,!>3 while (count--) value = cons(items[count], tail);5_.0/ 3 3vP ; 6// Define a shortcut for `Array.prototype.slice.call`.5_/10 2 2vP ; =var unbind = Function.call.bind(Function.bind, Function.call)5_021 1 1vP ; 8var slice = Array.slice || unbind(Array.prototype.slice)5_132 0 0vP <- 5_243/ /vP o. ; :5_354 0 0vP { < ;5_465 1 1vP  < List.empty = 5_576 1 1vP  <List.empty = new List()5_687 1 1vP / <List.empty = new List(0)5_798 1 1vP  <function List() {}5_8:9 1 1vP  = <5_9;: "2 2vP  =#function List() { this.length = 0 }5_:<;#2 2vP "#function empty() {5_;=<#1 1vP "# var list = new List();5_<>=#0 0vP "# list.length = 0;5_=?>#/ /vP "# return list;5_>@?#. .vP "#}5_?A@#- -vP 0"#5_@BA=, ,vP 17> var items = arguments, count = items.length, tail = empty();5_ACB@, ,vP 7A var items = arguments, count = items.length, tail = List.empty;5_BDC6, ,vP 27= var items = arguments, count = items.length, tail = List();5_CED , ,vP 3 List.empty = new List()5_DFEA+ +vP 6A var items = arguments, count = items.length, tail = new List();5_EHF2+ +vP 662 while (count--) tail = cons(items[count], tail);5_FIGH+ +vP -765_HJI, ,vP 07function empty()5_IKJ, ,vP 17function empty() {}5_JLK- -vP 29 85_KML . .vP 59 return List()5_LNM. .vP 8:95_MON/ /vP <7 :5_NPO!@0 0vP >8 ";@ var items = arguments, count = items.length, tail = new List()5_OQPP M9<;5_PRQP S2 var Method = require =  <5_QSR P S8 >var Method = require()5_RTS P S8: >var Method = require('')5_SUT P SK var Method = require('method')5_TVU P SK; 5_UbV0885vP Z> <0 first = sequence.first, rest = sequence.rest5_VcWb885vP Z=<5_bec995vP Z=prepend.define()5_cfde995vP Z= prepend.define(List, function())5_egf#995vP Z=$prepend.define(List, function(list))5_fhg%995vP Z='prepend.define(List, function(list) {})5_gih-995vP Z=0prepend.define(List, function(list) { returna })5_hji&995vP Z=/prepend.define(List, function(list) { return })5_ikj ::5vP Z> return })5_jlk;;5vP Z? return5_kml";;5vP Z?%prepend.define(List, function(list) {5_lnm(;;5vP Z?+prepend.define(List, function(list, haid) {5_mon";;5vP Z?+prepend.define(List, function(list, head) {5_npo ;;5vP Z? return 5_oqp;;5vP Z@ ?5_prq<<5vP Z+prepend.define(List, function(tail, head) {5_qsr;;5vP Z return list = new List()5_rts::5vP Z list.head = head5_sut995vP Z?})5_tvu 885vP [@ <function List() {}5_uwv 995vP [ >  =5_vxw ::5vP [  >function List() {5_wzx ::5vP [  ?  >5_x{yz ;;5vP [ ? this.5_z|{ ;;5vP [  this.length = count ? this.tail 5_{}| <<5vP [! @ this.length = count()5_|~} <<5vP [# @ this.length = count(tail)5_}~ <<5vP [* @function List(head) {5_~ <<5vP [- A  @5_==5vP [0A  ret5_+<<5vP [@*+5_++1vP [C*,?function cons(head, tail) { var list = new List() list.head = head list.tail = tail list.length = count(tail) + 1 return list}5_+++vP [D*+5_+++vP [DB*+exports.cons = cons5_=++vP [P 7= first = sequence.first, rest = sequence.rest, make = make5_ ,,vP [R  cons5_>++vP [SC 7> first = sequence.first, rest = sequence.rest, make = make,5_,,6vP [+ function filter(source, f) {J return f(first(source)) ? cons(first(source), filter(rest(source)), f) :3 filter(rest(source), f)}exports.filter = filterfunction map(source, f) {5 return cons(f(first(source)), map(rest(source), f))}exports.map = map5_,,,vP [+,5_+,,vP [D*+5_++vP ]+*5_,,vP ]EList.empty = Object.create5_++vP ^&function Empty+*5_--vP ^+,function Empty()5_--vP ^.-,5_ ..vP ^<-!Empty.prototype = Object.create()5_%..vP ^@-0Empty.prototype = Object.create(Empty.prototype)5_#..vP ^B.-5_//vP ^G.Empty.prototype.con5_"//vP ^L/.5_00vP ^PEmpty.prototype.5_%//vP ^ZF$&. return new List()5_//vP ^.5_00vP ^5_//vP ^/.5_11vP ^List.prototype.head = null5_00vP ^GList.prototype.tail = 5_9//vP _sH .= first = sequence.first, rest = sequence.rest, cons = cons5_//vP _J#Empty.prototype.constructor = Empty5_..vP _.-5_//vP _K.List.empty = Object.create()5_)vP _.*List.empty = Object.create(List.prototype)5_)vP _5_)vP _L.-5_)vP _5_)vP _function Empty() {}5_)vP _M/Empty.prototype = Object.create(List.prototype)5_" )vP _!#+ return new Empty()5_!)vP _ !function empty() {5_!)vP _ ! return LsiEmpty()5_!)vP _ !}5_!)vP _ !exports.empty = empty5_!)vP _N !5_";)vP _!#&= var items = arguments, count = items.length, tail = empty()5_"B)vP _R!#&B var items = arguments, count = items.length, tail = List.empty()5_ )vP kjS & this.tail = tail5_.)vP mX!'!&5_ )vP m^!' make.devel()5_ )vP m`!' make.define()5_ )vP me!'make.define(List, function())5_ )vP me!' make.define(List, function() {})5_ /)vP mo!'2make.define(List, function() { return new List()})5_ :)vP mt!' ? var set 5_^`_;;5vP ZO?(make.define(List, function(self, head) {5__a` ;;5vP ZR? var list = new List()5_`a<<5vP ZX?5_XZY885vP Z-=5_FHG , ,vP 5 6 7List.prototype.tail = List()5_vPw5_y{zvPC&-functionisEmpty.define(List, function(list) {5