["^ ","~:output",["^ ","~:js","goog.provide('reagent.ratom');\nif((typeof reagent !== 'undefined') && (typeof reagent.ratom !== 'undefined') && (typeof reagent.ratom.debug !== 'undefined')){\n} else {\nreagent.ratom.debug = false;\n}\nif((typeof reagent !== 'undefined') && (typeof reagent.ratom !== 'undefined') && (typeof reagent.ratom.generation !== 'undefined')){\n} else {\nreagent.ratom.generation = (0);\n}\nif((typeof reagent !== 'undefined') && (typeof reagent.ratom !== 'undefined') && (typeof reagent.ratom._running !== 'undefined')){\n} else {\nreagent.ratom._running = cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0));\n}\nreagent.ratom.reactive_QMARK_ = (function reagent$ratom$reactive_QMARK_(){\nreturn (!((reagent.ratom._STAR_ratom_context_STAR_ == null)));\n});\nreagent.ratom.running = (function reagent$ratom$running(){\nreturn (cljs.core.deref(reagent.ratom._running));\n});\nreagent.ratom.arr_len = (function reagent$ratom$arr_len(x){\nif((x == null)){\nreturn (0);\n} else {\nreturn x.length;\n}\n});\nreagent.ratom.arr_eq = (function reagent$ratom$arr_eq(x,y){\nvar len = reagent.ratom.arr_len(x);\nif((len === reagent.ratom.arr_len(y))){\nvar i = (0);\nwhile(true){\nvar or__4126__auto__ = (i === len);\nif(or__4126__auto__){\nreturn or__4126__auto__;\n} else {\nif(((x[i]) === (y[i]))){\nvar G__45603 = (i + (1));\ni = G__45603;\ncontinue;\n} else {\nreturn false;\n}\n}\nbreak;\n}\n} else {\nreturn false;\n}\n});\n/**\n * When f is executed, if (f) derefs any ratoms, they are then added to 'obj.captured'(*ratom-context*).\n * \n *   See function notify-deref-watcher! to know how *ratom-context* is updated\n */\nreagent.ratom.in_context = (function reagent$ratom$in_context(obj,f){\nvar _STAR_ratom_context_STAR__orig_val__45107 = reagent.ratom._STAR_ratom_context_STAR_;\nvar _STAR_ratom_context_STAR__temp_val__45108 = obj;\n(reagent.ratom._STAR_ratom_context_STAR_ = _STAR_ratom_context_STAR__temp_val__45108);\n\ntry{return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}finally {(reagent.ratom._STAR_ratom_context_STAR_ = _STAR_ratom_context_STAR__orig_val__45107);\n}});\n/**\n * Returns `(in-context f r)`.  Calls `_update-watching` on r with any\n *   `deref`ed atoms captured during `in-context`, if any differ from the\n *   `watching` field of r.  Clears the `dirty?` flag on r.\n * \n *   Inside '_update-watching' along with adding the ratoms in 'r.watching' of reaction,\n *   the reaction is also added to the list of watches on each ratoms f derefs.\n */\nreagent.ratom.deref_capture = (function reagent$ratom$deref_capture(f,r){\n(r.captured = null);\n\n(r.ratomGeneration = (reagent.ratom.generation = (reagent.ratom.generation + (1))));\n\n\nvar res = reagent.ratom.in_context(r,f);\nvar c = r.captured;\n(r.dirty_QMARK_ = false);\n\nif(reagent.ratom.arr_eq(c,r.watching)){\n} else {\nr._update_watching(c);\n}\n\nreturn res;\n});\n/**\n * Add `derefed` to the `captured` field of `*ratom-context*`.\n * \n *   See also `in-context`\n */\nreagent.ratom.notify_deref_watcher_BANG_ = (function reagent$ratom$notify_deref_watcher_BANG_(derefed){\nvar temp__5739__auto__ = reagent.ratom._STAR_ratom_context_STAR_;\nif((temp__5739__auto__ == null)){\nreturn null;\n} else {\nvar r = temp__5739__auto__;\nvar c = r.captured;\nif((c == null)){\nreturn (r.captured = [derefed]);\n} else {\nreturn c.push(derefed);\n}\n}\n});\nreagent.ratom.check_watches = (function reagent$ratom$check_watches(old,new$){\nif(reagent.ratom.debug){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(reagent.ratom._running,cljs.core._PLUS_,(cljs.core.count(new$) - cljs.core.count(old)));\n} else {\n}\n\nreturn new$;\n});\nreagent.ratom.add_w = (function reagent$ratom$add_w(this$,key,f){\nvar w = this$.watches;\n(this$.watches = reagent.ratom.check_watches(w,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(w,key,f)));\n\nreturn (this$.watchesArr = null);\n});\nreagent.ratom.remove_w = (function reagent$ratom$remove_w(this$,key){\nvar w = this$.watches;\n(this$.watches = reagent.ratom.check_watches(w,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(w,key)));\n\nreturn (this$.watchesArr = null);\n});\nreagent.ratom.notify_w = (function reagent$ratom$notify_w(this$,old,new$){\nvar w = this$.watchesArr;\nvar a = (((w == null))?(this$.watchesArr = cljs.core.reduce_kv((function (p1__45165_SHARP_,p2__45166_SHARP_,p3__45167_SHARP_){\nvar G__45170 = p1__45165_SHARP_;\nG__45170.push(p2__45166_SHARP_);\n\nG__45170.push(p3__45167_SHARP_);\n\nreturn G__45170;\n}),[],this$.watches)):w);\nvar len = a.length;\nvar i = (0);\nwhile(true){\nif((i < len)){\nvar k_45612 = (a[i]);\nvar f_45613 = (a[(i + (1))]);\n(f_45613.cljs$core$IFn$_invoke$arity$4 ? f_45613.cljs$core$IFn$_invoke$arity$4(k_45612,this$,old,new$) : f_45613.call(null,k_45612,this$,old,new$));\n\nvar G__45614 = ((2) + i);\ni = G__45614;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n});\nreagent.ratom.pr_atom = (function reagent$ratom$pr_atom(a,writer,opts,s,v){\ncljs.core._write(writer,[\"#object[reagent.ratom.\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),\" \"].join(''));\n\ncljs.core.pr_writer((function (){var _STAR_ratom_context_STAR__orig_val__45173 = reagent.ratom._STAR_ratom_context_STAR_;\nvar _STAR_ratom_context_STAR__temp_val__45174 = null;\n(reagent.ratom._STAR_ratom_context_STAR_ = _STAR_ratom_context_STAR__temp_val__45174);\n\ntry{return v;\n}finally {(reagent.ratom._STAR_ratom_context_STAR_ = _STAR_ratom_context_STAR__orig_val__45173);\n}})(),writer,opts);\n\nreturn cljs.core._write(writer,\"]\");\n});\nif((typeof reagent !== 'undefined') && (typeof reagent.ratom !== 'undefined') && (typeof reagent.ratom.rea_queue !== 'undefined')){\n} else {\nreagent.ratom.rea_queue = null;\n}\nreagent.ratom.rea_enqueue = (function reagent$ratom$rea_enqueue(r){\nif((reagent.ratom.rea_queue == null)){\n(reagent.ratom.rea_queue = []);\n\nreagent.impl.batching.schedule();\n} else {\n}\n\nreturn reagent.ratom.rea_queue.push(r);\n});\nreagent.ratom.flush_BANG_ = (function reagent$ratom$flush_BANG_(){\nwhile(true){\nvar q = reagent.ratom.rea_queue;\nif((q == null)){\nreturn null;\n} else {\n(reagent.ratom.rea_queue = null);\n\nvar n__4613__auto___45618 = q.length;\nvar i_45619 = (0);\nwhile(true){\nif((i_45619 < n__4613__auto___45618)){\n(q[i_45619])._queued_run();\n\nvar G__45620 = (i_45619 + (1));\ni_45619 = G__45620;\ncontinue;\n} else {\n}\nbreak;\n}\n\ncontinue;\n}\nbreak;\n}\n});\n(reagent.impl.batching.ratom_flush = reagent.ratom.flush_BANG_);\n\n/**\n * @interface\n */\nreagent.ratom.IReactiveAtom = function(){};\n\n\n/**\n* @constructor\n * @implements {cljs.core.IWatchable}\n * @implements {cljs.core.IAtom}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IReset}\n * @implements {cljs.core.ISwap}\n * @implements {reagent.ratom.IReactiveAtom}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IWithMeta}\n*/\nreagent.ratom.RAtom = (function (state,meta,validator,watches){\nthis.state = state;\nthis.meta = meta;\nthis.validator = validator;\nthis.watches = watches;\nthis.cljs$lang$protocol_mask$partition0$ = 2154201088;\nthis.cljs$lang$protocol_mask$partition1$ = 114690;\n});\n(reagent.ratom.RAtom.prototype.reagent$ratom$IReactiveAtom$ = cljs.core.PROTOCOL_SENTINEL);\n\n(reagent.ratom.RAtom.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (a,w,opts){\nvar self__ = this;\nvar a__$1 = this;\nreturn reagent.ratom.pr_atom(a__$1,w,opts,\"RAtom\",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"val\",\"val\",128701612),a__$1.cljs$core$IDeref$_deref$arity$1(null)], null));\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_){\nvar self__ = this;\nvar ___$1 = this;\nreturn self__.meta;\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$IHash$_hash$arity$1 = (function (this$){\nvar self__ = this;\nvar this$__$1 = this;\nreturn goog.getUid(this$__$1);\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (o,other){\nvar self__ = this;\nvar o__$1 = this;\nreturn (o__$1 === other);\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$IReset$_reset_BANG_$arity$2 = (function (a,new_value){\nvar self__ = this;\nvar a__$1 = this;\nif((self__.validator == null)){\n} else {\nif(cljs.core.truth_((self__.validator.cljs$core$IFn$_invoke$arity$1 ? self__.validator.cljs$core$IFn$_invoke$arity$1(new_value) : self__.validator.call(null,new_value)))){\n} else {\nthrow (new Error([\"Assert failed: \",\"Validator rejected reference state\",\"\\n\",\"(validator new-value)\"].join('')));\n}\n}\n\nvar old_value = self__.state;\n(self__.state = new_value);\n\nif((self__.watches == null)){\n} else {\nreagent.ratom.notify_w(a__$1,old_value,new_value);\n}\n\nreturn new_value;\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$ISwap$_swap_BANG_$arity$2 = (function (a,f){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(self__.state) : f.call(null,self__.state)));\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$ISwap$_swap_BANG_$arity$3 = (function (a,f,x){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(self__.state,x) : f.call(null,self__.state,x)));\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$ISwap$_swap_BANG_$arity$4 = (function (a,f,x,y){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,(f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(self__.state,x,y) : f.call(null,self__.state,x,y)));\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$ISwap$_swap_BANG_$arity$5 = (function (a,f,x,y,more){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,self__.state,x,y,more));\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$IWatchable$_notify_watches$arity$3 = (function (this$,old,new$){\nvar self__ = this;\nvar this$__$1 = this;\nreturn reagent.ratom.notify_w(this$__$1,old,new$);\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$IWatchable$_add_watch$arity$3 = (function (this$,key,f){\nvar self__ = this;\nvar this$__$1 = this;\nreturn reagent.ratom.add_w(this$__$1,key,f);\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$IWatchable$_remove_watch$arity$2 = (function (this$,key){\nvar self__ = this;\nvar this$__$1 = this;\nreturn reagent.ratom.remove_w(this$__$1,key);\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_,new_meta){\nvar self__ = this;\nvar ___$1 = this;\nreturn (new reagent.ratom.RAtom(self__.state,new_meta,self__.validator,self__.watches));\n}));\n\n(reagent.ratom.RAtom.prototype.cljs$core$IDeref$_deref$arity$1 = (function (this$){\nvar self__ = this;\nvar this$__$1 = this;\nreagent.ratom.notify_deref_watcher_BANG_(this$__$1);\n\nreturn self__.state;\n}));\n\n(reagent.ratom.RAtom.getBasis = (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\"state\",\"state\",-348086572,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null)),new cljs.core.Symbol(null,\"meta\",\"meta\",-1154898805,null),new cljs.core.Symbol(null,\"validator\",\"validator\",-325659154,null),cljs.core.with_meta(new cljs.core.Symbol(null,\"watches\",\"watches\",1367433992,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null))], null);\n}));\n\n(reagent.ratom.RAtom.cljs$lang$type = true);\n\n(reagent.ratom.RAtom.cljs$lang$ctorStr = \"reagent.ratom/RAtom\");\n\n(reagent.ratom.RAtom.cljs$lang$ctorPrWriter = (function (this__4369__auto__,writer__4370__auto__,opt__4371__auto__){\nreturn cljs.core._write(writer__4370__auto__,\"reagent.ratom/RAtom\");\n}));\n\n/**\n * Positional factory function for reagent.ratom/RAtom.\n */\nreagent.ratom.__GT_RAtom = (function reagent$ratom$__GT_RAtom(state,meta,validator,watches){\nreturn (new reagent.ratom.RAtom(state,meta,validator,watches));\n});\n\n/**\n * Like clojure.core/atom, except that it keeps track of derefs.\n */\nreagent.ratom.atom = (function reagent$ratom$atom(var_args){\nvar G__45207 = arguments.length;\nswitch (G__45207) {\ncase 1:\nreturn reagent.ratom.atom.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ndefault:\nvar args_arr__4757__auto__ = [];\nvar len__4736__auto___45634 = arguments.length;\nvar i__4737__auto___45635 = (0);\nwhile(true){\nif((i__4737__auto___45635 < len__4736__auto___45634)){\nargs_arr__4757__auto__.push((arguments[i__4737__auto___45635]));\n\nvar G__45636 = (i__4737__auto___45635 + (1));\ni__4737__auto___45635 = G__45636;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4758__auto__ = (new cljs.core.IndexedSeq(args_arr__4757__auto__.slice((1)),(0),null));\nreturn reagent.ratom.atom.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4758__auto__);\n\n}\n});\n\n(reagent.ratom.atom.cljs$core$IFn$_invoke$arity$1 = (function (x){\nreturn reagent.ratom.__GT_RAtom(x,null,null,null);\n}));\n\n(reagent.ratom.atom.cljs$core$IFn$_invoke$arity$variadic = (function (x,p__45213){\nvar map__45215 = p__45213;\nvar map__45215__$1 = (((((!((map__45215 == null))))?(((((map__45215.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45215.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45215):map__45215);\nvar meta = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45215__$1,new cljs.core.Keyword(null,\"meta\",\"meta\",1499536964));\nvar validator = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45215__$1,new cljs.core.Keyword(null,\"validator\",\"validator\",-1966190681));\nreturn reagent.ratom.__GT_RAtom(x,meta,validator,null);\n}));\n\n/** @this {Function} */\n(reagent.ratom.atom.cljs$lang$applyTo = (function (seq45203){\nvar G__45204 = cljs.core.first(seq45203);\nvar seq45203__$1 = cljs.core.next(seq45203);\nvar self__4723__auto__ = this;\nreturn self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45204,seq45203__$1);\n}));\n\n(reagent.ratom.atom.cljs$lang$maxFixedArity = (1));\n\nreagent.ratom.cached_reaction = (function reagent$ratom$cached_reaction(f,o,k,obj,destroy){\nvar m = o.reagReactionCache;\nvar m__$1 = (((m == null))?cljs.core.PersistentArrayMap.EMPTY:m);\nvar r = (m__$1.cljs$core$IFn$_invoke$arity$2 ? m__$1.cljs$core$IFn$_invoke$arity$2(k,null) : m__$1.call(null,k,null));\nif((!((r == null)))){\nreturn cljs.core._deref(r);\n} else {\nif((reagent.ratom._STAR_ratom_context_STAR_ == null)){\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n} else {\nvar r__$1 = (function (){var G__45239 = f;\nvar G__45240 = new cljs.core.Keyword(null,\"on-dispose\",\"on-dispose\",2105306360);\nvar G__45241 = (function (x){\nif(reagent.ratom.debug){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(reagent.ratom._running,cljs.core.dec);\n} else {\n}\n\nvar __45647 = o.reagReactionCache;\nvar __45648__$1 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(__45647,k);\n(o.reagReactionCache = __45648__$1);\n\nif((!((obj == null)))){\n(obj.reaction = null);\n} else {\n}\n\nif((!((destroy == null)))){\nreturn (destroy.cljs$core$IFn$_invoke$arity$1 ? destroy.cljs$core$IFn$_invoke$arity$1(x) : destroy.call(null,x));\n} else {\nreturn null;\n}\n});\nreturn (reagent.ratom.make_reaction.cljs$core$IFn$_invoke$arity$3 ? reagent.ratom.make_reaction.cljs$core$IFn$_invoke$arity$3(G__45239,G__45240,G__45241) : reagent.ratom.make_reaction.call(null,G__45239,G__45240,G__45241));\n})();\nvar v = cljs.core._deref(r__$1);\n(o.reagReactionCache = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m__$1,k,r__$1));\n\nif(reagent.ratom.debug){\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(reagent.ratom._running,cljs.core.inc);\n} else {\n}\n\nif((!((obj == null)))){\n(obj.reaction = r__$1);\n} else {\n}\n\nreturn v;\n\n}\n}\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {reagent.ratom.IReactiveAtom}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IPrintWithWriter}\n*/\nreagent.ratom.Track = (function (f,args,reaction){\nthis.f = f;\nthis.args = args;\nthis.reaction = reaction;\nthis.cljs$lang$protocol_mask$partition0$ = 2153807872;\nthis.cljs$lang$protocol_mask$partition1$ = 0;\n});\n(reagent.ratom.Track.prototype.reagent$ratom$IReactiveAtom$ = cljs.core.PROTOCOL_SENTINEL);\n\n(reagent.ratom.Track.prototype.cljs$core$IDeref$_deref$arity$1 = (function (this$){\nvar self__ = this;\nvar this$__$1 = this;\nvar temp__5737__auto__ = self__.reaction;\nif((temp__5737__auto__ == null)){\nreturn reagent.ratom.cached_reaction((function (){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$2(self__.f,self__.args);\n}),self__.f,self__.args,this$__$1,null);\n} else {\nvar r = temp__5737__auto__;\nreturn cljs.core._deref(r);\n}\n}));\n\n(reagent.ratom.Track.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (_,other){\nvar self__ = this;\nvar ___$1 = this;\nreturn (((other instanceof reagent.ratom.Track)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.f,other.f)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.args,other.args)));\n}));\n\n(reagent.ratom.Track.prototype.cljs$core$IHash$_hash$arity$1 = (function (_){\nvar self__ = this;\nvar ___$1 = this;\nreturn cljs.core.hash(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.f,self__.args], null));\n}));\n\n(reagent.ratom.Track.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (a,w,opts){\nvar self__ = this;\nvar a__$1 = this;\nreturn reagent.ratom.pr_atom(a__$1,w,opts,\"Track\",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"val\",\"val\",128701612),a__$1.cljs$core$IDeref$_deref$arity$1(null),new cljs.core.Keyword(null,\"f\",\"f\",-1597136552),self__.f], null));\n}));\n\n(reagent.ratom.Track.getBasis = (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\"f\",\"f\",43394975,null),new cljs.core.Symbol(null,\"args\",\"args\",-1338879193,null),cljs.core.with_meta(new cljs.core.Symbol(null,\"reaction\",\"reaction\",2131401315,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null))], null);\n}));\n\n(reagent.ratom.Track.cljs$lang$type = true);\n\n(reagent.ratom.Track.cljs$lang$ctorStr = \"reagent.ratom/Track\");\n\n(reagent.ratom.Track.cljs$lang$ctorPrWriter = (function (this__4369__auto__,writer__4370__auto__,opt__4371__auto__){\nreturn cljs.core._write(writer__4370__auto__,\"reagent.ratom/Track\");\n}));\n\n/**\n * Positional factory function for reagent.ratom/Track.\n */\nreagent.ratom.__GT_Track = (function reagent$ratom$__GT_Track(f,args,reaction){\nreturn (new reagent.ratom.Track(f,args,reaction));\n});\n\nreagent.ratom.make_track = (function reagent$ratom$make_track(f,args){\nreturn (new reagent.ratom.Track(f,args,null));\n});\nreagent.ratom.make_track_BANG_ = (function reagent$ratom$make_track_BANG_(f,args){\nvar t = reagent.ratom.make_track(f,args);\nvar r = (function (){var G__45276 = (function (){\nreturn t.cljs$core$IDeref$_deref$arity$1(null);\n});\nvar G__45277 = new cljs.core.Keyword(null,\"auto-run\",\"auto-run\",1958400437);\nvar G__45278 = true;\nreturn (reagent.ratom.make_reaction.cljs$core$IFn$_invoke$arity$3 ? reagent.ratom.make_reaction.cljs$core$IFn$_invoke$arity$3(G__45276,G__45277,G__45278) : reagent.ratom.make_reaction.call(null,G__45276,G__45277,G__45278));\n})();\ncljs.core.deref(r);\n\nreturn r;\n});\nreagent.ratom.track = (function reagent$ratom$track(var_args){\nvar args__4742__auto__ = [];\nvar len__4736__auto___45668 = arguments.length;\nvar i__4737__auto___45669 = (0);\nwhile(true){\nif((i__4737__auto___45669 < len__4736__auto___45668)){\nargs__4742__auto__.push((arguments[i__4737__auto___45669]));\n\nvar G__45670 = (i__4737__auto___45669 + (1));\ni__4737__auto___45669 = G__45670;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4743__auto__ = ((((1) < args__4742__auto__.length))?(new cljs.core.IndexedSeq(args__4742__auto__.slice((1)),(0),null)):null);\nreturn reagent.ratom.track.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4743__auto__);\n});\n\n(reagent.ratom.track.cljs$core$IFn$_invoke$arity$variadic = (function (f,args){\nif(cljs.core.ifn_QMARK_(f)){\n} else {\nthrow (new Error(\"Assert failed: (ifn? f)\"));\n}\n\nreturn reagent.ratom.make_track(f,args);\n}));\n\n(reagent.ratom.track.cljs$lang$maxFixedArity = (1));\n\n/** @this {Function} */\n(reagent.ratom.track.cljs$lang$applyTo = (function (seq45281){\nvar G__45282 = cljs.core.first(seq45281);\nvar seq45281__$1 = cljs.core.next(seq45281);\nvar self__4723__auto__ = this;\nreturn self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45282,seq45281__$1);\n}));\n\nreagent.ratom.track_BANG_ = (function reagent$ratom$track_BANG_(var_args){\nvar args__4742__auto__ = [];\nvar len__4736__auto___45675 = arguments.length;\nvar i__4737__auto___45676 = (0);\nwhile(true){\nif((i__4737__auto___45676 < len__4736__auto___45675)){\nargs__4742__auto__.push((arguments[i__4737__auto___45676]));\n\nvar G__45677 = (i__4737__auto___45676 + (1));\ni__4737__auto___45676 = G__45677;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4743__auto__ = ((((1) < args__4742__auto__.length))?(new cljs.core.IndexedSeq(args__4742__auto__.slice((1)),(0),null)):null);\nreturn reagent.ratom.track_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4743__auto__);\n});\n\n(reagent.ratom.track_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (f,args){\nif(cljs.core.ifn_QMARK_(f)){\n} else {\nthrow (new Error(\"Assert failed: (ifn? f)\"));\n}\n\nreturn reagent.ratom.make_track_BANG_(f,args);\n}));\n\n(reagent.ratom.track_BANG_.cljs$lang$maxFixedArity = (1));\n\n/** @this {Function} */\n(reagent.ratom.track_BANG_.cljs$lang$applyTo = (function (seq45291){\nvar G__45292 = cljs.core.first(seq45291);\nvar seq45291__$1 = cljs.core.next(seq45291);\nvar self__4723__auto__ = this;\nreturn self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45292,seq45291__$1);\n}));\n\n\n/**\n* @constructor\n * @implements {cljs.core.IWatchable}\n * @implements {cljs.core.IAtom}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IReset}\n * @implements {cljs.core.ISwap}\n * @implements {reagent.ratom.IReactiveAtom}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IPrintWithWriter}\n*/\nreagent.ratom.RCursor = (function (ratom,path,reaction,state,watches){\nthis.ratom = ratom;\nthis.path = path;\nthis.reaction = reaction;\nthis.state = state;\nthis.watches = watches;\nthis.cljs$lang$protocol_mask$partition0$ = 2153807872;\nthis.cljs$lang$protocol_mask$partition1$ = 114690;\n});\n(reagent.ratom.RCursor.prototype._peek = (function (){\nvar self__ = this;\nvar this$ = this;\nvar _STAR_ratom_context_STAR__orig_val__45309 = reagent.ratom._STAR_ratom_context_STAR_;\nvar _STAR_ratom_context_STAR__temp_val__45310 = null;\n(reagent.ratom._STAR_ratom_context_STAR_ = _STAR_ratom_context_STAR__temp_val__45310);\n\ntry{return this$.cljs$core$IDeref$_deref$arity$1(null);\n}finally {(reagent.ratom._STAR_ratom_context_STAR_ = _STAR_ratom_context_STAR__orig_val__45309);\n}}));\n\n(reagent.ratom.RCursor.prototype._set_state = (function (oldstate,newstate){\nvar self__ = this;\nvar this$ = this;\nif((oldstate === newstate)){\nreturn null;\n} else {\n(self__.state = newstate);\n\nif((!((self__.watches == null)))){\nreturn reagent.ratom.notify_w(this$,oldstate,newstate);\n} else {\nreturn null;\n}\n}\n}));\n\n(reagent.ratom.RCursor.prototype.reagent$ratom$IReactiveAtom$ = cljs.core.PROTOCOL_SENTINEL);\n\n(reagent.ratom.RCursor.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (a,w,opts){\nvar self__ = this;\nvar a__$1 = this;\nreturn reagent.ratom.pr_atom(a__$1,w,opts,\"RCursor\",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"val\",\"val\",128701612),a__$1.cljs$core$IDeref$_deref$arity$1(null),new cljs.core.Keyword(null,\"path\",\"path\",-188191168),self__.path], null));\n}));\n\n(reagent.ratom.RCursor.prototype.cljs$core$IHash$_hash$arity$1 = (function (_){\nvar self__ = this;\nvar ___$1 = this;\nreturn cljs.core.hash(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.ratom,self__.path], null));\n}));\n\n(reagent.ratom.RCursor.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (_,other){\nvar self__ = this;\nvar ___$1 = this;\nreturn (((other instanceof reagent.ratom.RCursor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.path,other.path)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.ratom,other.ratom)));\n}));\n\n(reagent.ratom.RCursor.prototype.cljs$core$IReset$_reset_BANG_$arity$2 = (function (this$,new_value){\nvar self__ = this;\nvar this$__$1 = this;\nvar oldstate = self__.state;\nthis$__$1._set_state(oldstate,new_value);\n\nif((((!((self__.ratom == null))))?(((((self__.ratom.cljs$lang$protocol_mask$partition0$ & (32768))) || ((cljs.core.PROTOCOL_SENTINEL === self__.ratom.cljs$core$IDeref$))))?true:(((!self__.ratom.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,self__.ratom):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,self__.ratom))){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.path,cljs.core.PersistentVector.EMPTY)){\ncljs.core.reset_BANG_(self__.ratom,new_value);\n} else {\ncljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(self__.ratom,cljs.core.assoc_in,self__.path,new_value);\n}\n} else {\n(self__.ratom.cljs$core$IFn$_invoke$arity$2 ? self__.ratom.cljs$core$IFn$_invoke$arity$2(self__.path,new_value) : self__.ratom.call(null,self__.path,new_value));\n}\n\nreturn new_value;\n}));\n\n(reagent.ratom.RCursor.prototype.cljs$core$ISwap$_swap_BANG_$arity$2 = (function (a,f){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,(function (){var G__45328 = a__$1._peek();\nreturn (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__45328) : f.call(null,G__45328));\n})());\n}));\n\n(reagent.ratom.RCursor.prototype.cljs$core$ISwap$_swap_BANG_$arity$3 = (function (a,f,x){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,(function (){var G__45333 = a__$1._peek();\nvar G__45334 = x;\nreturn (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__45333,G__45334) : f.call(null,G__45333,G__45334));\n})());\n}));\n\n(reagent.ratom.RCursor.prototype.cljs$core$ISwap$_swap_BANG_$arity$4 = (function (a,f,x,y){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,(function (){var G__45335 = a__$1._peek();\nvar G__45336 = x;\nvar G__45337 = y;\nreturn (f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(G__45335,G__45336,G__45337) : f.call(null,G__45335,G__45336,G__45337));\n})());\n}));\n\n(reagent.ratom.RCursor.prototype.cljs$core$ISwap$_swap_BANG_$arity$5 = (function (a,f,x,y,more){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,a__$1._peek(),x,y,more));\n}));\n\n(reagent.ratom.RCursor.prototype.cljs$core$IWatchable$_notify_watches$arity$3 = (function (this$,old,new$){\nvar self__ = this;\nvar this$__$1 = this;\nreturn reagent.ratom.notify_w(this$__$1,old,new$);\n}));\n\n(reagent.ratom.RCursor.prototype.cljs$core$IWatchable$_add_watch$arity$3 = (function (this$,key,f){\nvar self__ = this;\nvar this$__$1 = this;\nreturn reagent.ratom.add_w(this$__$1,key,f);\n}));\n\n(reagent.ratom.RCursor.prototype.cljs$core$IWatchable$_remove_watch$arity$2 = (function (this$,key){\nvar self__ = this;\nvar this$__$1 = this;\nreturn reagent.ratom.remove_w(this$__$1,key);\n}));\n\n(reagent.ratom.RCursor.prototype.cljs$core$IDeref$_deref$arity$1 = (function (this$){\nvar self__ = this;\nvar this$__$1 = this;\nvar oldstate = self__.state;\nvar newstate = (function (){var temp__5737__auto__ = self__.reaction;\nif((temp__5737__auto__ == null)){\nvar f = (((((!((self__.ratom == null))))?(((((self__.ratom.cljs$lang$protocol_mask$partition0$ & (32768))) || ((cljs.core.PROTOCOL_SENTINEL === self__.ratom.cljs$core$IDeref$))))?true:(((!self__.ratom.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,self__.ratom):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,self__.ratom)))?(function (){\nreturn cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(self__.ratom),self__.path);\n}):(function (){\nreturn (self__.ratom.cljs$core$IFn$_invoke$arity$1 ? self__.ratom.cljs$core$IFn$_invoke$arity$1(self__.path) : self__.ratom.call(null,self__.path));\n}));\nreturn reagent.ratom.cached_reaction(f,self__.ratom,self__.path,this$__$1,null);\n} else {\nvar r = temp__5737__auto__;\nreturn cljs.core._deref(r);\n}\n})();\nthis$__$1._set_state(oldstate,newstate);\n\nreturn newstate;\n}));\n\n(reagent.ratom.RCursor.getBasis = (function (){\nreturn new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\"ratom\",\"ratom\",1514010260,null),new cljs.core.Symbol(null,\"path\",\"path\",1452340359,null),cljs.core.with_meta(new cljs.core.Symbol(null,\"reaction\",\"reaction\",2131401315,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\"state\",\"state\",-348086572,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\"watches\",\"watches\",1367433992,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null))], null);\n}));\n\n(reagent.ratom.RCursor.cljs$lang$type = true);\n\n(reagent.ratom.RCursor.cljs$lang$ctorStr = \"reagent.ratom/RCursor\");\n\n(reagent.ratom.RCursor.cljs$lang$ctorPrWriter = (function (this__4369__auto__,writer__4370__auto__,opt__4371__auto__){\nreturn cljs.core._write(writer__4370__auto__,\"reagent.ratom/RCursor\");\n}));\n\n/**\n * Positional factory function for reagent.ratom/RCursor.\n */\nreagent.ratom.__GT_RCursor = (function reagent$ratom$__GT_RCursor(ratom,path,reaction,state,watches){\nreturn (new reagent.ratom.RCursor(ratom,path,reaction,state,watches));\n});\n\nreagent.ratom.cursor = (function reagent$ratom$cursor(src,path){\nif((function (){var or__4126__auto__ = (((!((src == null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL === src.reagent$ratom$IReactiveAtom$))))?true:(((!src.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(reagent.ratom.IReactiveAtom,src):false)):cljs.core.native_satisfies_QMARK_(reagent.ratom.IReactiveAtom,src));\nif(or__4126__auto__){\nreturn or__4126__auto__;\n} else {\nreturn ((cljs.core.ifn_QMARK_(src)) && ((!(cljs.core.vector_QMARK_(src)))));\n}\n})()){\n} else {\nthrow (new Error([\"Assert failed: \",[\"src must be a reactive atom or a function, not \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([src], 0)),\" while attempting to get path: \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path], 0))].join(''),\"\\n\",\"(or (satisfies? IReactiveAtom src) (and (ifn? src) (not (vector? src))))\"].join('')));\n}\n\nreturn reagent.ratom.__GT_RCursor(src,path,null,null,null);\n});\nreagent.ratom.with_let_destroy = (function reagent$ratom$with_let_destroy(v){\nvar temp__5739__auto__ = v.destroy;\nif((temp__5739__auto__ == null)){\nreturn null;\n} else {\nvar f = temp__5739__auto__;\nreturn (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null));\n}\n});\nreagent.ratom.with_let_values = (function reagent$ratom$with_let_values(key){\nvar temp__5737__auto__ = reagent.ratom._STAR_ratom_context_STAR_;\nif((temp__5737__auto__ == null)){\nreturn [];\n} else {\nvar c = temp__5737__auto__;\nreturn reagent.ratom.cached_reaction(cljs.core.array,c,key,null,reagent.ratom.with_let_destroy);\n}\n});\n\n/**\n * @interface\n */\nreagent.ratom.IDisposable = function(){};\n\nvar reagent$ratom$IDisposable$dispose_BANG_$dyn_45702 = (function (this$){\nvar x__4428__auto__ = (((this$ == null))?null:this$);\nvar m__4429__auto__ = (reagent.ratom.dispose_BANG_[goog.typeOf(x__4428__auto__)]);\nif((!((m__4429__auto__ == null)))){\nreturn (m__4429__auto__.cljs$core$IFn$_invoke$arity$1 ? m__4429__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__4429__auto__.call(null,this$));\n} else {\nvar m__4426__auto__ = (reagent.ratom.dispose_BANG_[\"_\"]);\nif((!((m__4426__auto__ == null)))){\nreturn (m__4426__auto__.cljs$core$IFn$_invoke$arity$1 ? m__4426__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__4426__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\"IDisposable.dispose!\",this$);\n}\n}\n});\nreagent.ratom.dispose_BANG_ = (function reagent$ratom$dispose_BANG_(this$){\nif((((!((this$ == null)))) && ((!((this$.reagent$ratom$IDisposable$dispose_BANG_$arity$1 == null)))))){\nreturn this$.reagent$ratom$IDisposable$dispose_BANG_$arity$1(this$);\n} else {\nreturn reagent$ratom$IDisposable$dispose_BANG_$dyn_45702(this$);\n}\n});\n\nvar reagent$ratom$IDisposable$add_on_dispose_BANG_$dyn_45706 = (function (this$,f){\nvar x__4428__auto__ = (((this$ == null))?null:this$);\nvar m__4429__auto__ = (reagent.ratom.add_on_dispose_BANG_[goog.typeOf(x__4428__auto__)]);\nif((!((m__4429__auto__ == null)))){\nreturn (m__4429__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4429__auto__.cljs$core$IFn$_invoke$arity$2(this$,f) : m__4429__auto__.call(null,this$,f));\n} else {\nvar m__4426__auto__ = (reagent.ratom.add_on_dispose_BANG_[\"_\"]);\nif((!((m__4426__auto__ == null)))){\nreturn (m__4426__auto__.cljs$core$IFn$_invoke$arity$2 ? m__4426__auto__.cljs$core$IFn$_invoke$arity$2(this$,f) : m__4426__auto__.call(null,this$,f));\n} else {\nthrow cljs.core.missing_protocol(\"IDisposable.add-on-dispose!\",this$);\n}\n}\n});\nreagent.ratom.add_on_dispose_BANG_ = (function reagent$ratom$add_on_dispose_BANG_(this$,f){\nif((((!((this$ == null)))) && ((!((this$.reagent$ratom$IDisposable$add_on_dispose_BANG_$arity$2 == null)))))){\nreturn this$.reagent$ratom$IDisposable$add_on_dispose_BANG_$arity$2(this$,f);\n} else {\nreturn reagent$ratom$IDisposable$add_on_dispose_BANG_$dyn_45706(this$,f);\n}\n});\n\n\n/**\n * @interface\n */\nreagent.ratom.IRunnable = function(){};\n\nvar reagent$ratom$IRunnable$run$dyn_45710 = (function (this$){\nvar x__4428__auto__ = (((this$ == null))?null:this$);\nvar m__4429__auto__ = (reagent.ratom.run[goog.typeOf(x__4428__auto__)]);\nif((!((m__4429__auto__ == null)))){\nreturn (m__4429__auto__.cljs$core$IFn$_invoke$arity$1 ? m__4429__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__4429__auto__.call(null,this$));\n} else {\nvar m__4426__auto__ = (reagent.ratom.run[\"_\"]);\nif((!((m__4426__auto__ == null)))){\nreturn (m__4426__auto__.cljs$core$IFn$_invoke$arity$1 ? m__4426__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__4426__auto__.call(null,this$));\n} else {\nthrow cljs.core.missing_protocol(\"IRunnable.run\",this$);\n}\n}\n});\nreagent.ratom.run = (function reagent$ratom$run(this$){\nif((((!((this$ == null)))) && ((!((this$.reagent$ratom$IRunnable$run$arity$1 == null)))))){\nreturn this$.reagent$ratom$IRunnable$run$arity$1(this$);\n} else {\nreturn reagent$ratom$IRunnable$run$dyn_45710(this$);\n}\n});\n\nreagent.ratom.handle_reaction_change = (function reagent$ratom$handle_reaction_change(this$,sender,old,new$){\nreturn this$._handle_change(sender,old,new$);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IWatchable}\n * @implements {cljs.core.IAtom}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.IReset}\n * @implements {cljs.core.ISwap}\n * @implements {reagent.ratom.IReactiveAtom}\n * @implements {reagent.ratom.IRunnable}\n * @implements {reagent.ratom.IDisposable}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IPrintWithWriter}\n*/\nreagent.ratom.Reaction = (function (f,state,dirty_QMARK_,nocache_QMARK_,watching,watches,auto_run,caught){\nthis.f = f;\nthis.state = state;\nthis.dirty_QMARK_ = dirty_QMARK_;\nthis.nocache_QMARK_ = nocache_QMARK_;\nthis.watching = watching;\nthis.watches = watches;\nthis.auto_run = auto_run;\nthis.caught = caught;\nthis.cljs$lang$protocol_mask$partition0$ = 2153807872;\nthis.cljs$lang$protocol_mask$partition1$ = 114690;\n});\n(reagent.ratom.Reaction.prototype._peek_at = (function (){\nvar self__ = this;\nvar this$ = this;\nvar _STAR_ratom_context_STAR__orig_val__45392 = reagent.ratom._STAR_ratom_context_STAR_;\nvar _STAR_ratom_context_STAR__temp_val__45393 = null;\n(reagent.ratom._STAR_ratom_context_STAR_ = _STAR_ratom_context_STAR__temp_val__45393);\n\ntry{return this$.cljs$core$IDeref$_deref$arity$1(null);\n}finally {(reagent.ratom._STAR_ratom_context_STAR_ = _STAR_ratom_context_STAR__orig_val__45392);\n}}));\n\n(reagent.ratom.Reaction.prototype._handle_change = (function (sender,oldval,newval){\nvar self__ = this;\nvar this$ = this;\nif((((oldval === newval)) || (self__.dirty_QMARK_))){\nreturn null;\n} else {\nif((self__.auto_run == null)){\n(self__.dirty_QMARK_ = true);\n\nreturn reagent.ratom.rea_enqueue(this$);\n} else {\nif(self__.auto_run === true){\nreturn this$._run(false);\n} else {\nreturn (self__.auto_run.cljs$core$IFn$_invoke$arity$1 ? self__.auto_run.cljs$core$IFn$_invoke$arity$1(this$) : self__.auto_run.call(null,this$));\n}\n}\n}\n}));\n\n(reagent.ratom.Reaction.prototype._update_watching = (function (derefed){\nvar self__ = this;\nvar this$ = this;\nvar new$ = cljs.core.set(derefed);\nvar old = cljs.core.set(self__.watching);\n(self__.watching = derefed);\n\nvar seq__45398_45716 = cljs.core.seq(clojure.set.difference.cljs$core$IFn$_invoke$arity$2(new$,old));\nvar chunk__45399_45717 = null;\nvar count__45400_45718 = (0);\nvar i__45401_45719 = (0);\nwhile(true){\nif((i__45401_45719 < count__45400_45718)){\nvar w_45720 = chunk__45399_45717.cljs$core$IIndexed$_nth$arity$2(null,i__45401_45719);\ncljs.core._add_watch(w_45720,this$,reagent.ratom.handle_reaction_change);\n\n\nvar G__45721 = seq__45398_45716;\nvar G__45722 = chunk__45399_45717;\nvar G__45723 = count__45400_45718;\nvar G__45724 = (i__45401_45719 + (1));\nseq__45398_45716 = G__45721;\nchunk__45399_45717 = G__45722;\ncount__45400_45718 = G__45723;\ni__45401_45719 = G__45724;\ncontinue;\n} else {\nvar temp__5735__auto___45725 = cljs.core.seq(seq__45398_45716);\nif(temp__5735__auto___45725){\nvar seq__45398_45727__$1 = temp__5735__auto___45725;\nif(cljs.core.chunked_seq_QMARK_(seq__45398_45727__$1)){\nvar c__4556__auto___45728 = cljs.core.chunk_first(seq__45398_45727__$1);\nvar G__45729 = cljs.core.chunk_rest(seq__45398_45727__$1);\nvar G__45730 = c__4556__auto___45728;\nvar G__45731 = cljs.core.count(c__4556__auto___45728);\nvar G__45732 = (0);\nseq__45398_45716 = G__45729;\nchunk__45399_45717 = G__45730;\ncount__45400_45718 = G__45731;\ni__45401_45719 = G__45732;\ncontinue;\n} else {\nvar w_45733 = cljs.core.first(seq__45398_45727__$1);\ncljs.core._add_watch(w_45733,this$,reagent.ratom.handle_reaction_change);\n\n\nvar G__45735 = cljs.core.next(seq__45398_45727__$1);\nvar G__45736 = null;\nvar G__45737 = (0);\nvar G__45738 = (0);\nseq__45398_45716 = G__45735;\nchunk__45399_45717 = G__45736;\ncount__45400_45718 = G__45737;\ni__45401_45719 = G__45738;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nvar seq__45420 = cljs.core.seq(clojure.set.difference.cljs$core$IFn$_invoke$arity$2(old,new$));\nvar chunk__45421 = null;\nvar count__45422 = (0);\nvar i__45423 = (0);\nwhile(true){\nif((i__45423 < count__45422)){\nvar w = chunk__45421.cljs$core$IIndexed$_nth$arity$2(null,i__45423);\ncljs.core._remove_watch(w,this$);\n\n\nvar G__45740 = seq__45420;\nvar G__45741 = chunk__45421;\nvar G__45742 = count__45422;\nvar G__45743 = (i__45423 + (1));\nseq__45420 = G__45740;\nchunk__45421 = G__45741;\ncount__45422 = G__45742;\ni__45423 = G__45743;\ncontinue;\n} else {\nvar temp__5735__auto__ = cljs.core.seq(seq__45420);\nif(temp__5735__auto__){\nvar seq__45420__$1 = temp__5735__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__45420__$1)){\nvar c__4556__auto__ = cljs.core.chunk_first(seq__45420__$1);\nvar G__45744 = cljs.core.chunk_rest(seq__45420__$1);\nvar G__45745 = c__4556__auto__;\nvar G__45746 = cljs.core.count(c__4556__auto__);\nvar G__45747 = (0);\nseq__45420 = G__45744;\nchunk__45421 = G__45745;\ncount__45422 = G__45746;\ni__45423 = G__45747;\ncontinue;\n} else {\nvar w = cljs.core.first(seq__45420__$1);\ncljs.core._remove_watch(w,this$);\n\n\nvar G__45748 = cljs.core.next(seq__45420__$1);\nvar G__45749 = null;\nvar G__45750 = (0);\nvar G__45751 = (0);\nseq__45420 = G__45748;\nchunk__45421 = G__45749;\ncount__45422 = G__45750;\ni__45423 = G__45751;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n}));\n\n(reagent.ratom.Reaction.prototype._queued_run = (function (){\nvar self__ = this;\nvar this$ = this;\nif(((self__.dirty_QMARK_) && ((!((self__.watching == null)))))){\nreturn this$._run(true);\n} else {\nreturn null;\n}\n}));\n\n(reagent.ratom.Reaction.prototype._try_capture = (function (f__$1){\nvar self__ = this;\nvar this$ = this;\ntry{(self__.caught = null);\n\nreturn reagent.ratom.deref_capture(f__$1,this$);\n}catch (e45437){var e = e45437;\n(self__.state = e);\n\n(self__.caught = e);\n\nreturn (self__.dirty_QMARK_ = false);\n}}));\n\n(reagent.ratom.Reaction.prototype._run = (function (check){\nvar self__ = this;\nvar this$ = this;\nvar oldstate = self__.state;\nvar res = (cljs.core.truth_(check)?this$._try_capture(self__.f):reagent.ratom.deref_capture(self__.f,this$));\nif(self__.nocache_QMARK_){\n} else {\n(self__.state = res);\n\nif((((self__.watches == null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(oldstate,res)))){\n} else {\nreagent.ratom.notify_w(this$,oldstate,res);\n}\n}\n\nreturn res;\n}));\n\n(reagent.ratom.Reaction.prototype._set_opts = (function (p__45439){\nvar self__ = this;\nvar map__45440 = p__45439;\nvar map__45440__$1 = (((((!((map__45440 == null))))?(((((map__45440.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45440.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45440):map__45440);\nvar auto_run__$1 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45440__$1,new cljs.core.Keyword(null,\"auto-run\",\"auto-run\",1958400437));\nvar on_set = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45440__$1,new cljs.core.Keyword(null,\"on-set\",\"on-set\",-140953470));\nvar on_dispose = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45440__$1,new cljs.core.Keyword(null,\"on-dispose\",\"on-dispose\",2105306360));\nvar no_cache = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45440__$1,new cljs.core.Keyword(null,\"no-cache\",\"no-cache\",1588056370));\nvar this$ = this;\nif((!((auto_run__$1 == null)))){\n(this$.auto_run = auto_run__$1);\n} else {\n}\n\nif((!((on_set == null)))){\n(this$.on_set = on_set);\n} else {\n}\n\nif((!((on_dispose == null)))){\n(this$.on_dispose = on_dispose);\n} else {\n}\n\nif((!((no_cache == null)))){\nreturn (this$.nocache_QMARK_ = no_cache);\n} else {\nreturn null;\n}\n}));\n\n(reagent.ratom.Reaction.prototype.reagent$ratom$IReactiveAtom$ = cljs.core.PROTOCOL_SENTINEL);\n\n(reagent.ratom.Reaction.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (a,w,opts){\nvar self__ = this;\nvar a__$1 = this;\nreturn reagent.ratom.pr_atom(a__$1,w,opts,\"Reaction\",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"val\",\"val\",128701612),a__$1.cljs$core$IDeref$_deref$arity$1(null)], null));\n}));\n\n(reagent.ratom.Reaction.prototype.cljs$core$IHash$_hash$arity$1 = (function (this$){\nvar self__ = this;\nvar this$__$1 = this;\nreturn goog.getUid(this$__$1);\n}));\n\n(reagent.ratom.Reaction.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (o,other){\nvar self__ = this;\nvar o__$1 = this;\nreturn (o__$1 === other);\n}));\n\n(reagent.ratom.Reaction.prototype.reagent$ratom$IDisposable$ = cljs.core.PROTOCOL_SENTINEL);\n\n(reagent.ratom.Reaction.prototype.reagent$ratom$IDisposable$dispose_BANG_$arity$1 = (function (this$){\nvar self__ = this;\nvar this$__$1 = this;\nvar s = self__.state;\nvar wg = self__.watching;\n(self__.watching = null);\n\n(self__.state = null);\n\n(self__.auto_run = null);\n\n(self__.dirty_QMARK_ = true);\n\nvar seq__45448_45756 = cljs.core.seq(cljs.core.set(wg));\nvar chunk__45449_45757 = null;\nvar count__45450_45758 = (0);\nvar i__45451_45759 = (0);\nwhile(true){\nif((i__45451_45759 < count__45450_45758)){\nvar w_45760 = chunk__45449_45757.cljs$core$IIndexed$_nth$arity$2(null,i__45451_45759);\ncljs.core._remove_watch(w_45760,this$__$1);\n\n\nvar G__45761 = seq__45448_45756;\nvar G__45762 = chunk__45449_45757;\nvar G__45763 = count__45450_45758;\nvar G__45764 = (i__45451_45759 + (1));\nseq__45448_45756 = G__45761;\nchunk__45449_45757 = G__45762;\ncount__45450_45758 = G__45763;\ni__45451_45759 = G__45764;\ncontinue;\n} else {\nvar temp__5735__auto___45765 = cljs.core.seq(seq__45448_45756);\nif(temp__5735__auto___45765){\nvar seq__45448_45766__$1 = temp__5735__auto___45765;\nif(cljs.core.chunked_seq_QMARK_(seq__45448_45766__$1)){\nvar c__4556__auto___45767 = cljs.core.chunk_first(seq__45448_45766__$1);\nvar G__45768 = cljs.core.chunk_rest(seq__45448_45766__$1);\nvar G__45769 = c__4556__auto___45767;\nvar G__45770 = cljs.core.count(c__4556__auto___45767);\nvar G__45771 = (0);\nseq__45448_45756 = G__45768;\nchunk__45449_45757 = G__45769;\ncount__45450_45758 = G__45770;\ni__45451_45759 = G__45771;\ncontinue;\n} else {\nvar w_45772 = cljs.core.first(seq__45448_45766__$1);\ncljs.core._remove_watch(w_45772,this$__$1);\n\n\nvar G__45774 = cljs.core.next(seq__45448_45766__$1);\nvar G__45775 = null;\nvar G__45776 = (0);\nvar G__45777 = (0);\nseq__45448_45756 = G__45774;\nchunk__45449_45757 = G__45775;\ncount__45450_45758 = G__45776;\ni__45451_45759 = G__45777;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nif((!((this$__$1.on_dispose == null)))){\nthis$__$1.on_dispose(s);\n} else {\n}\n\nvar temp__5739__auto__ = this$__$1.on_dispose_arr;\nif((temp__5739__auto__ == null)){\nreturn null;\n} else {\nvar a = temp__5739__auto__;\nvar n__4613__auto__ = a.length;\nvar i = (0);\nwhile(true){\nif((i < n__4613__auto__)){\nvar fexpr__45464_45778 = (a[i]);\n(fexpr__45464_45778.cljs$core$IFn$_invoke$arity$1 ? fexpr__45464_45778.cljs$core$IFn$_invoke$arity$1(this$__$1) : fexpr__45464_45778.call(null,this$__$1));\n\nvar G__45779 = (i + (1));\ni = G__45779;\ncontinue;\n} else {\nreturn null;\n}\nbreak;\n}\n}\n}));\n\n(reagent.ratom.Reaction.prototype.reagent$ratom$IDisposable$add_on_dispose_BANG_$arity$2 = (function (this$,f__$1){\nvar self__ = this;\nvar this$__$1 = this;\nvar temp__5737__auto__ = this$__$1.on_dispose_arr;\nif((temp__5737__auto__ == null)){\nreturn (this$__$1.on_dispose_arr = [f__$1]);\n} else {\nvar a = temp__5737__auto__;\nreturn a.push(f__$1);\n}\n}));\n\n(reagent.ratom.Reaction.prototype.cljs$core$IReset$_reset_BANG_$arity$2 = (function (a,newval){\nvar self__ = this;\nvar a__$1 = this;\nif(cljs.core.fn_QMARK_(a__$1.on_set)){\n} else {\nthrow (new Error([\"Assert failed: \",\"Reaction is read only; on-set is not allowed\",\"\\n\",\"(fn? (.-on-set a))\"].join('')));\n}\n\nvar oldval = self__.state;\n(self__.state = newval);\n\na__$1.on_set(oldval,newval);\n\nreagent.ratom.notify_w(a__$1,oldval,newval);\n\nreturn newval;\n}));\n\n(reagent.ratom.Reaction.prototype.cljs$core$ISwap$_swap_BANG_$arity$2 = (function (a,f__$1){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,(function (){var G__45472 = a__$1._peek_at();\nreturn (f__$1.cljs$core$IFn$_invoke$arity$1 ? f__$1.cljs$core$IFn$_invoke$arity$1(G__45472) : f__$1.call(null,G__45472));\n})());\n}));\n\n(reagent.ratom.Reaction.prototype.cljs$core$ISwap$_swap_BANG_$arity$3 = (function (a,f__$1,x){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,(function (){var G__45473 = a__$1._peek_at();\nvar G__45474 = x;\nreturn (f__$1.cljs$core$IFn$_invoke$arity$2 ? f__$1.cljs$core$IFn$_invoke$arity$2(G__45473,G__45474) : f__$1.call(null,G__45473,G__45474));\n})());\n}));\n\n(reagent.ratom.Reaction.prototype.cljs$core$ISwap$_swap_BANG_$arity$4 = (function (a,f__$1,x,y){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,(function (){var G__45476 = a__$1._peek_at();\nvar G__45477 = x;\nvar G__45478 = y;\nreturn (f__$1.cljs$core$IFn$_invoke$arity$3 ? f__$1.cljs$core$IFn$_invoke$arity$3(G__45476,G__45477,G__45478) : f__$1.call(null,G__45476,G__45477,G__45478));\n})());\n}));\n\n(reagent.ratom.Reaction.prototype.cljs$core$ISwap$_swap_BANG_$arity$5 = (function (a,f__$1,x,y,more){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f__$1,a__$1._peek_at(),x,y,more));\n}));\n\n(reagent.ratom.Reaction.prototype.reagent$ratom$IRunnable$ = cljs.core.PROTOCOL_SENTINEL);\n\n(reagent.ratom.Reaction.prototype.reagent$ratom$IRunnable$run$arity$1 = (function (this$){\nvar self__ = this;\nvar this$__$1 = this;\nreagent.ratom.flush_BANG_();\n\nreturn this$__$1._run(false);\n}));\n\n(reagent.ratom.Reaction.prototype.cljs$core$IWatchable$_notify_watches$arity$3 = (function (this$,old,new$){\nvar self__ = this;\nvar this$__$1 = this;\nreturn reagent.ratom.notify_w(this$__$1,old,new$);\n}));\n\n(reagent.ratom.Reaction.prototype.cljs$core$IWatchable$_add_watch$arity$3 = (function (this$,key,f__$1){\nvar self__ = this;\nvar this$__$1 = this;\nreturn reagent.ratom.add_w(this$__$1,key,f__$1);\n}));\n\n(reagent.ratom.Reaction.prototype.cljs$core$IWatchable$_remove_watch$arity$2 = (function (this$,key){\nvar self__ = this;\nvar this$__$1 = this;\nvar was_empty = cljs.core.empty_QMARK_(self__.watches);\nreagent.ratom.remove_w(this$__$1,key);\n\nif((((!(was_empty))) && (cljs.core.empty_QMARK_(self__.watches)) && ((self__.auto_run == null)))){\nreturn this$__$1.reagent$ratom$IDisposable$dispose_BANG_$arity$1(null);\n} else {\nreturn null;\n}\n}));\n\n(reagent.ratom.Reaction.prototype.cljs$core$IDeref$_deref$arity$1 = (function (this$){\nvar self__ = this;\nvar this$__$1 = this;\nvar temp__5739__auto___45791 = self__.caught;\nif((temp__5739__auto___45791 == null)){\n} else {\nvar e_45793 = temp__5739__auto___45791;\nthrow e_45793;\n}\n\nvar non_reactive_45794 = (reagent.ratom._STAR_ratom_context_STAR_ == null);\nif(non_reactive_45794){\nreagent.ratom.flush_BANG_();\n} else {\n}\n\nif(((non_reactive_45794) && ((self__.auto_run == null)))){\nif(self__.dirty_QMARK_){\nvar oldstate_45795 = self__.state;\n(self__.state = (self__.f.cljs$core$IFn$_invoke$arity$0 ? self__.f.cljs$core$IFn$_invoke$arity$0() : self__.f.call(null)));\n\nif((((self__.watches == null)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(oldstate_45795,self__.state)))){\n} else {\nreagent.ratom.notify_w(this$__$1,oldstate_45795,self__.state);\n}\n} else {\n}\n} else {\nreagent.ratom.notify_deref_watcher_BANG_(this$__$1);\n\nif(self__.dirty_QMARK_){\nthis$__$1._run(false);\n} else {\n}\n}\n\nreturn self__.state;\n}));\n\n(reagent.ratom.Reaction.getBasis = (function (){\nreturn new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\"f\",\"f\",43394975,null),cljs.core.with_meta(new cljs.core.Symbol(null,\"state\",\"state\",-348086572,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\"dirty?\",\"dirty?\",-419314319,null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Symbol(null,\"boolean\",\"boolean\",-278886877,null),new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\"nocache?\",\"nocache?\",-1065670978,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Symbol(null,\"boolean\",\"boolean\",-278886877,null)], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\"watching\",\"watching\",1947648227,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\"watches\",\"watches\",1367433992,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\"auto-run\",\"auto-run\",-696035332,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\"caught\",\"caught\",2084008322,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null))], null);\n}));\n\n(reagent.ratom.Reaction.cljs$lang$type = true);\n\n(reagent.ratom.Reaction.cljs$lang$ctorStr = \"reagent.ratom/Reaction\");\n\n(reagent.ratom.Reaction.cljs$lang$ctorPrWriter = (function (this__4369__auto__,writer__4370__auto__,opt__4371__auto__){\nreturn cljs.core._write(writer__4370__auto__,\"reagent.ratom/Reaction\");\n}));\n\n/**\n * Positional factory function for reagent.ratom/Reaction.\n */\nreagent.ratom.__GT_Reaction = (function reagent$ratom$__GT_Reaction(f,state,dirty_QMARK_,nocache_QMARK_,watching,watches,auto_run,caught){\nreturn (new reagent.ratom.Reaction(f,state,dirty_QMARK_,nocache_QMARK_,watching,watches,auto_run,caught));\n});\n\nreagent.ratom.make_reaction = (function reagent$ratom$make_reaction(var_args){\nvar args__4742__auto__ = [];\nvar len__4736__auto___45802 = arguments.length;\nvar i__4737__auto___45803 = (0);\nwhile(true){\nif((i__4737__auto___45803 < len__4736__auto___45802)){\nargs__4742__auto__.push((arguments[i__4737__auto___45803]));\n\nvar G__45804 = (i__4737__auto___45803 + (1));\ni__4737__auto___45803 = G__45804;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4743__auto__ = ((((1) < args__4742__auto__.length))?(new cljs.core.IndexedSeq(args__4742__auto__.slice((1)),(0),null)):null);\nreturn reagent.ratom.make_reaction.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4743__auto__);\n});\n\n(reagent.ratom.make_reaction.cljs$core$IFn$_invoke$arity$variadic = (function (f,p__45508){\nvar map__45510 = p__45508;\nvar map__45510__$1 = (((((!((map__45510 == null))))?(((((map__45510.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45510.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45510):map__45510);\nvar auto_run = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45510__$1,new cljs.core.Keyword(null,\"auto-run\",\"auto-run\",1958400437));\nvar on_set = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45510__$1,new cljs.core.Keyword(null,\"on-set\",\"on-set\",-140953470));\nvar on_dispose = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45510__$1,new cljs.core.Keyword(null,\"on-dispose\",\"on-dispose\",2105306360));\nvar reaction = reagent.ratom.__GT_Reaction(f,null,true,false,null,null,null,null);\nreaction._set_opts(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\"auto-run\",\"auto-run\",1958400437),auto_run,new cljs.core.Keyword(null,\"on-set\",\"on-set\",-140953470),on_set,new cljs.core.Keyword(null,\"on-dispose\",\"on-dispose\",2105306360),on_dispose], null));\n\nreturn reaction;\n}));\n\n(reagent.ratom.make_reaction.cljs$lang$maxFixedArity = (1));\n\n/** @this {Function} */\n(reagent.ratom.make_reaction.cljs$lang$applyTo = (function (seq45499){\nvar G__45500 = cljs.core.first(seq45499);\nvar seq45499__$1 = cljs.core.next(seq45499);\nvar self__4723__auto__ = this;\nreturn self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45500,seq45499__$1);\n}));\n\nreagent.ratom.temp_reaction = reagent.ratom.make_reaction(null);\n/**\n * Evaluates `f` and returns the result.  If `f` calls `deref` on any ratoms,\n * creates a new Reaction that watches those atoms and calls `run` whenever\n * any of those watched ratoms change.  Also, the new reaction is added to\n * list of 'watches' of each of the ratoms. The `run` parameter is a function\n * that should expect one argument.  It is passed `obj` when run.  The `opts`\n * are any options accepted by a Reaction and will be set on the newly created\n * Reaction. Sets the newly created Reaction to the `key` on `obj`.\n */\nreagent.ratom.run_in_reaction = (function reagent$ratom$run_in_reaction(f,obj,key,run,opts){\nvar r = reagent.ratom.temp_reaction;\nvar res = reagent.ratom.deref_capture(f,r);\nif((r.watching == null)){\n} else {\n(reagent.ratom.temp_reaction = reagent.ratom.make_reaction(null));\n\nr._set_opts(opts);\n\n(r.f = f);\n\n(r.auto_run = (function (){\nreturn (run.cljs$core$IFn$_invoke$arity$1 ? run.cljs$core$IFn$_invoke$arity$1(obj) : run.call(null,obj));\n}));\n\ngoog.object.set(obj,key,r);\n}\n\nreturn res;\n});\nreagent.ratom.check_derefs = (function reagent$ratom$check_derefs(f){\nvar ctx = ({});\nvar res = reagent.ratom.in_context(ctx,f);\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [res,(!((ctx.captured == null)))], null);\n});\n\n/**\n* @constructor\n * @implements {cljs.core.IWatchable}\n * @implements {cljs.core.IAtom}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IReset}\n * @implements {cljs.core.ISwap}\n * @implements {cljs.core.IDeref}\n * @implements {cljs.core.IPrintWithWriter}\n*/\nreagent.ratom.Wrapper = (function (state,callback,changed,watches){\nthis.state = state;\nthis.callback = callback;\nthis.changed = changed;\nthis.watches = watches;\nthis.cljs$lang$protocol_mask$partition1$ = 114690;\nthis.cljs$lang$protocol_mask$partition0$ = 2149613568;\n});\n(reagent.ratom.Wrapper.prototype.cljs$core$IDeref$_deref$arity$1 = (function (this$){\nvar self__ = this;\nvar this$__$1 = this;\nif(((self__.changed) && ((!((reagent.ratom._STAR_ratom_context_STAR_ == null)))))){\nif(reagent.debug.has_console){\n((reagent.debug.tracking)?reagent.debug.track_console:console).warn([\"Warning: \",\"derefing stale wrap: \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([this$__$1], 0))].join(''));\n} else {\n}\n} else {\n}\n\n\nreturn self__.state;\n}));\n\n(reagent.ratom.Wrapper.prototype.cljs$core$IReset$_reset_BANG_$arity$2 = (function (this$,newval){\nvar self__ = this;\nvar this$__$1 = this;\nvar oldval = self__.state;\n(self__.changed = true);\n\n(self__.state = newval);\n\nif((!((self__.watches == null)))){\nreagent.ratom.notify_w(this$__$1,oldval,newval);\n} else {\n}\n\n(self__.callback.cljs$core$IFn$_invoke$arity$1 ? self__.callback.cljs$core$IFn$_invoke$arity$1(newval) : self__.callback.call(null,newval));\n\nreturn newval;\n}));\n\n(reagent.ratom.Wrapper.prototype.cljs$core$ISwap$_swap_BANG_$arity$2 = (function (a,f){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(self__.state) : f.call(null,self__.state)));\n}));\n\n(reagent.ratom.Wrapper.prototype.cljs$core$ISwap$_swap_BANG_$arity$3 = (function (a,f,x){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,(f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(self__.state,x) : f.call(null,self__.state,x)));\n}));\n\n(reagent.ratom.Wrapper.prototype.cljs$core$ISwap$_swap_BANG_$arity$4 = (function (a,f,x,y){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,(f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(self__.state,x,y) : f.call(null,self__.state,x,y)));\n}));\n\n(reagent.ratom.Wrapper.prototype.cljs$core$ISwap$_swap_BANG_$arity$5 = (function (a,f,x,y,more){\nvar self__ = this;\nvar a__$1 = this;\nreturn a__$1.cljs$core$IReset$_reset_BANG_$arity$2(null,cljs.core.apply.cljs$core$IFn$_invoke$arity$5(f,self__.state,x,y,more));\n}));\n\n(reagent.ratom.Wrapper.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (_,other){\nvar self__ = this;\nvar ___$1 = this;\nreturn (((other instanceof reagent.ratom.Wrapper)) && ((!(self__.changed))) && (cljs.core.not(other.changed)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.state,other.state)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(self__.callback,other.callback)));\n}));\n\n(reagent.ratom.Wrapper.prototype.cljs$core$IWatchable$_notify_watches$arity$3 = (function (this$,old,new$){\nvar self__ = this;\nvar this$__$1 = this;\nreturn reagent.ratom.notify_w(this$__$1,old,new$);\n}));\n\n(reagent.ratom.Wrapper.prototype.cljs$core$IWatchable$_add_watch$arity$3 = (function (this$,key,f){\nvar self__ = this;\nvar this$__$1 = this;\nreturn reagent.ratom.add_w(this$__$1,key,f);\n}));\n\n(reagent.ratom.Wrapper.prototype.cljs$core$IWatchable$_remove_watch$arity$2 = (function (this$,key){\nvar self__ = this;\nvar this$__$1 = this;\nreturn reagent.ratom.remove_w(this$__$1,key);\n}));\n\n(reagent.ratom.Wrapper.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (a,w,opts){\nvar self__ = this;\nvar a__$1 = this;\nreturn reagent.ratom.pr_atom(a__$1,w,opts,\"Wrapper\",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"val\",\"val\",128701612),a__$1.cljs$core$IDeref$_deref$arity$1(null)], null));\n}));\n\n(reagent.ratom.Wrapper.getBasis = (function (){\nreturn new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.with_meta(new cljs.core.Symbol(null,\"state\",\"state\",-348086572,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null)),new cljs.core.Symbol(null,\"callback\",\"callback\",935395299,null),cljs.core.with_meta(new cljs.core.Symbol(null,\"changed\",\"changed\",-2083710852,null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tag\",\"tag\",-1290361223),new cljs.core.Symbol(null,\"boolean\",\"boolean\",-278886877,null),new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,\"watches\",\"watches\",1367433992,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"mutable\",\"mutable\",875778266),true], null))], null);\n}));\n\n(reagent.ratom.Wrapper.cljs$lang$type = true);\n\n(reagent.ratom.Wrapper.cljs$lang$ctorStr = \"reagent.ratom/Wrapper\");\n\n(reagent.ratom.Wrapper.cljs$lang$ctorPrWriter = (function (this__4369__auto__,writer__4370__auto__,opt__4371__auto__){\nreturn cljs.core._write(writer__4370__auto__,\"reagent.ratom/Wrapper\");\n}));\n\n/**\n * Positional factory function for reagent.ratom/Wrapper.\n */\nreagent.ratom.__GT_Wrapper = (function reagent$ratom$__GT_Wrapper(state,callback,changed,watches){\nreturn (new reagent.ratom.Wrapper(state,callback,changed,watches));\n});\n\nreagent.ratom.make_wrapper = (function reagent$ratom$make_wrapper(value,callback_fn,args){\nreturn reagent.ratom.__GT_Wrapper(value,reagent.impl.util.make_partial_fn(callback_fn,args),false,null);\n});\n","~:ns-info",["^ ","~:rename-macros",null,"~:renames",["^ "],"~:meta",["^ ","~:file","reagent/ratom.cljs","~:line",1,"~:column",5,"~:end-line",1,"~:end-column",18],"~:ns-aliases",["^ ","~$cljs.loader","~$shadow.loader","~$clojure.pprint","~$cljs.pprint","~$react","~$shadow.js.shim.module$react","~$clojure.spec.alpha","~$cljs.spec.alpha"],"~:use-macros",["^ ","~$warn","~$reagent.debug","~$dev?","^F"],"~:excludes",["~#set",["~$atom"]],"~:macros",["^ ","~$with-let",["^ ","~:arglists",["~#list",[["~$bindings","~$&","~$body"]]],"^7",18,"^8",1,"^6","reagent/ratom.clj","~:name","~$reagent.ratom/with-let","~:ns","~$reagent.ratom","~:macro",true],"~$reaction",["^ ","^M",["^N",[["~$&","^P"]]],"^7",6,"^8",1,"^6","reagent/ratom.clj","^Q","~$reagent.ratom/reaction","^S","^T","^U",true],"~$run!",["^ ","^M",["^N",[["~$&","^P"]]],"~:doc","Runs body immediately, and runs again whenever atoms deferenced in the body change. Body should side effect.","^7",10,"^8",1,"^6","reagent/ratom.clj","^Q","~$reagent.ratom/run!","^S","^T","^U",true]],"^Q","^T","~:op","^S","~:imports",null,"~:requires",["^ ","~$reagent.impl.util","^12","~$obj","~$goog.object","~$cljs.core","^15","~$goog","^16","^14","^14","~$reagent.impl.batching","^17","~$clojure.set","^18","~$util","^12","~$s","^18","~$batch","^17","^F","^F"],"~:seen",["^I",["~:require","~:require-macros"]],"~:uses",null,"^1=",["^ ","^T","^T","^F","^F","^15","^15"],"~:form",["^N",["~$ns","^T",["^N",["~:refer-clojure","~:exclude",["^J"]]],["^N",["^1=",["^T"]]],["^N",["^1<",["^12","~:as","^19"],["^F","~:refer-macros",["^E","^G"]],["^17","^1C","^1:"],["^18","^1C","~$s"],["^14","^1C","^13"]]]]],"~:flags",["^ ","^1=",["^I",[]],"^1<",["^I",[]]],"~:js-deps",["^ "],"~:deps",["^16","^15","^12","^F","^17","^18","^14"]],"^S","^T","~:resource-id",["~:shadow.build.classpath/resource","reagent/ratom.cljs"],"~:compiled-at",1613924120974,"~:resource-name","reagent/ratom.cljs","~:warnings",[],"~:source","(ns reagent.ratom\n  (:refer-clojure :exclude [atom])\n  (:require-macros [reagent.ratom])\n  (:require [reagent.impl.util :as util]\n            [reagent.debug :refer-macros [warn dev?]]\n            [reagent.impl.batching :as batch]\n            [clojure.set :as s]\n            [goog.object :as obj]))\n\n(declare ^:dynamic *ratom-context*)\n(defonce ^boolean debug false)\n(defonce ^:private generation 0)\n(defonce ^:private -running (clojure.core/atom 0))\n\n(defn ^boolean reactive? []\n  (some? *ratom-context*))\n\n\n;;; Utilities\n\n(defn running []\n  (+ @-running))\n\n(defn- ^number arr-len [x]\n  (if (nil? x) 0 (alength x)))\n\n(defn- ^boolean arr-eq [x y]\n  (let [len (arr-len x)]\n    (and (== len (arr-len y))\n         (loop [i 0]\n           (or (== i len)\n               (if (identical? (aget x i) (aget y i))\n                 (recur (inc i))\n                 false))))))\n\n(defn- in-context\n  \"When f is executed, if (f) derefs any ratoms, they are then added to 'obj.captured'(*ratom-context*).\n\n  See function notify-deref-watcher! to know how *ratom-context* is updated\"\n  [obj f]\n  (binding [*ratom-context* obj]\n    (f)))\n\n(defn- deref-capture\n  \"Returns `(in-context f r)`.  Calls `_update-watching` on r with any\n  `deref`ed atoms captured during `in-context`, if any differ from the\n  `watching` field of r.  Clears the `dirty?` flag on r.\n\n  Inside '_update-watching' along with adding the ratoms in 'r.watching' of reaction,\n  the reaction is also added to the list of watches on each ratoms f derefs.\"\n  [f ^clj r]\n  (set! (.-captured r) nil)\n  (when (dev?)\n    (set! (.-ratomGeneration r) (set! generation (inc generation))))\n  (let [res (in-context r f)\n        c (.-captured r)]\n    (set! (.-dirty? r) false)\n    ;; Optimize common case where derefs occur in same order\n    (when-not (arr-eq c (.-watching r))\n      (._update-watching r c))\n    res))\n\n(defn- notify-deref-watcher!\n  \"Add `derefed` to the `captured` field of `*ratom-context*`.\n\n  See also `in-context`\"\n  [derefed]\n  (when-some [r *ratom-context*]\n    (let [c (.-captured r)]\n      (if (nil? c)\n        (set! (.-captured r) (array derefed))\n        (.push c derefed)))))\n\n(defn- check-watches [old new]\n  (when debug\n    (swap! -running + (- (count new) (count old))))\n  new)\n\n(defn- add-w [^clj this key f]\n  (let [w (.-watches this)]\n    (set! (.-watches this) (check-watches w (assoc w key f)))\n    (set! (.-watchesArr this) nil)))\n\n(defn- remove-w [^clj this key]\n  (let [w (.-watches this)]\n    (set! (.-watches this) (check-watches w (dissoc w key)))\n    (set! (.-watchesArr this) nil)))\n\n(defn- notify-w [^clj this old new]\n  (let [w (.-watchesArr this)\n        a (if (nil? w)\n            ;; Copy watches to array for speed\n            (->> (.-watches this)\n                 (reduce-kv #(doto %1 (.push %2) (.push %3)) #js[])\n                 (set! (.-watchesArr this)))\n            w)\n        len (alength a)]\n    (loop [i 0]\n      (when (< i len)\n        (let [k (aget a i)\n              f (aget a (inc i))]\n          (f k this old new))\n        (recur (+ 2 i))))))\n\n(defn- pr-atom [a writer opts s v]\n  (-write writer (str \"#object[reagent.ratom.\" s \" \"))\n  (pr-writer (binding [*ratom-context* nil] v) writer opts)\n  (-write writer \"]\"))\n\n\n;;; Queueing\n\n(defonce ^:private rea-queue nil)\n\n(defn- rea-enqueue [r]\n  (when (nil? rea-queue)\n    (set! rea-queue (array))\n    (batch/schedule))\n  (.push rea-queue r))\n\n(defn flush! []\n  (loop []\n    (let [q rea-queue]\n      (when-not (nil? q)\n        (set! rea-queue nil)\n        (dotimes [i (alength q)]\n          (._queued-run (aget q i)))\n        (recur)))))\n\n(set! batch/ratom-flush flush!)\n\n\n;;; Atom\n\n(defprotocol IReactiveAtom)\n\n(deftype RAtom [^:mutable state meta validator ^:mutable watches]\n  IAtom\n  IReactiveAtom\n\n  IEquiv\n  (-equiv [o other] (identical? o other))\n\n  IDeref\n  (-deref [this]\n    (notify-deref-watcher! this)\n    state)\n\n  IReset\n  (-reset! [a new-value]\n    (when-not (nil? validator)\n      (assert (validator new-value) \"Validator rejected reference state\"))\n    (let [old-value state]\n      (set! state new-value)\n      (when-not (nil? watches)\n        (notify-w a old-value new-value))\n      new-value))\n\n  ISwap\n  (-swap! [a f]          (-reset! a (f state)))\n  (-swap! [a f x]        (-reset! a (f state x)))\n  (-swap! [a f x y]      (-reset! a (f state x y)))\n  (-swap! [a f x y more] (-reset! a (apply f state x y more)))\n\n  IWithMeta\n  (-with-meta [_ new-meta] (RAtom. state new-meta validator watches))\n\n  IMeta\n  (-meta [_] meta)\n\n  IPrintWithWriter\n  (-pr-writer [a w opts] (pr-atom a w opts \"RAtom\" {:val (-deref a)}))\n\n  IWatchable\n  (-notify-watches [this old new] (notify-w this old new))\n  (-add-watch [this key f]        (add-w this key f))\n  (-remove-watch [this key]       (remove-w this key))\n\n  IHash\n  (-hash [this] (goog/getUid this)))\n\n(defn atom\n  \"Like clojure.core/atom, except that it keeps track of derefs.\"\n  ([x] (->RAtom x nil nil nil))\n  ([x & {:keys [meta validator]}] (->RAtom x meta validator nil)))\n\n\n;;; track\n\n(declare make-reaction)\n\n(defn- cached-reaction [f ^clj o k ^clj obj destroy]\n  (let [m (.-reagReactionCache o)\n        m (if (nil? m) {} m)\n        r (m k nil)]\n    (cond\n      (some? r) (-deref r)\n      (nil? *ratom-context*) (f)\n      :else (let [r (make-reaction\n                     f :on-dispose (fn [x]\n                                     (when debug (swap! -running dec))\n                                     (as-> (.-reagReactionCache o) _\n                                       (dissoc _ k)\n                                       (set! (.-reagReactionCache o) _))\n                                     (when (some? obj)\n                                       (set! (.-reaction obj) nil))\n                                     (when (some? destroy)\n                                       (destroy x))))\n                  v (-deref r)]\n              (set! (.-reagReactionCache o) (assoc m k r))\n              (when debug (swap! -running inc))\n              (when (some? obj)\n                (set! (.-reaction obj) r))\n              v))))\n\n(deftype Track [f args ^:mutable reaction]\n  IReactiveAtom\n\n  IDeref\n  (-deref [this]\n    (if-some [r reaction]\n      (-deref r)\n      (cached-reaction #(apply f args) f args this nil)))\n\n  IEquiv\n  (-equiv [_ ^clj other]\n    (and (instance? Track other)\n         (= f (.-f other))\n         (= args (.-args other))))\n\n  IHash\n  (-hash [_] (hash [f args]))\n\n  IPrintWithWriter\n  (-pr-writer [a w opts] (pr-atom a w opts \"Track\" {:val (-deref a)\n                                                    :f f})))\n\n(defn make-track [f args]\n  (Track. f args nil))\n\n(defn make-track! [f args]\n  (let [t (make-track f args)\n        r (make-reaction #(-deref t)\n                         :auto-run true)]\n    @r\n    r))\n\n(defn track [f & args]\n  {:pre [(ifn? f)]}\n  (make-track f args))\n\n(defn track! [f & args]\n  {:pre [(ifn? f)]}\n  (make-track! f args))\n\n;;; cursor\n\n(deftype RCursor [ratom path ^:mutable reaction\n                  ^:mutable state ^:mutable watches]\n  IAtom\n  IReactiveAtom\n\n  IEquiv\n  (-equiv [_ ^clj other]\n    (and (instance? RCursor other)\n         (= path (.-path other))\n         (= ratom (.-ratom other))))\n\n  Object\n  (_peek [this]\n    (binding [*ratom-context* nil]\n      (-deref this)))\n\n  (_set-state [this oldstate newstate]\n    (when-not (identical? oldstate newstate)\n      (set! state newstate)\n      (when (some? watches)\n        (notify-w this oldstate newstate))))\n\n  IDeref\n  (-deref [this]\n    (let [oldstate state\n          newstate (if-some [r reaction]\n                     (-deref r)\n                     (let [f (if (satisfies? IDeref ratom)\n                               #(get-in @ratom path)\n                               #(ratom path))]\n                       (cached-reaction f ratom path this nil)))]\n      (._set-state this oldstate newstate)\n      newstate))\n\n  IReset\n  (-reset! [this new-value]\n    (let [oldstate state]\n      (._set-state this oldstate new-value)\n      (if (satisfies? IDeref ratom)\n        (if (= path [])\n          (reset! ratom new-value)\n          (swap! ratom assoc-in path new-value))\n        (ratom path new-value))\n      new-value))\n\n  ISwap\n  (-swap! [a f]          (-reset! a (f (._peek a))))\n  (-swap! [a f x]        (-reset! a (f (._peek a) x)))\n  (-swap! [a f x y]      (-reset! a (f (._peek a) x y)))\n  (-swap! [a f x y more] (-reset! a (apply f (._peek a) x y more)))\n\n  IPrintWithWriter\n  (-pr-writer [a w opts] (pr-atom a w opts \"RCursor\" {:val (-deref a)\n                                                      :path path}))\n\n  IWatchable\n  (-notify-watches [this old new] (notify-w this old new))\n  (-add-watch [this key f]        (add-w this key f))\n  (-remove-watch [this key]       (remove-w this key))\n\n  IHash\n  (-hash [_] (hash [ratom path])))\n\n(defn cursor\n  [^clj src path]\n  (assert (or (satisfies? IReactiveAtom src)\n              (and (ifn? src)\n                   (not (vector? src))))\n          (str \"src must be a reactive atom or a function, not \"\n               (pr-str src)\n               \" while attempting to get path: \"\n               (pr-str path)))\n  (->RCursor src path nil nil nil))\n\n\n;;; with-let support\n\n(defn with-let-destroy [v]\n  (when-some [f (.-destroy v)]\n    (f)))\n\n(defn with-let-values [key]\n  (if-some [c *ratom-context*]\n    (cached-reaction array c key nil with-let-destroy)\n    (array)))\n\n\n;;;; reaction\n\n(defprotocol IDisposable\n  (dispose! [this])\n  (add-on-dispose! [this f]))\n\n(defprotocol IRunnable\n  (run [this]))\n\n(defn- handle-reaction-change [^clj this sender old new]\n  (._handle-change this sender old new))\n\n;; Fields of a Reaction javascript object\n;; - auto_run\n;; - captured\n;; - caught\n;; - f\n;; - ratomGeneration\n;; - state\n;; - watches\n;; - watching\n(deftype Reaction [f ^:mutable state ^:mutable ^boolean dirty? ^boolean nocache?\n                   ^:mutable watching ^:mutable watches ^:mutable auto-run\n                   ^:mutable caught]\n  IAtom\n  IReactiveAtom\n\n  IWatchable\n  (-notify-watches [this old new] (notify-w this old new))\n  (-add-watch [this key f]        (add-w this key f))\n  (-remove-watch [this key]\n    (let [was-empty (empty? watches)]\n      (remove-w this key)\n      (when (and (not was-empty)\n                 (empty? watches)\n                 (nil? auto-run))\n        (dispose! this))))\n\n  IReset\n  (-reset! [a newval]\n    (assert (fn? (.-on-set a)) \"Reaction is read only; on-set is not allowed\")\n    (let [oldval state]\n      (set! state newval)\n      (.on-set a oldval newval)\n      (notify-w a oldval newval)\n      newval))\n\n  ISwap\n  (-swap! [a f]          (-reset! a (f (._peek-at a))))\n  (-swap! [a f x]        (-reset! a (f (._peek-at a) x)))\n  (-swap! [a f x y]      (-reset! a (f (._peek-at a) x y)))\n  (-swap! [a f x y more] (-reset! a (apply f (._peek-at a) x y more)))\n\n  Object\n  (_peek-at [this]\n    (binding [*ratom-context* nil]\n      (-deref this)))\n\n  (_handle-change [this sender oldval newval]\n    (when-not (or (identical? oldval newval)\n                  dirty?)\n      (if (nil? auto-run)\n        (do\n          (set! dirty? true)\n          (rea-enqueue this))\n        (if (true? auto-run)\n          (._run this false)\n          (auto-run this)))))\n\n  (_update-watching [this derefed]\n    (let [new (set derefed)\n          old (set watching)]\n      (set! watching derefed)\n      (doseq [w (s/difference new old)]\n        (-add-watch w this handle-reaction-change))\n      (doseq [w (s/difference old new)]\n        (-remove-watch w this))))\n\n  (_queued-run [this]\n    (when (and dirty? (some? watching))\n      (._run this true)))\n\n  (_try-capture [this f]\n    (try\n      (set! caught nil)\n      (deref-capture f this)\n      (catch :default e\n        (set! state e)\n        (set! caught e)\n        (set! dirty? false))))\n\n  (_run [this check]\n    (let [oldstate state\n          res (if check\n                (._try-capture this f)\n                (deref-capture f this))]\n      (when-not nocache?\n        (set! state res)\n        ;; Use = to determine equality from reactions, since\n        ;; they are likely to produce new data structures.\n        (when-not (or (nil? watches)\n                      (= oldstate res))\n          (notify-w this oldstate res)))\n      res))\n\n  (_set-opts [this {:keys [auto-run on-set on-dispose no-cache]}]\n    (when (some? auto-run)\n      (set! (.-auto-run this) auto-run))\n    (when (some? on-set)\n      (set! (.-on-set this) on-set))\n    (when (some? on-dispose)\n      (set! (.-on-dispose this) on-dispose))\n    (when (some? no-cache)\n      (set! (.-nocache? this) no-cache)))\n\n  IRunnable\n  (run [this]\n    (flush!)\n    (._run this false))\n\n  IDeref\n  (-deref [this]\n    (when-some [e caught]\n      (throw e))\n    (let [non-reactive (nil? *ratom-context*)]\n      (when non-reactive\n        (flush!))\n      (if (and non-reactive (nil? auto-run))\n        (when dirty?\n          (let [oldstate state]\n            (set! state (f))\n            (when-not (or (nil? watches) (= oldstate state))\n              (notify-w this oldstate state))))\n        (do\n          (notify-deref-watcher! this)\n          (when dirty?\n            (._run this false)))))\n    state)\n\n  IDisposable\n  (dispose! [this]\n    (let [s state\n          wg watching]\n      (set! watching nil)\n      (set! state nil)\n      (set! auto-run nil)\n      (set! dirty? true)\n      (doseq [w (set wg)]\n        (-remove-watch w this))\n      (when (some? (.-on-dispose this))\n        (.on-dispose this s))\n      (when-some [a (.-on-dispose-arr this)]\n        (dotimes [i (alength a)]\n          ((aget a i) this)))))\n\n  (add-on-dispose! [this f]\n    ;; f is called with the reaction as argument when it is no longer active\n    (if-some [a (.-on-dispose-arr this)]\n      (.push a f)\n      (set! (.-on-dispose-arr this) (array f))))\n\n  IEquiv\n  (-equiv [o other] (identical? o other))\n\n  IPrintWithWriter\n  (-pr-writer [a w opts] (pr-atom a w opts \"Reaction\" {:val (-deref a)}))\n\n  IHash\n  (-hash [this] (goog/getUid this)))\n\n\n(defn make-reaction [f & {:keys [auto-run on-set on-dispose]}]\n  (let [reaction (->Reaction f nil true false nil nil nil nil)]\n    (._set-opts reaction {:auto-run auto-run\n                          :on-set on-set\n                          :on-dispose on-dispose})\n    reaction))\n\n\n\n(def ^:private temp-reaction (make-reaction nil))\n\n\n(defn run-in-reaction\n  \"Evaluates `f` and returns the result.  If `f` calls `deref` on any ratoms,\n   creates a new Reaction that watches those atoms and calls `run` whenever\n   any of those watched ratoms change.  Also, the new reaction is added to\n   list of 'watches' of each of the ratoms. The `run` parameter is a function\n   that should expect one argument.  It is passed `obj` when run.  The `opts`\n   are any options accepted by a Reaction and will be set on the newly created\n   Reaction. Sets the newly created Reaction to the `key` on `obj`.\"\n  [f obj key run opts]\n  (let [r temp-reaction\n        res (deref-capture f r)]\n    (when-not (nil? (.-watching r))\n      (set! temp-reaction (make-reaction nil))\n      (._set-opts r opts)\n      (set! (.-f r) f)\n      (set! (.-auto-run r) #(run obj))\n      (obj/set obj key r))\n    res))\n\n(defn check-derefs [f]\n  (let [ctx (js-obj)\n        res (in-context ctx f)]\n    [res (some? (.-captured ctx))]))\n\n\n;;; wrap\n\n(deftype Wrapper [^:mutable state callback ^:mutable ^boolean changed\n                  ^:mutable watches]\n\n  IAtom\n\n  IDeref\n  (-deref [this]\n    (when (dev?)\n      (when (and changed (some? *ratom-context*))\n        (warn \"derefing stale wrap: \"\n              (pr-str this))))\n    state)\n\n  IReset\n  (-reset! [this newval]\n    (let [oldval state]\n      (set! changed true)\n      (set! state newval)\n      (when (some? watches)\n        (notify-w this oldval newval))\n      (callback newval)\n      newval))\n\n  ISwap\n  (-swap! [a f]          (-reset! a (f state)))\n  (-swap! [a f x]        (-reset! a (f state x)))\n  (-swap! [a f x y]      (-reset! a (f state x y)))\n  (-swap! [a f x y more] (-reset! a (apply f state x y more)))\n\n  IEquiv\n  (-equiv [_ ^clj other]\n          (and (instance? Wrapper other)\n               ;; If either of the wrappers have changed, equality\n               ;; cannot be relied on.\n               (not changed)\n               (not (.-changed other))\n               (= state (.-state other))\n               (= callback (.-callback other))))\n\n  IWatchable\n  (-notify-watches [this old new] (notify-w this old new))\n  (-add-watch [this key f]        (add-w this key f))\n  (-remove-watch [this key]       (remove-w this key))\n\n  IPrintWithWriter\n  (-pr-writer [a w opts] (pr-atom a w opts \"Wrapper\" {:val (-deref a)})))\n\n(defn make-wrapper [value callback-fn args]\n  (->Wrapper value\n             (util/make-partial-fn callback-fn args)\n             false nil))\n\n\n\n\n#_(do\n  (defn ratom-perf []\n    (set! debug false)\n    (dotimes [_ 10]\n      (let [nite 100000\n            a (atom 0)\n            f (fn []\n                (quot @a 10))\n            mid (make-reaction f)\n            res (track! (fn []\n                          ;; (with-let [x 1])\n                          ;; @(track f)\n                          (inc @mid)\n                          ))]\n        @res\n        (time (dotimes [x nite]\n                (swap! a inc)\n                (flush!)))\n        (dispose! res))))\n  (ratom-perf))\n","~:reader-features",["^I",["~:cljs"]],"~:cljc",false,"~:source-map-compact",["^ ","mappings","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","names",["js/reagent","js/reagent.ratom","js/reagent.ratom.debug","reagent.ratom/debug","js/reagent.ratom.generation","reagent.ratom/generation","js/reagent.ratom.-running","reagent.ratom/-running","cljs.core.atom","reagent.ratom/reactive?","reagent.ratom/*ratom-context*","reagent.ratom/running","cljs.core/deref","reagent.ratom/arr-len","x","reagent.ratom/arr-eq","y","len","i","or__4126__auto__","reagent.ratom/in-context","obj","f","*ratom-context*-orig-val__45107","*ratom-context*-temp-val__45108","reagent.ratom/deref-capture","r","res","c","reagent.ratom/notify-deref-watcher!","derefed","temp__5739__auto__","reagent.ratom/check-watches","old","new","cljs.core.swap_BANG_","cljs.core/+","cljs.core/count","reagent.ratom/add-w","this","key","w","cljs.core.assoc","reagent.ratom/remove-w","cljs.core.dissoc","reagent.ratom/notify-w","a","p1__45165#","p2__45166#","p3__45167#","cljs.core/reduce-kv","G__45170","k","reagent.ratom/pr-atom","writer","opts","s","v","cljs.core/-write","cljs.core/pr-writer","*ratom-context*-orig-val__45173","*ratom-context*-temp-val__45174","js/reagent.ratom.rea-queue","reagent.ratom/rea-queue","reagent.ratom/rea-enqueue","reagent.impl.batching/schedule","reagent.ratom/flush!","q","n__4613__auto__","reagent.impl.batching/ratom-flush","reagent.ratom/IReactiveAtom","cljs.core/PROTOCOL_SENTINEL","this__4369__auto__","writer__4370__auto__","opt__4371__auto__","reagent.ratom/RAtom","reagent.ratom/->RAtom","state","meta","validator","watches","o","other","new-value","js/Error","old-value","more","cljs.core.apply","_","new-meta","goog/getUid","var_args","G__45207","reagent.ratom/atom","args-arr__4757__auto__","len__4736__auto__","i__4737__auto__","argseq__4758__auto__","cljs.core/IndexedSeq","p__45213","map__45215","cljs.core/hash-map","cljs.core.get","seq45203","G__45204","cljs.core/first","cljs.core/next","self__4723__auto__","reagent.ratom/cached-reaction","destroy","m","cljs.core/-deref","G__45239","G__45240","G__45241","reagent.ratom/make-reaction","cljs.core/dec","cljs.core/inc","reagent.ratom/Track","reagent.ratom/->Track","args","reaction","temp__5737__auto__","cljs.core._EQ_","cljs.core/hash","reagent.ratom/make-track","reagent.ratom/make-track!","t","G__45276","G__45277","G__45278","args__4742__auto__","argseq__4743__auto__","reagent.ratom/track","seq45281","G__45282","cljs.core/ifn?","reagent.ratom/track!","seq45291","G__45292","reagent.ratom/RCursor","reagent.ratom/->RCursor","ratom","path","*ratom-context*-orig-val__45309","*ratom-context*-temp-val__45310","oldstate","newstate","cljs.core/native-satisfies?","cljs.core/IDeref","cljs.core.get_in","cljs.core/reset!","cljs.core/assoc-in","G__45328","G__45333","G__45334","G__45335","G__45336","G__45337","reagent.ratom/cursor","src","cljs.core/vector?","cljs.core.pr_str","reagent.ratom/with-let-destroy","reagent.ratom/with-let-values","cljs.core/array","reagent$ratom$IDisposable$dispose_BANG_$dyn","x__4428__auto__","m__4429__auto__","reagent.ratom/dispose!","goog/typeOf","m__4426__auto__","cljs.core/missing-protocol","reagent$ratom$IDisposable$add_on_dispose_BANG_$dyn","reagent.ratom/add-on-dispose!","reagent.ratom/IDisposable","reagent$ratom$IRunnable$run$dyn","reagent.ratom/run","reagent.ratom/IRunnable","reagent.ratom/handle-reaction-change","sender","p__45439","map__45440","reagent.ratom/Reaction","reagent.ratom/->Reaction","dirty?","nocache?","watching","auto-run","caught","was-empty","cljs.core/empty?","newval","cljs.core/fn?","oldval","G__45472","G__45473","G__45474","G__45476","G__45477","G__45478","*ratom-context*-orig-val__45392","*ratom-context*-temp-val__45393","cljs.core/set","seq__45398","cljs.core/seq","chunk__45399","count__45400","i__45401","temp__5735__auto__","cljs.core/chunked-seq?","c__4556__auto__","cljs.core/chunk-first","cljs.core/chunk-rest","clojure.set.difference","cljs.core/-add-watch","seq__45420","chunk__45421","count__45422","i__45423","cljs.core/-remove-watch","e45437","e","check","on-set","on-dispose","no-cache","non-reactive","wg","seq__45448","chunk__45449","count__45450","i__45451","fexpr__45464","p__45508","map__45510","seq45499","G__45500","reagent.ratom/temp-reaction","reagent.ratom/run-in-reaction","run","goog.object/set","reagent.ratom/check-derefs","ctx","reagent.ratom/Wrapper","reagent.ratom/->Wrapper","callback","changed","reagent.debug/has-console","reagent.debug/tracking","reagent.debug/track-console","js/console","cljs.core/not","reagent.ratom/make-wrapper","value","callback-fn","reagent.impl.util/make-partial-fn"]],"~:used-vars",["^I",["~$cljs.core/PROTOCOL_SENTINEL","~$reagent.ratom/check-derefs","~$reagent.ratom/generation","~$reagent.ratom/make-track!","~$reagent.ratom/run","~$reagent.ratom/remove-w","~$js/reagent.ratom.debug","~$cljs.core/vector?","~$cljs.core/=","~$cljs.core/ifn?","~$js/reagent.ratom.-running","~$reagent.ratom/->RAtom","~$cljs.core/-write","~$cljs.core/-deref","~$cljs.core/pr-writer","~$cljs.core/hash","~$cljs.core/-reset!","~$cljs.core/count","~$cljs.core/deref","~$reagent.ratom/arr-len","~$cljs.core/apply","~$js/reagent.ratom.generation","~$goog/getUid","~$reagent.ratom/flush!","~$reagent.ratom/notify-deref-watcher!","~$cljs.core/dissoc","~$reagent.ratom/check-watches","~$reagent.ratom/with-let-destroy","~$cljs.core/chunk-rest","~$cljs.core/atom","~$reagent.ratom/debug","~$reagent.ratom/rea-enqueue","~$reagent.debug/has-console","~$js/reagent","~$cljs.core/pr-str","~$reagent.ratom/RCursor","~$js/console","~$reagent.ratom/make-wrapper","~$cljs.core/native-satisfies?","~$cljs.core/empty?","~$reagent.ratom/IReactiveAtom","~$reagent.ratom/track","~$reagent.impl.util/make-partial-fn","~$cljs.core/reset!","~$reagent.ratom/cached-reaction","~$reagent.ratom/Wrapper","~$cljs.core/-add-watch","~$reagent.ratom/track!","~$reagent.ratom/dispose!","~$js/reagent.ratom.rea-queue","~$reagent.ratom/->Reaction","~$reagent.ratom/running","~$reagent.ratom/make-reaction","~$reagent.ratom/IRunnable","~$reagent.ratom/notify-w","~$cljs.core/fn?","~$reagent.ratom/rea-queue","~$reagent.ratom/add-on-dispose!","~$reagent.impl.batching/ratom-flush","~$cljs.core/swap!","~$js/reagent.ratom","~$reagent.ratom/arr-eq","~$reagent.ratom/handle-reaction-change","~$goog.object/set","~$reagent.ratom/temp-reaction","~$reagent.debug/tracking","~$cljs.core/-remove-watch","~$reagent.debug/track-console","~$reagent.ratom/run-in-reaction","~$reagent.ratom/->Track","~$reagent.impl.batching/schedule","~$cljs.core/next","~$reagent.ratom/*ratom-context*","~$reagent.ratom/IDisposable","~$reagent.ratom/->Wrapper","~$reagent.ratom/Track","~$cljs.core/IDeref","~$reagent.ratom/cursor","~$cljs.core/not","~$reagent.ratom/make-track","~$reagent.ratom/add-w","~$cljs.core/assoc","~$cljs.core/assoc-in","~$reagent.ratom/-running","~$reagent.ratom/Reaction","~$reagent.ratom/RAtom","~$reagent.ratom/reactive?","~$reagent.ratom/atom","~$reagent.ratom/deref-capture","~$cljs.core/+","~$cljs.core/array","~$js/Error","~$reagent.ratom/in-context","~$reagent.ratom/with-let-values","~$cljs.core/inc","~$reagent.ratom/->RCursor","~$cljs.core/chunked-seq?","~$reagent.ratom/pr-atom"]]],"~:cache-keys",["~#cmap",[["^1I","reagent/impl/batching.cljs"],["71172e9be671755156730f86af647b7c667093fa","~:shadow.build.compiler/resolve",["^ ","~:require-id",null,"~:deps-ids",["^I",[]],"~:deps-syms",["^16","^15","^F","^12"]]],["^1I","goog/dom/tagname.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","~$goog.dom.HtmlElement"]]],["^1I","goog/math/math.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","~$goog.array","~$goog.asserts"]]],["^1I","goog/html/trustedtypes.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16"]]],["^1I","goog/labs/useragent/browser.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4:","~$goog.labs.userAgent.util","^14","~$goog.string.internal"]]],["^1I","goog/html/safeurl.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4;","~$goog.fs.url","~$goog.html.TrustedResourceUrl","~$goog.i18n.bidi.Dir","~$goog.i18n.bidi.DirectionalString","~$goog.string.Const","~$goog.string.TypedString","^4="]]],["^1I","goog/array/array.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4;"]]],["^1I","reagent/impl/util.cljs"],["71172e9be671755156730f86af647b7c667093fa","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^15","~$clojure.string","~$clojure.walk","^14","^F"]]],["^1I","goog/debug/error.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16"]]],["^1I","goog/dom/nodetype.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16"]]],["^1I","reagent/ratom.cljs"],["71172e9be671755156730f86af647b7c667093fa","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^15","^12","^F","^17","^18","^14"]]],["^1I","goog/string/typedstring.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16"]]],["^1I","goog/object/object.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16"]]],["^1I","goog/dom/asserts.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4;"]]],"~:SHADOW-TIMESTAMP",[1598798247000,1598798247000,1592608845000],["^1I","goog/math/long.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4;","~$goog.reflect"]]],["^1I","goog/html/trustedresourceurl.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4;","~$goog.html.trustedtypes","^4@","^4A","^4B","^4C"]]],["^1I","goog/string/internal.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16"]]],["^1I","goog/functions/functions.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16"]]],["^1I","goog/html/safestyle.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4:","^4;","~$goog.html.SafeUrl","^4B","^4C","^4="]]],["^1I","goog/dom/safe.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4;","~$goog.dom.asserts","~$goog.functions","~$goog.html.SafeHtml","~$goog.html.SafeScript","~$goog.html.SafeStyle","^4I","^4?","~$goog.html.uncheckedconversions","^4B","^4="]]],["^1I","clojure/walk.cljs"],["9f9729dbbf9b814c83dc189977b447d2ae92b6cd","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^15"]]],["^1I","goog/structs/map.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","~$goog.iter.Iterator","~$goog.iter.StopIteration"]]],["^1I","goog/html/safehtml.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4:","^4;","~$goog.dom.TagName","~$goog.dom.tags","^4M","^4N","~$goog.html.SafeStyleSheet","^4I","^4?","^4H","^4@","^4A","~$goog.labs.userAgent.browser","^14","^4B","^4C","^4="]]],["^1I","goog/dom/tags.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^14"]]],["^1I","goog/asserts/asserts.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","~$goog.debug.Error","~$goog.dom.NodeType"]]],["^1I","goog/uri/uri.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4:","^4;","~$goog.string","~$goog.structs","~$goog.structs.Map","~$goog.uri.utils","~$goog.uri.utils.ComponentIndex","~$goog.uri.utils.StandardQueryParam"]]],["^1I","goog/i18n/bidi.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16"]]],["^1I","goog/fs/url.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16"]]],["^1I","goog/base.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",[]]],["^1I","goog/structs/structs.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4:","^14"]]],["^1I","clojure/string.cljs"],["9f9729dbbf9b814c83dc189977b447d2ae92b6cd","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^15","^4X","~$goog.string.StringBuffer"]]],["^1I","goog/string/string.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","~$goog.dom.safe","^4O","^4B","^4="]]],["^1I","goog/reflect/reflect.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16"]]],["^1I","goog/labs/useragent/util.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4="]]],["^1I","goog/string/stringbuffer.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16"]]],["^1I","goog/iter/iter.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4:","^4;","^4K","~$goog.math"]]],["^1I","goog/html/uncheckedconversions.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4;","^4L","^4M","^4N","^4T","^4I","^4?","^4B","^4="]]],["^1I","goog/dom/htmlelement.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16"]]],["^1I","cljs/core.cljs"],["9f9729dbbf9b814c83dc189977b447d2ae92b6cd","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","~$goog.math.Long","~$goog.math.Integer","^4X","^14","^4:","~$goog.Uri","^52"]]],["^1I","goog/html/safescript.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4;","^4H","^4B","^4C"]]],["^1I","reagent/debug.cljs"],["71172e9be671755156730f86af647b7c667093fa","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^15"]]],["^1I","goog/html/safestylesheet.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4:","^4;","^4N","^14","^4B","^4C","^4="]]],["^1I","goog/math/integer.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4G"]]],["^1I","clojure/set.cljs"],["9f9729dbbf9b814c83dc189977b447d2ae92b6cd","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^15"]]],["^1I","goog/uri/utils.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4:","^4;","^4X"]]],["^1I","goog/string/const.js"],["6025affb7181cd40418600864f58eed1ea80055d","^45",["^ ","^46",null,"^47",["^I",[]],"^48",["^16","^4;","^4C"]]]]],"~:clj-info",["^ ","jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/env.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/analyzer.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader/default_data_readers.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/string.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader/impl/errors.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/pprint.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/externs.clj",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/core.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/instant.clj",1592060007000,"jar:file:/home/justin/.m2/repository/reagent/reagent/1.0.0-alpha2/reagent-1.0.0-alpha2.jar!/reagent/ratom.clj",1592063583000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/set.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader/reader_types.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/edn.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader.clj",1598798245000,"jar:file:/home/justin/.m2/repository/reagent/reagent/1.0.0-alpha2/reagent-1.0.0-alpha2.jar!/reagent/debug.clj",1592063583000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader/impl/inspect.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/data.json/1.0.0/data.json-1.0.0.jar!/clojure/data/json.clj",1592063582000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/util.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/source_map/base64_vlq.clj",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/js_deps.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/java/io.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/compiler.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/reagent/reagent/1.0.0-alpha2/reagent-1.0.0-alpha2.jar!/reagent/interop.clj",1592063583000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/tagged_literals.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/core.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/source_map.clj",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/source_map/base64.clj",1592608845000],"~:analyzer",["^ ","^3",null,"^4",["^ "],"^5",["^ ","^6","reagent/ratom.cljs","^7",1,"^8",5,"^9",1,"^:",18],"^;",["^ ","^<","^=","^>","^?","^@","^A","^B","^C"],"~:shadow/protocol-prefixes",["^I",["reagent$ratom$IRunnable$","reagent$ratom$IDisposable$"]],"^D",["^ ","^E","^F","^G","^F"],"^H",["^I",["^J"]],"^K",["^ ","^L",["^ ","^M",["^N",[["^O","~$&","^P"]]],"^7",18,"^8",1,"^6","reagent/ratom.clj","^Q","^R","^S","^T","^U",true],"^V",["^ ","^M",["^N",[["~$&","^P"]]],"^7",6,"^8",1,"^6","reagent/ratom.clj","^Q","^W","^S","^T","^U",true],"^X",["^ ","^M",["^N",[["~$&","^P"]]],"^Y","Runs body immediately, and runs again whenever atoms deferenced in the body change. Body should side effect.","^7",10,"^8",1,"^6","reagent/ratom.clj","^Q","^Z","^S","^T","^U",true]],"~:shadow/js-access-properties",["^I",["_run","_peek-at","_update-watching","_queued-run","_set-opts","_peek","_set-state","_handle-change","_try-capture"]],"^Q","^T","^10",null,"^11",["^ ","^12","^12","^13","^14","^15","^15","^16","^16","^14","^14","^17","^17","^18","^18","^19","^12","~$s","^18","^1:","^17","^F","^F"],"^1;",["^I",["^1<","^1="]],"~:shadow/js-access-global",["^I",["Error"]],"^1>",null,"~:defs",["^ ","~$pr-atom",["^ ","~:protocol-inline",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",105,"^8",8,"^9",105,"^:",15,"~:private",true,"^M",["^N",["~$quote",["^N",[["~$a","~$writer","~$opts","~$s","~$v"]]]]]],"^5[",true,"^Q","^42","^6","reagent/ratom.cljs","^:",15,"~:method-params",["^N",[["~$a","^61","^62","~$s","~$v"]]],"~:protocol-impl",null,"~:arglists-meta",["^N",[null,null]],"^8",1,"~:variadic?",false,"^7",105,"~:ret-tag","~$any","^9",105,"~:max-fixed-arity",5,"~:fn-var",true,"^M",["^N",["^60",["^N",[["~$a","^61","^62","~$s","~$v"]]]]]],"~$->RCursor",["^ ","^5Z",null,"^5",["^ ","~:protocols",["^I",["~$cljs.core/IWatchable","~$cljs.core/IAtom","~$cljs.core/IEquiv","~$cljs.core/IHash","~$cljs.core/Object","~$cljs.core/IReset","~$cljs.core/ISwap","^2Q","^3I","~$cljs.core/IPrintWithWriter"]],"^6","reagent/ratom.cljs","^:",17,"^8",10,"~:factory","~:positional","^7",258,"^9",258,"^M",["^N",["^60",["^N",[["~$ratom","~$path","^V","~$state","~$watches"]]]]],"~:skip-protocol-flag",["^I",["^6=","^6>","^6?","^6@","^6B","^6C","^3I","^6D"]],"^Y","Positional factory function for reagent.ratom/RCursor."],"^6<",["^I",["^6=","^6>","^6?","^6@","^6A","^6B","^6C","^2Q","^3I","^6D"]],"^Q","^40","^6","reagent/ratom.cljs","^:",17,"^63",["^N",[["^6G","^6H","^V","^6I","^6J"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^6E","^6F","^7",258,"^67","^2L","^9",258,"^69",5,"^6:",true,"^M",["^N",["^60",["^N",[["^6G","^6H","^V","^6I","^6J"]]]]],"^6K",["^I",["^6=","^6>","^6?","^6@","^6B","^6C","^3I","^6D"]],"^Y","Positional factory function for reagent.ratom/RCursor."],"~$notify-deref-watcher!",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",63,"^8",8,"^9",63,"^:",29,"^5[",true,"^M",["^N",["^60",["^N",[["~$derefed"]]]]],"^Y","Add `derefed` to the `captured` field of `*ratom-context*`.\n\n  See also `in-context`"],"^5[",true,"^Q","^2A","^6","reagent/ratom.cljs","^:",29,"^63",["^N",[["^6M"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",63,"^67",["^I",[null,"^68","~$clj-nil"]],"^9",63,"^69",1,"^6:",true,"^M",["^N",["^60",["^N",[["^6M"]]]]],"^Y","Add `derefed` to the `captured` field of `*ratom-context*`.\n\n  See also `in-context`"],"~$rea-enqueue",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",115,"^8",8,"^9",115,"^:",19,"^5[",true,"^M",["^N",["^60",["^N",[["~$r"]]]]]],"^5[",true,"^Q","^2H","^6","reagent/ratom.cljs","^:",19,"^63",["^N",[["~$r"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",115,"^67","^68","^9",115,"^69",1,"^6:",true,"^M",["^N",["^60",["^N",[["~$r"]]]]]],"~$in-context",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",36,"^8",8,"^9",36,"^:",18,"^5[",true,"^M",["^N",["^60",["^N",[["^13","~$f"]]]]],"^Y","When f is executed, if (f) derefs any ratoms, they are then added to 'obj.captured'(*ratom-context*).\n\n  See function notify-deref-watcher! to know how *ratom-context* is updated"],"^5[",true,"^Q","^3Y","^6","reagent/ratom.cljs","^:",18,"^63",["^N",[["^13","~$f"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",36,"^9",36,"^69",2,"^6:",true,"^M",["^N",["^60",["^N",[["^13","~$f"]]]]],"^Y","When f is executed, if (f) derefs any ratoms, they are then added to 'obj.captured'(*ratom-context*).\n\n  See function notify-deref-watcher! to know how *ratom-context* is updated"],"~$make-track",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",238,"^8",7,"^9",238,"^:",17,"^M",["^N",["^60",["^N",[["~$f","~$args"]]]]]],"^Q","^3L","^6","reagent/ratom.cljs","^:",17,"^63",["^N",[["~$f","^6R"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",238,"^67","^3H","^9",238,"^69",2,"^6:",true,"^M",["^N",["^60",["^N",[["~$f","^6R"]]]]]],"~$RAtom",["^ ","~:num-fields",4,"^6<",["^I",["^6=","^6>","^6?","^6@","^6B","^6C","^2Q","~$cljs.core/IMeta","^3I","^6D","~$cljs.core/IWithMeta"]],"^Q","^3R","^6","reagent/ratom.cljs","^:",15,"~:type",true,"^8",10,"^7",137,"~:record",false,"^9",137,"~:tag","~$function","^6K",["^I",["^6=","^6>","^6?","^6@","^6B","^6C","^6U","^3I","^6D","^6V"]]],"^J",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",182,"^8",7,"^9",182,"^:",11,"^M",["^N",["^60",["^N",[["~$x"],["~$x","~$&",["^ ","~:keys",["~$meta","~$validator"]]]]]]],"^Y","Like clojure.core/atom, except that it keeps track of derefs.","~:top-fn",["^ ","^66",true,"~:fixed-arity",1,"^69",1,"^63",[["~$x"]],"^M",["^N",[["~$x"],["~$x","~$&",["^ ","^6[",["^70","^71"]]]]],"^65",["^N",[null,null]]]],"^Q","^3T","^6","reagent/ratom.cljs","^:",11,"^72",["^ ","^66",true,"^73",1,"^69",1,"^63",[["~$x"]],"^M",["^N",[["~$x"],["~$x","~$&",["^ ","^6[",["^70","^71"]]]]],"^65",["^N",[null,null]]],"^63",[["~$x"]],"^64",null,"^73",1,"^65",["^N",[null,null]],"^8",1,"^66",true,"~:methods",[["^ ","^73",1,"^66",false,"^6Y","^3R"],["^ ","^73",1,"^66",true,"^6Y","^3R"]],"^7",182,"^9",182,"^69",1,"^6:",true,"^M",["^N",[["~$x"],["~$x","~$&",["^ ","^6[",["^70","^71"]]]]],"^Y","Like clojure.core/atom, except that it keeps track of derefs."],"~$notify-w",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",89,"^8",8,"^9",89,"^:",16,"^5[",true,"^M",["^N",["^60",["^N",[["~$this","~$old","~$new"]]]]]],"^5[",true,"^Q","^33","^6","reagent/ratom.cljs","^:",16,"^63",["^N",[["^76","^77","^78"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",89,"^67","^6N","^9",89,"^69",3,"^6:",true,"^M",["^N",["^60",["^N",[["^76","^77","^78"]]]]]],"~$->Reaction",["^ ","^5Z",null,"^5",["^ ","^6<",["^I",["^6=","^6>","^6?","^6@","^6A","^6B","^6C","^2Q","^32","^3F","^3I","^6D"]],"^6","reagent/ratom.cljs","^:",18,"^8",10,"^6E","^6F","^7",366,"^9",366,"^M",["^N",["^60",["^N",[["~$f","^6I","~$dirty?","~$nocache?","~$watching","^6J","~$auto-run","~$caught"]]]]],"^6K",["^I",["^6=","^6>","^6?","^6@","^6B","^6C","^3I","^6D"]],"^Y","Positional factory function for reagent.ratom/Reaction."],"^6<",["^I",["^6=","^6>","^6?","^6@","^6A","^6B","^6C","^2Q","^32","^3F","^3I","^6D"]],"^Q","^2[","^6","reagent/ratom.cljs","^:",18,"^63",["^N",[["~$f","^6I","^7:","^7;","^7<","^6J","^7=","^7>"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^6E","^6F","^7",366,"^67","^3Q","^9",366,"^69",8,"^6:",true,"^M",["^N",["^60",["^N",[["~$f","^6I","^7:","^7;","^7<","^6J","^7=","^7>"]]]]],"^6K",["^I",["^6=","^6>","^6?","^6@","^6B","^6C","^3I","^6D"]],"^Y","Positional factory function for reagent.ratom/Reaction."],"~$make-wrapper",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",602,"^8",7,"^9",602,"^:",19,"^M",["^N",["^60",["^N",[["~$value","~$callback-fn","^6R"]]]]]],"^Q","^2N","^6","reagent/ratom.cljs","^:",19,"^63",["^N",[["^7@","^7A","^6R"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",602,"^67","^2V","^9",602,"^69",3,"^6:",true,"^M",["^N",["^60",["^N",[["^7@","^7A","^6R"]]]]]],"~$IReactiveAtom",["^ ","^5",["^ ","~:protocol-symbol",true,"^6","reagent/ratom.cljs","^:",27,"^8",14,"^7",135,"~:protocol-info",["^ ","^74",["^ "]],"^9",135,"~:sigs",["^ "],"~:jsdoc",["^N",["@interface"]]],"^7C",true,"^Q","^2Q","^6","reagent/ratom.cljs","^:",27,"^8",1,"^7",135,"^7D",["^ ","^74",["^ "]],"~:info",null,"^9",135,"^6Y","^68","^7E",["^ "],"~:impls",["^I",["^2L","^3H","^3Q","^3R"]],"^7F",["^N",["@interface"]]],"~$track",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",248,"^8",7,"^9",248,"^:",12,"^M",["^N",["^60",["^N",[["~$f","~$&","^6R"]]]]],"^72",["^ ","^66",true,"^73",1,"^69",1,"^63",[["^N",["~$f","^6R"]]],"^M",["^N",[["~$f","~$&","^6R"]]],"^65",["^N",[null]]]],"^Q","^2R","^6","reagent/ratom.cljs","^:",12,"^72",["^ ","^66",true,"^73",1,"^69",1,"^63",[["^N",["~$f","^6R"]]],"^M",["^N",[["~$f","~$&","^6R"]]],"^65",["^N",[null]]],"^63",[["^N",["~$f","^6R"]]],"^64",null,"^73",1,"^65",["^N",[null]],"^8",1,"^66",true,"^74",[["^ ","^73",1,"^66",true,"^6Y","^3H"]],"^7",248,"^67","^68","^9",248,"^69",1,"^6:",true,"^M",["^N",[["~$f","~$&","^6R"]]]],"~$dispose!",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",348,"^8",4,"^9",348,"^:",12,"~:protocol","^3F","^Y",null,"^M",["^N",["^60",["^N",[["^76"]]]]]],"^7K","^3F","^Q","^2Y","^6","reagent/ratom.cljs","^:",12,"^63",["^N",[["^76"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",347,"^67","^68","^9",348,"^69",1,"^6:",true,"^M",["^N",["^60",["^N",[["^76"]]]]],"^Y",null],"~$arr-eq",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",27,"^8",17,"^9",27,"^:",23,"^6Y","~$boolean","^5[",true,"^M",["^N",["^60",["^N",[["~$x","~$y"]]]]]],"^5[",true,"^Q","^3:","^6","reagent/ratom.cljs","^:",23,"^63",["^N",[["~$x","~$y"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",27,"^67","^7M","^9",27,"^69",2,"^6Y","^7M","^6:",true,"^M",["^N",["^60",["^N",[["~$x","~$y"]]]]]],"~$handle-reaction-change",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",354,"^8",8,"^9",354,"^:",30,"^5[",true,"^M",["^N",["^60",["^N",[["^76","~$sender","^77","^78"]]]]]],"^5[",true,"^Q","^3;","^6","reagent/ratom.cljs","^:",30,"^63",["^N",[["^76","^7O","^77","^78"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",354,"^67","^68","^9",354,"^69",4,"^6:",true,"^M",["^N",["^60",["^N",[["^76","^7O","^77","^78"]]]]]],"~$run",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",352,"^8",4,"^9",352,"^:",7,"^7K","^32","^Y",null,"^M",["^N",["^60",["^N",[["^76"]]]]]],"^7K","^32","^Q","^1Y","^6","reagent/ratom.cljs","^:",7,"^63",["^N",[["^76"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",351,"^67","^68","^9",352,"^69",1,"^6:",true,"^M",["^N",["^60",["^N",[["^76"]]]]],"^Y",null],"~$add-on-dispose!",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",349,"^8",4,"^9",349,"^:",19,"^7K","^3F","^Y",null,"^M",["^N",["^60",["^N",[["^76","~$f"]]]]]],"^7K","^3F","^Q","^36","^6","reagent/ratom.cljs","^:",19,"^63",["^N",[["^76","~$f"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",347,"^67","^68","^9",349,"^69",2,"^6:",true,"^M",["^N",["^60",["^N",[["^76","~$f"]]]]],"^Y",null],"~$temp-reaction",["^ ","^5",["^ ","^6","reagent/ratom.cljs","^7",525,"^8",16,"^9",525,"^:",29,"^5[",true],"^5[",true,"^Q","^3=","^6","reagent/ratom.cljs","^:",29,"^8",1,"^7",525,"^9",525,"^6Y","^3Q"],"~$make-track!",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",241,"^8",7,"^9",241,"^:",18,"^M",["^N",["^60",["^N",[["~$f","^6R"]]]]]],"^Q","^1X","^6","reagent/ratom.cljs","^:",18,"^63",["^N",[["~$f","^6R"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",241,"^67","^68","^9",241,"^69",2,"^6:",true,"^M",["^N",["^60",["^N",[["~$f","^6R"]]]]]],"~$generation",["^ ","^5",["^ ","^6","reagent/ratom.cljs","^7",12,"^8",20,"^9",12,"^:",30,"^5[",true],"^5[",true,"^Q","^1W","^6","reagent/ratom.cljs","^:",30,"^8",1,"^7",12,"^9",12,"^6Y","~$number"],"~$run-in-reaction",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",528,"^8",7,"^9",528,"^:",22,"^M",["^N",["^60",["^N",[["~$f","^13","~$key","^7P","^62"]]]]],"^Y","Evaluates `f` and returns the result.  If `f` calls `deref` on any ratoms,\n   creates a new Reaction that watches those atoms and calls `run` whenever\n   any of those watched ratoms change.  Also, the new reaction is added to\n   list of 'watches' of each of the ratoms. The `run` parameter is a function\n   that should expect one argument.  It is passed `obj` when run.  The `opts`\n   are any options accepted by a Reaction and will be set on the newly created\n   Reaction. Sets the newly created Reaction to the `key` on `obj`."],"^Q","^3A","^6","reagent/ratom.cljs","^:",22,"^63",["^N",[["~$f","^13","^7W","^7P","^62"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",528,"^67","^68","^9",528,"^69",5,"^6:",true,"^M",["^N",["^60",["^N",[["~$f","^13","^7W","^7P","^62"]]]]],"^Y","Evaluates `f` and returns the result.  If `f` calls `deref` on any ratoms,\n   creates a new Reaction that watches those atoms and calls `run` whenever\n   any of those watched ratoms change.  Also, the new reaction is added to\n   list of 'watches' of each of the ratoms. The `run` parameter is a function\n   that should expect one argument.  It is passed `obj` when run.  The `opts`\n   are any options accepted by a Reaction and will be set on the newly created\n   Reaction. Sets the newly created Reaction to the `key` on `obj`."],"~$IDisposable",["^ ","^5",["^ ","^7C",true,"^6","reagent/ratom.cljs","^:",25,"^8",14,"^7",347,"^7D",["^ ","^74",["^ ","^7J",[["^76"]],"^7Q",[["^76","~$f"]]]],"^9",347,"^7E",["^ ","~:dispose!",["^ ","^Q","^7J","^M",["^N",[["^76"]]],"^Y",null],"~:add-on-dispose!",["^ ","^Q","^7Q","^M",["^N",[["^76","~$f"]]],"^Y",null]],"^7F",["^N",["@interface"]]],"^7C",true,"^Q","^3F","^6","reagent/ratom.cljs","^:",25,"^8",1,"^7",347,"^7D",["^ ","^74",["^ ","^7J",[["^76"]],"^7Q",[["^76","~$f"]]]],"^7G",null,"^9",347,"^6Y","^68","^7E",["^ ","^7Y",["^ ","^Q","^7J","^M",["^N",[["^76"]]],"^Y",null],"^7Z",["^ ","^Q","^7Q","^M",["^N",[["^76","~$f"]]],"^Y",null]],"^7H",["^I",["^3Q"]],"^7F",["^N",["@interface"]]],"~$check-watches",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",74,"^8",8,"^9",74,"^:",21,"^5[",true,"^M",["^N",["^60",["^N",[["^77","^78"]]]]]],"^5[",true,"^Q","^2C","^6","reagent/ratom.cljs","^:",21,"^63",["^N",[["^77","^78"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",74,"^9",74,"^69",2,"^6:",true,"^M",["^N",["^60",["^N",[["^77","^78"]]]]]],"~$with-let-destroy",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",335,"^8",7,"^9",335,"^:",23,"^M",["^N",["^60",["^N",[["~$v"]]]]]],"^Q","^2D","^6","reagent/ratom.cljs","^:",23,"^63",["^N",[["~$v"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",335,"^67",["^I",["^68","^6N"]],"^9",335,"^69",1,"^6:",true,"^M",["^N",["^60",["^N",[["~$v"]]]]]],"~$make-reaction",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",516,"^8",7,"^9",516,"^:",20,"^M",["^N",["^60",["^N",[["~$f","~$&",["^ ","^6[",["^7=","~$on-set","~$on-dispose"]]]]]]],"^72",["^ ","^66",true,"^73",1,"^69",1,"^63",[["^N",["~$f",["^ ","^6[",["^7=","^82","^83"]]]]],"^M",["^N",[["~$f","~$&",["^ ","^6[",["^7=","^82","^83"]]]]],"^65",["^N",[null]]]],"^Q","^31","^6","reagent/ratom.cljs","^:",20,"^72",["^ ","^66",true,"^73",1,"^69",1,"^63",[["^N",["~$f",["^ ","^6[",["^7=","^82","^83"]]]]],"^M",["^N",[["~$f","~$&",["^ ","^6[",["^7=","^82","^83"]]]]],"^65",["^N",[null]]],"^63",[["^N",["~$f",["^ ","^6[",["^7=","^82","^83"]]]]],"^64",null,"^73",1,"^65",["^N",[null]],"^8",1,"^66",true,"^74",[["^ ","^73",1,"^66",true,"^6Y","^3Q"]],"^7",516,"^67","^68","^9",516,"^69",1,"^6:",true,"^M",["^N",[["~$f","~$&",["^ ","^6[",["^7=","^82","^83"]]]]]],"~$add-w",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",79,"^8",8,"^9",79,"^:",13,"^5[",true,"^M",["^N",["^60",["^N",[["^76","^7W","~$f"]]]]]],"^5[",true,"^Q","^3M","^6","reagent/ratom.cljs","^:",13,"^63",["^N",[["^76","^7W","~$f"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",79,"^9",79,"^69",3,"^6:",true,"^M",["^N",["^60",["^N",[["^76","^7W","~$f"]]]]]],"~$Reaction",["^ ","^6T",8,"^6<",["^I",["^6=","^6>","^6?","^6@","^6A","^6B","^6C","^2Q","^32","^3F","^3I","^6D"]],"^Q","^3Q","^6","reagent/ratom.cljs","^:",18,"^6W",true,"^8",10,"^7",366,"^6X",false,"^9",366,"^6Y","^6Z","^6K",["^I",["^6=","^6>","^6?","^6@","^6B","^6C","^3I","^6D"]]],"~$flush!",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",121,"^8",7,"^9",121,"^:",13,"^M",["^N",["^60",["^N",[[]]]]]],"^Q","^2@","^6","reagent/ratom.cljs","^:",13,"^63",["^N",[[]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",121,"^67","^6N","^9",121,"^69",0,"^6:",true,"^M",["^N",["^60",["^N",[[]]]]]],"~$RCursor",["^ ","^6T",5,"^6<",["^I",["^6=","^6>","^6?","^6@","^6A","^6B","^6C","^2Q","^3I","^6D"]],"^Q","^2L","^6","reagent/ratom.cljs","^:",17,"^6W",true,"^8",10,"^7",258,"^6X",false,"^9",258,"^6Y","^6Z","^6K",["^I",["^6=","^6>","^6?","^6@","^6B","^6C","^3I","^6D"]]],"~$cached-reaction",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",192,"^8",8,"^9",192,"^:",23,"^5[",true,"^M",["^N",["^60",["^N",[["~$f","~$o","~$k","^13","~$destroy"]]]]]],"^5[",true,"^Q","^2U","^6","reagent/ratom.cljs","^:",23,"^63",["^N",[["~$f","~$o","~$k","^13","^89"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",192,"^67","^68","^9",192,"^69",5,"^6:",true,"^M",["^N",["^60",["^N",[["~$f","~$o","~$k","^13","^89"]]]]]],"~$Track",["^ ","^6T",3,"^6<",["^I",["^6?","^6@","^2Q","^3I","^6D"]],"^Q","^3H","^6","reagent/ratom.cljs","^:",15,"^6W",true,"^8",10,"^7",216,"^6X",false,"^9",216,"^6Y","^6Z","^6K",["^I",["^6?","^6@","^3I","^6D"]]],"~$debug",["^ ","^Q","^2G","^6","reagent/ratom.cljs","^7",11,"^8",1,"^9",11,"^:",24,"^6Y","^7M","^5",["^ ","^6","reagent/ratom.cljs","^7",11,"^8",19,"^9",11,"^:",24,"^6Y","^7M"]],"~$-running",["^ ","^5",["^ ","^6","reagent/ratom.cljs","^7",13,"^8",20,"^9",13,"^:",28,"^5[",true],"^5[",true,"^Q","^3P","^6","reagent/ratom.cljs","^:",28,"^8",1,"^7",13,"^9",13,"^6Y","~$cljs.core/Atom"],"~$cursor",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",321,"^8",7,"^9",321,"^:",13,"^M",["^N",["^60",["^N",[["~$src","^6H"]]]]]],"^Q","^3J","^6","reagent/ratom.cljs","^:",13,"^63",["^N",[["^8?","^6H"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",321,"^67","^2L","^9",321,"^69",2,"^6:",true,"^M",["^N",["^60",["^N",[["^8?","^6H"]]]]]],"~$Wrapper",["^ ","^6T",4,"^6<",["^I",["^6=","^6>","^6?","^6B","^6C","^3I","^6D"]],"^Q","^2V","^6","reagent/ratom.cljs","^:",17,"^6W",true,"^8",10,"^7",555,"^6X",false,"^9",555,"^6Y","^6Z","^6K",["^I",["^6=","^6>","^6?","^6B","^6C","^3I","^6D"]]],"~$running",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",21,"^8",7,"^9",21,"^:",14,"^M",["^N",["^60",["^N",[[]]]]]],"^Q","^30","^6","reagent/ratom.cljs","^:",14,"^63",["^N",[[]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",21,"^67","^7U","^9",21,"^69",0,"^6:",true,"^M",["^N",["^60",["^N",[[]]]]]],"~$IRunnable",["^ ","^5",["^ ","^7C",true,"^6","reagent/ratom.cljs","^:",23,"^8",14,"^7",351,"^7D",["^ ","^74",["^ ","^7P",[["^76"]]]],"^9",351,"^7E",["^ ","~:run",["^ ","^Q","^7P","^M",["^N",[["^76"]]],"^Y",null]],"^7F",["^N",["@interface"]]],"^7C",true,"^Q","^32","^6","reagent/ratom.cljs","^:",23,"^8",1,"^7",351,"^7D",["^ ","^74",["^ ","^7P",[["^76"]]]],"^7G",null,"^9",351,"^6Y","^68","^7E",["^ ","^8C",["^ ","^Q","^7P","^M",["^N",[["^76"]]],"^Y",null]],"^7H",["^I",["^3Q"]],"^7F",["^N",["@interface"]]],"~$reactive?",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",15,"^8",16,"^9",15,"^:",25,"^6Y","^7M","^M",["^N",["^60",["^N",[[]]]]]],"^Q","^3S","^6","reagent/ratom.cljs","^:",25,"^63",["^N",[[]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",15,"^67","^7M","^9",15,"^69",0,"^6Y","^7M","^6:",true,"^M",["^N",["^60",["^N",[[]]]]]],"~$deref-capture",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",44,"^8",8,"^9",44,"^:",21,"^5[",true,"^M",["^N",["^60",["^N",[["~$f","~$r"]]]]],"^Y","Returns `(in-context f r)`.  Calls `_update-watching` on r with any\n  `deref`ed atoms captured during `in-context`, if any differ from the\n  `watching` field of r.  Clears the `dirty?` flag on r.\n\n  Inside '_update-watching' along with adding the ratoms in 'r.watching' of reaction,\n  the reaction is also added to the list of watches on each ratoms f derefs."],"^5[",true,"^Q","^3U","^6","reagent/ratom.cljs","^:",21,"^63",["^N",[["~$f","~$r"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",44,"^67","^68","^9",44,"^69",2,"^6:",true,"^M",["^N",["^60",["^N",[["~$f","~$r"]]]]],"^Y","Returns `(in-context f r)`.  Calls `_update-watching` on r with any\n  `deref`ed atoms captured during `in-context`, if any differ from the\n  `watching` field of r.  Clears the `dirty?` flag on r.\n\n  Inside '_update-watching' along with adding the ratoms in 'r.watching' of reaction,\n  the reaction is also added to the list of watches on each ratoms f derefs."],"~$rea-queue",["^ ","^5",["^ ","^6","reagent/ratom.cljs","^7",113,"^8",20,"^9",113,"^:",29,"^5[",true],"^5[",true,"^Q","^35","^6","reagent/ratom.cljs","^:",29,"^8",1,"^7",113,"^9",113,"^6Y","^6N"],"~$with-let-values",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",339,"^8",7,"^9",339,"^:",22,"^M",["^N",["^60",["^N",[["^7W"]]]]]],"^Q","^3Z","^6","reagent/ratom.cljs","^:",22,"^63",["^N",[["^7W"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",339,"^67",["^I",["^68","~$array"]],"^9",339,"^69",1,"^6:",true,"^M",["^N",["^60",["^N",[["^7W"]]]]]],"~$track!",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",252,"^8",7,"^9",252,"^:",13,"^M",["^N",["^60",["^N",[["~$f","~$&","^6R"]]]]],"^72",["^ ","^66",true,"^73",1,"^69",1,"^63",[["^N",["~$f","^6R"]]],"^M",["^N",[["~$f","~$&","^6R"]]],"^65",["^N",[null]]]],"^Q","^2X","^6","reagent/ratom.cljs","^:",13,"^72",["^ ","^66",true,"^73",1,"^69",1,"^63",[["^N",["~$f","^6R"]]],"^M",["^N",[["~$f","~$&","^6R"]]],"^65",["^N",[null]]],"^63",[["^N",["~$f","^6R"]]],"^64",null,"^73",1,"^65",["^N",[null]],"^8",1,"^66",true,"^74",[["^ ","^73",1,"^66",true,"^6Y","^68"]],"^7",252,"^67","^68","^9",252,"^69",1,"^6:",true,"^M",["^N",[["~$f","~$&","^6R"]]]],"~$*ratom-context*",["^ ","^5",["^ ","^6","reagent/ratom.cljs","^7",10,"^8",20,"^9",10,"^:",35,"~:dynamic",true,"~:declared",true],"^Q","^3E","^6","reagent/ratom.cljs","^:",35,"^8",1,"^8K",true,"^7",10,"^8L",true,"^9",10,"^6Y","^68"],"~$check-derefs",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",547,"^8",7,"^9",547,"^:",19,"^M",["^N",["^60",["^N",[["~$f"]]]]]],"^Q","^1V","^6","reagent/ratom.cljs","^:",19,"^63",["^N",[["~$f"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",547,"^67","~$cljs.core/IVector","^9",547,"^69",1,"^6:",true,"^M",["^N",["^60",["^N",[["~$f"]]]]]],"~$remove-w",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",84,"^8",8,"^9",84,"^:",16,"^5[",true,"^M",["^N",["^60",["^N",[["^76","^7W"]]]]]],"^5[",true,"^Q","^1Z","^6","reagent/ratom.cljs","^:",16,"^63",["^N",[["^76","^7W"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",84,"^9",84,"^69",2,"^6:",true,"^M",["^N",["^60",["^N",[["^76","^7W"]]]]]],"~$->Wrapper",["^ ","^5Z",null,"^5",["^ ","^6<",["^I",["^6=","^6>","^6?","^6B","^6C","^3I","^6D"]],"^6","reagent/ratom.cljs","^:",17,"^8",10,"^6E","^6F","^7",555,"^9",555,"^M",["^N",["^60",["^N",[["^6I","~$callback","~$changed","^6J"]]]]],"^6K",["^I",["^6=","^6>","^6?","^6B","^6C","^3I","^6D"]],"^Y","Positional factory function for reagent.ratom/Wrapper."],"^6<",["^I",["^6=","^6>","^6?","^6B","^6C","^3I","^6D"]],"^Q","^3G","^6","reagent/ratom.cljs","^:",17,"^63",["^N",[["^6I","^8Q","^8R","^6J"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^6E","^6F","^7",555,"^67","^2V","^9",555,"^69",4,"^6:",true,"^M",["^N",["^60",["^N",[["^6I","^8Q","^8R","^6J"]]]]],"^6K",["^I",["^6=","^6>","^6?","^6B","^6C","^3I","^6D"]],"^Y","Positional factory function for reagent.ratom/Wrapper."],"~$arr-len",["^ ","^5Z",null,"^5",["^ ","^6","reagent/ratom.cljs","^7",24,"^8",16,"^9",24,"^:",23,"^6Y","^7U","^5[",true,"^M",["^N",["^60",["^N",[["~$x"]]]]]],"^5[",true,"^Q","^2<","^6","reagent/ratom.cljs","^:",23,"^63",["^N",[["~$x"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^7",24,"^67","^7U","^9",24,"^69",1,"^6Y","^7U","^6:",true,"^M",["^N",["^60",["^N",[["~$x"]]]]]],"~$->RAtom",["^ ","^5Z",null,"^5",["^ ","^6<",["^I",["^6=","^6>","^6?","^6@","^6B","^6C","^2Q","^6U","^3I","^6D","^6V"]],"^6","reagent/ratom.cljs","^:",15,"^8",10,"^6E","^6F","^7",137,"^9",137,"^M",["^N",["^60",["^N",[["^6I","^70","^71","^6J"]]]]],"^6K",["^I",["^6=","^6>","^6?","^6@","^6B","^6C","^6U","^3I","^6D","^6V"]],"^Y","Positional factory function for reagent.ratom/RAtom."],"^6<",["^I",["^6=","^6>","^6?","^6@","^6B","^6C","^2Q","^6U","^3I","^6D","^6V"]],"^Q","^24","^6","reagent/ratom.cljs","^:",15,"^63",["^N",[["^6I","^70","^71","^6J"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^6E","^6F","^7",137,"^67","^3R","^9",137,"^69",4,"^6:",true,"^M",["^N",["^60",["^N",[["^6I","^70","^71","^6J"]]]]],"^6K",["^I",["^6=","^6>","^6?","^6@","^6B","^6C","^6U","^3I","^6D","^6V"]],"^Y","Positional factory function for reagent.ratom/RAtom."],"~$->Track",["^ ","^5Z",null,"^5",["^ ","^6<",["^I",["^6?","^6@","^2Q","^3I","^6D"]],"^6","reagent/ratom.cljs","^:",15,"^8",10,"^6E","^6F","^7",216,"^9",216,"^M",["^N",["^60",["^N",[["~$f","^6R","^V"]]]]],"^6K",["^I",["^6?","^6@","^3I","^6D"]],"^Y","Positional factory function for reagent.ratom/Track."],"^6<",["^I",["^6?","^6@","^2Q","^3I","^6D"]],"^Q","^3B","^6","reagent/ratom.cljs","^:",15,"^63",["^N",[["~$f","^6R","^V"]]],"^64",null,"^65",["^N",[null,null]],"^8",1,"^66",false,"^6E","^6F","^7",216,"^67","^3H","^9",216,"^69",3,"^6:",true,"^M",["^N",["^60",["^N",[["~$f","^6R","^V"]]]]],"^6K",["^I",["^6?","^6@","^3I","^6D"]],"^Y","Positional factory function for reagent.ratom/Track."]],"^1=",["^ ","^T","^T","^F","^F","^15","^15"],"~:cljs.analyzer/constants",["^ ","^1;",["^I",["~:path","~:on-set","^7>","^7<","^7M","^V","^8Q","^5","~:else","^6H","^6R","~:validator","^6J","^70","~:val","^71","^7:","~:no-cache","^6G","^6I","~:auto-run","~:on-dispose","~:f","^6Y","~:mutable","^8R","^7=","^7;","~$f"]],"~:order",["^8[","^6I","^93","^70","^71","^6J","^5","^8Z","^8Y","^92","~:f","~$f","^6R","^V","^91","^8W","^6G","^6H","^8X","^90","^7:","^6Y","^7M","^7;","^7<","^7=","^7>","^8Q","^8R"]],"^1E",["^ ","^1=",["^I",[]],"^1<",["^I",[]]],"^1F",["^ "],"^1G",["^16","^15","^12","^F","^17","^18","^14"]],"^S","^T","~:ns-specs",["^ "],"~:ns-spec-vars",["^I",[]],"~:compiler-options",["^44",[["^97","~:static-fns"],true,["^97","~:shadow-tweaks"],null,["^97","~:source-map-inline"],null,["^97","~:elide-asserts"],false,["^97","~:optimize-constants"],null,["^97","^1L"],null,["^97","~:external-config"],null,["^97","~:tooling-config"],null,["^97","~:emit-constants"],null,["^97","~:load-tests"],null,["^97","~:form-size-threshold"],null,["^97","~:data-readers"],null,["^97","~:infer-externs"],"~:auto",["^97","^1N"],null,["~:js-options","~:js-provider"],"^1<",["~:mode"],"~:dev",["^97","~:fn-invoke-direct"],null,["^97","~:source-map"],"/dev/null"]]]