From a20c9c46252cd46464c4fddd8f0e19aac2b4c722 Mon Sep 17 00:00:00 2001 From: giles Date: Sun, 26 Apr 2026 09:55:48 +0000 Subject: [PATCH] HS E36: socket URL parsing + hs-socket-register! runtime (+3 tests) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - parser.sx: parse-socket-feat handles /path and scheme:// URLs; collect-url greedily joins URL continuation tokens (ident/number/op/colon/dot) - tokenizer.sx: fix :// not treated as line comment (lookback check) - compiler.sx: emit-socket compiles socket AST to hs-socket-register! call - runtime.sx: hs-socket-register! normalises URL (relative→ws:/wss:), constructs WebSocket, builds wrapper dict, binds on window name-path - hs-run-filtered.js: WebSocket mock uses plain object (not JS array) so host-global returns a foreign value rather than SX list; host-get idx works Co-Authored-By: Claude Sonnet 4.6 --- lib/hyperscript/compiler.sx | 26 ++++++++++ lib/hyperscript/parser.sx | 48 ++----------------- lib/hyperscript/runtime.sx | 53 +++++++++++++++++++++ lib/hyperscript/tokenizer.sx | 6 ++- shared/static/wasm/sx/hs-compiler.sx | 26 ++++++++++ shared/static/wasm/sx/hs-compiler.sxbc | 3 -- shared/static/wasm/sx/hs-parser.sx | 58 +++++++++++++++++++++++ shared/static/wasm/sx/hs-parser.sxbc | 3 -- shared/static/wasm/sx/hs-runtime.sx | 53 +++++++++++++++++++++ shared/static/wasm/sx/hs-runtime.sxbc | 3 -- shared/static/wasm/sx/hs-tokenizer.sx | 6 ++- shared/static/wasm/sx/hs-tokenizer.sxbc | 3 -- spec/tests/test-hyperscript-behavioral.sx | 20 ++++++-- tests/hs-run-filtered.js | 14 ++++-- tests/playwright/generate-sx-tests.py | 34 +++++++++++++ 15 files changed, 291 insertions(+), 65 deletions(-) delete mode 100644 shared/static/wasm/sx/hs-compiler.sxbc delete mode 100644 shared/static/wasm/sx/hs-parser.sxbc delete mode 100644 shared/static/wasm/sx/hs-runtime.sxbc delete mode 100644 shared/static/wasm/sx/hs-tokenizer.sxbc diff --git a/lib/hyperscript/compiler.sx b/lib/hyperscript/compiler.sx index c7549d51..291a0384 100644 --- a/lib/hyperscript/compiler.sx +++ b/lib/hyperscript/compiler.sx @@ -787,6 +787,31 @@ (quote fn) (cons (quote me) (map make-symbol params)) (cons (quote do) (map hs-to-sx body))))))) + (define + emit-socket + (fn + (ast) + (let + ((name-path (nth ast 1)) + (url (nth ast 2)) + (timeout-ms (nth ast 3)) + (on-msg (nth ast 4))) + (let + ((handler + (if + (nil? on-msg) + nil + (let + ((body (hs-to-sx (nth on-msg 2)))) + (list (quote fn) (list (quote event)) body)))) + (json?-val (if (nil? on-msg) false (nth on-msg 1)))) + (list + (quote hs-socket-register!) + (cons (quote list) name-path) + url + (if (nil? timeout-ms) nil (hs-to-sx timeout-ms)) + handler + json?-val))))) (fn (ast) (cond @@ -2075,6 +2100,7 @@ (quote _hs-def-val)) (quote _hs-def-val)))))) ((= head (quote behavior)) (emit-behavior ast)) + ((= head (quote socket)) (emit-socket ast)) ((= head (quote sx-eval)) (let ((src (nth ast 1))) diff --git a/lib/hyperscript/parser.sx b/lib/hyperscript/parser.sx index ae6af71f..918f00a7 100644 --- a/lib/hyperscript/parser.sx +++ b/lib/hyperscript/parser.sx @@ -2733,7 +2733,6 @@ parse-socket-feat (fn () - ;; Collect name-path: ident (class)* → e.g. ["Foo"] or ["MyApp" "chat"] (let ((seg0 (tp-val))) (adv!) @@ -2750,7 +2749,6 @@ acc))) (let ((name-path (collect-segs (list seg0)))) - ;; url-cont?: token types that can appear inside a URL (define url-cont? (fn @@ -2769,7 +2767,6 @@ (= (tp-val) "with") (= (tp-val) "on") (= (tp-val) "as"))))))) - ;; collect-url: accumulate URL tokens into a joined string (define collect-url (fn @@ -2781,51 +2778,12 @@ (adv!) (collect-url (append parts (list v)))) (join "" parts)))) - ;; Parse URL: /path, scheme://..., string literal, or expression (let - ((url - (cond - ;; Relative path starting with / - ((and (= (tp-type) "op") (= (tp-val) "/")) - (adv!) - (collect-url (list "/"))) - ;; Absolute URL: ident + colon → collect as scheme:rest - ((= (tp-type) "ident") - (let - ((scheme (tp-val))) - (adv!) - (if - (= (tp-type) "colon") - (collect-url (list scheme)) - (parse-arith (parse-poss (list (quote ref) scheme)))))) - ;; String literal or other expression - (true (parse-atom))))) - ;; Optional: with timeout + ((url (cond ((and (= (tp-type) "op") (= (tp-val) "/")) (do (adv!) (collect-url (list "/")))) ((= (tp-type) "ident") (let ((scheme (tp-val))) (adv!) (if (= (tp-type) "colon") (collect-url (list scheme)) (parse-arith (parse-poss (list (quote ref) scheme)))))) (true (parse-atom))))) (let - ((timeout-ms - (if - (match-kw "with") - (do - (adv!) - (parse-expr)) - nil))) - ;; Optional: on message [as JSON] + ((timeout-ms (if (match-kw "with") (do (adv!) (parse-expr)) nil))) (let - ((on-msg - (if - (match-kw "on") - (do - (adv!) - (let - ((json? - (if - (match-kw "as") - (do (adv!) true) - false))) - (let - ((body (parse-cmd-list))) - (list (quote on-message) json? body)))) - nil))) + ((on-msg (if (match-kw "on") (do (adv!) (let ((json? (if (match-kw "as") (do (adv!) true) false))) (let ((body (parse-cmd-list))) (list (quote on-message) json? body)))) nil))) (match-kw "end") (list (quote socket) name-path url timeout-ms on-msg)))))))) (define diff --git a/lib/hyperscript/runtime.sx b/lib/hyperscript/runtime.sx index 4daa71d9..956d158c 100644 --- a/lib/hyperscript/runtime.sx +++ b/lib/hyperscript/runtime.sx @@ -2525,3 +2525,56 @@ (fn (fn-name args) (let ((fn (host-global fn-name))) (if fn (host-call-fn fn args) nil)))) + +;; ── WebSocket / socket feature ─────────────────────────────────── + +(define + hs-socket-register! + (fn + (name-path url timeout-ms handler json?) + ;; 1. Normalise URL — absolute ws/wss pass through; relative paths get scheme+host + (let + ((ws-url + (cond + ((or (starts-with? url "ws://") (starts-with? url "wss://")) url) + (true + (let + ((proto (host-get (host-global "location") "protocol")) + (h (host-get (host-global "location") "host"))) + (str (if (= proto "https:") "wss:" "ws:") "//" h url)))))) + ;; 2. Construct WebSocket + (let + ((ws (host-new "WebSocket" ws-url))) + ;; 3. Build wrapper dict + (let + ((wrapper + {:raw ws + :url ws-url + :timeout timeout-ms + :pending {} + :handler handler + :json? json? + :closed? false})) + ;; 4. Wire RPC proxy via JS factory (if available) + (let + ((proxy-factory (host-global "_hs_make_rpc_proxy"))) + (when proxy-factory + (host-set! wrapper "rpc" + (host-call proxy-factory "call" nil wrapper)))) + ;; 5. Bind wrapper on window, walking name-path + (define + bind-path! + (fn + (obj path) + (if + (= (len path) 1) + (host-set! obj (first path) wrapper) + (let + ((key (first path)) + (rest-path (rest path))) + (let + ((next (or (host-get obj key) {}))) + (host-set! obj key next) + (bind-path! next rest-path)))))) + (bind-path! (host-global "window") name-path) + wrapper))))) diff --git a/lib/hyperscript/tokenizer.sx b/lib/hyperscript/tokenizer.sx index 2483ea8c..4a9476d3 100644 --- a/lib/hyperscript/tokenizer.sx +++ b/lib/hyperscript/tokenizer.sx @@ -441,7 +441,11 @@ (cond (and (= ch "-") (< (+ pos 1) src-len) (= (hs-peek 1) "-")) (do (hs-advance! 2) (skip-comment!) (scan!)) - (and (= ch "/") (< (+ pos 1) src-len) (= (hs-peek 1) "/")) + (and + (= ch "/") + (< (+ pos 1) src-len) + (= (hs-peek 1) "/") + (not (and (> pos 0) (= (hs-peek -1) ":")))) (do (hs-advance! 2) (skip-comment!) (scan!)) (and (= ch "<") diff --git a/shared/static/wasm/sx/hs-compiler.sx b/shared/static/wasm/sx/hs-compiler.sx index c7549d51..291a0384 100644 --- a/shared/static/wasm/sx/hs-compiler.sx +++ b/shared/static/wasm/sx/hs-compiler.sx @@ -787,6 +787,31 @@ (quote fn) (cons (quote me) (map make-symbol params)) (cons (quote do) (map hs-to-sx body))))))) + (define + emit-socket + (fn + (ast) + (let + ((name-path (nth ast 1)) + (url (nth ast 2)) + (timeout-ms (nth ast 3)) + (on-msg (nth ast 4))) + (let + ((handler + (if + (nil? on-msg) + nil + (let + ((body (hs-to-sx (nth on-msg 2)))) + (list (quote fn) (list (quote event)) body)))) + (json?-val (if (nil? on-msg) false (nth on-msg 1)))) + (list + (quote hs-socket-register!) + (cons (quote list) name-path) + url + (if (nil? timeout-ms) nil (hs-to-sx timeout-ms)) + handler + json?-val))))) (fn (ast) (cond @@ -2075,6 +2100,7 @@ (quote _hs-def-val)) (quote _hs-def-val)))))) ((= head (quote behavior)) (emit-behavior ast)) + ((= head (quote socket)) (emit-socket ast)) ((= head (quote sx-eval)) (let ((src (nth ast 1))) diff --git a/shared/static/wasm/sx/hs-compiler.sxbc b/shared/static/wasm/sx/hs-compiler.sxbc deleted file mode 100644 index c855c95f..00000000 --- a/shared/static/wasm/sx/hs-compiler.sxbc +++ /dev/null @@ -1,3 +0,0 @@ -(sxbc 1 "90446e15f3f0a660" - (code - :constants ("hs-to-sx" "make-symbol" "." "%" {:upvalue-count 0 :arity 1 :constants ("hs-to-sx") :bytecode (20 0 0 16 0 49 1 50)} {:upvalue-count 1 :arity 2 :constants ("not" "list?" "list" set! "first" "=" dom-set-prop "hs-to-sx" "nth" 1 2 attr dom-set-attr style dom-set-style ref "make-symbol" local define me dom-set-inner-html it query array-index host-set! of host-get) :bytecode (16 0 52 1 0 1 52 0 0 1 33 14 0 1 3 0 16 0 16 1 52 2 0 3 32 111 2 16 0 52 4 0 1 17 2 16 2 18 0 52 5 0 2 33 35 0 1 6 0 20 7 0 16 0 1 9 0 52 8 0 2 48 1 16 0 1 10 0 52 8 0 2 16 1 52 2 0 4 32 57 2 16 2 1 11 0 52 5 0 2 33 35 0 1 12 0 20 7 0 16 0 1 10 0 52 8 0 2 48 1 16 0 1 9 0 52 8 0 2 16 1 52 2 0 4 32 10 2 16 2 1 13 0 52 5 0 2 33 35 0 1 14 0 20 7 0 16 0 1 10 0 52 8 0 2 48 1 16 0 1 9 0 52 8 0 2 16 1 52 2 0 4 32 219 1 16 2 1 15 0 52 5 0 2 33 25 0 1 3 0 16 0 1 9 0 52 8 0 2 52 16 0 1 16 1 52 2 0 3 32 182 1 16 2 1 17 0 52 5 0 2 33 25 0 1 18 0 16 0 1 9 0 52 8 0 2 52 16 0 1 16 1 52 2 0 3 32 145 1 16 2 1 19 0 52 5 0 2 33 15 0 1 20 0 1 19 0 16 1 52 2 0 3 32 118 1 16 2 1 21 0 52 5 0 2 33 15 0 1 3 0 1 21 0 16 1 52 2 0 3 32 91 1 16 2 1 22 0 52 5 0 2 33 19 0 1 20 0 20 7 0 16 0 48 1 16 1 52 2 0 3 32 60 1 16 2 1 23 0 52 5 0 2 33 40 0 1 24 0 20 7 0 16 0 1 9 0 52 8 0 2 48 1 20 7 0 16 0 1 10 0 52 8 0 2 48 1 16 1 52 2 0 4 32 8 1 16 2 1 25 0 52 5 0 2 33 236 0 16 0 1 9 0 52 8 0 2 17 3 16 0 1 10 0 52 8 0 2 17 4 16 3 52 1 0 1 6 33 13 0 5 16 3 52 4 0 1 18 0 52 5 0 2 33 59 0 16 3 1 9 0 52 8 0 2 17 5 16 3 1 10 0 52 8 0 2 17 6 1 6 0 1 26 0 20 7 0 16 4 48 1 16 5 1 9 0 52 8 0 2 52 2 0 3 16 6 16 1 52 2 0 4 32 126 0 16 3 52 1 0 1 6 33 14 0 5 16 3 52 4 0 1 1 11 0 52 5 0 2 33 28 0 1 12 0 20 7 0 16 4 48 1 16 3 1 9 0 52 8 0 2 16 1 52 2 0 4 32 71 0 16 3 52 1 0 1 6 33 14 0 5 16 3 52 4 0 1 1 15 0 52 5 0 2 33 28 0 1 6 0 20 7 0 16 4 48 1 16 3 1 9 0 52 8 0 2 16 1 52 2 0 4 32 16 0 1 3 0 20 7 0 16 0 48 1 16 1 52 2 0 3 32 16 0 1 3 0 20 7 0 16 0 48 1 16 1 52 2 0 3 50)} {:upvalue-count 0 :arity 1 :constants ("rest" "first" {:upvalue-count 2 :arity 6 :constants ("<=" "len" 1 ">" 0 "first" "hs-to-sx" me "list?" "=" do {:upvalue-count 0 :arity 1 :constants ("list?" "=" "first" ref) :bytecode (16 0 52 0 0 1 6 33 14 0 5 16 0 52 2 0 1 1 3 0 52 1 0 2 50)} "rest" "list" {:upvalue-count 0 :arity 1 :constants ("not" "list?" "=" "first" ref) :bytecode (16 0 52 1 0 1 6 33 14 0 5 16 0 52 3 0 1 1 4 0 52 2 0 2 52 0 0 1 50)} "cons" "map" {:upvalue-count 0 :arity 1 :constants ("nth" 1 "list" "make-symbol" get event "detail") :bytecode (16 0 1 1 0 52 0 0 2 17 1 16 1 52 3 0 1 1 4 0 1 4 0 1 5 0 1 6 0 52 2 0 3 16 1 52 2 0 3 52 2 0 2 50)} let "make-symbol" "nth" guard fn event hs-on-every hs-on "from" "filter" "every" "catch" "finally") :bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 33 155 1 16 0 52 1 0 1 1 4 0 52 3 0 2 33 9 0 16 0 52 5 0 1 32 1 0 2 17 6 16 1 33 10 0 20 6 0 16 1 48 1 32 3 0 1 7 0 17 7 16 6 52 8 0 1 6 33 14 0 5 16 6 52 5 0 1 1 10 0 52 9 0 2 33 16 0 16 2 51 11 0 16 6 52 12 0 1 48 2 32 4 0 52 13 0 0 17 8 16 8 52 1 0 1 1 4 0 52 3 0 2 33 52 0 16 2 51 14 0 16 6 52 12 0 1 48 2 17 9 16 9 52 1 0 1 1 2 0 52 9 0 2 33 9 0 16 9 52 5 0 1 32 9 0 1 10 0 16 9 52 15 0 2 32 2 0 16 6 17 9 20 6 0 16 9 48 1 17 10 16 8 52 1 0 1 1 4 0 52 3 0 2 33 25 0 51 17 0 16 8 52 16 0 2 17 11 1 18 0 16 11 16 10 52 13 0 3 32 2 0 16 10 17 11 16 4 33 100 0 16 4 1 4 0 52 20 0 2 52 19 0 1 17 12 20 6 0 16 4 1 2 0 52 20 0 2 48 1 17 13 16 5 33 39 0 1 10 0 1 21 0 16 12 3 16 13 52 13 0 2 52 13 0 2 16 11 52 13 0 3 20 6 0 16 5 48 1 52 13 0 3 32 22 0 1 21 0 16 12 3 16 13 52 13 0 2 52 13 0 2 16 11 52 13 0 3 32 26 0 16 5 33 19 0 1 10 0 16 11 20 6 0 16 5 48 1 52 13 0 3 32 2 0 16 11 17 12 1 22 0 1 23 0 52 13 0 1 16 12 52 13 0 3 17 13 16 3 33 16 0 1 24 0 16 7 18 0 16 13 52 13 0 4 32 13 0 1 25 0 16 7 18 0 16 13 52 13 0 4 32 6 1 16 0 52 5 0 1 1 26 0 52 9 0 2 33 34 0 18 1 16 0 52 12 0 1 52 12 0 1 16 0 1 2 0 52 20 0 2 16 2 16 3 16 4 16 5 49 6 32 212 0 16 0 52 5 0 1 1 27 0 52 9 0 2 33 34 0 18 1 16 0 52 12 0 1 52 12 0 1 16 1 16 0 1 2 0 52 20 0 2 16 3 16 4 16 5 49 6 32 162 0 16 0 52 5 0 1 1 28 0 52 9 0 2 33 26 0 18 1 16 0 52 12 0 1 52 12 0 1 16 1 16 2 3 16 4 16 5 49 6 32 120 0 16 0 52 5 0 1 1 29 0 52 9 0 2 33 34 0 18 1 16 0 52 12 0 1 52 12 0 1 16 1 16 2 16 3 16 0 1 2 0 52 20 0 2 16 5 49 6 32 70 0 16 0 52 5 0 1 1 30 0 52 9 0 2 33 34 0 18 1 16 0 52 12 0 1 52 12 0 1 16 1 16 2 16 3 16 4 16 0 1 2 0 52 20 0 2 49 6 32 20 0 18 1 16 0 52 12 0 1 16 1 16 2 16 3 16 4 16 5 49 6 50)}) :bytecode (16 0 52 0 0 1 17 1 16 1 52 1 0 1 17 2 51 2 0 1 2 1 3 17 3 5 16 3 16 1 52 0 0 1 2 2 4 2 2 49 6 50)} {:upvalue-count 0 :arity 1 :constants ("nth" 1 "rest" "=" "len" 4 "list?" 2 "first" dict "list" dom-dispatch "hs-to-sx" 3 me) :bytecode (16 0 1 1 0 52 0 0 2 17 1 16 0 52 2 0 1 52 2 0 1 17 2 16 0 52 4 0 1 1 5 0 52 3 0 2 6 33 39 0 5 16 0 1 7 0 52 0 0 2 52 6 0 1 6 33 21 0 5 16 0 1 7 0 52 0 0 2 52 8 0 1 1 9 0 52 3 0 2 33 40 0 1 11 0 20 12 0 16 0 1 13 0 52 0 0 2 48 1 16 1 20 12 0 16 0 1 7 0 52 0 0 2 48 1 52 10 0 4 32 56 0 16 0 52 4 0 1 1 13 0 52 3 0 2 33 27 0 1 11 0 20 12 0 16 0 1 7 0 52 0 0 2 48 1 16 1 2 52 10 0 4 32 13 0 1 11 0 1 14 0 16 1 2 52 10 0 4 50)} {:upvalue-count 0 :arity 1 :constants ("nth" 1 "hs-to-sx" 2 "list?" "=" "first" forever "list" hs-repeat-forever fn times hs-repeat-times "number?" while hs-repeat-while until hs-repeat-until) :bytecode (16 0 1 1 0 52 0 0 2 17 1 20 2 0 16 0 1 3 0 52 0 0 2 48 1 17 2 16 1 52 4 0 1 6 33 14 0 5 16 1 52 6 0 1 1 7 0 52 5 0 2 33 23 0 1 9 0 1 10 0 52 8 0 0 16 2 52 8 0 3 52 8 0 2 32 27 1 16 1 52 4 0 1 6 33 14 0 5 16 1 52 6 0 1 1 11 0 52 5 0 2 33 37 0 1 12 0 20 2 0 16 1 1 1 0 52 0 0 2 48 1 1 10 0 52 8 0 0 16 2 52 8 0 3 52 8 0 3 32 219 0 16 1 52 13 0 1 33 25 0 1 12 0 16 1 1 10 0 52 8 0 0 16 2 52 8 0 3 52 8 0 3 32 185 0 16 1 52 4 0 1 6 33 14 0 5 16 1 52 6 0 1 1 14 0 52 5 0 2 33 52 0 20 2 0 16 1 1 1 0 52 0 0 2 48 1 17 3 1 15 0 1 10 0 52 8 0 0 16 3 52 8 0 3 1 10 0 52 8 0 0 16 2 52 8 0 3 52 8 0 3 32 106 0 16 1 52 4 0 1 6 33 14 0 5 16 1 52 6 0 1 1 16 0 52 5 0 2 33 52 0 20 2 0 16 1 1 1 0 52 0 0 2 48 1 17 3 1 17 0 1 10 0 52 8 0 0 16 3 52 8 0 3 1 10 0 52 8 0 0 16 2 52 8 0 3 52 8 0 3 32 27 0 1 12 0 20 2 0 16 1 48 1 1 10 0 52 8 0 0 16 2 52 8 0 3 52 8 0 3 50)} {:upvalue-count 0 :arity 1 :constants ("nth" 1 "hs-to-sx" 2 3 ">" "len" 4 "=" "index" "list" map-indexed fn "make-symbol" 5 hs-for-each) :bytecode (16 0 1 1 0 52 0 0 2 17 1 20 2 0 16 0 1 3 0 52 0 0 2 48 1 17 2 20 2 0 16 0 1 4 0 52 0 0 2 48 1 17 3 16 0 52 6 0 1 1 7 0 52 5 0 2 6 33 17 0 5 16 0 1 7 0 52 0 0 2 1 9 0 52 8 0 2 33 44 0 1 11 0 1 12 0 16 0 1 14 0 52 0 0 2 52 13 0 1 16 1 52 13 0 1 52 10 0 2 16 3 52 10 0 3 16 2 52 10 0 3 32 28 0 1 15 0 1 12 0 16 1 52 13 0 1 52 10 0 1 16 3 52 10 0 3 16 2 52 10 0 3 50)} {:upvalue-count 0 :arity 1 :constants ("nth" 1 ">" "len" 2 "=" "from" "list" hs-wait-for "hs-to-sx" 3 me) :bytecode (16 0 1 1 0 52 0 0 2 17 1 16 0 52 3 0 1 1 4 0 52 2 0 2 6 33 17 0 5 16 0 1 4 0 52 0 0 2 1 6 0 52 5 0 2 33 26 0 1 8 0 20 9 0 16 0 1 10 0 52 0 0 2 48 1 16 1 52 7 0 3 32 12 0 1 8 0 1 11 0 16 1 52 7 0 3 50)} {:upvalue-count 0 :arity 1 :constants ("hs-to-sx" "nth" 1 2 3 4 "list" hs-transition "nil?" me) :bytecode (20 0 0 16 0 1 2 0 52 1 0 2 48 1 17 1 20 0 0 16 0 1 3 0 52 1 0 2 48 1 17 2 16 0 1 4 0 52 1 0 2 17 3 16 0 1 5 0 52 1 0 2 17 4 1 7 0 16 4 52 8 0 1 33 6 0 1 9 0 32 7 0 20 0 0 16 4 48 1 16 1 16 2 16 3 33 10 0 20 0 0 16 3 48 1 32 1 0 2 52 6 0 5 50)} {:upvalue-count 0 :arity 1 :constants ("=" "len" 3 "list" let "make-symbol" "nth" 2 hs-make 1) :bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 33 60 0 1 4 0 16 0 1 7 0 52 6 0 2 52 5 0 1 1 8 0 16 0 1 9 0 52 6 0 2 52 3 0 2 52 3 0 2 52 3 0 1 16 0 1 7 0 52 6 0 2 52 5 0 1 52 3 0 3 32 16 0 1 8 0 16 0 1 9 0 52 6 0 2 52 3 0 2 50)} {:upvalue-count 1 :arity 3 :constants ("list?" "=" "first" attr "hs-to-sx" me "list" dom-set-attr "nth" 1 + parse-number dom-get-attr 2 host-set! host-get style dom-set-style dom-get-style set!) :bytecode (16 0 52 0 0 1 6 33 14 0 5 16 0 52 2 0 1 1 3 0 52 1 0 2 33 75 0 16 2 33 10 0 20 4 0 16 2 48 1 32 3 0 1 5 0 17 3 1 7 0 16 3 16 0 1 9 0 52 8 0 2 1 10 0 1 11 0 1 12 0 16 3 16 0 1 9 0 52 8 0 2 52 6 0 3 52 6 0 2 16 1 52 6 0 3 52 6 0 4 32 222 0 16 0 52 0 0 1 6 33 13 0 5 16 0 52 2 0 1 18 0 52 1 0 2 33 68 0 20 4 0 16 0 1 9 0 52 8 0 2 48 1 17 3 16 0 1 13 0 52 8 0 2 17 4 1 14 0 16 3 16 4 1 10 0 1 11 0 1 15 0 16 3 16 4 52 6 0 3 52 6 0 2 16 1 52 6 0 3 52 6 0 4 32 128 0 16 0 52 0 0 1 6 33 14 0 5 16 0 52 2 0 1 1 16 0 52 1 0 2 33 72 0 16 2 33 10 0 20 4 0 16 2 48 1 32 3 0 1 5 0 17 3 16 0 1 9 0 52 8 0 2 17 4 1 17 0 16 3 16 4 1 10 0 1 11 0 1 18 0 16 3 16 4 52 6 0 3 52 6 0 2 16 1 52 6 0 3 52 6 0 4 32 29 0 20 4 0 16 0 48 1 17 3 1 19 0 16 3 1 10 0 16 3 16 1 52 6 0 3 52 6 0 3 50)} {:upvalue-count 1 :arity 3 :constants ("list?" "=" "first" attr "hs-to-sx" me "list" dom-set-attr "nth" 1 - parse-number dom-get-attr 2 host-set! host-get style dom-set-style dom-get-style set!) :bytecode (16 0 52 0 0 1 6 33 14 0 5 16 0 52 2 0 1 1 3 0 52 1 0 2 33 75 0 16 2 33 10 0 20 4 0 16 2 48 1 32 3 0 1 5 0 17 3 1 7 0 16 3 16 0 1 9 0 52 8 0 2 1 10 0 1 11 0 1 12 0 16 3 16 0 1 9 0 52 8 0 2 52 6 0 3 52 6 0 2 16 1 52 6 0 3 52 6 0 4 32 222 0 16 0 52 0 0 1 6 33 13 0 5 16 0 52 2 0 1 18 0 52 1 0 2 33 68 0 20 4 0 16 0 1 9 0 52 8 0 2 48 1 17 3 16 0 1 13 0 52 8 0 2 17 4 1 14 0 16 3 16 4 1 10 0 1 11 0 1 15 0 16 3 16 4 52 6 0 3 52 6 0 2 16 1 52 6 0 3 52 6 0 4 32 128 0 16 0 52 0 0 1 6 33 14 0 5 16 0 52 2 0 1 1 16 0 52 1 0 2 33 72 0 16 2 33 10 0 20 4 0 16 2 48 1 32 3 0 1 5 0 17 3 16 0 1 9 0 52 8 0 2 17 4 1 17 0 16 3 16 4 1 10 0 1 11 0 1 18 0 16 3 16 4 52 6 0 3 52 6 0 2 16 1 52 6 0 3 52 6 0 4 32 29 0 20 4 0 16 0 48 1 17 3 1 19 0 16 3 1 10 0 16 3 16 1 52 6 0 3 52 6 0 3 50)} {:upvalue-count 0 :arity 1 :constants ("nth" 1 2 3 "list" define "make-symbol" fn "cons" me "map" do "hs-to-sx") :bytecode (16 0 1 1 0 52 0 0 2 17 1 16 0 1 2 0 52 0 0 2 17 2 16 0 1 3 0 52 0 0 2 17 3 1 5 0 16 1 52 6 0 1 1 7 0 1 9 0 20 6 0 16 2 52 10 0 2 52 8 0 2 1 11 0 20 12 0 16 3 52 10 0 2 52 8 0 2 52 4 0 3 52 4 0 3 50)} {:upvalue-count 13 :arity 1 :constants ("nil?" "number?" "string?" "boolean?" "not" "list?" "first" "=" null-literal not "list" "hs-to-sx" "nth" 1 starts-with? ends-with? contains? precedes? follows? exists? "cons" "map" "rest" object-literal "len" 0 dict hs-make-object list {:upvalue-count 0 :arity 1 :constants ("list" list "first" "hs-to-sx" "nth" 1) :bytecode (1 1 0 16 0 52 2 0 1 20 3 0 16 0 1 5 0 52 4 0 2 48 1 52 0 0 3 50)} template "" {:upvalue-count 2 :arity 0 :constants (">" "len" 0 "append" "list" "") :bytecode (18 0 52 1 0 1 1 2 0 52 0 0 2 33 23 0 18 1 18 0 52 4 0 1 52 3 0 2 19 1 5 1 5 0 19 0 32 1 0 2 50)} {:upvalue-count 3 :arity 1 :constants ("<" "nth" ">=" "a" "<=" "z" "A" "Z" "0" "9" "=" "_" "." "+" 1) :bytecode (16 0 18 0 52 0 0 2 6 33 118 0 5 18 1 16 0 52 1 0 2 17 1 16 1 1 3 0 52 2 0 2 6 33 10 0 5 16 1 1 5 0 52 4 0 2 6 34 80 0 5 16 1 1 6 0 52 2 0 2 6 33 10 0 5 16 1 1 7 0 52 4 0 2 6 34 52 0 5 16 1 1 8 0 52 2 0 2 6 33 10 0 5 16 1 1 9 0 52 4 0 2 6 34 24 0 5 16 1 1 11 0 52 10 0 2 6 34 10 0 5 16 1 1 12 0 52 10 0 2 33 16 0 18 2 16 0 1 14 0 52 13 0 2 49 1 32 2 0 16 0 50)} {:upvalue-count 3 :arity 2 :constants (">=" "=" "nth" "}" 1 "+" "-" "{") :bytecode (16 0 18 0 52 0 0 2 33 5 0 16 0 32 118 0 18 1 16 0 52 2 0 2 1 3 0 52 1 0 2 33 42 0 16 1 1 4 0 52 1 0 2 33 5 0 16 0 32 22 0 18 2 16 0 1 4 0 52 5 0 2 16 1 1 4 0 52 6 0 2 49 2 32 58 0 18 1 16 0 52 2 0 2 1 7 0 52 1 0 2 33 25 0 18 2 16 0 1 4 0 52 5 0 2 16 1 1 4 0 52 5 0 2 49 2 32 15 0 18 2 16 0 1 4 0 52 5 0 2 16 1 49 2 50)} {:upvalue-count 9 :arity 0 :constants ("<" "nth" "=" "$" "+" 1 "{" 2 "slice" "append" "list" "hs-to-sx" "hs-compile" "str") :bytecode (18 0 18 1 52 0 0 2 33 253 0 18 2 18 0 52 1 0 2 17 0 16 0 1 3 0 52 2 0 2 6 33 16 0 5 18 0 1 5 0 52 4 0 2 18 1 52 0 0 2 33 181 0 18 2 18 0 1 5 0 52 4 0 2 52 1 0 2 1 6 0 52 2 0 2 33 83 0 18 0 1 7 0 52 4 0 2 17 1 18 3 16 1 1 5 0 48 2 17 2 18 2 16 1 16 2 52 8 0 3 17 3 18 4 48 0 5 18 5 20 11 0 20 12 0 16 3 48 1 48 1 52 10 0 1 52 9 0 2 19 5 5 16 2 1 5 0 52 4 0 2 19 0 5 18 6 49 0 32 70 0 18 0 1 5 0 52 4 0 2 17 1 18 7 16 1 48 1 17 2 18 2 16 1 16 2 52 8 0 3 17 3 18 4 48 0 5 18 5 20 11 0 20 12 0 16 3 48 1 48 1 52 10 0 1 52 9 0 2 19 5 5 16 2 19 0 5 18 6 49 0 32 27 0 18 8 16 0 52 13 0 2 19 8 5 18 0 1 5 0 52 4 0 2 19 0 5 18 6 49 0 32 1 0 2 50)} str beep! hs-beep array-index nth 2 array-slice hs-slice 3 prop-is hs-prop-is coll-where filter fn it coll-sorted hs-sorted-by coll-sorted-desc hs-sorted-by-desc coll-mapped map coll-split hs-split-by coll-joined hs-joined-by method-call "make-symbol" "." hs-method-call string-postfix block-literal me event hs-first "last" hs-last host-get ref query hs-query-first attr dom-get-attr style dom-get-style has-class? dom-has-class? local array no hs-falsy? and or = + hs-add - * / "%" modulo empty? hs-empty? nil? matches? hs-matches? matches-ignore-case? hs-matches-ignore-case? starts-with-ic? hs-starts-with-ic? ends-with-ic? hs-ends-with-ic? hs-contains? contains-ignore-case? hs-contains-ignore-case? as hs-coerce in? of first last "!=" "<" < ">" > "<=" <= ">=" >= closest dom-closest next hs-next previous hs-previous hs-query-last add-class for-each _el dom-add-class hs-query-all set-style dom-set-style set-styles do {:upvalue-count 1 :arity 1 :constants ("list" dom-set-style "first" "nth" 1) :bytecode (1 1 0 18 0 16 0 52 2 0 1 16 0 1 4 0 52 3 0 2 52 0 0 4 50)} multi-add-class {:upvalue-count 1 :arity 1 :constants ("list" dom-add-class) :bytecode (1 1 0 18 0 16 0 52 0 0 3 50)} add-class-when host-call "querySelectorAll" when multi-remove-class {:upvalue-count 1 :arity 1 :constants ("list" dom-remove-class) :bytecode (1 1 0 18 0 16 0 52 0 0 3 50)} remove-class dom-remove-class remove-element dom-remove add-value set! hs-add-to! remove-value hs-remove-from! empty-target hs-empty-target! open-element hs-open! close-element hs-close! swap! let _swap_tmp remove-attr dom-remove-attr remove-css {:upvalue-count 1 :arity 1 :constants ("list" dom-set-style "") :bytecode (1 1 0 18 0 16 0 1 2 0 52 0 0 4 50)} toggle-class hs-toggle-class! toggle-class-for perform io-sleep set-on hs-set-on! toggle-between hs-toggle-between! toggle-style hs-toggle-style! toggle-style-between hs-toggle-style-between! 4 toggle-style-cycle hs-toggle-style-cycle! "slice" toggle-attr hs-toggle-attr! toggle-attr-between hs-toggle-attr-between! put! hs-put! if "some" {:upvalue-count 0 :arity 1 :constants ("list?" "=" "first" hs-fetch hs-wait perform) :bytecode (16 0 52 0 0 1 6 33 50 0 5 16 0 52 2 0 1 1 3 0 52 1 0 2 6 34 32 0 5 16 0 52 2 0 1 1 4 0 52 1 0 2 6 34 14 0 5 16 0 52 2 0 1 1 5 0 52 1 0 2 50)} "reduce" {:upvalue-count 0 :arity 2 :constants ("list" let it) :bytecode (1 1 0 1 2 0 16 1 52 0 0 2 52 0 0 1 16 0 52 0 0 3 50)} "-" "reverse" wait hs-wait wait-for log console-log send trigger dom-dispatch hide "display" hs-hide! show hs-show! transition transition-from 5 hs-transition-from repeat repeat-until hs-repeat-until repeat-while hs-repeat-while fetch hs-fetch fetch-gql hs-fetch-gql call return raise "hs-return" throw settle hs-settle go hs-navigate! append! "symbol?" hs-append hs-append! tell you yourself for take! 6 "attr" hs-take! make install hs-install measure hs-measure increment! decrement! break "hs-break" continue "hs-continue" exit on init hs-init def {:upvalue-count 0 :arity 1 :constants ("list?" "=" "first" ref "make-symbol" "nth" 1) :bytecode (16 0 52 0 0 1 6 33 14 0 5 16 0 52 2 0 1 1 3 0 52 1 0 2 33 16 0 16 0 1 6 0 52 5 0 2 52 4 0 1 32 6 0 16 0 52 4 0 1 50)} define guard _e true list? behavior sx-eval "sx-parse" cek-eval component render {:upvalue-count 1 :arity 1 :constants ("<" "len" 2 "list" "cons" "make-keyword" "first" "hs-to-sx" "nth" 1 "rest") :bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 33 7 0 52 3 0 0 32 46 0 16 0 52 6 0 1 52 5 0 1 20 7 0 16 0 1 9 0 52 8 0 2 48 1 18 0 16 0 52 10 0 1 52 10 0 1 48 1 52 4 0 2 52 4 0 2 50)} render-to-html not-in? type-check hs-type-check type-check-strict hs-type-check-strict strict-eq hs-strict-eq eq-ignore-case hs-eq-ignore-case some every every? scroll! hs-scroll! select! hs-select! reset! hs-reset! default! halt! hs-halt! focus! dom-focus) :bytecode (16 0 52 0 0 1 33 4 0 2 32 210 33 16 0 52 1 0 1 33 5 0 16 0 32 196 33 16 0 52 2 0 1 33 5 0 16 0 32 182 33 16 0 52 3 0 1 33 5 0 16 0 32 168 33 16 0 52 5 0 1 52 4 0 1 33 5 0 16 0 32 150 33 16 0 52 6 0 1 17 1 16 1 1 8 0 52 7 0 2 33 4 0 2 32 126 33 16 1 1 9 0 52 7 0 2 33 24 0 1 9 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 90 33 16 1 1 14 0 52 7 0 2 6 34 66 0 5 16 1 1 15 0 52 7 0 2 6 34 52 0 5 16 1 1 16 0 52 7 0 2 6 34 38 0 5 16 1 1 17 0 52 7 0 2 6 34 24 0 5 16 1 1 18 0 52 7 0 2 6 34 10 0 5 16 1 1 19 0 52 7 0 2 33 22 0 16 1 20 11 0 16 0 52 22 0 1 52 21 0 2 52 20 0 2 32 242 32 16 1 1 23 0 52 7 0 2 33 67 0 16 0 1 13 0 52 12 0 2 17 2 16 2 52 24 0 1 1 25 0 52 7 0 2 33 10 0 1 26 0 52 10 0 1 32 27 0 1 27 0 1 28 0 51 29 0 16 2 52 21 0 2 52 20 0 2 52 10 0 1 52 20 0 2 32 163 32 16 1 1 30 0 52 7 0 2 33 115 0 16 0 1 13 0 52 12 0 2 17 2 52 10 0 0 17 3 1 31 0 17 4 1 25 0 17 5 16 2 52 24 0 1 17 6 51 32 0 1 4 1 3 17 7 5 51 33 0 1 6 1 2 1 8 17 8 5 51 34 0 1 6 1 2 1 9 17 9 5 51 35 0 1 5 1 6 1 2 1 9 1 7 1 3 1 10 1 8 1 4 17 10 5 16 10 48 0 5 16 7 48 0 5 1 36 0 16 3 52 20 0 2 32 36 32 16 1 1 37 0 52 7 0 2 33 24 0 1 38 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 0 32 16 1 1 39 0 52 7 0 2 33 38 0 1 40 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 206 31 16 1 1 42 0 52 7 0 2 33 52 0 1 43 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 20 11 0 16 0 1 44 0 52 12 0 2 48 1 52 10 0 4 32 142 31 16 1 1 45 0 52 7 0 2 33 33 0 1 46 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 16 0 1 41 0 52 12 0 2 52 10 0 3 32 97 31 16 1 1 47 0 52 7 0 2 33 52 0 1 48 0 1 49 0 1 50 0 52 10 0 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 3 32 33 31 16 1 1 51 0 52 7 0 2 33 52 0 1 52 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 1 49 0 1 50 0 52 10 0 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 52 10 0 3 32 225 30 16 1 1 53 0 52 7 0 2 33 52 0 1 54 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 1 49 0 1 50 0 52 10 0 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 52 10 0 3 32 161 30 16 1 1 55 0 52 7 0 2 33 52 0 1 56 0 1 49 0 1 50 0 52 10 0 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 3 32 97 30 16 1 1 57 0 52 7 0 2 33 38 0 1 58 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 47 30 16 1 1 59 0 52 7 0 2 33 38 0 1 60 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 253 29 16 1 1 61 0 52 7 0 2 33 134 0 16 0 1 13 0 52 12 0 2 17 2 20 11 0 16 0 1 41 0 52 12 0 2 52 21 0 2 17 3 16 2 52 5 0 1 6 33 18 0 5 16 2 52 6 0 1 1 63 0 52 62 0 1 52 7 0 2 33 51 0 20 11 0 16 2 1 13 0 52 12 0 2 48 1 17 4 16 2 1 41 0 52 12 0 2 17 5 1 64 0 16 4 16 5 16 3 52 20 0 2 52 20 0 2 52 20 0 2 32 20 0 1 64 0 20 11 0 16 2 48 1 16 3 52 20 0 2 52 20 0 2 32 107 29 16 1 1 65 0 52 7 0 2 33 33 0 1 36 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 16 0 1 41 0 52 12 0 2 52 10 0 3 32 62 29 16 1 1 66 0 52 7 0 2 33 69 0 20 62 0 16 0 1 13 0 52 12 0 2 52 21 0 2 17 2 20 11 0 16 0 1 41 0 52 12 0 2 48 1 17 3 16 2 52 24 0 1 1 25 0 52 7 0 2 33 5 0 16 3 32 11 0 1 49 0 16 2 16 3 52 10 0 3 32 237 28 16 1 1 67 0 52 7 0 2 33 6 0 1 67 0 32 219 28 16 1 1 50 0 52 7 0 2 33 6 0 1 50 0 32 201 28 16 1 1 68 0 52 7 0 2 33 6 0 1 68 0 32 183 28 16 1 18 0 52 7 0 2 33 89 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 17 2 16 0 1 41 0 52 12 0 2 17 3 16 3 1 6 0 52 7 0 2 33 12 0 1 69 0 16 2 52 10 0 2 32 35 0 16 3 1 70 0 52 7 0 2 33 12 0 1 71 0 16 2 52 10 0 2 32 11 0 1 72 0 16 2 16 3 52 10 0 3 32 83 28 16 1 1 73 0 52 7 0 2 33 16 0 16 0 1 13 0 52 12 0 2 52 62 0 1 32 55 28 16 1 1 74 0 52 7 0 2 33 19 0 1 75 0 16 0 1 13 0 52 12 0 2 52 10 0 2 32 24 28 16 1 1 76 0 52 7 0 2 33 33 0 1 77 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 32 235 27 16 1 1 78 0 52 7 0 2 33 33 0 1 79 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 32 190 27 16 1 1 80 0 52 7 0 2 33 33 0 1 81 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 16 0 1 41 0 52 12 0 2 52 10 0 3 32 145 27 16 1 1 82 0 52 7 0 2 33 16 0 16 0 1 13 0 52 12 0 2 52 62 0 1 32 117 27 16 1 1 83 0 52 7 0 2 33 23 0 1 28 0 20 11 0 16 0 52 22 0 1 52 21 0 2 52 20 0 2 32 82 27 16 1 1 9 0 52 7 0 2 33 24 0 1 9 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 46 27 16 1 1 84 0 52 7 0 2 33 24 0 1 85 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 10 27 16 1 1 86 0 52 7 0 2 33 38 0 1 86 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 216 26 16 1 1 87 0 52 7 0 2 33 38 0 1 87 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 166 26 16 1 1 88 0 52 7 0 2 33 38 0 1 88 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 116 26 16 1 1 89 0 52 7 0 2 33 38 0 1 90 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 66 26 16 1 1 91 0 52 7 0 2 33 38 0 1 91 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 16 26 16 1 1 92 0 52 7 0 2 33 38 0 1 92 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 222 25 16 1 1 93 0 52 7 0 2 33 38 0 1 93 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 172 25 16 1 18 1 52 7 0 2 33 81 0 16 0 1 41 0 52 12 0 2 52 0 0 1 33 27 0 1 36 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 1 94 0 52 10 0 3 32 35 0 1 95 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 80 25 16 1 1 96 0 52 7 0 2 33 24 0 1 97 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 44 25 16 1 1 19 0 52 7 0 2 33 31 0 1 9 0 1 98 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 52 10 0 2 32 1 25 16 1 1 99 0 52 7 0 2 33 99 0 16 0 1 13 0 52 12 0 2 17 2 16 0 1 41 0 52 12 0 2 17 3 16 3 52 5 0 1 6 33 14 0 5 16 3 52 6 0 1 1 74 0 52 7 0 2 33 26 0 1 100 0 20 11 0 16 2 48 1 16 3 1 13 0 52 12 0 2 52 10 0 3 32 21 0 1 100 0 20 11 0 16 2 48 1 20 11 0 16 3 48 1 52 10 0 3 32 146 24 16 1 1 101 0 52 7 0 2 33 38 0 1 102 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 96 24 16 1 1 103 0 52 7 0 2 33 38 0 1 104 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 46 24 16 1 1 105 0 52 7 0 2 33 38 0 1 106 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 252 23 16 1 1 16 0 52 7 0 2 33 38 0 1 107 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 202 23 16 1 1 108 0 52 7 0 2 33 38 0 1 109 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 152 23 16 1 1 110 0 52 7 0 2 33 33 0 1 111 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 16 0 1 41 0 52 12 0 2 52 10 0 3 32 107 23 16 1 1 112 0 52 7 0 2 33 38 0 1 107 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 3 32 57 23 16 1 1 113 0 52 7 0 2 33 94 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 17 2 20 11 0 16 0 1 41 0 52 12 0 2 48 1 17 3 16 2 1 114 0 52 7 0 2 33 12 0 1 114 0 16 3 52 10 0 2 32 35 0 16 2 1 115 0 52 7 0 2 33 12 0 1 115 0 16 3 52 10 0 2 32 11 0 1 72 0 16 3 16 2 52 10 0 3 32 207 22 16 1 1 116 0 52 7 0 2 33 45 0 1 9 0 1 88 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 52 10 0 2 32 150 22 16 1 1 117 0 52 7 0 2 33 38 0 1 118 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 100 22 16 1 1 119 0 52 7 0 2 33 38 0 1 120 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 50 22 16 1 1 121 0 52 7 0 2 33 38 0 1 122 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 0 22 16 1 1 123 0 52 7 0 2 33 38 0 1 124 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 206 21 16 1 1 125 0 52 7 0 2 33 33 0 1 126 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 32 161 21 16 1 1 127 0 52 7 0 2 33 33 0 1 128 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 32 116 21 16 1 1 129 0 52 7 0 2 33 33 0 1 130 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 32 71 21 16 1 1 114 0 52 7 0 2 33 68 0 16 0 52 24 0 1 1 41 0 52 119 0 2 33 33 0 1 69 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 32 16 0 1 75 0 16 0 1 13 0 52 12 0 2 52 10 0 2 32 247 20 16 1 1 115 0 52 7 0 2 33 68 0 16 0 52 24 0 1 1 41 0 52 119 0 2 33 33 0 1 71 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 32 16 0 1 131 0 16 0 1 13 0 52 12 0 2 52 10 0 2 32 167 20 16 1 1 132 0 52 7 0 2 33 123 0 16 0 1 41 0 52 12 0 2 17 2 16 2 52 5 0 1 6 33 14 0 5 16 2 52 6 0 1 1 74 0 52 7 0 2 33 59 0 1 133 0 1 49 0 1 134 0 52 10 0 1 1 135 0 1 134 0 16 0 1 13 0 52 12 0 2 52 10 0 3 52 10 0 3 1 136 0 16 2 1 13 0 52 12 0 2 52 10 0 2 52 10 0 3 32 23 0 1 135 0 20 11 0 16 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 32 32 20 16 1 1 137 0 52 7 0 2 33 42 0 1 138 0 20 11 0 16 0 1 44 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 16 0 1 41 0 52 12 0 2 52 10 0 4 32 234 19 16 1 1 139 0 52 7 0 2 33 48 0 16 0 1 13 0 52 12 0 2 17 2 20 11 0 16 0 1 41 0 52 12 0 2 48 1 17 3 1 140 0 51 141 0 1 3 16 2 52 21 0 2 52 20 0 2 32 174 19 16 1 1 142 0 52 7 0 2 33 49 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 17 2 16 0 52 22 0 1 52 22 0 1 17 3 1 140 0 51 143 0 1 2 16 3 52 21 0 2 52 20 0 2 32 113 19 16 1 1 144 0 52 7 0 2 33 253 0 16 0 1 13 0 52 12 0 2 17 2 16 0 1 41 0 52 12 0 2 17 3 16 0 1 44 0 52 12 0 2 17 4 16 3 52 5 0 1 6 33 14 0 5 16 3 52 6 0 1 1 74 0 52 7 0 2 33 19 0 1 136 0 16 3 1 13 0 52 12 0 2 52 10 0 2 32 120 0 16 3 52 5 0 1 6 33 57 0 5 16 3 52 6 0 1 1 112 0 52 7 0 2 6 33 39 0 5 16 3 1 13 0 52 12 0 2 52 5 0 1 6 33 21 0 5 16 3 1 13 0 52 12 0 2 52 6 0 1 1 74 0 52 7 0 2 33 43 0 1 145 0 20 11 0 16 3 1 41 0 52 12 0 2 48 1 1 146 0 16 3 1 13 0 52 12 0 2 1 13 0 52 12 0 2 52 10 0 4 32 7 0 20 11 0 16 3 48 1 17 5 1 133 0 1 49 0 1 50 0 52 10 0 1 1 147 0 20 11 0 16 4 48 1 1 135 0 1 50 0 16 2 52 10 0 3 52 10 0 3 52 10 0 3 16 5 52 10 0 3 32 104 18 16 1 1 148 0 52 7 0 2 33 49 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 17 2 16 0 52 22 0 1 52 22 0 1 17 3 1 140 0 51 149 0 1 2 16 3 52 21 0 2 52 20 0 2 32 43 18 16 1 1 150 0 52 7 0 2 33 138 0 16 0 1 41 0 52 12 0 2 17 2 16 2 52 5 0 1 6 33 14 0 5 16 2 52 6 0 1 1 74 0 52 7 0 2 33 59 0 1 133 0 1 49 0 1 134 0 52 10 0 1 1 151 0 1 134 0 16 0 1 13 0 52 12 0 2 52 10 0 3 52 10 0 3 1 136 0 16 2 1 13 0 52 12 0 2 52 10 0 2 52 10 0 3 32 38 0 1 151 0 16 2 52 0 0 1 33 6 0 1 67 0 32 7 0 20 11 0 16 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 32 149 17 16 1 1 152 0 52 7 0 2 33 24 0 1 153 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 113 17 16 1 1 154 0 52 7 0 2 33 60 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 17 2 16 0 1 41 0 52 12 0 2 17 3 1 155 0 20 11 0 16 3 48 1 1 156 0 16 2 20 11 0 16 3 48 1 52 10 0 3 52 10 0 3 32 41 17 16 1 1 157 0 52 7 0 2 33 60 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 17 2 16 0 1 41 0 52 12 0 2 17 3 1 155 0 20 11 0 16 3 48 1 1 158 0 16 2 20 11 0 16 3 48 1 52 10 0 3 52 10 0 3 32 225 16 16 1 1 159 0 52 7 0 2 33 24 0 1 160 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 189 16 16 1 1 161 0 52 7 0 2 33 24 0 1 162 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 153 16 16 1 1 163 0 52 7 0 2 33 24 0 1 164 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 117 16 16 1 1 165 0 52 7 0 2 33 79 0 16 0 1 13 0 52 12 0 2 17 2 16 0 1 41 0 52 12 0 2 17 3 1 166 0 1 167 0 20 11 0 16 2 48 1 52 10 0 2 52 10 0 1 1 140 0 18 2 16 2 20 11 0 16 3 48 1 48 2 18 2 16 3 1 167 0 48 2 52 10 0 3 52 10 0 3 32 26 16 16 1 1 168 0 52 7 0 2 33 59 0 16 0 1 41 0 52 12 0 2 52 0 0 1 33 6 0 1 67 0 32 14 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 17 2 1 169 0 16 2 16 0 1 13 0 52 12 0 2 52 10 0 3 32 211 15 16 1 1 170 0 52 7 0 2 33 70 0 16 0 1 41 0 52 12 0 2 52 0 0 1 33 6 0 1 67 0 32 14 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 17 2 16 0 1 13 0 52 12 0 2 17 3 1 140 0 51 171 0 1 2 16 3 52 21 0 2 52 20 0 2 32 129 15 16 1 1 172 0 52 7 0 2 33 33 0 1 173 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 32 84 15 16 1 1 174 0 52 7 0 2 33 101 0 1 140 0 1 173 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 1 175 0 1 28 0 1 176 0 20 11 0 16 0 1 44 0 52 12 0 2 48 1 52 10 0 3 52 10 0 2 1 173 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 52 10 0 4 32 227 14 16 1 1 177 0 52 7 0 2 33 38 0 1 178 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 177 14 16 1 1 179 0 52 7 0 2 33 42 0 1 180 0 20 11 0 16 0 1 44 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 16 0 1 41 0 52 12 0 2 52 10 0 4 32 123 14 16 1 1 181 0 52 7 0 2 33 52 0 16 0 1 41 0 52 12 0 2 17 2 1 182 0 16 2 52 0 0 1 33 6 0 1 67 0 32 7 0 20 11 0 16 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 32 59 14 16 1 1 183 0 52 7 0 2 33 61 0 1 184 0 20 11 0 16 0 1 185 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 20 11 0 16 0 1 41 0 52 12 0 2 48 1 20 11 0 16 0 1 44 0 52 12 0 2 48 1 52 10 0 5 32 242 13 16 1 1 186 0 52 7 0 2 33 62 0 1 187 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 1 28 0 20 11 0 16 0 1 44 0 16 0 52 24 0 1 52 188 0 3 52 21 0 2 52 20 0 2 52 10 0 4 32 168 13 16 1 1 189 0 52 7 0 2 33 33 0 1 190 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 52 10 0 3 32 123 13 16 1 1 191 0 52 7 0 2 33 61 0 1 192 0 20 11 0 16 0 1 185 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 20 11 0 16 0 1 41 0 52 12 0 2 48 1 20 11 0 16 0 1 44 0 52 12 0 2 48 1 52 10 0 5 32 50 13 16 1 1 155 0 52 7 0 2 33 30 0 18 2 16 0 1 13 0 52 12 0 2 20 11 0 16 0 1 41 0 52 12 0 2 48 1 49 2 32 8 13 16 1 1 193 0 52 7 0 2 33 47 0 1 194 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 16 0 1 41 0 52 12 0 2 20 11 0 16 0 1 44 0 52 12 0 2 48 1 52 10 0 4 32 205 12 16 1 1 195 0 52 7 0 2 33 106 0 16 0 52 24 0 1 1 44 0 52 119 0 2 33 52 0 1 195 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 20 11 0 16 0 1 44 0 52 12 0 2 48 1 52 10 0 4 32 35 0 1 147 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 87 12 16 1 1 140 0 52 7 0 2 33 100 0 20 11 0 16 0 52 22 0 1 52 21 0 2 17 2 16 2 52 24 0 1 1 13 0 52 119 0 2 6 33 10 0 5 51 197 0 16 2 52 196 0 2 33 43 0 51 199 0 16 2 16 2 52 24 0 1 1 13 0 52 200 0 2 52 12 0 2 16 2 52 201 0 1 52 22 0 1 52 201 0 1 52 198 0 3 32 9 0 1 140 0 16 2 52 20 0 2 32 231 11 16 1 1 202 0 52 7 0 2 33 19 0 1 203 0 16 0 1 13 0 52 12 0 2 52 10 0 2 32 200 11 16 1 1 204 0 52 7 0 2 33 9 0 18 3 16 0 49 1 32 179 11 16 1 1 205 0 52 7 0 2 33 24 0 1 206 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 143 11 16 1 1 207 0 52 7 0 2 33 9 0 18 4 16 0 49 1 32 122 11 16 1 1 208 0 52 7 0 2 33 34 0 1 209 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 16 0 1 13 0 52 12 0 2 2 52 10 0 4 32 76 11 16 1 1 210 0 52 7 0 2 33 63 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 17 2 16 0 52 24 0 1 1 41 0 52 119 0 2 33 12 0 16 0 1 41 0 52 12 0 2 32 3 0 1 211 0 17 3 1 212 0 16 2 16 3 52 10 0 3 32 1 11 16 1 1 213 0 52 7 0 2 33 63 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 17 2 16 0 52 24 0 1 1 41 0 52 119 0 2 33 12 0 16 0 1 41 0 52 12 0 2 32 3 0 1 211 0 17 3 1 214 0 16 2 16 3 52 10 0 3 32 182 10 16 1 1 215 0 52 7 0 2 33 9 0 18 5 16 0 49 1 32 161 10 16 1 1 216 0 52 7 0 2 33 124 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 17 2 20 11 0 16 0 1 41 0 52 12 0 2 48 1 17 3 20 11 0 16 0 1 44 0 52 12 0 2 48 1 17 4 16 0 1 185 0 52 12 0 2 17 5 16 0 1 217 0 52 12 0 2 17 6 1 218 0 16 6 52 0 0 1 33 6 0 1 67 0 32 7 0 20 11 0 16 6 48 1 16 2 16 3 16 4 16 5 33 10 0 20 11 0 16 5 48 1 32 1 0 2 52 10 0 6 32 25 10 16 1 1 219 0 52 7 0 2 33 9 0 18 6 16 0 49 1 32 4 10 16 1 1 220 0 52 7 0 2 33 60 0 1 221 0 1 49 0 52 10 0 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 3 1 49 0 52 10 0 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 52 10 0 3 32 188 9 16 1 1 222 0 52 7 0 2 33 60 0 1 223 0 1 49 0 52 10 0 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 3 1 49 0 52 10 0 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 52 10 0 3 32 116 9 16 1 1 224 0 52 7 0 2 33 33 0 1 225 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 16 0 1 41 0 52 12 0 2 52 10 0 3 32 71 9 16 1 1 226 0 52 7 0 2 33 49 0 1 227 0 16 0 1 13 0 52 12 0 2 16 0 1 41 0 52 12 0 2 33 17 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 32 1 0 2 52 10 0 3 32 10 9 16 1 1 228 0 52 7 0 2 33 68 0 16 0 1 13 0 52 12 0 2 17 2 16 2 52 2 0 1 33 9 0 16 2 52 62 0 1 32 7 0 20 11 0 16 2 48 1 17 3 20 11 0 16 0 52 22 0 1 52 22 0 1 52 21 0 2 17 4 16 3 16 4 52 20 0 2 32 186 8 16 1 1 229 0 52 7 0 2 33 68 0 16 0 1 13 0 52 12 0 2 17 2 16 2 52 0 0 1 33 21 0 1 230 0 1 28 0 1 231 0 2 52 10 0 3 52 10 0 2 32 24 0 1 230 0 1 28 0 1 231 0 20 11 0 16 2 48 1 52 10 0 3 52 10 0 2 32 106 8 16 1 1 232 0 52 7 0 2 33 24 0 1 230 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 70 8 16 1 1 233 0 52 7 0 2 33 13 0 1 234 0 1 67 0 52 10 0 2 32 45 8 16 1 1 235 0 52 7 0 2 33 24 0 1 236 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 9 8 16 1 1 237 0 52 7 0 2 33 78 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 17 2 20 11 0 16 0 1 13 0 52 12 0 2 48 1 17 3 16 2 52 238 0 1 33 23 0 1 155 0 16 2 1 239 0 16 2 16 3 52 10 0 3 52 10 0 3 32 11 0 1 240 0 16 3 16 2 52 10 0 3 32 175 7 16 1 1 241 0 52 7 0 2 33 71 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 17 2 1 166 0 1 67 0 16 2 52 10 0 2 1 242 0 16 2 52 10 0 2 1 243 0 16 2 52 10 0 2 52 10 0 3 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 92 7 16 1 1 244 0 52 7 0 2 33 9 0 18 7 16 0 49 1 32 71 7 16 1 1 245 0 52 7 0 2 33 58 1 16 0 1 13 0 52 12 0 2 17 2 16 0 1 41 0 52 12 0 2 17 3 16 0 52 24 0 1 1 44 0 52 119 0 2 33 12 0 16 0 1 44 0 52 12 0 2 32 1 0 2 17 4 16 0 52 24 0 1 1 185 0 52 119 0 2 33 12 0 16 0 1 185 0 52 12 0 2 32 1 0 2 17 5 16 0 52 24 0 1 1 217 0 52 119 0 2 33 12 0 16 0 1 217 0 52 12 0 2 32 1 0 2 17 6 16 0 52 24 0 1 1 246 0 52 119 0 2 33 12 0 16 0 1 246 0 52 12 0 2 32 1 0 2 17 7 16 5 33 10 0 20 11 0 16 5 48 1 32 3 0 1 67 0 17 8 16 4 52 0 0 1 33 4 0 2 32 53 0 16 4 52 5 0 1 6 33 14 0 5 16 4 52 6 0 1 1 74 0 52 7 0 2 33 19 0 1 136 0 16 4 1 13 0 52 12 0 2 52 10 0 2 32 7 0 20 11 0 16 4 48 1 17 9 16 2 1 247 0 52 7 0 2 6 33 10 0 5 16 6 6 34 3 0 5 16 7 33 36 0 1 248 0 16 8 16 2 16 3 16 9 16 6 16 7 33 10 0 20 11 0 16 7 48 1 32 1 0 2 52 10 0 7 32 15 0 1 248 0 16 8 16 2 16 3 16 9 52 10 0 5 32 1 6 16 1 1 249 0 52 7 0 2 33 9 0 18 8 16 0 49 1 32 236 5 16 1 1 250 0 52 7 0 2 33 23 0 1 251 0 20 11 0 16 0 52 22 0 1 52 21 0 2 52 20 0 2 32 201 5 16 1 1 252 0 52 7 0 2 33 24 0 1 253 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 165 5 16 1 1 254 0 52 7 0 2 33 54 0 18 9 16 0 1 13 0 52 12 0 2 16 0 1 41 0 52 12 0 2 16 0 52 24 0 1 1 44 0 52 119 0 2 33 12 0 16 0 1 44 0 52 12 0 2 32 1 0 2 49 3 32 99 5 16 1 1 255 0 52 7 0 2 33 54 0 18 10 16 0 1 13 0 52 12 0 2 16 0 1 41 0 52 12 0 2 16 0 52 24 0 1 1 44 0 52 119 0 2 33 12 0 16 0 1 44 0 52 12 0 2 32 1 0 2 49 3 32 33 5 16 1 1 0 1 52 7 0 2 33 13 0 1 230 0 1 1 1 52 10 0 2 32 8 5 16 1 1 2 1 52 7 0 2 33 13 0 1 230 0 1 3 1 52 10 0 2 32 239 4 16 1 1 4 1 52 7 0 2 33 4 0 2 32 223 4 16 1 1 5 1 52 7 0 2 33 9 0 18 11 16 0 49 1 32 202 4 16 1 1 6 1 52 7 0 2 33 35 0 1 7 1 1 49 0 52 10 0 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 3 52 10 0 2 32 155 4 16 1 1 8 1 52 7 0 2 33 156 0 20 11 0 16 0 1 44 0 52 12 0 2 48 1 17 2 51 9 1 16 0 1 41 0 52 12 0 2 52 21 0 2 17 3 1 10 1 16 0 1 13 0 52 12 0 2 52 62 0 1 1 49 0 16 3 1 11 1 1 12 1 1 13 1 1 195 0 1 86 0 1 14 1 1 12 1 52 10 0 2 1 88 0 1 114 0 1 12 1 52 10 0 2 1 231 0 52 10 0 3 52 10 0 3 1 40 0 1 12 1 1 13 0 52 10 0 3 1 230 0 1 12 1 52 10 0 2 52 10 0 4 52 10 0 2 52 10 0 2 16 2 52 10 0 3 52 10 0 3 52 10 0 3 32 243 3 16 1 1 15 1 52 7 0 2 33 9 0 18 12 16 0 49 1 32 222 3 16 1 1 16 1 52 7 0 2 33 51 0 16 0 1 13 0 52 12 0 2 17 2 16 2 52 2 0 1 33 14 0 20 17 1 16 2 48 1 52 6 0 1 32 14 0 1 18 1 20 11 0 16 2 48 1 52 10 0 2 32 159 3 16 1 1 19 1 52 7 0 2 33 16 0 16 0 1 13 0 52 12 0 2 52 62 0 1 32 131 3 16 1 1 20 1 52 7 0 2 33 182 0 16 0 1 13 0 52 12 0 2 17 2 16 0 1 41 0 52 12 0 2 17 3 16 0 52 24 0 1 1 44 0 52 119 0 2 33 12 0 16 0 1 44 0 52 12 0 2 32 1 0 2 17 4 16 0 52 24 0 1 1 185 0 52 119 0 2 33 17 0 20 11 0 16 0 1 185 0 52 12 0 2 48 1 32 1 0 2 17 5 16 2 52 2 0 1 33 9 0 16 2 52 62 0 1 32 7 0 20 11 0 16 2 48 1 17 6 51 21 1 1 7 17 7 5 1 22 1 16 6 16 7 16 3 48 1 52 20 0 2 52 20 0 2 17 8 16 4 33 27 0 1 194 0 16 8 16 4 16 5 33 5 0 16 5 32 3 0 1 67 0 52 10 0 4 32 2 0 16 8 32 193 2 16 1 1 23 1 52 7 0 2 33 45 0 1 9 0 1 107 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 3 52 10 0 2 32 136 2 16 1 1 112 0 52 7 0 2 33 38 0 1 107 0 20 11 0 16 0 1 41 0 52 12 0 2 48 1 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 3 32 86 2 16 1 1 24 1 52 7 0 2 33 33 0 1 25 1 20 11 0 16 0 1 13 0 52 12 0 2 48 1 16 0 1 41 0 52 12 0 2 52 10 0 3 32 41 2 16 1 1 26 1 52 7 0 2 33 33 0 1 27 1 20 11 0 16 0 1 13 0 52 12 0 2 48 1 16 0 1 41 0 52 12 0 2 52 10 0 3 32 252 1 16 1 1 28 1 52 7 0 2 33 38 0 1 29 1 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 202 1 16 1 1 30 1 52 7 0 2 33 38 0 1 31 1 20 11 0 16 0 1 13 0 52 12 0 2 48 1 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 152 1 16 1 1 32 1 52 7 0 2 33 62 0 1 32 1 1 49 0 16 0 1 13 0 52 12 0 2 52 62 0 1 52 10 0 1 20 11 0 16 0 1 44 0 52 12 0 2 48 1 52 10 0 3 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 78 1 16 1 1 33 1 52 7 0 2 33 62 0 1 34 1 1 49 0 16 0 1 13 0 52 12 0 2 52 62 0 1 52 10 0 1 20 11 0 16 0 1 44 0 52 12 0 2 48 1 52 10 0 3 20 11 0 16 0 1 41 0 52 12 0 2 48 1 52 10 0 3 32 4 1 16 1 1 35 1 52 7 0 2 33 33 0 1 36 1 20 11 0 16 0 1 13 0 52 12 0 2 48 1 16 0 1 41 0 52 12 0 2 52 10 0 3 32 215 0 16 1 1 37 1 52 7 0 2 33 24 0 1 38 1 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 179 0 16 1 1 39 1 52 7 0 2 33 24 0 1 40 1 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 143 0 16 1 1 41 1 52 7 0 2 33 62 0 20 11 0 16 0 1 13 0 52 12 0 2 48 1 17 2 20 11 0 16 0 1 41 0 52 12 0 2 48 1 17 3 1 147 0 1 98 0 16 2 52 10 0 2 1 155 0 16 2 16 3 52 10 0 3 52 10 0 3 32 69 0 16 1 1 42 1 52 7 0 2 33 19 0 1 43 1 16 0 1 13 0 52 12 0 2 52 10 0 2 32 38 0 16 1 1 44 1 52 7 0 2 33 24 0 1 45 1 20 11 0 16 0 1 13 0 52 12 0 2 48 1 52 10 0 2 32 2 0 16 0 50)} "hs-to-sx-from-source" {:upvalue-count 0 :arity 1 :constants ("hs-to-sx" "hs-compile") :bytecode (20 0 0 20 1 0 16 0 48 1 49 1 50)}) :bytecode (1 2 0 52 1 0 1 17 0 1 3 0 52 1 0 1 17 1 51 4 0 17 2 5 51 5 0 1 0 17 3 5 51 6 0 17 4 5 51 7 0 17 5 5 51 8 0 17 6 5 51 9 0 17 7 5 51 10 0 17 8 5 51 11 0 17 9 5 51 12 0 17 10 5 51 13 0 1 0 17 11 5 51 14 0 1 0 17 12 5 51 15 0 17 13 5 51 16 0 1 0 1 1 1 3 1 8 1 5 1 9 1 6 1 7 1 10 1 11 1 12 1 4 1 13 128 0 0 5 51 18 0 128 17 0 50))) diff --git a/shared/static/wasm/sx/hs-parser.sx b/shared/static/wasm/sx/hs-parser.sx index 0c337953..918f00a7 100644 --- a/shared/static/wasm/sx/hs-parser.sx +++ b/shared/static/wasm/sx/hs-parser.sx @@ -2729,6 +2729,63 @@ (match-kw "end") (list (quote when-feat-no-op))))) (do (pwf-skip) (match-kw "end") (list (quote when-feat-no-op)))))) + (define + parse-socket-feat + (fn + () + (let + ((seg0 (tp-val))) + (adv!) + (define + collect-segs + (fn + (acc) + (if + (= (tp-type) "class") + (let + ((seg (tp-val))) + (adv!) + (collect-segs (append acc (list seg)))) + acc))) + (let + ((name-path (collect-segs (list seg0)))) + (define + url-cont? + (fn + () + (or + (= (tp-type) "ident") + (= (tp-type) "number") + (= (tp-type) "op") + (= (tp-type) "colon") + (= (tp-type) "dot") + (and + (= (tp-type) "keyword") + (not + (or + (= (tp-val) "end") + (= (tp-val) "with") + (= (tp-val) "on") + (= (tp-val) "as"))))))) + (define + collect-url + (fn + (parts) + (if + (and (not (at-end?)) (url-cont?)) + (let + ((v (tp-val))) + (adv!) + (collect-url (append parts (list v)))) + (join "" parts)))) + (let + ((url (cond ((and (= (tp-type) "op") (= (tp-val) "/")) (do (adv!) (collect-url (list "/")))) ((= (tp-type) "ident") (let ((scheme (tp-val))) (adv!) (if (= (tp-type) "colon") (collect-url (list scheme)) (parse-arith (parse-poss (list (quote ref) scheme)))))) (true (parse-atom))))) + (let + ((timeout-ms (if (match-kw "with") (do (adv!) (parse-expr)) nil))) + (let + ((on-msg (if (match-kw "on") (do (adv!) (let ((json? (if (match-kw "as") (do (adv!) true) false))) (let ((body (parse-cmd-list))) (list (quote on-message) json? body)))) nil))) + (match-kw "end") + (list (quote socket) name-path url timeout-ms on-msg)))))))) (define parse-feat (fn @@ -2749,6 +2806,7 @@ ((= val "behavior") (do (adv!) (parse-behavior-feat))) ((= val "live") (do (adv!) (parse-live-feat))) ((= val "when") (do (adv!) (parse-when-feat))) + ((= val "socket") (do (adv!) (parse-socket-feat))) (true (parse-cmd-list)))))) (define coll-feats diff --git a/shared/static/wasm/sx/hs-parser.sxbc b/shared/static/wasm/sx/hs-parser.sxbc deleted file mode 100644 index 09575530..00000000 --- a/shared/static/wasm/sx/hs-parser.sxbc +++ /dev/null @@ -1,3 +0,0 @@ -(sxbc 1 "3c0d58c5ef95516a" - (code - :constants ("hs-parse" {:upvalue-count 0 :arity 2 :constants (0 "len" {:upvalue-count 3 :arity 0 :constants ("<" "nth") :bytecode (18 0 18 1 52 0 0 2 33 11 0 18 2 18 0 52 1 0 2 32 1 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("get" "type" "eof") :bytecode (18 0 48 0 17 0 16 0 33 12 0 16 0 1 1 0 52 0 0 2 32 3 0 1 2 0 50)} {:upvalue-count 1 :arity 0 :constants ("get" "value") :bytecode (18 0 48 0 17 0 16 0 33 12 0 16 0 1 1 0 52 0 0 2 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("nth" "+" 1) :bytecode (18 0 18 1 52 0 0 2 17 0 18 1 1 2 0 52 1 0 2 19 1 5 16 0 50)} {:upvalue-count 3 :arity 0 :constants (">=" "=" "eof") :bytecode (18 0 18 1 52 0 0 2 6 34 12 0 5 18 2 48 0 1 2 0 52 1 0 2 50)} {:upvalue-count 3 :arity 1 :constants ("=" "keyword") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 11 0 5 18 1 48 0 16 0 52 0 0 2 33 9 0 18 2 48 0 5 3 32 1 0 2 50)} {:upvalue-count 2 :arity 1 :constants ("error" "str" "Expected '" "' at position ") :bytecode (18 0 16 0 48 1 33 4 0 3 32 18 0 1 2 0 16 0 1 3 0 18 1 52 1 0 4 52 0 0 1 50)} {:upvalue-count 0 :arity 1 :constants ("len" ">=" 3 "=" "substring" "-" 2 "ms" "parse-number" 0 "nth" 1 "s" "*" 1000) :bytecode (16 0 52 0 0 1 17 1 16 1 1 2 0 52 1 0 2 6 33 25 0 5 16 0 16 1 1 6 0 52 5 0 2 16 1 52 4 0 3 1 7 0 52 3 0 2 33 25 0 16 0 1 9 0 16 1 1 6 0 52 5 0 2 52 4 0 3 52 8 0 1 32 77 0 16 1 1 6 0 52 1 0 2 6 33 23 0 5 16 0 16 1 1 11 0 52 5 0 2 52 10 0 2 1 12 0 52 3 0 2 33 32 0 1 14 0 16 0 1 9 0 16 1 1 11 0 52 5 0 2 52 4 0 3 52 8 0 1 52 13 0 2 32 6 0 16 0 52 8 0 1 50)} {:upvalue-count 4 :arity 1 :constants ("=" "ident" "keyword" "list" . "attr" attr "class" "get" "value" "style" style) :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 34 10 0 5 16 1 1 2 0 52 0 0 2 33 23 0 18 2 48 0 5 18 3 1 4 0 16 0 16 2 52 3 0 3 49 1 32 107 0 16 1 1 5 0 52 0 0 2 33 19 0 18 2 48 0 5 1 6 0 16 2 16 0 52 3 0 3 32 76 0 16 1 1 7 0 52 0 0 2 33 31 0 18 2 48 0 1 9 0 52 8 0 2 17 3 18 3 1 4 0 16 0 16 3 52 3 0 3 49 1 32 33 0 16 1 1 10 0 52 0 0 2 33 19 0 18 2 48 0 5 1 11 0 16 2 16 0 52 3 0 3 32 2 0 16 0 50)} {:upvalue-count 6 :arity 1 :constants ("=" "class" "not" "list" "make-symbol" "." "paren-open" method-call) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 9 0 5 18 1 48 0 52 2 0 1 33 33 0 18 2 48 0 17 1 18 3 48 0 5 18 4 1 5 0 52 4 0 1 16 0 16 1 52 3 0 3 49 1 32 40 0 18 0 48 0 1 6 0 52 0 0 2 33 24 0 18 5 48 0 17 1 18 4 1 7 0 16 0 16 1 52 3 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 3 :arity 1 :constants ("=" "selector" "list" me "class" "str" "." "id" "#" "*") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 33 23 0 18 2 48 0 5 16 0 16 2 1 3 0 52 2 0 1 52 2 0 3 32 100 0 16 1 1 4 0 52 0 0 2 33 30 0 18 2 48 0 5 16 0 1 6 0 16 2 52 5 0 2 1 3 0 52 2 0 1 52 2 0 3 32 58 0 16 1 1 7 0 52 0 0 2 33 30 0 18 2 48 0 5 16 0 1 8 0 16 2 52 5 0 2 1 3 0 52 2 0 1 52 2 0 3 32 16 0 16 0 1 9 0 1 3 0 52 2 0 1 52 2 0 3 50)} {:upvalue-count 5 :arity 1 :constants ("=" "selector" "class" "str" "." "id" "#" "*" "in" "list") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 33 10 0 18 2 48 0 5 16 2 32 61 0 16 1 1 2 0 52 0 0 2 33 17 0 18 2 48 0 5 1 4 0 16 2 52 3 0 2 32 32 0 16 1 1 5 0 52 0 0 2 33 17 0 18 2 48 0 5 1 6 0 16 2 52 3 0 2 32 3 0 1 7 0 17 3 18 3 1 8 0 48 1 33 15 0 16 0 16 3 18 4 48 0 52 9 0 3 32 8 0 16 0 16 3 52 9 0 2 50)} {:upvalue-count 17 :arity 0 :constants ("=" "number" "string" "template" "list" template "keyword" "true" "false" "null" "nil" null-literal "undefined" "beep" "op" "!" beep! "not" not "no" no "eval" "paren-open" sx-eval "the" "me" me "I" "it" "result" it "event" event "target" "make-symbol" "." "detail" "my" "your" "its" "closest" closest "next" next "previous" previous "first" first "last" last "id" query "str" "#" "selector" "attr" attr "style" style "local" local "class" "ident" ref "paren-close" "brace-open" {:upvalue-count 6 :arity 1 :constants ("=" "brace-close" "string" "local" "true" "false" "null" "list" ref "colon" "comma" "cons") :bytecode (18 0 48 0 6 34 12 0 5 18 1 48 0 1 1 0 52 0 0 2 33 28 0 18 1 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 203 0 18 1 48 0 1 2 0 52 0 0 2 33 16 0 18 3 48 0 17 1 18 2 48 0 5 16 1 32 13 0 18 3 48 0 17 1 18 2 48 0 5 16 1 17 1 18 1 48 0 1 3 0 52 0 0 2 33 71 0 18 3 48 0 17 2 18 2 48 0 5 16 2 1 4 0 52 0 0 2 33 4 0 3 32 41 0 16 2 1 5 0 52 0 0 2 33 4 0 4 32 25 0 16 2 1 6 0 52 0 0 2 33 4 0 2 32 9 0 1 8 0 16 2 52 7 0 2 32 30 0 18 1 48 0 1 9 0 52 0 0 2 33 12 0 18 2 48 0 5 18 4 48 0 32 4 0 18 4 48 0 17 2 18 1 48 0 1 10 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 5 16 1 16 2 52 7 0 2 16 0 52 11 0 2 49 1 50)} object-literal "\\" {:upvalue-count 6 :arity 1 :constants ("=" "op" "-" "<" "+" 1 "len" "get" "nth" "value" ">" "ident" "comma" "append") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 76 0 18 2 1 5 0 52 4 0 2 18 3 52 6 0 1 52 3 0 2 6 33 30 0 5 18 3 18 2 1 5 0 52 4 0 2 52 8 0 2 1 9 0 52 7 0 2 1 10 0 52 0 0 2 33 15 0 18 4 48 0 5 18 4 48 0 5 16 0 32 2 0 16 0 32 65 0 18 0 48 0 1 11 0 52 0 0 2 33 49 0 18 1 48 0 17 1 18 4 48 0 5 18 0 48 0 1 12 0 52 0 0 2 33 7 0 18 4 48 0 32 1 0 2 5 18 5 16 0 16 1 52 13 0 2 49 1 32 2 0 16 0 50)} block-literal "bracket-open" "-" - 0 "component" component "some" ">" "len" "+" 1 "get" "nth" "value" "in" "with" some "every" every "type" call) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 33 14 0 18 2 48 0 5 18 3 16 1 49 1 32 186 7 16 0 1 2 0 52 0 0 2 33 10 0 18 2 48 0 5 16 1 32 164 7 16 0 1 3 0 52 0 0 2 33 17 0 18 2 48 0 5 1 5 0 16 1 52 4 0 2 32 135 7 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 7 0 52 0 0 2 33 9 0 18 2 48 0 5 3 32 100 7 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 8 0 52 0 0 2 33 9 0 18 2 48 0 5 4 32 65 7 16 0 1 6 0 52 0 0 2 6 33 24 0 5 16 1 1 9 0 52 0 0 2 6 34 10 0 5 16 1 1 10 0 52 0 0 2 33 15 0 18 2 48 0 5 1 11 0 52 4 0 1 32 10 7 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 12 0 52 0 0 2 33 15 0 18 2 48 0 5 1 11 0 52 4 0 1 32 225 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 13 0 52 0 0 2 33 58 0 18 2 48 0 5 18 0 48 0 1 14 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 15 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 1 16 0 18 4 48 0 52 4 0 2 32 141 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 17 0 52 0 0 2 33 19 0 18 2 48 0 5 1 18 0 18 4 48 0 52 4 0 2 32 96 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 19 0 52 0 0 2 33 19 0 18 2 48 0 5 1 20 0 18 4 48 0 52 4 0 2 32 51 6 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 21 0 52 0 0 2 33 47 0 18 2 48 0 5 18 0 48 0 1 22 0 52 0 0 2 33 14 0 1 23 0 18 5 48 0 52 4 0 2 32 11 0 1 23 0 18 4 48 0 52 4 0 2 32 234 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 24 0 52 0 0 2 33 12 0 18 2 48 0 5 18 6 49 0 32 196 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 25 0 52 0 0 2 33 15 0 18 2 48 0 5 1 26 0 52 4 0 1 32 155 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 27 0 52 0 0 2 33 15 0 18 2 48 0 5 1 26 0 52 4 0 1 32 114 5 16 0 1 6 0 52 0 0 2 6 33 24 0 5 16 1 1 28 0 52 0 0 2 6 34 10 0 5 16 1 1 29 0 52 0 0 2 33 15 0 18 2 48 0 5 1 30 0 52 4 0 1 32 59 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 31 0 52 0 0 2 33 15 0 18 2 48 0 5 1 32 0 52 4 0 1 32 18 5 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 33 0 52 0 0 2 33 29 0 18 2 48 0 5 1 35 0 52 34 0 1 1 32 0 52 4 0 1 1 33 0 52 4 0 3 32 219 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 36 0 52 0 0 2 33 29 0 18 2 48 0 5 1 35 0 52 34 0 1 1 32 0 52 4 0 1 1 36 0 52 4 0 3 32 164 4 16 0 1 6 0 52 0 0 2 6 33 24 0 5 16 1 1 37 0 52 0 0 2 6 34 10 0 5 16 1 1 38 0 52 0 0 2 33 19 0 18 2 48 0 5 18 7 1 26 0 52 4 0 1 49 1 32 105 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 39 0 52 0 0 2 33 19 0 18 2 48 0 5 18 7 1 30 0 52 4 0 1 49 1 32 60 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 40 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 41 0 49 1 32 19 4 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 42 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 43 0 49 1 32 234 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 44 0 52 0 0 2 33 15 0 18 2 48 0 5 18 8 1 45 0 49 1 32 193 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 46 0 52 0 0 2 33 15 0 18 2 48 0 5 18 9 1 47 0 49 1 32 152 3 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 48 0 52 0 0 2 33 15 0 18 2 48 0 5 18 9 1 49 0 49 1 32 111 3 16 0 1 50 0 52 0 0 2 33 24 0 18 2 48 0 5 1 51 0 1 53 0 16 1 52 52 0 2 52 4 0 2 32 75 3 16 0 1 54 0 52 0 0 2 33 17 0 18 2 48 0 5 1 51 0 16 1 52 4 0 2 32 46 3 16 0 1 55 0 52 0 0 2 33 24 0 18 2 48 0 5 1 56 0 16 1 1 26 0 52 4 0 1 52 4 0 3 32 10 3 16 0 1 57 0 52 0 0 2 33 24 0 18 2 48 0 5 1 58 0 16 1 1 26 0 52 4 0 1 52 4 0 3 32 230 2 16 0 1 59 0 52 0 0 2 33 17 0 18 2 48 0 5 1 60 0 16 1 52 4 0 2 32 201 2 16 0 1 61 0 52 0 0 2 33 24 0 18 2 48 0 5 1 51 0 1 35 0 16 1 52 52 0 2 52 4 0 2 32 165 2 16 0 1 62 0 52 0 0 2 33 17 0 18 2 48 0 5 1 63 0 16 1 52 4 0 2 32 136 2 16 0 1 22 0 52 0 0 2 33 39 0 18 2 48 0 5 18 4 48 0 17 2 18 0 48 0 1 64 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 2 32 85 2 16 0 1 65 0 52 0 0 2 33 41 0 18 2 48 0 5 51 66 0 0 10 0 0 0 2 0 1 0 4 1 2 17 2 5 1 67 0 16 2 52 4 0 0 48 1 52 4 0 2 32 32 2 16 0 1 14 0 52 0 0 2 6 33 10 0 5 16 1 1 68 0 52 0 0 2 33 49 0 18 2 48 0 5 51 69 0 0 0 0 1 0 11 0 12 0 2 1 3 17 3 5 16 3 52 4 0 0 48 1 17 4 1 70 0 16 4 18 4 48 0 52 4 0 3 32 213 1 16 0 1 71 0 52 0 0 2 33 12 0 18 2 48 0 5 18 13 49 0 32 189 1 16 0 1 14 0 52 0 0 2 6 33 10 0 5 16 1 1 72 0 52 0 0 2 33 26 0 18 2 48 0 5 18 14 48 0 17 4 1 73 0 1 74 0 16 4 52 4 0 3 32 137 1 16 0 1 75 0 52 0 0 2 33 17 0 18 2 48 0 5 1 76 0 16 1 52 4 0 2 32 108 1 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 77 0 52 0 0 2 33 149 0 18 2 48 0 5 18 0 48 0 1 62 0 52 0 0 2 6 33 54 0 5 18 12 52 79 0 1 18 11 1 81 0 52 80 0 2 52 78 0 2 6 33 30 0 5 18 12 18 11 1 81 0 52 80 0 2 52 83 0 2 1 84 0 52 82 0 2 1 85 0 52 0 0 2 33 51 0 18 1 48 0 17 4 18 2 48 0 5 18 15 1 85 0 48 1 5 18 4 48 0 17 5 18 15 1 86 0 48 1 5 1 87 0 16 4 16 5 18 4 48 0 52 4 0 4 32 18 0 1 18 0 1 20 0 18 4 48 0 52 4 0 2 52 4 0 2 32 189 0 16 0 1 6 0 52 0 0 2 6 33 10 0 5 16 1 1 88 0 52 0 0 2 33 56 0 18 2 48 0 5 18 1 48 0 17 4 18 2 48 0 5 18 15 1 85 0 48 1 5 18 4 48 0 17 5 18 15 1 86 0 48 1 5 1 89 0 16 4 16 5 18 4 48 0 52 4 0 4 32 107 0 16 0 1 6 0 52 0 0 2 6 33 54 0 5 18 12 52 79 0 1 18 11 1 81 0 52 80 0 2 52 78 0 2 6 33 30 0 5 18 12 18 11 1 81 0 52 80 0 2 52 83 0 2 1 90 0 52 82 0 2 1 22 0 52 0 0 2 33 36 0 18 2 48 0 5 16 1 17 4 18 16 48 0 17 5 1 91 0 1 63 0 16 4 52 4 0 2 16 5 52 4 0 3 32 1 0 2 50)} {:upvalue-count 8 :arity 1 :constants ("=" "op" "'s" "class" "paren-open" "list" call "bracket-open" ".." "bracket-close" array-slice array-index) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 14 0 18 2 48 0 5 18 3 16 0 49 1 32 74 1 18 0 48 0 1 3 0 52 0 0 2 33 9 0 18 4 16 0 49 1 32 51 1 18 0 48 0 1 4 0 52 0 0 2 33 20 0 18 5 48 0 17 1 1 6 0 16 0 16 1 52 5 0 3 32 17 1 18 0 48 0 1 7 0 52 0 0 2 33 1 1 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 8 0 52 0 0 2 33 53 0 18 2 48 0 5 18 6 48 0 17 1 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 10 0 16 0 2 16 1 52 5 0 4 49 1 32 166 0 18 6 48 0 17 1 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 8 0 52 0 0 2 33 92 0 18 2 48 0 5 18 0 48 0 1 9 0 52 0 0 2 33 24 0 18 2 48 0 5 18 7 1 10 0 16 0 16 1 2 52 5 0 4 49 1 32 46 0 18 6 48 0 17 2 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 10 0 16 0 16 1 16 2 52 5 0 4 49 1 32 38 0 18 0 48 0 1 9 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 7 1 11 0 16 0 16 1 52 5 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 7 :arity 1 :constants ("=" "op" "==" "!=" "<" ">" "<=" ">=" "===" "!==" "list" = strict-eq not "keyword" "is" "not" "empty" empty? "in" not-in? "between" "and" and >= <= "really" "equal" "to" "a" "an" "!" type-check-strict type-check "ignoring" "case" eq-ignore-case "less" "than" "or" < "greater" > in? "ident" "hs-keyword?" prop-is "am" "exists" exists? "starts" "with" starts-with-ic? starts-with? "ends" ends-with-ic? ends-with? "matches" matches-ignore-case? matches? "contains" contains-ignore-case? contains? "as" "colon" as "str" ":" "of" "list?" "first" ref "make-symbol" "." "nth" 1 of "does" "exist" "match" "contain" "include" "includes" "start" "end" "equals" "precedes" precedes? "follows" follows?) :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 33 108 0 5 16 2 1 2 0 52 0 0 2 6 34 94 0 5 16 2 1 3 0 52 0 0 2 6 34 80 0 5 16 2 1 4 0 52 0 0 2 6 34 66 0 5 16 2 1 5 0 52 0 0 2 6 34 52 0 5 16 2 1 6 0 52 0 0 2 6 34 38 0 5 16 2 1 7 0 52 0 0 2 6 34 24 0 5 16 2 1 8 0 52 0 0 2 6 34 10 0 5 16 2 1 9 0 52 0 0 2 33 109 0 18 2 48 0 5 18 3 48 0 17 3 16 2 1 2 0 52 0 0 2 33 14 0 1 11 0 16 0 16 3 52 10 0 3 32 69 0 16 2 1 8 0 52 0 0 2 33 14 0 1 12 0 16 0 16 3 52 10 0 3 32 43 0 16 2 1 9 0 52 0 0 2 33 21 0 1 13 0 1 12 0 16 0 16 3 52 10 0 3 52 10 0 2 32 10 0 16 2 16 0 16 3 52 10 0 3 32 54 10 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 15 0 52 0 0 2 33 244 3 18 2 48 0 5 18 4 1 16 0 48 1 33 166 1 18 4 1 17 0 48 1 33 19 0 1 13 0 1 18 0 16 0 52 10 0 2 52 10 0 2 32 134 1 18 4 1 19 0 48 1 33 16 0 1 20 0 16 0 18 3 48 0 52 10 0 3 32 108 1 18 4 1 21 0 48 1 33 59 0 18 5 48 0 17 3 18 4 1 22 0 48 1 5 18 5 48 0 17 4 1 13 0 1 23 0 1 24 0 16 0 16 3 52 10 0 3 1 25 0 16 0 16 4 52 10 0 3 52 10 0 3 52 10 0 2 32 39 1 18 4 1 26 0 48 1 33 39 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 13 0 1 12 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 246 0 18 4 1 27 0 48 1 33 31 0 18 4 1 28 0 48 1 5 1 13 0 1 11 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 205 0 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 6 33 7 0 5 18 2 48 0 5 3 33 101 0 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 21 0 1 13 0 1 32 0 16 0 16 3 52 10 0 3 52 10 0 2 32 18 0 1 13 0 1 33 0 16 0 16 3 52 10 0 3 52 10 0 2 32 63 0 18 3 48 0 17 3 18 4 1 34 0 48 1 33 29 0 18 4 1 35 0 48 1 5 1 13 0 1 36 0 16 0 16 3 52 10 0 3 52 10 0 2 32 18 0 1 13 0 1 11 0 16 0 16 3 52 10 0 3 52 10 0 2 32 60 2 18 4 1 17 0 48 1 33 12 0 1 18 0 16 0 52 10 0 2 32 38 2 18 4 1 37 0 48 1 33 66 0 18 4 1 38 0 48 1 5 18 4 1 39 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 25 0 16 0 18 3 48 0 52 10 0 3 32 13 0 1 40 0 16 0 18 3 48 0 52 10 0 3 32 218 1 18 4 1 41 0 48 1 33 66 0 18 4 1 38 0 48 1 5 18 4 1 39 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 24 0 16 0 18 3 48 0 52 10 0 3 32 13 0 1 42 0 16 0 18 3 48 0 52 10 0 3 32 142 1 18 4 1 21 0 48 1 33 52 0 18 5 48 0 17 3 18 4 1 22 0 48 1 5 18 5 48 0 17 4 1 23 0 1 24 0 16 0 16 3 52 10 0 3 1 25 0 16 0 16 4 52 10 0 3 52 10 0 3 32 80 1 18 4 1 19 0 48 1 33 16 0 1 43 0 16 0 18 3 48 0 52 10 0 3 32 54 1 18 4 1 26 0 48 1 33 32 0 18 4 1 27 0 48 1 5 18 4 1 28 0 48 1 5 1 12 0 16 0 18 3 48 0 52 10 0 3 32 12 1 18 4 1 27 0 48 1 33 24 0 18 4 1 28 0 48 1 5 1 11 0 16 0 18 3 48 0 52 10 0 3 32 234 0 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 6 33 7 0 5 18 2 48 0 5 3 33 87 0 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 14 0 1 32 0 16 0 16 3 52 10 0 3 32 11 0 1 33 0 16 0 16 3 52 10 0 3 32 106 0 18 0 48 0 1 44 0 52 0 0 2 6 33 14 0 5 20 45 0 18 1 48 0 48 1 52 16 0 1 33 25 0 18 1 48 0 17 3 18 2 48 0 5 1 46 0 16 0 16 3 52 10 0 3 32 49 0 18 3 48 0 17 3 18 4 1 34 0 48 1 33 22 0 18 4 1 35 0 48 1 5 1 36 0 16 0 16 3 52 10 0 3 32 11 0 1 11 0 16 0 16 3 52 10 0 3 32 40 6 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 47 0 52 0 0 2 33 165 0 18 2 48 0 5 18 4 1 16 0 48 1 33 82 0 18 4 1 19 0 48 1 33 16 0 1 20 0 16 0 18 3 48 0 52 10 0 3 32 53 0 18 4 1 17 0 48 1 33 19 0 1 13 0 1 18 0 16 0 52 10 0 2 52 10 0 2 32 24 0 18 3 48 0 17 3 1 13 0 1 11 0 16 0 16 3 52 10 0 3 52 10 0 2 32 65 0 18 4 1 19 0 48 1 33 16 0 1 43 0 16 0 18 3 48 0 52 10 0 3 32 39 0 18 4 1 17 0 48 1 33 12 0 1 18 0 16 0 52 10 0 2 32 17 0 18 3 48 0 17 3 1 11 0 16 0 16 3 52 10 0 3 32 105 5 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 48 0 52 0 0 2 33 17 0 18 2 48 0 5 1 49 0 16 0 52 10 0 2 32 62 5 16 1 1 14 0 52 0 0 2 6 34 10 0 5 16 1 1 44 0 52 0 0 2 6 33 10 0 5 16 2 1 50 0 52 0 0 2 33 65 0 18 2 48 0 5 18 4 1 51 0 48 1 5 18 5 48 0 17 3 18 4 1 34 0 48 1 33 22 0 18 4 1 35 0 48 1 5 1 52 0 16 0 16 3 52 10 0 3 32 11 0 1 53 0 16 0 16 3 52 10 0 3 32 213 4 16 1 1 14 0 52 0 0 2 6 34 10 0 5 16 1 1 44 0 52 0 0 2 6 33 10 0 5 16 2 1 54 0 52 0 0 2 33 65 0 18 2 48 0 5 18 4 1 51 0 48 1 5 18 5 48 0 17 3 18 4 1 34 0 48 1 33 22 0 18 4 1 35 0 48 1 5 1 55 0 16 0 16 3 52 10 0 3 32 11 0 1 56 0 16 0 16 3 52 10 0 3 32 108 4 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 57 0 52 0 0 2 33 57 0 18 2 48 0 5 18 3 48 0 17 3 18 4 1 34 0 48 1 33 22 0 18 4 1 35 0 48 1 5 1 58 0 16 0 16 3 52 10 0 3 32 11 0 1 59 0 16 0 16 3 52 10 0 3 32 25 4 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 60 0 52 0 0 2 33 57 0 18 2 48 0 5 18 3 48 0 17 3 18 4 1 34 0 48 1 33 22 0 18 4 1 35 0 48 1 5 1 61 0 16 0 16 3 52 10 0 3 32 11 0 1 62 0 16 0 16 3 52 10 0 3 32 198 3 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 63 0 52 0 0 2 33 135 0 18 2 48 0 5 18 1 48 0 1 29 0 52 0 0 2 6 34 12 0 5 18 1 48 0 1 30 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 64 0 52 0 0 2 6 33 9 0 5 18 6 48 0 52 16 0 1 33 39 0 18 2 48 0 5 18 1 48 0 17 4 18 2 48 0 5 1 65 0 16 0 16 3 1 67 0 16 4 52 66 0 3 52 10 0 3 32 11 0 1 65 0 16 0 16 3 52 10 0 3 32 37 3 16 1 1 64 0 52 0 0 2 33 92 0 18 2 48 0 5 18 1 48 0 17 3 18 2 48 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 31 0 52 0 0 2 17 4 16 4 33 7 0 18 2 48 0 32 1 0 2 5 16 4 33 14 0 1 32 0 16 0 16 3 52 10 0 3 32 11 0 1 33 0 16 0 16 3 52 10 0 3 32 189 2 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 68 0 52 0 0 2 33 77 0 18 2 48 0 5 18 3 48 0 17 3 16 0 52 69 0 1 6 33 14 0 5 16 0 52 70 0 1 1 71 0 52 0 0 2 33 25 0 1 73 0 52 72 0 1 16 3 16 0 1 75 0 52 74 0 2 52 10 0 3 32 11 0 1 76 0 16 0 16 3 52 10 0 3 32 86 2 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 19 0 52 0 0 2 33 21 0 18 2 48 0 5 1 43 0 16 0 18 3 48 0 52 10 0 3 32 39 2 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 77 0 52 0 0 2 33 252 0 18 2 48 0 5 18 4 1 16 0 48 1 5 18 4 1 78 0 48 1 33 19 0 1 13 0 1 49 0 16 0 52 10 0 2 52 10 0 2 32 207 0 18 4 1 79 0 48 1 33 23 0 1 13 0 1 59 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 174 0 18 4 1 80 0 48 1 6 34 8 0 5 18 4 1 60 0 48 1 33 23 0 1 13 0 1 62 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 129 0 18 4 1 81 0 48 1 6 34 8 0 5 18 4 1 82 0 48 1 33 23 0 1 13 0 1 62 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 84 0 18 4 1 83 0 48 1 33 31 0 18 4 1 51 0 48 1 5 1 13 0 1 53 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 43 0 18 4 1 84 0 48 1 33 31 0 18 4 1 51 0 48 1 5 1 13 0 1 56 0 16 0 18 3 48 0 52 10 0 3 52 10 0 2 32 2 0 16 0 32 17 1 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 85 0 52 0 0 2 33 21 0 18 2 48 0 5 1 11 0 16 0 18 3 48 0 52 10 0 3 32 226 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 26 0 52 0 0 2 33 29 0 18 2 48 0 5 18 4 1 85 0 48 1 5 1 12 0 16 0 18 3 48 0 52 10 0 3 32 171 0 16 1 1 14 0 52 0 0 2 6 33 38 0 5 16 2 1 80 0 52 0 0 2 6 34 24 0 5 16 2 1 81 0 52 0 0 2 6 34 10 0 5 16 2 1 82 0 52 0 0 2 33 21 0 18 2 48 0 5 1 62 0 16 0 18 3 48 0 52 10 0 3 32 96 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 86 0 52 0 0 2 33 21 0 18 2 48 0 5 1 87 0 16 0 18 5 48 0 52 10 0 3 32 49 0 16 1 1 14 0 52 0 0 2 6 33 10 0 5 16 2 1 88 0 52 0 0 2 33 21 0 18 2 48 0 5 1 89 0 16 0 18 5 48 0 52 10 0 3 32 2 0 16 0 50)} {:upvalue-count 6 :arity 1 :constants ("where" "list" coll-where "sorted" "by" "descending" "not" "ascending" coll-sorted-desc coll-sorted "mapped" "to" coll-mapped "split" coll-split "joined" coll-joined) :bytecode (18 0 1 0 0 48 1 33 36 0 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 2 0 16 0 16 1 52 1 0 3 49 1 32 11 1 18 0 1 3 0 48 1 33 93 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 0 1 5 0 48 1 17 2 16 2 52 6 0 1 33 10 0 18 0 1 7 0 48 1 32 1 0 2 5 18 5 16 2 33 14 0 1 8 0 16 0 16 1 52 1 0 3 32 11 0 1 9 0 16 0 16 1 52 1 0 3 49 1 32 164 0 18 0 1 10 0 48 1 33 44 0 18 0 1 11 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 12 0 16 0 16 1 52 1 0 3 49 1 32 110 0 18 0 1 13 0 48 1 33 44 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 14 0 16 0 16 1 52 1 0 3 49 1 32 56 0 18 0 1 15 0 48 1 33 44 0 18 0 1 4 0 48 1 5 18 1 18 2 18 3 18 4 48 0 48 1 48 1 48 1 17 1 18 5 1 16 0 16 0 16 1 52 1 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 7 :arity 1 :constants ("and" "list" and "or" or) :bytecode (18 0 1 0 0 48 1 33 40 0 18 1 18 2 18 3 18 4 18 5 48 0 48 1 48 1 48 1 48 1 17 1 18 6 1 2 0 16 0 16 1 52 1 0 3 49 1 32 52 0 18 0 1 3 0 48 1 33 40 0 18 1 18 2 18 3 18 4 18 5 48 0 48 1 48 1 48 1 48 1 17 1 18 6 1 4 0 16 0 16 1 52 1 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 9 :arity 0 :constants ("nil?" "number?" "=" "ident" "not" "starts" "ends" "contains" "matches" "is" "does" "in" "precedes" "follows" "list" string-postfix "then" "end" "else" "otherwise" "op" "%") :bytecode (18 0 48 0 17 0 16 0 52 0 0 1 33 4 0 2 32 134 1 16 0 52 1 0 1 6 33 160 0 5 18 1 48 0 1 3 0 52 2 0 2 6 33 144 0 5 18 2 48 0 1 5 0 52 2 0 2 6 34 124 0 5 18 2 48 0 1 6 0 52 2 0 2 6 34 108 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 92 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 76 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 60 0 5 18 2 48 0 1 10 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 11 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 12 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 13 0 52 2 0 2 52 4 0 1 33 27 0 18 2 48 0 17 1 18 3 48 0 5 1 15 0 16 0 16 1 52 14 0 3 17 0 32 1 0 2 5 18 4 16 0 48 1 17 1 18 5 16 1 48 1 17 2 18 6 16 2 48 1 17 3 18 7 16 3 48 1 17 4 18 8 16 4 48 1 17 5 16 5 6 33 112 0 5 18 1 48 0 1 3 0 52 2 0 2 6 33 64 0 5 18 2 48 0 1 16 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 17 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 18 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 19 0 52 2 0 2 52 4 0 1 6 34 28 0 5 18 1 48 0 1 20 0 52 2 0 2 6 33 12 0 5 18 2 48 0 1 21 0 52 2 0 2 33 25 0 18 2 48 0 17 6 18 3 48 0 5 1 15 0 16 5 16 6 52 14 0 3 32 2 0 16 5 50)} {:upvalue-count 2 :arity 2 :constants () :bytecode (18 0 16 0 48 1 33 7 0 18 1 49 0 32 2 0 16 1 50)} {:upvalue-count 6 :arity 0 :constants ("=" "class" "get" "value" "list" {:upvalue-count 4 :arity 0 :constants ("=" "class" "append" "list" "get" "value") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 31 0 18 1 18 2 48 0 1 5 0 52 4 0 2 52 3 0 1 52 2 0 2 19 1 5 18 3 49 0 32 1 0 2 50)} "to" me "when" "empty?" add-class-when add-class multi-add-class-when "cons" multi-add-class "style" "local" set-style "brace-open" {:upvalue-count 6 :arity 0 :constants ("not" "=" "brace-close" "get" "value" "colon" "cons" "list") :bytecode (18 0 48 0 1 2 0 52 1 0 2 52 0 0 1 6 33 9 0 5 18 1 48 0 52 0 0 1 33 71 0 18 2 48 0 1 4 0 52 3 0 2 17 0 18 0 48 0 1 5 0 52 1 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 3 48 0 17 1 18 2 48 0 5 16 0 16 1 52 7 0 2 18 4 52 6 0 2 19 4 5 18 5 49 0 32 1 0 2 50)} "brace-close" set-styles "reverse" add-value) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 175 0 18 1 48 0 1 3 0 52 2 0 2 17 0 52 4 0 0 17 1 51 5 0 0 0 1 1 0 1 1 2 17 2 5 16 2 48 0 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 7 0 1 7 0 52 4 0 1 17 3 18 2 1 8 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 4 16 1 52 9 0 1 33 35 0 16 4 33 16 0 1 10 0 16 0 16 3 16 4 52 4 0 4 32 11 0 1 11 0 16 0 16 3 52 4 0 3 32 44 0 16 4 33 18 0 1 12 0 16 3 16 4 16 0 16 1 52 4 0 5 32 21 0 1 14 0 16 3 16 0 16 1 52 13 0 2 52 13 0 2 52 13 0 2 32 255 0 18 0 48 0 1 15 0 52 0 0 2 33 89 0 18 1 48 0 1 3 0 52 2 0 2 17 0 18 0 48 0 1 16 0 52 0 0 2 33 14 0 18 1 48 0 1 3 0 52 2 0 2 32 4 0 18 3 48 0 17 1 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 7 0 1 7 0 52 4 0 1 17 2 1 17 0 16 0 16 1 16 2 52 4 0 4 32 152 0 18 0 48 0 1 18 0 52 0 0 2 33 101 0 18 1 48 0 5 52 4 0 0 17 0 51 19 0 0 0 0 4 0 1 0 5 1 0 1 1 17 1 5 16 1 48 0 5 18 0 48 0 1 20 0 52 0 0 2 33 7 0 18 1 48 0 32 1 0 2 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 7 0 1 7 0 52 4 0 1 17 2 1 21 0 16 0 52 22 0 1 16 2 52 4 0 3 32 37 0 18 3 48 0 17 0 18 2 1 6 0 48 1 33 20 0 18 3 48 0 17 1 1 23 0 16 0 16 1 52 4 0 3 32 1 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "class" "get" "value" "list" {:upvalue-count 4 :arity 0 :constants ("=" "class" "append" "list" "get" "value") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 31 0 18 1 18 2 48 0 1 5 0 52 4 0 2 52 3 0 1 52 2 0 2 19 1 5 18 3 49 0 32 1 0 2 50)} "from" "empty?" remove-class "cons" multi-remove-class "bracket-open" "[" "attr" "]" remove-attr "{" {:upvalue-count 4 :arity 0 :constants ("not" "=" "}" ";" "append" "list" "get" "value") :bytecode (18 0 48 0 1 2 0 52 1 0 2 52 0 0 1 33 76 0 18 0 48 0 1 3 0 52 1 0 2 33 7 0 18 1 48 0 32 1 0 2 5 18 0 48 0 1 2 0 52 1 0 2 52 0 0 1 33 31 0 18 2 18 1 48 0 1 7 0 52 6 0 2 52 5 0 1 52 4 0 2 19 2 5 18 3 49 0 32 1 0 2 32 1 0 2 50)} "}" remove-css remove-value remove-element) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 105 0 18 1 48 0 1 3 0 52 2 0 2 17 0 52 4 0 0 17 1 51 5 0 0 0 1 1 0 1 1 2 17 2 5 16 2 48 0 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 3 16 1 52 7 0 1 33 14 0 1 8 0 16 0 16 3 52 4 0 3 32 21 0 1 10 0 16 3 16 0 16 1 52 9 0 2 52 9 0 2 52 9 0 2 32 239 0 18 0 48 0 1 11 0 52 0 0 2 6 33 12 0 5 18 4 48 0 1 12 0 52 0 0 2 33 78 0 18 1 48 0 5 18 0 48 0 1 13 0 52 0 0 2 33 55 0 18 1 48 0 1 3 0 52 2 0 2 17 0 18 2 1 14 0 48 1 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 1 1 15 0 16 0 16 1 52 4 0 3 32 1 0 2 32 131 0 18 4 48 0 1 16 0 52 0 0 2 33 72 0 18 1 48 0 5 52 4 0 0 17 0 51 17 0 0 4 0 1 1 0 1 1 17 1 5 16 1 48 0 5 18 2 1 18 0 48 1 5 18 2 1 6 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 2 1 19 0 16 0 16 2 52 4 0 3 32 45 0 18 3 48 0 17 0 18 2 1 6 0 48 1 33 20 0 18 3 48 0 17 1 1 20 0 16 0 16 1 52 4 0 3 32 9 0 1 21 0 16 0 52 4 0 2 50)} {:upvalue-count 9 :arity 0 :constants ("between" "=" "class" "and" "on" "list" me toggle-between "for" toggle-class-for toggle-class "style" "get" "value" "of" toggle-style-cycle toggle-style-between toggle-style "attr" toggle-attr-between toggle-attr "keyword" "my" "the" "list?" "first" style "nth" 1 2 attr has-class?) :bytecode (18 0 1 0 0 48 1 33 106 0 18 1 48 0 1 2 0 52 1 0 2 33 88 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 4 1 3 0 48 1 5 18 1 48 0 1 2 0 52 1 0 2 33 47 0 18 2 48 0 17 1 18 3 48 0 5 16 1 17 1 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 2 1 7 0 16 0 16 1 16 2 52 5 0 4 32 1 0 2 32 1 0 2 32 139 3 18 1 48 0 1 2 0 52 1 0 2 33 77 0 18 2 48 0 17 0 18 3 48 0 5 16 0 17 0 18 5 1 4 0 1 6 0 52 5 0 1 48 2 17 1 18 0 1 8 0 48 1 33 22 0 18 6 48 0 17 2 1 9 0 16 0 16 1 16 2 52 5 0 4 32 11 0 1 10 0 16 0 16 1 52 5 0 3 32 48 3 18 1 48 0 1 11 0 52 1 0 2 33 175 0 18 3 48 0 1 13 0 52 12 0 2 17 0 18 0 1 14 0 48 1 33 7 0 18 6 48 0 32 7 0 1 6 0 52 5 0 1 17 1 18 0 1 0 0 48 1 33 112 0 18 7 48 0 17 2 18 4 1 3 0 48 1 5 18 7 48 0 17 3 18 0 1 3 0 48 1 33 64 0 18 7 48 0 17 4 18 0 1 3 0 48 1 33 28 0 18 7 48 0 17 5 1 15 0 16 0 16 1 16 2 16 3 16 4 16 5 52 5 0 7 32 17 0 1 15 0 16 0 16 1 16 2 16 3 16 4 52 5 0 6 32 15 0 1 16 0 16 0 16 2 16 3 16 1 52 5 0 5 32 11 0 1 17 0 16 0 16 1 52 5 0 3 32 115 2 18 1 48 0 1 18 0 52 1 0 2 33 101 0 18 3 48 0 1 13 0 52 12 0 2 17 0 18 0 1 4 0 48 1 33 7 0 18 6 48 0 32 7 0 1 6 0 52 5 0 1 17 1 18 0 1 0 0 48 1 33 38 0 18 6 48 0 17 2 18 4 1 3 0 48 1 5 18 6 48 0 17 3 1 19 0 16 0 16 2 16 3 16 1 52 5 0 5 32 11 0 1 20 0 16 0 16 1 52 5 0 3 32 0 2 18 1 48 0 1 21 0 52 1 0 2 6 33 12 0 5 18 2 48 0 1 22 0 52 1 0 2 33 199 0 18 3 48 0 5 18 1 48 0 1 11 0 52 1 0 2 33 115 0 18 3 48 0 1 13 0 52 12 0 2 17 0 18 0 1 0 0 48 1 33 58 0 18 6 48 0 17 1 18 4 1 3 0 48 1 5 18 6 48 0 17 2 18 0 1 4 0 48 1 33 7 0 18 6 48 0 32 1 0 2 17 3 1 16 0 16 0 16 1 16 2 16 3 52 5 0 5 32 31 0 18 0 1 4 0 48 1 33 7 0 18 6 48 0 32 1 0 2 17 1 1 17 0 16 0 16 1 52 5 0 3 32 62 0 18 1 48 0 1 18 0 52 1 0 2 33 47 0 18 3 48 0 1 13 0 52 12 0 2 17 0 18 0 1 4 0 48 1 33 7 0 18 6 48 0 32 1 0 2 17 1 1 20 0 16 0 16 1 52 5 0 3 32 1 0 2 32 27 1 18 1 48 0 1 21 0 52 1 0 2 6 33 12 0 5 18 2 48 0 1 23 0 52 1 0 2 33 252 0 18 3 48 0 5 18 8 48 0 17 0 16 0 52 24 0 1 6 33 14 0 5 16 0 52 25 0 1 1 26 0 52 1 0 2 33 84 0 16 0 1 28 0 52 27 0 2 17 1 16 0 1 29 0 52 27 0 2 17 2 18 0 1 0 0 48 1 33 38 0 18 6 48 0 17 3 18 4 1 3 0 48 1 5 18 6 48 0 17 4 1 16 0 16 1 16 3 16 4 16 2 52 5 0 5 32 11 0 1 17 0 16 1 16 2 52 5 0 3 32 127 0 16 0 52 24 0 1 6 33 14 0 5 16 0 52 25 0 1 1 30 0 52 1 0 2 33 36 0 16 0 1 28 0 52 27 0 2 17 1 16 0 1 29 0 52 27 0 2 17 2 1 20 0 16 1 16 2 52 5 0 3 32 64 0 16 0 52 24 0 1 6 33 14 0 5 16 0 52 25 0 1 1 31 0 52 1 0 2 33 36 0 16 0 1 28 0 52 27 0 2 17 1 16 0 1 29 0 52 27 0 2 17 2 1 10 0 16 2 16 1 52 5 0 3 32 1 0 2 32 1 0 2 50)} {:upvalue-count 3 :arity 0 :constants ("to" "list" set! "on" set-on "error" "str" "Expected to/on at position ") :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 20 0 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 32 43 0 18 1 1 3 0 48 1 33 20 0 18 0 48 0 17 1 1 4 0 16 0 16 1 52 1 0 3 32 13 0 1 7 0 18 2 52 6 0 2 52 5 0 1 50)} {:upvalue-count 4 :arity 0 :constants ("into" "list" set! "before" put! "after" "at" "the" "start" "of" "end" "error" "str" "Expected start/end after at, position " "Expected into/before/after/at at position ") :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 16 0 1 2 0 18 0 48 0 16 0 52 1 0 3 32 179 0 18 1 1 3 0 48 1 33 19 0 1 4 0 16 0 1 3 0 18 0 48 0 52 1 0 4 32 150 0 18 1 1 5 0 48 1 33 19 0 1 4 0 16 0 1 5 0 18 0 48 0 52 1 0 4 32 121 0 18 1 1 6 0 48 1 33 98 0 18 1 1 7 0 48 1 5 18 1 1 8 0 48 1 33 27 0 18 2 1 9 0 48 1 5 1 4 0 16 0 1 8 0 18 0 48 0 52 1 0 4 32 50 0 18 1 1 10 0 48 1 33 27 0 18 2 1 9 0 48 1 5 1 4 0 16 0 1 10 0 18 0 48 0 52 1 0 4 32 13 0 1 13 0 18 3 52 12 0 2 52 11 0 1 32 13 0 1 14 0 18 3 52 12 0 2 52 11 0 1 50)} {:upvalue-count 3 :arity 0 :constants ("then" "else" "otherwise" "end" "list" if) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 2 48 0 17 1 18 1 1 1 0 48 1 6 34 8 0 5 18 1 1 2 0 48 1 33 7 0 18 2 48 0 32 1 0 2 17 2 18 1 1 3 0 48 1 5 16 2 33 16 0 1 5 0 16 0 16 1 16 2 52 4 0 4 32 11 0 1 5 0 16 0 16 1 52 4 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("for" "from" "list" wait-for "=" "number" wait "get" "value" 0) :bytecode (18 0 1 0 0 48 1 33 65 0 18 1 48 0 17 0 18 2 48 0 5 18 0 1 1 0 48 1 33 7 0 18 3 48 0 32 1 0 2 17 1 16 1 33 17 0 1 3 0 16 0 1 1 0 16 1 52 2 0 4 32 9 0 1 3 0 16 0 52 2 0 2 32 53 0 18 4 48 0 1 5 0 52 4 0 2 33 29 0 18 2 48 0 17 0 1 6 0 18 5 16 0 1 8 0 52 7 0 2 48 1 52 2 0 2 32 10 0 1 6 0 1 9 0 52 2 0 2 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "paren-close" "get" "value" "colon" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 83 0 18 2 48 0 1 3 0 52 2 0 2 17 1 18 0 48 0 1 4 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 3 48 0 17 2 18 0 48 0 1 5 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 16 2 52 7 0 2 52 6 0 2 49 1 50)} "cons" dict "list") :bytecode (18 0 48 0 5 51 0 0 0 1 0 2 0 0 0 3 1 0 17 0 5 1 2 0 16 0 52 3 0 0 48 1 52 1 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("get" "value" {:upvalue-count 6 :arity 0 :constants ("not" "=" "class" "str" "." "local" ":") :bytecode (18 0 48 0 52 0 0 1 33 96 0 18 1 48 0 1 2 0 52 1 0 2 33 32 0 18 2 48 0 17 0 18 3 48 0 5 18 4 1 4 0 16 0 52 3 0 3 19 4 5 18 5 49 0 32 47 0 18 1 48 0 1 5 0 52 1 0 2 33 32 0 18 2 48 0 17 0 18 3 48 0 5 18 4 1 6 0 16 0 52 3 0 3 19 4 5 18 5 49 0 32 1 0 2 32 1 0 2 50)}) :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 51 2 0 0 1 0 2 0 3 0 0 1 0 1 1 17 1 5 16 1 48 0 5 16 0 50)} {:upvalue-count 4 :arity 0 :constants ("=" "paren-open" "to" "list" me send) :bytecode (18 0 48 0 17 0 18 1 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 17 1 18 3 1 2 0 1 4 0 52 3 0 1 48 2 17 2 16 1 33 16 0 1 5 0 16 0 16 1 16 2 52 3 0 4 32 11 0 1 5 0 16 0 16 2 52 3 0 3 50)} {:upvalue-count 2 :arity 0 :constants ("get" "value" "on" "list" me trigger) :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 1 2 0 1 4 0 52 3 0 1 48 2 17 1 1 5 0 16 0 16 1 52 3 0 3 50)} {:upvalue-count 1 :arity 0 :constants ("list" log) :bytecode (1 1 0 18 0 48 0 52 0 0 2 50)} {:upvalue-count 3 :arity 0 :constants ("by" 1 "on" "list" me increment!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 7 0 18 0 48 0 32 3 0 1 1 0 17 1 18 2 1 2 0 1 4 0 52 3 0 1 48 2 17 2 1 5 0 16 0 16 1 16 2 52 3 0 4 50)} {:upvalue-count 3 :arity 0 :constants ("by" 1 "on" "list" me decrement!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 7 0 18 0 48 0 32 3 0 1 1 0 17 1 18 2 1 2 0 1 4 0 52 3 0 1 48 2 17 2 1 5 0 16 0 16 1 16 2 52 3 0 4 50)} {:upvalue-count 6 :arity 0 :constants ("list" me "=" "keyword" "then" "end" "with" "add" "remove" "set" "put" "toggle" "hide" "show" "display" hide) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 188 0 18 1 48 0 1 3 0 52 2 0 2 6 33 156 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 140 0 5 18 2 48 0 1 5 0 52 2 0 2 6 34 124 0 5 18 2 48 0 1 6 0 52 2 0 2 6 34 108 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 92 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 76 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 60 0 5 18 2 48 0 1 10 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 11 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 12 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 13 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 29 0 18 0 48 0 33 6 0 1 14 0 32 13 0 18 2 48 0 17 1 18 5 48 0 5 16 1 32 3 0 1 14 0 17 1 1 15 0 16 0 16 1 52 0 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("list" me "=" "keyword" "then" "end" "with" "add" "remove" "set" "put" "toggle" "hide" "show" "display" show) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 188 0 18 1 48 0 1 3 0 52 2 0 2 6 33 156 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 140 0 5 18 2 48 0 1 5 0 52 2 0 2 6 34 124 0 5 18 2 48 0 1 6 0 52 2 0 2 6 34 108 0 5 18 2 48 0 1 7 0 52 2 0 2 6 34 92 0 5 18 2 48 0 1 8 0 52 2 0 2 6 34 76 0 5 18 2 48 0 1 9 0 52 2 0 2 6 34 60 0 5 18 2 48 0 1 10 0 52 2 0 2 6 34 44 0 5 18 2 48 0 1 11 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 12 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 13 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 29 0 18 0 48 0 33 6 0 1 14 0 32 13 0 18 2 48 0 17 1 18 5 48 0 5 16 1 32 3 0 1 14 0 17 1 1 15 0 16 0 16 1 52 0 0 3 50)} {:upvalue-count 8 :arity 0 :constants ("=" "ident" "element" "id" "class" "selector" {:upvalue-count 8 :arity 0 :constants ("=" "style" "get" "value" "my" "'s" "of" "from" "ident" "not" "hs-keyword?" "list" string-postfix "to" "over" "number?" "using" transition-from transition) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 14 0 18 1 48 0 1 3 0 52 2 0 2 32 133 0 18 2 48 0 1 4 0 52 0 0 2 33 47 0 18 1 48 0 5 18 0 48 0 1 1 0 52 0 0 2 33 14 0 18 1 48 0 1 3 0 52 2 0 2 32 11 0 18 1 48 0 1 3 0 52 2 0 2 32 72 0 18 2 48 0 1 5 0 52 0 0 2 33 47 0 18 1 48 0 5 18 0 48 0 1 1 0 52 0 0 2 33 14 0 18 1 48 0 1 3 0 52 2 0 2 32 11 0 18 1 48 0 1 3 0 52 2 0 2 32 11 0 18 1 48 0 1 3 0 52 2 0 2 17 0 18 3 1 6 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 16 1 33 5 0 16 1 32 2 0 18 5 17 2 18 3 1 7 0 48 1 33 77 0 18 6 48 0 17 3 16 3 6 33 30 0 5 18 0 48 0 1 8 0 52 0 0 2 6 33 14 0 5 20 10 0 18 2 48 0 48 1 52 9 0 1 33 27 0 18 1 48 0 1 3 0 52 2 0 2 17 4 1 12 0 16 3 16 4 52 11 0 3 32 2 0 16 3 32 1 0 2 17 3 18 7 1 13 0 48 1 5 18 6 48 0 17 4 16 4 6 33 30 0 5 18 0 48 0 1 8 0 52 0 0 2 6 33 14 0 5 20 10 0 18 2 48 0 48 1 52 9 0 1 33 27 0 18 1 48 0 1 3 0 52 2 0 2 17 5 1 12 0 16 4 16 5 52 11 0 3 32 2 0 16 4 17 4 18 3 1 14 0 48 1 33 81 0 18 6 48 0 17 5 16 5 52 15 0 1 6 33 30 0 5 18 0 48 0 1 8 0 52 0 0 2 6 33 14 0 5 20 10 0 18 2 48 0 48 1 52 9 0 1 33 27 0 18 1 48 0 1 3 0 52 2 0 2 17 6 1 12 0 16 5 16 6 52 11 0 3 32 2 0 16 5 32 1 0 2 17 5 18 3 1 16 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 6 16 3 33 20 0 1 17 0 16 0 16 3 16 4 16 5 16 2 52 11 0 6 32 15 0 1 18 0 16 0 16 4 16 5 16 2 52 11 0 5 50)} {:upvalue-count 5 :arity 1 :constants ("not" "=" "ident" "hs-keyword?" "append" "list") :bytecode (18 0 48 0 52 0 0 1 6 33 30 0 5 18 1 48 0 1 2 0 52 1 0 2 6 33 14 0 5 20 3 0 18 2 48 0 48 1 52 0 0 1 33 21 0 18 3 16 0 18 4 48 0 52 5 0 1 52 4 0 2 49 1 32 2 0 16 0 50)} "list" "len" 1 "first" "cons" do) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 12 0 18 2 48 0 5 18 3 48 0 32 64 0 18 0 48 0 1 3 0 52 0 0 2 33 7 0 18 3 48 0 32 43 0 18 0 48 0 1 4 0 52 0 0 2 33 7 0 18 3 48 0 32 22 0 18 0 48 0 1 5 0 52 0 0 2 33 7 0 18 3 48 0 32 1 0 2 17 0 51 6 0 0 0 0 2 0 1 0 4 0 5 1 0 0 3 0 6 17 1 5 16 1 48 0 17 2 51 7 0 0 7 0 0 0 1 1 3 1 1 17 3 5 16 3 16 2 52 8 0 1 48 1 17 4 16 4 52 9 0 1 1 10 0 52 0 0 2 33 9 0 16 4 52 11 0 1 32 9 0 1 13 0 16 4 52 12 0 2 50)} {:upvalue-count 7 :arity 0 :constants ("=" "keyword" "for" "in" "end" "list" for "it" "forever" forever "while" while "until" until "times" times "then" repeat-until repeat-while repeat) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 12 0 18 2 48 0 5 18 3 49 0 32 30 1 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 3 0 52 0 0 2 33 42 0 18 2 48 0 5 18 4 48 0 17 0 18 5 48 0 17 1 18 6 1 4 0 48 1 5 1 6 0 1 7 0 16 0 16 1 52 5 0 4 32 214 0 18 6 1 8 0 48 1 33 10 0 1 9 0 52 5 0 1 32 83 0 18 6 1 10 0 48 1 33 14 0 1 11 0 18 4 48 0 52 5 0 2 32 59 0 18 6 1 12 0 48 1 33 14 0 1 13 0 18 4 48 0 52 5 0 2 32 35 0 18 4 48 0 17 0 18 6 1 14 0 48 1 33 12 0 1 15 0 16 0 52 5 0 2 32 7 0 1 9 0 52 5 0 1 17 0 18 6 1 16 0 48 1 5 18 5 48 0 17 1 18 6 1 12 0 48 1 33 28 0 18 4 48 0 17 2 18 6 1 4 0 48 1 5 1 17 0 16 2 16 1 52 5 0 3 32 57 0 18 6 1 10 0 48 1 33 28 0 18 4 48 0 17 2 18 6 1 4 0 48 1 5 1 18 0 16 2 16 1 52 5 0 3 32 19 0 18 6 1 4 0 48 1 5 1 19 0 16 0 16 1 52 5 0 3 50)} {:upvalue-count 9 :arity 0 :constants ("=" "keyword" "gql" "brace-open" {:upvalue-count 5 :arity 2 :constants ("join" " " "=" "brace-open" "append" "list" "{" "+" 1 "brace-close" 0 "}" "-" "") :bytecode (18 0 48 0 33 12 0 1 1 0 16 0 52 0 0 2 32 165 0 18 1 48 0 1 3 0 52 2 0 2 33 34 0 18 2 48 0 5 18 3 16 0 1 6 0 52 5 0 1 52 4 0 2 16 1 1 8 0 52 7 0 2 49 2 32 117 0 18 1 48 0 1 9 0 52 2 0 2 33 63 0 16 1 1 10 0 52 2 0 2 33 17 0 18 2 48 0 5 1 1 0 16 0 52 0 0 2 32 31 0 18 2 48 0 5 18 3 16 0 1 11 0 52 5 0 1 52 4 0 2 16 1 1 8 0 52 12 0 2 49 2 32 40 0 18 4 48 0 17 2 18 2 48 0 5 18 3 16 0 16 2 33 5 0 16 2 32 3 0 1 13 0 52 5 0 1 52 4 0 2 16 1 49 2 50)} "str" "{ " "list" 0 " }" "query" "mutation" "subscription" " { " "" "from" fetch-gql "op" "/" {:upvalue-count 6 :arity 0 :constants ("not" "=" "ident" "op" "dot" "number" "append!") :bytecode (18 0 48 0 52 0 0 1 6 33 60 0 5 18 1 48 0 1 2 0 52 1 0 2 6 34 44 0 5 18 1 48 0 1 3 0 52 1 0 2 6 34 28 0 5 18 1 48 0 1 4 0 52 1 0 2 6 34 12 0 5 18 1 48 0 1 5 0 52 1 0 2 33 23 0 18 2 18 3 48 0 52 6 0 2 5 18 4 48 0 5 18 5 49 0 32 1 0 2 50)} "join" "nil?" "as" "with" "not" "text" fetch) :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 2 0 52 0 0 2 33 58 1 18 2 48 0 5 18 0 48 0 1 3 0 52 0 0 2 33 45 0 18 2 48 0 5 51 4 0 0 3 0 0 0 2 1 0 0 1 17 0 5 1 6 0 16 0 52 7 0 0 1 8 0 48 2 1 9 0 52 5 0 3 32 181 0 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 10 0 52 0 0 2 6 34 60 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 11 0 52 0 0 2 6 34 28 0 5 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 12 0 52 0 0 2 33 84 0 18 1 48 0 17 1 18 2 48 0 5 18 0 48 0 1 3 0 52 0 0 2 33 47 0 18 2 48 0 5 51 4 0 0 3 0 0 0 2 1 2 0 1 17 2 5 16 1 1 13 0 16 2 52 7 0 0 1 8 0 48 2 1 9 0 52 5 0 4 32 9 0 16 1 1 14 0 52 5 0 2 32 3 0 1 14 0 17 1 18 0 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 15 0 52 0 0 2 33 20 0 18 2 48 0 5 18 4 18 5 18 6 48 0 48 1 48 1 32 1 0 2 17 2 1 16 0 16 1 16 2 52 7 0 3 32 17 1 18 0 48 0 1 17 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 18 0 52 0 0 2 33 49 0 18 2 48 0 5 1 18 0 52 7 0 1 17 0 51 19 0 0 3 0 0 1 0 0 1 0 2 1 1 17 1 5 16 1 48 0 5 1 14 0 16 0 52 20 0 2 32 4 0 18 6 48 0 17 0 16 0 52 21 0 1 33 5 0 16 0 32 10 0 18 4 18 5 16 0 48 1 48 1 17 1 18 7 1 22 0 48 1 33 16 0 18 1 48 0 17 2 18 2 48 0 5 16 2 32 1 0 2 17 2 18 0 48 0 1 3 0 52 0 0 2 33 7 0 18 8 48 0 32 1 0 2 5 18 7 1 23 0 48 1 33 28 0 18 0 48 0 1 3 0 52 0 0 2 33 7 0 18 8 48 0 32 4 0 18 8 48 0 32 1 0 2 5 16 2 52 24 0 1 6 33 8 0 5 18 7 1 22 0 48 1 33 16 0 18 1 48 0 17 3 18 2 48 0 5 16 3 32 1 0 2 17 3 16 2 6 34 11 0 5 16 3 6 34 4 0 5 1 25 0 17 4 1 26 0 16 1 16 4 52 7 0 3 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "paren-close" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 45 0 18 3 48 0 17 1 18 0 48 0 1 2 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 52 4 0 1 52 3 0 2 49 1 50)} "list") :bytecode (18 0 48 0 5 51 0 0 0 1 0 2 0 0 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 3 :arity 0 :constants ("get" "value" "=" "paren-open" "cons" call "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 1 3 0 52 2 0 2 33 24 0 18 2 48 0 17 1 1 5 0 16 0 16 1 52 4 0 2 52 4 0 2 32 9 0 1 5 0 16 0 52 6 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "class" "from" "for" "list" take! "attr" "get" "value" "op" "with") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 74 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 3 1 2 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 1 18 3 1 3 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 2 1 5 0 1 1 0 16 0 16 1 16 2 52 4 0 5 32 163 0 18 0 48 0 1 6 0 52 0 0 2 33 148 0 18 2 48 0 1 8 0 52 7 0 2 17 0 18 0 48 0 1 9 0 52 0 0 2 6 33 12 0 5 18 1 48 0 1 0 0 52 0 0 2 33 19 0 18 2 48 0 5 18 2 48 0 1 8 0 52 7 0 2 32 1 0 2 17 1 18 3 1 10 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 2 18 3 1 2 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 3 18 3 1 3 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 4 1 5 0 1 6 0 16 0 16 3 16 4 16 1 16 2 52 4 0 7 32 1 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" go) :bytecode (18 0 1 0 0 48 1 5 1 2 0 18 1 48 0 52 1 0 2 50)} {:upvalue-count 6 :arity 1 :constants ("=" "op" "+" "-" "*" "/" "%" "keyword" "mod" + - * / "make-symbol" "nil?" "list") :bytecode (18 0 48 0 17 1 18 1 48 0 17 2 16 1 1 1 0 52 0 0 2 6 33 66 0 5 16 2 1 2 0 52 0 0 2 6 34 52 0 5 16 2 1 3 0 52 0 0 2 6 34 38 0 5 16 2 1 4 0 52 0 0 2 6 34 24 0 5 16 2 1 5 0 52 0 0 2 6 34 10 0 5 16 2 1 6 0 52 0 0 2 6 34 24 0 5 16 1 1 7 0 52 0 0 2 6 33 10 0 5 16 2 1 8 0 52 0 0 2 33 161 0 18 2 48 0 5 16 2 1 2 0 52 0 0 2 33 6 0 1 9 0 32 91 0 16 2 1 3 0 52 0 0 2 33 6 0 1 10 0 32 73 0 16 2 1 4 0 52 0 0 2 33 6 0 1 11 0 32 55 0 16 2 1 5 0 52 0 0 2 33 6 0 1 12 0 32 37 0 16 2 1 6 0 52 0 0 2 6 34 10 0 5 16 2 1 8 0 52 0 0 2 33 10 0 1 6 0 52 13 0 1 32 1 0 2 17 3 18 3 48 0 17 4 16 4 52 14 0 1 33 5 0 16 4 32 6 0 18 4 16 4 48 1 17 4 18 5 16 3 16 0 16 4 52 15 0 3 49 1 32 2 0 16 0 50)} {:upvalue-count 8 :arity 0 :constants ("=" "style" "of" "list" style me "attr" attr "class" has-class? "selector" "in" in? query "ident" "keyword" "make-symbol" "." "result" it "first" first "last" last "closest" closest "next" next "previous" previous ref) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 33 50 0 18 2 48 0 5 18 3 1 2 0 48 1 33 16 0 1 4 0 16 1 18 4 48 0 52 3 0 3 32 16 0 1 4 0 16 1 1 5 0 52 3 0 1 52 3 0 3 32 139 1 16 0 1 6 0 52 0 0 2 33 50 0 18 2 48 0 5 18 3 1 2 0 48 1 33 16 0 1 7 0 16 1 18 4 48 0 52 3 0 3 32 16 0 1 7 0 16 1 1 5 0 52 3 0 1 52 3 0 3 32 77 1 16 0 1 8 0 52 0 0 2 33 50 0 18 2 48 0 5 18 3 1 2 0 48 1 33 16 0 1 9 0 18 4 48 0 16 1 52 3 0 3 32 16 0 1 9 0 1 5 0 52 3 0 1 16 1 52 3 0 3 32 15 1 16 0 1 10 0 52 0 0 2 33 50 0 18 2 48 0 5 18 3 1 11 0 48 1 33 23 0 1 12 0 1 13 0 16 1 52 3 0 2 18 4 48 0 52 3 0 3 32 9 0 1 13 0 16 1 52 3 0 2 32 209 0 16 0 1 14 0 52 0 0 2 6 34 10 0 5 16 0 1 15 0 52 0 0 2 33 179 0 18 2 48 0 5 18 3 1 2 0 48 1 33 20 0 1 17 0 52 16 0 1 18 4 48 0 16 1 52 3 0 3 32 141 0 16 1 1 18 0 52 0 0 2 33 10 0 1 19 0 52 3 0 1 32 119 0 16 1 1 20 0 52 0 0 2 33 10 0 18 5 1 21 0 49 1 32 97 0 16 1 1 22 0 52 0 0 2 33 10 0 18 5 1 23 0 49 1 32 75 0 16 1 1 24 0 52 0 0 2 33 10 0 18 6 1 25 0 49 1 32 53 0 16 1 1 26 0 52 0 0 2 33 10 0 18 6 1 27 0 49 1 32 31 0 16 1 1 28 0 52 0 0 2 33 10 0 18 6 1 29 0 49 1 32 9 0 1 30 0 16 1 52 3 0 2 32 4 0 18 7 49 0 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "bracket-close" "comma" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 6 34 5 0 5 18 1 48 0 33 28 0 18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 45 0 18 3 48 0 17 1 18 0 48 0 1 2 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 18 4 16 0 16 1 52 4 0 1 52 3 0 2 49 1 50)} "cons" array "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 1 2 0 16 0 52 3 0 0 48 1 52 1 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "end" "then" "else" "list" return) :bytecode (18 0 48 0 6 34 60 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 44 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 28 0 5 18 2 48 0 1 3 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 4 0 52 0 0 2 33 11 0 1 6 0 2 52 5 0 2 32 11 0 1 6 0 18 3 48 0 52 5 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("list" throw) :bytecode (1 1 0 18 0 48 0 52 0 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" append! it) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 33 20 0 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 32 16 0 1 2 0 16 0 1 3 0 52 1 0 1 52 1 0 3 50)} {:upvalue-count 3 :arity 0 :constants ("then" "end" "list" tell) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 2 48 0 17 1 18 1 1 1 0 48 1 5 1 3 0 16 0 16 1 52 2 0 3 50)} {:upvalue-count 6 :arity 0 :constants ("in" "index" "indexed" "by" "then" "end" "list" for) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 1 0 0 48 1 5 18 3 48 0 17 1 18 4 1 1 0 48 1 33 16 0 18 0 48 0 17 2 18 1 48 0 5 16 2 32 35 0 18 4 1 2 0 48 1 33 24 0 18 4 1 3 0 48 1 5 18 0 48 0 17 2 18 1 48 0 5 16 2 32 1 0 2 17 2 18 4 1 4 0 48 1 5 18 5 48 0 17 3 18 4 1 5 0 48 1 5 16 2 33 21 0 1 7 0 16 0 16 1 16 3 1 1 0 16 2 52 6 0 6 32 13 0 1 7 0 16 0 16 1 16 3 52 6 0 4 50)} {:upvalue-count 3 :arity 0 :constants ("=" "a" "called" "list" make) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 1 48 0 32 1 0 2 5 18 0 48 0 17 0 18 1 48 0 5 18 2 1 2 0 48 1 33 16 0 18 0 48 0 17 1 18 1 48 0 5 16 1 32 1 0 2 17 1 16 1 33 14 0 1 4 0 16 0 16 1 52 3 0 3 32 9 0 1 4 0 16 0 52 3 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "paren-open" "cons" install "list") :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 1 1 0 52 0 0 2 33 24 0 18 3 48 0 17 1 1 3 0 16 0 16 1 52 2 0 2 52 2 0 2 32 9 0 1 3 0 16 0 52 4 0 2 50)} {:upvalue-count 1 :arity 0 :constants ("list" measure "nil?" me) :bytecode (18 0 48 0 17 0 1 1 0 16 0 52 2 0 1 33 10 0 1 3 0 52 0 0 1 32 2 0 16 0 52 0 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("=" "keyword" "then" "end" "list" me "top" "bottom" "left" "right" scroll!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 18 4 1 6 0 48 1 33 6 0 1 6 0 32 51 0 18 4 1 7 0 48 1 33 6 0 1 7 0 32 35 0 18 4 1 8 0 48 1 33 6 0 1 8 0 32 19 0 18 4 1 9 0 48 1 33 6 0 1 9 0 32 3 0 1 6 0 17 1 1 10 0 16 0 16 1 52 4 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "then" "end" "list" me select!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 4 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("=" "keyword" "then" "end" "list" me reset!) :bytecode (18 0 48 0 6 34 44 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 28 0 5 18 2 48 0 1 2 0 52 0 0 2 6 34 12 0 5 18 2 48 0 1 3 0 52 0 0 2 33 10 0 1 5 0 52 4 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 4 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("to" "list" default!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 3 :arity 0 :constants ("the" "event" "'s" "default" "=" "bubbling" "list" halt!) :bytecode (18 0 1 0 0 48 1 33 22 0 18 0 1 1 0 48 1 5 18 0 1 2 0 48 1 5 1 1 0 32 89 0 18 0 1 3 0 48 1 6 34 23 0 5 18 1 48 0 1 3 0 52 4 0 2 6 33 7 0 5 18 2 48 0 5 3 33 6 0 1 3 0 32 46 0 18 0 1 5 0 48 1 6 34 23 0 5 18 1 48 0 1 5 0 52 4 0 2 6 33 7 0 5 18 2 48 0 5 3 33 6 0 1 5 0 32 3 0 1 1 0 17 0 1 7 0 16 0 52 6 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("=" "paren-open" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 7 0 18 1 49 0 32 4 0 52 2 0 0 50)} {:upvalue-count 4 :arity 0 :constants ("list" me "=" "keyword" "then" "end" focus!) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 60 0 18 1 48 0 1 3 0 52 2 0 2 6 33 28 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 5 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 0 0 2 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "keyword" "end" "nil?" "append" "list") :bytecode (18 0 48 0 6 34 28 0 5 18 1 48 0 1 1 0 52 0 0 2 6 33 12 0 5 18 2 48 0 1 2 0 52 0 0 2 33 5 0 16 0 32 36 0 18 3 48 0 17 1 16 1 52 3 0 1 33 5 0 16 0 32 16 0 18 4 16 0 16 1 52 5 0 1 52 4 0 2 49 1 50)} "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 5 :arity 0 :constants ("end" "list" def) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 17 1 18 3 48 0 17 2 18 4 1 0 0 48 1 5 1 2 0 16 0 16 1 16 2 52 1 0 4 50)} {:upvalue-count 5 :arity 0 :constants ("end" "list" behavior) :bytecode (18 0 48 0 17 0 18 1 48 0 5 18 2 48 0 17 1 18 3 48 0 17 2 18 4 1 0 0 48 1 5 1 2 0 16 0 16 1 16 2 52 1 0 4 50)} {:upvalue-count 4 :arity 1 :constants ({:upvalue-count 5 :arity 1 :constants ("=" "local" "append" "list") :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 38 0 18 1 48 0 17 1 18 2 48 0 5 18 3 48 0 17 2 18 4 16 0 16 1 16 2 52 3 0 2 52 2 0 2 49 1 32 2 0 16 0 50)} "list") :bytecode (51 0 0 0 0 0 1 0 2 0 3 1 0 17 0 5 16 0 52 1 0 0 49 1 50)} {:upvalue-count 6 :arity 0 :constants ("=" "component" "paren-open" "paren-close" "into" "before" "after" "list" render) :bytecode (18 0 48 0 1 1 0 52 0 0 2 33 16 0 18 1 48 0 17 0 18 2 48 0 5 16 0 32 66 0 18 0 48 0 1 2 0 52 0 0 2 33 39 0 18 2 48 0 5 18 3 48 0 17 0 18 0 48 0 1 3 0 52 0 0 2 33 7 0 18 2 48 0 32 1 0 2 5 16 0 32 13 0 18 1 48 0 17 0 18 2 48 0 5 16 0 17 0 18 4 48 0 17 1 18 5 1 4 0 48 1 33 6 0 1 4 0 32 33 0 18 5 1 5 0 48 1 33 6 0 1 5 0 32 17 0 18 5 1 6 0 48 1 33 6 0 1 6 0 32 1 0 2 17 2 16 2 33 7 0 18 3 48 0 32 1 0 2 17 3 16 2 33 18 0 1 8 0 16 0 16 1 16 2 16 3 52 7 0 5 32 11 0 1 8 0 16 0 16 1 52 7 0 3 50)} {:upvalue-count 5 :arity 0 :constants ("get" "pos" {:upvalue-count 6 :arity 1 :constants ("=" "paren-open" "+" 1 "paren-close" 0 "get" "pos" "-") :bytecode (18 0 48 0 33 5 0 18 1 32 123 0 18 2 48 0 1 1 0 52 0 0 2 33 21 0 18 3 48 0 5 18 4 16 0 1 3 0 52 2 0 2 49 1 32 88 0 18 2 48 0 1 4 0 52 0 0 2 33 63 0 16 0 1 5 0 52 0 0 2 33 30 0 18 5 48 0 1 7 0 52 6 0 2 1 3 0 52 2 0 2 17 1 18 3 48 0 5 16 1 32 18 0 18 3 48 0 5 18 4 16 0 1 3 0 52 8 0 2 49 1 32 11 0 18 3 48 0 5 18 4 16 0 49 1 50)} 0 "substring") :bytecode (18 0 48 0 1 1 0 52 0 0 2 17 0 18 1 48 0 5 51 2 0 0 2 1 0 0 3 0 1 1 1 0 0 17 1 5 16 1 1 3 0 48 1 17 2 18 4 16 0 16 2 52 4 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("list" sym "me" "=" "keyword" "then" "end" empty-target) :bytecode (18 0 48 0 33 13 0 1 1 0 1 2 0 52 0 0 2 32 63 0 18 1 48 0 1 4 0 52 3 0 2 6 33 28 0 5 18 2 48 0 1 5 0 52 3 0 2 6 34 12 0 5 18 2 48 0 1 6 0 52 3 0 2 33 13 0 1 1 0 1 2 0 52 0 0 2 32 4 0 18 3 48 0 17 0 1 7 0 16 0 52 0 0 2 50)} {:upvalue-count 2 :arity 0 :constants ("with" "list" swap!) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 18 0 48 0 17 1 1 2 0 16 0 16 1 52 1 0 3 50)} {:upvalue-count 4 :arity 0 :constants ("list" me "=" "keyword" "then" "end" open-element) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 60 0 18 1 48 0 1 3 0 52 2 0 2 6 33 28 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 5 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 0 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("list" me "=" "keyword" "then" "end" close-element) :bytecode (18 0 48 0 33 10 0 1 1 0 52 0 0 1 32 60 0 18 1 48 0 1 3 0 52 2 0 2 6 33 28 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 5 0 52 2 0 2 33 10 0 1 1 0 52 0 0 1 32 4 0 18 3 48 0 17 0 1 6 0 16 0 52 0 0 2 50)} {:upvalue-count 43 :arity 0 :constants ("=" "keyword" "catch" "finally" "end" "else" "otherwise" "add" "remove" "toggle" "set" "put" "if" "wait" "send" "trigger" "log" "increment" "decrement" "hide" "show" "transition" "repeat" "fetch" "call" "take" "settle" "list" settle "go" "return" "throw" "append" "tell" "for" "make" "install" "measure" "render" "scroll" "select" "reset" "default" "halt" "focus" "empty" "clear" "swap" "open" "close" "break" break "continue" continue "exit" exit) :bytecode (18 0 48 0 17 0 18 1 48 0 17 1 16 0 1 1 0 52 0 0 2 6 33 66 0 5 16 1 1 2 0 52 0 0 2 6 34 52 0 5 16 1 1 3 0 52 0 0 2 6 34 38 0 5 16 1 1 4 0 52 0 0 2 6 34 24 0 5 16 1 1 5 0 52 0 0 2 6 34 10 0 5 16 1 1 6 0 52 0 0 2 33 4 0 2 32 166 6 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 7 0 52 0 0 2 33 12 0 18 2 48 0 5 18 3 49 0 32 128 6 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 8 0 52 0 0 2 33 12 0 18 2 48 0 5 18 4 49 0 32 90 6 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 9 0 52 0 0 2 33 12 0 18 2 48 0 5 18 5 49 0 32 52 6 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 10 0 52 0 0 2 33 12 0 18 2 48 0 5 18 6 49 0 32 14 6 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 11 0 52 0 0 2 33 12 0 18 2 48 0 5 18 7 49 0 32 232 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 12 0 52 0 0 2 33 12 0 18 2 48 0 5 18 8 49 0 32 194 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 13 0 52 0 0 2 33 12 0 18 2 48 0 5 18 9 49 0 32 156 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 14 0 52 0 0 2 33 12 0 18 2 48 0 5 18 10 49 0 32 118 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 15 0 52 0 0 2 33 12 0 18 2 48 0 5 18 11 49 0 32 80 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 16 0 52 0 0 2 33 12 0 18 2 48 0 5 18 12 49 0 32 42 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 17 0 52 0 0 2 33 12 0 18 2 48 0 5 18 13 49 0 32 4 5 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 18 0 52 0 0 2 33 12 0 18 2 48 0 5 18 14 49 0 32 222 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 19 0 52 0 0 2 33 12 0 18 2 48 0 5 18 15 49 0 32 184 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 20 0 52 0 0 2 33 12 0 18 2 48 0 5 18 16 49 0 32 146 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 21 0 52 0 0 2 33 12 0 18 2 48 0 5 18 17 49 0 32 108 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 22 0 52 0 0 2 33 12 0 18 2 48 0 5 18 18 49 0 32 70 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 23 0 52 0 0 2 33 12 0 18 2 48 0 5 18 19 49 0 32 32 4 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 24 0 52 0 0 2 33 12 0 18 2 48 0 5 18 20 49 0 32 250 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 25 0 52 0 0 2 33 12 0 18 2 48 0 5 18 21 49 0 32 212 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 26 0 52 0 0 2 33 15 0 18 2 48 0 5 1 28 0 52 27 0 1 32 171 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 29 0 52 0 0 2 33 12 0 18 2 48 0 5 18 22 49 0 32 133 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 30 0 52 0 0 2 33 12 0 18 2 48 0 5 18 23 49 0 32 95 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 31 0 52 0 0 2 33 12 0 18 2 48 0 5 18 24 49 0 32 57 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 32 0 52 0 0 2 33 12 0 18 2 48 0 5 18 25 49 0 32 19 3 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 33 0 52 0 0 2 33 12 0 18 2 48 0 5 18 26 49 0 32 237 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 34 0 52 0 0 2 33 12 0 18 2 48 0 5 18 27 49 0 32 199 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 35 0 52 0 0 2 33 12 0 18 2 48 0 5 18 28 49 0 32 161 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 36 0 52 0 0 2 33 12 0 18 2 48 0 5 18 29 49 0 32 123 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 37 0 52 0 0 2 33 12 0 18 2 48 0 5 18 30 49 0 32 85 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 38 0 52 0 0 2 33 12 0 18 2 48 0 5 18 31 49 0 32 47 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 39 0 52 0 0 2 33 12 0 18 2 48 0 5 18 32 49 0 32 9 2 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 40 0 52 0 0 2 33 12 0 18 2 48 0 5 18 33 49 0 32 227 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 41 0 52 0 0 2 33 12 0 18 2 48 0 5 18 34 49 0 32 189 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 42 0 52 0 0 2 33 12 0 18 2 48 0 5 18 35 49 0 32 151 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 43 0 52 0 0 2 33 12 0 18 2 48 0 5 18 36 49 0 32 113 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 44 0 52 0 0 2 33 12 0 18 2 48 0 5 18 37 49 0 32 75 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 45 0 52 0 0 2 33 12 0 18 2 48 0 5 18 38 49 0 32 37 1 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 46 0 52 0 0 2 33 12 0 18 2 48 0 5 18 38 49 0 32 255 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 47 0 52 0 0 2 33 12 0 18 2 48 0 5 18 39 49 0 32 217 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 48 0 52 0 0 2 33 12 0 18 2 48 0 5 18 40 49 0 32 179 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 49 0 52 0 0 2 33 12 0 18 2 48 0 5 18 41 49 0 32 141 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 50 0 52 0 0 2 33 15 0 18 2 48 0 5 1 51 0 52 27 0 1 32 100 0 16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 1 1 52 0 52 0 0 2 33 15 0 18 2 48 0 5 1 53 0 52 27 0 1 32 59 0 16 0 1 1 0 52 0 0 2 6 33 24 0 5 16 1 1 54 0 52 0 0 2 6 34 10 0 5 16 1 1 43 0 52 0 0 2 33 15 0 18 2 48 0 5 1 55 0 52 27 0 1 32 4 0 18 42 49 0 50)} {:upvalue-count 5 :arity 2 :constants ({:upvalue-count 0 :arity 1 :constants ("=" "add" "remove" "toggle" "set" "put" "if" "wait" "send" "trigger" "log" "increment" "decrement" "hide" "show" "transition" "repeat" "fetch" "call" "take" "settle" "go" "return" "throw" "append" "tell" "for" "make" "install" "measure" "render" "halt" "default" "scroll" "select" "reset" "focus" "empty" "clear" "swap" "open" "close") :bytecode (16 0 1 1 0 52 0 0 2 6 34 44 2 5 16 0 1 2 0 52 0 0 2 6 34 30 2 5 16 0 1 3 0 52 0 0 2 6 34 16 2 5 16 0 1 4 0 52 0 0 2 6 34 2 2 5 16 0 1 5 0 52 0 0 2 6 34 244 1 5 16 0 1 6 0 52 0 0 2 6 34 230 1 5 16 0 1 7 0 52 0 0 2 6 34 216 1 5 16 0 1 8 0 52 0 0 2 6 34 202 1 5 16 0 1 9 0 52 0 0 2 6 34 188 1 5 16 0 1 10 0 52 0 0 2 6 34 174 1 5 16 0 1 11 0 52 0 0 2 6 34 160 1 5 16 0 1 12 0 52 0 0 2 6 34 146 1 5 16 0 1 13 0 52 0 0 2 6 34 132 1 5 16 0 1 14 0 52 0 0 2 6 34 118 1 5 16 0 1 15 0 52 0 0 2 6 34 104 1 5 16 0 1 16 0 52 0 0 2 6 34 90 1 5 16 0 1 17 0 52 0 0 2 6 34 76 1 5 16 0 1 18 0 52 0 0 2 6 34 62 1 5 16 0 1 19 0 52 0 0 2 6 34 48 1 5 16 0 1 20 0 52 0 0 2 6 34 34 1 5 16 0 1 21 0 52 0 0 2 6 34 20 1 5 16 0 1 22 0 52 0 0 2 6 34 6 1 5 16 0 1 23 0 52 0 0 2 6 34 248 0 5 16 0 1 24 0 52 0 0 2 6 34 234 0 5 16 0 1 25 0 52 0 0 2 6 34 220 0 5 16 0 1 26 0 52 0 0 2 6 34 206 0 5 16 0 1 27 0 52 0 0 2 6 34 192 0 5 16 0 1 28 0 52 0 0 2 6 34 178 0 5 16 0 1 29 0 52 0 0 2 6 34 164 0 5 16 0 1 30 0 52 0 0 2 6 34 150 0 5 16 0 1 31 0 52 0 0 2 6 34 136 0 5 16 0 1 32 0 52 0 0 2 6 34 122 0 5 16 0 1 33 0 52 0 0 2 6 34 108 0 5 16 0 1 34 0 52 0 0 2 6 34 94 0 5 16 0 1 35 0 52 0 0 2 6 34 80 0 5 16 0 1 36 0 52 0 0 2 6 34 66 0 5 16 0 1 37 0 52 0 0 2 6 34 52 0 5 16 0 1 38 0 52 0 0 2 6 34 38 0 5 16 0 1 39 0 52 0 0 2 6 34 24 0 5 16 0 1 40 0 52 0 0 2 6 34 10 0 5 16 0 1 41 0 52 0 0 2 50)} {:upvalue-count 7 :arity 1 :constants ("nil?" "append" "list" "then" __then__ "not" "=" "keyword") :bytecode (18 0 48 0 17 1 16 1 52 0 0 1 33 5 0 16 0 32 95 0 16 0 16 1 52 2 0 1 52 1 0 2 17 2 18 1 1 3 0 48 1 33 20 0 18 2 16 2 1 4 0 52 2 0 1 52 1 0 2 49 1 32 51 0 18 3 48 0 52 5 0 1 6 33 25 0 5 18 4 48 0 1 7 0 52 6 0 2 6 33 9 0 5 18 5 18 6 48 0 48 1 33 9 0 18 2 16 2 49 1 32 2 0 16 2 50)} "list" "=" "len" 0 1 "first" "cons" do "filter" {:upvalue-count 0 :arity 1 :constants ("not" "=" __then__) :bytecode (16 0 1 2 0 52 1 0 2 52 0 0 1 50)}) :bytecode (51 0 0 17 0 5 51 1 0 0 0 0 1 1 1 0 2 0 3 1 0 0 4 17 1 5 16 1 52 2 0 0 48 1 17 2 16 2 52 4 0 1 1 5 0 52 3 0 2 33 4 0 2 32 41 0 16 2 52 4 0 1 1 6 0 52 3 0 2 33 9 0 16 2 52 7 0 1 32 16 0 1 9 0 51 11 0 16 2 52 10 0 2 52 8 0 2 50)} {:upvalue-count 7 :arity 0 :constants ("every" "=" "bracket-open" "bracket-close" "from" "catch" "list" "finally" "end" on "append" "filter") :bytecode (18 0 1 0 0 48 1 17 0 18 1 48 0 17 1 18 2 48 0 1 2 0 52 1 0 2 33 39 0 18 3 48 0 5 18 4 48 0 17 2 18 2 48 0 1 3 0 52 1 0 2 33 7 0 18 3 48 0 32 1 0 2 5 16 2 32 1 0 2 17 2 18 0 1 4 0 48 1 33 7 0 18 4 48 0 32 1 0 2 17 3 18 5 48 0 17 4 18 0 1 5 0 48 1 33 32 0 18 6 48 0 17 5 18 3 48 0 5 16 5 17 5 18 5 48 0 17 6 16 5 16 6 52 6 0 2 32 1 0 2 17 5 18 0 1 7 0 48 1 33 7 0 18 5 48 0 32 1 0 2 17 6 18 0 1 8 0 48 1 5 1 9 0 16 1 52 6 0 2 17 7 16 0 33 17 0 16 7 1 0 0 3 52 6 0 2 52 10 0 2 32 2 0 16 7 17 8 16 2 33 18 0 16 8 1 11 0 16 2 52 6 0 2 52 10 0 2 32 2 0 16 8 17 9 16 3 33 18 0 16 9 1 4 0 16 3 52 6 0 2 52 10 0 2 32 2 0 16 9 17 10 16 5 33 18 0 16 10 1 5 0 16 5 52 6 0 2 52 10 0 2 32 2 0 16 10 17 11 16 6 33 18 0 16 11 1 7 0 16 6 52 6 0 2 52 10 0 2 32 2 0 16 11 17 12 16 12 16 4 52 6 0 1 52 10 0 2 17 13 16 13 50)} {:upvalue-count 2 :arity 0 :constants ("end" "list" init) :bytecode (18 0 48 0 17 0 18 1 1 0 0 48 1 5 1 2 0 16 0 52 1 0 2 50)} {:upvalue-count 7 :arity 0 :constants ("=" "on" "init" "def" "behavior") :bytecode (18 0 48 0 17 0 16 0 1 1 0 52 0 0 2 33 12 0 18 1 48 0 5 18 2 49 0 32 76 0 16 0 1 2 0 52 0 0 2 33 12 0 18 1 48 0 5 18 3 49 0 32 52 0 16 0 1 3 0 52 0 0 2 33 12 0 18 1 48 0 5 18 4 49 0 32 28 0 16 0 1 4 0 52 0 0 2 33 12 0 18 1 48 0 5 18 5 49 0 32 4 0 18 6 49 0 50)} {:upvalue-count 3 :arity 1 :constants ("nil?" "append" "list") :bytecode (18 0 48 0 33 5 0 16 0 32 36 0 18 1 48 0 17 1 16 1 52 0 0 1 33 5 0 16 0 32 16 0 18 2 16 0 16 1 52 2 0 1 52 1 0 2 49 1 50)} "list" "=" 1 "first" "cons" do) :bytecode (1 0 0 17 2 16 0 52 1 0 1 17 3 51 2 0 1 2 1 3 1 0 17 4 5 51 3 0 1 4 17 5 5 51 4 0 1 4 17 6 5 51 5 0 1 0 1 2 17 7 5 51 6 0 1 2 1 3 1 5 17 8 5 51 7 0 1 5 1 6 1 7 17 9 5 51 8 0 1 9 1 2 17 10 5 51 9 0 17 11 5 51 10 0 1 5 1 6 1 7 1 13 17 12 5 51 11 0 1 5 1 8 1 6 1 7 1 13 1 42 17 13 5 51 12 0 1 5 1 6 1 7 17 14 5 51 13 0 1 5 1 6 1 7 1 9 1 21 17 15 5 51 14 0 1 5 1 6 1 7 1 11 1 21 1 69 1 47 1 12 1 14 1 15 1 8 1 2 1 0 1 48 1 16 1 9 1 42 17 16 5 51 15 0 1 5 1 6 1 7 1 12 1 13 1 42 1 21 1 17 17 17 5 51 16 0 1 5 1 6 1 7 1 21 1 9 1 16 1 8 17 18 5 51 17 0 1 9 1 18 1 46 1 17 1 16 1 19 17 19 5 51 18 0 1 9 1 19 1 18 1 46 1 17 1 16 1 20 17 20 5 51 19 0 1 16 1 5 1 6 1 7 1 17 1 46 1 18 1 19 1 20 17 21 5 51 20 0 1 9 1 21 17 22 5 51 21 0 1 5 1 7 1 9 1 21 1 8 1 6 17 23 5 51 22 0 1 5 1 7 1 9 1 21 1 6 17 24 5 51 23 0 1 9 1 5 1 6 1 7 1 10 1 22 1 21 1 16 1 47 17 25 5 51 24 0 1 21 1 9 1 2 17 26 5 51 25 0 1 21 1 9 1 10 1 2 17 27 5 51 26 0 1 21 1 9 1 75 17 28 5 51 27 0 1 9 1 6 1 7 1 21 1 5 1 11 17 29 5 51 28 0 1 7 1 5 1 8 1 21 17 30 5 51 29 0 1 7 1 8 1 5 1 6 17 31 5 51 30 0 1 31 1 5 1 30 1 22 17 32 5 51 31 0 1 7 1 22 17 33 5 51 32 0 1 21 17 34 5 51 33 0 1 21 1 9 1 22 17 35 5 51 34 0 1 21 1 9 1 22 17 36 5 51 35 0 1 8 1 5 1 6 1 21 1 9 1 7 17 37 5 51 36 0 1 8 1 5 1 6 1 21 1 9 1 7 17 38 5 51 37 0 1 5 1 6 1 7 1 16 1 9 1 21 1 10 1 8 17 39 5 51 38 0 1 5 1 6 1 7 1 53 1 21 1 75 1 9 17 40 5 51 39 0 1 5 1 6 1 7 1 8 1 46 1 17 1 16 1 9 1 21 17 41 5 51 40 0 1 7 1 5 1 8 1 21 17 42 5 51 41 0 1 7 1 5 1 42 17 43 5 51 42 0 1 5 1 6 1 7 1 9 1 21 17 44 5 51 43 0 1 9 1 21 17 45 5 51 44 0 1 5 1 6 1 7 1 16 1 17 1 46 17 46 5 51 45 0 1 5 1 6 1 7 1 9 1 21 1 15 1 14 1 16 17 47 5 51 46 0 1 5 1 8 1 7 1 21 17 48 5 51 47 0 1 8 1 5 1 6 1 21 17 49 5 51 48 0 1 21 17 50 5 51 49 0 1 21 1 9 17 51 5 51 50 0 1 21 1 9 1 75 17 52 5 51 51 0 1 6 1 7 1 10 1 21 1 9 1 75 17 53 5 51 52 0 1 6 1 7 1 9 17 54 5 51 53 0 1 6 1 7 1 5 1 42 17 55 5 51 54 0 1 21 17 56 5 51 55 0 1 8 1 5 1 6 1 21 1 9 17 57 5 51 56 0 1 8 1 5 1 6 1 21 17 58 5 51 57 0 1 8 1 5 1 6 1 21 17 59 5 51 58 0 1 21 1 10 17 60 5 51 59 0 1 9 1 6 1 7 17 61 5 51 60 0 1 5 1 42 17 62 5 51 61 0 1 8 1 5 1 6 1 21 17 63 5 51 62 0 1 8 1 5 1 6 1 78 17 64 5 51 63 0 1 6 1 7 1 62 1 75 1 9 17 65 5 51 64 0 1 6 1 7 1 62 1 64 1 9 17 66 5 51 65 0 1 5 1 6 1 7 1 21 17 67 5 51 66 0 1 5 1 6 1 7 1 21 1 67 1 9 17 68 5 51 67 0 1 4 1 7 1 8 1 5 1 1 17 69 5 51 68 0 1 8 1 5 1 6 1 21 17 70 5 51 69 0 1 21 1 9 17 71 5 51 70 0 1 8 1 5 1 6 1 21 17 72 5 51 71 0 1 8 1 5 1 6 1 21 17 73 5 51 72 0 1 5 1 6 1 7 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 43 1 44 1 45 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 68 1 57 1 58 1 59 1 60 1 61 1 63 1 70 1 71 1 72 1 73 1 21 17 74 5 51 73 0 1 74 1 9 1 8 1 5 1 6 17 75 5 51 74 0 1 9 1 31 1 5 1 7 1 21 1 75 1 6 17 76 5 51 75 0 1 75 1 9 17 77 5 51 76 0 1 6 1 7 1 76 1 77 1 65 1 66 1 75 17 78 5 51 77 0 1 8 1 78 1 79 17 79 5 16 79 52 78 0 0 48 1 17 80 16 80 52 1 0 1 1 80 0 52 79 0 2 33 9 0 16 80 52 81 0 1 32 9 0 1 83 0 16 80 52 82 0 2 50)} "hs-compile" {:upvalue-count 0 :arity 1 :constants ("hs-parse" "hs-tokenize") :bytecode (20 0 0 20 1 0 16 0 48 1 16 0 49 2 50)}) :bytecode (51 1 0 128 0 0 5 51 3 0 128 2 0 50))) diff --git a/shared/static/wasm/sx/hs-runtime.sx b/shared/static/wasm/sx/hs-runtime.sx index 4daa71d9..956d158c 100644 --- a/shared/static/wasm/sx/hs-runtime.sx +++ b/shared/static/wasm/sx/hs-runtime.sx @@ -2525,3 +2525,56 @@ (fn (fn-name args) (let ((fn (host-global fn-name))) (if fn (host-call-fn fn args) nil)))) + +;; ── WebSocket / socket feature ─────────────────────────────────── + +(define + hs-socket-register! + (fn + (name-path url timeout-ms handler json?) + ;; 1. Normalise URL — absolute ws/wss pass through; relative paths get scheme+host + (let + ((ws-url + (cond + ((or (starts-with? url "ws://") (starts-with? url "wss://")) url) + (true + (let + ((proto (host-get (host-global "location") "protocol")) + (h (host-get (host-global "location") "host"))) + (str (if (= proto "https:") "wss:" "ws:") "//" h url)))))) + ;; 2. Construct WebSocket + (let + ((ws (host-new "WebSocket" ws-url))) + ;; 3. Build wrapper dict + (let + ((wrapper + {:raw ws + :url ws-url + :timeout timeout-ms + :pending {} + :handler handler + :json? json? + :closed? false})) + ;; 4. Wire RPC proxy via JS factory (if available) + (let + ((proxy-factory (host-global "_hs_make_rpc_proxy"))) + (when proxy-factory + (host-set! wrapper "rpc" + (host-call proxy-factory "call" nil wrapper)))) + ;; 5. Bind wrapper on window, walking name-path + (define + bind-path! + (fn + (obj path) + (if + (= (len path) 1) + (host-set! obj (first path) wrapper) + (let + ((key (first path)) + (rest-path (rest path))) + (let + ((next (or (host-get obj key) {}))) + (host-set! obj key next) + (bind-path! next rest-path)))))) + (bind-path! (host-global "window") name-path) + wrapper))))) diff --git a/shared/static/wasm/sx/hs-runtime.sxbc b/shared/static/wasm/sx/hs-runtime.sxbc deleted file mode 100644 index b0535f59..00000000 --- a/shared/static/wasm/sx/hs-runtime.sxbc +++ /dev/null @@ -1,3 +0,0 @@ -(sxbc 1 "d0fcc22cbe0ba27f" - (code - :constants ("hs-each" {:upvalue-count 0 :arity 2 :constants ("list?" "for-each") :bytecode (16 0 52 0 0 1 33 11 0 16 1 16 0 52 1 0 2 32 6 0 16 1 16 0 49 1 50)} "hs-on" {:upvalue-count 0 :arity 3 :constants ("dom-listen") :bytecode (20 0 0 16 0 16 1 16 2 49 3 50)} "hs-on-every" "hs-init" {:upvalue-count 0 :arity 1 :constants () :bytecode (16 0 49 0 50)} "hs-wait" {:upvalue-count 0 :arity 1 :constants ("list" io-sleep) :bytecode (1 1 0 16 0 52 0 0 2 112 50)} "hs-wait-for" {:upvalue-count 0 :arity 2 :constants ("list" io-wait-event) :bytecode (1 1 0 16 0 16 1 52 0 0 3 112 50)} "hs-settle" {:upvalue-count 0 :arity 1 :constants ("list" io-settle) :bytecode (1 1 0 16 0 52 0 0 2 112 50)} "hs-toggle-class!" {:upvalue-count 0 :arity 2 :constants ("host-call" "host-get" "classList" "toggle") :bytecode (16 0 1 2 0 52 1 0 2 1 3 0 16 1 52 0 0 3 50)} "hs-toggle-between!" {:upvalue-count 0 :arity 3 :constants ("dom-has-class?" "dom-remove-class" "dom-add-class") :bytecode (20 0 0 16 0 16 1 48 2 33 22 0 20 1 0 16 0 16 1 48 2 5 20 2 0 16 0 16 2 49 2 32 19 0 20 1 0 16 0 16 2 48 2 5 20 2 0 16 0 16 1 49 2 50)} "hs-toggle-style!" {:upvalue-count 0 :arity 2 :constants ("dom-get-style" "=" "visibility" "hidden" "dom-set-style" "visible" "display" "opacity" "none" "0" "1" "") :bytecode (20 0 0 16 0 16 1 48 2 17 2 16 1 1 2 0 52 1 0 2 33 42 0 16 2 1 3 0 52 1 0 2 33 15 0 20 4 0 16 0 16 1 1 5 0 49 3 32 12 0 20 4 0 16 0 16 1 1 3 0 49 3 32 169 0 16 1 1 6 0 52 1 0 2 6 34 10 0 5 16 1 1 7 0 52 1 0 2 33 92 0 16 2 1 8 0 52 1 0 2 6 34 10 0 5 16 2 1 9 0 52 1 0 2 33 33 0 20 4 0 16 0 16 1 16 1 1 7 0 52 1 0 2 33 6 0 1 10 0 32 3 0 1 11 0 49 3 32 30 0 20 4 0 16 0 16 1 16 1 1 6 0 52 1 0 2 33 6 0 1 8 0 32 3 0 1 9 0 49 3 32 51 0 16 2 1 11 0 52 1 0 2 6 34 8 0 5 16 2 2 52 1 0 2 33 15 0 20 4 0 16 0 16 1 1 3 0 49 3 32 12 0 20 4 0 16 0 16 1 1 11 0 49 3 50)} "hs-toggle-style-between!" {:upvalue-count 0 :arity 4 :constants ("dom-get-style" "=" "dom-set-style") :bytecode (20 0 0 16 0 16 1 48 2 17 4 16 4 16 2 52 1 0 2 33 14 0 20 2 0 16 0 16 1 16 3 49 3 32 11 0 20 2 0 16 0 16 1 16 2 49 3 50)} "hs-toggle-style-cycle!" {:upvalue-count 0 :arity 3 :constants ("dom-get-style" {:upvalue-count 3 :arity 1 :constants ("empty?" "first" "=" "rest") :bytecode (16 0 52 0 0 1 33 9 0 18 0 52 1 0 1 32 60 0 18 1 16 0 52 1 0 1 52 2 0 2 33 35 0 16 0 52 3 0 1 52 0 0 1 33 9 0 18 0 52 1 0 1 32 10 0 16 0 52 3 0 1 52 1 0 1 32 10 0 18 2 16 0 52 3 0 1 49 1 50)} "dom-set-style") :bytecode (20 0 0 16 0 16 1 48 2 17 3 51 1 0 1 2 1 3 1 4 17 4 5 20 2 0 16 0 16 1 16 4 16 2 48 1 49 3 50)} "hs-take!" {:upvalue-count 0 :arity 5 :constants ("list?" "list" "dom-parent" "dom-child-list" "=" "class" "for-each" {:upvalue-count 1 :arity 1 :constants ("dom-remove-class") :bytecode (20 0 0 16 0 18 0 49 2 50)} "dom-add-class" ">" "len" 0 "first" 1 "nth" {:upvalue-count 2 :arity 1 :constants ("dom-set-attr") :bytecode (20 0 0 16 0 18 0 18 1 49 3 50)} "dom-set-attr" "") :rest-arity 4 :bytecode (16 3 33 23 0 16 3 52 0 0 1 33 5 0 16 3 32 6 0 16 3 52 1 0 1 32 28 0 20 2 0 16 0 48 1 17 5 16 5 33 10 0 20 3 0 16 5 48 1 32 4 0 52 1 0 0 17 5 16 1 1 5 0 52 4 0 2 33 24 0 51 7 0 1 2 16 5 52 6 0 2 5 20 8 0 16 0 16 2 49 2 32 113 0 16 4 52 10 0 1 1 11 0 52 9 0 2 33 9 0 16 4 52 12 0 1 32 1 0 2 17 6 16 4 52 10 0 1 1 13 0 52 9 0 2 33 12 0 16 4 1 13 0 52 14 0 2 32 1 0 2 17 7 16 7 33 16 0 51 15 0 1 2 1 7 16 5 52 6 0 2 32 1 0 2 5 16 6 33 14 0 20 16 0 16 0 16 2 16 6 49 3 32 12 0 20 16 0 16 0 16 2 1 17 0 49 3 50)} "hs-put!" {:upvalue-count 0 :arity 3 :constants ("=" "into" "list?" "dom-set-inner-html" "before" "dom-insert-adjacent-html" "beforebegin" "after" "afterend" "start" "append!" 0 "afterbegin" "end" "beforeend") :bytecode (16 1 1 1 0 52 0 0 2 33 26 0 16 2 52 2 0 1 33 5 0 16 2 32 9 0 20 3 0 16 2 16 0 49 2 32 152 0 16 1 1 4 0 52 0 0 2 33 15 0 20 5 0 16 2 1 6 0 16 0 49 3 32 125 0 16 1 1 7 0 52 0 0 2 33 15 0 20 5 0 16 2 1 8 0 16 0 49 3 32 98 0 16 1 1 9 0 52 0 0 2 33 38 0 16 2 52 2 0 1 33 14 0 16 2 16 0 1 11 0 52 10 0 3 32 12 0 20 5 0 16 2 1 12 0 16 0 49 3 32 48 0 16 1 1 13 0 52 0 0 2 33 35 0 16 2 52 2 0 1 33 11 0 16 2 16 0 52 10 0 2 32 12 0 20 5 0 16 2 1 14 0 16 0 49 3 32 1 0 2 50)} "hs-add-to!" {:upvalue-count 0 :arity 2 :constants ("list?" "append" "list" "host-call" "push") :bytecode (16 1 52 0 0 1 33 15 0 16 1 16 0 52 2 0 1 52 1 0 2 32 11 0 16 1 1 4 0 16 0 52 3 0 3 50)} "hs-remove-from!" {:upvalue-count 0 :arity 2 :constants ("list?" "filter" {:upvalue-count 1 :arity 1 :constants ("not" "=") :bytecode (16 0 18 0 52 1 0 2 52 0 0 1 50)} "host-call" "splice" "indexOf" 1) :bytecode (16 1 52 0 0 1 33 14 0 51 2 0 1 0 16 1 52 1 0 2 32 23 0 16 1 1 4 0 16 1 1 5 0 16 0 52 3 0 3 1 6 0 52 3 0 4 50)} "hs-set-on!" {:upvalue-count 0 :arity 2 :constants ("for-each" {:upvalue-count 2 :arity 1 :constants ("host-set!" "get") :bytecode (18 0 16 0 18 1 16 0 52 1 0 2 52 0 0 3 50)} "keys") :bytecode (51 1 0 1 1 1 0 16 0 52 2 0 1 52 0 0 2 50)} "hs-navigate!" {:upvalue-count 0 :arity 1 :constants ("list" io-navigate) :bytecode (1 1 0 16 0 52 0 0 2 112 50)} "hs-scroll!" {:upvalue-count 0 :arity 2 :constants ("host-call" "scrollIntoView" "list" "=" "bottom" "dict" "block" "end" "start") :bytecode (16 0 1 1 0 16 1 1 4 0 52 3 0 2 33 13 0 1 6 0 1 7 0 52 5 0 2 32 10 0 1 6 0 1 8 0 52 5 0 2 52 2 0 1 52 0 0 3 50)} "hs-halt!" {:upvalue-count 0 :arity 1 :constants ("event" "=" "default" "host-call" "preventDefault" "bubbling" "stopPropagation") :bytecode (20 0 0 33 74 0 16 0 1 2 0 52 1 0 2 33 13 0 20 0 0 1 4 0 52 3 0 2 32 46 0 16 0 1 5 0 52 1 0 2 33 13 0 20 0 0 1 6 0 52 3 0 2 32 21 0 20 0 0 1 4 0 52 3 0 2 5 20 0 0 1 6 0 52 3 0 2 32 1 0 2 50)} "hs-select!" {:upvalue-count 0 :arity 1 :constants ("host-call" "select" "list") :bytecode (16 0 1 1 0 52 2 0 0 52 0 0 3 50)} "hs-reset!" {:upvalue-count 0 :arity 1 :constants ("host-call" "reset" "list") :bytecode (16 0 1 1 0 52 2 0 0 52 0 0 3 50)} "hs-next" {:upvalue-count 0 :arity 2 :constants ("=" "*" "dom-next-sibling" {:upvalue-count 2 :arity 1 :constants ("nil?" "dom-matches?" "dom-next-sibling") :bytecode (16 0 52 0 0 1 33 4 0 2 32 28 0 20 1 0 16 0 18 0 48 2 33 5 0 16 0 32 11 0 18 1 20 2 0 16 0 48 1 49 1 50)}) :bytecode (16 1 1 1 0 52 0 0 2 33 10 0 20 2 0 16 0 49 1 32 25 0 20 2 0 16 0 48 1 17 2 51 3 0 1 1 1 3 17 3 5 16 3 16 2 49 1 50)} "hs-previous" {:upvalue-count 0 :arity 2 :constants ("=" "*" "dom-get-prop" "previousElementSibling" {:upvalue-count 2 :arity 1 :constants ("nil?" "dom-matches?" "dom-get-prop" "previousElementSibling") :bytecode (16 0 52 0 0 1 33 4 0 2 32 31 0 20 1 0 16 0 18 0 48 2 33 5 0 16 0 32 14 0 18 1 20 2 0 16 0 1 3 0 48 2 49 1 50)}) :bytecode (16 1 1 1 0 52 0 0 2 33 13 0 20 2 0 16 0 1 3 0 49 2 32 28 0 20 2 0 16 0 1 3 0 48 2 17 2 51 4 0 1 1 1 3 17 3 5 16 3 16 2 49 1 50)} "hs-query-all" {:upvalue-count 0 :arity 1 :constants ("host-call" "dom-body" "querySelectorAll") :bytecode (20 1 0 48 0 1 2 0 16 0 52 0 0 3 50)} "hs-query-first" {:upvalue-count 0 :arity 1 :constants ("host-call" "host-global" "document" "querySelector") :bytecode (1 2 0 52 1 0 1 1 3 0 16 0 52 0 0 3 50)} "hs-query-last" {:upvalue-count 0 :arity 1 :constants ("dom-query-all" "dom-body" ">" "len" 0 "nth" "-" 1) :bytecode (20 0 0 20 1 0 48 0 16 0 48 2 17 1 16 1 52 3 0 1 1 4 0 52 2 0 2 33 22 0 16 1 16 1 52 3 0 1 1 7 0 52 6 0 2 52 5 0 2 32 1 0 2 50)} "hs-first" {:upvalue-count 0 :arity 2 :constants ("dom-query-all") :bytecode (20 0 0 16 0 16 1 49 2 50)} "hs-last" {:upvalue-count 0 :arity 2 :constants ("dom-query-all" ">" "len" 0 "nth" "-" 1) :bytecode (20 0 0 16 0 16 1 48 2 17 2 16 2 52 2 0 1 1 3 0 52 1 0 2 33 22 0 16 2 16 2 52 2 0 1 1 6 0 52 5 0 2 52 4 0 2 32 1 0 2 50)} "hs-repeat-times" {:upvalue-count 0 :arity 3 :constants ({:upvalue-count 3 :arity 1 :constants ("<" "=" "str" "hs-break" "hs-continue" "+" 1) :bytecode (16 0 18 0 52 0 0 2 33 124 0 35 10 0 18 1 48 0 5 2 36 32 49 0 17 0 5 16 0 52 2 0 1 1 3 0 52 1 0 2 6 34 14 0 5 16 0 52 2 0 1 1 4 0 52 1 0 2 33 9 0 16 0 52 2 0 1 32 3 0 16 0 37 17 1 16 1 1 3 0 52 1 0 2 33 4 0 2 32 41 0 16 1 1 4 0 52 1 0 2 33 16 0 18 2 16 0 1 6 0 52 5 0 2 49 1 32 13 0 18 2 16 0 1 6 0 52 5 0 2 49 1 32 1 0 2 50)} 0) :bytecode (51 0 0 1 0 1 1 1 2 17 2 5 16 2 1 1 0 49 1 50)} "hs-repeat-forever" {:upvalue-count 0 :arity 2 :constants ({:upvalue-count 2 :arity 0 :constants ("=" "str" "hs-break" "hs-continue") :bytecode (35 10 0 18 0 48 0 5 2 36 32 49 0 17 0 5 16 0 52 1 0 1 1 2 0 52 0 0 2 6 34 14 0 5 16 0 52 1 0 1 1 3 0 52 0 0 2 33 9 0 16 0 52 1 0 1 32 3 0 16 0 37 17 0 16 0 1 2 0 52 0 0 2 33 4 0 2 32 23 0 16 0 1 3 0 52 0 0 2 33 7 0 18 1 49 0 32 4 0 18 1 49 0 50)}) :bytecode (51 0 0 1 0 1 1 17 1 5 16 1 49 0 50)} "hs-repeat-while" {:upvalue-count 0 :arity 2 :constants ("=" "str" "hs-break" "hs-continue" "hs-repeat-while") :bytecode (16 0 48 0 33 116 0 35 10 0 16 1 48 0 5 2 36 32 49 0 17 0 5 16 0 52 1 0 1 1 2 0 52 0 0 2 6 34 14 0 5 16 0 52 1 0 1 1 3 0 52 0 0 2 33 9 0 16 0 52 1 0 1 32 3 0 16 0 37 17 2 16 2 1 2 0 52 0 0 2 33 4 0 2 32 33 0 16 2 1 3 0 52 0 0 2 33 12 0 20 4 0 16 0 16 1 49 2 32 9 0 20 4 0 16 0 16 1 49 2 32 1 0 2 50)} "hs-repeat-until" {:upvalue-count 0 :arity 2 :constants ("=" "str" "hs-break" "hs-continue" "hs-repeat-until") :bytecode (35 10 0 16 1 48 0 5 2 36 32 49 0 17 0 5 16 0 52 1 0 1 1 2 0 52 0 0 2 6 34 14 0 5 16 0 52 1 0 1 1 3 0 52 0 0 2 33 9 0 16 0 52 1 0 1 32 3 0 16 0 37 17 2 16 2 1 2 0 52 0 0 2 33 4 0 2 32 55 0 16 2 1 3 0 52 0 0 2 33 23 0 16 0 48 0 33 4 0 2 32 9 0 20 4 0 16 0 16 1 49 2 32 20 0 16 0 48 0 33 4 0 2 32 9 0 20 4 0 16 0 16 1 49 2 50)} "hs-for-each" {:upvalue-count 0 :arity 2 :constants ("list?" "dict?" "keys" "nil?" "list" {:upvalue-count 2 :arity 1 :constants ("not" "empty?" "first" "=" "str" "hs-break" "hs-continue" "rest") :bytecode (16 0 52 1 0 1 52 0 0 1 33 124 0 35 16 0 18 0 16 0 52 2 0 1 48 1 5 2 36 32 49 0 17 0 5 16 0 52 4 0 1 1 5 0 52 3 0 2 6 34 14 0 5 16 0 52 4 0 1 1 6 0 52 3 0 2 33 9 0 16 0 52 4 0 1 32 3 0 16 0 37 17 1 16 1 1 5 0 52 3 0 2 33 4 0 2 32 35 0 16 1 1 6 0 52 3 0 2 33 13 0 18 1 16 0 52 7 0 1 49 1 32 10 0 18 1 16 0 52 7 0 1 49 1 32 1 0 2 50)}) :bytecode (16 1 52 0 0 1 33 5 0 16 1 32 38 0 16 1 52 1 0 1 33 9 0 16 1 52 2 0 1 32 20 0 16 1 52 3 0 1 33 7 0 52 4 0 0 32 4 0 52 4 0 0 17 2 51 5 0 1 0 1 3 17 3 5 16 3 16 2 49 1 50)} "hs-append" {:upvalue-count 0 :arity 2 :constants ("string?" "str" "list?" "append" "list") :bytecode (16 0 52 0 0 1 33 11 0 16 0 16 1 52 1 0 2 32 32 0 16 0 52 2 0 1 33 15 0 16 0 16 1 52 4 0 1 52 3 0 2 32 8 0 16 0 16 1 52 1 0 2 50)} "hs-append!" {:upvalue-count 0 :arity 2 :constants ("dom-insert-adjacent-html" "beforeend") :bytecode (20 0 0 16 1 1 1 0 16 0 49 3 50)} "hs-fetch" {:upvalue-count 0 :arity 2 :constants ("list" "io-fetch" "text") :bytecode (1 1 0 16 0 16 1 33 5 0 16 1 32 3 0 1 2 0 52 0 0 3 112 50)} "hs-coerce" {:upvalue-count 0 :arity 2 :constants ("=" "Int" "floor" "+" 0 "Integer" "Float" "Number" "String" "list?" "join" "," "map" {:upvalue-count 0 :arity 1 :constants ("str") :bytecode (16 0 52 0 0 1 50)} "str" "Bool" "not" "hs-falsy?" "Boolean" "Array" "list" "HTML" "JSON" "string?" "host-call" "host-global" "stringify" "Object" "parse" "Fixed" "Fixed:" ">" "string-length" 6 "substring" "**" 10 "/" "*" 0.5 "Selector" "Fragment" "Values" "dict?" {:upvalue-count 1 :arity 1 :constants ("get") :bytecode (18 0 16 0 52 0 0 2 50)} "keys" "Keys" "Entries" {:upvalue-count 1 :arity 1 :constants ("list" "get") :bytecode (16 0 18 0 16 0 52 1 0 2 52 0 0 2 50)} "Reversed" "reverse" "Unique" "reduce" {:upvalue-count 0 :arity 2 :constants ("some" {:upvalue-count 1 :arity 1 :constants ("=") :bytecode (16 0 18 0 52 0 0 2 50)} "append" "list") :bytecode (51 1 0 1 1 16 0 52 0 0 2 33 5 0 16 0 32 12 0 16 0 16 1 52 3 0 1 52 2 0 2 50)} "Flattened" "Flat" {:upvalue-count 0 :arity 2 :constants ("list?" "append" "list") :bytecode (16 1 52 0 0 1 33 11 0 16 0 16 1 52 1 0 2 32 12 0 16 0 16 1 52 2 0 1 52 1 0 2 50)} "Set" "Map") :bytecode (16 1 1 1 0 52 0 0 2 33 16 0 16 0 1 4 0 52 3 0 2 52 2 0 1 32 89 3 16 1 1 5 0 52 0 0 2 33 16 0 16 0 1 4 0 52 3 0 2 52 2 0 1 32 61 3 16 1 1 6 0 52 0 0 2 33 12 0 16 0 1 4 0 52 3 0 2 32 37 3 16 1 1 7 0 52 0 0 2 33 12 0 16 0 1 4 0 52 3 0 2 32 13 3 16 1 1 8 0 52 0 0 2 33 37 0 16 0 52 9 0 1 33 19 0 1 11 0 51 13 0 16 0 52 12 0 2 52 10 0 2 32 6 0 16 0 52 14 0 1 32 220 2 16 1 1 15 0 52 0 0 2 33 14 0 20 17 0 16 0 48 1 52 16 0 1 32 194 2 16 1 1 18 0 52 0 0 2 33 14 0 20 17 0 16 0 48 1 52 16 0 1 32 168 2 16 1 1 19 0 52 0 0 2 33 23 0 16 0 52 9 0 1 33 5 0 16 0 32 6 0 16 0 52 20 0 1 32 133 2 16 1 1 21 0 52 0 0 2 33 9 0 16 0 52 14 0 1 32 112 2 16 1 1 22 0 52 0 0 2 33 33 0 16 0 52 23 0 1 33 5 0 16 0 32 16 0 1 22 0 52 25 0 1 1 26 0 16 0 52 24 0 3 32 67 2 16 1 1 27 0 52 0 0 2 33 33 0 16 0 52 23 0 1 33 19 0 1 22 0 52 25 0 1 1 28 0 16 0 52 24 0 3 32 2 0 16 0 32 22 2 16 1 1 29 0 52 0 0 2 6 34 10 0 5 16 1 1 30 0 52 0 0 2 33 126 0 16 1 52 32 0 1 1 33 0 52 31 0 2 33 25 0 16 1 1 33 0 16 1 52 32 0 1 52 34 0 3 1 4 0 52 3 0 2 32 3 0 1 4 0 17 2 16 0 1 4 0 52 3 0 2 17 3 16 2 1 4 0 52 0 0 2 33 13 0 16 3 52 2 0 1 52 14 0 1 32 41 0 20 35 0 1 36 0 16 2 48 2 17 4 16 3 16 4 52 38 0 2 1 39 0 52 3 0 2 52 2 0 1 16 4 52 37 0 2 52 14 0 1 32 126 1 16 1 1 40 0 52 0 0 2 33 9 0 16 0 52 14 0 1 32 105 1 16 1 1 41 0 52 0 0 2 33 5 0 16 0 32 88 1 16 1 1 42 0 52 0 0 2 33 32 0 16 0 52 43 0 1 33 18 0 51 44 0 1 0 16 0 52 45 0 1 52 12 0 2 32 2 0 16 0 32 44 1 16 1 1 46 0 52 0 0 2 33 23 0 16 0 52 43 0 1 33 9 0 16 0 52 45 0 1 32 2 0 16 0 32 9 1 16 1 1 47 0 52 0 0 2 33 32 0 16 0 52 43 0 1 33 18 0 51 48 0 1 0 16 0 52 45 0 1 52 12 0 2 32 2 0 16 0 32 221 0 16 1 1 49 0 52 0 0 2 33 23 0 16 0 52 9 0 1 33 9 0 16 0 52 50 0 1 32 2 0 16 0 32 186 0 16 1 1 51 0 52 0 0 2 33 30 0 16 0 52 9 0 1 33 16 0 51 53 0 52 20 0 0 16 0 52 52 0 3 32 2 0 16 0 32 144 0 16 1 1 54 0 52 0 0 2 6 34 10 0 5 16 1 1 55 0 52 0 0 2 33 30 0 16 0 52 9 0 1 33 16 0 51 56 0 52 20 0 0 16 0 52 52 0 3 32 2 0 16 0 32 88 0 16 1 1 57 0 52 0 0 2 33 30 0 16 0 52 9 0 1 33 16 0 51 53 0 52 20 0 0 16 0 52 52 0 3 32 2 0 16 0 32 46 0 16 1 1 58 0 52 0 0 2 33 32 0 16 0 52 43 0 1 33 18 0 51 48 0 1 0 16 0 52 45 0 1 52 12 0 2 32 2 0 16 0 32 2 0 16 0 50)} "hs-add" {:upvalue-count 0 :arity 2 :constants ("list?" "append" "list" "cons" "string?" "str" "+") :bytecode (16 0 52 0 0 1 33 35 0 16 1 52 0 0 1 33 11 0 16 0 16 1 52 1 0 2 32 12 0 16 0 16 1 52 2 0 1 52 1 0 2 32 59 0 16 1 52 0 0 1 33 11 0 16 0 16 1 52 3 0 2 32 39 0 16 0 52 4 0 1 6 34 7 0 5 16 1 52 4 0 1 33 11 0 16 0 16 1 52 5 0 2 32 8 0 16 0 16 1 52 6 0 2 50)} "hs-make" {:upvalue-count 0 :arity 1 :constants ("=" "Object" "dict" "Array" "list" "Set" "Map") :bytecode (16 0 1 1 0 52 0 0 2 33 7 0 52 2 0 0 32 61 0 16 0 1 3 0 52 0 0 2 33 7 0 52 4 0 0 32 42 0 16 0 1 5 0 52 0 0 2 33 7 0 52 4 0 0 32 23 0 16 0 1 6 0 52 0 0 2 33 7 0 52 2 0 0 32 4 0 52 2 0 0 50)} "hs-install" {:upvalue-count 0 :arity 1 :constants ("me") :bytecode (16 0 20 0 0 49 1 50)} "hs-measure" {:upvalue-count 0 :arity 1 :constants ("list" io-measure) :bytecode (1 1 0 16 0 52 0 0 2 112 50)} "hs-transition" {:upvalue-count 0 :arity 4 :constants ("dom-set-style" "transition" "str" " " "/" 1000 "s" "hs-settle") :bytecode (16 3 33 34 0 20 0 0 16 0 1 1 0 16 1 1 3 0 16 3 1 5 0 52 4 0 2 1 6 0 52 2 0 4 48 3 32 1 0 2 5 20 0 0 16 0 16 1 16 2 48 3 5 16 3 33 10 0 20 7 0 16 0 49 1 32 1 0 2 50)} "hs-transition-from" {:upvalue-count 0 :arity 5 :constants ("dom-set-style" "str" "transition" " " "/" 1000 "s" "hs-settle") :bytecode (20 0 0 16 0 16 1 16 2 52 1 0 1 48 3 5 16 4 33 34 0 20 0 0 16 0 1 2 0 16 1 1 3 0 16 4 1 5 0 52 4 0 2 1 6 0 52 1 0 4 48 3 32 1 0 2 5 20 0 0 16 0 16 1 16 3 52 1 0 1 48 3 5 16 4 33 10 0 20 7 0 16 0 49 1 32 1 0 2 50)} "hs-type-check" {:upvalue-count 0 :arity 2 :constants ("nil?" "=" "Number" "number?" "String" "string?" "Boolean" "Array" "list?" "Object" "dict?" "Element" "host-typeof" "element" "Node" "text" "downcase") :bytecode (16 0 52 0 0 1 33 4 0 3 32 208 0 16 1 1 2 0 52 1 0 2 33 9 0 16 0 52 3 0 1 32 187 0 16 1 1 4 0 52 1 0 2 33 9 0 16 0 52 5 0 1 32 166 0 16 1 1 6 0 52 1 0 2 33 22 0 16 0 3 52 1 0 2 6 34 8 0 5 16 0 4 52 1 0 2 32 132 0 16 1 1 7 0 52 1 0 2 33 9 0 16 0 52 8 0 1 32 111 0 16 1 1 9 0 52 1 0 2 33 9 0 16 0 52 10 0 1 32 90 0 16 1 1 11 0 52 1 0 2 33 16 0 16 0 52 12 0 1 1 13 0 52 1 0 2 32 62 0 16 1 1 14 0 52 1 0 2 33 34 0 16 0 52 12 0 1 1 13 0 52 1 0 2 6 34 14 0 5 16 0 52 12 0 1 1 15 0 52 1 0 2 32 16 0 16 0 52 12 0 1 16 1 52 16 0 1 52 1 0 2 50)} "hs-type-check-strict" {:upvalue-count 0 :arity 2 :constants ("nil?" "hs-type-check") :bytecode (16 0 52 0 0 1 33 4 0 4 32 9 0 20 1 0 16 0 16 1 49 2 50)} "hs-strict-eq" {:upvalue-count 0 :arity 2 :constants ("=" "type-of") :bytecode (16 0 52 1 0 1 16 1 52 1 0 1 52 0 0 2 6 33 9 0 5 16 0 16 1 52 0 0 2 50)} "hs-eq-ignore-case" {:upvalue-count 0 :arity 2 :constants ("=" "downcase" "str") :bytecode (16 0 52 2 0 1 52 1 0 1 16 1 52 2 0 1 52 1 0 1 52 0 0 2 50)} "hs-starts-with-ic?" {:upvalue-count 0 :arity 2 :constants ("starts-with?" "downcase") :bytecode (16 0 52 1 0 1 16 1 52 1 0 1 52 0 0 2 50)} "hs-contains-ignore-case?" {:upvalue-count 0 :arity 2 :constants ("contains?" "downcase" "str") :bytecode (16 0 52 2 0 1 52 1 0 1 16 1 52 2 0 1 52 1 0 1 52 0 0 2 50)} "hs-falsy?" {:upvalue-count 0 :arity 1 :constants ("nil?" "=" "string?" "" "list?" "len" 0) :bytecode (16 0 52 0 0 1 33 4 0 3 32 89 0 16 0 4 52 1 0 2 33 4 0 3 32 75 0 16 0 52 2 0 1 6 33 10 0 5 16 0 1 3 0 52 1 0 2 33 4 0 3 32 48 0 16 0 52 4 0 1 6 33 14 0 5 16 0 52 5 0 1 1 6 0 52 1 0 2 33 4 0 3 32 17 0 16 0 1 6 0 52 1 0 2 33 4 0 3 32 1 0 4 50)} "hs-matches?" {:upvalue-count 0 :arity 2 :constants ("string?" "=" ".*" "string-contains?" "host-typeof" "element" "host-call" "matches") :bytecode (16 0 52 0 0 1 33 27 0 16 1 1 2 0 52 1 0 2 33 4 0 3 32 8 0 16 0 16 1 52 3 0 2 32 44 0 16 0 52 4 0 1 1 5 0 52 1 0 2 33 27 0 16 1 52 0 0 1 33 14 0 16 0 1 7 0 16 1 52 6 0 3 32 1 0 4 32 1 0 4 50)} "hs-contains?" {:upvalue-count 0 :arity 2 :constants ("nil?" "string?" "string-contains?" "str" "list?" "filter" {:upvalue-count 1 :arity 1 :constants ("hs-contains?") :bytecode (20 0 0 18 0 16 0 49 2 50)} "=" "len" 0 "first" "hs-contains?" "rest") :bytecode (16 0 52 0 0 1 33 4 0 4 32 112 0 16 0 52 1 0 1 33 15 0 16 0 16 1 52 3 0 1 52 2 0 2 32 88 0 16 0 52 4 0 1 33 78 0 16 1 52 4 0 1 33 14 0 51 6 0 1 0 16 1 52 5 0 2 32 52 0 16 0 52 8 0 1 1 9 0 52 7 0 2 33 4 0 4 32 32 0 16 0 52 10 0 1 16 1 52 7 0 2 33 4 0 3 32 13 0 20 11 0 16 0 52 12 0 1 16 1 49 2 32 1 0 4 50)} "precedes?" {:upvalue-count 0 :arity 2 :constants ("<" "str") :bytecode (16 0 52 1 0 1 16 1 52 1 0 1 52 0 0 2 50)} "hs-empty?" {:upvalue-count 0 :arity 1 :constants ("nil?" "string?" "=" "len" 0 "list?" "dict?" "keys") :bytecode (16 0 52 0 0 1 33 4 0 3 32 80 0 16 0 52 1 0 1 33 16 0 16 0 52 3 0 1 1 4 0 52 2 0 2 32 55 0 16 0 52 5 0 1 33 16 0 16 0 52 3 0 1 1 4 0 52 2 0 2 32 30 0 16 0 52 6 0 1 33 20 0 16 0 52 7 0 1 52 3 0 1 1 4 0 52 2 0 2 32 1 0 4 50)} "hs-empty-target!" {:upvalue-count 0 :arity 1 :constants ("list?" "for-each" {:upvalue-count 0 :arity 1 :constants ("hs-empty-target!") :bytecode (20 0 0 16 0 49 1 50)} "nil?" "dom-get-prop" "tagName" "=" "INPUT" "TEXTAREA" "type" "checkbox" "radio" "dom-set-prop" "checked" "value" "" "FORM" "dom-set-inner-html" "host-call" "querySelectorAll" "input, textarea, select") :bytecode (16 0 52 0 0 1 33 12 0 51 2 0 16 0 52 1 0 2 32 192 0 16 0 52 3 0 1 33 4 0 2 32 179 0 20 4 0 16 0 1 5 0 48 2 17 1 16 1 1 7 0 52 6 0 2 6 34 10 0 5 16 1 1 8 0 52 6 0 2 33 68 0 20 4 0 16 0 1 9 0 48 2 17 2 16 2 1 10 0 52 6 0 2 6 34 10 0 5 16 2 1 11 0 52 6 0 2 33 14 0 20 12 0 16 0 1 13 0 4 49 3 32 13 0 20 12 0 16 0 1 14 0 1 15 0 49 3 32 73 0 16 1 1 16 0 52 6 0 2 33 13 0 20 17 0 16 0 1 15 0 49 2 32 48 0 16 1 1 16 0 52 6 0 2 33 26 0 16 0 1 19 0 1 20 0 52 18 0 3 17 2 51 2 0 16 2 52 1 0 2 32 10 0 20 17 0 16 0 1 15 0 49 2 50)} "hs-open!" {:upvalue-count 0 :arity 1 :constants ("dom-get-prop" "tagName" "=" "DIALOG" "host-call" "showModal" "dom-set-prop" "open") :bytecode (20 0 0 16 0 1 1 0 48 2 17 1 16 1 1 3 0 52 2 0 2 33 12 0 16 0 1 5 0 52 4 0 2 32 11 0 20 6 0 16 0 1 7 0 3 49 3 50)} "hs-close!" {:upvalue-count 0 :arity 1 :constants ("dom-get-prop" "tagName" "=" "DIALOG" "host-call" "close" "dom-set-prop" "open") :bytecode (20 0 0 16 0 1 1 0 48 2 17 1 16 1 1 3 0 52 2 0 2 33 12 0 16 0 1 5 0 52 4 0 2 32 11 0 20 6 0 16 0 1 7 0 4 49 3 50)} "hs-hide!" {:upvalue-count 0 :arity 2 :constants ("dom-get-prop" "tagName" "=" "DIALOG" "dom-has-attr?" "open" "host-call" "close" "DETAILS" "dom-set-prop" "opacity" "dom-set-style" "0" "visibility" "hidden" "display" "none") :bytecode (20 0 0 16 0 1 1 0 48 2 17 2 16 2 1 3 0 52 2 0 2 33 29 0 20 4 0 16 0 1 5 0 48 2 33 12 0 16 0 1 7 0 52 6 0 2 32 1 0 2 32 95 0 16 2 1 8 0 52 2 0 2 33 14 0 20 9 0 16 0 1 5 0 4 49 3 32 69 0 16 1 1 10 0 52 2 0 2 33 16 0 20 11 0 16 0 1 10 0 1 12 0 49 3 32 41 0 16 1 1 13 0 52 2 0 2 33 16 0 20 11 0 16 0 1 13 0 1 14 0 49 3 32 13 0 20 11 0 16 0 1 15 0 1 16 0 49 3 50)} "hs-show!" {:upvalue-count 0 :arity 2 :constants ("dom-get-prop" "tagName" "=" "DIALOG" "not" "dom-has-attr?" "open" "host-call" "showModal" "DETAILS" "dom-set-prop" "opacity" "dom-set-style" "1" "visibility" "visible" "display" "") :bytecode (20 0 0 16 0 1 1 0 48 2 17 2 16 2 1 3 0 52 2 0 2 33 33 0 20 5 0 16 0 1 6 0 48 2 52 4 0 1 33 12 0 16 0 1 8 0 52 7 0 2 32 1 0 2 32 95 0 16 2 1 9 0 52 2 0 2 33 14 0 20 10 0 16 0 1 6 0 3 49 3 32 69 0 16 1 1 11 0 52 2 0 2 33 16 0 20 12 0 16 0 1 11 0 1 13 0 49 3 32 41 0 16 1 1 14 0 52 2 0 2 33 16 0 20 12 0 16 0 1 14 0 1 15 0 49 3 32 13 0 20 12 0 16 0 1 16 0 1 17 0 49 3 50)} {:upvalue-count 0 :arity 1 :constants ("first") :bytecode (16 0 52 0 0 1 50)} {:upvalue-count 0 :arity 1 :constants ("last") :bytecode (16 0 52 0 0 1 50)} "hs-template" {:upvalue-count 0 :arity 1 :constants ("" 0 "len" {:upvalue-count 5 :arity 0 :constants ("<" "nth" "=" "$" "+" 1 "{" 2 {:upvalue-count 3 :arity 2 :constants (">=" "=" "nth" "}" 1 "+" "-" "{") :bytecode (16 0 18 0 52 0 0 2 33 5 0 16 0 32 118 0 18 1 16 0 52 2 0 2 1 3 0 52 1 0 2 33 42 0 16 1 1 4 0 52 1 0 2 33 5 0 16 0 32 22 0 18 2 16 0 1 4 0 52 5 0 2 16 1 1 4 0 52 6 0 2 49 2 32 58 0 18 1 16 0 52 2 0 2 1 7 0 52 1 0 2 33 25 0 18 2 16 0 1 4 0 52 5 0 2 16 1 1 4 0 52 5 0 2 49 2 32 15 0 18 2 16 0 1 4 0 52 5 0 2 16 1 49 2 50)} "slice" "str" "cek-eval" "hs-to-sx" "hs-compile" {:upvalue-count 3 :arity 1 :constants ("<" "nth" ">=" "a" "<=" "z" "A" "Z" "0" "9" "=" "_" "." "+" 1) :bytecode (16 0 18 0 52 0 0 2 6 33 118 0 5 18 1 16 0 52 1 0 2 17 1 16 1 1 3 0 52 2 0 2 6 33 10 0 5 16 1 1 5 0 52 4 0 2 6 34 80 0 5 16 1 1 6 0 52 2 0 2 6 33 10 0 5 16 1 1 7 0 52 4 0 2 6 34 52 0 5 16 1 1 8 0 52 2 0 2 6 33 10 0 5 16 1 1 9 0 52 4 0 2 6 34 24 0 5 16 1 1 11 0 52 10 0 2 6 34 10 0 5 16 1 1 12 0 52 10 0 2 33 16 0 18 2 16 0 1 14 0 52 13 0 2 49 1 32 2 0 16 0 50)}) :bytecode (18 0 18 1 52 0 0 2 33 13 1 18 2 18 0 52 1 0 2 17 0 16 0 1 3 0 52 2 0 2 6 33 16 0 5 18 0 1 5 0 52 4 0 2 18 1 52 0 0 2 33 197 0 18 2 18 0 1 5 0 52 4 0 2 52 1 0 2 1 6 0 52 2 0 2 33 91 0 18 0 1 7 0 52 4 0 2 17 1 51 8 0 0 1 0 2 1 2 17 2 5 16 2 16 1 1 5 0 48 2 17 3 18 2 16 1 16 3 52 9 0 3 17 4 18 3 20 11 0 20 12 0 20 13 0 16 4 48 1 48 1 48 1 52 10 0 2 19 3 5 16 3 1 5 0 52 4 0 2 19 0 5 18 4 49 0 32 78 0 18 0 1 5 0 52 4 0 2 17 1 51 14 0 0 1 0 2 1 2 17 2 5 16 2 16 1 48 1 17 3 18 2 16 1 16 3 52 9 0 3 17 4 18 3 20 11 0 20 12 0 20 13 0 16 4 48 1 48 1 48 1 52 10 0 2 19 3 5 16 3 19 0 5 18 4 49 0 32 27 0 18 3 16 0 52 10 0 2 19 3 5 18 0 1 5 0 52 4 0 2 19 0 5 18 4 49 0 32 1 0 2 50)}) :bytecode (1 0 0 17 1 1 1 0 17 2 16 0 52 2 0 1 17 3 51 3 0 1 2 1 3 1 0 1 1 1 4 17 4 5 16 4 48 0 5 16 1 50)} "hs-make-object" {:upvalue-count 0 :arity 1 :constants ("for-each" {:upvalue-count 1 :arity 1 :constants ("dict-set!" "first" "nth" 1) :bytecode (18 0 16 0 52 1 0 1 16 0 1 3 0 52 2 0 2 52 0 0 3 50)}) :bytecode (65 0 0 17 1 51 1 0 1 1 16 0 52 0 0 2 5 16 1 50)} "hs-method-call" {:upvalue-count 0 :arity 3 :constants ("=" "map" "first" "push" "append!" "filter" "join" "indexOf" {:upvalue-count 2 :arity 2 :constants ("=" "len" 0 -1 "first" "rest" "+" 1) :bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 33 6 0 1 3 0 32 39 0 16 0 52 4 0 1 18 0 52 0 0 2 33 5 0 16 1 32 19 0 18 1 16 0 52 5 0 1 16 1 1 7 0 52 6 0 2 49 2 50)} 0) :rest-arity 2 :bytecode (16 1 1 1 0 52 0 0 2 33 15 0 16 2 52 2 0 1 16 0 52 1 0 2 32 127 0 16 1 1 3 0 52 0 0 2 33 18 0 16 0 16 2 52 2 0 1 52 4 0 2 5 16 0 32 97 0 16 1 1 5 0 52 0 0 2 33 15 0 16 2 52 2 0 1 16 0 52 5 0 2 32 70 0 16 1 1 6 0 52 0 0 2 33 15 0 16 0 16 2 52 2 0 1 52 6 0 2 32 43 0 16 1 1 7 0 52 0 0 2 33 30 0 16 2 52 2 0 1 17 3 51 8 0 1 3 1 4 17 4 5 16 4 16 0 1 9 0 49 2 32 1 0 2 50)} "hs-beep" {:upvalue-count 0 :arity 1 :constants () :bytecode (16 0 50)} "hs-prop-is" {:upvalue-count 0 :arity 2 :constants ("not" "hs-falsy?" "host-get") :bytecode (20 1 0 16 0 16 1 52 2 0 2 48 1 52 0 0 1 50)} "hs-slice" {:upvalue-count 0 :arity 3 :constants ("nil?" 0 "len" "+" 1 "slice") :bytecode (16 1 52 0 0 1 33 6 0 1 1 0 32 2 0 16 1 17 3 16 2 52 0 0 1 33 9 0 16 0 52 2 0 1 32 9 0 16 2 1 4 0 52 3 0 2 17 4 16 0 16 3 16 4 52 5 0 3 50)} "hs-sorted-by" {:upvalue-count 0 :arity 2 :constants ("map" {:upvalue-count 1 :arity 1 :constants ("list") :bytecode (18 0 16 0 48 1 16 0 52 0 0 2 50)} {:upvalue-count 0 :arity 1 :constants ("nth" 1) :bytecode (16 0 1 1 0 52 0 0 2 50)} "sort" {:upvalue-count 0 :arity 2 :constants ("<" "first") :bytecode (16 0 52 1 0 1 16 1 52 1 0 1 52 0 0 2 33 4 0 3 32 1 0 4 50)}) :bytecode (51 1 0 1 1 16 0 52 0 0 2 17 2 51 2 0 51 4 0 16 2 52 3 0 2 52 0 0 2 50)} "hs-sorted-by-desc" {:upvalue-count 0 :arity 2 :constants ("map" {:upvalue-count 1 :arity 1 :constants ("list") :bytecode (18 0 16 0 48 1 16 0 52 0 0 2 50)} {:upvalue-count 0 :arity 1 :constants ("nth" 1) :bytecode (16 0 1 1 0 52 0 0 2 50)} "sort" {:upvalue-count 0 :arity 2 :constants (">" "first") :bytecode (16 0 52 1 0 1 16 1 52 1 0 1 52 0 0 2 33 4 0 3 32 1 0 4 50)}) :bytecode (51 1 0 1 1 16 0 52 0 0 2 17 2 51 2 0 51 4 0 16 2 52 3 0 2 52 0 0 2 50)} "hs-split-by" {:upvalue-count 0 :arity 2 :constants ("split") :bytecode (16 0 16 1 52 0 0 2 50)} "hs-joined-by" {:upvalue-count 0 :arity 2 :constants ("join") :bytecode (16 1 16 0 52 0 0 2 50)} {:upvalue-count 0 :arity 2 :constants ("map" {:upvalue-count 1 :arity 1 :constants ("list") :bytecode (18 0 16 0 48 1 16 0 52 0 0 2 50)} "sort" "first" {:upvalue-count 1 :arity 3 :constants ("=" "len" 0 "first" {:upvalue-count 2 :arity 1 :constants ("=" "len" 0 "first" "rest") :bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 33 4 0 2 32 38 0 16 0 52 3 0 1 52 3 0 1 18 0 52 0 0 2 33 9 0 16 0 52 3 0 1 32 10 0 18 1 16 0 52 4 0 1 49 1 50)} "rest" "append" "list" "nth" 1 "filter" {:upvalue-count 1 :arity 1 :constants ("not" "=") :bytecode (16 0 18 0 52 1 0 2 52 0 0 1 50)}) :bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 33 5 0 16 1 32 66 0 16 0 52 3 0 1 17 3 51 4 0 1 3 1 4 17 4 5 16 4 16 2 48 1 17 5 18 0 16 0 52 5 0 1 16 1 16 5 1 9 0 52 8 0 2 52 7 0 1 52 6 0 2 51 11 0 1 5 16 2 52 10 0 2 49 3 50)} "list") :bytecode (51 1 0 1 1 16 0 52 0 0 2 17 2 20 3 0 16 2 52 0 0 2 52 2 0 1 17 3 51 4 0 1 4 17 4 5 16 4 16 3 52 5 0 0 16 2 49 3 50)} {:upvalue-count 0 :arity 2 :constants ("reverse" "hs-sorted-by") :bytecode (20 1 0 16 0 16 1 48 2 52 0 0 1 50)}) :bytecode (51 1 0 128 0 0 5 51 3 0 128 2 0 5 51 3 0 128 4 0 5 51 6 0 128 5 0 5 51 8 0 128 7 0 5 51 10 0 128 9 0 5 51 12 0 128 11 0 5 51 14 0 128 13 0 5 51 16 0 128 15 0 5 51 18 0 128 17 0 5 51 20 0 128 19 0 5 51 22 0 128 21 0 5 51 24 0 128 23 0 5 51 26 0 128 25 0 5 51 28 0 128 27 0 5 51 30 0 128 29 0 5 51 32 0 128 31 0 5 51 34 0 128 33 0 5 51 36 0 128 35 0 5 51 38 0 128 37 0 5 51 40 0 128 39 0 5 51 42 0 128 41 0 5 51 44 0 128 43 0 5 51 46 0 128 45 0 5 51 48 0 128 47 0 5 51 50 0 128 49 0 5 51 52 0 128 51 0 5 51 54 0 128 53 0 5 51 56 0 128 55 0 5 51 58 0 128 57 0 5 51 60 0 128 59 0 5 51 62 0 128 61 0 5 51 64 0 128 63 0 5 51 66 0 128 65 0 5 51 68 0 128 67 0 5 51 70 0 128 69 0 5 51 72 0 128 71 0 5 51 74 0 128 73 0 5 51 76 0 128 75 0 5 51 78 0 128 77 0 5 51 80 0 128 79 0 5 51 82 0 128 81 0 5 51 84 0 128 83 0 5 51 86 0 128 85 0 5 51 88 0 128 87 0 5 51 90 0 128 89 0 5 51 92 0 128 91 0 5 51 94 0 128 93 0 5 51 96 0 128 95 0 5 51 98 0 128 97 0 5 51 100 0 128 99 0 5 51 102 0 128 101 0 5 51 104 0 128 103 0 5 51 106 0 128 105 0 5 51 108 0 128 107 0 5 51 110 0 128 109 0 5 51 112 0 128 111 0 5 51 114 0 128 113 0 5 51 116 0 128 115 0 5 51 118 0 128 117 0 5 51 119 0 128 53 0 5 51 120 0 128 55 0 5 51 122 0 128 121 0 5 51 124 0 128 123 0 5 51 126 0 128 125 0 5 51 128 0 128 127 0 5 51 130 0 128 129 0 5 51 132 0 128 131 0 5 51 134 0 128 133 0 5 51 136 0 128 135 0 5 51 138 0 128 137 0 5 51 140 0 128 139 0 5 51 141 0 128 133 0 5 51 142 0 128 135 0 50))) diff --git a/shared/static/wasm/sx/hs-tokenizer.sx b/shared/static/wasm/sx/hs-tokenizer.sx index 2483ea8c..4a9476d3 100644 --- a/shared/static/wasm/sx/hs-tokenizer.sx +++ b/shared/static/wasm/sx/hs-tokenizer.sx @@ -441,7 +441,11 @@ (cond (and (= ch "-") (< (+ pos 1) src-len) (= (hs-peek 1) "-")) (do (hs-advance! 2) (skip-comment!) (scan!)) - (and (= ch "/") (< (+ pos 1) src-len) (= (hs-peek 1) "/")) + (and + (= ch "/") + (< (+ pos 1) src-len) + (= (hs-peek 1) "/") + (not (and (> pos 0) (= (hs-peek -1) ":")))) (do (hs-advance! 2) (skip-comment!) (scan!)) (and (= ch "<") diff --git a/shared/static/wasm/sx/hs-tokenizer.sxbc b/shared/static/wasm/sx/hs-tokenizer.sxbc deleted file mode 100644 index 1927fc80..00000000 --- a/shared/static/wasm/sx/hs-tokenizer.sxbc +++ /dev/null @@ -1,3 +0,0 @@ -(sxbc 1 "be3c39498bca9a8b" - (code - :constants ("hs-make-token" {:upvalue-count 0 :arity 3 :constants ("pos" "value" "type") :bytecode (1 0 0 16 2 1 1 0 16 1 1 2 0 16 0 65 3 0 50)} "hs-digit?" {:upvalue-count 0 :arity 1 :constants (">=" "0" "<=" "9") :bytecode (16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 0 1 3 0 52 2 0 2 50)} "hs-letter?" {:upvalue-count 0 :arity 1 :constants (">=" "a" "<=" "z" "A" "Z") :bytecode (16 0 1 1 0 52 0 0 2 6 33 10 0 5 16 0 1 3 0 52 2 0 2 6 34 24 0 5 16 0 1 4 0 52 0 0 2 6 33 10 0 5 16 0 1 5 0 52 2 0 2 50)} "hs-ident-start?" {:upvalue-count 0 :arity 1 :constants ("hs-letter?" "=" "_" "$") :bytecode (20 0 0 16 0 48 1 6 34 24 0 5 16 0 1 2 0 52 1 0 2 6 34 10 0 5 16 0 1 3 0 52 1 0 2 50)} "hs-ident-char?" {:upvalue-count 0 :arity 1 :constants ("hs-letter?" "hs-digit?" "=" "_" "$" "-") :bytecode (20 0 0 16 0 48 1 6 34 50 0 5 20 1 0 16 0 48 1 6 34 38 0 5 16 0 1 3 0 52 2 0 2 6 34 24 0 5 16 0 1 4 0 52 2 0 2 6 34 10 0 5 16 0 1 5 0 52 2 0 2 50)} "hs-ws?" {:upvalue-count 0 :arity 1 :constants ("=" " " "\t" "\n" "\r") :bytecode (16 0 1 1 0 52 0 0 2 6 34 38 0 5 16 0 1 2 0 52 0 0 2 6 34 24 0 5 16 0 1 3 0 52 0 0 2 6 34 10 0 5 16 0 1 4 0 52 0 0 2 50)} "hs-keywords" "list" "on" "end" "set" "to" "put" "into" "before" "after" "add" "remove" "toggle" "if" "else" "otherwise" "then" "from" "in" "of" "for" "until" "wait" "send" "trigger" "call" "get" "take" "log" "hide" "show" "repeat" "while" "times" "forever" "break" "continue" "return" "throw" "catch" "finally" "def" "tell" "make" "fetch" "as" "with" "every" "or" "and" "not" "is" "no" "the" "my" "me" "it" "its" "result" "true" "false" "null" "when" "between" "at" "by" "queue" "elsewhere" "event" "target" "detail" "sender" "index" "indexed" "increment" "decrement" "append" "settle" "transition" "over" "closest" "next" "previous" "first" "last" "random" "empty" "clear" "swap" "open" "close" "exists" "matches" "contains" "do" "unless" "you" "your" "new" "init" "start" "go" "js" "less" "than" "greater" "class" "anything" "install" "measure" "behavior" "called" "render" "eval" "I" "am" "does" "some" "mod" "equal" "equals" "really" "include" "includes" "contain" "undefined" "exist" "match" "beep" "where" "sorted" "mapped" "split" "joined" "descending" "ascending" "scroll" "select" "reset" "default" "halt" "precedes" "follows" "ignoring" "case" "focus" "blur" "hs-keyword?" {:upvalue-count 0 :arity 1 :constants ("some" {:upvalue-count 1 :arity 1 :constants ("=") :bytecode (16 0 18 0 52 0 0 2 50)} "hs-keywords") :bytecode (51 1 0 1 0 20 2 0 52 0 0 2 50)} "hs-tokenize" {:upvalue-count 0 :arity 1 :constants ("list" 0 "len" {:upvalue-count 3 :arity 1 :constants ("<" "+" "nth") :bytecode (18 0 16 0 52 1 0 2 18 1 52 0 0 2 33 17 0 18 2 18 0 16 0 52 1 0 2 52 2 0 2 32 1 0 2 50)} {:upvalue-count 1 :arity 0 :constants (0) :bytecode (18 0 1 0 0 49 1 50)} {:upvalue-count 1 :arity 1 :constants ("+") :bytecode (18 0 16 0 52 0 0 2 19 0 50)} {:upvalue-count 5 :arity 0 :constants ("<" "hs-ws?" 1) :bytecode (18 0 18 1 52 0 0 2 6 33 10 0 5 20 1 0 18 2 48 0 48 1 33 15 0 18 3 1 2 0 48 1 5 18 4 49 0 32 1 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("<" "not" "=" "\n" 1) :bytecode (18 0 18 1 52 0 0 2 6 33 16 0 5 18 2 48 0 1 3 0 52 2 0 2 52 1 0 1 33 15 0 18 3 1 4 0 48 1 5 18 4 49 0 32 1 0 2 50)} {:upvalue-count 6 :arity 1 :constants ("<" "hs-ident-char?" 1 "slice") :bytecode (18 0 18 1 52 0 0 2 6 33 10 0 5 20 1 0 18 2 48 0 48 1 33 17 0 18 3 1 2 0 48 1 5 18 4 16 0 48 1 32 1 0 2 5 18 5 16 0 18 0 52 3 0 3 50)} {:upvalue-count 7 :arity 3 :constants ("<" "hs-digit?" 1 "=" "." "+" {:upvalue-count 5 :arity 0 :constants ("<" "hs-digit?" 1) :bytecode (18 0 18 1 52 0 0 2 6 33 10 0 5 20 1 0 18 2 48 0 48 1 33 15 0 18 3 1 2 0 48 1 5 18 4 49 0 32 1 0 2 50)} "e" "E" 2 "-" "m" "s" "slice") :bytecode (18 0 18 1 52 0 0 2 6 33 10 0 5 20 1 0 18 2 48 0 48 1 33 17 0 18 3 1 2 0 48 1 5 18 4 16 0 48 1 32 1 0 2 5 18 0 18 1 52 0 0 2 6 33 49 0 5 18 2 48 0 1 4 0 52 3 0 2 6 33 33 0 5 18 0 1 2 0 52 5 0 2 18 1 52 0 0 2 6 33 13 0 5 20 1 0 18 5 1 2 0 48 1 48 1 33 31 0 18 3 1 2 0 48 1 5 51 6 0 0 0 0 1 0 2 0 3 1 1 17 1 5 16 1 48 0 32 1 0 2 5 18 0 18 1 52 0 0 2 6 33 140 0 5 18 2 48 0 1 7 0 52 3 0 2 6 34 12 0 5 18 2 48 0 1 8 0 52 3 0 2 6 33 108 0 5 18 0 1 2 0 52 5 0 2 18 1 52 0 0 2 6 33 13 0 5 20 1 0 18 5 1 2 0 48 1 48 1 6 34 71 0 5 18 0 1 9 0 52 5 0 2 18 1 52 0 0 2 6 33 51 0 5 18 5 1 2 0 48 1 1 5 0 52 3 0 2 6 34 15 0 5 18 5 1 2 0 48 1 1 10 0 52 3 0 2 6 33 13 0 5 20 1 0 18 5 1 9 0 48 1 48 1 33 86 0 18 3 1 2 0 48 1 5 18 0 18 1 52 0 0 2 6 33 28 0 5 18 2 48 0 1 5 0 52 3 0 2 6 34 12 0 5 18 2 48 0 1 10 0 52 3 0 2 33 10 0 18 3 1 2 0 48 1 32 1 0 2 5 51 6 0 0 0 0 1 0 2 0 3 1 2 17 2 5 16 2 48 0 32 1 0 2 5 18 0 17 3 18 0 18 1 52 0 0 2 6 33 28 0 5 18 2 48 0 1 11 0 52 3 0 2 6 34 12 0 5 18 2 48 0 1 12 0 52 3 0 2 33 91 0 18 2 48 0 1 11 0 52 3 0 2 6 33 35 0 5 18 0 1 2 0 52 5 0 2 18 1 52 0 0 2 6 33 15 0 5 18 5 1 2 0 48 1 1 12 0 52 3 0 2 33 10 0 18 3 1 9 0 48 1 32 25 0 18 2 48 0 1 12 0 52 3 0 2 33 10 0 18 3 1 2 0 48 1 32 1 0 2 32 1 0 2 5 18 6 16 0 18 0 52 13 0 3 50)} {:upvalue-count 4 :arity 1 :constants ("list" 1 {:upvalue-count 7 :arity 0 :constants (">=" "=" "\\" 1 "<" "n" "append!" "\n" "t" "\t") :bytecode (18 0 18 1 52 0 0 2 33 4 0 2 32 217 0 18 2 48 0 1 2 0 52 1 0 2 33 157 0 18 3 1 3 0 48 1 5 18 0 18 1 52 4 0 2 33 129 0 18 2 48 0 17 0 16 0 1 5 0 52 1 0 2 33 12 0 18 4 1 7 0 52 6 0 2 32 88 0 16 0 1 8 0 52 1 0 2 33 12 0 18 4 1 9 0 52 6 0 2 32 64 0 16 0 1 2 0 52 1 0 2 33 12 0 18 4 1 2 0 52 6 0 2 32 40 0 16 0 18 5 52 1 0 2 33 11 0 18 4 18 5 52 6 0 2 32 18 0 18 4 1 2 0 52 6 0 2 5 18 4 16 0 52 6 0 2 5 18 3 1 3 0 48 1 32 1 0 2 5 18 6 49 0 32 46 0 18 2 48 0 18 5 52 1 0 2 33 10 0 18 3 1 3 0 49 1 32 23 0 18 4 18 2 48 0 52 6 0 2 5 18 3 1 3 0 48 1 5 18 6 49 0 50)} "join" "") :bytecode (52 0 0 0 17 1 18 0 1 1 0 48 1 5 51 2 0 0 1 0 2 0 3 0 0 1 1 1 0 1 2 17 2 5 16 2 48 0 5 1 4 0 16 1 52 3 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("list" 1 {:upvalue-count 7 :arity 0 :constants (">=" "=" "`" 1 "$" "<" "+" "{" "append!" "${" 2 {:upvalue-count 7 :arity 0 :constants ("<" ">" 0 "=" "{" "+" 1 "append!" "}" "-") :bytecode (18 0 18 1 52 0 0 2 6 33 10 0 5 18 2 1 2 0 52 1 0 2 33 162 0 18 3 48 0 1 4 0 52 3 0 2 33 38 0 18 2 1 6 0 52 5 0 2 19 2 5 18 4 18 3 48 0 52 7 0 2 5 18 5 1 6 0 48 1 5 18 6 49 0 32 107 0 18 3 48 0 1 8 0 52 3 0 2 33 70 0 18 2 1 6 0 52 9 0 2 19 2 5 18 2 1 2 0 52 1 0 2 33 13 0 18 4 18 3 48 0 52 7 0 2 32 1 0 2 5 18 5 1 6 0 48 1 5 18 2 1 2 0 52 1 0 2 33 7 0 18 6 49 0 32 1 0 2 32 23 0 18 4 18 3 48 0 52 7 0 2 5 18 5 1 6 0 48 1 5 18 6 49 0 32 1 0 2 50)} "}") :bytecode (18 0 18 1 52 0 0 2 33 4 0 2 32 165 0 18 2 48 0 1 2 0 52 1 0 2 33 10 0 18 3 1 3 0 49 1 32 141 0 18 2 48 0 1 4 0 52 1 0 2 6 33 35 0 5 18 0 1 3 0 52 6 0 2 18 1 52 5 0 2 6 33 15 0 5 18 4 1 3 0 48 1 1 7 0 52 1 0 2 33 65 0 18 5 1 9 0 52 8 0 2 5 18 3 1 10 0 48 1 5 1 3 0 17 0 51 11 0 0 0 0 1 1 0 0 2 0 5 0 3 1 1 17 1 5 16 1 48 0 5 18 5 1 12 0 52 8 0 2 5 18 6 49 0 32 23 0 18 5 18 2 48 0 52 8 0 2 5 18 3 1 3 0 48 1 5 18 6 49 0 50)} "join" "") :bytecode (52 0 0 0 17 0 18 0 1 1 0 48 1 5 51 2 0 0 1 0 2 0 3 0 0 0 4 1 0 1 1 17 1 5 16 1 48 0 5 1 4 0 16 0 52 3 0 2 50)} {:upvalue-count 5 :arity 0 :constants ("list" 1 {:upvalue-count 7 :arity 0 :constants (">=" "=" "/" "<" "+" 1 ">" 2 "append!") :bytecode (18 0 18 1 52 0 0 2 33 4 0 2 32 86 0 18 2 48 0 1 2 0 52 1 0 2 6 33 35 0 5 18 0 1 5 0 52 4 0 2 18 1 52 3 0 2 6 33 15 0 5 18 3 1 5 0 48 1 1 6 0 52 1 0 2 33 10 0 18 4 1 7 0 49 1 32 23 0 18 5 18 2 48 0 52 8 0 2 5 18 4 1 5 0 48 1 5 18 6 49 0 50)} "join" "") :bytecode (52 0 0 0 17 0 18 0 1 1 0 48 1 5 51 2 0 0 1 0 2 0 3 0 4 0 0 1 0 1 1 17 1 5 16 1 48 0 5 1 4 0 16 0 52 3 0 2 50)} {:upvalue-count 6 :arity 1 :constants ("<" "hs-ident-char?" "=" ":" "[" "]" 1 "slice") :bytecode (18 0 18 1 52 0 0 2 6 33 58 0 5 20 1 0 18 2 48 0 48 1 6 34 44 0 5 18 2 48 0 1 3 0 52 2 0 2 6 34 28 0 5 18 2 48 0 1 4 0 52 2 0 2 6 34 12 0 5 18 2 48 0 1 5 0 52 2 0 2 33 17 0 18 3 1 6 0 48 1 5 18 4 16 0 48 1 32 1 0 2 5 18 5 16 0 18 0 52 7 0 3 50)} {:upvalue-count 1 :arity 3 :constants ("append!" "hs-make-token") :bytecode (18 0 20 1 0 16 0 16 1 16 2 48 3 52 0 0 2 50)} {:upvalue-count 15 :arity 0 :constants ("<" "=" "/" "+" 1 2 "not" "hs-letter?" "." "#" "[" "*" ":" "selector" "op" ".." "-" "_" "class" "hs-ident-start?" "id" "@" "hs-ident-char?" "attr" "~" "component" "str" "style" "local" "\"" "'" "s" ">=" "string" "`" "template" "hs-digit?" "number" "hs-keyword?" "keyword" "ident" "!" ">" "==" 3 "'s" "(" "paren-open" ")" "paren-close" "bracket-open" "]" "bracket-close" "{" "brace-open" "}" "brace-close" "," "comma" "%" "dot" "\\" "colon") :bytecode (18 0 48 0 5 18 1 18 2 52 0 0 2 33 193 8 18 3 48 0 17 0 18 1 17 1 16 0 1 2 0 52 1 0 2 6 33 35 0 5 18 1 1 4 0 52 3 0 2 18 2 52 0 0 2 6 33 15 0 5 18 4 1 4 0 48 1 1 2 0 52 1 0 2 33 20 0 18 5 1 5 0 48 1 5 18 6 48 0 5 18 7 49 0 32 109 8 16 0 1 0 0 52 1 0 2 6 33 151 0 5 18 1 1 4 0 52 3 0 2 18 2 52 0 0 2 6 33 131 0 5 18 4 1 4 0 48 1 1 1 0 52 1 0 2 52 6 0 1 6 33 108 0 5 20 7 0 18 4 1 4 0 48 1 48 1 6 34 91 0 5 18 4 1 4 0 48 1 1 8 0 52 1 0 2 6 34 72 0 5 18 4 1 4 0 48 1 1 9 0 52 1 0 2 6 34 53 0 5 18 4 1 4 0 48 1 1 10 0 52 1 0 2 6 34 34 0 5 18 4 1 4 0 48 1 1 11 0 52 1 0 2 6 34 15 0 5 18 4 1 4 0 48 1 1 12 0 52 1 0 2 33 21 0 18 8 1 13 0 18 9 48 0 16 1 48 3 5 18 7 49 0 32 177 7 16 0 1 8 0 52 1 0 2 6 33 35 0 5 18 1 1 4 0 52 3 0 2 18 2 52 0 0 2 6 33 15 0 5 18 4 1 4 0 48 1 1 8 0 52 1 0 2 33 28 0 18 8 1 14 0 1 15 0 16 1 48 3 5 18 5 1 5 0 48 1 5 18 7 49 0 32 98 7 16 0 1 8 0 52 1 0 2 6 33 71 0 5 18 1 1 4 0 52 3 0 2 18 2 52 0 0 2 6 33 51 0 5 20 7 0 18 4 1 4 0 48 1 48 1 6 34 34 0 5 18 4 1 4 0 48 1 1 16 0 52 1 0 2 6 34 15 0 5 18 4 1 4 0 48 1 1 17 0 52 1 0 2 33 31 0 18 5 1 4 0 48 1 5 18 8 1 18 0 18 10 18 1 48 1 16 1 48 3 5 18 7 49 0 32 236 6 16 0 1 9 0 52 1 0 2 6 33 33 0 5 18 1 1 4 0 52 3 0 2 18 2 52 0 0 2 6 33 13 0 5 20 19 0 18 4 1 4 0 48 1 48 1 33 31 0 18 5 1 4 0 48 1 5 18 8 1 20 0 18 11 18 1 48 1 16 1 48 3 5 18 7 49 0 32 156 6 16 0 1 21 0 52 1 0 2 6 33 33 0 5 18 1 1 4 0 52 3 0 2 18 2 52 0 0 2 6 33 13 0 5 20 22 0 18 4 1 4 0 48 1 48 1 33 31 0 18 5 1 4 0 48 1 5 18 8 1 23 0 18 11 18 1 48 1 16 1 48 3 5 18 7 49 0 32 76 6 16 0 1 24 0 52 1 0 2 6 33 33 0 5 18 1 1 4 0 52 3 0 2 18 2 52 0 0 2 6 33 13 0 5 20 7 0 18 4 1 4 0 48 1 48 1 33 38 0 18 5 1 4 0 48 1 5 18 8 1 25 0 1 24 0 18 11 18 1 48 1 52 26 0 2 16 1 48 3 5 18 7 49 0 32 245 5 16 0 1 11 0 52 1 0 2 6 33 33 0 5 18 1 1 4 0 52 3 0 2 18 2 52 0 0 2 6 33 13 0 5 20 7 0 18 4 1 4 0 48 1 48 1 33 31 0 18 5 1 4 0 48 1 5 18 8 1 27 0 18 11 18 1 48 1 16 1 48 3 5 18 7 49 0 32 165 5 16 0 1 12 0 52 1 0 2 6 33 33 0 5 18 1 1 4 0 52 3 0 2 18 2 52 0 0 2 6 33 13 0 5 20 19 0 18 4 1 4 0 48 1 48 1 33 31 0 18 5 1 4 0 48 1 5 18 8 1 28 0 18 11 18 1 48 1 16 1 48 3 5 18 7 49 0 32 85 5 16 0 1 29 0 52 1 0 2 6 34 94 0 5 16 0 1 30 0 52 1 0 2 6 33 80 0 5 18 1 1 4 0 52 3 0 2 18 2 52 0 0 2 6 33 56 0 5 18 4 1 4 0 48 1 1 31 0 52 1 0 2 6 33 37 0 5 18 1 1 5 0 52 3 0 2 18 2 52 32 0 2 6 34 17 0 5 20 22 0 18 4 1 5 0 48 1 48 1 52 6 0 1 52 6 0 1 33 23 0 18 8 1 33 0 18 12 16 0 48 1 16 1 48 3 5 18 7 49 0 32 208 4 16 0 1 34 0 52 1 0 2 33 21 0 18 8 1 35 0 18 13 48 0 16 1 48 3 5 18 7 49 0 32 175 4 20 36 0 16 0 48 1 33 23 0 18 8 1 37 0 18 14 16 1 48 1 16 1 48 3 5 18 7 49 0 32 142 4 20 19 0 16 0 48 1 33 43 0 18 11 16 1 48 1 17 2 18 8 20 38 0 16 2 48 1 33 6 0 1 39 0 32 3 0 1 40 0 16 2 16 1 48 3 5 18 7 49 0 32 89 4 16 0 1 1 0 52 1 0 2 6 34 38 0 5 16 0 1 41 0 52 1 0 2 6 34 24 0 5 16 0 1 0 0 52 1 0 2 6 34 10 0 5 16 0 1 42 0 52 1 0 2 6 33 35 0 5 18 1 1 4 0 52 3 0 2 18 2 52 0 0 2 6 33 15 0 5 18 4 1 4 0 48 1 1 1 0 52 1 0 2 33 128 0 16 0 1 1 0 52 1 0 2 6 34 10 0 5 16 0 1 41 0 52 1 0 2 6 33 35 0 5 18 1 1 5 0 52 3 0 2 18 2 52 0 0 2 6 33 15 0 5 18 4 1 5 0 48 1 1 1 0 52 1 0 2 33 29 0 18 8 1 14 0 16 0 1 43 0 52 26 0 2 16 1 48 3 5 18 5 1 44 0 48 1 32 26 0 18 8 1 14 0 16 0 1 1 0 52 26 0 2 16 1 48 3 5 18 5 1 5 0 48 1 5 18 7 49 0 32 124 3 16 0 1 30 0 52 1 0 2 6 33 76 0 5 18 1 1 4 0 52 3 0 2 18 2 52 0 0 2 6 33 56 0 5 18 4 1 4 0 48 1 1 31 0 52 1 0 2 6 33 37 0 5 18 1 1 5 0 52 3 0 2 18 2 52 32 0 2 6 34 17 0 5 20 22 0 18 4 1 5 0 48 1 48 1 52 6 0 1 33 28 0 18 8 1 14 0 1 45 0 16 1 48 3 5 18 5 1 5 0 48 1 5 18 7 49 0 32 4 3 16 0 1 46 0 52 1 0 2 33 28 0 18 8 1 47 0 1 46 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 220 2 16 0 1 48 0 52 1 0 2 33 28 0 18 8 1 49 0 1 48 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 180 2 16 0 1 10 0 52 1 0 2 33 28 0 18 8 1 50 0 1 10 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 140 2 16 0 1 51 0 52 1 0 2 33 28 0 18 8 1 52 0 1 51 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 100 2 16 0 1 53 0 52 1 0 2 33 28 0 18 8 1 54 0 1 53 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 60 2 16 0 1 55 0 52 1 0 2 33 28 0 18 8 1 56 0 1 55 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 20 2 16 0 1 57 0 52 1 0 2 33 28 0 18 8 1 58 0 1 57 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 236 1 16 0 1 3 0 52 1 0 2 33 28 0 18 8 1 14 0 1 3 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 196 1 16 0 1 16 0 52 1 0 2 33 28 0 18 8 1 14 0 1 16 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 156 1 16 0 1 2 0 52 1 0 2 33 28 0 18 8 1 14 0 1 2 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 116 1 16 0 1 1 0 52 1 0 2 33 28 0 18 8 1 14 0 1 1 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 76 1 16 0 1 0 0 52 1 0 2 33 28 0 18 8 1 14 0 1 0 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 36 1 16 0 1 42 0 52 1 0 2 33 28 0 18 8 1 14 0 1 42 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 252 0 16 0 1 41 0 52 1 0 2 33 28 0 18 8 1 14 0 1 41 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 212 0 16 0 1 11 0 52 1 0 2 33 28 0 18 8 1 14 0 1 11 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 172 0 16 0 1 59 0 52 1 0 2 33 28 0 18 8 1 14 0 1 59 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 132 0 16 0 1 8 0 52 1 0 2 33 28 0 18 8 1 60 0 1 8 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 92 0 16 0 1 61 0 52 1 0 2 33 28 0 18 8 1 14 0 1 61 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 52 0 16 0 1 12 0 52 1 0 2 33 28 0 18 8 1 62 0 1 12 0 16 1 48 3 5 18 5 1 4 0 48 1 5 18 7 49 0 32 12 0 18 5 1 4 0 48 1 5 18 7 49 0 32 1 0 2 50)} "eof") :bytecode (52 0 0 0 17 1 1 1 0 17 2 16 0 52 2 0 1 17 3 51 3 0 1 2 1 3 1 0 17 4 5 51 4 0 1 4 17 5 5 51 5 0 1 2 17 6 5 51 6 0 1 2 1 3 1 5 1 6 1 7 17 7 5 51 7 0 1 2 1 3 1 5 1 6 1 8 17 8 5 51 8 0 1 2 1 3 1 5 1 6 1 9 1 0 17 9 5 51 9 0 1 2 1 3 1 5 1 6 1 10 1 4 1 0 17 10 5 51 10 0 1 6 1 2 1 3 1 5 17 11 5 51 11 0 1 6 1 2 1 3 1 5 1 4 17 12 5 51 12 0 1 6 1 2 1 3 1 5 1 4 17 13 5 51 13 0 1 2 1 3 1 5 1 6 1 14 1 0 17 14 5 51 14 0 1 1 17 15 5 51 15 0 1 7 1 2 1 3 1 5 1 4 1 6 1 8 1 16 1 15 1 13 1 14 1 9 1 11 1 12 1 10 17 16 5 16 16 48 0 5 16 15 1 16 0 2 16 2 48 3 5 16 1 50)}) :bytecode (51 1 0 128 0 0 5 51 3 0 128 2 0 5 51 5 0 128 4 0 5 51 7 0 128 6 0 5 51 9 0 128 8 0 5 51 11 0 128 10 0 5 1 14 0 1 15 0 1 16 0 1 17 0 1 18 0 1 19 0 1 20 0 1 21 0 1 22 0 1 23 0 1 24 0 1 25 0 1 26 0 1 27 0 1 28 0 1 29 0 1 30 0 1 31 0 1 32 0 1 33 0 1 34 0 1 35 0 1 36 0 1 37 0 1 38 0 1 39 0 1 40 0 1 41 0 1 42 0 1 43 0 1 44 0 1 45 0 1 46 0 1 47 0 1 48 0 1 49 0 1 50 0 1 51 0 1 52 0 1 53 0 1 54 0 1 55 0 1 56 0 1 57 0 1 58 0 1 59 0 1 60 0 1 61 0 1 62 0 1 63 0 1 64 0 1 65 0 1 66 0 1 67 0 1 68 0 1 69 0 1 70 0 1 71 0 1 72 0 1 73 0 1 74 0 1 75 0 1 76 0 1 77 0 1 78 0 1 79 0 1 80 0 1 81 0 1 82 0 1 83 0 1 84 0 1 85 0 1 86 0 1 87 0 1 88 0 1 89 0 1 90 0 1 91 0 1 92 0 1 93 0 1 94 0 1 95 0 1 96 0 1 97 0 1 98 0 1 99 0 1 100 0 1 101 0 1 102 0 1 103 0 1 104 0 1 105 0 1 106 0 1 107 0 1 108 0 1 109 0 1 110 0 1 111 0 1 112 0 1 113 0 1 114 0 1 115 0 1 116 0 1 117 0 1 118 0 1 119 0 1 120 0 1 121 0 1 122 0 1 123 0 1 124 0 1 125 0 1 126 0 1 127 0 1 128 0 1 129 0 1 130 0 1 131 0 1 132 0 1 133 0 1 134 0 1 135 0 1 136 0 1 137 0 1 138 0 1 139 0 1 140 0 1 141 0 1 142 0 1 143 0 1 144 0 1 145 0 1 146 0 1 147 0 1 148 0 1 149 0 1 150 0 1 151 0 1 152 0 1 153 0 1 154 0 1 155 0 1 156 0 1 157 0 1 158 0 52 13 0 145 128 12 0 5 51 160 0 128 159 0 5 51 162 0 128 161 0 50))) diff --git a/spec/tests/test-hyperscript-behavioral.sx b/spec/tests/test-hyperscript-behavioral.sx index 555e4a31..57b4b65d 100644 --- a/spec/tests/test-hyperscript-behavioral.sx +++ b/spec/tests/test-hyperscript-behavioral.sx @@ -11508,9 +11508,19 @@ ;; ── socket (16 tests) ── (defsuite "hs-upstream-socket" (deftest "converts relative URL to ws:// on http pages" - (error "SKIP (untranslated): converts relative URL to ws:// on http pages")) + (hs-cleanup!) + (host-set! (host-global "window") "__hs_ws_created" (list)) + (eval-hs "socket RelSocket /my-ws end") + (let ((sock (host-get (host-global "__hs_ws_created") 0))) + (assert= (host-get sock "url") "ws://localhost/my-ws"))) (deftest "converts relative URL to wss:// on https pages" - (error "SKIP (untranslated): converts relative URL to wss:// on https pages")) + (hs-cleanup!) + (host-set! (host-global "window") "__hs_ws_created" (list)) + (host-set! (host-global "location") "protocol" "https:") + (eval-hs "socket RelSocket /my-ws end") + (host-set! (host-global "location") "protocol" "http:") + (let ((sock (host-get (host-global "__hs_ws_created") 0))) + (assert= (host-get sock "url") "wss://localhost/my-ws"))) (deftest "dispatchEvent sends JSON-encoded event over the socket" (error "SKIP (untranslated): dispatchEvent sends JSON-encoded event over the socket")) (deftest "namespaced sockets work" @@ -11522,7 +11532,11 @@ (deftest "on message handler fires on incoming text message" (error "SKIP (untranslated): on message handler fires on incoming text message")) (deftest "parses socket with absolute ws:// URL" - (error "SKIP (untranslated): parses socket with absolute ws:// URL")) + (hs-cleanup!) + (host-set! (host-global "window") "__hs_ws_created" (list)) + (eval-hs "socket MySocket ws://localhost:1234/ws end") + (let ((sock (host-get (host-global "__hs_ws_created") 0))) + (assert= (host-get sock "url") "ws://localhost:1234/ws"))) (deftest "rpc proxy blacklists then/catch/length/toJSON" (error "SKIP (untranslated): rpc proxy blacklists then/catch/length/toJSON")) (deftest "rpc proxy default timeout rejects the promise" diff --git a/tests/hs-run-filtered.js b/tests/hs-run-filtered.js index 4f32b557..322dca8d 100755 --- a/tests/hs-run-filtered.js +++ b/tests/hs-run-filtered.js @@ -534,7 +534,10 @@ globalThis.getSelection=()=>({toString:()=>(globalThis.__test_selection||'')}); // HsWebSocket — cluster-36 WebSocket mock. Records every constructed socket // in globalThis.__hs_ws_created so tests can assert on URLs and sent frames. // Tests may override globalThis.WebSocket before activating hyperscript. -globalThis.__hs_ws_created = []; +// __hs_ws_created is a plain object with numeric keys (NOT a JS array). +// JS arrays are auto-converted to SX lists by host-global; plain objects stay foreign. +// host-get foreign 0 → foreign[0] → mock sock ✓ +globalThis.__hs_ws_created = {_len: 0}; globalThis.WebSocket = function HsWebSocket(url) { const sock = { url, @@ -546,7 +549,11 @@ globalThis.WebSocket = function HsWebSocket(url) { removeEventListener(t, h) { const a = sock._listeners[t]; if (a) { const i = a.indexOf(h); if (i >= 0) a.splice(i, 1); } }, close() { (sock._listeners['close'] || []).forEach(h => { try { h({}); } catch(_) {} }); } }; - globalThis.__hs_ws_created.push(sock); + // If the test reset __hs_ws_created to a SX list (via host-set! ... (list)), reinitialise. + if (typeof globalThis.__hs_ws_created?._len !== 'number') globalThis.__hs_ws_created = {_len: 0}; + const idx = globalThis.__hs_ws_created._len; + globalThis.__hs_ws_created[idx] = sock; + globalThis.__hs_ws_created._len++; return sock; }; // _hs_make_rpc_proxy — cluster-36 RPC proxy factory. Called by the runtime @@ -746,7 +753,8 @@ for(let i=startTest;i