summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Picciano <mediocregopher@gmail.com>2021-01-21 17:22:53 -0700
committerBrian Picciano <mediocregopher@gmail.com>2021-01-21 17:22:53 -0700
commitbcf9b230be6d74c71567fd0771b31d47d8dd39c7 (patch)
tree2d0fc16142d55bbd5876ac6b8174c2857883b40e
parentd57fd70640948cf20eeb41b56e8d4e23e616cec0 (diff)
build the blog with nix
-rw-r--r--.gitignore4
-rw-r--r--CNAME1
-rw-r--r--LICENSE.txt27
-rw-r--r--Makefile17
-rw-r--r--build.sh5
-rw-r--r--default.nix41
-rw-r--r--gemset.nix965
-rwxr-xr-xnew-post.sh2
-rw-r--r--src/404.html (renamed from 404.html)0
-rw-r--r--src/_config.yml (renamed from _config.yml)6
-rw-r--r--src/_includes/footer.html (renamed from _includes/footer.html)0
-rw-r--r--src/_includes/google-analytics.html (renamed from _includes/google-analytics.html)0
-rw-r--r--src/_includes/head.html (renamed from _includes/head.html)0
-rw-r--r--src/_includes/header.html (renamed from _includes/header.html)0
-rw-r--r--src/_includes/image.html (renamed from _includes/image.html)0
-rw-r--r--src/_layouts/code.html (renamed from _layouts/code.html)0
-rw-r--r--src/_layouts/default.html (renamed from _layouts/default.html)0
-rw-r--r--src/_layouts/page.html (renamed from _layouts/page.html)0
-rw-r--r--src/_layouts/post.html (renamed from _layouts/post.html)0
-rw-r--r--src/_posts/2013-04-09-erlang-tcp-socket-pull-pattern.md (renamed from _posts/2013-04-09-erlang-tcp-socket-pull-pattern.md)0
-rw-r--r--src/_posts/2013-07-11-goplus.md (renamed from _posts/2013-07-11-goplus.md)0
-rw-r--r--src/_posts/2013-10-08-generations.md (renamed from _posts/2013-10-08-generations.md)0
-rw-r--r--src/_posts/2013-10-25-namecoind-ssl.md (renamed from _posts/2013-10-25-namecoind-ssl.md)0
-rw-r--r--src/_posts/2014-01-11-diamond-square.md (renamed from _posts/2014-01-11-diamond-square.md)0
-rw-r--r--src/_posts/2014-10-29-erlang-pitfalls.md (renamed from _posts/2014-10-29-erlang-pitfalls.md)0
-rw-r--r--src/_posts/2015-03-11-rabbit-hole.md (renamed from _posts/2015-03-11-rabbit-hole.md)0
-rw-r--r--src/_posts/2015-07-15-go-http.md (renamed from _posts/2015-07-15-go-http.md)0
-rw-r--r--src/_posts/2015-11-21-happy-trees.md (renamed from _posts/2015-11-21-happy-trees.md)0
-rw-r--r--src/_posts/2017-09-06-brian-bars.md (renamed from _posts/2017-09-06-brian-bars.md)0
-rw-r--r--src/_posts/2018-10-25-rethinking-identity.md (renamed from _posts/2018-10-25-rethinking-identity.md)0
-rw-r--r--src/_posts/2018-11-12-viz-1.md (renamed from _posts/2018-11-12-viz-1.md)0
-rw-r--r--src/_posts/2018-11-12-viz-2.md (renamed from _posts/2018-11-12-viz-2.md)0
-rw-r--r--src/_posts/2019-08-02-program-structure-and-composability.md (renamed from _posts/2019-08-02-program-structure-and-composability.md)0
-rw-r--r--src/_posts/2020-04-26-trading-in-the-rain.md (renamed from _posts/2020-04-26-trading-in-the-rain.md)0
-rw-r--r--src/_posts/2020-05-30-denver-protests.md (renamed from _posts/2020-05-30-denver-protests.md)0
-rw-r--r--src/_posts/2020-07-07-viz-3.md (renamed from _posts/2020-07-07-viz-3.md)0
-rw-r--r--src/_posts/2020-11-16-component-oriented-programming.md (renamed from _posts/2020-11-16-component-oriented-programming.md)0
-rw-r--r--src/_posts/2021-01-01-new-year-new-resolution.md (renamed from _posts/2021-01-01-new-year-new-resolution.md)0
-rw-r--r--src/_posts/2021-01-09-ginger.md (renamed from _posts/2021-01-09-ginger.md)0
-rw-r--r--src/_posts/2021-01-14-the-web.md (renamed from _posts/2021-01-14-the-web.md)0
-rw-r--r--src/assets/component-oriented-design/v1/main.go (renamed from assets/component-oriented-design/v1/main.go)0
-rw-r--r--src/assets/component-oriented-design/v1/main.md (renamed from assets/component-oriented-design/v1/main.md)0
-rw-r--r--src/assets/component-oriented-design/v1/main_test.go (renamed from assets/component-oriented-design/v1/main_test.go)0
-rw-r--r--src/assets/component-oriented-design/v1/main_test.md (renamed from assets/component-oriented-design/v1/main_test.md)0
-rw-r--r--src/assets/component-oriented-design/v2/main.go (renamed from assets/component-oriented-design/v2/main.go)0
-rw-r--r--src/assets/component-oriented-design/v2/main.md (renamed from assets/component-oriented-design/v2/main.md)0
-rw-r--r--src/assets/component-oriented-design/v3/main.go (renamed from assets/component-oriented-design/v3/main.go)0
-rw-r--r--src/assets/component-oriented-design/v3/main.md (renamed from assets/component-oriented-design/v3/main.md)0
-rw-r--r--src/assets/friendly.css (renamed from assets/friendly.css)0
-rw-r--r--src/assets/main.css (renamed from assets/main.css)0
-rw-r--r--src/assets/main.js (renamed from assets/main.js)0
-rw-r--r--src/assets/normalize.css (renamed from assets/normalize.css)0
-rw-r--r--src/assets/qrcode.min.js (renamed from assets/qrcode.min.js)0
-rw-r--r--src/assets/skeleton.css (renamed from assets/skeleton.css)0
-rw-r--r--src/assets/trading-in-the-rain/CW.js (renamed from assets/trading-in-the-rain/CW.js)0
-rw-r--r--src/assets/trading-in-the-rain/Distributor.js (renamed from assets/trading-in-the-rain/Distributor.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/LICENSE.txt (renamed from assets/trading-in-the-rain/MIDI.js/LICENSE.txt)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js (renamed from assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js (renamed from assets/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js (renamed from assets/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js (renamed from assets/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js (renamed from assets/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/js/midi/gm.js (renamed from assets/trading-in-the-rain/MIDI.js/js/midi/gm.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/js/midi/loader.js (renamed from assets/trading-in-the-rain/MIDI.js/js/midi/loader.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/js/midi/player.js (renamed from assets/trading-in-the-rain/MIDI.js/js/midi/player.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js (renamed from assets/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js (renamed from assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js (renamed from assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js (renamed from assets/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js (renamed from assets/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js)0
-rw-r--r--src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js (renamed from assets/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js)0
-rw-r--r--src/assets/trading-in-the-rain/MusicBox.js (renamed from assets/trading-in-the-rain/MusicBox.js)0
-rw-r--r--src/assets/trading-in-the-rain/RainCanvas.js (renamed from assets/trading-in-the-rain/RainCanvas.js)0
-rw-r--r--src/assets/trading-in-the-rain/SeriesComposer.js (renamed from assets/trading-in-the-rain/SeriesComposer.js)0
-rw-r--r--src/assets/trading-in-the-rain/key.gpg (renamed from assets/trading-in-the-rain/key.gpg)bin669 -> 669 bytes
-rw-r--r--src/assets/trading-in-the-rain/main.js (renamed from assets/trading-in-the-rain/main.js)0
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js)0
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3)bin12065 -> 12065 bytes
-rw-r--r--src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js (renamed from assets/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js)0
-rw-r--r--src/assets/viz/1/cljs/core.cljs (renamed from assets/viz/1/cljs/core.cljs)0
-rw-r--r--src/assets/viz/1/cljs/core.js (renamed from assets/viz/1/cljs/core.js)0
-rw-r--r--src/assets/viz/1/cljs/core.js.map (renamed from assets/viz/1/cljs/core.js.map)0
-rw-r--r--src/assets/viz/1/cljs_deps.js (renamed from assets/viz/1/cljs_deps.js)0
-rw-r--r--src/assets/viz/1/clojure/set.cljs (renamed from assets/viz/1/clojure/set.cljs)0
-rw-r--r--src/assets/viz/1/clojure/set.cljs.cache.edn (renamed from assets/viz/1/clojure/set.cljs.cache.edn)0
-rw-r--r--src/assets/viz/1/clojure/set.js (renamed from assets/viz/1/clojure/set.js)0
-rw-r--r--src/assets/viz/1/clojure/set.js.map (renamed from assets/viz/1/clojure/set.js.map)0
-rw-r--r--src/assets/viz/1/clojure/string.cljs (renamed from assets/viz/1/clojure/string.cljs)0
-rw-r--r--src/assets/viz/1/clojure/string.cljs.cache.edn (renamed from assets/viz/1/clojure/string.cljs.cache.edn)0
-rw-r--r--src/assets/viz/1/clojure/string.js (renamed from assets/viz/1/clojure/string.js)0
-rw-r--r--src/assets/viz/1/clojure/string.js.map (renamed from assets/viz/1/clojure/string.js.map)0
-rw-r--r--src/assets/viz/1/goog/array/array.js (renamed from assets/viz/1/goog/array/array.js)0
-rw-r--r--src/assets/viz/1/goog/asserts/asserts.js (renamed from assets/viz/1/goog/asserts/asserts.js)0
-rw-r--r--src/assets/viz/1/goog/base.js (renamed from assets/viz/1/goog/base.js)0
-rw-r--r--src/assets/viz/1/goog/debug/entrypointregistry.js (renamed from assets/viz/1/goog/debug/entrypointregistry.js)0
-rw-r--r--src/assets/viz/1/goog/debug/error.js (renamed from assets/viz/1/goog/debug/error.js)0
-rw-r--r--src/assets/viz/1/goog/deps.js (renamed from assets/viz/1/goog/deps.js)0
-rw-r--r--src/assets/viz/1/goog/disposable/disposable.js (renamed from assets/viz/1/goog/disposable/disposable.js)0
-rw-r--r--src/assets/viz/1/goog/disposable/idisposable.js (renamed from assets/viz/1/goog/disposable/idisposable.js)0
-rw-r--r--src/assets/viz/1/goog/dom/browserfeature.js (renamed from assets/viz/1/goog/dom/browserfeature.js)0
-rw-r--r--src/assets/viz/1/goog/dom/dom.js (renamed from assets/viz/1/goog/dom/dom.js)0
-rw-r--r--src/assets/viz/1/goog/dom/nodetype.js (renamed from assets/viz/1/goog/dom/nodetype.js)0
-rw-r--r--src/assets/viz/1/goog/dom/safe.js (renamed from assets/viz/1/goog/dom/safe.js)0
-rw-r--r--src/assets/viz/1/goog/dom/tagname.js (renamed from assets/viz/1/goog/dom/tagname.js)0
-rw-r--r--src/assets/viz/1/goog/dom/tags.js (renamed from assets/viz/1/goog/dom/tags.js)0
-rw-r--r--src/assets/viz/1/goog/events/browserevent.js (renamed from assets/viz/1/goog/events/browserevent.js)0
-rw-r--r--src/assets/viz/1/goog/events/browserfeature.js (renamed from assets/viz/1/goog/events/browserfeature.js)0
-rw-r--r--src/assets/viz/1/goog/events/event.js (renamed from assets/viz/1/goog/events/event.js)0
-rw-r--r--src/assets/viz/1/goog/events/eventid.js (renamed from assets/viz/1/goog/events/eventid.js)0
-rw-r--r--src/assets/viz/1/goog/events/events.js (renamed from assets/viz/1/goog/events/events.js)0
-rw-r--r--src/assets/viz/1/goog/events/eventtype.js (renamed from assets/viz/1/goog/events/eventtype.js)0
-rw-r--r--src/assets/viz/1/goog/events/listenable.js (renamed from assets/viz/1/goog/events/listenable.js)0
-rw-r--r--src/assets/viz/1/goog/events/listener.js (renamed from assets/viz/1/goog/events/listener.js)0
-rw-r--r--src/assets/viz/1/goog/events/listenermap.js (renamed from assets/viz/1/goog/events/listenermap.js)0
-rw-r--r--src/assets/viz/1/goog/fs/url.js (renamed from assets/viz/1/goog/fs/url.js)0
-rw-r--r--src/assets/viz/1/goog/html/safehtml.js (renamed from assets/viz/1/goog/html/safehtml.js)0
-rw-r--r--src/assets/viz/1/goog/html/safescript.js (renamed from assets/viz/1/goog/html/safescript.js)0
-rw-r--r--src/assets/viz/1/goog/html/safestyle.js (renamed from assets/viz/1/goog/html/safestyle.js)0
-rw-r--r--src/assets/viz/1/goog/html/safestylesheet.js (renamed from assets/viz/1/goog/html/safestylesheet.js)0
-rw-r--r--src/assets/viz/1/goog/html/safeurl.js (renamed from assets/viz/1/goog/html/safeurl.js)0
-rw-r--r--src/assets/viz/1/goog/html/trustedresourceurl.js (renamed from assets/viz/1/goog/html/trustedresourceurl.js)0
-rw-r--r--src/assets/viz/1/goog/html/uncheckedconversions.js (renamed from assets/viz/1/goog/html/uncheckedconversions.js)0
-rw-r--r--src/assets/viz/1/goog/i18n/bidi.js (renamed from assets/viz/1/goog/i18n/bidi.js)0
-rw-r--r--src/assets/viz/1/goog/labs/useragent/browser.js (renamed from assets/viz/1/goog/labs/useragent/browser.js)0
-rw-r--r--src/assets/viz/1/goog/labs/useragent/engine.js (renamed from assets/viz/1/goog/labs/useragent/engine.js)0
-rw-r--r--src/assets/viz/1/goog/labs/useragent/platform.js (renamed from assets/viz/1/goog/labs/useragent/platform.js)0
-rw-r--r--src/assets/viz/1/goog/labs/useragent/util.js (renamed from assets/viz/1/goog/labs/useragent/util.js)0
-rw-r--r--src/assets/viz/1/goog/math/coordinate.js (renamed from assets/viz/1/goog/math/coordinate.js)0
-rw-r--r--src/assets/viz/1/goog/math/integer.js (renamed from assets/viz/1/goog/math/integer.js)0
-rw-r--r--src/assets/viz/1/goog/math/long.js (renamed from assets/viz/1/goog/math/long.js)0
-rw-r--r--src/assets/viz/1/goog/math/math.js (renamed from assets/viz/1/goog/math/math.js)0
-rw-r--r--src/assets/viz/1/goog/math/size.js (renamed from assets/viz/1/goog/math/size.js)0
-rw-r--r--src/assets/viz/1/goog/object/object.js (renamed from assets/viz/1/goog/object/object.js)0
-rw-r--r--src/assets/viz/1/goog/reflect/reflect.js (renamed from assets/viz/1/goog/reflect/reflect.js)0
-rw-r--r--src/assets/viz/1/goog/string/const.js (renamed from assets/viz/1/goog/string/const.js)0
-rw-r--r--src/assets/viz/1/goog/string/string.js (renamed from assets/viz/1/goog/string/string.js)0
-rw-r--r--src/assets/viz/1/goog/string/stringbuffer.js (renamed from assets/viz/1/goog/string/stringbuffer.js)0
-rw-r--r--src/assets/viz/1/goog/string/stringformat.js (renamed from assets/viz/1/goog/string/stringformat.js)0
-rw-r--r--src/assets/viz/1/goog/string/typedstring.js (renamed from assets/viz/1/goog/string/typedstring.js)0
-rw-r--r--src/assets/viz/1/goog/useragent/useragent.js (renamed from assets/viz/1/goog/useragent/useragent.js)0
-rw-r--r--src/assets/viz/1/processing.js (renamed from assets/viz/1/processing.js)0
-rw-r--r--src/assets/viz/1/quil/core.cljc (renamed from assets/viz/1/quil/core.cljc)0
-rw-r--r--src/assets/viz/1/quil/core.cljc.cache.edn (renamed from assets/viz/1/quil/core.cljc.cache.edn)0
-rw-r--r--src/assets/viz/1/quil/core.js (renamed from assets/viz/1/quil/core.js)0
-rw-r--r--src/assets/viz/1/quil/core.js.map (renamed from assets/viz/1/quil/core.js.map)0
-rw-r--r--src/assets/viz/1/quil/middleware.cljc (renamed from assets/viz/1/quil/middleware.cljc)0
-rw-r--r--src/assets/viz/1/quil/middleware.cljc.cache.edn (renamed from assets/viz/1/quil/middleware.cljc.cache.edn)0
-rw-r--r--src/assets/viz/1/quil/middleware.js (renamed from assets/viz/1/quil/middleware.js)0
-rw-r--r--src/assets/viz/1/quil/middleware.js.map (renamed from assets/viz/1/quil/middleware.js.map)0
-rw-r--r--src/assets/viz/1/quil/middlewares/deprecated_options.cljc (renamed from assets/viz/1/quil/middlewares/deprecated_options.cljc)0
-rw-r--r--src/assets/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn (renamed from assets/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn)0
-rw-r--r--src/assets/viz/1/quil/middlewares/deprecated_options.js (renamed from assets/viz/1/quil/middlewares/deprecated_options.js)0
-rw-r--r--src/assets/viz/1/quil/middlewares/deprecated_options.js.map (renamed from assets/viz/1/quil/middlewares/deprecated_options.js.map)0
-rw-r--r--src/assets/viz/1/quil/middlewares/fun_mode.cljc (renamed from assets/viz/1/quil/middlewares/fun_mode.cljc)0
-rw-r--r--src/assets/viz/1/quil/middlewares/fun_mode.cljc.cache.edn (renamed from assets/viz/1/quil/middlewares/fun_mode.cljc.cache.edn)0
-rw-r--r--src/assets/viz/1/quil/middlewares/fun_mode.js (renamed from assets/viz/1/quil/middlewares/fun_mode.js)0
-rw-r--r--src/assets/viz/1/quil/middlewares/fun_mode.js.map (renamed from assets/viz/1/quil/middlewares/fun_mode.js.map)0
-rw-r--r--src/assets/viz/1/quil/middlewares/navigation_2d.cljc (renamed from assets/viz/1/quil/middlewares/navigation_2d.cljc)0
-rw-r--r--src/assets/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn (renamed from assets/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn)0
-rw-r--r--src/assets/viz/1/quil/middlewares/navigation_2d.js (renamed from assets/viz/1/quil/middlewares/navigation_2d.js)0
-rw-r--r--src/assets/viz/1/quil/middlewares/navigation_2d.js.map (renamed from assets/viz/1/quil/middlewares/navigation_2d.js.map)0
-rw-r--r--src/assets/viz/1/quil/middlewares/navigation_3d.cljc (renamed from assets/viz/1/quil/middlewares/navigation_3d.cljc)0
-rw-r--r--src/assets/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn (renamed from assets/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn)0
-rw-r--r--src/assets/viz/1/quil/middlewares/navigation_3d.js (renamed from assets/viz/1/quil/middlewares/navigation_3d.js)0
-rw-r--r--src/assets/viz/1/quil/middlewares/navigation_3d.js.map (renamed from assets/viz/1/quil/middlewares/navigation_3d.js.map)0
-rw-r--r--src/assets/viz/1/quil/sketch.cljs (renamed from assets/viz/1/quil/sketch.cljs)0
-rw-r--r--src/assets/viz/1/quil/sketch.cljs.cache.edn (renamed from assets/viz/1/quil/sketch.cljs.cache.edn)0
-rw-r--r--src/assets/viz/1/quil/sketch.js (renamed from assets/viz/1/quil/sketch.js)0
-rw-r--r--src/assets/viz/1/quil/sketch.js.map (renamed from assets/viz/1/quil/sketch.js.map)0
-rw-r--r--src/assets/viz/1/quil/util.cljc (renamed from assets/viz/1/quil/util.cljc)0
-rw-r--r--src/assets/viz/1/quil/util.cljc.cache.edn (renamed from assets/viz/1/quil/util.cljc.cache.edn)0
-rw-r--r--src/assets/viz/1/quil/util.js (renamed from assets/viz/1/quil/util.js)0
-rw-r--r--src/assets/viz/1/quil/util.js.map (renamed from assets/viz/1/quil/util.js.map)0
-rw-r--r--src/assets/viz/1/viz/core.cljs (renamed from assets/viz/1/viz/core.cljs)0
-rw-r--r--src/assets/viz/1/viz/core.cljs.cache.edn (renamed from assets/viz/1/viz/core.cljs.cache.edn)0
-rw-r--r--src/assets/viz/1/viz/core.js (renamed from assets/viz/1/viz/core.js)0
-rw-r--r--src/assets/viz/1/viz/core.js.map (renamed from assets/viz/1/viz/core.js.map)0
-rw-r--r--src/assets/viz/1/viz/forest.cljs (renamed from assets/viz/1/viz/forest.cljs)0
-rw-r--r--src/assets/viz/1/viz/forest.cljs.cache.edn (renamed from assets/viz/1/viz/forest.cljs.cache.edn)0
-rw-r--r--src/assets/viz/1/viz/forest.js (renamed from assets/viz/1/viz/forest.js)0
-rw-r--r--src/assets/viz/1/viz/forest.js.map (renamed from assets/viz/1/viz/forest.js.map)0
-rw-r--r--src/assets/viz/1/viz/ghost.cljs (renamed from assets/viz/1/viz/ghost.cljs)0
-rw-r--r--src/assets/viz/1/viz/ghost.cljs.cache.edn (renamed from assets/viz/1/viz/ghost.cljs.cache.edn)0
-rw-r--r--src/assets/viz/1/viz/ghost.js (renamed from assets/viz/1/viz/ghost.js)0
-rw-r--r--src/assets/viz/1/viz/ghost.js.map (renamed from assets/viz/1/viz/ghost.js.map)0
-rw-r--r--src/assets/viz/1/viz/grid.cljs (renamed from assets/viz/1/viz/grid.cljs)0
-rw-r--r--src/assets/viz/1/viz/grid.cljs.cache.edn (renamed from assets/viz/1/viz/grid.cljs.cache.edn)0
-rw-r--r--src/assets/viz/1/viz/grid.js (renamed from assets/viz/1/viz/grid.js)0
-rw-r--r--src/assets/viz/1/viz/grid.js.map (renamed from assets/viz/1/viz/grid.js.map)0
-rw-r--r--src/assets/viz/2/cljs/core.cljs (renamed from assets/viz/2/cljs/core.cljs)0
-rw-r--r--src/assets/viz/2/cljs/core.js (renamed from assets/viz/2/cljs/core.js)0
-rw-r--r--src/assets/viz/2/cljs/core.js.map (renamed from assets/viz/2/cljs/core.js.map)0
-rw-r--r--src/assets/viz/2/cljs/user/debug9D984AE.cljs.cache.json (renamed from assets/viz/2/cljs/user/debug9D984AE.cljs.cache.json)0
-rw-r--r--src/assets/viz/2/cljs/user/debug9D984AE.js (renamed from assets/viz/2/cljs/user/debug9D984AE.js)0
-rw-r--r--src/assets/viz/2/cljs/user/debug9D984AE.js.map (renamed from assets/viz/2/cljs/user/debug9D984AE.js.map)0
-rw-r--r--src/assets/viz/2/cljs_deps.js (renamed from assets/viz/2/cljs_deps.js)0
-rw-r--r--src/assets/viz/2/cljsc_opts.edn (renamed from assets/viz/2/cljsc_opts.edn)0
-rw-r--r--src/assets/viz/2/clojure/set.cljs (renamed from assets/viz/2/clojure/set.cljs)0
-rw-r--r--src/assets/viz/2/clojure/set.cljs.cache.json (renamed from assets/viz/2/clojure/set.cljs.cache.json)0
-rw-r--r--src/assets/viz/2/clojure/set.js (renamed from assets/viz/2/clojure/set.js)0
-rw-r--r--src/assets/viz/2/clojure/set.js.map (renamed from assets/viz/2/clojure/set.js.map)0
-rw-r--r--src/assets/viz/2/clojure/string.cljs (renamed from assets/viz/2/clojure/string.cljs)0
-rw-r--r--src/assets/viz/2/clojure/string.cljs.cache.json (renamed from assets/viz/2/clojure/string.cljs.cache.json)0
-rw-r--r--src/assets/viz/2/clojure/string.js (renamed from assets/viz/2/clojure/string.js)0
-rw-r--r--src/assets/viz/2/clojure/string.js.map (renamed from assets/viz/2/clojure/string.js.map)0
-rw-r--r--src/assets/viz/2/goog/array/array.js (renamed from assets/viz/2/goog/array/array.js)0
-rw-r--r--src/assets/viz/2/goog/asserts/asserts.js (renamed from assets/viz/2/goog/asserts/asserts.js)0
-rw-r--r--src/assets/viz/2/goog/base.js (renamed from assets/viz/2/goog/base.js)0
-rw-r--r--src/assets/viz/2/goog/debug/entrypointregistry.js (renamed from assets/viz/2/goog/debug/entrypointregistry.js)0
-rw-r--r--src/assets/viz/2/goog/debug/error.js (renamed from assets/viz/2/goog/debug/error.js)0
-rw-r--r--src/assets/viz/2/goog/deps.js (renamed from assets/viz/2/goog/deps.js)0
-rw-r--r--src/assets/viz/2/goog/disposable/disposable.js (renamed from assets/viz/2/goog/disposable/disposable.js)0
-rw-r--r--src/assets/viz/2/goog/disposable/idisposable.js (renamed from assets/viz/2/goog/disposable/idisposable.js)0
-rw-r--r--src/assets/viz/2/goog/dom/asserts.js (renamed from assets/viz/2/goog/dom/asserts.js)0
-rw-r--r--src/assets/viz/2/goog/dom/browserfeature.js (renamed from assets/viz/2/goog/dom/browserfeature.js)0
-rw-r--r--src/assets/viz/2/goog/dom/dom.js (renamed from assets/viz/2/goog/dom/dom.js)0
-rw-r--r--src/assets/viz/2/goog/dom/htmlelement.js (renamed from assets/viz/2/goog/dom/htmlelement.js)0
-rw-r--r--src/assets/viz/2/goog/dom/nodetype.js (renamed from assets/viz/2/goog/dom/nodetype.js)0
-rw-r--r--src/assets/viz/2/goog/dom/safe.js (renamed from assets/viz/2/goog/dom/safe.js)0
-rw-r--r--src/assets/viz/2/goog/dom/tagname.js (renamed from assets/viz/2/goog/dom/tagname.js)0
-rw-r--r--src/assets/viz/2/goog/dom/tags.js (renamed from assets/viz/2/goog/dom/tags.js)0
-rw-r--r--src/assets/viz/2/goog/events/browserevent.js (renamed from assets/viz/2/goog/events/browserevent.js)0
-rw-r--r--src/assets/viz/2/goog/events/browserfeature.js (renamed from assets/viz/2/goog/events/browserfeature.js)0
-rw-r--r--src/assets/viz/2/goog/events/event.js (renamed from assets/viz/2/goog/events/event.js)0
-rw-r--r--src/assets/viz/2/goog/events/eventid.js (renamed from assets/viz/2/goog/events/eventid.js)0
-rw-r--r--src/assets/viz/2/goog/events/events.js (renamed from assets/viz/2/goog/events/events.js)0
-rw-r--r--src/assets/viz/2/goog/events/eventtype.js (renamed from assets/viz/2/goog/events/eventtype.js)0
-rw-r--r--src/assets/viz/2/goog/events/listenable.js (renamed from assets/viz/2/goog/events/listenable.js)0
-rw-r--r--src/assets/viz/2/goog/events/listener.js (renamed from assets/viz/2/goog/events/listener.js)0
-rw-r--r--src/assets/viz/2/goog/events/listenermap.js (renamed from assets/viz/2/goog/events/listenermap.js)0
-rw-r--r--src/assets/viz/2/goog/fs/url.js (renamed from assets/viz/2/goog/fs/url.js)0
-rw-r--r--src/assets/viz/2/goog/functions/functions.js (renamed from assets/viz/2/goog/functions/functions.js)0
-rw-r--r--src/assets/viz/2/goog/html/safehtml.js (renamed from assets/viz/2/goog/html/safehtml.js)0
-rw-r--r--src/assets/viz/2/goog/html/safescript.js (renamed from assets/viz/2/goog/html/safescript.js)0
-rw-r--r--src/assets/viz/2/goog/html/safestyle.js (renamed from assets/viz/2/goog/html/safestyle.js)0
-rw-r--r--src/assets/viz/2/goog/html/safestylesheet.js (renamed from assets/viz/2/goog/html/safestylesheet.js)0
-rw-r--r--src/assets/viz/2/goog/html/safeurl.js (renamed from assets/viz/2/goog/html/safeurl.js)0
-rw-r--r--src/assets/viz/2/goog/html/trustedresourceurl.js (renamed from assets/viz/2/goog/html/trustedresourceurl.js)0
-rw-r--r--src/assets/viz/2/goog/html/uncheckedconversions.js (renamed from assets/viz/2/goog/html/uncheckedconversions.js)0
-rw-r--r--src/assets/viz/2/goog/i18n/bidi.js (renamed from assets/viz/2/goog/i18n/bidi.js)0
-rw-r--r--src/assets/viz/2/goog/iter/iter.js (renamed from assets/viz/2/goog/iter/iter.js)0
-rw-r--r--src/assets/viz/2/goog/labs/useragent/browser.js (renamed from assets/viz/2/goog/labs/useragent/browser.js)0
-rw-r--r--src/assets/viz/2/goog/labs/useragent/engine.js (renamed from assets/viz/2/goog/labs/useragent/engine.js)0
-rw-r--r--src/assets/viz/2/goog/labs/useragent/platform.js (renamed from assets/viz/2/goog/labs/useragent/platform.js)0
-rw-r--r--src/assets/viz/2/goog/labs/useragent/util.js (renamed from assets/viz/2/goog/labs/useragent/util.js)0
-rw-r--r--src/assets/viz/2/goog/math/coordinate.js (renamed from assets/viz/2/goog/math/coordinate.js)0
-rw-r--r--src/assets/viz/2/goog/math/integer.js (renamed from assets/viz/2/goog/math/integer.js)0
-rw-r--r--src/assets/viz/2/goog/math/long.js (renamed from assets/viz/2/goog/math/long.js)0
-rw-r--r--src/assets/viz/2/goog/math/math.js (renamed from assets/viz/2/goog/math/math.js)0
-rw-r--r--src/assets/viz/2/goog/math/size.js (renamed from assets/viz/2/goog/math/size.js)0
-rw-r--r--src/assets/viz/2/goog/object/object.js (renamed from assets/viz/2/goog/object/object.js)0
-rw-r--r--src/assets/viz/2/goog/reflect/reflect.js (renamed from assets/viz/2/goog/reflect/reflect.js)0
-rw-r--r--src/assets/viz/2/goog/string/const.js (renamed from assets/viz/2/goog/string/const.js)0
-rw-r--r--src/assets/viz/2/goog/string/string.js (renamed from assets/viz/2/goog/string/string.js)0
-rw-r--r--src/assets/viz/2/goog/string/stringbuffer.js (renamed from assets/viz/2/goog/string/stringbuffer.js)0
-rw-r--r--src/assets/viz/2/goog/string/stringformat.js (renamed from assets/viz/2/goog/string/stringformat.js)0
-rw-r--r--src/assets/viz/2/goog/string/typedstring.js (renamed from assets/viz/2/goog/string/typedstring.js)0
-rw-r--r--src/assets/viz/2/goog/structs/map.js (renamed from assets/viz/2/goog/structs/map.js)0
-rw-r--r--src/assets/viz/2/goog/structs/structs.js (renamed from assets/viz/2/goog/structs/structs.js)0
-rw-r--r--src/assets/viz/2/goog/uri/uri.js (renamed from assets/viz/2/goog/uri/uri.js)0
-rw-r--r--src/assets/viz/2/goog/uri/utils.js (renamed from assets/viz/2/goog/uri/utils.js)0
-rw-r--r--src/assets/viz/2/goog/useragent/useragent.js (renamed from assets/viz/2/goog/useragent/useragent.js)0
-rw-r--r--src/assets/viz/2/process/env.cljs (renamed from assets/viz/2/process/env.cljs)0
-rw-r--r--src/assets/viz/2/process/env.cljs.cache.json (renamed from assets/viz/2/process/env.cljs.cache.json)0
-rw-r--r--src/assets/viz/2/process/env.js (renamed from assets/viz/2/process/env.js)0
-rw-r--r--src/assets/viz/2/process/env.js.map (renamed from assets/viz/2/process/env.js.map)0
-rw-r--r--src/assets/viz/2/processing.js (renamed from assets/viz/2/processing.js)0
-rw-r--r--src/assets/viz/2/quil/core.cljc (renamed from assets/viz/2/quil/core.cljc)0
-rw-r--r--src/assets/viz/2/quil/core.cljc.cache.json (renamed from assets/viz/2/quil/core.cljc.cache.json)0
-rw-r--r--src/assets/viz/2/quil/core.js (renamed from assets/viz/2/quil/core.js)0
-rw-r--r--src/assets/viz/2/quil/core.js.map (renamed from assets/viz/2/quil/core.js.map)0
-rw-r--r--src/assets/viz/2/quil/middleware.cljc (renamed from assets/viz/2/quil/middleware.cljc)0
-rw-r--r--src/assets/viz/2/quil/middleware.cljc.cache.json (renamed from assets/viz/2/quil/middleware.cljc.cache.json)0
-rw-r--r--src/assets/viz/2/quil/middleware.js (renamed from assets/viz/2/quil/middleware.js)0
-rw-r--r--src/assets/viz/2/quil/middleware.js.map (renamed from assets/viz/2/quil/middleware.js.map)0
-rw-r--r--src/assets/viz/2/quil/middlewares/deprecated_options.cljc (renamed from assets/viz/2/quil/middlewares/deprecated_options.cljc)0
-rw-r--r--src/assets/viz/2/quil/middlewares/deprecated_options.cljc.cache.json (renamed from assets/viz/2/quil/middlewares/deprecated_options.cljc.cache.json)0
-rw-r--r--src/assets/viz/2/quil/middlewares/deprecated_options.js (renamed from assets/viz/2/quil/middlewares/deprecated_options.js)0
-rw-r--r--src/assets/viz/2/quil/middlewares/deprecated_options.js.map (renamed from assets/viz/2/quil/middlewares/deprecated_options.js.map)0
-rw-r--r--src/assets/viz/2/quil/middlewares/fun_mode.cljc (renamed from assets/viz/2/quil/middlewares/fun_mode.cljc)0
-rw-r--r--src/assets/viz/2/quil/middlewares/fun_mode.cljc.cache.json (renamed from assets/viz/2/quil/middlewares/fun_mode.cljc.cache.json)0
-rw-r--r--src/assets/viz/2/quil/middlewares/fun_mode.js (renamed from assets/viz/2/quil/middlewares/fun_mode.js)0
-rw-r--r--src/assets/viz/2/quil/middlewares/fun_mode.js.map (renamed from assets/viz/2/quil/middlewares/fun_mode.js.map)0
-rw-r--r--src/assets/viz/2/quil/middlewares/navigation_2d.cljc (renamed from assets/viz/2/quil/middlewares/navigation_2d.cljc)0
-rw-r--r--src/assets/viz/2/quil/middlewares/navigation_2d.cljc.cache.json (renamed from assets/viz/2/quil/middlewares/navigation_2d.cljc.cache.json)0
-rw-r--r--src/assets/viz/2/quil/middlewares/navigation_2d.js (renamed from assets/viz/2/quil/middlewares/navigation_2d.js)0
-rw-r--r--src/assets/viz/2/quil/middlewares/navigation_2d.js.map (renamed from assets/viz/2/quil/middlewares/navigation_2d.js.map)0
-rw-r--r--src/assets/viz/2/quil/middlewares/navigation_3d.cljc (renamed from assets/viz/2/quil/middlewares/navigation_3d.cljc)0
-rw-r--r--src/assets/viz/2/quil/middlewares/navigation_3d.cljc.cache.json (renamed from assets/viz/2/quil/middlewares/navigation_3d.cljc.cache.json)0
-rw-r--r--src/assets/viz/2/quil/middlewares/navigation_3d.js (renamed from assets/viz/2/quil/middlewares/navigation_3d.js)0
-rw-r--r--src/assets/viz/2/quil/middlewares/navigation_3d.js.map (renamed from assets/viz/2/quil/middlewares/navigation_3d.js.map)0
-rw-r--r--src/assets/viz/2/quil/sketch.cljs (renamed from assets/viz/2/quil/sketch.cljs)0
-rw-r--r--src/assets/viz/2/quil/sketch.cljs.cache.json (renamed from assets/viz/2/quil/sketch.cljs.cache.json)0
-rw-r--r--src/assets/viz/2/quil/sketch.js (renamed from assets/viz/2/quil/sketch.js)0
-rw-r--r--src/assets/viz/2/quil/sketch.js.map (renamed from assets/viz/2/quil/sketch.js.map)0
-rw-r--r--src/assets/viz/2/quil/util.cljc (renamed from assets/viz/2/quil/util.cljc)0
-rw-r--r--src/assets/viz/2/quil/util.cljc.cache.json (renamed from assets/viz/2/quil/util.cljc.cache.json)0
-rw-r--r--src/assets/viz/2/quil/util.js (renamed from assets/viz/2/quil/util.js)0
-rw-r--r--src/assets/viz/2/quil/util.js.map (renamed from assets/viz/2/quil/util.js.map)0
-rw-r--r--src/assets/viz/2/viz/core.cljs (renamed from assets/viz/2/viz/core.cljs)0
-rw-r--r--src/assets/viz/2/viz/core.cljs.cache.json (renamed from assets/viz/2/viz/core.cljs.cache.json)0
-rw-r--r--src/assets/viz/2/viz/core.js (renamed from assets/viz/2/viz/core.js)0
-rw-r--r--src/assets/viz/2/viz/core.js.map (renamed from assets/viz/2/viz/core.js.map)0
-rw-r--r--src/assets/viz/2/viz/debug.cljs (renamed from assets/viz/2/viz/debug.cljs)0
-rw-r--r--src/assets/viz/2/viz/debug.cljs.cache.json (renamed from assets/viz/2/viz/debug.cljs.cache.json)0
-rw-r--r--src/assets/viz/2/viz/debug.js (renamed from assets/viz/2/viz/debug.js)0
-rw-r--r--src/assets/viz/2/viz/debug.js.map (renamed from assets/viz/2/viz/debug.js.map)0
-rw-r--r--src/assets/viz/2/viz/dial.cljs (renamed from assets/viz/2/viz/dial.cljs)0
-rw-r--r--src/assets/viz/2/viz/dial.cljs.cache.json (renamed from assets/viz/2/viz/dial.cljs.cache.json)0
-rw-r--r--src/assets/viz/2/viz/dial.js (renamed from assets/viz/2/viz/dial.js)0
-rw-r--r--src/assets/viz/2/viz/dial.js.map (renamed from assets/viz/2/viz/dial.js.map)0
-rw-r--r--src/assets/viz/2/viz/forest.cljs (renamed from assets/viz/2/viz/forest.cljs)0
-rw-r--r--src/assets/viz/2/viz/forest.cljs.cache.json (renamed from assets/viz/2/viz/forest.cljs.cache.json)0
-rw-r--r--src/assets/viz/2/viz/forest.js (renamed from assets/viz/2/viz/forest.js)0
-rw-r--r--src/assets/viz/2/viz/forest.js.map (renamed from assets/viz/2/viz/forest.js.map)0
-rw-r--r--src/assets/viz/2/viz/ghost.cljs (renamed from assets/viz/2/viz/ghost.cljs)0
-rw-r--r--src/assets/viz/2/viz/ghost.cljs.cache.json (renamed from assets/viz/2/viz/ghost.cljs.cache.json)0
-rw-r--r--src/assets/viz/2/viz/ghost.js (renamed from assets/viz/2/viz/ghost.js)0
-rw-r--r--src/assets/viz/2/viz/ghost.js.map (renamed from assets/viz/2/viz/ghost.js.map)0
-rw-r--r--src/assets/viz/2/viz/grid.cljs (renamed from assets/viz/2/viz/grid.cljs)0
-rw-r--r--src/assets/viz/2/viz/grid.cljs.cache.json (renamed from assets/viz/2/viz/grid.cljs.cache.json)0
-rw-r--r--src/assets/viz/2/viz/grid.js (renamed from assets/viz/2/viz/grid.js)0
-rw-r--r--src/assets/viz/2/viz/grid.js.map (renamed from assets/viz/2/viz/grid.js.map)0
-rw-r--r--src/assets/wtfpl.txt (renamed from assets/wtfpl.txt)0
-rw-r--r--src/follow.md (renamed from follow.md)0
-rw-r--r--src/img/diamond-square/dsalg.png (renamed from img/diamond-square/dsalg.png)bin64488 -> 64488 bytes
-rw-r--r--src/img/diamond-square/terrain.png (renamed from img/diamond-square/terrain.png)bin110765 -> 110765 bytes
-rw-r--r--src/img/happy-tree/happy-tree-atmp1-small.png (renamed from img/happy-tree/happy-tree-atmp1-small.png)bin389868 -> 389868 bytes
-rw-r--r--src/img/happy-tree/happy-tree-atmp1.png (renamed from img/happy-tree/happy-tree-atmp1.png)bin4184753 -> 4184753 bytes
-rw-r--r--src/img/happy-tree/happy-tree-atmp2-small.png (renamed from img/happy-tree/happy-tree-atmp2-small.png)bin2371978 -> 2371978 bytes
-rw-r--r--src/img/happy-tree/happy-tree-atmp2.png (renamed from img/happy-tree/happy-tree-atmp2.png)bin38348664 -> 38348664 bytes
-rw-r--r--src/img/happy-tree/happy-tree-atmp3-pow3-small.png (renamed from img/happy-tree/happy-tree-atmp3-pow3-small.png)bin1545609 -> 1545609 bytes
-rw-r--r--src/img/happy-tree/happy-tree-atmp3-pow3.png (renamed from img/happy-tree/happy-tree-atmp3-pow3.png)bin14531440 -> 14531440 bytes
-rw-r--r--src/img/happy-tree/happy-tree-atmp3-pow4-small.png (renamed from img/happy-tree/happy-tree-atmp3-pow4-small.png)bin765316 -> 765316 bytes
-rw-r--r--src/img/happy-tree/happy-tree-atmp3-pow4.png (renamed from img/happy-tree/happy-tree-atmp3-pow4.png)bin6244028 -> 6244028 bytes
-rw-r--r--src/img/happy-tree/happy-tree-atmp3-pow5-small.png (renamed from img/happy-tree/happy-tree-atmp3-pow5-small.png)bin1224861 -> 1224861 bytes
-rw-r--r--src/img/happy-tree/happy-tree-atmp3-pow5.png (renamed from img/happy-tree/happy-tree-atmp3-pow5.png)bin20941222 -> 20941222 bytes
-rw-r--r--src/img/happy-tree/happy-tree-atmp3-pow6-small.png (renamed from img/happy-tree/happy-tree-atmp3-pow6-small.png)bin830004 -> 830004 bytes
-rw-r--r--src/img/happy-tree/happy-tree-atmp3-pow6.png (renamed from img/happy-tree/happy-tree-atmp3-pow6.png)bin10219584 -> 10219584 bytes
-rw-r--r--src/img/happy-tree/partial.png (renamed from img/happy-tree/partial.png)bin158010 -> 158010 bytes
-rw-r--r--src/img/program-structure/500px/diag1.jpg (renamed from img/program-structure/500px/diag1.jpg)bin10862 -> 10862 bytes
-rw-r--r--src/img/program-structure/500px/diag2.jpg (renamed from img/program-structure/500px/diag2.jpg)bin14636 -> 14636 bytes
-rw-r--r--src/img/program-structure/500px/diag3.jpg (renamed from img/program-structure/500px/diag3.jpg)bin9681 -> 9681 bytes
-rw-r--r--src/img/program-structure/diag1.jpg (renamed from img/program-structure/diag1.jpg)bin12297 -> 12297 bytes
-rw-r--r--src/img/program-structure/diag2.jpg (renamed from img/program-structure/diag2.jpg)bin25719 -> 25719 bytes
-rw-r--r--src/img/program-structure/diag3.jpg (renamed from img/program-structure/diag3.jpg)bin18577 -> 18577 bytes
-rw-r--r--src/index.md (renamed from index.md)0
435 files changed, 1038 insertions, 30 deletions
diff --git a/.gitignore b/.gitignore
index 97f5137..d14864e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,6 @@
.bundle
.sass-cache
-Gemfile.lock
-_site
*.gem
.jekyll-metadata
+result
+_site
diff --git a/CNAME b/CNAME
deleted file mode 100644
index da90914..0000000
--- a/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-blog.mediocregopher.com \ No newline at end of file
diff --git a/LICENSE.txt b/LICENSE.txt
index 0e7ecd8..5a8e332 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,21 +1,14 @@
-The MIT License (MIT)
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
-Copyright (c) 2016-present Parker Moore and the minima contributors
+ Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/Makefile b/Makefile
index 811820c..d6d6419 100644
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,11 @@
serve:
- docker run -it --rm \
- -v $$(pwd):/srv/jekyll \
- -p 4000:4000 \
- jekyll/jekyll \
- jekyll serve -w -I -D -H 0.0.0.0
+ nix-shell -A serve
update:
- docker run -it --rm \
- -v $$(pwd):/srv/jekyll \
- jekyll/jekyll \
- bundle update
+ nix-shell -p bundler --run 'bundler update'
+
+lock:
+ nix-shell -p bundler -p bundix --run 'bundler lock; bundler package --no-install --path vendor; bundix; rm -rf .bundle vendor'
+
+build:
+ nix-build -A build
diff --git a/build.sh b/build.sh
new file mode 100644
index 0000000..5fdae15
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,5 @@
+source $stdenv/setup
+set -e
+
+mkdir -p "$out"
+$jekyll_env/bin/jekyll build -s "$src" -d "$out"
diff --git a/default.nix b/default.nix
new file mode 100644
index 0000000..95bfc26
--- /dev/null
+++ b/default.nix
@@ -0,0 +1,41 @@
+{
+ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/cd63096d6d887d689543a0b97743d28995bc9bc3.tar.gz") {},
+ system ? builtins.currentSystem,
+}:
+
+ let
+ jekyll_env = pkgs.bundlerEnv {
+ name = "jekyll_env";
+ ruby = pkgs.ruby;
+ gemdir = ./.;
+ };
+ in
+ {
+ build = derivation {
+ system = system;
+ name = "mediocre-blog";
+ builder = "${pkgs.bash}/bin/bash";
+ args = [ ./build.sh ];
+
+ src = ./src;
+ stdenv = pkgs.stdenv;
+ inherit jekyll_env;
+ };
+
+ serve = pkgs.stdenv.mkDerivation rec {
+ name = "jekyll_env";
+
+ # glibcLocales is required so to fill in LC_ALL and other locale
+ # related environment vars. Without those jekyll's scss compiler
+ # fails.
+ #
+ # TODO probably get rid of the scss compiler.
+ buildInputs = [ jekyll_env pkgs.glibcLocales ];
+
+ shellHook = ''
+ exec ${jekyll_env}/bin/jekyll serve -s ./src -d ./_site -w -I -D -H 0.0.0.0
+ '';
+ };
+ }
+
+
diff --git a/gemset.nix b/gemset.nix
new file mode 100644
index 0000000..98bd39c
--- /dev/null
+++ b/gemset.nix
@@ -0,0 +1,965 @@
+{
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1axidc4mikgi4yxs0ynw2c54jyrs5lxprxmzv6m3aayi9rg6rk5j";
+ type = "gem";
+ };
+ version = "6.0.3.4";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ coffee-script = {
+ dependencies = ["coffee-script-source" "execjs"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rc7scyk7mnpfxqv5yy4y5q1hx3i7q3ahplcp4bq2g5r24g2izl2";
+ type = "gem";
+ };
+ version = "2.4.1";
+ };
+ coffee-script-source = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xfshhlz808f8639wc88wgls1mww35sid8rd55vn0a4yqajf4vh9";
+ type = "gem";
+ };
+ version = "1.11.1";
+ };
+ colorator = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ commonmarker = {
+ dependencies = ["ruby-enum"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pmjm87p0hxnknp33cxyvkgbr1swfp9gcznssmalm9z8kwyancb9";
+ type = "gem";
+ };
+ version = "0.17.13";
+ };
+ concurrent-ruby = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+ type = "gem";
+ };
+ version = "1.1.7";
+ };
+ dnsruby = {
+ dependencies = ["simpleidn"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0q7k7wn8flcdr0kzgknq40cjddd0zn3g3n4gwwwdz0kq30pinzxx";
+ type = "gem";
+ };
+ version = "1.61.5";
+ };
+ em-websocket = {
+ dependencies = ["eventmachine" "http_parser.rb"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mg1mx735a0k1l8y14ps2mxdwhi5r01ikydf34b0sp60v66nvbkb";
+ type = "gem";
+ };
+ version = "0.5.2";
+ };
+ ethon = {
+ dependencies = ["ffi"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ eventmachine = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ execjs = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ faraday = {
+ dependencies = ["multipart-post" "ruby2_keywords"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16dapwi5pivrl25r4lkr1mxjrzkznj4wlcb08fzkmxnj4g5c6y35";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ ffi = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ forwardable-extended = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v";
+ type = "gem";
+ };
+ version = "2.6.0";
+ };
+ gemoji = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vgklpmhdz98xayln5hhqv4ffdyrglzwdixkn5gsk9rj94pkymc0";
+ type = "gem";
+ };
+ version = "3.0.1";
+ };
+ github-pages = {
+ dependencies = ["github-pages-health-check" "jekyll" "jekyll-avatar" "jekyll-coffeescript" "jekyll-commonmark-ghpages" "jekyll-default-layout" "jekyll-feed" "jekyll-gist" "jekyll-github-metadata" "jekyll-mentions" "jekyll-optional-front-matter" "jekyll-paginate" "jekyll-readme-index" "jekyll-redirect-from" "jekyll-relative-links" "jekyll-remote-theme" "jekyll-sass-converter" "jekyll-seo-tag" "jekyll-sitemap" "jekyll-swiss" "jekyll-theme-architect" "jekyll-theme-cayman" "jekyll-theme-dinky" "jekyll-theme-hacker" "jekyll-theme-leap-day" "jekyll-theme-merlot" "jekyll-theme-midnight" "jekyll-theme-minimal" "jekyll-theme-modernist" "jekyll-theme-primer" "jekyll-theme-slate" "jekyll-theme-tactile" "jekyll-theme-time-machine" "jekyll-titles-from-headings" "jemoji" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "minima" "nokogiri" "rouge" "terminal-table"];
+ groups = ["jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08jdjxs0x3x54vy5c98nplpa23c290z0pai3gbx3h3m197wqbsra";
+ type = "gem";
+ };
+ version = "209";
+ };
+ github-pages-health-check = {
+ dependencies = ["addressable" "dnsruby" "octokit" "public_suffix" "typhoeus"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07k88nxkfqa44vklm320p3jfxkvzmn1cfnydajlzdhgc21i70ybh";
+ type = "gem";
+ };
+ version = "1.16.1";
+ };
+ html-pipeline = {
+ dependencies = ["activesupport" "nokogiri"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "080sn9z1a64gv04p318jz10y6lv6qd3avip08rrcmq9k4ihai0f1";
+ type = "gem";
+ };
+ version = "2.14.0";
+ };
+ "http_parser.rb" = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
+ type = "gem";
+ };
+ version = "0.9.5";
+ };
+ jekyll = {
+ dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ci1v1mpad36191vzbm1050dxccwv6ky4yhdyvskmqxa6cf6v21j";
+ type = "gem";
+ };
+ version = "3.9.0";
+ };
+ jekyll-avatar = {
+ dependencies = ["jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03bys2pl60vq92skfhlfqr2j68zhfjc86jffpg32f94wzjk8n0wk";
+ type = "gem";
+ };
+ version = "0.7.0";
+ };
+ jekyll-coffeescript = {
+ dependencies = ["coffee-script" "coffee-script-source"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06qf4j9f6ysjb4bq6gsdaiz2ksmhc5yb484v458ra3s6ybccqvvy";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ jekyll-commonmark = {
+ dependencies = ["commonmarker" "jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15kr36k56l4fh8yp7qswn9m91v7sa5kr2vq9w40li16z4n4akk57";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ jekyll-commonmark-ghpages = {
+ dependencies = ["commonmarker" "jekyll-commonmark" "rouge"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bhpk7iiz2p0hha650zxqq7rlbfj92m9qxxxasarrswszl4pcvp7";
+ type = "gem";
+ };
+ version = "0.1.6";
+ };
+ jekyll-default-layout = {
+ dependencies = ["jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "009zpd0mkmhkfp3s8yvh5mriqhil0ihv3gi2vw63flr3jz48y4kx";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ jekyll-feed = {
+ dependencies = ["jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zxqkrnix0xiw98531h5ga6h69jhzlx2jh9qhvcl67p8nq3sgza9";
+ type = "gem";
+ };
+ version = "0.15.1";
+ };
+ jekyll-gist = {
+ dependencies = ["octokit"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03wz9j6yq3552nzf4g71qrdm9pfdgbm68abml9sjjgiaan1n8ns9";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ jekyll-github-metadata = {
+ dependencies = ["jekyll" "octokit"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r4m7r4qyd3pqkp5xlyp3zzy47i18kjgwq995nrspysgkmc4qmw1";
+ type = "gem";
+ };
+ version = "2.13.0";
+ };
+ jekyll-mentions = {
+ dependencies = ["html-pipeline" "jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1n8y67plydfmay3jn865igvgb3h6s2crk8kq7ydk3wmn9h103s1r";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ jekyll-optional-front-matter = {
+ dependencies = ["jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06vnxcmgkxm5nvrpv89qq0afjlxmadv63nh4ryglcwhlf4fhdp7c";
+ type = "gem";
+ };
+ version = "0.3.2";
+ };
+ jekyll-paginate = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ jekyll-readme-index = {
+ dependencies = ["jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0chybr1zgnrmc7zf6psszcqnlrcy2jar8h77kci51lxj8vgc8k6p";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ jekyll-redirect-from = {
+ dependencies = ["jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nz6kd6qsa160lmjmls4zgx7fwcpp8ac07mpzy80z6zgd7jwldb6";
+ type = "gem";
+ };
+ version = "0.16.0";
+ };
+ jekyll-relative-links = {
+ dependencies = ["jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vfx90ajxyj24lz406k3pqknlbzy8nqs7wpz0in4ps9rggsh24yi";
+ type = "gem";
+ };
+ version = "0.6.1";
+ };
+ jekyll-remote-theme = {
+ dependencies = ["addressable" "jekyll" "jekyll-sass-converter" "rubyzip"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zgvdpy9gv87wkwkh11zf6b26izjjski0d2lzhjbrixdgnqb3l6h";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ jekyll-sass-converter = {
+ dependencies = ["sass"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "008ikh5fk0n6ri54mylcl8jn0mq8p2nfyfqif2q3pp0lwilkcxsk";
+ type = "gem";
+ };
+ version = "1.5.2";
+ };
+ jekyll-seo-tag = {
+ dependencies = ["jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p9fl2r4ni10lbx143zp41caldjs4hg27az5wg42sbwzb7s6z66m";
+ type = "gem";
+ };
+ version = "2.6.1";
+ };
+ jekyll-sitemap = {
+ dependencies = ["jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0622rwsn5i0m5xcyzdn86l68wgydqwji03lqixdfm1f1xdfqrq0d";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ jekyll-swiss = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18w893f2snpbvgl80jnmq3xxsl5yi5a5qm11iy3gx0d8viasi6f2";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ jekyll-theme-architect = {
+ dependencies = ["jekyll" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v4y0lqg1x7b94zw922qp6f3fixni9l4b9d1yavr1nswf8jmpcya";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ jekyll-theme-cayman = {
+ dependencies = ["jekyll" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wdbvmnabzlqpq8hj7k5h9bwv96k05rx8z45f1mkqrbmy0x9gxmf";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ jekyll-theme-dinky = {
+ dependencies = ["jekyll" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dxs6c13fas8wbcigvs8d70p7601g627i3mpchcpapwj8cfd631v";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ jekyll-theme-hacker = {
+ dependencies = ["jekyll" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x0qrypnpxg92wjf8r57xp306057liigz2a6p511m940p5qlc0x6";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
+ jekyll-theme-leap-day = {
+ dependencies = ["jekyll" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pw1qbrq2f8gyzrmwxdlsqhkzpk5cdv594aia7f6wwdxm6sjvhp2";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ jekyll-theme-merlot = {
+ dependencies = ["jekyll" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1iiaqxyfgrrsgrsbvmzfwz8m4jwx73cxvy9zw81ir5pxpbhf0rwl";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ jekyll-theme-midnight = {
+ dependencies = ["jekyll" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jbna13cjfqd3i1m4vp8izznkxn1w1ih54zdyz004g32fwpcqbpp";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ jekyll-theme-minimal = {
+ dependencies = ["jekyll" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "078rlgpc902f5kslxj2zc85y53ywngbx81zhwvz1p0nbil4f4k1s";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ jekyll-theme-modernist = {
+ dependencies = ["jekyll" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0a7gg944c1d730ss0fx9qvxwfabwsyd3xgyfwr18cx22zx9mbbvm";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ jekyll-theme-primer = {
+ dependencies = ["jekyll" "jekyll-github-metadata" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c7p3393mr3znjpvz3plbrws9jdwcz3872v9f027p7hqffhhmh9k";
+ type = "gem";
+ };
+ version = "0.5.4";
+ };
+ jekyll-theme-slate = {
+ dependencies = ["jekyll" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "026p01a5jr42gar6d1kwrr39jd40h91ilvkn8969hydv7yd0ld67";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ jekyll-theme-tactile = {
+ dependencies = ["jekyll" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1904cbjrv7mqkrzhwlip18krr6jk8fkzrxkyq139b20rbkp1qx5y";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ jekyll-theme-time-machine = {
+ dependencies = ["jekyll" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "010gzncy2vav0rdga78x4ls0dda400lxy186knsl72yk8pa807n0";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ jekyll-titles-from-headings = {
+ dependencies = ["jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10c4sa3gwyidmkcs8h6223lmqpw3h09mn7w8hxfppsk1wda6fdkp";
+ type = "gem";
+ };
+ version = "0.5.3";
+ };
+ jekyll-watch = {
+ dependencies = ["listen"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qd7hy1kl87fl7l0frw5qbn22x7ayfzlv9a5ca1m59g0ym1ysi5w";
+ type = "gem";
+ };
+ version = "2.2.1";
+ };
+ jemoji = {
+ dependencies = ["gemoji" "html-pipeline" "jekyll"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09sxbnrqz5vf6rxmh6lzism31gz2g3hw86ymg37r1ccknclv3cp9";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ kramdown = {
+ dependencies = ["rexml"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ kramdown-parser-gfm = {
+ dependencies = ["kramdown"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ liquid = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zhg5ha8zy8zw9qr3fl4wgk4r5940n4128xm2pn4shpbzdbsj5by";
+ type = "gem";
+ };
+ version = "4.0.3";
+ };
+ listen = {
+ dependencies = ["rb-fsevent" "rb-inotify"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0028p1fss6pvw4mlpjqdmxfzsm8ww79irsadbibrr7f23qfn8ykr";
+ type = "gem";
+ };
+ version = "3.3.1";
+ };
+ mercenary = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ mini_portile2 = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ minima = {
+ dependencies = ["jekyll" "jekyll-feed" "jekyll-seo-tag"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gk7jmriiswda1ykjzpsw9cpiya4m9n0yrh0h6xnrc8zcfy543jj";
+ type = "gem";
+ };
+ version = "2.5.1";
+ };
+ minitest = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+ type = "gem";
+ };
+ version = "5.14.2";
+ };
+ multipart-post = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+ type = "gem";
+ };
+ version = "1.10.10";
+ };
+ octokit = {
+ dependencies = ["faraday" "sawyer"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dz8na8fk445yqrwpkl31fimnap7p4xf9m9qm9i7cpvaxxgk2n24";
+ type = "gem";
+ };
+ version = "4.19.0";
+ };
+ pathutil = {
+ dependencies = ["forwardable-extended"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4";
+ type = "gem";
+ };
+ version = "0.16.2";
+ };
+ public_suffix = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g9ds2ffzljl6jjmkjffwxc1z6lh5nkqqmhhkxjk71q5ggv0rkpm";
+ type = "gem";
+ };
+ version = "3.1.1";
+ };
+ rb-fsevent = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87";
+ type = "gem";
+ };
+ version = "0.10.4";
+ };
+ rb-inotify = {
+ dependencies = ["ffi"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
+ type = "gem";
+ };
+ version = "0.10.1";
+ };
+ rexml = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ rouge = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0z4sp0227dljiqcg7cki53qww31f22nl7msvnnqrgpwijgg9y80v";
+ type = "gem";
+ };
+ version = "3.23.0";
+ };
+ ruby-enum = {
+ dependencies = ["i18n"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d3dyx2z41zd6va9dwn3q8caf710vzdaf57xspc0y17aqmnprwnw";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+ ruby2_keywords = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+ type = "gem";
+ };
+ version = "0.0.2";
+ };
+ rubyzip = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ safe_yaml = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ sass = {
+ dependencies = ["sass-listen"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0p95lhs0jza5l7hqci1isflxakz83xkj97lkvxl919is0lwhv2w0";
+ type = "gem";
+ };
+ version = "3.7.4";
+ };
+ sass-listen = {
+ dependencies = ["rb-fsevent" "rb-inotify"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ sawyer = {
+ dependencies = ["addressable" "faraday"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz";
+ type = "gem";
+ };
+ version = "0.8.2";
+ };
+ simpleidn = {
+ dependencies = ["unf"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0b9v0xs4ksd68zckamv6rbrrqllpa9am0p29bycq9fxvlkqd7w2w";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ terminal-table = {
+ dependencies = ["unicode-display_width"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ thread_safe = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ typhoeus = {
+ dependencies = ["ethon"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0skr6ih9cr3pwp8l84f0z7fy3q9kiq8hw0sg3zqw0hpbbyj05743";
+ type = "gem";
+ };
+ version = "1.2.8";
+ };
+ unf = {
+ dependencies = ["unf_ext"];
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ unf_ext = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4";
+ type = "gem";
+ };
+ version = "0.0.7.7";
+ };
+ unicode-display_width = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ zeitwerk = {
+ groups = ["default" "jekyll_plugins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12n0hiawqayzchi0yga5n19hi63b2snd49fv3n23n2i4pp05jzrp";
+ type = "gem";
+ };
+ version = "2.4.1";
+ };
+} \ No newline at end of file
diff --git a/new-post.sh b/new-post.sh
index cb0a1bd..3437b3c 100755
--- a/new-post.sh
+++ b/new-post.sh
@@ -48,7 +48,7 @@ if $(echo "$description" | grep -q '[^.$!?]$'); then
exit 1
fi
-postFileName=_posts/$td-$clean_title.md
+postFileName=src/_posts/$td-$clean_title.md
echo "Creating $postFileName"
postContent=$(cat <<EOF
---
diff --git a/404.html b/src/404.html
index 7ac50a5..7ac50a5 100644
--- a/404.html
+++ b/src/404.html
diff --git a/_config.yml b/src/_config.yml
index ad8bf6d..c8b0980 100644
--- a/_config.yml
+++ b/src/_config.yml
@@ -11,6 +11,12 @@ github_username: mediocregopher
rss: rss
highlighter: rouge
+defaults:
+ - scope:
+ path: "_posts"
+ values:
+ layout: "post"
+
plugins:
- jekyll-feed
- jekyll-seo-tag
diff --git a/_includes/footer.html b/src/_includes/footer.html
index f66a879..f66a879 100644
--- a/_includes/footer.html
+++ b/src/_includes/footer.html
diff --git a/_includes/google-analytics.html b/src/_includes/google-analytics.html
index e9afb20..e9afb20 100644
--- a/_includes/google-analytics.html
+++ b/src/_includes/google-analytics.html
diff --git a/_includes/head.html b/src/_includes/head.html
index 9ea6d45..9ea6d45 100644
--- a/_includes/head.html
+++ b/src/_includes/head.html
diff --git a/_includes/header.html b/src/_includes/header.html
index 888a8dc..888a8dc 100644
--- a/_includes/header.html
+++ b/src/_includes/header.html
diff --git a/_includes/image.html b/src/_includes/image.html
index 8875050..8875050 100644
--- a/_includes/image.html
+++ b/src/_includes/image.html
diff --git a/_layouts/code.html b/src/_layouts/code.html
index 18cfb3b..18cfb3b 100644
--- a/_layouts/code.html
+++ b/src/_layouts/code.html
diff --git a/_layouts/default.html b/src/_layouts/default.html
index 5df9d6d..5df9d6d 100644
--- a/_layouts/default.html
+++ b/src/_layouts/default.html
diff --git a/_layouts/page.html b/src/_layouts/page.html
index 469413a..469413a 100644
--- a/_layouts/page.html
+++ b/src/_layouts/page.html
diff --git a/_layouts/post.html b/src/_layouts/post.html
index 6b97042..6b97042 100644
--- a/_layouts/post.html
+++ b/src/_layouts/post.html
diff --git a/_posts/2013-04-09-erlang-tcp-socket-pull-pattern.md b/src/_posts/2013-04-09-erlang-tcp-socket-pull-pattern.md
index 3e5f0af..3e5f0af 100644
--- a/_posts/2013-04-09-erlang-tcp-socket-pull-pattern.md
+++ b/src/_posts/2013-04-09-erlang-tcp-socket-pull-pattern.md
diff --git a/_posts/2013-07-11-goplus.md b/src/_posts/2013-07-11-goplus.md
index 5ee121e..5ee121e 100644
--- a/_posts/2013-07-11-goplus.md
+++ b/src/_posts/2013-07-11-goplus.md
diff --git a/_posts/2013-10-08-generations.md b/src/_posts/2013-10-08-generations.md
index c1c433d..c1c433d 100644
--- a/_posts/2013-10-08-generations.md
+++ b/src/_posts/2013-10-08-generations.md
diff --git a/_posts/2013-10-25-namecoind-ssl.md b/src/_posts/2013-10-25-namecoind-ssl.md
index 2711a92..2711a92 100644
--- a/_posts/2013-10-25-namecoind-ssl.md
+++ b/src/_posts/2013-10-25-namecoind-ssl.md
diff --git a/_posts/2014-01-11-diamond-square.md b/src/_posts/2014-01-11-diamond-square.md
index 665e07c..665e07c 100644
--- a/_posts/2014-01-11-diamond-square.md
+++ b/src/_posts/2014-01-11-diamond-square.md
diff --git a/_posts/2014-10-29-erlang-pitfalls.md b/src/_posts/2014-10-29-erlang-pitfalls.md
index 32a8095..32a8095 100644
--- a/_posts/2014-10-29-erlang-pitfalls.md
+++ b/src/_posts/2014-10-29-erlang-pitfalls.md
diff --git a/_posts/2015-03-11-rabbit-hole.md b/src/_posts/2015-03-11-rabbit-hole.md
index 97c2b80..97c2b80 100644
--- a/_posts/2015-03-11-rabbit-hole.md
+++ b/src/_posts/2015-03-11-rabbit-hole.md
diff --git a/_posts/2015-07-15-go-http.md b/src/_posts/2015-07-15-go-http.md
index 7da7d6b..7da7d6b 100644
--- a/_posts/2015-07-15-go-http.md
+++ b/src/_posts/2015-07-15-go-http.md
diff --git a/_posts/2015-11-21-happy-trees.md b/src/_posts/2015-11-21-happy-trees.md
index 8d36a91..8d36a91 100644
--- a/_posts/2015-11-21-happy-trees.md
+++ b/src/_posts/2015-11-21-happy-trees.md
diff --git a/_posts/2017-09-06-brian-bars.md b/src/_posts/2017-09-06-brian-bars.md
index 2c56272..2c56272 100644
--- a/_posts/2017-09-06-brian-bars.md
+++ b/src/_posts/2017-09-06-brian-bars.md
diff --git a/_posts/2018-10-25-rethinking-identity.md b/src/_posts/2018-10-25-rethinking-identity.md
index d3520d7..d3520d7 100644
--- a/_posts/2018-10-25-rethinking-identity.md
+++ b/src/_posts/2018-10-25-rethinking-identity.md
diff --git a/_posts/2018-11-12-viz-1.md b/src/_posts/2018-11-12-viz-1.md
index 8fd9fd9..8fd9fd9 100644
--- a/_posts/2018-11-12-viz-1.md
+++ b/src/_posts/2018-11-12-viz-1.md
diff --git a/_posts/2018-11-12-viz-2.md b/src/_posts/2018-11-12-viz-2.md
index c3e342e..c3e342e 100644
--- a/_posts/2018-11-12-viz-2.md
+++ b/src/_posts/2018-11-12-viz-2.md
diff --git a/_posts/2019-08-02-program-structure-and-composability.md b/src/_posts/2019-08-02-program-structure-and-composability.md
index b44c534..b44c534 100644
--- a/_posts/2019-08-02-program-structure-and-composability.md
+++ b/src/_posts/2019-08-02-program-structure-and-composability.md
diff --git a/_posts/2020-04-26-trading-in-the-rain.md b/src/_posts/2020-04-26-trading-in-the-rain.md
index 3a31a95..3a31a95 100644
--- a/_posts/2020-04-26-trading-in-the-rain.md
+++ b/src/_posts/2020-04-26-trading-in-the-rain.md
diff --git a/_posts/2020-05-30-denver-protests.md b/src/_posts/2020-05-30-denver-protests.md
index 710987f..710987f 100644
--- a/_posts/2020-05-30-denver-protests.md
+++ b/src/_posts/2020-05-30-denver-protests.md
diff --git a/_posts/2020-07-07-viz-3.md b/src/_posts/2020-07-07-viz-3.md
index f56dbb6..f56dbb6 100644
--- a/_posts/2020-07-07-viz-3.md
+++ b/src/_posts/2020-07-07-viz-3.md
diff --git a/_posts/2020-11-16-component-oriented-programming.md b/src/_posts/2020-11-16-component-oriented-programming.md
index 3400090..3400090 100644
--- a/_posts/2020-11-16-component-oriented-programming.md
+++ b/src/_posts/2020-11-16-component-oriented-programming.md
diff --git a/_posts/2021-01-01-new-year-new-resolution.md b/src/_posts/2021-01-01-new-year-new-resolution.md
index 8e9edc7..8e9edc7 100644
--- a/_posts/2021-01-01-new-year-new-resolution.md
+++ b/src/_posts/2021-01-01-new-year-new-resolution.md
diff --git a/_posts/2021-01-09-ginger.md b/src/_posts/2021-01-09-ginger.md
index 3a97d7f..3a97d7f 100644
--- a/_posts/2021-01-09-ginger.md
+++ b/src/_posts/2021-01-09-ginger.md
diff --git a/_posts/2021-01-14-the-web.md b/src/_posts/2021-01-14-the-web.md
index 4d47a57..4d47a57 100644
--- a/_posts/2021-01-14-the-web.md
+++ b/src/_posts/2021-01-14-the-web.md
diff --git a/assets/component-oriented-design/v1/main.go b/src/assets/component-oriented-design/v1/main.go
index 490a516..490a516 100644
--- a/assets/component-oriented-design/v1/main.go
+++ b/src/assets/component-oriented-design/v1/main.go
diff --git a/assets/component-oriented-design/v1/main.md b/src/assets/component-oriented-design/v1/main.md
index 37346c6..37346c6 100644
--- a/assets/component-oriented-design/v1/main.md
+++ b/src/assets/component-oriented-design/v1/main.md
diff --git a/assets/component-oriented-design/v1/main_test.go b/src/assets/component-oriented-design/v1/main_test.go
index 6cfd9fb..6cfd9fb 100644
--- a/assets/component-oriented-design/v1/main_test.go
+++ b/src/assets/component-oriented-design/v1/main_test.go
diff --git a/assets/component-oriented-design/v1/main_test.md b/src/assets/component-oriented-design/v1/main_test.md
index b0a0751..b0a0751 100644
--- a/assets/component-oriented-design/v1/main_test.md
+++ b/src/assets/component-oriented-design/v1/main_test.md
diff --git a/assets/component-oriented-design/v2/main.go b/src/assets/component-oriented-design/v2/main.go
index fb5773c..fb5773c 100644
--- a/assets/component-oriented-design/v2/main.go
+++ b/src/assets/component-oriented-design/v2/main.go
diff --git a/assets/component-oriented-design/v2/main.md b/src/assets/component-oriented-design/v2/main.md
index 37346c6..37346c6 100644
--- a/assets/component-oriented-design/v2/main.md
+++ b/src/assets/component-oriented-design/v2/main.md
diff --git a/assets/component-oriented-design/v3/main.go b/src/assets/component-oriented-design/v3/main.go
index afe8bab..afe8bab 100644
--- a/assets/component-oriented-design/v3/main.go
+++ b/src/assets/component-oriented-design/v3/main.go
diff --git a/assets/component-oriented-design/v3/main.md b/src/assets/component-oriented-design/v3/main.md
index 37346c6..37346c6 100644
--- a/assets/component-oriented-design/v3/main.md
+++ b/src/assets/component-oriented-design/v3/main.md
diff --git a/assets/friendly.css b/src/assets/friendly.css
index f7907dd..f7907dd 100644
--- a/assets/friendly.css
+++ b/src/assets/friendly.css
diff --git a/assets/main.css b/src/assets/main.css
index ef9b9d4..ef9b9d4 100644
--- a/assets/main.css
+++ b/src/assets/main.css
diff --git a/assets/main.js b/src/assets/main.js
index 7557f2b..7557f2b 100644
--- a/assets/main.js
+++ b/src/assets/main.js
diff --git a/assets/normalize.css b/src/assets/normalize.css
index 81c6f31..81c6f31 100644
--- a/assets/normalize.css
+++ b/src/assets/normalize.css
diff --git a/assets/qrcode.min.js b/src/assets/qrcode.min.js
index 993e88f..993e88f 100644
--- a/assets/qrcode.min.js
+++ b/src/assets/qrcode.min.js
diff --git a/assets/skeleton.css b/src/assets/skeleton.css
index 6086e0e..6086e0e 100644
--- a/assets/skeleton.css
+++ b/src/assets/skeleton.css
diff --git a/assets/trading-in-the-rain/CW.js b/src/assets/trading-in-the-rain/CW.js
index 043c1a8..043c1a8 100644
--- a/assets/trading-in-the-rain/CW.js
+++ b/src/assets/trading-in-the-rain/CW.js
diff --git a/assets/trading-in-the-rain/Distributor.js b/src/assets/trading-in-the-rain/Distributor.js
index fa6e9f2..fa6e9f2 100644
--- a/assets/trading-in-the-rain/Distributor.js
+++ b/src/assets/trading-in-the-rain/Distributor.js
diff --git a/assets/trading-in-the-rain/MIDI.js/LICENSE.txt b/src/assets/trading-in-the-rain/MIDI.js/LICENSE.txt
index 0dca6fb..0dca6fb 100644
--- a/assets/trading-in-the-rain/MIDI.js/LICENSE.txt
+++ b/src/assets/trading-in-the-rain/MIDI.js/LICENSE.txt
diff --git a/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js b/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js
index b5a59ce..b5a59ce 100644
--- a/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js
diff --git a/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js b/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js
index 2c59f8f..2c59f8f 100644
--- a/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js
diff --git a/assets/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js b/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js
index 17e9eb9..17e9eb9 100644
--- a/assets/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js
diff --git a/assets/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js b/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js
index 000a916..000a916 100644
--- a/assets/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js
diff --git a/assets/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js b/src/assets/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js
index 957605d..957605d 100644
--- a/assets/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js
diff --git a/assets/trading-in-the-rain/MIDI.js/js/midi/gm.js b/src/assets/trading-in-the-rain/MIDI.js/js/midi/gm.js
index 2e1278c..2e1278c 100644
--- a/assets/trading-in-the-rain/MIDI.js/js/midi/gm.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/js/midi/gm.js
diff --git a/assets/trading-in-the-rain/MIDI.js/js/midi/loader.js b/src/assets/trading-in-the-rain/MIDI.js/js/midi/loader.js
index 02136f6..02136f6 100644
--- a/assets/trading-in-the-rain/MIDI.js/js/midi/loader.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/js/midi/loader.js
diff --git a/assets/trading-in-the-rain/MIDI.js/js/midi/player.js b/src/assets/trading-in-the-rain/MIDI.js/js/midi/player.js
index 08f298f..08f298f 100644
--- a/assets/trading-in-the-rain/MIDI.js/js/midi/player.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/js/midi/player.js
diff --git a/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js b/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js
index ec361c6..ec361c6 100644
--- a/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js
diff --git a/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js b/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js
index 15a6f0a..15a6f0a 100644
--- a/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js
diff --git a/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js b/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js
index 33e244b..33e244b 100644
--- a/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js
diff --git a/assets/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js b/src/assets/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js
index 709cb91..709cb91 100644
--- a/assets/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js
diff --git a/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js b/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js
index 8f1ea5a..8f1ea5a 100644
--- a/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js
diff --git a/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js b/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js
index 84c208e..84c208e 100644
--- a/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js
+++ b/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js
diff --git a/assets/trading-in-the-rain/MusicBox.js b/src/assets/trading-in-the-rain/MusicBox.js
index a30074c..a30074c 100644
--- a/assets/trading-in-the-rain/MusicBox.js
+++ b/src/assets/trading-in-the-rain/MusicBox.js
diff --git a/assets/trading-in-the-rain/RainCanvas.js b/src/assets/trading-in-the-rain/RainCanvas.js
index 5396eb5..5396eb5 100644
--- a/assets/trading-in-the-rain/RainCanvas.js
+++ b/src/assets/trading-in-the-rain/RainCanvas.js
diff --git a/assets/trading-in-the-rain/SeriesComposer.js b/src/assets/trading-in-the-rain/SeriesComposer.js
index 134c64c..134c64c 100644
--- a/assets/trading-in-the-rain/SeriesComposer.js
+++ b/src/assets/trading-in-the-rain/SeriesComposer.js
diff --git a/assets/trading-in-the-rain/key.gpg b/src/assets/trading-in-the-rain/key.gpg
index 9b47955..9b47955 100644
--- a/assets/trading-in-the-rain/key.gpg
+++ b/src/assets/trading-in-the-rain/key.gpg
Binary files differ
diff --git a/assets/trading-in-the-rain/main.js b/src/assets/trading-in-the-rain/main.js
index 09bd26e..09bd26e 100644
--- a/assets/trading-in-the-rain/main.js
+++ b/src/assets/trading-in-the-rain/main.js
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js
index 0253034..0253034 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3
index 57d13b4..57d13b4 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3
index 9c7b075..9c7b075 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3
index cba35c5..cba35c5 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3
index b81c0f6..b81c0f6 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3
index 533a210..533a210 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3
index d913e15..d913e15 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3
index 450df60..450df60 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3
index ec7c636..ec7c636 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3
index 765f641..765f641 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3
index f8809b3..f8809b3 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3
index 6896fa7..6896fa7 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3
index 076bdbf..076bdbf 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3
index 3e99164..3e99164 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3
index 2dbf7e6..2dbf7e6 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3
index 4f7f560..4f7f560 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3
index fc49c93..fc49c93 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3
index 4f5d506..4f5d506 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3
index 22c5eee..22c5eee 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3
index 81b7a71..81b7a71 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3
index 54a2797..54a2797 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3
index 11d7aeb..11d7aeb 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3
index b2208eb..b2208eb 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3
index ee21002..ee21002 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3
index 91f355e..91f355e 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3
index 259fbab..259fbab 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3
index 89d70cc..89d70cc 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3
index a20a19c..a20a19c 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3
index 943963d..943963d 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3
index 1b34185..1b34185 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3
index 8c28d4c..8c28d4c 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3
index 3dbdac3..3dbdac3 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3
index f801ec7..f801ec7 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3
index 0cbedf0..0cbedf0 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3
index a63cfea..a63cfea 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3
index abca8ba..abca8ba 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3
index 1e979ff..1e979ff 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3
index 146597e..146597e 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3
index 7acee1b..7acee1b 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3
index 7fc79fc..7fc79fc 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3
index 1096963..1096963 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3
index b678877..b678877 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3
index 8dce81f..8dce81f 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3
index 868c551..868c551 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3
index 8c66803..8c66803 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3
index 12d982e..12d982e 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3
index 18d34ff..18d34ff 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3
index fd0b75a..fd0b75a 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3
index 8bf091e..8bf091e 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3
index bd4f80a..bd4f80a 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3
index 005c803..005c803 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3
index 7d416ec..7d416ec 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3
index 626105f..626105f 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3
index 70aa5a9..70aa5a9 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3
index ecc363c..ecc363c 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3
index bce6b63..bce6b63 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3
index fc989d7..fc989d7 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3
index e49bdcc..e49bdcc 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3
index 46c5c40..46c5c40 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3
index 89ba7b6..89ba7b6 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3
index c86e64d..c86e64d 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3
index a269dc1..a269dc1 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3
index 133d374..133d374 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3
index dbd05cf..dbd05cf 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3
index aa4f170..aa4f170 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3
index 59a59e2..59a59e2 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3
index 927e76b..927e76b 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3
index e7325fa..e7325fa 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3
index fc5e5cb..fc5e5cb 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3
index 0b21372..0b21372 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3
index 0e698dc..0e698dc 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3
index e743ac1..e743ac1 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3
index 276f102..276f102 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3
index 1757a9f..1757a9f 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3
index 132db28..132db28 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3
index 8cd5b77..8cd5b77 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3
index a6f73d3..a6f73d3 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3
index 9818949..9818949 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3
index 8e33486..8e33486 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3
index de3d723..de3d723 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3
index ed12e97..ed12e97 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3
index 9a3bf86..9a3bf86 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3
index 2e68e66..2e68e66 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3
index fde4305..fde4305 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3
index a1c1a53..a1c1a53 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3
index f4ddd10..f4ddd10 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3
index aa38dc9..aa38dc9 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3
index e8dec6e..e8dec6e 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3
index 5f2c0f2..5f2c0f2 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3
index bc417c3..bc417c3 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3
Binary files differ
diff --git a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js
index 52f1027..52f1027 100644
--- a/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js
+++ b/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js
diff --git a/assets/viz/1/cljs/core.cljs b/src/assets/viz/1/cljs/core.cljs
index a87e53b..a87e53b 100644
--- a/assets/viz/1/cljs/core.cljs
+++ b/src/assets/viz/1/cljs/core.cljs
diff --git a/assets/viz/1/cljs/core.js b/src/assets/viz/1/cljs/core.js
index 6ec0a68..6ec0a68 100644
--- a/assets/viz/1/cljs/core.js
+++ b/src/assets/viz/1/cljs/core.js
diff --git a/assets/viz/1/cljs/core.js.map b/src/assets/viz/1/cljs/core.js.map
index 89c76ee..89c76ee 100644
--- a/assets/viz/1/cljs/core.js.map
+++ b/src/assets/viz/1/cljs/core.js.map
diff --git a/assets/viz/1/cljs_deps.js b/src/assets/viz/1/cljs_deps.js
index a6fad71..a6fad71 100644
--- a/assets/viz/1/cljs_deps.js
+++ b/src/assets/viz/1/cljs_deps.js
diff --git a/assets/viz/1/clojure/set.cljs b/src/assets/viz/1/clojure/set.cljs
index b9ba41f..b9ba41f 100644
--- a/assets/viz/1/clojure/set.cljs
+++ b/src/assets/viz/1/clojure/set.cljs
diff --git a/assets/viz/1/clojure/set.cljs.cache.edn b/src/assets/viz/1/clojure/set.cljs.cache.edn
index 2341e7d..2341e7d 100644
--- a/assets/viz/1/clojure/set.cljs.cache.edn
+++ b/src/assets/viz/1/clojure/set.cljs.cache.edn
diff --git a/assets/viz/1/clojure/set.js b/src/assets/viz/1/clojure/set.js
index 920701d..920701d 100644
--- a/assets/viz/1/clojure/set.js
+++ b/src/assets/viz/1/clojure/set.js
diff --git a/assets/viz/1/clojure/set.js.map b/src/assets/viz/1/clojure/set.js.map
index a42360e..a42360e 100644
--- a/assets/viz/1/clojure/set.js.map
+++ b/src/assets/viz/1/clojure/set.js.map
diff --git a/assets/viz/1/clojure/string.cljs b/src/assets/viz/1/clojure/string.cljs
index 4cf5ede..4cf5ede 100644
--- a/assets/viz/1/clojure/string.cljs
+++ b/src/assets/viz/1/clojure/string.cljs
diff --git a/assets/viz/1/clojure/string.cljs.cache.edn b/src/assets/viz/1/clojure/string.cljs.cache.edn
index e4ac146..e4ac146 100644
--- a/assets/viz/1/clojure/string.cljs.cache.edn
+++ b/src/assets/viz/1/clojure/string.cljs.cache.edn
diff --git a/assets/viz/1/clojure/string.js b/src/assets/viz/1/clojure/string.js
index a5f3d99..a5f3d99 100644
--- a/assets/viz/1/clojure/string.js
+++ b/src/assets/viz/1/clojure/string.js
diff --git a/assets/viz/1/clojure/string.js.map b/src/assets/viz/1/clojure/string.js.map
index 41f4864..41f4864 100644
--- a/assets/viz/1/clojure/string.js.map
+++ b/src/assets/viz/1/clojure/string.js.map
diff --git a/assets/viz/1/goog/array/array.js b/src/assets/viz/1/goog/array/array.js
index 4fdfcaf..4fdfcaf 100644
--- a/assets/viz/1/goog/array/array.js
+++ b/src/assets/viz/1/goog/array/array.js
diff --git a/assets/viz/1/goog/asserts/asserts.js b/src/assets/viz/1/goog/asserts/asserts.js
index 1f4b653..1f4b653 100644
--- a/assets/viz/1/goog/asserts/asserts.js
+++ b/src/assets/viz/1/goog/asserts/asserts.js
diff --git a/assets/viz/1/goog/base.js b/src/assets/viz/1/goog/base.js
index 97a9947..97a9947 100644
--- a/assets/viz/1/goog/base.js
+++ b/src/assets/viz/1/goog/base.js
diff --git a/assets/viz/1/goog/debug/entrypointregistry.js b/src/assets/viz/1/goog/debug/entrypointregistry.js
index 336e146..336e146 100644
--- a/assets/viz/1/goog/debug/entrypointregistry.js
+++ b/src/assets/viz/1/goog/debug/entrypointregistry.js
diff --git a/assets/viz/1/goog/debug/error.js b/src/assets/viz/1/goog/debug/error.js
index 5f1bd3e..5f1bd3e 100644
--- a/assets/viz/1/goog/debug/error.js
+++ b/src/assets/viz/1/goog/debug/error.js
diff --git a/assets/viz/1/goog/deps.js b/src/assets/viz/1/goog/deps.js
index 80936e8..80936e8 100644
--- a/assets/viz/1/goog/deps.js
+++ b/src/assets/viz/1/goog/deps.js
diff --git a/assets/viz/1/goog/disposable/disposable.js b/src/assets/viz/1/goog/disposable/disposable.js
index ca8d088..ca8d088 100644
--- a/assets/viz/1/goog/disposable/disposable.js
+++ b/src/assets/viz/1/goog/disposable/disposable.js
diff --git a/assets/viz/1/goog/disposable/idisposable.js b/src/assets/viz/1/goog/disposable/idisposable.js
index 917d17e..917d17e 100644
--- a/assets/viz/1/goog/disposable/idisposable.js
+++ b/src/assets/viz/1/goog/disposable/idisposable.js
diff --git a/assets/viz/1/goog/dom/browserfeature.js b/src/assets/viz/1/goog/dom/browserfeature.js
index 1172166..1172166 100644
--- a/assets/viz/1/goog/dom/browserfeature.js
+++ b/src/assets/viz/1/goog/dom/browserfeature.js
diff --git a/assets/viz/1/goog/dom/dom.js b/src/assets/viz/1/goog/dom/dom.js
index 4d3cdf9..4d3cdf9 100644
--- a/assets/viz/1/goog/dom/dom.js
+++ b/src/assets/viz/1/goog/dom/dom.js
diff --git a/assets/viz/1/goog/dom/nodetype.js b/src/assets/viz/1/goog/dom/nodetype.js
index cccb470..cccb470 100644
--- a/assets/viz/1/goog/dom/nodetype.js
+++ b/src/assets/viz/1/goog/dom/nodetype.js
diff --git a/assets/viz/1/goog/dom/safe.js b/src/assets/viz/1/goog/dom/safe.js
index 012ad22..012ad22 100644
--- a/assets/viz/1/goog/dom/safe.js
+++ b/src/assets/viz/1/goog/dom/safe.js
diff --git a/assets/viz/1/goog/dom/tagname.js b/src/assets/viz/1/goog/dom/tagname.js
index ad44d85..ad44d85 100644
--- a/assets/viz/1/goog/dom/tagname.js
+++ b/src/assets/viz/1/goog/dom/tagname.js
diff --git a/assets/viz/1/goog/dom/tags.js b/src/assets/viz/1/goog/dom/tags.js
index 7c12938..7c12938 100644
--- a/assets/viz/1/goog/dom/tags.js
+++ b/src/assets/viz/1/goog/dom/tags.js
diff --git a/assets/viz/1/goog/events/browserevent.js b/src/assets/viz/1/goog/events/browserevent.js
index 14894e1..14894e1 100644
--- a/assets/viz/1/goog/events/browserevent.js
+++ b/src/assets/viz/1/goog/events/browserevent.js
diff --git a/assets/viz/1/goog/events/browserfeature.js b/src/assets/viz/1/goog/events/browserfeature.js
index 4cfa8e3..4cfa8e3 100644
--- a/assets/viz/1/goog/events/browserfeature.js
+++ b/src/assets/viz/1/goog/events/browserfeature.js
diff --git a/assets/viz/1/goog/events/event.js b/src/assets/viz/1/goog/events/event.js
index 89db91e..89db91e 100644
--- a/assets/viz/1/goog/events/event.js
+++ b/src/assets/viz/1/goog/events/event.js
diff --git a/assets/viz/1/goog/events/eventid.js b/src/assets/viz/1/goog/events/eventid.js
index 9ff9e40..9ff9e40 100644
--- a/assets/viz/1/goog/events/eventid.js
+++ b/src/assets/viz/1/goog/events/eventid.js
diff --git a/assets/viz/1/goog/events/events.js b/src/assets/viz/1/goog/events/events.js
index 6a0acf7..6a0acf7 100644
--- a/assets/viz/1/goog/events/events.js
+++ b/src/assets/viz/1/goog/events/events.js
diff --git a/assets/viz/1/goog/events/eventtype.js b/src/assets/viz/1/goog/events/eventtype.js
index 161e88a..161e88a 100644
--- a/assets/viz/1/goog/events/eventtype.js
+++ b/src/assets/viz/1/goog/events/eventtype.js
diff --git a/assets/viz/1/goog/events/listenable.js b/src/assets/viz/1/goog/events/listenable.js
index 648d9fc..648d9fc 100644
--- a/assets/viz/1/goog/events/listenable.js
+++ b/src/assets/viz/1/goog/events/listenable.js
diff --git a/assets/viz/1/goog/events/listener.js b/src/assets/viz/1/goog/events/listener.js
index 60c7370..60c7370 100644
--- a/assets/viz/1/goog/events/listener.js
+++ b/src/assets/viz/1/goog/events/listener.js
diff --git a/assets/viz/1/goog/events/listenermap.js b/src/assets/viz/1/goog/events/listenermap.js
index 40cb848..40cb848 100644
--- a/assets/viz/1/goog/events/listenermap.js
+++ b/src/assets/viz/1/goog/events/listenermap.js
diff --git a/assets/viz/1/goog/fs/url.js b/src/assets/viz/1/goog/fs/url.js
index 90d8349..90d8349 100644
--- a/assets/viz/1/goog/fs/url.js
+++ b/src/assets/viz/1/goog/fs/url.js
diff --git a/assets/viz/1/goog/html/safehtml.js b/src/assets/viz/1/goog/html/safehtml.js
index 704d826..704d826 100644
--- a/assets/viz/1/goog/html/safehtml.js
+++ b/src/assets/viz/1/goog/html/safehtml.js
diff --git a/assets/viz/1/goog/html/safescript.js b/src/assets/viz/1/goog/html/safescript.js
index 26f58f6..26f58f6 100644
--- a/assets/viz/1/goog/html/safescript.js
+++ b/src/assets/viz/1/goog/html/safescript.js
diff --git a/assets/viz/1/goog/html/safestyle.js b/src/assets/viz/1/goog/html/safestyle.js
index a1f87cb..a1f87cb 100644
--- a/assets/viz/1/goog/html/safestyle.js
+++ b/src/assets/viz/1/goog/html/safestyle.js
diff --git a/assets/viz/1/goog/html/safestylesheet.js b/src/assets/viz/1/goog/html/safestylesheet.js
index 65a81b0..65a81b0 100644
--- a/assets/viz/1/goog/html/safestylesheet.js
+++ b/src/assets/viz/1/goog/html/safestylesheet.js
diff --git a/assets/viz/1/goog/html/safeurl.js b/src/assets/viz/1/goog/html/safeurl.js
index 640a070..640a070 100644
--- a/assets/viz/1/goog/html/safeurl.js
+++ b/src/assets/viz/1/goog/html/safeurl.js
diff --git a/assets/viz/1/goog/html/trustedresourceurl.js b/src/assets/viz/1/goog/html/trustedresourceurl.js
index 6e3c0df..6e3c0df 100644
--- a/assets/viz/1/goog/html/trustedresourceurl.js
+++ b/src/assets/viz/1/goog/html/trustedresourceurl.js
diff --git a/assets/viz/1/goog/html/uncheckedconversions.js b/src/assets/viz/1/goog/html/uncheckedconversions.js
index 2cef322..2cef322 100644
--- a/assets/viz/1/goog/html/uncheckedconversions.js
+++ b/src/assets/viz/1/goog/html/uncheckedconversions.js
diff --git a/assets/viz/1/goog/i18n/bidi.js b/src/assets/viz/1/goog/i18n/bidi.js
index 695cfda..695cfda 100644
--- a/assets/viz/1/goog/i18n/bidi.js
+++ b/src/assets/viz/1/goog/i18n/bidi.js
diff --git a/assets/viz/1/goog/labs/useragent/browser.js b/src/assets/viz/1/goog/labs/useragent/browser.js
index a7dd638..a7dd638 100644
--- a/assets/viz/1/goog/labs/useragent/browser.js
+++ b/src/assets/viz/1/goog/labs/useragent/browser.js
diff --git a/assets/viz/1/goog/labs/useragent/engine.js b/src/assets/viz/1/goog/labs/useragent/engine.js
index 31c5667..31c5667 100644
--- a/assets/viz/1/goog/labs/useragent/engine.js
+++ b/src/assets/viz/1/goog/labs/useragent/engine.js
diff --git a/assets/viz/1/goog/labs/useragent/platform.js b/src/assets/viz/1/goog/labs/useragent/platform.js
index 9c72402..9c72402 100644
--- a/assets/viz/1/goog/labs/useragent/platform.js
+++ b/src/assets/viz/1/goog/labs/useragent/platform.js
diff --git a/assets/viz/1/goog/labs/useragent/util.js b/src/assets/viz/1/goog/labs/useragent/util.js
index caa3407..caa3407 100644
--- a/assets/viz/1/goog/labs/useragent/util.js
+++ b/src/assets/viz/1/goog/labs/useragent/util.js
diff --git a/assets/viz/1/goog/math/coordinate.js b/src/assets/viz/1/goog/math/coordinate.js
index a08b9cb..a08b9cb 100644
--- a/assets/viz/1/goog/math/coordinate.js
+++ b/src/assets/viz/1/goog/math/coordinate.js
diff --git a/assets/viz/1/goog/math/integer.js b/src/assets/viz/1/goog/math/integer.js
index 11b6a95..11b6a95 100644
--- a/assets/viz/1/goog/math/integer.js
+++ b/src/assets/viz/1/goog/math/integer.js
diff --git a/assets/viz/1/goog/math/long.js b/src/assets/viz/1/goog/math/long.js
index a43ea3f..a43ea3f 100644
--- a/assets/viz/1/goog/math/long.js
+++ b/src/assets/viz/1/goog/math/long.js
diff --git a/assets/viz/1/goog/math/math.js b/src/assets/viz/1/goog/math/math.js
index 95e5fb5..95e5fb5 100644
--- a/assets/viz/1/goog/math/math.js
+++ b/src/assets/viz/1/goog/math/math.js
diff --git a/assets/viz/1/goog/math/size.js b/src/assets/viz/1/goog/math/size.js
index f5c379b..f5c379b 100644
--- a/assets/viz/1/goog/math/size.js
+++ b/src/assets/viz/1/goog/math/size.js
diff --git a/assets/viz/1/goog/object/object.js b/src/assets/viz/1/goog/object/object.js
index d15c88c..d15c88c 100644
--- a/assets/viz/1/goog/object/object.js
+++ b/src/assets/viz/1/goog/object/object.js
diff --git a/assets/viz/1/goog/reflect/reflect.js b/src/assets/viz/1/goog/reflect/reflect.js
index 5a88b45..5a88b45 100644
--- a/assets/viz/1/goog/reflect/reflect.js
+++ b/src/assets/viz/1/goog/reflect/reflect.js
diff --git a/assets/viz/1/goog/string/const.js b/src/assets/viz/1/goog/string/const.js
index 7f919be..7f919be 100644
--- a/assets/viz/1/goog/string/const.js
+++ b/src/assets/viz/1/goog/string/const.js
diff --git a/assets/viz/1/goog/string/string.js b/src/assets/viz/1/goog/string/string.js
index a2f7003..a2f7003 100644
--- a/assets/viz/1/goog/string/string.js
+++ b/src/assets/viz/1/goog/string/string.js
diff --git a/assets/viz/1/goog/string/stringbuffer.js b/src/assets/viz/1/goog/string/stringbuffer.js
index 478b08b..478b08b 100644
--- a/assets/viz/1/goog/string/stringbuffer.js
+++ b/src/assets/viz/1/goog/string/stringbuffer.js
diff --git a/assets/viz/1/goog/string/stringformat.js b/src/assets/viz/1/goog/string/stringformat.js
index 58d7af9..58d7af9 100644
--- a/assets/viz/1/goog/string/stringformat.js
+++ b/src/assets/viz/1/goog/string/stringformat.js
diff --git a/assets/viz/1/goog/string/typedstring.js b/src/assets/viz/1/goog/string/typedstring.js
index 075115f..075115f 100644
--- a/assets/viz/1/goog/string/typedstring.js
+++ b/src/assets/viz/1/goog/string/typedstring.js
diff --git a/assets/viz/1/goog/useragent/useragent.js b/src/assets/viz/1/goog/useragent/useragent.js
index 1ab49c4..1ab49c4 100644
--- a/assets/viz/1/goog/useragent/useragent.js
+++ b/src/assets/viz/1/goog/useragent/useragent.js
diff --git a/assets/viz/1/processing.js b/src/assets/viz/1/processing.js
index 7cfb7a8..7cfb7a8 100644
--- a/assets/viz/1/processing.js
+++ b/src/assets/viz/1/processing.js
diff --git a/assets/viz/1/quil/core.cljc b/src/assets/viz/1/quil/core.cljc
index dcdaa94..dcdaa94 100644
--- a/assets/viz/1/quil/core.cljc
+++ b/src/assets/viz/1/quil/core.cljc
diff --git a/assets/viz/1/quil/core.cljc.cache.edn b/src/assets/viz/1/quil/core.cljc.cache.edn
index 8904416..8904416 100644
--- a/assets/viz/1/quil/core.cljc.cache.edn
+++ b/src/assets/viz/1/quil/core.cljc.cache.edn
diff --git a/assets/viz/1/quil/core.js b/src/assets/viz/1/quil/core.js
index 87f3457..87f3457 100644
--- a/assets/viz/1/quil/core.js
+++ b/src/assets/viz/1/quil/core.js
diff --git a/assets/viz/1/quil/core.js.map b/src/assets/viz/1/quil/core.js.map
index 42db417..42db417 100644
--- a/assets/viz/1/quil/core.js.map
+++ b/src/assets/viz/1/quil/core.js.map
diff --git a/assets/viz/1/quil/middleware.cljc b/src/assets/viz/1/quil/middleware.cljc
index a8f5672..a8f5672 100644
--- a/assets/viz/1/quil/middleware.cljc
+++ b/src/assets/viz/1/quil/middleware.cljc
diff --git a/assets/viz/1/quil/middleware.cljc.cache.edn b/src/assets/viz/1/quil/middleware.cljc.cache.edn
index 1fbb263..1fbb263 100644
--- a/assets/viz/1/quil/middleware.cljc.cache.edn
+++ b/src/assets/viz/1/quil/middleware.cljc.cache.edn
diff --git a/assets/viz/1/quil/middleware.js b/src/assets/viz/1/quil/middleware.js
index d807b5a..d807b5a 100644
--- a/assets/viz/1/quil/middleware.js
+++ b/src/assets/viz/1/quil/middleware.js
diff --git a/assets/viz/1/quil/middleware.js.map b/src/assets/viz/1/quil/middleware.js.map
index ea10d2f..ea10d2f 100644
--- a/assets/viz/1/quil/middleware.js.map
+++ b/src/assets/viz/1/quil/middleware.js.map
diff --git a/assets/viz/1/quil/middlewares/deprecated_options.cljc b/src/assets/viz/1/quil/middlewares/deprecated_options.cljc
index 6ed40d2..6ed40d2 100644
--- a/assets/viz/1/quil/middlewares/deprecated_options.cljc
+++ b/src/assets/viz/1/quil/middlewares/deprecated_options.cljc
diff --git a/assets/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn b/src/assets/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn
index 0af4bd9..0af4bd9 100644
--- a/assets/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn
+++ b/src/assets/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn
diff --git a/assets/viz/1/quil/middlewares/deprecated_options.js b/src/assets/viz/1/quil/middlewares/deprecated_options.js
index 2c1658d..2c1658d 100644
--- a/assets/viz/1/quil/middlewares/deprecated_options.js
+++ b/src/assets/viz/1/quil/middlewares/deprecated_options.js
diff --git a/assets/viz/1/quil/middlewares/deprecated_options.js.map b/src/assets/viz/1/quil/middlewares/deprecated_options.js.map
index e093f8c..e093f8c 100644
--- a/assets/viz/1/quil/middlewares/deprecated_options.js.map
+++ b/src/assets/viz/1/quil/middlewares/deprecated_options.js.map
diff --git a/assets/viz/1/quil/middlewares/fun_mode.cljc b/src/assets/viz/1/quil/middlewares/fun_mode.cljc
index 14330c7..14330c7 100644
--- a/assets/viz/1/quil/middlewares/fun_mode.cljc
+++ b/src/assets/viz/1/quil/middlewares/fun_mode.cljc
diff --git a/assets/viz/1/quil/middlewares/fun_mode.cljc.cache.edn b/src/assets/viz/1/quil/middlewares/fun_mode.cljc.cache.edn
index bde2282..bde2282 100644
--- a/assets/viz/1/quil/middlewares/fun_mode.cljc.cache.edn
+++ b/src/assets/viz/1/quil/middlewares/fun_mode.cljc.cache.edn
diff --git a/assets/viz/1/quil/middlewares/fun_mode.js b/src/assets/viz/1/quil/middlewares/fun_mode.js
index d6db370..d6db370 100644
--- a/assets/viz/1/quil/middlewares/fun_mode.js
+++ b/src/assets/viz/1/quil/middlewares/fun_mode.js
diff --git a/assets/viz/1/quil/middlewares/fun_mode.js.map b/src/assets/viz/1/quil/middlewares/fun_mode.js.map
index a4854ee..a4854ee 100644
--- a/assets/viz/1/quil/middlewares/fun_mode.js.map
+++ b/src/assets/viz/1/quil/middlewares/fun_mode.js.map
diff --git a/assets/viz/1/quil/middlewares/navigation_2d.cljc b/src/assets/viz/1/quil/middlewares/navigation_2d.cljc
index cd03710..cd03710 100644
--- a/assets/viz/1/quil/middlewares/navigation_2d.cljc
+++ b/src/assets/viz/1/quil/middlewares/navigation_2d.cljc
diff --git a/assets/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn b/src/assets/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn
index 865d7b4..865d7b4 100644
--- a/assets/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn
+++ b/src/assets/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn
diff --git a/assets/viz/1/quil/middlewares/navigation_2d.js b/src/assets/viz/1/quil/middlewares/navigation_2d.js
index 5659fe1..5659fe1 100644
--- a/assets/viz/1/quil/middlewares/navigation_2d.js
+++ b/src/assets/viz/1/quil/middlewares/navigation_2d.js
diff --git a/assets/viz/1/quil/middlewares/navigation_2d.js.map b/src/assets/viz/1/quil/middlewares/navigation_2d.js.map
index 12c44fc..12c44fc 100644
--- a/assets/viz/1/quil/middlewares/navigation_2d.js.map
+++ b/src/assets/viz/1/quil/middlewares/navigation_2d.js.map
diff --git a/assets/viz/1/quil/middlewares/navigation_3d.cljc b/src/assets/viz/1/quil/middlewares/navigation_3d.cljc
index 3471cfd..3471cfd 100644
--- a/assets/viz/1/quil/middlewares/navigation_3d.cljc
+++ b/src/assets/viz/1/quil/middlewares/navigation_3d.cljc
diff --git a/assets/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn b/src/assets/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn
index d0089cf..d0089cf 100644
--- a/assets/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn
+++ b/src/assets/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn
diff --git a/assets/viz/1/quil/middlewares/navigation_3d.js b/src/assets/viz/1/quil/middlewares/navigation_3d.js
index 19eb935..19eb935 100644
--- a/assets/viz/1/quil/middlewares/navigation_3d.js
+++ b/src/assets/viz/1/quil/middlewares/navigation_3d.js
diff --git a/assets/viz/1/quil/middlewares/navigation_3d.js.map b/src/assets/viz/1/quil/middlewares/navigation_3d.js.map
index 0ce580a..0ce580a 100644
--- a/assets/viz/1/quil/middlewares/navigation_3d.js.map
+++ b/src/assets/viz/1/quil/middlewares/navigation_3d.js.map
diff --git a/assets/viz/1/quil/sketch.cljs b/src/assets/viz/1/quil/sketch.cljs
index 4e48038..4e48038 100644
--- a/assets/viz/1/quil/sketch.cljs
+++ b/src/assets/viz/1/quil/sketch.cljs
diff --git a/assets/viz/1/quil/sketch.cljs.cache.edn b/src/assets/viz/1/quil/sketch.cljs.cache.edn
index 4911e31..4911e31 100644
--- a/assets/viz/1/quil/sketch.cljs.cache.edn
+++ b/src/assets/viz/1/quil/sketch.cljs.cache.edn
diff --git a/assets/viz/1/quil/sketch.js b/src/assets/viz/1/quil/sketch.js
index 1ed6d8a..1ed6d8a 100644
--- a/assets/viz/1/quil/sketch.js
+++ b/src/assets/viz/1/quil/sketch.js
diff --git a/assets/viz/1/quil/sketch.js.map b/src/assets/viz/1/quil/sketch.js.map
index 3af57f2..3af57f2 100644
--- a/assets/viz/1/quil/sketch.js.map
+++ b/src/assets/viz/1/quil/sketch.js.map
diff --git a/assets/viz/1/quil/util.cljc b/src/assets/viz/1/quil/util.cljc
index 3cd0739..3cd0739 100644
--- a/assets/viz/1/quil/util.cljc
+++ b/src/assets/viz/1/quil/util.cljc
diff --git a/assets/viz/1/quil/util.cljc.cache.edn b/src/assets/viz/1/quil/util.cljc.cache.edn
index 0eb6abe..0eb6abe 100644
--- a/assets/viz/1/quil/util.cljc.cache.edn
+++ b/src/assets/viz/1/quil/util.cljc.cache.edn
diff --git a/assets/viz/1/quil/util.js b/src/assets/viz/1/quil/util.js
index 0f241ea..0f241ea 100644
--- a/assets/viz/1/quil/util.js
+++ b/src/assets/viz/1/quil/util.js
diff --git a/assets/viz/1/quil/util.js.map b/src/assets/viz/1/quil/util.js.map
index 1b314df..1b314df 100644
--- a/assets/viz/1/quil/util.js.map
+++ b/src/assets/viz/1/quil/util.js.map
diff --git a/assets/viz/1/viz/core.cljs b/src/assets/viz/1/viz/core.cljs
index 913cab4..913cab4 100644
--- a/assets/viz/1/viz/core.cljs
+++ b/src/assets/viz/1/viz/core.cljs
diff --git a/assets/viz/1/viz/core.cljs.cache.edn b/src/assets/viz/1/viz/core.cljs.cache.edn
index 2156790..2156790 100644
--- a/assets/viz/1/viz/core.cljs.cache.edn
+++ b/src/assets/viz/1/viz/core.cljs.cache.edn
diff --git a/assets/viz/1/viz/core.js b/src/assets/viz/1/viz/core.js
index ddc336c..ddc336c 100644
--- a/assets/viz/1/viz/core.js
+++ b/src/assets/viz/1/viz/core.js
diff --git a/assets/viz/1/viz/core.js.map b/src/assets/viz/1/viz/core.js.map
index 3f7a997..3f7a997 100644
--- a/assets/viz/1/viz/core.js.map
+++ b/src/assets/viz/1/viz/core.js.map
diff --git a/assets/viz/1/viz/forest.cljs b/src/assets/viz/1/viz/forest.cljs
index 9810089..9810089 100644
--- a/assets/viz/1/viz/forest.cljs
+++ b/src/assets/viz/1/viz/forest.cljs
diff --git a/assets/viz/1/viz/forest.cljs.cache.edn b/src/assets/viz/1/viz/forest.cljs.cache.edn
index 61b1a40..61b1a40 100644
--- a/assets/viz/1/viz/forest.cljs.cache.edn
+++ b/src/assets/viz/1/viz/forest.cljs.cache.edn
diff --git a/assets/viz/1/viz/forest.js b/src/assets/viz/1/viz/forest.js
index 0eb043a..0eb043a 100644
--- a/assets/viz/1/viz/forest.js
+++ b/src/assets/viz/1/viz/forest.js
diff --git a/assets/viz/1/viz/forest.js.map b/src/assets/viz/1/viz/forest.js.map
index e531b5e..e531b5e 100644
--- a/assets/viz/1/viz/forest.js.map
+++ b/src/assets/viz/1/viz/forest.js.map
diff --git a/assets/viz/1/viz/ghost.cljs b/src/assets/viz/1/viz/ghost.cljs
index ca6f86c..ca6f86c 100644
--- a/assets/viz/1/viz/ghost.cljs
+++ b/src/assets/viz/1/viz/ghost.cljs
diff --git a/assets/viz/1/viz/ghost.cljs.cache.edn b/src/assets/viz/1/viz/ghost.cljs.cache.edn
index 5762f9a..5762f9a 100644
--- a/assets/viz/1/viz/ghost.cljs.cache.edn
+++ b/src/assets/viz/1/viz/ghost.cljs.cache.edn
diff --git a/assets/viz/1/viz/ghost.js b/src/assets/viz/1/viz/ghost.js
index 50b8157..50b8157 100644
--- a/assets/viz/1/viz/ghost.js
+++ b/src/assets/viz/1/viz/ghost.js
diff --git a/assets/viz/1/viz/ghost.js.map b/src/assets/viz/1/viz/ghost.js.map
index fa62e77..fa62e77 100644
--- a/assets/viz/1/viz/ghost.js.map
+++ b/src/assets/viz/1/viz/ghost.js.map
diff --git a/assets/viz/1/viz/grid.cljs b/src/assets/viz/1/viz/grid.cljs
index 6e31443..6e31443 100644
--- a/assets/viz/1/viz/grid.cljs
+++ b/src/assets/viz/1/viz/grid.cljs
diff --git a/assets/viz/1/viz/grid.cljs.cache.edn b/src/assets/viz/1/viz/grid.cljs.cache.edn
index 60052ff..60052ff 100644
--- a/assets/viz/1/viz/grid.cljs.cache.edn
+++ b/src/assets/viz/1/viz/grid.cljs.cache.edn
diff --git a/assets/viz/1/viz/grid.js b/src/assets/viz/1/viz/grid.js
index 7bf4971..7bf4971 100644
--- a/assets/viz/1/viz/grid.js
+++ b/src/assets/viz/1/viz/grid.js
diff --git a/assets/viz/1/viz/grid.js.map b/src/assets/viz/1/viz/grid.js.map
index 46886eb..46886eb 100644
--- a/assets/viz/1/viz/grid.js.map
+++ b/src/assets/viz/1/viz/grid.js.map
diff --git a/assets/viz/2/cljs/core.cljs b/src/assets/viz/2/cljs/core.cljs
index c7f6d9a..c7f6d9a 100644
--- a/assets/viz/2/cljs/core.cljs
+++ b/src/assets/viz/2/cljs/core.cljs
diff --git a/assets/viz/2/cljs/core.js b/src/assets/viz/2/cljs/core.js
index 31ad4ae..31ad4ae 100644
--- a/assets/viz/2/cljs/core.js
+++ b/src/assets/viz/2/cljs/core.js
diff --git a/assets/viz/2/cljs/core.js.map b/src/assets/viz/2/cljs/core.js.map
index f7ea5cc..f7ea5cc 100644
--- a/assets/viz/2/cljs/core.js.map
+++ b/src/assets/viz/2/cljs/core.js.map
diff --git a/assets/viz/2/cljs/user/debug9D984AE.cljs.cache.json b/src/assets/viz/2/cljs/user/debug9D984AE.cljs.cache.json
index e98e6e7..e98e6e7 100644
--- a/assets/viz/2/cljs/user/debug9D984AE.cljs.cache.json
+++ b/src/assets/viz/2/cljs/user/debug9D984AE.cljs.cache.json
diff --git a/assets/viz/2/cljs/user/debug9D984AE.js b/src/assets/viz/2/cljs/user/debug9D984AE.js
index 6e5f3f2..6e5f3f2 100644
--- a/assets/viz/2/cljs/user/debug9D984AE.js
+++ b/src/assets/viz/2/cljs/user/debug9D984AE.js
diff --git a/assets/viz/2/cljs/user/debug9D984AE.js.map b/src/assets/viz/2/cljs/user/debug9D984AE.js.map
index 029817d..029817d 100644
--- a/assets/viz/2/cljs/user/debug9D984AE.js.map
+++ b/src/assets/viz/2/cljs/user/debug9D984AE.js.map
diff --git a/assets/viz/2/cljs_deps.js b/src/assets/viz/2/cljs_deps.js
index 95a5ac8..95a5ac8 100644
--- a/assets/viz/2/cljs_deps.js
+++ b/src/assets/viz/2/cljs_deps.js
diff --git a/assets/viz/2/cljsc_opts.edn b/src/assets/viz/2/cljsc_opts.edn
index 9ab2cfa..9ab2cfa 100644
--- a/assets/viz/2/cljsc_opts.edn
+++ b/src/assets/viz/2/cljsc_opts.edn
diff --git a/assets/viz/2/clojure/set.cljs b/src/assets/viz/2/clojure/set.cljs
index b9ba41f..b9ba41f 100644
--- a/assets/viz/2/clojure/set.cljs
+++ b/src/assets/viz/2/clojure/set.cljs
diff --git a/assets/viz/2/clojure/set.cljs.cache.json b/src/assets/viz/2/clojure/set.cljs.cache.json
index f2332c0..f2332c0 100644
--- a/assets/viz/2/clojure/set.cljs.cache.json
+++ b/src/assets/viz/2/clojure/set.cljs.cache.json
diff --git a/assets/viz/2/clojure/set.js b/src/assets/viz/2/clojure/set.js
index 3be3f0b..3be3f0b 100644
--- a/assets/viz/2/clojure/set.js
+++ b/src/assets/viz/2/clojure/set.js
diff --git a/assets/viz/2/clojure/set.js.map b/src/assets/viz/2/clojure/set.js.map
index c385760..c385760 100644
--- a/assets/viz/2/clojure/set.js.map
+++ b/src/assets/viz/2/clojure/set.js.map
diff --git a/assets/viz/2/clojure/string.cljs b/src/assets/viz/2/clojure/string.cljs
index 26f63f2..26f63f2 100644
--- a/assets/viz/2/clojure/string.cljs
+++ b/src/assets/viz/2/clojure/string.cljs
diff --git a/assets/viz/2/clojure/string.cljs.cache.json b/src/assets/viz/2/clojure/string.cljs.cache.json
index 534c7f8..534c7f8 100644
--- a/assets/viz/2/clojure/string.cljs.cache.json
+++ b/src/assets/viz/2/clojure/string.cljs.cache.json
diff --git a/assets/viz/2/clojure/string.js b/src/assets/viz/2/clojure/string.js
index acd3456..acd3456 100644
--- a/assets/viz/2/clojure/string.js
+++ b/src/assets/viz/2/clojure/string.js
diff --git a/assets/viz/2/clojure/string.js.map b/src/assets/viz/2/clojure/string.js.map
index 2270a89..2270a89 100644
--- a/assets/viz/2/clojure/string.js.map
+++ b/src/assets/viz/2/clojure/string.js.map
diff --git a/assets/viz/2/goog/array/array.js b/src/assets/viz/2/goog/array/array.js
index 47e0dbb..47e0dbb 100644
--- a/assets/viz/2/goog/array/array.js
+++ b/src/assets/viz/2/goog/array/array.js
diff --git a/assets/viz/2/goog/asserts/asserts.js b/src/assets/viz/2/goog/asserts/asserts.js
index 1f4b653..1f4b653 100644
--- a/assets/viz/2/goog/asserts/asserts.js
+++ b/src/assets/viz/2/goog/asserts/asserts.js
diff --git a/assets/viz/2/goog/base.js b/src/assets/viz/2/goog/base.js
index 46b2f09..46b2f09 100644
--- a/assets/viz/2/goog/base.js
+++ b/src/assets/viz/2/goog/base.js
diff --git a/assets/viz/2/goog/debug/entrypointregistry.js b/src/assets/viz/2/goog/debug/entrypointregistry.js
index 336e146..336e146 100644
--- a/assets/viz/2/goog/debug/entrypointregistry.js
+++ b/src/assets/viz/2/goog/debug/entrypointregistry.js
diff --git a/assets/viz/2/goog/debug/error.js b/src/assets/viz/2/goog/debug/error.js
index 5f1bd3e..5f1bd3e 100644
--- a/assets/viz/2/goog/debug/error.js
+++ b/src/assets/viz/2/goog/debug/error.js
diff --git a/assets/viz/2/goog/deps.js b/src/assets/viz/2/goog/deps.js
index 5cd5066..5cd5066 100644
--- a/assets/viz/2/goog/deps.js
+++ b/src/assets/viz/2/goog/deps.js
diff --git a/assets/viz/2/goog/disposable/disposable.js b/src/assets/viz/2/goog/disposable/disposable.js
index a86f549..a86f549 100644
--- a/assets/viz/2/goog/disposable/disposable.js
+++ b/src/assets/viz/2/goog/disposable/disposable.js
diff --git a/assets/viz/2/goog/disposable/idisposable.js b/src/assets/viz/2/goog/disposable/idisposable.js
index b539eb6..b539eb6 100644
--- a/assets/viz/2/goog/disposable/idisposable.js
+++ b/src/assets/viz/2/goog/disposable/idisposable.js
diff --git a/assets/viz/2/goog/dom/asserts.js b/src/assets/viz/2/goog/dom/asserts.js
index a8f93ba..a8f93ba 100644
--- a/assets/viz/2/goog/dom/asserts.js
+++ b/src/assets/viz/2/goog/dom/asserts.js
diff --git a/assets/viz/2/goog/dom/browserfeature.js b/src/assets/viz/2/goog/dom/browserfeature.js
index 1172166..1172166 100644
--- a/assets/viz/2/goog/dom/browserfeature.js
+++ b/src/assets/viz/2/goog/dom/browserfeature.js
diff --git a/assets/viz/2/goog/dom/dom.js b/src/assets/viz/2/goog/dom/dom.js
index 919a0b6..919a0b6 100644
--- a/assets/viz/2/goog/dom/dom.js
+++ b/src/assets/viz/2/goog/dom/dom.js
diff --git a/assets/viz/2/goog/dom/htmlelement.js b/src/assets/viz/2/goog/dom/htmlelement.js
index c48f753..c48f753 100644
--- a/assets/viz/2/goog/dom/htmlelement.js
+++ b/src/assets/viz/2/goog/dom/htmlelement.js
diff --git a/assets/viz/2/goog/dom/nodetype.js b/src/assets/viz/2/goog/dom/nodetype.js
index cccb470..cccb470 100644
--- a/assets/viz/2/goog/dom/nodetype.js
+++ b/src/assets/viz/2/goog/dom/nodetype.js
diff --git a/assets/viz/2/goog/dom/safe.js b/src/assets/viz/2/goog/dom/safe.js
index b9390a0..b9390a0 100644
--- a/assets/viz/2/goog/dom/safe.js
+++ b/src/assets/viz/2/goog/dom/safe.js
diff --git a/assets/viz/2/goog/dom/tagname.js b/src/assets/viz/2/goog/dom/tagname.js
index b3808ad..b3808ad 100644
--- a/assets/viz/2/goog/dom/tagname.js
+++ b/src/assets/viz/2/goog/dom/tagname.js
diff --git a/assets/viz/2/goog/dom/tags.js b/src/assets/viz/2/goog/dom/tags.js
index 7c12938..7c12938 100644
--- a/assets/viz/2/goog/dom/tags.js
+++ b/src/assets/viz/2/goog/dom/tags.js
diff --git a/assets/viz/2/goog/events/browserevent.js b/src/assets/viz/2/goog/events/browserevent.js
index b2261a3..b2261a3 100644
--- a/assets/viz/2/goog/events/browserevent.js
+++ b/src/assets/viz/2/goog/events/browserevent.js
diff --git a/assets/viz/2/goog/events/browserfeature.js b/src/assets/viz/2/goog/events/browserfeature.js
index 7cc7bd6..7cc7bd6 100644
--- a/assets/viz/2/goog/events/browserfeature.js
+++ b/src/assets/viz/2/goog/events/browserfeature.js
diff --git a/assets/viz/2/goog/events/event.js b/src/assets/viz/2/goog/events/event.js
index ee3b3af..ee3b3af 100644
--- a/assets/viz/2/goog/events/event.js
+++ b/src/assets/viz/2/goog/events/event.js
diff --git a/assets/viz/2/goog/events/eventid.js b/src/assets/viz/2/goog/events/eventid.js
index 9ff9e40..9ff9e40 100644
--- a/assets/viz/2/goog/events/eventid.js
+++ b/src/assets/viz/2/goog/events/eventid.js
diff --git a/assets/viz/2/goog/events/events.js b/src/assets/viz/2/goog/events/events.js
index 2787340..2787340 100644
--- a/assets/viz/2/goog/events/events.js
+++ b/src/assets/viz/2/goog/events/events.js
diff --git a/assets/viz/2/goog/events/eventtype.js b/src/assets/viz/2/goog/events/eventtype.js
index 7d991ea..7d991ea 100644
--- a/assets/viz/2/goog/events/eventtype.js
+++ b/src/assets/viz/2/goog/events/eventtype.js
diff --git a/assets/viz/2/goog/events/listenable.js b/src/assets/viz/2/goog/events/listenable.js
index 0f29d81..0f29d81 100644
--- a/assets/viz/2/goog/events/listenable.js
+++ b/src/assets/viz/2/goog/events/listenable.js
diff --git a/assets/viz/2/goog/events/listener.js b/src/assets/viz/2/goog/events/listener.js
index 5ac7b85..5ac7b85 100644
--- a/assets/viz/2/goog/events/listener.js
+++ b/src/assets/viz/2/goog/events/listener.js
diff --git a/assets/viz/2/goog/events/listenermap.js b/src/assets/viz/2/goog/events/listenermap.js
index 0375cf2..0375cf2 100644
--- a/assets/viz/2/goog/events/listenermap.js
+++ b/src/assets/viz/2/goog/events/listenermap.js
diff --git a/assets/viz/2/goog/fs/url.js b/src/assets/viz/2/goog/fs/url.js
index 364615e..364615e 100644
--- a/assets/viz/2/goog/fs/url.js
+++ b/src/assets/viz/2/goog/fs/url.js
diff --git a/assets/viz/2/goog/functions/functions.js b/src/assets/viz/2/goog/functions/functions.js
index 61849e9..61849e9 100644
--- a/assets/viz/2/goog/functions/functions.js
+++ b/src/assets/viz/2/goog/functions/functions.js
diff --git a/assets/viz/2/goog/html/safehtml.js b/src/assets/viz/2/goog/html/safehtml.js
index 4bffbff..4bffbff 100644
--- a/assets/viz/2/goog/html/safehtml.js
+++ b/src/assets/viz/2/goog/html/safehtml.js
diff --git a/assets/viz/2/goog/html/safescript.js b/src/assets/viz/2/goog/html/safescript.js
index 7a945eb..7a945eb 100644
--- a/assets/viz/2/goog/html/safescript.js
+++ b/src/assets/viz/2/goog/html/safescript.js
diff --git a/assets/viz/2/goog/html/safestyle.js b/src/assets/viz/2/goog/html/safestyle.js
index 506a475..506a475 100644
--- a/assets/viz/2/goog/html/safestyle.js
+++ b/src/assets/viz/2/goog/html/safestyle.js
diff --git a/assets/viz/2/goog/html/safestylesheet.js b/src/assets/viz/2/goog/html/safestylesheet.js
index cdd9e31..cdd9e31 100644
--- a/assets/viz/2/goog/html/safestylesheet.js
+++ b/src/assets/viz/2/goog/html/safestylesheet.js
diff --git a/assets/viz/2/goog/html/safeurl.js b/src/assets/viz/2/goog/html/safeurl.js
index 3d1ee11..3d1ee11 100644
--- a/assets/viz/2/goog/html/safeurl.js
+++ b/src/assets/viz/2/goog/html/safeurl.js
diff --git a/assets/viz/2/goog/html/trustedresourceurl.js b/src/assets/viz/2/goog/html/trustedresourceurl.js
index c043ef1..c043ef1 100644
--- a/assets/viz/2/goog/html/trustedresourceurl.js
+++ b/src/assets/viz/2/goog/html/trustedresourceurl.js
diff --git a/assets/viz/2/goog/html/uncheckedconversions.js b/src/assets/viz/2/goog/html/uncheckedconversions.js
index e96697c..e96697c 100644
--- a/assets/viz/2/goog/html/uncheckedconversions.js
+++ b/src/assets/viz/2/goog/html/uncheckedconversions.js
diff --git a/assets/viz/2/goog/i18n/bidi.js b/src/assets/viz/2/goog/i18n/bidi.js
index 695cfda..695cfda 100644
--- a/assets/viz/2/goog/i18n/bidi.js
+++ b/src/assets/viz/2/goog/i18n/bidi.js
diff --git a/assets/viz/2/goog/iter/iter.js b/src/assets/viz/2/goog/iter/iter.js
index 5bbb0bb..5bbb0bb 100644
--- a/assets/viz/2/goog/iter/iter.js
+++ b/src/assets/viz/2/goog/iter/iter.js
diff --git a/assets/viz/2/goog/labs/useragent/browser.js b/src/assets/viz/2/goog/labs/useragent/browser.js
index a7dd638..a7dd638 100644
--- a/assets/viz/2/goog/labs/useragent/browser.js
+++ b/src/assets/viz/2/goog/labs/useragent/browser.js
diff --git a/assets/viz/2/goog/labs/useragent/engine.js b/src/assets/viz/2/goog/labs/useragent/engine.js
index 31c5667..31c5667 100644
--- a/assets/viz/2/goog/labs/useragent/engine.js
+++ b/src/assets/viz/2/goog/labs/useragent/engine.js
diff --git a/assets/viz/2/goog/labs/useragent/platform.js b/src/assets/viz/2/goog/labs/useragent/platform.js
index 9c72402..9c72402 100644
--- a/assets/viz/2/goog/labs/useragent/platform.js
+++ b/src/assets/viz/2/goog/labs/useragent/platform.js
diff --git a/assets/viz/2/goog/labs/useragent/util.js b/src/assets/viz/2/goog/labs/useragent/util.js
index 26d4847..26d4847 100644
--- a/assets/viz/2/goog/labs/useragent/util.js
+++ b/src/assets/viz/2/goog/labs/useragent/util.js
diff --git a/assets/viz/2/goog/math/coordinate.js b/src/assets/viz/2/goog/math/coordinate.js
index 0dc2469..0dc2469 100644
--- a/assets/viz/2/goog/math/coordinate.js
+++ b/src/assets/viz/2/goog/math/coordinate.js
diff --git a/assets/viz/2/goog/math/integer.js b/src/assets/viz/2/goog/math/integer.js
index 6907546..6907546 100644
--- a/assets/viz/2/goog/math/integer.js
+++ b/src/assets/viz/2/goog/math/integer.js
diff --git a/assets/viz/2/goog/math/long.js b/src/assets/viz/2/goog/math/long.js
index 5212caf..5212caf 100644
--- a/assets/viz/2/goog/math/long.js
+++ b/src/assets/viz/2/goog/math/long.js
diff --git a/assets/viz/2/goog/math/math.js b/src/assets/viz/2/goog/math/math.js
index b8dbfb0..b8dbfb0 100644
--- a/assets/viz/2/goog/math/math.js
+++ b/src/assets/viz/2/goog/math/math.js
diff --git a/assets/viz/2/goog/math/size.js b/src/assets/viz/2/goog/math/size.js
index f5c379b..f5c379b 100644
--- a/assets/viz/2/goog/math/size.js
+++ b/src/assets/viz/2/goog/math/size.js
diff --git a/assets/viz/2/goog/object/object.js b/src/assets/viz/2/goog/object/object.js
index 2f26c2b..2f26c2b 100644
--- a/assets/viz/2/goog/object/object.js
+++ b/src/assets/viz/2/goog/object/object.js
diff --git a/assets/viz/2/goog/reflect/reflect.js b/src/assets/viz/2/goog/reflect/reflect.js
index a737324..a737324 100644
--- a/assets/viz/2/goog/reflect/reflect.js
+++ b/src/assets/viz/2/goog/reflect/reflect.js
diff --git a/assets/viz/2/goog/string/const.js b/src/assets/viz/2/goog/string/const.js
index 30bfc4e..30bfc4e 100644
--- a/assets/viz/2/goog/string/const.js
+++ b/src/assets/viz/2/goog/string/const.js
diff --git a/assets/viz/2/goog/string/string.js b/src/assets/viz/2/goog/string/string.js
index 7a10ae0..7a10ae0 100644
--- a/assets/viz/2/goog/string/string.js
+++ b/src/assets/viz/2/goog/string/string.js
diff --git a/assets/viz/2/goog/string/stringbuffer.js b/src/assets/viz/2/goog/string/stringbuffer.js
index 478b08b..478b08b 100644
--- a/assets/viz/2/goog/string/stringbuffer.js
+++ b/src/assets/viz/2/goog/string/stringbuffer.js
diff --git a/assets/viz/2/goog/string/stringformat.js b/src/assets/viz/2/goog/string/stringformat.js
index 58d7af9..58d7af9 100644
--- a/assets/viz/2/goog/string/stringformat.js
+++ b/src/assets/viz/2/goog/string/stringformat.js
diff --git a/assets/viz/2/goog/string/typedstring.js b/src/assets/viz/2/goog/string/typedstring.js
index d0d7bd9..d0d7bd9 100644
--- a/assets/viz/2/goog/string/typedstring.js
+++ b/src/assets/viz/2/goog/string/typedstring.js
diff --git a/assets/viz/2/goog/structs/map.js b/src/assets/viz/2/goog/structs/map.js
index 1cb4bcc..1cb4bcc 100644
--- a/assets/viz/2/goog/structs/map.js
+++ b/src/assets/viz/2/goog/structs/map.js
diff --git a/assets/viz/2/goog/structs/structs.js b/src/assets/viz/2/goog/structs/structs.js
index 684ddfe..684ddfe 100644
--- a/assets/viz/2/goog/structs/structs.js
+++ b/src/assets/viz/2/goog/structs/structs.js
diff --git a/assets/viz/2/goog/uri/uri.js b/src/assets/viz/2/goog/uri/uri.js
index 7873de9..7873de9 100644
--- a/assets/viz/2/goog/uri/uri.js
+++ b/src/assets/viz/2/goog/uri/uri.js
diff --git a/assets/viz/2/goog/uri/utils.js b/src/assets/viz/2/goog/uri/utils.js
index 3b8917a..3b8917a 100644
--- a/assets/viz/2/goog/uri/utils.js
+++ b/src/assets/viz/2/goog/uri/utils.js
diff --git a/assets/viz/2/goog/useragent/useragent.js b/src/assets/viz/2/goog/useragent/useragent.js
index 6fc5ff1..6fc5ff1 100644
--- a/assets/viz/2/goog/useragent/useragent.js
+++ b/src/assets/viz/2/goog/useragent/useragent.js
diff --git a/assets/viz/2/process/env.cljs b/src/assets/viz/2/process/env.cljs
index c8a6909..c8a6909 100644
--- a/assets/viz/2/process/env.cljs
+++ b/src/assets/viz/2/process/env.cljs
diff --git a/assets/viz/2/process/env.cljs.cache.json b/src/assets/viz/2/process/env.cljs.cache.json
index cde3e78..cde3e78 100644
--- a/assets/viz/2/process/env.cljs.cache.json
+++ b/src/assets/viz/2/process/env.cljs.cache.json
diff --git a/assets/viz/2/process/env.js b/src/assets/viz/2/process/env.js
index a917edb..a917edb 100644
--- a/assets/viz/2/process/env.js
+++ b/src/assets/viz/2/process/env.js
diff --git a/assets/viz/2/process/env.js.map b/src/assets/viz/2/process/env.js.map
index 4b5f46b..4b5f46b 100644
--- a/assets/viz/2/process/env.js.map
+++ b/src/assets/viz/2/process/env.js.map
diff --git a/assets/viz/2/processing.js b/src/assets/viz/2/processing.js
index 7cfb7a8..7cfb7a8 100644
--- a/assets/viz/2/processing.js
+++ b/src/assets/viz/2/processing.js
diff --git a/assets/viz/2/quil/core.cljc b/src/assets/viz/2/quil/core.cljc
index dcdaa94..dcdaa94 100644
--- a/assets/viz/2/quil/core.cljc
+++ b/src/assets/viz/2/quil/core.cljc
diff --git a/assets/viz/2/quil/core.cljc.cache.json b/src/assets/viz/2/quil/core.cljc.cache.json
index e2cfeb3..e2cfeb3 100644
--- a/assets/viz/2/quil/core.cljc.cache.json
+++ b/src/assets/viz/2/quil/core.cljc.cache.json
diff --git a/assets/viz/2/quil/core.js b/src/assets/viz/2/quil/core.js
index d4a2954..d4a2954 100644
--- a/assets/viz/2/quil/core.js
+++ b/src/assets/viz/2/quil/core.js
diff --git a/assets/viz/2/quil/core.js.map b/src/assets/viz/2/quil/core.js.map
index 55fa54e..55fa54e 100644
--- a/assets/viz/2/quil/core.js.map
+++ b/src/assets/viz/2/quil/core.js.map
diff --git a/assets/viz/2/quil/middleware.cljc b/src/assets/viz/2/quil/middleware.cljc
index a8f5672..a8f5672 100644
--- a/assets/viz/2/quil/middleware.cljc
+++ b/src/assets/viz/2/quil/middleware.cljc
diff --git a/assets/viz/2/quil/middleware.cljc.cache.json b/src/assets/viz/2/quil/middleware.cljc.cache.json
index ac5c7df..ac5c7df 100644
--- a/assets/viz/2/quil/middleware.cljc.cache.json
+++ b/src/assets/viz/2/quil/middleware.cljc.cache.json
diff --git a/assets/viz/2/quil/middleware.js b/src/assets/viz/2/quil/middleware.js
index fcac0f6..fcac0f6 100644
--- a/assets/viz/2/quil/middleware.js
+++ b/src/assets/viz/2/quil/middleware.js
diff --git a/assets/viz/2/quil/middleware.js.map b/src/assets/viz/2/quil/middleware.js.map
index 63af250..63af250 100644
--- a/assets/viz/2/quil/middleware.js.map
+++ b/src/assets/viz/2/quil/middleware.js.map
diff --git a/assets/viz/2/quil/middlewares/deprecated_options.cljc b/src/assets/viz/2/quil/middlewares/deprecated_options.cljc
index 6ed40d2..6ed40d2 100644
--- a/assets/viz/2/quil/middlewares/deprecated_options.cljc
+++ b/src/assets/viz/2/quil/middlewares/deprecated_options.cljc
diff --git a/assets/viz/2/quil/middlewares/deprecated_options.cljc.cache.json b/src/assets/viz/2/quil/middlewares/deprecated_options.cljc.cache.json
index b0ba153..b0ba153 100644
--- a/assets/viz/2/quil/middlewares/deprecated_options.cljc.cache.json
+++ b/src/assets/viz/2/quil/middlewares/deprecated_options.cljc.cache.json
diff --git a/assets/viz/2/quil/middlewares/deprecated_options.js b/src/assets/viz/2/quil/middlewares/deprecated_options.js
index e80614c..e80614c 100644
--- a/assets/viz/2/quil/middlewares/deprecated_options.js
+++ b/src/assets/viz/2/quil/middlewares/deprecated_options.js
diff --git a/assets/viz/2/quil/middlewares/deprecated_options.js.map b/src/assets/viz/2/quil/middlewares/deprecated_options.js.map
index fdcedf9..fdcedf9 100644
--- a/assets/viz/2/quil/middlewares/deprecated_options.js.map
+++ b/src/assets/viz/2/quil/middlewares/deprecated_options.js.map
diff --git a/assets/viz/2/quil/middlewares/fun_mode.cljc b/src/assets/viz/2/quil/middlewares/fun_mode.cljc
index 14330c7..14330c7 100644
--- a/assets/viz/2/quil/middlewares/fun_mode.cljc
+++ b/src/assets/viz/2/quil/middlewares/fun_mode.cljc
diff --git a/assets/viz/2/quil/middlewares/fun_mode.cljc.cache.json b/src/assets/viz/2/quil/middlewares/fun_mode.cljc.cache.json
index 26e797e..26e797e 100644
--- a/assets/viz/2/quil/middlewares/fun_mode.cljc.cache.json
+++ b/src/assets/viz/2/quil/middlewares/fun_mode.cljc.cache.json
diff --git a/assets/viz/2/quil/middlewares/fun_mode.js b/src/assets/viz/2/quil/middlewares/fun_mode.js
index 5eabdf8..5eabdf8 100644
--- a/assets/viz/2/quil/middlewares/fun_mode.js
+++ b/src/assets/viz/2/quil/middlewares/fun_mode.js
diff --git a/assets/viz/2/quil/middlewares/fun_mode.js.map b/src/assets/viz/2/quil/middlewares/fun_mode.js.map
index 459ff6e..459ff6e 100644
--- a/assets/viz/2/quil/middlewares/fun_mode.js.map
+++ b/src/assets/viz/2/quil/middlewares/fun_mode.js.map
diff --git a/assets/viz/2/quil/middlewares/navigation_2d.cljc b/src/assets/viz/2/quil/middlewares/navigation_2d.cljc
index cd03710..cd03710 100644
--- a/assets/viz/2/quil/middlewares/navigation_2d.cljc
+++ b/src/assets/viz/2/quil/middlewares/navigation_2d.cljc
diff --git a/assets/viz/2/quil/middlewares/navigation_2d.cljc.cache.json b/src/assets/viz/2/quil/middlewares/navigation_2d.cljc.cache.json
index 664f7ef..664f7ef 100644
--- a/assets/viz/2/quil/middlewares/navigation_2d.cljc.cache.json
+++ b/src/assets/viz/2/quil/middlewares/navigation_2d.cljc.cache.json
diff --git a/assets/viz/2/quil/middlewares/navigation_2d.js b/src/assets/viz/2/quil/middlewares/navigation_2d.js
index 9403a91..9403a91 100644
--- a/assets/viz/2/quil/middlewares/navigation_2d.js
+++ b/src/assets/viz/2/quil/middlewares/navigation_2d.js
diff --git a/assets/viz/2/quil/middlewares/navigation_2d.js.map b/src/assets/viz/2/quil/middlewares/navigation_2d.js.map
index 34afb3c..34afb3c 100644
--- a/assets/viz/2/quil/middlewares/navigation_2d.js.map
+++ b/src/assets/viz/2/quil/middlewares/navigation_2d.js.map
diff --git a/assets/viz/2/quil/middlewares/navigation_3d.cljc b/src/assets/viz/2/quil/middlewares/navigation_3d.cljc
index 3471cfd..3471cfd 100644
--- a/assets/viz/2/quil/middlewares/navigation_3d.cljc
+++ b/src/assets/viz/2/quil/middlewares/navigation_3d.cljc
diff --git a/assets/viz/2/quil/middlewares/navigation_3d.cljc.cache.json b/src/assets/viz/2/quil/middlewares/navigation_3d.cljc.cache.json
index 2edb582..2edb582 100644
--- a/assets/viz/2/quil/middlewares/navigation_3d.cljc.cache.json
+++ b/src/assets/viz/2/quil/middlewares/navigation_3d.cljc.cache.json
diff --git a/assets/viz/2/quil/middlewares/navigation_3d.js b/src/assets/viz/2/quil/middlewares/navigation_3d.js
index d80d58a..d80d58a 100644
--- a/assets/viz/2/quil/middlewares/navigation_3d.js
+++ b/src/assets/viz/2/quil/middlewares/navigation_3d.js
diff --git a/assets/viz/2/quil/middlewares/navigation_3d.js.map b/src/assets/viz/2/quil/middlewares/navigation_3d.js.map
index 6668288..6668288 100644
--- a/assets/viz/2/quil/middlewares/navigation_3d.js.map
+++ b/src/assets/viz/2/quil/middlewares/navigation_3d.js.map
diff --git a/assets/viz/2/quil/sketch.cljs b/src/assets/viz/2/quil/sketch.cljs
index 4e48038..4e48038 100644
--- a/assets/viz/2/quil/sketch.cljs
+++ b/src/assets/viz/2/quil/sketch.cljs
diff --git a/assets/viz/2/quil/sketch.cljs.cache.json b/src/assets/viz/2/quil/sketch.cljs.cache.json
index 5544f56..5544f56 100644
--- a/assets/viz/2/quil/sketch.cljs.cache.json
+++ b/src/assets/viz/2/quil/sketch.cljs.cache.json
diff --git a/assets/viz/2/quil/sketch.js b/src/assets/viz/2/quil/sketch.js
index b394075..b394075 100644
--- a/assets/viz/2/quil/sketch.js
+++ b/src/assets/viz/2/quil/sketch.js
diff --git a/assets/viz/2/quil/sketch.js.map b/src/assets/viz/2/quil/sketch.js.map
index b9bbeec..b9bbeec 100644
--- a/assets/viz/2/quil/sketch.js.map
+++ b/src/assets/viz/2/quil/sketch.js.map
diff --git a/assets/viz/2/quil/util.cljc b/src/assets/viz/2/quil/util.cljc
index 3cd0739..3cd0739 100644
--- a/assets/viz/2/quil/util.cljc
+++ b/src/assets/viz/2/quil/util.cljc
diff --git a/assets/viz/2/quil/util.cljc.cache.json b/src/assets/viz/2/quil/util.cljc.cache.json
index ffc87ae..ffc87ae 100644
--- a/assets/viz/2/quil/util.cljc.cache.json
+++ b/src/assets/viz/2/quil/util.cljc.cache.json
diff --git a/assets/viz/2/quil/util.js b/src/assets/viz/2/quil/util.js
index f0e8bc9..f0e8bc9 100644
--- a/assets/viz/2/quil/util.js
+++ b/src/assets/viz/2/quil/util.js
diff --git a/assets/viz/2/quil/util.js.map b/src/assets/viz/2/quil/util.js.map
index b78bac5..b78bac5 100644
--- a/assets/viz/2/quil/util.js.map
+++ b/src/assets/viz/2/quil/util.js.map
diff --git a/assets/viz/2/viz/core.cljs b/src/assets/viz/2/viz/core.cljs
index caeb386..caeb386 100644
--- a/assets/viz/2/viz/core.cljs
+++ b/src/assets/viz/2/viz/core.cljs
diff --git a/assets/viz/2/viz/core.cljs.cache.json b/src/assets/viz/2/viz/core.cljs.cache.json
index ade1293..ade1293 100644
--- a/assets/viz/2/viz/core.cljs.cache.json
+++ b/src/assets/viz/2/viz/core.cljs.cache.json
diff --git a/assets/viz/2/viz/core.js b/src/assets/viz/2/viz/core.js
index a14b2fd..a14b2fd 100644
--- a/assets/viz/2/viz/core.js
+++ b/src/assets/viz/2/viz/core.js
diff --git a/assets/viz/2/viz/core.js.map b/src/assets/viz/2/viz/core.js.map
index 1bee43b..1bee43b 100644
--- a/assets/viz/2/viz/core.js.map
+++ b/src/assets/viz/2/viz/core.js.map
diff --git a/assets/viz/2/viz/debug.cljs b/src/assets/viz/2/viz/debug.cljs
index 9de3071..9de3071 100644
--- a/assets/viz/2/viz/debug.cljs
+++ b/src/assets/viz/2/viz/debug.cljs
diff --git a/assets/viz/2/viz/debug.cljs.cache.json b/src/assets/viz/2/viz/debug.cljs.cache.json
index e2f0a33..e2f0a33 100644
--- a/assets/viz/2/viz/debug.cljs.cache.json
+++ b/src/assets/viz/2/viz/debug.cljs.cache.json
diff --git a/assets/viz/2/viz/debug.js b/src/assets/viz/2/viz/debug.js
index 81683f9..81683f9 100644
--- a/assets/viz/2/viz/debug.js
+++ b/src/assets/viz/2/viz/debug.js
diff --git a/assets/viz/2/viz/debug.js.map b/src/assets/viz/2/viz/debug.js.map
index fb46f64..fb46f64 100644
--- a/assets/viz/2/viz/debug.js.map
+++ b/src/assets/viz/2/viz/debug.js.map
diff --git a/assets/viz/2/viz/dial.cljs b/src/assets/viz/2/viz/dial.cljs
index 46656e5..46656e5 100644
--- a/assets/viz/2/viz/dial.cljs
+++ b/src/assets/viz/2/viz/dial.cljs
diff --git a/assets/viz/2/viz/dial.cljs.cache.json b/src/assets/viz/2/viz/dial.cljs.cache.json
index da9fe18..da9fe18 100644
--- a/assets/viz/2/viz/dial.cljs.cache.json
+++ b/src/assets/viz/2/viz/dial.cljs.cache.json
diff --git a/assets/viz/2/viz/dial.js b/src/assets/viz/2/viz/dial.js
index 3eb17f2..3eb17f2 100644
--- a/assets/viz/2/viz/dial.js
+++ b/src/assets/viz/2/viz/dial.js
diff --git a/assets/viz/2/viz/dial.js.map b/src/assets/viz/2/viz/dial.js.map
index 213c641..213c641 100644
--- a/assets/viz/2/viz/dial.js.map
+++ b/src/assets/viz/2/viz/dial.js.map
diff --git a/assets/viz/2/viz/forest.cljs b/src/assets/viz/2/viz/forest.cljs
index ee6a2fb..ee6a2fb 100644
--- a/assets/viz/2/viz/forest.cljs
+++ b/src/assets/viz/2/viz/forest.cljs
diff --git a/assets/viz/2/viz/forest.cljs.cache.json b/src/assets/viz/2/viz/forest.cljs.cache.json
index e45e9f2..e45e9f2 100644
--- a/assets/viz/2/viz/forest.cljs.cache.json
+++ b/src/assets/viz/2/viz/forest.cljs.cache.json
diff --git a/assets/viz/2/viz/forest.js b/src/assets/viz/2/viz/forest.js
index 4481c7d..4481c7d 100644
--- a/assets/viz/2/viz/forest.js
+++ b/src/assets/viz/2/viz/forest.js
diff --git a/assets/viz/2/viz/forest.js.map b/src/assets/viz/2/viz/forest.js.map
index 5d1245b..5d1245b 100644
--- a/assets/viz/2/viz/forest.js.map
+++ b/src/assets/viz/2/viz/forest.js.map
diff --git a/assets/viz/2/viz/ghost.cljs b/src/assets/viz/2/viz/ghost.cljs
index d468479..d468479 100644
--- a/assets/viz/2/viz/ghost.cljs
+++ b/src/assets/viz/2/viz/ghost.cljs
diff --git a/assets/viz/2/viz/ghost.cljs.cache.json b/src/assets/viz/2/viz/ghost.cljs.cache.json
index 15e7065..15e7065 100644
--- a/assets/viz/2/viz/ghost.cljs.cache.json
+++ b/src/assets/viz/2/viz/ghost.cljs.cache.json
diff --git a/assets/viz/2/viz/ghost.js b/src/assets/viz/2/viz/ghost.js
index d2106e1..d2106e1 100644
--- a/assets/viz/2/viz/ghost.js
+++ b/src/assets/viz/2/viz/ghost.js
diff --git a/assets/viz/2/viz/ghost.js.map b/src/assets/viz/2/viz/ghost.js.map
index a2b7533..a2b7533 100644
--- a/assets/viz/2/viz/ghost.js.map
+++ b/src/assets/viz/2/viz/ghost.js.map
diff --git a/assets/viz/2/viz/grid.cljs b/src/assets/viz/2/viz/grid.cljs
index 6e31443..6e31443 100644
--- a/assets/viz/2/viz/grid.cljs
+++ b/src/assets/viz/2/viz/grid.cljs
diff --git a/assets/viz/2/viz/grid.cljs.cache.json b/src/assets/viz/2/viz/grid.cljs.cache.json
index fcc5225..fcc5225 100644
--- a/assets/viz/2/viz/grid.cljs.cache.json
+++ b/src/assets/viz/2/viz/grid.cljs.cache.json
diff --git a/assets/viz/2/viz/grid.js b/src/assets/viz/2/viz/grid.js
index 891193e..891193e 100644
--- a/assets/viz/2/viz/grid.js
+++ b/src/assets/viz/2/viz/grid.js
diff --git a/assets/viz/2/viz/grid.js.map b/src/assets/viz/2/viz/grid.js.map
index 1964511..1964511 100644
--- a/assets/viz/2/viz/grid.js.map
+++ b/src/assets/viz/2/viz/grid.js.map
diff --git a/assets/wtfpl.txt b/src/assets/wtfpl.txt
index ee7d6a5..ee7d6a5 100644
--- a/assets/wtfpl.txt
+++ b/src/assets/wtfpl.txt
diff --git a/follow.md b/src/follow.md
index 8093267..8093267 100644
--- a/follow.md
+++ b/src/follow.md
diff --git a/img/diamond-square/dsalg.png b/src/img/diamond-square/dsalg.png
index d9cc4c4..d9cc4c4 100644
--- a/img/diamond-square/dsalg.png
+++ b/src/img/diamond-square/dsalg.png
Binary files differ
diff --git a/img/diamond-square/terrain.png b/src/img/diamond-square/terrain.png
index 8d16114..8d16114 100644
--- a/img/diamond-square/terrain.png
+++ b/src/img/diamond-square/terrain.png
Binary files differ
diff --git a/img/happy-tree/happy-tree-atmp1-small.png b/src/img/happy-tree/happy-tree-atmp1-small.png
index adcf267..adcf267 100644
--- a/img/happy-tree/happy-tree-atmp1-small.png
+++ b/src/img/happy-tree/happy-tree-atmp1-small.png
Binary files differ
diff --git a/img/happy-tree/happy-tree-atmp1.png b/src/img/happy-tree/happy-tree-atmp1.png
index 5a9baaf..5a9baaf 100644
--- a/img/happy-tree/happy-tree-atmp1.png
+++ b/src/img/happy-tree/happy-tree-atmp1.png
Binary files differ
diff --git a/img/happy-tree/happy-tree-atmp2-small.png b/src/img/happy-tree/happy-tree-atmp2-small.png
index 694858f..694858f 100644
--- a/img/happy-tree/happy-tree-atmp2-small.png
+++ b/src/img/happy-tree/happy-tree-atmp2-small.png
Binary files differ
diff --git a/img/happy-tree/happy-tree-atmp2.png b/src/img/happy-tree/happy-tree-atmp2.png
index 60a2b16..60a2b16 100644
--- a/img/happy-tree/happy-tree-atmp2.png
+++ b/src/img/happy-tree/happy-tree-atmp2.png
Binary files differ
diff --git a/img/happy-tree/happy-tree-atmp3-pow3-small.png b/src/img/happy-tree/happy-tree-atmp3-pow3-small.png
index 02dfd2d..02dfd2d 100644
--- a/img/happy-tree/happy-tree-atmp3-pow3-small.png
+++ b/src/img/happy-tree/happy-tree-atmp3-pow3-small.png
Binary files differ
diff --git a/img/happy-tree/happy-tree-atmp3-pow3.png b/src/img/happy-tree/happy-tree-atmp3-pow3.png
index 710a0a0..710a0a0 100644
--- a/img/happy-tree/happy-tree-atmp3-pow3.png
+++ b/src/img/happy-tree/happy-tree-atmp3-pow3.png
Binary files differ
diff --git a/img/happy-tree/happy-tree-atmp3-pow4-small.png b/src/img/happy-tree/happy-tree-atmp3-pow4-small.png
index 311718d..311718d 100644
--- a/img/happy-tree/happy-tree-atmp3-pow4-small.png
+++ b/src/img/happy-tree/happy-tree-atmp3-pow4-small.png
Binary files differ
diff --git a/img/happy-tree/happy-tree-atmp3-pow4.png b/src/img/happy-tree/happy-tree-atmp3-pow4.png
index b82406e..b82406e 100644
--- a/img/happy-tree/happy-tree-atmp3-pow4.png
+++ b/src/img/happy-tree/happy-tree-atmp3-pow4.png
Binary files differ
diff --git a/img/happy-tree/happy-tree-atmp3-pow5-small.png b/src/img/happy-tree/happy-tree-atmp3-pow5-small.png
index 87b7ced..87b7ced 100644
--- a/img/happy-tree/happy-tree-atmp3-pow5-small.png
+++ b/src/img/happy-tree/happy-tree-atmp3-pow5-small.png
Binary files differ
diff --git a/img/happy-tree/happy-tree-atmp3-pow5.png b/src/img/happy-tree/happy-tree-atmp3-pow5.png
index bcea6ad..bcea6ad 100644
--- a/img/happy-tree/happy-tree-atmp3-pow5.png
+++ b/src/img/happy-tree/happy-tree-atmp3-pow5.png
Binary files differ
diff --git a/img/happy-tree/happy-tree-atmp3-pow6-small.png b/src/img/happy-tree/happy-tree-atmp3-pow6-small.png
index 69742f2..69742f2 100644
--- a/img/happy-tree/happy-tree-atmp3-pow6-small.png
+++ b/src/img/happy-tree/happy-tree-atmp3-pow6-small.png
Binary files differ
diff --git a/img/happy-tree/happy-tree-atmp3-pow6.png b/src/img/happy-tree/happy-tree-atmp3-pow6.png
index 6571ce2..6571ce2 100644
--- a/img/happy-tree/happy-tree-atmp3-pow6.png
+++ b/src/img/happy-tree/happy-tree-atmp3-pow6.png
Binary files differ
diff --git a/img/happy-tree/partial.png b/src/img/happy-tree/partial.png
index 59a9d3d..59a9d3d 100644
--- a/img/happy-tree/partial.png
+++ b/src/img/happy-tree/partial.png
Binary files differ
diff --git a/img/program-structure/500px/diag1.jpg b/src/img/program-structure/500px/diag1.jpg
index 8ac4b78..8ac4b78 100644
--- a/img/program-structure/500px/diag1.jpg
+++ b/src/img/program-structure/500px/diag1.jpg
Binary files differ
diff --git a/img/program-structure/500px/diag2.jpg b/src/img/program-structure/500px/diag2.jpg
index d4f87ea..d4f87ea 100644
--- a/img/program-structure/500px/diag2.jpg
+++ b/src/img/program-structure/500px/diag2.jpg
Binary files differ
diff --git a/img/program-structure/500px/diag3.jpg b/src/img/program-structure/500px/diag3.jpg
index 46e66e3..46e66e3 100644
--- a/img/program-structure/500px/diag3.jpg
+++ b/src/img/program-structure/500px/diag3.jpg
Binary files differ
diff --git a/img/program-structure/diag1.jpg b/src/img/program-structure/diag1.jpg
index 4a6bfa7..4a6bfa7 100644
--- a/img/program-structure/diag1.jpg
+++ b/src/img/program-structure/diag1.jpg
Binary files differ
diff --git a/img/program-structure/diag2.jpg b/src/img/program-structure/diag2.jpg
index 4958657..4958657 100644
--- a/img/program-structure/diag2.jpg
+++ b/src/img/program-structure/diag2.jpg
Binary files differ
diff --git a/img/program-structure/diag3.jpg b/src/img/program-structure/diag3.jpg
index 77f7454..77f7454 100644
--- a/img/program-structure/diag3.jpg
+++ b/src/img/program-structure/diag3.jpg
Binary files differ
diff --git a/index.md b/src/index.md
index 30727d6..30727d6 100644
--- a/index.md
+++ b/src/index.md