UNPKG

mini-program-cljs

Version:

1 lines 343 kB
["^ ","~:output",["^ ","~:js","goog.provide('datascript.query');\ndatascript.query.lru_cache_size = (100);\n\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ndatascript.query.Context = (function (rels,sources,rules,__meta,__extmap,__hash){\nthis.rels = rels;\nthis.sources = sources;\nthis.rules = rules;\nthis.__meta = __meta;\nthis.__extmap = __extmap;\nthis.__hash = __hash;\nthis.cljs$lang$protocol_mask$partition0$ = 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ = 139264;\n});\n(datascript.query.Context.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__4439__auto__,k__4440__auto__){\nvar self__ = this;\nvar this__4439__auto____$1 = this;\nreturn this__4439__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__4440__auto__,null);\n}));\n\n(datascript.query.Context.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__4441__auto__,k25097,else__4442__auto__){\nvar self__ = this;\nvar this__4441__auto____$1 = this;\nvar G__25101 = k25097;\nvar G__25101__$1 = (((G__25101 instanceof cljs.core.Keyword))?G__25101.fqn:null);\nswitch (G__25101__$1) {\ncase \"rels\":\nreturn self__.rels;\n\nbreak;\ncase \"sources\":\nreturn self__.sources;\n\nbreak;\ncase \"rules\":\nreturn self__.rules;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k25097,else__4442__auto__);\n\n}\n}));\n\n(datascript.query.Context.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__4458__auto__,f__4459__auto__,init__4460__auto__){\nvar self__ = this;\nvar this__4458__auto____$1 = this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__4461__auto__,p__25102){\nvar vec__25103 = p__25102;\nvar k__4462__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25103,(0),null);\nvar v__4463__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25103,(1),null);\nreturn (f__4459__auto__.cljs$core$IFn$_invoke$arity$3 ? f__4459__auto__.cljs$core$IFn$_invoke$arity$3(ret__4461__auto__,k__4462__auto__,v__4463__auto__) : f__4459__auto__.call(null,ret__4461__auto__,k__4462__auto__,v__4463__auto__));\n}),init__4460__auto__,this__4458__auto____$1);\n}));\n\n(datascript.query.Context.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__4453__auto__,writer__4454__auto__,opts__4455__auto__){\nvar self__ = this;\nvar this__4453__auto____$1 = this;\nvar pr_pair__4456__auto__ = (function (keyval__4457__auto__){\nreturn cljs.core.pr_sequential_writer(writer__4454__auto__,cljs.core.pr_writer,\"\",\" \",\"\",opts__4455__auto__,keyval__4457__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__4454__auto__,pr_pair__4456__auto__,\"#datascript.query.Context{\",\", \",\"}\",opts__4455__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),self__.rels],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),self__.sources],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366),self__.rules],null))], null),self__.__extmap));\n}));\n\n(datascript.query.Context.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__25096){\nvar self__ = this;\nvar G__25096__$1 = this;\nreturn (new cljs.core.RecordIter((0),G__25096__$1,3,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(datascript.query.Context.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__4437__auto__){\nvar self__ = this;\nvar this__4437__auto____$1 = this;\nreturn self__.__meta;\n}));\n\n(datascript.query.Context.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__4434__auto__){\nvar self__ = this;\nvar this__4434__auto____$1 = this;\nreturn (new datascript.query.Context(self__.rels,self__.sources,self__.rules,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(datascript.query.Context.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__4443__auto__){\nvar self__ = this;\nvar this__4443__auto____$1 = this;\nreturn (3 + cljs.core.count(self__.__extmap));\n}));\n\n(datascript.query.Context.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__4435__auto__){\nvar self__ = this;\nvar this__4435__auto____$1 = this;\nvar h__4297__auto__ = self__.__hash;\nif((!((h__4297__auto__ == null)))){\nreturn h__4297__auto__;\n} else {\nvar h__4297__auto____$1 = (function (coll__4436__auto__){\nreturn (1014232958 ^ cljs.core.hash_unordered_coll(coll__4436__auto__));\n})(this__4435__auto____$1);\n(self__.__hash = h__4297__auto____$1);\n\nreturn h__4297__auto____$1;\n}\n}));\n\n(datascript.query.Context.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this25098,other25099){\nvar self__ = this;\nvar this25098__$1 = this;\nreturn (((!((other25099 == null)))) && ((this25098__$1.constructor === other25099.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25098__$1.rels,other25099.rels)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25098__$1.sources,other25099.sources)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25098__$1.rules,other25099.rules)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25098__$1.__extmap,other25099.__extmap)));\n}));\n\n(datascript.query.Context.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__4448__auto__,k__4449__auto__){\nvar self__ = this;\nvar this__4448__auto____$1 = this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),null,new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366),null,new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),null], null), null),k__4449__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__4448__auto____$1),self__.__meta),k__4449__auto__);\n} else {\nreturn (new datascript.query.Context(self__.rels,self__.sources,self__.rules,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__4449__auto__)),null));\n}\n}));\n\n(datascript.query.Context.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__4446__auto__,k__4447__auto__,G__25096){\nvar self__ = this;\nvar this__4446__auto____$1 = this;\nvar pred__25106 = cljs.core.keyword_identical_QMARK_;\nvar expr__25107 = k__4447__auto__;\nif(cljs.core.truth_((pred__25106.cljs$core$IFn$_invoke$arity$2 ? pred__25106.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),expr__25107) : pred__25106.call(null,new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),expr__25107)))){\nreturn (new datascript.query.Context(G__25096,self__.sources,self__.rules,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__25106.cljs$core$IFn$_invoke$arity$2 ? pred__25106.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),expr__25107) : pred__25106.call(null,new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),expr__25107)))){\nreturn (new datascript.query.Context(self__.rels,G__25096,self__.rules,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__25106.cljs$core$IFn$_invoke$arity$2 ? pred__25106.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366),expr__25107) : pred__25106.call(null,new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366),expr__25107)))){\nreturn (new datascript.query.Context(self__.rels,self__.sources,G__25096,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new datascript.query.Context(self__.rels,self__.sources,self__.rules,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__4447__auto__,G__25096),null));\n}\n}\n}\n}));\n\n(datascript.query.Context.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__4451__auto__){\nvar self__ = this;\nvar this__4451__auto____$1 = this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),self__.rels,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),self__.sources,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366),self__.rules,null))], null),self__.__extmap));\n}));\n\n(datascript.query.Context.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__4438__auto__,G__25096){\nvar self__ = this;\nvar this__4438__auto____$1 = this;\nreturn (new datascript.query.Context(self__.rels,self__.sources,self__.rules,G__25096,self__.__extmap,self__.__hash));\n}));\n\n(datascript.query.Context.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__4444__auto__,entry__4445__auto__){\nvar self__ = this;\nvar this__4444__auto____$1 = this;\nif(cljs.core.vector_QMARK_(entry__4445__auto__)){\nreturn this__4444__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__4445__auto__,(0)),cljs.core._nth(entry__4445__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__4444__auto____$1,entry__4445__auto__);\n}\n}));\n\n(datascript.query.Context.getBasis = (function (){\nreturn new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\"rels\",\"rels\",-884248584,null),new cljs.core.Symbol(null,\"sources\",\"sources\",1319365103,null),new cljs.core.Symbol(null,\"rules\",\"rules\",-1455523403,null)], null);\n}));\n\n(datascript.query.Context.cljs$lang$type = true);\n\n(datascript.query.Context.cljs$lang$ctorPrSeq = (function (this__4482__auto__){\nreturn (new cljs.core.List(null,\"datascript.query/Context\",null,(1),null));\n}));\n\n(datascript.query.Context.cljs$lang$ctorPrWriter = (function (this__4482__auto__,writer__4483__auto__){\nreturn cljs.core._write(writer__4483__auto__,\"datascript.query/Context\");\n}));\n\n/**\n * Positional factory function for datascript.query/Context.\n */\ndatascript.query.__GT_Context = (function datascript$query$__GT_Context(rels,sources,rules){\nreturn (new datascript.query.Context(rels,sources,rules,null,null,null));\n});\n\n/**\n * Factory function for datascript.query/Context, taking a map of keywords to field values.\n */\ndatascript.query.map__GT_Context = (function datascript$query$map__GT_Context(G__25100){\nvar extmap__4478__auto__ = (function (){var G__25109 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__25100,new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424),new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366)], 0));\nif(cljs.core.record_QMARK_(G__25100)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__25109);\n} else {\nreturn G__25109;\n}\n})();\nreturn (new datascript.query.Context(new cljs.core.Keyword(null,\"rels\",\"rels\",1770187185).cljs$core$IFn$_invoke$arity$1(G__25100),new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424).cljs$core$IFn$_invoke$arity$1(G__25100),new cljs.core.Keyword(null,\"rules\",\"rules\",1198912366).cljs$core$IFn$_invoke$arity$1(G__25100),null,cljs.core.not_empty(extmap__4478__auto__),null));\n});\n\n\n/**\n* @constructor\n * @implements {cljs.core.IRecord}\n * @implements {cljs.core.IKVReduce}\n * @implements {cljs.core.IEquiv}\n * @implements {cljs.core.IHash}\n * @implements {cljs.core.ICollection}\n * @implements {cljs.core.ICounted}\n * @implements {cljs.core.ISeqable}\n * @implements {cljs.core.IMeta}\n * @implements {cljs.core.ICloneable}\n * @implements {cljs.core.IPrintWithWriter}\n * @implements {cljs.core.IIterable}\n * @implements {cljs.core.IWithMeta}\n * @implements {cljs.core.IAssociative}\n * @implements {cljs.core.IMap}\n * @implements {cljs.core.ILookup}\n*/\ndatascript.query.Relation = (function (attrs,tuples,__meta,__extmap,__hash){\nthis.attrs = attrs;\nthis.tuples = tuples;\nthis.__meta = __meta;\nthis.__extmap = __extmap;\nthis.__hash = __hash;\nthis.cljs$lang$protocol_mask$partition0$ = 2230716170;\nthis.cljs$lang$protocol_mask$partition1$ = 139264;\n});\n(datascript.query.Relation.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__4439__auto__,k__4440__auto__){\nvar self__ = this;\nvar this__4439__auto____$1 = this;\nreturn this__4439__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__4440__auto__,null);\n}));\n\n(datascript.query.Relation.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__4441__auto__,k25112,else__4442__auto__){\nvar self__ = this;\nvar this__4441__auto____$1 = this;\nvar G__25116 = k25112;\nvar G__25116__$1 = (((G__25116 instanceof cljs.core.Keyword))?G__25116.fqn:null);\nswitch (G__25116__$1) {\ncase \"attrs\":\nreturn self__.attrs;\n\nbreak;\ncase \"tuples\":\nreturn self__.tuples;\n\nbreak;\ndefault:\nreturn cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k25112,else__4442__auto__);\n\n}\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__4458__auto__,f__4459__auto__,init__4460__auto__){\nvar self__ = this;\nvar this__4458__auto____$1 = this;\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__4461__auto__,p__25117){\nvar vec__25118 = p__25117;\nvar k__4462__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25118,(0),null);\nvar v__4463__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25118,(1),null);\nreturn (f__4459__auto__.cljs$core$IFn$_invoke$arity$3 ? f__4459__auto__.cljs$core$IFn$_invoke$arity$3(ret__4461__auto__,k__4462__auto__,v__4463__auto__) : f__4459__auto__.call(null,ret__4461__auto__,k__4462__auto__,v__4463__auto__));\n}),init__4460__auto__,this__4458__auto____$1);\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__4453__auto__,writer__4454__auto__,opts__4455__auto__){\nvar self__ = this;\nvar this__4453__auto____$1 = this;\nvar pr_pair__4456__auto__ = (function (keyval__4457__auto__){\nreturn cljs.core.pr_sequential_writer(writer__4454__auto__,cljs.core.pr_writer,\"\",\" \",\"\",opts__4455__auto__,keyval__4457__auto__);\n});\nreturn cljs.core.pr_sequential_writer(writer__4454__auto__,pr_pair__4456__auto__,\"#datascript.query.Relation{\",\", \",\"}\",opts__4455__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),self__.attrs],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639),self__.tuples],null))], null),self__.__extmap));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__25111){\nvar self__ = this;\nvar G__25111__$1 = this;\nreturn (new cljs.core.RecordIter((0),G__25111__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter())));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__4437__auto__){\nvar self__ = this;\nvar this__4437__auto____$1 = this;\nreturn self__.__meta;\n}));\n\n(datascript.query.Relation.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__4434__auto__){\nvar self__ = this;\nvar this__4434__auto____$1 = this;\nreturn (new datascript.query.Relation(self__.attrs,self__.tuples,self__.__meta,self__.__extmap,self__.__hash));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__4443__auto__){\nvar self__ = this;\nvar this__4443__auto____$1 = this;\nreturn (2 + cljs.core.count(self__.__extmap));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__4435__auto__){\nvar self__ = this;\nvar this__4435__auto____$1 = this;\nvar h__4297__auto__ = self__.__hash;\nif((!((h__4297__auto__ == null)))){\nreturn h__4297__auto__;\n} else {\nvar h__4297__auto____$1 = (function (coll__4436__auto__){\nreturn (1107093117 ^ cljs.core.hash_unordered_coll(coll__4436__auto__));\n})(this__4435__auto____$1);\n(self__.__hash = h__4297__auto____$1);\n\nreturn h__4297__auto____$1;\n}\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this25113,other25114){\nvar self__ = this;\nvar this25113__$1 = this;\nreturn (((!((other25114 == null)))) && ((this25113__$1.constructor === other25114.constructor)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25113__$1.attrs,other25114.attrs)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25113__$1.tuples,other25114.tuples)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this25113__$1.__extmap,other25114.__extmap)));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__4448__auto__,k__4449__auto__){\nvar self__ = this;\nvar this__4448__auto____$1 = this;\nif(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639),null,new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),null], null), null),k__4449__auto__)){\nreturn cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__4448__auto____$1),self__.__meta),k__4449__auto__);\n} else {\nreturn (new datascript.query.Relation(self__.attrs,self__.tuples,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__4449__auto__)),null));\n}\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__4446__auto__,k__4447__auto__,G__25111){\nvar self__ = this;\nvar this__4446__auto____$1 = this;\nvar pred__25122 = cljs.core.keyword_identical_QMARK_;\nvar expr__25123 = k__4447__auto__;\nif(cljs.core.truth_((pred__25122.cljs$core$IFn$_invoke$arity$2 ? pred__25122.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),expr__25123) : pred__25122.call(null,new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),expr__25123)))){\nreturn (new datascript.query.Relation(G__25111,self__.tuples,self__.__meta,self__.__extmap,null));\n} else {\nif(cljs.core.truth_((pred__25122.cljs$core$IFn$_invoke$arity$2 ? pred__25122.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639),expr__25123) : pred__25122.call(null,new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639),expr__25123)))){\nreturn (new datascript.query.Relation(self__.attrs,G__25111,self__.__meta,self__.__extmap,null));\n} else {\nreturn (new datascript.query.Relation(self__.attrs,self__.tuples,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__4447__auto__,G__25111),null));\n}\n}\n}));\n\n(datascript.query.Relation.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__4451__auto__){\nvar self__ = this;\nvar this__4451__auto____$1 = this;\nreturn cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),self__.attrs,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639),self__.tuples,null))], null),self__.__extmap));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__4438__auto__,G__25111){\nvar self__ = this;\nvar this__4438__auto____$1 = this;\nreturn (new datascript.query.Relation(self__.attrs,self__.tuples,G__25111,self__.__extmap,self__.__hash));\n}));\n\n(datascript.query.Relation.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__4444__auto__,entry__4445__auto__){\nvar self__ = this;\nvar this__4444__auto____$1 = this;\nif(cljs.core.vector_QMARK_(entry__4445__auto__)){\nreturn this__4444__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__4445__auto__,(0)),cljs.core._nth(entry__4445__auto__,(1)));\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__4444__auto____$1,entry__4445__auto__);\n}\n}));\n\n(datascript.query.Relation.getBasis = (function (){\nreturn new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\"attrs\",\"attrs\",-450137186,null),new cljs.core.Symbol(null,\"tuples\",\"tuples\",964498888,null)], null);\n}));\n\n(datascript.query.Relation.cljs$lang$type = true);\n\n(datascript.query.Relation.cljs$lang$ctorPrSeq = (function (this__4482__auto__){\nreturn (new cljs.core.List(null,\"datascript.query/Relation\",null,(1),null));\n}));\n\n(datascript.query.Relation.cljs$lang$ctorPrWriter = (function (this__4482__auto__,writer__4483__auto__){\nreturn cljs.core._write(writer__4483__auto__,\"datascript.query/Relation\");\n}));\n\n/**\n * Positional factory function for datascript.query/Relation.\n */\ndatascript.query.__GT_Relation = (function datascript$query$__GT_Relation(attrs,tuples){\nreturn (new datascript.query.Relation(attrs,tuples,null,null,null));\n});\n\n/**\n * Factory function for datascript.query/Relation, taking a map of keywords to field values.\n */\ndatascript.query.map__GT_Relation = (function datascript$query$map__GT_Relation(G__25115){\nvar extmap__4478__auto__ = (function (){var G__25125 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__25115,new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639)], 0));\nif(cljs.core.record_QMARK_(G__25115)){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__25125);\n} else {\nreturn G__25125;\n}\n})();\nreturn (new datascript.query.Relation(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713).cljs$core$IFn$_invoke$arity$1(G__25115),new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639).cljs$core$IFn$_invoke$arity$1(G__25115),null,cljs.core.not_empty(extmap__4478__auto__),null));\n});\n\ndatascript.query.single = (function datascript$query$single(coll){\n\nreturn cljs.core.first(coll);\n});\ndatascript.query.intersect_keys = (function datascript$query$intersect_keys(attrs1,attrs2){\nreturn clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(attrs1)),cljs.core.set(cljs.core.keys(attrs2)));\n});\ndatascript.query.concatv = (function datascript$query$concatv(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___25565 = arguments.length;\nvar i__4790__auto___25566 = (0);\nwhile(true){\nif((i__4790__auto___25566 < len__4789__auto___25565)){\nargs__4795__auto__.push((arguments[i__4790__auto___25566]));\n\nvar G__25567 = (i__4790__auto___25566 + (1));\ni__4790__auto___25566 = G__25567;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((0) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((0)),(0),null)):null);\nreturn datascript.query.concatv.cljs$core$IFn$_invoke$arity$variadic(argseq__4796__auto__);\n});\n\n(datascript.query.concatv.cljs$core$IFn$_invoke$arity$variadic = (function (xs){\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.cat,xs);\n}));\n\n(datascript.query.concatv.cljs$lang$maxFixedArity = (0));\n\n/** @this {Function} */\n(datascript.query.concatv.cljs$lang$applyTo = (function (seq25126){\nvar self__4777__auto__ = this;\nreturn self__4777__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq25126));\n}));\n\ndatascript.query.zip = (function datascript$query$zip(var_args){\nvar G__25132 = arguments.length;\nswitch (G__25132) {\ncase 2:\nreturn datascript.query.zip.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__4810__auto__ = [];\nvar len__4789__auto___25571 = arguments.length;\nvar i__4790__auto___25572 = (0);\nwhile(true){\nif((i__4790__auto___25572 < len__4789__auto___25571)){\nargs_arr__4810__auto__.push((arguments[i__4790__auto___25572]));\n\nvar G__25573 = (i__4790__auto___25572 + (1));\ni__4790__auto___25572 = G__25573;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4811__auto__ = (new cljs.core.IndexedSeq(args_arr__4810__auto__.slice((2)),(0),null));\nreturn datascript.query.zip.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4811__auto__);\n\n}\n});\n\n(datascript.query.zip.cljs$core$IFn$_invoke$arity$2 = (function (a,b){\nreturn cljs.core.mapv.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,a,b);\n}));\n\n(datascript.query.zip.cljs$core$IFn$_invoke$arity$variadic = (function (a,b,rest){\nreturn cljs.core.apply.cljs$core$IFn$_invoke$arity$5(cljs.core.mapv,cljs.core.vector,a,b,rest);\n}));\n\n/** @this {Function} */\n(datascript.query.zip.cljs$lang$applyTo = (function (seq25129){\nvar G__25130 = cljs.core.first(seq25129);\nvar seq25129__$1 = cljs.core.next(seq25129);\nvar G__25131 = cljs.core.first(seq25129__$1);\nvar seq25129__$2 = cljs.core.next(seq25129__$1);\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25130,G__25131,seq25129__$2);\n}));\n\n(datascript.query.zip.cljs$lang$maxFixedArity = (2));\n\ndatascript.query.same_keys_QMARK_ = (function datascript$query$same_keys_QMARK_(a,b){\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(a),cljs.core.count(b))) && (cljs.core.every_QMARK_((function (p1__25133_SHARP_){\nreturn cljs.core.contains_QMARK_(b,p1__25133_SHARP_);\n}),cljs.core.keys(a))) && (cljs.core.every_QMARK_((function (p1__25134_SHARP_){\nreturn cljs.core.contains_QMARK_(b,p1__25134_SHARP_);\n}),cljs.core.keys(a))));\n});\ndatascript.query.looks_like_QMARK_ = (function datascript$query$looks_like_QMARK_(pattern,form){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,\"_\",\"_\",-1201019570,null),pattern)){\nreturn true;\n} else {\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,\"*\",\"*\",345799209,null)], null),pattern)){\nreturn cljs.core.sequential_QMARK_(form);\n} else {\nif((pattern instanceof cljs.core.Symbol)){\nreturn cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(form,pattern);\n} else {\nif(cljs.core.sequential_QMARK_(pattern)){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.last(pattern),new cljs.core.Symbol(null,\"*\",\"*\",345799209,null))){\nreturn ((cljs.core.sequential_QMARK_(form)) && (cljs.core.every_QMARK_((function (p__25139){\nvar vec__25140 = p__25139;\nvar pattern_el = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25140,(0),null);\nvar form_el = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25140,(1),null);\nreturn (datascript.query.looks_like_QMARK_.cljs$core$IFn$_invoke$arity$2 ? datascript.query.looks_like_QMARK_.cljs$core$IFn$_invoke$arity$2(pattern_el,form_el) : datascript.query.looks_like_QMARK_.call(null,pattern_el,form_el));\n}),cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,cljs.core.butlast(pattern),form))));\n} else {\nreturn ((cljs.core.sequential_QMARK_(form)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(form),cljs.core.count(pattern))) && (cljs.core.every_QMARK_((function (p__25147){\nvar vec__25148 = p__25147;\nvar pattern_el = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25148,(0),null);\nvar form_el = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25148,(1),null);\nreturn (datascript.query.looks_like_QMARK_.cljs$core$IFn$_invoke$arity$2 ? datascript.query.looks_like_QMARK_.cljs$core$IFn$_invoke$arity$2(pattern_el,form_el) : datascript.query.looks_like_QMARK_.call(null,pattern_el,form_el));\n}),cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,pattern,form))));\n}\n} else {\nreturn (pattern.cljs$core$IFn$_invoke$arity$1 ? pattern.cljs$core$IFn$_invoke$arity$1(form) : pattern.call(null,form));\n\n}\n}\n}\n}\n});\ndatascript.query.source_QMARK_ = (function datascript$query$source_QMARK_(sym){\nreturn (((sym instanceof cljs.core.Symbol)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\"$\",cljs.core.first(cljs.core.name(sym)))));\n});\ndatascript.query.free_var_QMARK_ = (function datascript$query$free_var_QMARK_(sym){\nreturn (((sym instanceof cljs.core.Symbol)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\"?\",cljs.core.first(cljs.core.name(sym)))));\n});\ndatascript.query.attr_QMARK_ = (function datascript$query$attr_QMARK_(form){\nreturn (((form instanceof cljs.core.Keyword)) || (typeof form === 'string'));\n});\ndatascript.query.lookup_ref_QMARK_ = (function datascript$query$lookup_ref_QMARK_(form){\nreturn datascript.query.looks_like_QMARK_(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [datascript.query.attr_QMARK_,new cljs.core.Symbol(null,\"_\",\"_\",-1201019570,null)], null),form);\n});\ndatascript.query.join_tuples = (function datascript$query$join_tuples(t1,idxs1,t2,idxs2){\nvar l1 = idxs1.length;\nvar l2 = idxs2.length;\nvar res = me.tonsky.persistent_sorted_set.arrays.make_array((l1 + l2));\nvar n__4666__auto___25582 = l1;\nvar i_25583 = (0);\nwhile(true){\nif((i_25583 < n__4666__auto___25582)){\n(res[i_25583] = (t1[(idxs1[i_25583])]));\n\nvar G__25584 = (i_25583 + (1));\ni_25583 = G__25584;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar n__4666__auto___25585 = l2;\nvar i_25586 = (0);\nwhile(true){\nif((i_25586 < n__4666__auto___25585)){\n(res[(l1 + i_25586)] = (t2[(idxs2[i_25586])]));\n\nvar G__25587 = (i_25586 + (1));\ni_25586 = G__25587;\ncontinue;\n} else {\n}\nbreak;\n}\n\nreturn res;\n});\ndatascript.query.sum_rel = (function datascript$query$sum_rel(a,b){\nvar map__25152 = a;\nvar map__25152__$1 = (((((!((map__25152 == null))))?(((((map__25152.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__25152.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__25152):map__25152);\nvar attrs_a = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25152__$1,new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713));\nvar tuples_a = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25152__$1,new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639));\nvar map__25153 = b;\nvar map__25153__$1 = (((((!((map__25153 == null))))?(((((map__25153.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__25153.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__25153):map__25153);\nvar attrs_b = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25153__$1,new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713));\nvar tuples_b = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__25153__$1,new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(attrs_a,attrs_b)){\nreturn (new datascript.query.Relation(attrs_a,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(tuples_a),tuples_b),null,null,null));\n} else {\nif((!(datascript.query.same_keys_QMARK_(attrs_a,attrs_b)))){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([\"Can\\u2019t sum relations with different attrs: \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([attrs_a], 0)),\" and \",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([attrs_b], 0))].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"error\",\"error\",-978969032),new cljs.core.Keyword(\"query\",\"where\",\"query/where\",-1935159429)], null));\n} else {\nif(cljs.core.every_QMARK_(cljs.core.number_QMARK_,cljs.core.vals(attrs_a))){\nvar idxb__GT_idxa = cljs.core.vec((function (){var iter__4582__auto__ = (function datascript$query$sum_rel_$_iter__25156(s__25157){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__25157__$1 = s__25157;\nwhile(true){\nvar temp__5735__auto__ = cljs.core.seq(s__25157__$1);\nif(temp__5735__auto__){\nvar s__25157__$2 = temp__5735__auto__;\nif(cljs.core.chunked_seq_QMARK_(s__25157__$2)){\nvar c__4580__auto__ = cljs.core.chunk_first(s__25157__$2);\nvar size__4581__auto__ = cljs.core.count(c__4580__auto__);\nvar b__25159 = cljs.core.chunk_buffer(size__4581__auto__);\nif((function (){var i__25158 = (0);\nwhile(true){\nif((i__25158 < size__4581__auto__)){\nvar vec__25160 = cljs.core._nth(c__4580__auto__,i__25158);\nvar sym = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25160,(0),null);\nvar idx_b = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25160,(1),null);\ncljs.core.chunk_append(b__25159,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [idx_b,(attrs_a.cljs$core$IFn$_invoke$arity$1 ? attrs_a.cljs$core$IFn$_invoke$arity$1(sym) : attrs_a.call(null,sym))], null));\n\nvar G__25590 = (i__25158 + (1));\ni__25158 = G__25590;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__25159),datascript$query$sum_rel_$_iter__25156(cljs.core.chunk_rest(s__25157__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__25159),null);\n}\n} else {\nvar vec__25163 = cljs.core.first(s__25157__$2);\nvar sym = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25163,(0),null);\nvar idx_b = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25163,(1),null);\nreturn cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [idx_b,(attrs_a.cljs$core$IFn$_invoke$arity$1 ? attrs_a.cljs$core$IFn$_invoke$arity$1(sym) : attrs_a.call(null,sym))], null),datascript$query$sum_rel_$_iter__25156(cljs.core.rest(s__25157__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__4582__auto__(attrs_b);\n})());\nvar tlen = (cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.vals(attrs_a)) + (1));\nvar tuples_SINGLEQUOTE_ = cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,tuple_b){\nvar tuple_SINGLEQUOTE_ = me.tonsky.persistent_sorted_set.arrays.make_array(tlen);\nvar seq__25166_25591 = cljs.core.seq(idxb__GT_idxa);\nvar chunk__25167_25592 = null;\nvar count__25168_25593 = (0);\nvar i__25169_25594 = (0);\nwhile(true){\nif((i__25169_25594 < count__25168_25593)){\nvar vec__25177_25595 = chunk__25167_25592.cljs$core$IIndexed$_nth$arity$2(null,i__25169_25594);\nvar idx_b_25596 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25177_25595,(0),null);\nvar idx_a_25597 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25177_25595,(1),null);\n(tuple_SINGLEQUOTE_[idx_a_25597] = (tuple_b[idx_b_25596]));\n\n\nvar G__25598 = seq__25166_25591;\nvar G__25599 = chunk__25167_25592;\nvar G__25600 = count__25168_25593;\nvar G__25601 = (i__25169_25594 + (1));\nseq__25166_25591 = G__25598;\nchunk__25167_25592 = G__25599;\ncount__25168_25593 = G__25600;\ni__25169_25594 = G__25601;\ncontinue;\n} else {\nvar temp__5735__auto___25603 = cljs.core.seq(seq__25166_25591);\nif(temp__5735__auto___25603){\nvar seq__25166_25604__$1 = temp__5735__auto___25603;\nif(cljs.core.chunked_seq_QMARK_(seq__25166_25604__$1)){\nvar c__4609__auto___25605 = cljs.core.chunk_first(seq__25166_25604__$1);\nvar G__25606 = cljs.core.chunk_rest(seq__25166_25604__$1);\nvar G__25607 = c__4609__auto___25605;\nvar G__25608 = cljs.core.count(c__4609__auto___25605);\nvar G__25609 = (0);\nseq__25166_25591 = G__25606;\nchunk__25167_25592 = G__25607;\ncount__25168_25593 = G__25608;\ni__25169_25594 = G__25609;\ncontinue;\n} else {\nvar vec__25180_25610 = cljs.core.first(seq__25166_25604__$1);\nvar idx_b_25611 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25180_25610,(0),null);\nvar idx_a_25612 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__25180_25610,(1),null);\n(tuple_SINGLEQUOTE_[idx_a_25612] = (tuple_b[idx_b_25611]));\n\n\nvar G__25613 = cljs.core.next(seq__25166_25604__$1);\nvar G__25614 = null;\nvar G__25615 = (0);\nvar G__25616 = (0);\nseq__25166_25591 = G__25613;\nchunk__25167_25592 = G__25614;\ncount__25168_25593 = G__25615;\ni__25169_25594 = G__25616;\ncontinue;\n}\n} else {\n}\n}\nbreak;\n}\n\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc,tuple_SINGLEQUOTE_);\n}),cljs.core.transient$(cljs.core.vec(tuples_a)),tuples_b));\nreturn (new datascript.query.Relation(attrs_a,tuples_SINGLEQUOTE_,null,null,null));\n} else {\nvar all_attrs = cljs.core.zipmap(cljs.core.keys(cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([attrs_a,attrs_b], 0))),cljs.core.range.cljs$core$IFn$_invoke$arity$0());\nvar G__25183 = (function (){var G__25185 = (new datascript.query.Relation(all_attrs,cljs.core.PersistentVector.EMPTY,null,null,null));\nvar G__25186 = a;\nreturn (datascript.query.sum_rel.cljs$core$IFn$_invoke$arity$2 ? datascript.query.sum_rel.cljs$core$IFn$_invoke$arity$2(G__25185,G__25186) : datascript.query.sum_rel.call(null,G__25185,G__25186));\n})();\nvar G__25184 = b;\nreturn (datascript.query.sum_rel.cljs$core$IFn$_invoke$arity$2 ? datascript.query.sum_rel.cljs$core$IFn$_invoke$arity$2(G__25183,G__25184) : datascript.query.sum_rel.call(null,G__25183,G__25184));\n\n}\n}\n}\n});\ndatascript.query.prod_rel = (function datascript$query$prod_rel(var_args){\nvar G__25188 = arguments.length;\nswitch (G__25188) {\ncase 0:\nreturn datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 2:\nreturn datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nthrow (new Error([\"Invalid arity: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));\n\n}\n});\n\n(datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$0 = (function (){\nreturn (new datascript.query.Relation(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [me.tonsky.persistent_sorted_set.arrays.make_array((0))], null),null,null,null));\n}));\n\n(datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$2 = (function (rel1,rel2){\nvar attrs1 = cljs.core.keys(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713).cljs$core$IFn$_invoke$arity$1(rel1));\nvar attrs2 = cljs.core.keys(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713).cljs$core$IFn$_invoke$arity$1(rel2));\nvar idxs1 = cljs.core.to_array(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713).cljs$core$IFn$_invoke$arity$1(rel1),attrs1));\nvar idxs2 = cljs.core.to_array(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"attrs\",\"attrs\",-2090668713).cljs$core$IFn$_invoke$arity$1(rel2),attrs2));\nreturn (new datascript.query.Relation(cljs.core.zipmap(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(attrs1,attrs2),cljs.core.range.cljs$core$IFn$_invoke$arity$0()),cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,t1){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc__$1,t2){\nreturn cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc__$1,datascript.query.join_tuples(t1,idxs1,t2,idxs2));\n}),acc,new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639).cljs$core$IFn$_invoke$arity$1(rel2));\n}),cljs.core.transient$(cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,\"tuples\",\"tuples\",-676032639).cljs$core$IFn$_invoke$arity$1(rel1))),null,null,null));\n}));\n\n(datascript.query.prod_rel.cljs$lang$maxFixedArity = 2);\n\ndatascript.query._differ_QMARK_ = (function datascript$query$_differ_QMARK_(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___25622 = arguments.length;\nvar i__4790__auto___25624 = (0);\nwhile(true){\nif((i__4790__auto___25624 < len__4789__auto___25622)){\nargs__4795__auto__.push((arguments[i__4790__auto___25624]));\n\nvar G__25625 = (i__4790__auto___25624 + (1));\ni__4790__auto___25624 = G__25625;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((0) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((0)),(0),null)):null);\nreturn datascript.query._differ_QMARK_.cljs$core$IFn$_invoke$arity$variadic(argseq__4796__auto__);\n});\n\n(datascript.query._differ_QMARK_.cljs$core$IFn$_invoke$arity$variadic = (function (xs){\nvar l = cljs.core.count(xs);\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.take.cljs$core$IFn$_invoke$arity$2((l / (2)),xs),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((l / (2)),xs));\n}));\n\n(datascript.query._differ_QMARK_.cljs$lang$maxFixedArity = (0));\n\n/** @this {Function} */\n(datascript.query._differ_QMARK_.cljs$lang$applyTo = (function (seq25189){\nvar self__4777__auto__ = this;\nreturn self__4777__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq25189));\n}));\n\ndatascript.query._get_else = (function datascript$query$_get_else(db,e,a,else_val){\nif((else_val == null)){\nthrow cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(\"get-else: nil default value is not supported\",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,\"error\",\"error\",-978969032),new cljs.core.Keyword(\"query\",\"where\",\"query/where\",-1935159429)], null));\n} else {\n}\n\nvar temp__5737__auto__ = cljs.core.first(datascript.db._search(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,a], null)));\nif((temp__5737__auto__ == null)){\nreturn else_val;\n} else {\nvar datom = temp__5737__auto__;\nreturn new cljs.core.Keyword(null,\"v\",\"v\",21465059).cljs$core$IFn$_invoke$arity$1(datom);\n}\n});\ndatascript.query._get_some = (function datascript$query$_get_some(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___25626 = arguments.length;\nvar i__4790__auto___25627 = (0);\nwhile(true){\nif((i__4790__auto___25627 < len__4789__auto___25626)){\nargs__4795__auto__.push((arguments[i__4790__auto___25627]));\n\nvar G__25628 = (i__4790__auto___25627 + (1));\ni__4790__auto___25627 = G__25628;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((2) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((2)),(0),null)):null);\nreturn datascript.query._get_some.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4796__auto__);\n});\n\n(datascript.query._get_some.cljs$core$IFn$_invoke$arity$variadic = (function (db,e,as){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,a){\nvar temp__5739__auto__ = cljs.core.first(datascript.db._search(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,a], null)));\nif((temp__5739__auto__ == null)){\nreturn null;\n} else {\nvar datom = temp__5739__auto__;\nreturn cljs.core.reduced(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"a\",\"a\",-2123407586).cljs$core$IFn$_invoke$arity$1(datom),new cljs.core.Keyword(null,\"v\",\"v\",21465059).cljs$core$IFn$_invoke$arity$1(datom)], null));\n}\n}),null,as);\n}));\n\n(datascript.query._get_some.cljs$lang$maxFixedArity = (2));\n\n/** @this {Function} */\n(datascript.query._get_some.cljs$lang$applyTo = (function (seq25191){\nvar G__25192 = cljs.core.first(seq25191);\nvar seq25191__$1 = cljs.core.next(seq25191);\nvar G__25193 = cljs.core.first(seq25191__$1);\nvar seq25191__$2 = cljs.core.next(seq25191__$1);\nvar self__4776__auto__ = this;\nreturn self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25192,G__25193,seq25191__$2);\n}));\n\ndatascript.query._missing_QMARK_ = (function datascript$query$_missing_QMARK_(db,e,a){\nreturn (cljs.core.get.cljs$core$IFn$_invoke$arity$2(datascript.impl.entity.entity(db,e),a) == null);\n});\ndatascript.query.and_fn = (function datascript$query$and_fn(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___25664 = arguments.length;\nvar i__4790__auto___25665 = (0);\nwhile(true){\nif((i__4790__auto___25665 < len__4789__auto___25664)){\nargs__4795__auto__.push((arguments[i__4790__auto___25665]));\n\nvar G__25669 = (i__4790__auto___25665 + (1));\ni__4790__auto___25665 = G__25669;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((0) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((0)),(0),null)):null);\nreturn datascript.query.and_fn.cljs$core$IFn$_invoke$arity$variadic(argseq__4796__auto__);\n});\n\n(datascript.query.and_fn.cljs$core$IFn$_invoke$arity$variadic = (function (args){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (a,b){\nif(cljs.core.truth_(b)){\nreturn b;\n} else {\nreturn cljs.core.reduced(b);\n}\n}),true,args);\n}));\n\n(datascript.query.and_fn.cljs$lang$maxFixedArity = (0));\n\n/** @this {Function} */\n(datascript.query.and_fn.cljs$lang$applyTo = (function (seq25195){\nvar self__4777__auto__ = this;\nreturn self__4777__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq25195));\n}));\n\ndatascript.query.or_fn = (function datascript$query$or_fn(var_args){\nvar args__4795__auto__ = [];\nvar len__4789__auto___25684 = arguments.length;\nvar i__4790__auto___25685 = (0);\nwhile(true){\nif((i__4790__auto___25685 < len__4789__auto___25684)){\nargs__4795__auto__.push((arguments[i__4790__auto___25685]));\n\nvar G__25690 = (i__4790__auto___25685 + (1));\ni__4790__auto___25685 = G__25690;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4796__auto__ = ((((0) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((0)),(0),null)):null);\nreturn datascript.query.or_fn.cljs$core$IFn$_invoke$arity$variadic(argseq__4796__auto__);\n});\n\n(datascript.query.or_fn.cljs$core$IFn$_invoke$arity$variadic = (function (args){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (a,b){\nif(cljs.core.truth_(b)){\nreturn cljs.core.reduced(b);\n} else {\nreturn b;\n}\n}),null,args);\n}));\n\n(datascript.query.or_fn.cljs$lang$maxFixedArity = (0));\n\n/** @this {Function} */\n(datascript.query.or_fn.cljs$lang$applyTo = (function (seq25196){\nvar self__4777__auto__ = this;\nreturn self__4777__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq25196));\n}));\n\ndatascript.query.built_ins = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(null,\"true?\",\"true?\",-1600332395,null),new cljs.core.Symbol(null,\"and\",\"and\",668631710,null),new cljs.core.Symbol(null,\"odd?\",\"odd?\",-1458588199,null),new cljs.core.Symbol(null,\"get-else\",\"get-else\",1312024065,null),new cljs.core.Symbol(null,\">=\",\">=\",1016916022,null),new cljs.core.Symbol(null,\"print-str\",\"print-str\",-699700354,null),new cljs.core.Symbol(null,\">\",\">\",1085014381,null),new cljs.core.Symbol(null,\"count\",\"count\",-514511684,null),new cljs.core.Symbol(null,\"get-some\",\"get-some\",409442058,null),new cljs.core.Symbol(null,\"nil?\",\"nil?\",1612038930,null),new cljs.core.Symbol(null,\"inc\",\"inc\",324505433,null),new cljs.core.Symbol(null,\"/\",\"/\",-1371932971,null),new cljs.core.Symbol(null,\"quot\",\"quot\",-1125214196,null),new cljs.core.Symbol(null,\"false?\",\"false?\",-1522377573,null),new cljs.core.Symbol(null,\"not\",\"not\",1044554643,null),new cljs.core.Symbol(null,\"identity\",\"identity\",-1007039734,null),new cljs.core.Symbol(null,\"-differ?\",\"-differ?\",1465687357,null),new cljs.core.Symbol(null,\"re-seq\",\"re-seq\",-2105554076,null),new cljs.core.Symbol(null,\"<=\",\"<=\",1244895369,null),new cljs.core.Symbol(\"clojure.string\",\"starts-with?\",\"clojure.string/starts-with?\",656256322,null),new cljs.core.Symbol(null,\"=\",\"=\",-1501502141,null),new cljs.core.Symbol(null,\"min\",\"min\",2085523049,null),new cljs.core.Symbol(null,\"+\",\"+\",-740910886,null),new cljs.core.Symbol(null,\"name\",\"name\",-810760592,null),new cljs.core.Symbol(null,\"missing?\",\"missing?\",-1710383910,null),new cljs.core.Symbol(null,\"ground\",\"ground\",-1460862835,null),new cljs.core.Symbol(null,\"rand-int\",\"rand-int\",-495012157,null),new cljs.core.Symbol(null,\"complement\",\"complement\",-913606051,null),new cljs.core.Symbol(null,\"==\",\"==\",-234118149,null),new cljs.core.Symbol(null,\"hash-map\",\"hash-map\",-439030950,null),new cljs.core.Symbol(null,\"compa