diff --git a/.gitignore b/.gitignore index 3302d5f..8d0430c 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ changelist.txt *.d *.toc outputs/** +output/** Console. Python-Fu Makefile.deps diff --git a/.ninja_deps b/.ninja_deps new file mode 100644 index 0000000..e5675ec Binary files /dev/null and b/.ninja_deps differ diff --git a/.ninja_log b/.ninja_log new file mode 100644 index 0000000..4ff324b --- /dev/null +++ b/.ninja_log @@ -0,0 +1,1003 @@ +# ninja log v6 +199 234 1727153239733145153 output/starter3-upgrade_sled[2].tex 315c06a8e5f87927 +198 230 1727153239729811792 output/starter3-move[4].tex 56232af89954d2a6 +83 100 1727153239626477626 output/starter3-good_dog[1].json 9c5bb226ccf601c3 +196 233 1727153239729811792 output/starter3-husky[1].tex 6cedf9ea192cc9d2 +181 215 1727153239713144992 output/starter3-dinner[1].tex 8d7f7de0617b130c +173 220 1727153239706478271 output/starter3-lunch[2].tex 3c0bd4f22889c9e0 +56 74 1727153239603144103 output/starter1-mush[1].json fb6d1be87c978696 +172 209 1727153239703144910 output/starter3-breakfast[2].tex e279349523cf2596 +168 209 1727153239699811551 output/starter2-mush[1].tex a5fd2a124f28dfe1 +170 202 1727153239703144910 output/starter3-a_hat[1].tex 2f07bbc2a5f41c26 +170 207 1727153239703144910 output/starter2-wheel_dog[1].tex ebba1a12dd829707 +169 206 1727153239703144910 output/starter2-upgrade_sled[2].tex 42e84f4802277573 +135 170 1727153239666477948 output/starter1-wheel_dog[1].tex f9b064d8e97143a8 +165 200 1727153239696478191 output/starter2-move[4].tex 2756c8c072abcf04 +162 198 1727153239693144830 output/starter2-grandma_soup[1].tex d427ce8beeacf4be +256 281 1727153239789812277 output/survival-antique_sled[2].tex c5902b33a2b88f78 +161 193 1727153239693144830 output/starter2-first_aid[2].tex e9c0d1d6fffedab7 +160 199 1727153239693144830 output/starter2-dog_chow[1].tex e86c2711d140449f +157 191 1727153239689811470 output/starter2-dinner[1].tex 7a316b537172cbd4 +144 198 1727153239676478029 output/starter2-lunch[2].tex 4541a796e909301a +137 182 1727153239669811309 output/starter2-a_hat[1].tex cb001539bfea550b +56 68 1727153239599810744 output/starter1-move[4].json 5ed6d2c1d4375278 +132 189 1727153239663144588 output/starter1-repair_sled[2].tex bf364f7370d6a67a +113 130 1727153239659811228 output/survival-antique_sled[2].json 8b28bf51304fde70 +198 230 1727153239729811792 output/starter3-mush[1].tex 5b2fe99b40b1b79 +117 134 1727153239663144588 output/survival-caffeine[2].json 3bc0418cc383806d +191 224 1727153239723145073 output/starter3-good_dog[1].tex 51949c1a66f1de5f +272 296 1727153239806479079 output/survival-poutine[2].tex 7adfb24e69d8e7bf +130 172 1727153239663144588 output/starter1-husky[1].tex e9ac3c21ae0addbc +130 169 1727153239663144588 output/starter1-grandma_soup[1].tex 443fe34b450ceba9 +56 74 1727153239603144103 output/starter1-husky[1].json f3604efccd040e6a +1 57 1727153239533143539 build.ninja 617643cca5ee42c +126 168 1727153239659811228 output/starter1-breakfast[2].tex 7e5ecf9a2977be2b +126 161 1727153239659811228 output/starter1-a_hat[1].tex ae66c207b852e49a +199 238 1727153239729811792 output/starter3-repair_sled[2].tex f9f1eb2c9ec2af42 +55 67 1727153239599810744 output/starter1-lunch[2].json 61a9d9ee305c5f67 +99 114 1727153239643144427 output/starter4-mush[1].json f145fb748bf0984f +96 111 1727153239643144427 output/starter4-husky[1].json 5d408016d01e5fe2 +58 80 1727153239606477464 output/starter1-upgrade_sled[2].json be4ede04f0cf13a +87 107 1727153239633144346 output/starter4-lunch[2].json 4e28cc8357b0bdc9 +94 113 1727153239643144427 output/starter4-good_dog[1].json 2cd7deb4ce12dd0e +269 297 1727153239799812358 output/survival-caffeine[2].tex 73f705c8ba10bbc3 +128 162 1727153239659811228 output/starter1-dog_chow[1].tex dcf31b0a73d63b50 +100 114 1727153239643144427 output/starter4-repair_sled[2].json 5f5eb00b6ee9a92d +202 241 1727153239733145153 output/starter4-a_hat[1].tex 99887fee85dfc799 +56 72 1727153239603144103 output/starter1-dog_chow[1].json 2b7041149e4c654f +131 173 1727153239663144588 output/starter1-mush[1].tex c39015cbeead1e5 +113 128 1727153239659811228 output/race-tiara[2].json 27b239866ff4e400 +264 294 1727153239796478998 output/survival-brandy[2].tex 834751cf4834f448 +61 81 1727153239606477464 output/starter2-breakfast[2].json a3a86b00c990e721 +80 95 1727153239623144266 output/starter3-dog_chow[1].json 3e7ea0fe40e8c6a8 +182 216 1727153239716478352 output/starter3-dog_chow[1].tex 4a4ea1cf2d4bea49 +60 80 1727153239606477464 output/starter2-a_hat[1].json 82dbefee1b5ad091 +131 165 1727153239663144588 output/starter1-move[4].tex 50bf1391489b3aef +215 250 1727153239746478594 output/starter4-good_dog[1].tex 3dc9cfaba9ebb5ac +255 290 1727153239786478917 output/race-tiara[2].tex 1b500388b75efe79 +0 50 1727048470801420063 dynamic.ninja 8de2261a107d5bf7 +224 253 1727153239756478674 output/starter4-mush[1].tex 8c5de8d414683d12 +0 2 1727066172003004423 output/dynamic.ninja e6ee63af1ad74c66 +85 102 1727153239629810985 output/starter3-repair_sled[2].json aca4c779f65df71d +168 204 1727153239703144910 output/starter2-repair_sled[2].tex 7c93906666930553 +58 76 1727153239606477464 output/starter1-wheel_dog[1].json a4cb49211688fd4e +127 168 1727153239659811228 output/starter1-dinner[1].tex df2c8b9c528cb69d +56 74 1727153239603144103 output/starter1-grandma_soup[1].json 16dfb2838ff6b66b +56 72 1727153239603144103 output/starter1-good_dog[1].json 5facca43c6f216cf +134 170 1727153239666477948 output/starter1-upgrade_sled[2].tex 20bfaf17f28bbe80 +250 281 1727153239783145556 output/race-slow_and_steady[2].tex b2b21a508437d3aa +1 55 1727153239533143539 output/everything.json 7598a412a8d6cd96 +235 270 1727153239766478755 output/race-dog_shoes[2].tex 407ecc9929d0148d +255 281 1727153239786478917 output/race-supply_run[2].tex ec21913f730a93cc +96 113 1727153239643144427 output/starter4-move[4].json da3fe82b0e1629d4 +204 238 1727153239736478513 output/starter4-breakfast[2].tex 2b8b967bdfee262e +242 272 1727153239773145475 output/race-rush[2].tex cad1de8e60823b89 +239 281 1727153239769812116 output/race-midnight_sun[2].tex e10c1cd61d31637e +119 132 1727153239663144588 output/survival-malamute[2].json 2221c3c882a9ebb8 +233 269 1727153239766478755 output/race-bear[2].tex 46b31299502f74ab +270 296 1727153239803145717 output/survival-jerky[2].tex 7c5a3694f6f60395 +256 287 1727153239789812277 output/survival-band_aid[2].tex eeb61a33eb790adc +262 295 1727153239796478998 output/survival-bandage[2].tex 8748dc74bf0c6e83 +238 270 1727153239769812116 output/race-greyhound[2].tex e855d74cbbf8fce1 +111 126 1727153239656477867 output/race-squirrel[2].json 881f986f47bdc958 +234 276 1727153239766478755 output/race-big_dog[2].tex 7cd4cc4601275940 +102 118 1727153239646477786 output/race-greyhound[2].json 8a1974df62727e0d +74 91 1727153239616477545 output/starter3-a_hat[1].json 29cadc67f6a8a7d +72 87 1727153239616477545 output/starter2-mush[1].json 4579e122338f217 +278 302 1727153239809812438 output/survival-steak[2].tex c9b333dacdc7073a +206 256 1727153239739811873 output/starter4-lunch[2].tex 4fbdd7e4edd4ed0 +253 293 1727153239786478917 output/race-squirrel[2].tex b9fd60161e585fa1 +241 280 1727153239773145475 output/race-push[2].tex a6387d0ac44de358 +238 270 1727153239769812116 output/race-improvise[2].tex 28ce4d3450506476 +276 300 1727153239809812438 output/survival-salvage[2].tex f83190180e20f256 +130 160 1727153239663144588 output/starter1-first_aid[2].tex 68c20fb6a11f426f +87 107 1727153239633144346 output/starter3-wheel_dog[1].json b6cbc480a9f9fa98 +270 297 1727153239803145717 output/survival-malamute[2].tex bdd1ea4c38b3702 +207 242 1727153239739811873 output/starter4-dinner[1].tex 47e2896de706f8f3 +230 264 1727153239763145395 output/starter4-wheel_dog[1].tex 870294c13390f5b1 +227 262 1727153239759812035 output/starter4-repair_sled[2].tex fbdc73486f419252 +209 235 1727153239743145234 output/starter4-dog_chow[1].tex e97a6253f228aec9 +223 256 1727153239756478674 output/starter4-move[4].tex 853f8a0c8d595290 +126 144 1727153239669811309 output/survival-venison[2].json 6b15edbd6467bbf0 +239 278 1727153239773145475 output/race-problem_dog[2].tex 181ddd30d2d4f8f4 +72 87 1727153239613144185 output/starter2-husky[1].json 674939cbb806fb1c +100 117 1727153239646477786 output/race-bear[2].json 3988b58f94e6995b +76 94 1727153239623144266 output/starter3-lunch[2].json 66535a692c0eda16 +220 255 1727153239753145315 output/starter4-husky[1].tex 2ac4cda880f426a3 +217 255 1727153239749811955 output/starter4-grandma_soup[1].tex 672693ef77f96f98 +71 85 1727153239613144185 output/starter2-grandma_soup[1].json 556ea0ad84bd8518 +62 83 1727153239606477464 output/starter2-lunch[2].json 8776dfae8b3d1a70 +200 223 1727153239733145153 output/starter3-wheel_dog[1].tex c884c04f1be311cf +114 131 1727153239663144588 output/survival-bandage[2].json 156785b764e597ca +114 130 1727153239659811228 output/survival-band_aid[2].json ad1774cdc664d72c +111 126 1727153239656477867 output/race-supply_run[2].json fbbf94437a02c567 +117 130 1727153239663144588 output/survival-jerky[2].json 233ddb58ff9edea2 +109 127 1727153239659811228 output/race-rush[2].json 6381a581aee56ad4 +107 125 1727153239649811147 output/race-problem_dog[2].json 427f74a05bbbcaa7 +68 84 1727153239613144185 output/starter2-first_aid[2].json 2f10ac0106ed40f9 +123 140 1727153239673144668 output/survival-salvage[2].json ce6232d09edccbd5 +209 239 1727153239743145234 output/starter4-first_aid[2].tex 32c8e0f15c842301 +165 199 1727153239696478191 output/starter2-husky[1].tex c0064c2e2be3817a +120 137 1727153239666477948 output/survival-poutine[2].json 788257b82d6cd420 +91 111 1727153239639811066 output/starter4-first_aid[2].json 245f47632ea0c199 +58 75 1727153239606477464 output/starter1-repair_sled[2].json 91c64e0366fb6e43 +125 157 1727153239683144749 output/survival-steak[2].json 62ae40e9a97e7cf6 +270 301 1727153239803145717 output/survival-makeshift_sled[2].tex bcd363aaaf3ec823 +110 126 1727153239656477867 output/race-slow_and_steady[2].json 29b8f07855ca9fea +100 116 1727153239643144427 output/starter4-upgrade_sled[2].json f0f47361eeac7498 +102 116 1727153239646477786 output/race-big_dog[2].json cbb894baeffbb17e +70 84 1727153239613144185 output/starter2-good_dog[1].json e2b546446b6730d0 +130 162 1727153239663144588 output/starter1-good_dog[1].tex e71e34a2d813bd38 +67 84 1727153239613144185 output/starter2-dog_chow[1].json 724fb2071579aacc +63 84 1727153239609810824 output/starter2-dinner[1].json 2e2feadb1bf90c61 +75 91 1727153239619810904 output/starter3-breakfast[2].json a610c13334e6ab75 +102 119 1727153239649811147 output/race-dog_shoes[2].json e72231dab879aa88 +280 301 1727153239813145799 output/survival-venison[2].tex caf1bc2b1bc56d55 +87 102 1727153239633144346 output/starter3-upgrade_sled[2].json 70259e124fcb5670 +72 87 1727153239616477545 output/starter2-repair_sled[2].json 7288eee999e108a1 +141 181 1727153239673144668 output/starter2-breakfast[2].tex 7faef167631fe9ff +84 100 1727153239626477626 output/starter3-grandma_soup[1].json 55dcedbefb802519 +194 238 1727153239726478433 output/starter3-grandma_soup[1].tex e27a00cbc55ab0ba +230 262 1727153239763145395 output/starter4-upgrade_sled[2].tex 7f499604a86df632 +55 70 1727153239603144103 output/starter1-a_hat[1].json c14c644a5cc60e7d +126 165 1727153239659811228 output/starter1-lunch[2].tex 92f61f787c8aa6a6 +100 117 1727153239646477786 output/starter4-wheel_dog[1].json 87275f0b6fdd5d2e +91 107 1727153239636477706 output/starter4-dinner[1].json 4c665f04f17cc36 +56 72 1727153239603144103 output/starter1-first_aid[2].json 639931517030a93e +74 91 1727153239616477545 output/starter2-wheel_dog[1].json 21e31b0e9c9187b1 +162 196 1727153239693144830 output/starter2-good_dog[1].tex df5bad32dc50c29e +116 130 1727153239659811228 output/survival-bison[2].json 546c7c125ef39979 +55 71 1727153239599810744 output/starter1-breakfast[2].json 992cc1d2c5b6c111 +55 72 1727153239603144103 output/starter1-dinner[1].json 138c283d3a5d99d2 +74 87 1727153239619810904 output/starter2-upgrade_sled[2].json dafe1f053784fb10 +80 99 1727153239623144266 output/starter3-dinner[1].json 6951385d0e0e606c +84 96 1727153239626477626 output/starter3-husky[1].json da102337d78a7dd9 +72 87 1727153239613144185 output/starter2-move[4].json e488d56c622a3969 +105 120 1727153239649811147 output/race-improvise[2].json a5d9dbe75fe13b7 +95 110 1727153239639811066 output/starter4-grandma_soup[1].json 691624ee255f684e +189 227 1727153239723145073 output/starter3-first_aid[2].tex 76a4c5c32cbe47a0 +81 95 1727153239626477626 output/starter3-first_aid[2].json 1516c6755802eaa4 +118 135 1727153239663144588 output/survival-makeshift_sled[2].json 3ff79f9cde16e641 +107 125 1727153239649811147 output/race-push[2].json 60df43c8dc1c9eaf +87 102 1727153239629810985 output/starter4-a_hat[1].json 5ed401dcde39c091 +84 100 1727153239629810985 output/starter3-mush[1].json 10f540722286f3a8 +84 100 1727153239626477626 output/starter3-move[4].json ca579c76f1e8a258 +107 123 1727153239653144507 output/race-midnight_sun[2].json fa56bbd08d481073 +87 105 1727153239633144346 output/starter4-breakfast[2].json 7769f58344866d65 +91 109 1727153239639811066 output/starter4-dog_chow[1].json 3639159b12a19df7 +262 294 1727153239796478998 output/survival-bison[2].tex 5608316196501154 +116 130 1727153239659811228 output/survival-brandy[2].json e014c777045258b1 +1 59 1727237714087415911 build.ninja 617643cca5ee42c +3 13 1727237714090749270 output/starter1-dinner[1].pdf.dd 63b43e210df9d42b +3 15 1727237714090749270 output/starter1-lunch[2].pdf.dd e1150c54eb76d6b9 +3 15 1727237714090749270 output/starter1-dog_chow[1].pdf.dd b282f2e1f3853504 +2 16 1727237714090749270 output/starter1-breakfast[2].pdf.dd f1a93c67d0dfc391 +3 16 1727237714090749270 output/starter1-husky[1].pdf.dd f86898bf0a0abf8 +2 16 1727237714090749270 output/starter1-a_hat[1].pdf.dd 8d488c2178163442 +3 16 1727237714090749270 output/starter1-move[4].pdf.dd 8a93e5475339b404 +4 17 1727237714090749270 output/starter1-wheel_dog[1].pdf.dd 512bade8af61bfa2 +3 17 1727237714090749270 output/starter1-good_dog[1].pdf.dd 7f619bfe4634a13 +3 17 1727237714090749270 output/starter1-mush[1].pdf.dd 162057d8301b8555 +4 17 1727237714094082628 output/starter2-breakfast[2].pdf.dd 7d71127dbcb27def +3 18 1727237714090749270 output/starter1-first_aid[2].pdf.dd 57566cd1dcd45d5e +4 18 1727237714090749270 output/starter1-repair_sled[2].pdf.dd 31456308b14dfaf7 +4 19 1727237714090749270 output/starter2-a_hat[1].pdf.dd b4445d2e632d1ddd +7 19 1727237714094082628 output/starter2-dinner[1].pdf.dd f3e53f7a38e1de26 +3 21 1727237714090749270 output/starter1-grandma_soup[1].pdf.dd 790087690cee3ecf +4 21 1727237714090749270 output/starter1-upgrade_sled[2].pdf.dd dd767981d927a5d6 +5 22 1727237714094082628 output/starter2-lunch[2].pdf.dd 8ec38d97f5cf5180 +15 25 1727237714104082704 output/starter2-first_aid[2].pdf.dd bcf26ae869a6cb31 +14 27 1727237714100749346 output/starter2-dog_chow[1].pdf.dd b65091d1b017d954 +16 28 1727237714104082704 output/starter2-husky[1].pdf.dd 5c2d2d2294e2586c +16 28 1727237714104082704 output/starter2-move[4].pdf.dd 6669896badef2f6f +17 28 1727237714104082704 output/starter2-repair_sled[2].pdf.dd 69c9db615db7b190 +17 28 1727237714104082704 output/starter2-upgrade_sled[2].pdf.dd 13b81a1d5afe3f6a +19 29 1727237714107416063 output/starter3-dinner[1].pdf.dd a1715bfe9d039fcc +16 30 1727237714104082704 output/starter2-grandma_soup[1].pdf.dd 5d2fe35b00ccdf39 +17 31 1727237714104082704 output/starter3-a_hat[1].pdf.dd bde30dfd41dca5f8 +15 32 1727237714104082704 output/starter2-good_dog[1].pdf.dd 70fcf039bbd5e0fd +16 32 1727237714104082704 output/starter2-mush[1].pdf.dd 8d6fa1dd9218e0f4 +17 32 1727237714104082704 output/starter2-wheel_dog[1].pdf.dd 471e8eab288ee167 +18 33 1727237714107416063 output/starter3-breakfast[2].pdf.dd e47519262b8900bc +18 34 1727237714107416063 output/starter3-lunch[2].pdf.dd 70f6558357610f1d +21 34 1727237714107416063 output/starter3-first_aid[2].pdf.dd 613d8413914a9437 +21 36 1727237714110749422 output/starter3-good_dog[1].pdf.dd 12277ac09f1efa7a +22 36 1727237714110749422 output/starter3-grandma_soup[1].pdf.dd e122c25b8e0fe676 +19 38 1727237714107416063 output/starter3-dog_chow[1].pdf.dd faa0453219cdff11 +25 38 1727237714114082780 output/starter3-husky[1].pdf.dd bc2a8f59664bf98e +27 38 1727237714114082780 output/starter3-move[4].pdf.dd afd6474b95b94de8 +28 40 1727237714117416139 output/starter3-mush[1].pdf.dd afb664c2bb5a247c +28 41 1727237714117416139 output/starter3-repair_sled[2].pdf.dd b8546c6fd2f06556 +28 41 1727237714117416139 output/starter3-upgrade_sled[2].pdf.dd d46e495c63aa472b +29 42 1727237714117416139 output/starter3-wheel_dog[1].pdf.dd 3e2b93668dc9dd10 +29 43 1727237714117416139 output/starter4-a_hat[1].pdf.dd dbe724914dfa7057 +31 43 1727237714117416139 output/starter4-lunch[2].pdf.dd da94f42864767472 +30 44 1727237714117416139 output/starter4-breakfast[2].pdf.dd 756eaadc1cf3e59b +32 45 1727237714120749498 output/starter4-dinner[1].pdf.dd bc34368b3d7743e0 +32 46 1727237714120749498 output/starter4-first_aid[2].pdf.dd 89d2f5293e2cb23f +32 47 1727237714120749498 output/starter4-dog_chow[1].pdf.dd b5485f84e3523220 +34 47 1727237714120749498 output/starter4-good_dog[1].pdf.dd 9a270ebf79ca6cf6 +34 48 1727237714120749498 output/starter4-grandma_soup[1].pdf.dd 29044cc96c7d7e6b +34 49 1727237714124082856 output/starter4-husky[1].pdf.dd c0c30ebf82a8d148 +36 49 1727237714124082856 output/starter4-move[4].pdf.dd c176a17da97104fe +37 49 1727237714124082856 output/starter4-mush[1].pdf.dd 105d15b25f822edb +38 50 1727237714127416215 output/starter4-repair_sled[2].pdf.dd b407a9659251d6d8 +38 51 1727237714127416215 output/starter4-upgrade_sled[2].pdf.dd 76baad4a2e876941 +38 51 1727237714127416215 output/starter4-wheel_dog[1].pdf.dd b172f533352bbcd0 +40 53 1727237714127416215 output/race-bear[2].pdf.dd c72ab419a73c4ff +41 53 1727237714130749574 output/race-big_dog[2].pdf.dd c8c56699a53f3268 +41 54 1727237714130749574 output/race-dog_shoes[2].pdf.dd 3f43354477310071 +42 54 1727237714130749574 output/race-greyhound[2].pdf.dd 77c29dd0823baa4 +43 56 1727237714130749574 output/race-improvise[2].pdf.dd b402aa5b1fb63558 +44 57 1727237714130749574 output/race-midnight_sun[2].pdf.dd 98a1d3734d69c694 +44 58 1727237714134082932 output/race-problem_dog[2].pdf.dd b76a69d79d0f04fc +45 59 1727237714134082932 output/race-push[2].pdf.dd 7781c9d84f2e9e5 +46 60 1727237714134082932 output/race-rush[2].pdf.dd 259290352c473283 +47 60 1727237714134082932 output/race-squirrel[2].pdf.dd d038839594eec7a7 +47 61 1727237714134082932 output/race-slow_and_steady[2].pdf.dd 468a432aedd2730 +48 62 1727237714137416291 output/race-supply_run[2].pdf.dd 273ff50b7a0f3279 +49 62 1727237714137416291 output/race-tiara[2].pdf.dd 897a78e9785531d2 +51 63 1727237714140749650 output/survival-bison[2].pdf.dd 8f2e4d786999d022 +49 63 1727237714137416291 output/survival-antique_sled[2].pdf.dd ccfd94dd3301fe02 +50 63 1727237714137416291 output/survival-band_aid[2].pdf.dd f65c9e7e45c72686 +52 64 1727237714140749650 output/survival-brandy[2].pdf.dd acb4486ad882443 +51 64 1727237714137416291 output/survival-bandage[2].pdf.dd d2ee39f279ac5502 +53 65 1727237714140749650 output/survival-jerky[2].pdf.dd 3bc9fdf0045df70d +53 65 1727237714140749650 output/survival-caffeine[2].pdf.dd d95a5bc7725c8e2e +54 65 1727237714140749650 output/survival-makeshift_sled[2].pdf.dd df66a90ec1559deb +54 66 1727237714144083008 output/survival-malamute[2].pdf.dd 3ee2c5a852d06307 +56 67 1727237714144083008 output/survival-poutine[2].pdf.dd e002076a70995bd1 +57 67 1727237714144083008 output/survival-salvage[2].pdf.dd 765fb89d194052cc +58 67 1727237714147416367 output/survival-steak[2].pdf.dd 39e3845a73731583 +59 69 1727237714147416367 output/survival-venison[2].pdf.dd 77544204b8ed6485 +65 4481 1727237714154083084 output/starter1-move[4].pdf e984414ca2816f7b +60 4488 1727237714147416367 output/starter1-breakfast[2].pdf ecd2aee0212808b9 +67 4539 1727237714154083084 output/starter2-breakfast[2].pdf e12167660172bd84 +62 4579 1727237714150749725 output/starter1-dinner[1].pdf dfd598574dde06a8 +65 4649 1727237714154083084 output/starter1-mush[1].pdf aef07dc2dea5b92e +63 4754 1727237714150749725 output/starter1-good_dog[1].pdf e7b39f808375e174 +67 4763 1727237714154083084 output/starter2-a_hat[1].pdf 60ae081c11354007 +65 4878 1727237714154083084 output/starter1-upgrade_sled[2].pdf 4a9498f4c01abdd8 +69 4885 1727237714157416443 output/starter2-dinner[1].pdf 1d530d8a247e9e4f +63 4983 1727237714150749725 output/starter1-first_aid[2].pdf d57c2f276eccd01d +60 5023 1727237714147416367 output/starter1-a_hat[1].pdf 3299e24bced8523e +63 5092 1727237714150749725 output/starter1-grandma_soup[1].pdf bf527759db4552fd +66 5140 1727237714154083084 output/starter1-wheel_dog[1].pdf 4e4c924c6388c1e5 +62 5154 1727237714150749725 output/starter1-dog_chow[1].pdf d78ffa252d1df3b0 +65 5325 1727237714154083084 output/starter1-repair_sled[2].pdf 4d69da4a373ff54f +1 59 1727240554806242648 build.ninja 617643cca5ee42c +3 2134 1727240554812909365 output/starter1-good_dog[1].pdf 562a206cf021382c +3 2190 1727240554812909365 output/starter1-dinner[1].pdf 75eee28acd866e91 +4 2204 1727240554812909365 output/starter2-a_hat[1].pdf 3a7ecd8fda2ebbb2 +3 2231 1727240554812909365 output/starter1-breakfast[2].pdf cd6c3b762a14ba7e +4 2244 1727240554812909365 output/starter2-breakfast[2].pdf dcdfed3fbecfd711 +4 2323 1727240554812909365 output/starter1-move[4].pdf 21e57a174a1bdb64 +3 2333 1727240554812909365 output/starter1-dog_chow[1].pdf e6059b971ecccf08 +4 2463 1727240554812909365 output/starter1-mush[1].pdf da08ddd4430d1ff5 +4 2472 1727240554812909365 output/starter1-wheel_dog[1].pdf 477bc4123723f32e +3 2505 1727240554812909365 output/starter1-first_aid[2].pdf bc914b52b3c7932f +4 2524 1727240554812909365 output/starter1-repair_sled[2].pdf de512bd9846810df +3 2585 1727240554809576006 output/starter1-a_hat[1].pdf f0409905765d34a0 +3 2878 1727240554812909365 output/starter1-grandma_soup[1].pdf 781e38e1b27d1db5 +7 2897 1727240554816242723 output/starter2-dinner[1].pdf b7b7cd6f5905b40d +4 2991 1727240554812909365 output/starter1-upgrade_sled[2].pdf 382df3c7f0a26053 +2136 4060 1727240556946258596 output/starter2-dog_chow[1].pdf 901831e8e626abe9 +2190 4132 1727240556999592327 output/starter2-first_aid[2].pdf abd559997d180368 +2325 4356 1727240557132926654 output/starter2-move[4].pdf b2c8bb0f1515b5d2 +2333 4418 1727240557142926729 output/starter2-mush[1].pdf 354c476a028d30bb +2507 4639 1727240557316261353 output/starter2-wheel_dog[1].pdf dbed76f4a389b234 +2524 4716 1727240557332928144 output/starter3-a_hat[1].pdf d95a7331b757e332 +2585 4720 1727240557392928591 output/starter3-breakfast[2].pdf c6b24910fa48d234 +2204 4808 1727240557012925760 output/starter2-good_dog[1].pdf b3d66c44cee18d9 +2463 4814 1727240557272927697 output/starter2-repair_sled[2].pdf 6086ced9a9eb8a41 +2231 4824 1727240557039592625 output/starter2-grandma_soup[1].pdf 9a5f18a46e4a26c4 +2473 5019 1727240557282927772 output/starter2-upgrade_sled[2].pdf eb2f482adad33755 +2897 5305 1727240557706264259 output/starter3-dinner[1].pdf 286d4f8425c6ad47 +2991 5436 1727240557799598287 output/starter3-dog_chow[1].pdf 9224d6c703f0988c +4132 5960 1727240558939606781 output/starter3-good_dog[1].pdf c25eb05ee14ea7cf +4061 6241 1727240558869606260 output/starter3-first_aid[2].pdf 5f724a3866c702e5 +4356 6458 1727240559166275137 output/starter3-grandma_soup[1].pdf 8192faeb182097c4 +4639 6684 1727240559446277223 output/starter3-move[4].pdf aad47537c2af4b8e +4814 6707 1727240559622945205 output/starter3-wheel_dog[1].pdf 953b66797590c0ce +4716 6742 1727240559526277819 output/starter3-mush[1].pdf 149bc2adc048089 +4720 6817 1727240559529611177 output/starter3-repair_sled[2].pdf b235e0965b17ba25 +4808 6864 1727240559616278489 output/starter3-upgrade_sled[2].pdf 5627591f000605ce +4824 6940 1727240559632945280 output/starter4-a_hat[1].pdf e42a3db1a6983dd +5019 7304 1727240559826280054 output/starter4-breakfast[2].pdf 9e8cee42ac3305c6 +5436 7615 1727240560242949824 output/starter4-dinner[1].pdf 3658260762477852 +6241 8034 1727240561049622500 output/starter4-first_aid[2].pdf 83b444c4fbd524be +5960 8168 1727240560769620414 output/starter4-dog_chow[1].pdf 584eb85a0d599cde +6459 8300 1727240561266290780 output/starter4-good_dog[1].pdf 1ba22ba0472f6db7 +6743 8622 1727240561552959582 output/starter4-move[4].pdf 10bf39ab2790133e +6684 8906 1727240561492959135 output/starter4-grandma_soup[1].pdf 8e190153a754445d +6817 9065 1727240561626293461 output/starter4-mush[1].pdf ab8e492cf7b71c10 +6940 9294 1727240561749627714 output/starter4-upgrade_sled[2].pdf 82aab57349792b75 +6864 9298 1727240561672960475 output/starter4-repair_sled[2].pdf d9c03ba60d5bd2ff +7304 9427 1727240562112963753 output/starter4-wheel_dog[1].pdf 45b01e86ebbdeab2 +8034 9876 1727240562842969190 output/race-big_dog[2].pdf 1318c44d1c52e889 +7615 9920 1727240562422966062 output/race-bear[2].pdf 6b3eabb592a26041 +8301 10258 1727240563109637843 output/race-greyhound[2].pdf 2cb6300c0ea28888 +8169 10354 1727240562976303516 output/race-dog_shoes[2].pdf 8687404c5fe2a524 +8622 10653 1727240563429640225 output/race-improvise[2].pdf 98eebb2f471f3521 +8906 10879 1727240563712975669 output/race-midnight_sun[2].pdf b9249690760e16cf +9065 11069 1727240563872976861 output/race-problem_dog[2].pdf 86f450e3b4d1e927 +9294 11347 1727240564102978574 output/race-push[2].pdf 7ad4d5950b2748d6 +9298 11466 1727240564106311932 output/race-rush[2].pdf ec11bcb36a82032e +9428 11539 1727240564236312899 output/race-slow_and_steady[2].pdf 998944417c632f8f +9920 11772 1727240564729649907 output/race-supply_run[2].pdf 858b1d45262d9cc +9876 12031 1727240564682982892 output/race-squirrel[2].pdf 2f170eb65efa0c57 +10354 12331 1727240565162986467 output/survival-antique_sled[2].pdf 62499f573e83e9dd +10653 12544 1727240565462988700 output/survival-band_aid[2].pdf 24cea146521765f7 +10258 12768 1727240565066319080 output/race-tiara[2].pdf b9f435fd679b17c1 +10880 12903 1727240565689657055 output/survival-bandage[2].pdf a93799fe5b45d286 +4 12991 1727240554812909365 output/starter1-husky[1].pdf 5d6212724989777b +11069 13215 1727240565876325111 output/survival-bison[2].pdf e83221143f4ae17d +11540 13415 1727240566349661968 output/survival-jerky[2].pdf 9aedaa5c0ea51033 +11348 13625 1727240566156327196 output/survival-brandy[2].pdf e96046ed86bfaa1 +11466 13655 1727240566276328089 output/survival-caffeine[2].pdf 6081251ba8744aca +11772 13732 1727240566579663681 output/survival-makeshift_sled[2].pdf 8446435747fe6ec5 +12031 13831 1727240566839665616 output/survival-malamute[2].pdf cbea712be2a0cb93 +12331 14034 1727240567139667850 output/survival-poutine[2].pdf 1560c39333f0a27c +12544 14123 1727240567353002772 output/survival-salvage[2].pdf 2160f551ef6051d0 +12768 14164 1727240567576337767 output/survival-steak[2].pdf 977a73545f8bc92 +12903 14215 1727240567713005452 output/survival-venison[2].pdf 6faa33fb25d563b6 +2244 14616 1727240557052926058 output/starter2-husky[1].pdf add95d214e10d0d1 +4418 16044 1727240559226275584 output/starter3-husky[1].pdf e70aecbd333fffe3 +1 56 1727240709020717999 output/everything.json 7598a412a8d6cd96 +1 59 1727241013539607419 build.ninja 617643cca5ee42c +1 14 1727241013552940849 output/starter1-lunch[2].json 61a9d9ee305c5f67 +1 15 1727241013552940849 output/starter1-dinner[1].json 138c283d3a5d99d2 +1 15 1727241013552940849 output/starter1-dog_chow[1].json 2b7041149e4c654f +2 15 1727241013556274206 output/starter1-grandma_soup[1].json 16dfb2838ff6b66b +1 16 1727241013556274206 output/starter1-a_hat[1].json c14c644a5cc60e7d +2 16 1727241013556274206 output/starter1-first_aid[2].json 639931517030a93e +2 17 1727241013556274206 output/starter1-move[4].json 5ed6d2c1d4375278 +2 17 1727241013556274206 output/starter1-mush[1].json fb6d1be87c978696 +1 18 1727241013556274206 output/starter1-breakfast[2].json 992cc1d2c5b6c111 +2 19 1727241013556274206 output/starter1-good_dog[1].json 5facca43c6f216cf +2 20 1727241013559607563 output/starter1-husky[1].json f3604efccd040e6a +2 21 1727241013556274206 output/starter1-repair_sled[2].json 91c64e0366fb6e43 +4 23 1727241013559607563 output/starter1-upgrade_sled[2].json be4ede04f0cf13a +4 24 1727241013559607563 output/starter1-wheel_dog[1].json a4cb49211688fd4e +7 25 1727241013562940921 output/starter2-a_hat[1].json 82dbefee1b5ad091 +7 26 1727241013562940921 output/starter2-breakfast[2].json a3a86b00c990e721 +9 27 1727241013566274279 output/starter2-lunch[2].json 8776dfae8b3d1a70 +14 28 1727241013566274279 output/starter2-dinner[1].json 2e2feadb1bf90c61 +15 29 1727241013569607636 output/starter2-first_aid[2].json 2f10ac0106ed40f9 +15 29 1727241013569607636 output/starter2-good_dog[1].json e2b546446b6730d0 +16 30 1727241013569607636 output/starter2-move[4].json e488d56c622a3969 +15 32 1727241013569607636 output/starter2-dog_chow[1].json 724fb2071579aacc +15 33 1727241013569607636 output/starter2-grandma_soup[1].json 556ea0ad84bd8518 +17 33 1727241013572940993 output/starter2-mush[1].json 4579e122338f217 +18 34 1727241013572940993 output/starter2-upgrade_sled[2].json dafe1f053784fb10 +19 35 1727241013572940993 output/starter2-wheel_dog[1].json 21e31b0e9c9187b1 +16 35 1727241013572940993 output/starter2-husky[1].json 674939cbb806fb1c +17 37 1727241013572940993 output/starter2-repair_sled[2].json 7288eee999e108a1 +20 37 1727241013572940993 output/starter3-a_hat[1].json 29cadc67f6a8a7d +21 37 1727241013572940993 output/starter3-breakfast[2].json a610c13334e6ab75 +24 40 1727241013576274351 output/starter3-dinner[1].json 6951385d0e0e606c +23 40 1727241013576274351 output/starter3-lunch[2].json 66535a692c0eda16 +25 41 1727241013576274351 output/starter3-dog_chow[1].json 3e7ea0fe40e8c6a8 +26 45 1727241013579607709 output/starter3-first_aid[2].json 1516c6755802eaa4 +27 45 1727241013582941066 output/starter3-good_dog[1].json 9c5bb226ccf601c3 +28 45 1727241013586274424 output/starter3-grandma_soup[1].json 55dcedbefb802519 +29 46 1727241013582941066 output/starter3-husky[1].json da102337d78a7dd9 +29 46 1727241013586274424 output/starter3-move[4].json ca579c76f1e8a258 +31 46 1727241013586274424 output/starter3-mush[1].json 10f540722286f3a8 +32 47 1727241013586274424 output/starter3-repair_sled[2].json aca4c779f65df71d +33 48 1727241013586274424 output/starter3-upgrade_sled[2].json 70259e124fcb5670 +33 48 1727241013586274424 output/starter3-wheel_dog[1].json b6cbc480a9f9fa98 +34 51 1727241013586274424 output/starter4-a_hat[1].json 5ed401dcde39c091 +35 52 1727241013589607781 output/starter4-breakfast[2].json 7769f58344866d65 +35 53 1727241013589607781 output/starter4-lunch[2].json 4e28cc8357b0bdc9 +37 54 1727241013589607781 output/starter4-dinner[1].json 4c665f04f17cc36 +37 55 1727241013589607781 output/starter4-dog_chow[1].json 3639159b12a19df7 +37 57 1727241013592941138 output/starter4-first_aid[2].json 245f47632ea0c199 +40 57 1727241013592941138 output/starter4-grandma_soup[1].json 691624ee255f684e +40 60 1727241013596274496 output/starter4-good_dog[1].json 2cd7deb4ce12dd0e +41 60 1727241013596274496 output/starter4-husky[1].json 5d408016d01e5fe2 +45 60 1727241013599607854 output/starter4-move[4].json da3fe82b0e1629d4 +45 60 1727241013599607854 output/starter4-repair_sled[2].json 5f5eb00b6ee9a92d +46 60 1727241013599607854 output/starter4-upgrade_sled[2].json f0f47361eeac7498 +46 61 1727241013599607854 output/starter4-wheel_dog[1].json 87275f0b6fdd5d2e +45 61 1727241013599607854 output/starter4-mush[1].json f145fb748bf0984f +46 62 1727241013599607854 output/race-bear[2].json 3988b58f94e6995b +48 64 1727241013599607854 output/race-big_dog[2].json cbb894baeffbb17e +48 68 1727241013599607854 output/race-dog_shoes[2].json e72231dab879aa88 +48 68 1727241013606274568 output/race-greyhound[2].json 8a1974df62727e0d +51 68 1727241013602941211 output/race-improvise[2].json a5d9dbe75fe13b7 +52 69 1727241013606274568 output/race-midnight_sun[2].json fa56bbd08d481073 +53 70 1727241013609607926 output/race-problem_dog[2].json 427f74a05bbbcaa7 +54 72 1727241013606274568 output/race-push[2].json 60df43c8dc1c9eaf +55 72 1727241013612941284 output/race-rush[2].json 6381a581aee56ad4 +57 72 1727241013609607926 output/race-slow_and_steady[2].json 29b8f07855ca9fea +57 72 1727241013612941284 output/race-squirrel[2].json 881f986f47bdc958 +60 73 1727241013612941284 output/race-supply_run[2].json fbbf94437a02c567 +60 75 1727241013612941284 output/race-tiara[2].json 27b239866ff4e400 +60 75 1727241013612941284 output/survival-band_aid[2].json ad1774cdc664d72c +60 76 1727241013616274641 output/survival-antique_sled[2].json 8b28bf51304fde70 +60 77 1727241013612941284 output/survival-bandage[2].json 156785b764e597ca +61 78 1727241013612941284 output/survival-brandy[2].json e014c777045258b1 +62 78 1727241013616274641 output/survival-caffeine[2].json 3bc0418cc383806d +61 80 1727241013616274641 output/survival-bison[2].json 546c7c125ef39979 +64 81 1727241013622941356 output/survival-jerky[2].json 233ddb58ff9edea2 +68 82 1727241013622941356 output/survival-makeshift_sled[2].json 3ff79f9cde16e641 +68 83 1727241013622941356 output/survival-poutine[2].json 788257b82d6cd420 +68 85 1727241013622941356 output/survival-malamute[2].json 2221c3c882a9ebb8 +69 87 1727241013626274713 output/survival-salvage[2].json ce6232d09edccbd5 +70 90 1727241013626274713 output/survival-steak[2].json 62ae40e9a97e7cf6 +72 90 1727241013626274713 output/survival-venison[2].json 6b15edbd6467bbf0 +72 101 1727241013612941284 output/starter1-a_hat[1].tex ae66c207b852e49a +72 104 1727241013612941284 output/starter1-lunch[2].tex 92f61f787c8aa6a6 +78 108 1727241013619607998 output/starter1-move[4].tex 50bf1391489b3aef +75 108 1727241013616274641 output/starter1-dog_chow[1].tex dcf31b0a73d63b50 +76 109 1727241013616274641 output/starter1-good_dog[1].tex e71e34a2d813bd38 +72 109 1727241013612941284 output/starter1-breakfast[2].tex 7e5ecf9a2977be2b +75 109 1727241013616274641 output/starter1-first_aid[2].tex 68c20fb6a11f426f +73 110 1727241013616274641 output/starter1-dinner[1].tex df2c8b9c528cb69d +81 112 1727241013622941356 output/starter1-repair_sled[2].tex bf364f7370d6a67a +82 113 1727241013622941356 output/starter1-upgrade_sled[2].tex 20bfaf17f28bbe80 +85 119 1727241013626274713 output/starter2-a_hat[1].tex cb001539bfea550b +77 121 1727241013619607998 output/starter1-grandma_soup[1].tex 443fe34b450ceba9 +78 122 1727241013619607998 output/starter1-husky[1].tex e9ac3c21ae0addbc +83 124 1727241013622941356 output/starter1-wheel_dog[1].tex f9b064d8e97143a8 +90 132 1727241013632941429 output/starter2-lunch[2].tex 4541a796e909301a +87 132 1727241013629608071 output/starter2-breakfast[2].tex 7faef167631fe9ff +91 133 1727241013632941429 output/starter2-dinner[1].tex 7a316b537172cbd4 +104 134 1727241013646274859 output/starter2-first_aid[2].tex e9c0d1d6fffedab7 +80 137 1727241013622941356 output/starter1-mush[1].tex c39015cbeead1e5 +102 140 1727241013642941500 output/starter2-dog_chow[1].tex e86c2711d140449f +108 142 1727241013649608216 output/starter2-good_dog[1].tex df5bad32dc50c29e +108 143 1727241013649608216 output/starter2-grandma_soup[1].tex d427ce8beeacf4be +109 144 1727241013649608216 output/starter2-husky[1].tex c0064c2e2be3817a +109 145 1727241013649608216 output/starter2-move[4].tex 2756c8c072abcf04 +110 146 1727241013652941573 output/starter2-repair_sled[2].tex 7c93906666930553 +112 147 1727241013652941573 output/starter2-upgrade_sled[2].tex 42e84f4802277573 +113 147 1727241013652941573 output/starter2-wheel_dog[1].tex ebba1a12dd829707 +109 150 1727241013649608216 output/starter2-mush[1].tex a5fd2a124f28dfe1 +124 153 1727241013666275003 output/starter3-dinner[1].tex 8d7f7de0617b130c +119 155 1727241013662941646 output/starter3-a_hat[1].tex 2f07bbc2a5f41c26 +122 155 1727241013662941646 output/starter3-lunch[2].tex 3c0bd4f22889c9e0 +132 163 1727241013672941718 output/starter3-first_aid[2].tex 76a4c5c32cbe47a0 +134 164 1727241013676275075 output/starter3-grandma_soup[1].tex e27a00cbc55ab0ba +121 170 1727241013662941646 output/starter3-breakfast[2].tex e279349523cf2596 +132 174 1727241013672941718 output/starter3-dog_chow[1].tex 4a4ea1cf2d4bea49 +134 175 1727241013676275075 output/starter3-good_dog[1].tex 51949c1a66f1de5f +137 176 1727241013679608434 output/starter3-husky[1].tex 6cedf9ea192cc9d2 +142 176 1727241013682941791 output/starter3-mush[1].tex 5b2fe99b40b1b79 +147 176 1727241013689608505 output/starter4-breakfast[2].tex 2b8b967bdfee262e +145 179 1727241013686275148 output/starter3-wheel_dog[1].tex c884c04f1be311cf +140 181 1727241013682941791 output/starter3-move[4].tex 56232af89954d2a6 +144 182 1727241013686275148 output/starter3-upgrade_sled[2].tex 315c06a8e5f87927 +150 184 1727241013692941863 output/starter4-dinner[1].tex 47e2896de706f8f3 +153 188 1727241013692941863 output/starter4-dog_chow[1].tex e97a6253f228aec9 +143 189 1727241013682941791 output/starter3-repair_sled[2].tex f9f1eb2c9ec2af42 +147 190 1727241013689608505 output/starter4-lunch[2].tex 4fbdd7e4edd4ed0 +155 192 1727241013696275221 output/starter4-first_aid[2].tex 32c8e0f15c842301 +146 194 1727241013689608505 output/starter4-a_hat[1].tex 99887fee85dfc799 +164 197 1727241013706275293 output/starter4-husky[1].tex 2ac4cda880f426a3 +155 199 1727241013696275221 output/starter4-good_dog[1].tex 3dc9cfaba9ebb5ac +163 200 1727241013706275293 output/starter4-grandma_soup[1].tex 672693ef77f96f98 +170 205 1727241013712942008 output/starter4-move[4].tex 853f8a0c8d595290 +174 209 1727241013716275366 output/starter4-mush[1].tex 8c5de8d414683d12 +175 210 1727241013716275366 output/starter4-repair_sled[2].tex fbdc73486f419252 +184 213 1727241013726275438 output/race-improvise[2].tex 28ce4d3450506476 +176 213 1727241013716275366 output/starter4-wheel_dog[1].tex 870294c13390f5b1 +177 216 1727241013719608723 output/race-bear[2].tex 46b31299502f74ab +176 218 1727241013716275366 output/starter4-upgrade_sled[2].tex 7f499604a86df632 +182 219 1727241013722942080 output/race-dog_shoes[2].tex 407ecc9929d0148d +182 220 1727241013722942080 output/race-greyhound[2].tex e855d74cbbf8fce1 +190 220 1727241013729608796 output/race-problem_dog[2].tex 181ddd30d2d4f8f4 +190 220 1727241013732942153 output/race-push[2].tex a6387d0ac44de358 +179 222 1727241013719608723 output/race-big_dog[2].tex 7cd4cc4601275940 +188 224 1727241013729608796 output/race-midnight_sun[2].tex e10c1cd61d31637e +198 228 1727241013739608868 output/race-squirrel[2].tex b9fd60161e585fa1 +192 229 1727241013732942153 output/race-rush[2].tex cad1de8e60823b89 +199 230 1727241013739608868 output/race-supply_run[2].tex ec21913f730a93cc +200 232 1727241013742942226 output/race-tiara[2].tex 1b500388b75efe79 +213 239 1727241013756275656 output/survival-brandy[2].tex 834751cf4834f448 +210 240 1727241013752942298 output/survival-bandage[2].tex 8748dc74bf0c6e83 +194 242 1727241013736275510 output/race-slow_and_steady[2].tex b2b21a508437d3aa +205 244 1727241013746275583 output/survival-antique_sled[2].tex c5902b33a2b88f78 +209 245 1727241013749608941 output/survival-band_aid[2].tex eeb61a33eb790adc +219 246 1727241013759609013 output/survival-makeshift_sled[2].tex bcd363aaaf3ec823 +220 247 1727241013762942371 output/survival-salvage[2].tex f83190180e20f256 +232 247 1727241013772942443 output/starter1-dinner[1].pdf.dd 63b43e210df9d42b +213 248 1727241013752942298 output/survival-bison[2].tex 5608316196501154 +216 249 1727241013756275656 output/survival-caffeine[2].tex 73f705c8ba10bbc3 +229 250 1727241013769609085 output/starter1-breakfast[2].pdf.dd f1a93c67d0dfc391 +220 251 1727241013762942371 output/survival-poutine[2].tex 7adfb24e69d8e7bf +228 252 1727241013769609085 output/starter1-a_hat[1].pdf.dd 8d488c2178163442 +230 252 1727241013772942443 output/starter1-lunch[2].pdf.dd e1150c54eb76d6b9 +218 253 1727241013759609013 output/survival-jerky[2].tex 7c5a3694f6f60395 +220 254 1727241013759609013 output/survival-malamute[2].tex bdd1ea4c38b3702 +239 254 1727241013779609158 output/starter1-dog_chow[1].pdf.dd b282f2e1f3853504 +240 255 1727241013779609158 output/starter1-first_aid[2].pdf.dd 57566cd1dcd45d5e +242 255 1727241013782942515 output/starter1-good_dog[1].pdf.dd 7f619bfe4634a13 +222 256 1727241013762942371 output/survival-steak[2].tex c9b333dacdc7073a +224 257 1727241013766275728 output/survival-venison[2].tex caf1bc2b1bc56d55 +245 257 1727241013786275873 output/starter1-husky[1].pdf.dd f86898bf0a0abf8 +244 258 1727241013786275873 output/starter1-grandma_soup[1].pdf.dd 790087690cee3ecf +246 258 1727241013786275873 output/starter1-move[4].pdf.dd 8a93e5475339b404 +247 259 1727241013789609231 output/starter1-mush[1].pdf.dd 162057d8301b8555 +247 261 1727241013789609231 output/starter1-repair_sled[2].pdf.dd 31456308b14dfaf7 +248 262 1727241013789609231 output/starter1-upgrade_sled[2].pdf.dd dd767981d927a5d6 +249 262 1727241013789609231 output/starter1-wheel_dog[1].pdf.dd 512bade8af61bfa2 +251 262 1727241013792942588 output/starter2-breakfast[2].pdf.dd 7d71127dbcb27def +250 264 1727241013789609231 output/starter2-a_hat[1].pdf.dd b4445d2e632d1ddd +252 264 1727241013792942588 output/starter2-lunch[2].pdf.dd 8ec38d97f5cf5180 +255 264 1727241013796275946 output/starter2-husky[1].pdf.dd 5c2d2d2294e2586c +252 266 1727241013792942588 output/starter2-dinner[1].pdf.dd f3e53f7a38e1de26 +253 266 1727241013792942588 output/starter2-dog_chow[1].pdf.dd b65091d1b017d954 +254 266 1727241013796275946 output/starter2-first_aid[2].pdf.dd bcf26ae869a6cb31 +254 267 1727241013796275946 output/starter2-good_dog[1].pdf.dd 70fcf039bbd5e0fd +255 269 1727241013796275946 output/starter2-grandma_soup[1].pdf.dd 5d2fe35b00ccdf39 +256 271 1727241013796275946 output/starter2-move[4].pdf.dd 6669896badef2f6f +257 271 1727241013799609303 output/starter2-mush[1].pdf.dd 8d6fa1dd9218e0f4 +257 272 1727241013799609303 output/starter2-repair_sled[2].pdf.dd 69c9db615db7b190 +258 273 1727241013799609303 output/starter2-upgrade_sled[2].pdf.dd 13b81a1d5afe3f6a +259 274 1727241013799609303 output/starter2-wheel_dog[1].pdf.dd 471e8eab288ee167 +259 274 1727241013799609303 output/starter3-a_hat[1].pdf.dd bde30dfd41dca5f8 +261 275 1727241013802942660 output/starter3-breakfast[2].pdf.dd e47519262b8900bc +262 275 1727241013802942660 output/starter3-lunch[2].pdf.dd 70f6558357610f1d +262 275 1727241013802942660 output/starter3-dinner[1].pdf.dd a1715bfe9d039fcc +262 275 1727241013802942660 output/starter3-dog_chow[1].pdf.dd faa0453219cdff11 +264 276 1727241013806276017 output/starter3-first_aid[2].pdf.dd 613d8413914a9437 +264 277 1727241013806276017 output/starter3-good_dog[1].pdf.dd 12277ac09f1efa7a +264 278 1727241013806276017 output/starter3-grandma_soup[1].pdf.dd e122c25b8e0fe676 +266 279 1727241013806276017 output/starter3-husky[1].pdf.dd bc2a8f59664bf98e +266 280 1727241013806276017 output/starter3-move[4].pdf.dd afd6474b95b94de8 +267 281 1727241013809609376 output/starter3-repair_sled[2].pdf.dd b8546c6fd2f06556 +266 282 1727241013809609376 output/starter3-mush[1].pdf.dd afb664c2bb5a247c +269 283 1727241013809609376 output/starter3-upgrade_sled[2].pdf.dd d46e495c63aa472b +271 283 1727241013812942733 output/starter3-wheel_dog[1].pdf.dd 3e2b93668dc9dd10 +272 285 1727241013812942733 output/starter4-breakfast[2].pdf.dd 756eaadc1cf3e59b +273 286 1727241013812942733 output/starter4-lunch[2].pdf.dd da94f42864767472 +271 287 1727241013812942733 output/starter4-a_hat[1].pdf.dd dbe724914dfa7057 +274 287 1727241013816276090 output/starter4-dinner[1].pdf.dd bc34368b3d7743e0 +274 287 1727241013816276090 output/starter4-dog_chow[1].pdf.dd b5485f84e3523220 +275 288 1727241013816276090 output/starter4-first_aid[2].pdf.dd 89d2f5293e2cb23f +275 289 1727241013816276090 output/starter4-grandma_soup[1].pdf.dd 29044cc96c7d7e6b +275 290 1727241013816276090 output/starter4-husky[1].pdf.dd c0c30ebf82a8d148 +275 290 1727241013816276090 output/starter4-good_dog[1].pdf.dd 9a270ebf79ca6cf6 +276 290 1727241013816276090 output/starter4-move[4].pdf.dd c176a17da97104fe +277 291 1727241013819609448 output/starter4-mush[1].pdf.dd 105d15b25f822edb +278 291 1727241013819609448 output/starter4-repair_sled[2].pdf.dd b407a9659251d6d8 +279 292 1727241013819609448 output/starter4-upgrade_sled[2].pdf.dd 76baad4a2e876941 +280 292 1727241013822942806 output/starter4-wheel_dog[1].pdf.dd b172f533352bbcd0 +281 292 1727241013822942806 output/race-bear[2].pdf.dd c72ab419a73c4ff +282 293 1727241013822942806 output/race-big_dog[2].pdf.dd c8c56699a53f3268 +283 293 1727241013822942806 output/race-dog_shoes[2].pdf.dd 3f43354477310071 +283 296 1727241013826276163 output/race-greyhound[2].pdf.dd 77c29dd0823baa4 +285 297 1727241013826276163 output/race-improvise[2].pdf.dd b402aa5b1fb63558 +288 299 1727241013829609520 output/race-slow_and_steady[2].pdf.dd 468a432aedd2730 +286 300 1727241013826276163 output/race-midnight_sun[2].pdf.dd 98a1d3734d69c694 +287 300 1727241013829609520 output/race-problem_dog[2].pdf.dd b76a69d79d0f04fc +287 302 1727241013829609520 output/race-push[2].pdf.dd 7781c9d84f2e9e5 +287 303 1727241013829609520 output/race-rush[2].pdf.dd 259290352c473283 +289 303 1727241013829609520 output/race-squirrel[2].pdf.dd d038839594eec7a7 +290 304 1727241013832942878 output/survival-antique_sled[2].pdf.dd ccfd94dd3301fe02 +292 304 1727241013832942878 output/survival-brandy[2].pdf.dd acb4486ad882443 +290 304 1727241013832942878 output/race-supply_run[2].pdf.dd 273ff50b7a0f3279 +291 306 1727241013832942878 output/survival-band_aid[2].pdf.dd f65c9e7e45c72686 +291 306 1727241013832942878 output/survival-bandage[2].pdf.dd d2ee39f279ac5502 +293 307 1727241013832942878 output/survival-jerky[2].pdf.dd 3bc9fdf0045df70d +290 308 1727241013832942878 output/race-tiara[2].pdf.dd 897a78e9785531d2 +292 308 1727241013832942878 output/survival-bison[2].pdf.dd 8f2e4d786999d022 +292 309 1727241013832942878 output/survival-caffeine[2].pdf.dd d95a5bc7725c8e2e +293 309 1727241013836276235 output/survival-makeshift_sled[2].pdf.dd df66a90ec1559deb +296 310 1727241013836276235 output/survival-malamute[2].pdf.dd 3ee2c5a852d06307 +297 311 1727241013839609592 output/survival-poutine[2].pdf.dd e002076a70995bd1 +299 311 1727241013839609592 output/survival-salvage[2].pdf.dd 765fb89d194052cc +300 313 1727241013839609592 output/survival-steak[2].pdf.dd 39e3845a73731583 +300 317 1727241013842942951 output/survival-venison[2].pdf.dd 77544204b8ed6485 +306 2343 1727241013846276308 output/starter1-good_dog[1].pdf 562a206cf021382c +306 2343 1727241013846276308 output/starter1-good_dog[1].aux 562a206cf021382c +306 2343 1727241013846276308 output/starter1-good_dog[1].log 562a206cf021382c +304 2349 1727241013846276308 output/starter1-first_aid[2].pdf bc914b52b3c7932f +304 2349 1727241013846276308 output/starter1-first_aid[2].aux bc914b52b3c7932f +304 2349 1727241013846276308 output/starter1-first_aid[2].log bc914b52b3c7932f +302 2432 1727241013842942951 output/starter1-a_hat[1].pdf f0409905765d34a0 +302 2432 1727241013842942951 output/starter1-a_hat[1].aux f0409905765d34a0 +302 2432 1727241013842942951 output/starter1-a_hat[1].log f0409905765d34a0 +303 2435 1727241013842942951 output/starter1-breakfast[2].pdf cd6c3b762a14ba7e +303 2435 1727241013842942951 output/starter1-breakfast[2].aux cd6c3b762a14ba7e +303 2435 1727241013842942951 output/starter1-breakfast[2].log cd6c3b762a14ba7e +308 2486 1727241013849609665 output/starter1-move[4].pdf 21e57a174a1bdb64 +308 2486 1727241013849609665 output/starter1-move[4].aux 21e57a174a1bdb64 +308 2486 1727241013849609665 output/starter1-move[4].log 21e57a174a1bdb64 +308 2533 1727241013849609665 output/starter1-mush[1].pdf da08ddd4430d1ff5 +308 2533 1727241013849609665 output/starter1-mush[1].aux da08ddd4430d1ff5 +308 2533 1727241013849609665 output/starter1-mush[1].log da08ddd4430d1ff5 +304 2578 1727241013846276308 output/starter1-dinner[1].pdf 75eee28acd866e91 +304 2578 1727241013846276308 output/starter1-dinner[1].aux 75eee28acd866e91 +304 2578 1727241013846276308 output/starter1-dinner[1].log 75eee28acd866e91 +310 2615 1727241013852943022 output/starter1-wheel_dog[1].pdf 477bc4123723f32e +310 2615 1727241013852943022 output/starter1-wheel_dog[1].aux 477bc4123723f32e +310 2615 1727241013852943022 output/starter1-wheel_dog[1].log 477bc4123723f32e +309 2712 1727241013849609665 output/starter1-repair_sled[2].pdf de512bd9846810df +309 2712 1727241013849609665 output/starter1-repair_sled[2].aux de512bd9846810df +309 2712 1727241013849609665 output/starter1-repair_sled[2].log de512bd9846810df +306 2774 1727241013849609665 output/starter1-grandma_soup[1].pdf 781e38e1b27d1db5 +306 2774 1727241013849609665 output/starter1-grandma_soup[1].aux 781e38e1b27d1db5 +306 2774 1727241013849609665 output/starter1-grandma_soup[1].log 781e38e1b27d1db5 +317 2883 1727241013859609738 output/starter2-dinner[1].pdf b7b7cd6f5905b40d +317 2883 1727241013859609738 output/starter2-dinner[1].aux b7b7cd6f5905b40d +317 2883 1727241013859609738 output/starter2-dinner[1].log b7b7cd6f5905b40d +311 2986 1727241013852943022 output/starter2-a_hat[1].pdf 3a7ecd8fda2ebbb2 +311 2986 1727241013852943022 output/starter2-a_hat[1].aux 3a7ecd8fda2ebbb2 +311 2986 1727241013852943022 output/starter2-a_hat[1].log 3a7ecd8fda2ebbb2 +309 3009 1727241013849609665 output/starter1-upgrade_sled[2].pdf 382df3c7f0a26053 +309 3009 1727241013849609665 output/starter1-upgrade_sled[2].aux 382df3c7f0a26053 +309 3009 1727241013849609665 output/starter1-upgrade_sled[2].log 382df3c7f0a26053 +304 3022 1727241013846276308 output/starter1-dog_chow[1].pdf e6059b971ecccf08 +304 3022 1727241013846276308 output/starter1-dog_chow[1].aux e6059b971ecccf08 +304 3022 1727241013846276308 output/starter1-dog_chow[1].log e6059b971ecccf08 +311 3119 1727241013852943022 output/starter2-breakfast[2].pdf dcdfed3fbecfd711 +311 3119 1727241013852943022 output/starter2-breakfast[2].aux dcdfed3fbecfd711 +311 3119 1727241013852943022 output/starter2-breakfast[2].log dcdfed3fbecfd711 +2533 4308 1727241016076292468 output/starter2-move[4].pdf b2c8bb0f1515b5d2 +2533 4308 1727241016076292468 output/starter2-move[4].aux b2c8bb0f1515b5d2 +2533 4308 1727241016076292468 output/starter2-move[4].log b2c8bb0f1515b5d2 +2343 4349 1727241015882957734 output/starter2-dog_chow[1].pdf 901831e8e626abe9 +2343 4349 1727241015882957734 output/starter2-dog_chow[1].aux 901831e8e626abe9 +2343 4349 1727241015882957734 output/starter2-dog_chow[1].log 901831e8e626abe9 +2432 4386 1727241015972958386 output/starter2-good_dog[1].pdf b3d66c44cee18d9 +2432 4386 1727241015972958386 output/starter2-good_dog[1].aux b3d66c44cee18d9 +2432 4386 1727241015972958386 output/starter2-good_dog[1].log b3d66c44cee18d9 +2435 4449 1727241015976291744 output/starter2-grandma_soup[1].pdf 9a5f18a46e4a26c4 +2435 4449 1727241015976291744 output/starter2-grandma_soup[1].aux 9a5f18a46e4a26c4 +2435 4449 1727241015976291744 output/starter2-grandma_soup[1].log 9a5f18a46e4a26c4 +2615 4450 1727241016156293048 output/starter2-repair_sled[2].pdf 6086ced9a9eb8a41 +2615 4450 1727241016156293048 output/starter2-repair_sled[2].aux 6086ced9a9eb8a41 +2615 4450 1727241016156293048 output/starter2-repair_sled[2].log 6086ced9a9eb8a41 +2578 4494 1727241016119626116 output/starter2-mush[1].pdf 354c476a028d30bb +2578 4494 1727241016119626116 output/starter2-mush[1].aux 354c476a028d30bb +2578 4494 1727241016119626116 output/starter2-mush[1].log 354c476a028d30bb +2349 4582 1727241015889624449 output/starter2-first_aid[2].pdf abd559997d180368 +2349 4582 1727241015889624449 output/starter2-first_aid[2].aux abd559997d180368 +2349 4582 1727241015889624449 output/starter2-first_aid[2].log abd559997d180368 +2774 4607 1727241016316294207 output/starter2-wheel_dog[1].pdf dbed76f4a389b234 +2774 4607 1727241016316294207 output/starter2-wheel_dog[1].aux dbed76f4a389b234 +2774 4607 1727241016316294207 output/starter2-wheel_dog[1].log dbed76f4a389b234 +2713 4818 1727241016252960415 output/starter2-upgrade_sled[2].pdf eb2f482adad33755 +2713 4818 1727241016252960415 output/starter2-upgrade_sled[2].aux eb2f482adad33755 +2713 4818 1727241016252960415 output/starter2-upgrade_sled[2].log eb2f482adad33755 +2986 4932 1727241016526295729 output/starter3-breakfast[2].pdf c6b24910fa48d234 +2986 4932 1727241016526295729 output/starter3-breakfast[2].aux c6b24910fa48d234 +2986 4932 1727241016526295729 output/starter3-breakfast[2].log c6b24910fa48d234 +2883 5164 1727241016426295005 output/starter3-a_hat[1].pdf d95a7331b757e332 +2883 5164 1727241016426295005 output/starter3-a_hat[1].aux d95a7331b757e332 +2883 5164 1727241016426295005 output/starter3-a_hat[1].log d95a7331b757e332 +3022 5385 1727241016562962661 output/starter3-dinner[1].pdf 286d4f8425c6ad47 +3022 5385 1727241016562962661 output/starter3-dinner[1].aux 286d4f8425c6ad47 +3022 5385 1727241016562962661 output/starter3-dinner[1].log 286d4f8425c6ad47 +3119 5455 1727241016659630028 output/starter3-dog_chow[1].pdf 9224d6c703f0988c +3119 5455 1727241016659630028 output/starter3-dog_chow[1].aux 9224d6c703f0988c +3119 5455 1727241016659630028 output/starter3-dog_chow[1].log 9224d6c703f0988c +4349 6131 1727241017889638942 output/starter3-good_dog[1].pdf c25eb05ee14ea7cf +4349 6131 1727241017889638942 output/starter3-good_dog[1].aux c25eb05ee14ea7cf +4349 6131 1727241017889638942 output/starter3-good_dog[1].log c25eb05ee14ea7cf +4308 6145 1727241017849638652 output/starter3-first_aid[2].pdf 5f724a3866c702e5 +4308 6145 1727241017849638652 output/starter3-first_aid[2].aux 5f724a3866c702e5 +4308 6145 1727241017849638652 output/starter3-first_aid[2].log 5f724a3866c702e5 +4387 6321 1727241017929639232 output/starter3-grandma_soup[1].pdf 8192faeb182097c4 +4387 6321 1727241017929639232 output/starter3-grandma_soup[1].aux 8192faeb182097c4 +4387 6321 1727241017929639232 output/starter3-grandma_soup[1].log 8192faeb182097c4 +4494 6356 1727241018036306672 output/starter3-mush[1].pdf 149bc2adc048089 +4494 6356 1727241018036306672 output/starter3-mush[1].aux 149bc2adc048089 +4494 6356 1727241018036306672 output/starter3-mush[1].log 149bc2adc048089 +4450 6360 1727241017992973024 output/starter3-move[4].pdf aad47537c2af4b8e +4450 6360 1727241017992973024 output/starter3-move[4].aux aad47537c2af4b8e +4450 6360 1727241017992973024 output/starter3-move[4].log aad47537c2af4b8e +4584 6541 1727241018126307323 output/starter3-repair_sled[2].pdf b235e0965b17ba25 +4584 6541 1727241018126307323 output/starter3-repair_sled[2].aux b235e0965b17ba25 +4584 6541 1727241018126307323 output/starter3-repair_sled[2].log b235e0965b17ba25 +4933 6772 1727241018472976502 output/starter4-a_hat[1].pdf e42a3db1a6983dd +4933 6772 1727241018472976502 output/starter4-a_hat[1].aux e42a3db1a6983dd +4933 6772 1727241018472976502 output/starter4-a_hat[1].log e42a3db1a6983dd +4608 6814 1727241018149640826 output/starter3-upgrade_sled[2].pdf 5627591f000605ce +4608 6814 1727241018149640826 output/starter3-upgrade_sled[2].aux 5627591f000605ce +4608 6814 1727241018149640826 output/starter3-upgrade_sled[2].log 5627591f000605ce +5164 6876 1727241018706311526 output/starter4-breakfast[2].pdf 9e8cee42ac3305c6 +5164 6876 1727241018706311526 output/starter4-breakfast[2].aux 9e8cee42ac3305c6 +5164 6876 1727241018706311526 output/starter4-breakfast[2].log 9e8cee42ac3305c6 +4818 7152 1727241018359642348 output/starter3-wheel_dog[1].pdf 953b66797590c0ce +4818 7152 1727241018359642348 output/starter3-wheel_dog[1].aux 953b66797590c0ce +4818 7152 1727241018359642348 output/starter3-wheel_dog[1].log 953b66797590c0ce +5455 7369 1727241018996313627 output/starter4-dinner[1].pdf 3658260762477852 +5455 7369 1727241018996313627 output/starter4-dinner[1].aux 3658260762477852 +5455 7369 1727241018996313627 output/starter4-dinner[1].log 3658260762477852 +6147 7976 1727241019689651984 output/starter4-first_aid[2].pdf 83b444c4fbd524be +6147 7976 1727241019689651984 output/starter4-first_aid[2].aux 83b444c4fbd524be +6147 7976 1727241019689651984 output/starter4-first_aid[2].log 83b444c4fbd524be +6131 8013 1727241019672985196 output/starter4-dog_chow[1].pdf 584eb85a0d599cde +6131 8013 1727241019672985196 output/starter4-dog_chow[1].aux 584eb85a0d599cde +6131 8013 1727241019672985196 output/starter4-dog_chow[1].log 584eb85a0d599cde +6321 8030 1727241019862986573 output/starter4-good_dog[1].pdf 1ba22ba0472f6db7 +6321 8030 1727241019862986573 output/starter4-good_dog[1].aux 1ba22ba0472f6db7 +6321 8030 1727241019862986573 output/starter4-good_dog[1].log 1ba22ba0472f6db7 +6542 8264 1727241020082988168 output/starter4-move[4].pdf 10bf39ab2790133e +6542 8264 1727241020082988168 output/starter4-move[4].aux 10bf39ab2790133e +6542 8264 1727241020082988168 output/starter4-move[4].log 10bf39ab2790133e +6356 8443 1727241019896320148 output/starter4-grandma_soup[1].pdf 8e190153a754445d +6356 8443 1727241019896320148 output/starter4-grandma_soup[1].aux 8e190153a754445d +6356 8443 1727241019896320148 output/starter4-grandma_soup[1].log 8e190153a754445d +6773 8738 1727241020312989834 output/starter4-mush[1].pdf ab8e492cf7b71c10 +6773 8738 1727241020312989834 output/starter4-mush[1].aux ab8e492cf7b71c10 +6773 8738 1727241020312989834 output/starter4-mush[1].log ab8e492cf7b71c10 +6814 8749 1727241020356323481 output/starter4-repair_sled[2].pdf d9c03ba60d5bd2ff +6814 8749 1727241020356323481 output/starter4-repair_sled[2].aux d9c03ba60d5bd2ff +6814 8749 1727241020356323481 output/starter4-repair_sled[2].log d9c03ba60d5bd2ff +6876 9220 1727241020416323916 output/starter4-upgrade_sled[2].pdf 82aab57349792b75 +6876 9220 1727241020416323916 output/starter4-upgrade_sled[2].aux 82aab57349792b75 +6876 9220 1727241020416323916 output/starter4-upgrade_sled[2].log 82aab57349792b75 +7152 9310 1727241020692992587 output/starter4-wheel_dog[1].pdf 45b01e86ebbdeab2 +7152 9310 1727241020692992587 output/starter4-wheel_dog[1].aux 45b01e86ebbdeab2 +7152 9310 1727241020692992587 output/starter4-wheel_dog[1].log 45b01e86ebbdeab2 +7369 9806 1727241020909660823 output/race-bear[2].pdf 6b3eabb592a26041 +7369 9806 1727241020909660823 output/race-bear[2].aux 6b3eabb592a26041 +7369 9806 1727241020909660823 output/race-bear[2].log 6b3eabb592a26041 +8030 9876 1727241021572998963 output/race-greyhound[2].pdf 2cb6300c0ea28888 +8030 9876 1727241021572998963 output/race-greyhound[2].aux 2cb6300c0ea28888 +8030 9876 1727241021572998963 output/race-greyhound[2].log 2cb6300c0ea28888 +7976 9882 1727241021516331885 output/race-big_dog[2].pdf 1318c44d1c52e889 +7976 9882 1727241021516331885 output/race-big_dog[2].aux 1318c44d1c52e889 +7976 9882 1727241021516331885 output/race-big_dog[2].log 1318c44d1c52e889 +8013 10030 1727241021552998817 output/race-dog_shoes[2].pdf 8687404c5fe2a524 +8013 10030 1727241021552998817 output/race-dog_shoes[2].aux 8687404c5fe2a524 +8013 10030 1727241021552998817 output/race-dog_shoes[2].log 8687404c5fe2a524 +8264 10054 1727241021806333986 output/race-improvise[2].pdf 98eebb2f471f3521 +8264 10054 1727241021806333986 output/race-improvise[2].aux 98eebb2f471f3521 +8264 10054 1727241021806333986 output/race-improvise[2].log 98eebb2f471f3521 +8443 10416 1727241021983001933 output/race-midnight_sun[2].pdf b9249690760e16cf +8443 10416 1727241021983001933 output/race-midnight_sun[2].aux b9249690760e16cf +8443 10416 1727241021983001933 output/race-midnight_sun[2].log b9249690760e16cf +8749 10478 1727241022289670822 output/race-push[2].pdf 7ad4d5950b2748d6 +8749 10478 1727241022289670822 output/race-push[2].aux 7ad4d5950b2748d6 +8749 10478 1727241022289670822 output/race-push[2].log 7ad4d5950b2748d6 +8738 10713 1727241022279670749 output/race-problem_dog[2].pdf 86f450e3b4d1e927 +8738 10713 1727241022279670749 output/race-problem_dog[2].aux 86f450e3b4d1e927 +8738 10713 1727241022279670749 output/race-problem_dog[2].log 86f450e3b4d1e927 +9310 11286 1727241022853008237 output/race-slow_and_steady[2].pdf 998944417c632f8f +9310 11286 1727241022853008237 output/race-slow_and_steady[2].aux 998944417c632f8f +9310 11286 1727241022853008237 output/race-slow_and_steady[2].log 998944417c632f8f +9220 11425 1727241022763007584 output/race-rush[2].pdf ec11bcb36a82032e +9220 11425 1727241022763007584 output/race-rush[2].aux ec11bcb36a82032e +9220 11425 1727241022763007584 output/race-rush[2].log ec11bcb36a82032e +9807 11597 1727241023349678501 output/race-squirrel[2].pdf 2f170eb65efa0c57 +9807 11597 1727241023349678501 output/race-squirrel[2].aux 2f170eb65efa0c57 +9807 11597 1727241023349678501 output/race-squirrel[2].log 2f170eb65efa0c57 +9882 11794 1727241023423012366 output/race-tiara[2].pdf b9f435fd679b17c1 +9882 11794 1727241023423012366 output/race-tiara[2].aux b9f435fd679b17c1 +9882 11794 1727241023423012366 output/race-tiara[2].log b9f435fd679b17c1 +9877 11924 1727241023419679008 output/race-supply_run[2].pdf 858b1d45262d9cc +9877 11924 1727241023419679008 output/race-supply_run[2].aux 858b1d45262d9cc +9877 11924 1727241023419679008 output/race-supply_run[2].log 858b1d45262d9cc +10054 12056 1727241023596346954 output/survival-band_aid[2].pdf 24cea146521765f7 +10054 12056 1727241023596346954 output/survival-band_aid[2].aux 24cea146521765f7 +10054 12056 1727241023596346954 output/survival-band_aid[2].log 24cea146521765f7 +10030 12120 1727241023573013452 output/survival-antique_sled[2].pdf 62499f573e83e9dd +10030 12120 1727241023573013452 output/survival-antique_sled[2].aux 62499f573e83e9dd +10030 12120 1727241023573013452 output/survival-antique_sled[2].log 62499f573e83e9dd +10416 12343 1727241023956349563 output/survival-bandage[2].pdf a93799fe5b45d286 +10416 12343 1727241023956349563 output/survival-bandage[2].aux a93799fe5b45d286 +10416 12343 1727241023956349563 output/survival-bandage[2].log a93799fe5b45d286 +10714 12543 1727241024256351736 output/survival-brandy[2].pdf e96046ed86bfaa1 +10714 12543 1727241024256351736 output/survival-brandy[2].aux e96046ed86bfaa1 +10714 12543 1727241024256351736 output/survival-brandy[2].log e96046ed86bfaa1 +10478 12560 1727241024019683355 output/survival-bison[2].pdf e83221143f4ae17d +10478 12560 1727241024019683355 output/survival-bison[2].aux e83221143f4ae17d +10478 12560 1727241024019683355 output/survival-bison[2].log e83221143f4ae17d +12561 12822 1727241026103031780 output/starter1-breakfast[2].raw.png 45d3c437659a9caa +12544 12963 1727241026086364993 output/starter1-a_hat[1].raw.png ee7cb31bf6797dd9 +12822 13061 1727241026363033663 output/starter1-dinner[1].raw.png e1d5d5c93f322c46 +11287 13078 1727241024829689223 output/survival-caffeine[2].pdf 6081251ba8744aca +11287 13078 1727241024829689223 output/survival-caffeine[2].aux 6081251ba8744aca +11287 13078 1727241024829689223 output/survival-caffeine[2].log 6081251ba8744aca +11425 13243 1727241024966356879 output/survival-jerky[2].pdf 9aedaa5c0ea51033 +11425 13243 1727241024966356879 output/survival-jerky[2].aux 9aedaa5c0ea51033 +11425 13243 1727241024966356879 output/survival-jerky[2].log 9aedaa5c0ea51033 +307 13252 1727241013849609665 output/starter1-husky[1].pdf 5d6212724989777b +307 13252 1727241013849609665 output/starter1-husky[1].aux 5d6212724989777b +307 13252 1727241013849609665 output/starter1-husky[1].log 5d6212724989777b +13078 13292 1727241026619702190 output/starter1-good_dog[1].raw.png ea00d14a0d5e94d3 +13062 13325 1727241026603035402 output/starter1-first_aid[2].raw.png 33e6566c5032f89a +12963 13335 1727241026506368035 output/starter1-dog_chow[1].raw.png 894c491855a82eb5 +13243 13507 1727241026783036706 output/starter1-grandma_soup[1].raw.png 64870022d0d996d9 +13326 13532 1727241026866370643 output/starter1-mush[1].raw.png ce20aa8072fab62d +13292 13567 1727241026833037068 output/starter1-move[4].raw.png 62f796fba73c4438 +11599 13594 1727241025139691468 output/survival-makeshift_sled[2].pdf 8446435747fe6ec5 +11599 13594 1727241025139691468 output/survival-makeshift_sled[2].aux 8446435747fe6ec5 +11599 13594 1727241025139691468 output/survival-makeshift_sled[2].log 8446435747fe6ec5 +13335 13608 1727241026876370715 output/starter1-repair_sled[2].raw.png 9635f078b2951a41 +11794 13640 1727241025336359560 output/survival-malamute[2].pdf cbea712be2a0cb93 +11794 13640 1727241025336359560 output/survival-malamute[2].aux cbea712be2a0cb93 +11794 13640 1727241025336359560 output/survival-malamute[2].log cbea712be2a0cb93 +12120 13778 1727241025663028593 output/survival-steak[2].pdf 977a73545f8bc92 +12120 13778 1727241025663028593 output/survival-steak[2].aux 977a73545f8bc92 +12120 13778 1727241025663028593 output/survival-steak[2].log 977a73545f8bc92 +13595 13792 1727241027136372598 output/starter2-breakfast[2].raw.png e985116397a060aa +13507 13799 1727241027049705304 output/starter1-upgrade_sled[2].raw.png 85d9112142e46cf +12057 13802 1727241025599694800 output/survival-salvage[2].pdf 2160f551ef6051d0 +12057 13802 1727241025599694800 output/survival-salvage[2].aux 2160f551ef6051d0 +12057 13802 1727241025599694800 output/survival-salvage[2].log 2160f551ef6051d0 +13532 13803 1727241027073038806 output/starter1-wheel_dog[1].raw.png 248562083fd958cf +13567 13808 1727241027109705738 output/starter2-a_hat[1].raw.png b8f0c79f91e45bdc +13608 13856 1727241027149706028 output/starter2-dinner[1].raw.png 65d52cb8bedbfa07 +13640 13935 1727241027183039603 output/starter2-dog_chow[1].raw.png 68d4492207d179a0 +11924 13980 1727241025466360502 output/survival-poutine[2].pdf 1560c39333f0a27c +11924 13980 1727241025466360502 output/survival-poutine[2].aux 1560c39333f0a27c +11924 13980 1727241025466360502 output/survival-poutine[2].log 1560c39333f0a27c +13793 13999 1727241027336374047 output/starter2-good_dog[1].raw.png 72d9e2d17bc0d3ac +13779 14028 1727241027319707260 output/starter2-first_aid[2].raw.png a8edd7f8e5b9a16f +13803 14033 1727241027343040762 output/starter2-mush[1].raw.png 7978b0385cdf4773 +13802 14043 1727241027343040762 output/starter2-move[4].raw.png 3912578bc9f73aaf +12343 14064 1727241025883030186 output/survival-venison[2].pdf 6faa33fb25d563b6 +12343 14064 1727241025883030186 output/survival-venison[2].aux 6faa33fb25d563b6 +12343 14064 1727241025883030186 output/survival-venison[2].log 6faa33fb25d563b6 +13799 14075 1727241027339707405 output/starter2-grandma_soup[1].raw.png 1dafeecf0dbcd10d +13252 14147 1727241026793036778 output/starter1-husky[1].raw.png 570382dee3f2c8c1 +13856 14155 1727241027396374482 output/starter2-upgrade_sled[2].raw.png b50d534baf9aa169 +13808 14174 1727241027349707477 output/starter2-repair_sled[2].raw.png 19577354b946baf3 +14000 14181 1727241027543042211 output/starter3-breakfast[2].raw.png ea3e143da0ccdf09 +13980 14187 1727241027523042066 output/starter3-a_hat[1].raw.png c963f7930d733cb5 +13935 14193 1727241027476375062 output/starter2-wheel_dog[1].raw.png dce42b121d355677 +14064 14290 1727241027606376003 output/starter3-good_dog[1].raw.png 979946965eb2b42 +14043 14297 1727241027586375858 output/starter3-first_aid[2].raw.png 6e60f4984e6bf98f +14029 14303 1727241027569709071 output/starter3-dinner[1].raw.png 684e87591cca24d5 +14033 14313 1727241027576375786 output/starter3-dog_chow[1].raw.png 480128b4f6866266 +14147 14319 1727241027689709940 output/starter3-move[4].raw.png b7c6d275a30ca7db +14193 14378 1727241027733043587 output/starter4-a_hat[1].raw.png 3cfc7d81f887515d +14187 14420 1727241027729710230 output/starter3-wheel_dog[1].raw.png 6262c3fc114e583e +14155 14427 1727241027696376655 output/starter3-mush[1].raw.png 481ed36e59c5fbb6 +14297 14481 1727241027839711027 output/starter4-dinner[1].raw.png 994dbdf0ac15668c +14181 14485 1727241027723043514 output/starter3-upgrade_sled[2].raw.png 3ff510feffa99a9e +14319 14506 1727241027859711171 output/starter4-good_dog[1].raw.png fccfb8153efd8de1 +14290 14516 1727241027833044311 output/starter4-breakfast[2].raw.png e361297a10bd2466 +14174 14559 1727241027716376800 output/starter3-repair_sled[2].raw.png 449da0c6a6d6f91b +14075 14572 1727241027616376076 output/starter3-grandma_soup[1].raw.png 575969e972f21bbf +14420 14586 1727241027963045253 output/starter4-move[4].raw.png 41bfcaba5ea0483d +14303 14617 1727241027846377741 output/starter4-dog_chow[1].raw.png 8555a56a1b50124c +14313 14621 1727241027856377814 output/starter4-first_aid[2].raw.png 8fce1bf528f3711b +14378 14639 1727241027919711606 output/starter4-grandma_soup[1].raw.png 98fa5fe1cdfed363 +14427 14670 1727241027969711968 output/starter4-mush[1].raw.png 9ecd10e82bfc7e8c +14485 14737 1727241028026379045 output/starter4-upgrade_sled[2].raw.png 3dad1364a6a0946f +14506 14748 1727241028049712548 output/starter4-wheel_dog[1].raw.png a0f528b98a58f35a +14587 14795 1727241028129713127 output/race-greyhound[2].raw.png 510d0683a77829d1 +14516 14797 1727241028056379262 output/race-bear[2].raw.png 1610c12a310bd1c9 +14559 14800 1727241028099712910 output/race-big_dog[2].raw.png 8cfbe2d4a199df1c +14481 14844 1727241028023045687 output/starter4-repair_sled[2].raw.png 3fb7255ddcda3101 +14639 14892 1727241028179713489 output/race-problem_dog[2].raw.png b75cd93b98d5b008 +14670 14901 1727241028213047064 output/race-push[2].raw.png ce7424a238f70a79 +14573 14903 1727241028113046340 output/race-dog_shoes[2].raw.png 955d41789ae5a65f +14621 14917 1727241028169713417 output/race-midnight_sun[2].raw.png 2d55d4dee7b4ae88 +14737 14933 1727241028279714214 output/race-rush[2].raw.png 5ea9721a38ce23cb +14617 14940 1727241028159713344 output/race-improvise[2].raw.png 452bf2bd1fe29f4b +14749 14986 1727241028289714286 output/race-slow_and_steady[2].raw.png 9685f2bed2173c2a +14797 15005 1727241028339714648 output/race-supply_run[2].raw.png 2a8437c8aea25e5a +14795 15014 1727241028336381290 output/race-squirrel[2].raw.png b17f9ffb64d3710c +2487 15025 1727241016029625464 output/starter2-husky[1].pdf add95d214e10d0d1 +2487 15025 1727241016029625464 output/starter2-husky[1].aux add95d214e10d0d1 +2487 15025 1727241016029625464 output/starter2-husky[1].log add95d214e10d0d1 +14892 15115 1727241028433048657 output/survival-band_aid[2].raw.png fa0c056c8310671 +14903 15119 1727241028443048730 output/survival-bison[2].raw.png 53b00e9ba4bff645 +14800 15160 1727241028343048006 output/race-tiara[2].raw.png 82f9f29aef617904 +14917 15200 1727241028459715517 output/survival-brandy[2].raw.png 47bff44ae9e2486b +15005 15216 1727241028546382811 output/survival-malamute[2].raw.png 5a934f688fc8b3f8 +14940 15222 1727241028483049020 output/survival-jerky[2].raw.png a7fd712e9a8af72d +14933 15246 1727241028476382305 output/survival-caffeine[2].raw.png 33ab5efd99ca035d +15014 15260 1727241028556382884 output/survival-poutine[2].raw.png 6a876c942774ed15 +14844 15261 1727241028386381652 output/survival-antique_sled[2].raw.png 619ee1ed84897355 +14987 15287 1727241028529716024 output/survival-makeshift_sled[2].raw.png 99ce915e42379195 +14901 15299 1727241028443048730 output/survival-bandage[2].raw.png 4e2ebb8b7b40333f +15160 15392 1727241028703050613 output/survival-venison[2].raw.png c471c84b61bc051f +15119 15473 1727241028659716966 output/survival-steak[2].raw.png 3678aaa9431da1e1 +15115 15543 1727241028656383608 output/survival-salvage[2].raw.png d3051d0ee3e60abb +15246 15759 1727241028786384550 output/starter1-dog_chow[1].png a6b79a08905ff03f +15200 15761 1727241028739717546 output/starter1-a_hat[1].png 5468cdbe1a55d07d +15222 15764 1727241028763051048 output/starter1-dinner[1].png fa3b3b7639afce9c +15260 15769 1727241028803051338 output/starter1-first_aid[2].png 18c1e1a3799132d0 +15287 15790 1727241028829718197 output/starter1-grandma_soup[1].png d73ae566a9ed5d4c +15217 15797 1727241028759717690 output/starter1-breakfast[2].png ffa133e01c16b6a6 +15261 15825 1727241028803051338 output/starter1-good_dog[1].png e48351b43ce9dabe +15392 15831 1727241028933052279 output/starter1-move[4].png 4ff49ee4bf9c52d1 +15473 15842 1727241029016386216 output/starter1-mush[1].png 8c0ba114b640bb9e +15543 16033 1727241029086386723 output/starter1-repair_sled[2].png e6eeef15edb8f867 +15299 16181 1727241028843051627 output/starter1-husky[1].png e2a970d092ce5a2d +15797 16248 1727241029339721891 output/starter2-dog_chow[1].png 23d469f53fd57bf0 +15769 16257 1727241029309721674 output/starter2-breakfast[2].png fca40da0656bfd92 +15761 16260 1727241029303054959 output/starter1-wheel_dog[1].png 1d3df86aa2a276a6 +15790 16264 1727241029333055176 output/starter2-dinner[1].png 3958b1520a2f9682 +15759 16274 1727241029299721601 output/starter1-upgrade_sled[2].png 202e3ec2121b332d +15764 16281 1727241029306388317 output/starter2-a_hat[1].png f419d1a4b19f26ef +15842 16304 1727241029383055539 output/starter2-grandma_soup[1].png 8744aa2ebde49cb3 +15825 16326 1727241029366388751 output/starter2-first_aid[2].png 41d2fcf83dacd10b +15831 16331 1727241029373055466 output/starter2-good_dog[1].png ffd733736e54a83b +16033 16554 1727241029576390272 output/starter2-move[4].png 71d95321b05a0cde +16181 16701 1727241029723058001 output/starter2-mush[1].png 4fc384b7a78a5364 +16257 16744 1727241029799725223 output/starter2-upgrade_sled[2].png 2cbdc9f471fde800 +16248 16750 1727241029789725150 output/starter2-repair_sled[2].png a47b402d79a6f795 +16304 16761 1727241029846392228 output/starter3-dog_chow[1].png 96e575dd2ca1184a +16260 16764 1727241029803058580 output/starter2-wheel_dog[1].png 1c813e14c9a09650 +16264 16768 1727241029806391937 output/starter3-a_hat[1].png 8cbf292af4aa9b7e +16274 16772 1727241029816392010 output/starter3-breakfast[2].png b64b120b0296c41f +16281 16776 1727241029823058725 output/starter3-dinner[1].png 1961fd3344007c0c +16331 16784 1727241029873059088 output/starter3-good_dog[1].png 4ea71b7e5b7f41cb +15025 16857 1727241028566382957 output/starter2-husky[1].raw.png 28ce1c4769f3ca47 +16326 16863 1727241029869725730 output/starter3-first_aid[2].png 7f3cb7d2b484b99f +16554 17081 1727241030096394038 output/starter3-grandma_soup[1].png 408e4f66c9e1656c +16701 17144 1727241030243061767 output/starter3-move[4].png cae0c906598cb252 +16745 17274 1727241030286395414 output/starter3-mush[1].png 8cffac794e3aa13 +16761 17277 1727241030303062202 output/starter3-upgrade_sled[2].png 2d4d2716635cb2a2 +16773 17280 1727241030313062275 output/starter4-breakfast[2].png 58a0e80d4a7e59e2 +16750 17283 1727241030293062129 output/starter3-repair_sled[2].png 1aac828653e45098 +16784 17313 1727241030326395704 output/starter4-dog_chow[1].png b3499c4616486cb2 +16764 17315 1727241030306395559 output/starter3-wheel_dog[1].png 20a4559c5ab4343f +16768 17328 1727241030309728916 output/starter4-a_hat[1].png 7aa198253a77887 +16776 17334 1727241030319728989 output/starter4-dinner[1].png e618f66b7e615bac +16863 17371 1727241030406396284 output/starter4-first_aid[2].png a6e61126057902d5 +17081 17590 1727241030623064519 output/starter4-good_dog[1].png e05e8e0b3506d4f6 +17144 17671 1727241030686398311 output/starter4-grandma_soup[1].png 2a214588c32a9db9 +16857 17704 1727241030399729568 output/starter2-husky[1].png fa15d820581a750f +17274 17731 1727241030816399253 output/starter4-move[4].png 2e8a67734dcef386 +17281 17751 1727241030823065968 output/starter4-repair_sled[2].png a207ab6e9e615828 +17277 17791 1727241030819732611 output/starter4-mush[1].png 52d3a5be31f696a8 +17328 17811 1727241030869732973 output/race-big_dog[2].png 5279775fff6c561c +17283 17814 1727241030826399325 output/starter4-upgrade_sled[2].png 90c145e8589c6d7 +17315 17854 1727241030856399543 output/race-bear[2].png 961771a649c678bf +17313 17867 1727241030856399543 output/starter4-wheel_dog[1].png c25e311a303e64f6 +17334 17934 1727241030876399688 output/race-dog_shoes[2].png 321845d05a2050ac +17371 17954 1727241030913066620 output/race-greyhound[2].png dbc5880bcf3befb9 +17590 18091 1727241031133068213 output/race-improvise[2].png 8060e401e7b3c029 +17671 18158 1727241031213068793 output/race-midnight_sun[2].png 8abc9344691fad8 +17705 18221 1727241031246402367 output/race-problem_dog[2].png 927958e46b035dd8 +17792 18243 1727241031333069662 output/race-slow_and_steady[2].png be3d88a646122162 +17731 18286 1727241031273069227 output/race-push[2].png 6762f48ad68e190e +17811 18317 1727241031353069807 output/race-squirrel[2].png 83124198f6c4ebc +17814 18319 1727241031356403164 output/race-supply_run[2].png 83ae7639fa930888 +17752 18346 1727241031293069372 output/race-rush[2].png f4f5ce4bbcb2733 +17867 18363 1727241031409736884 output/survival-antique_sled[2].png 53d41d14bca5f73f +17854 18368 1727241031396403454 output/race-tiara[2].png e185246288836feb +17934 18531 1727241031476404033 output/survival-band_aid[2].png ac2b6c8cd4e83075 +17954 18540 1727241031496404178 output/survival-bandage[2].png b7908a3c17fba7ff +18091 18540 1727241031633071835 output/survival-bison[2].png f9ddfccd1fd4bda6 +18158 18577 1727241031699738984 output/survival-brandy[2].png cf796ad6becb65fb +18221 18647 1727241031763072776 output/survival-caffeine[2].png eefb9363939f8148 +18243 18677 1727241031786406278 output/survival-jerky[2].png 7b5bf938ae6962eb +18287 18697 1727241031829739925 output/survival-makeshift_sled[2].png 13fb8bedc6c7331f +18319 18705 1727241031859740142 output/survival-poutine[2].png a8b74026561ec7c2 +18363 18706 1727241031903073790 output/survival-steak[2].png 7168503974ffe291 +18346 18724 1727241031889740360 output/survival-salvage[2].png 675fa80936de8c40 +18318 18728 1727241031859740142 output/survival-malamute[2].png d7a9a492bd9a25ee +18368 18733 1727241031909740504 output/survival-venison[2].png 82fd86635cdcf81 +4449 19039 1727241017989639667 output/starter3-husky[1].pdf e70aecbd333fffe3 +4449 19039 1727241017989639667 output/starter3-husky[1].aux e70aecbd333fffe3 +4449 19039 1727241017989639667 output/starter3-husky[1].log e70aecbd333fffe3 +19039 19640 1727241032579745357 output/starter3-husky[1].raw.png a974ede124acf0c1 +19640 19833 1727241033183083060 output/starter3-husky[1].png 3ee5f31a62833cc5 +6360 20085 1727241019902986864 output/starter4-husky[1].pdf 999776e64810e031 +6360 20085 1727241019902986864 output/starter4-husky[1].aux 999776e64810e031 +6360 20085 1727241019902986864 output/starter4-husky[1].log 999776e64810e031 +20085 20687 1727241033626419603 output/starter4-husky[1].raw.png ba946c7d2542ee3a +20687 20874 1727241034229757306 output/starter4-husky[1].png b44986f768f02112 +303 24989 1727241013842942951 output/starter1-lunch[2].pdf 7626d03ec78141be +303 24989 1727241013842942951 output/starter1-lunch[2].aux 7626d03ec78141be +303 24989 1727241013842942951 output/starter1-lunch[2].log 7626d03ec78141be +313 25507 1727241013852943022 output/starter2-lunch[2].pdf cebda577f4472e1a +313 25507 1727241013852943022 output/starter2-lunch[2].aux cebda577f4472e1a +313 25507 1727241013852943022 output/starter2-lunch[2].log cebda577f4472e1a +24989 25821 1727241038529788443 output/starter1-lunch[2].raw.png fe015ab65d1b6767 +25821 26035 1727241039363127810 output/starter1-lunch[2].png 6b64d8e390cb0e73 +25508 26334 1727241039049792207 output/starter2-lunch[2].raw.png 8b14a4b71d45a0c9 +26334 26537 1727241039876464860 output/starter2-lunch[2].png b869ecc155435917 +3009 27398 1727241016549629232 output/starter3-lunch[2].pdf 733353301ba819bb +3009 27398 1727241016549629232 output/starter3-lunch[2].aux 733353301ba819bb +3009 27398 1727241016549629232 output/starter3-lunch[2].log 733353301ba819bb +27398 28215 1727241040939805892 output/starter3-lunch[2].raw.png 7e7c796bd1614d6e +28216 28416 1727241041756478471 output/starter3-lunch[2].png 2a98e083e9b10c5 +5385 29146 1727241018926313120 output/starter4-lunch[2].pdf 5ae78c0948b12fa7 +5385 29146 1727241018926313120 output/starter4-lunch[2].aux 5ae78c0948b12fa7 +5385 29146 1727241018926313120 output/starter4-lunch[2].log 5ae78c0948b12fa7 +29146 29962 1727241042686485203 output/starter4-lunch[2].raw.png 4e8cee5e0df3fd60 +29962 30145 1727241043503157782 output/starter4-lunch[2].png dc13e0e96cdc273a diff --git a/assets.cue b/assets.cue new file mode 100644 index 0000000..81320d2 --- /dev/null +++ b/assets.cue @@ -0,0 +1,44 @@ +// Iditacards asset definitions + +package iditacards + +#AssetKind: "image" | "tex" | "template" | "cat" + +#Asset: { + // passed to convert to create the "print" version (usually to add bleed) + // e.g. -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage + print?: string + + depends: { + assets: [...string] + files: [...string] + } + + kind: #AssetKind + + if kind == "image" { + source: string + } + + if kind == "template" { + template: string + size: #Dimensions + data: _ + } + + if kind == "cat" { + contents: [...string] + } + + if kind == "tex" { + source: string + size: #Dimensions + } +} + +// Assets are what actually need to be printed/created/etc +assets: [string]: #Asset + +// Pseudo assets are useful to build for actually interacting with the game +// (e.g. a PDF of all cards) +pseudoassets: [string]: #Asset diff --git a/assets.yaml b/assets.yaml index cdce07a..1108541 100644 --- a/assets.yaml +++ b/assets.yaml @@ -1,641 +1,8 @@ -# This file describes the assets of iditacards -# vim: fdm=marker +# The "other" assets +# TODO: with e.g. the iditaboard, check the differences with master branch, make +# sure "simplified" and "master" versions can both use assets without much issue -# It is processed to produce various source files that are then compiled into -# assets +# images: -# TODO: Change the system to be more like the toml. Just have a: b: generate -# b using a.mako, but a: -b does not. (except unlike l4den, yaml can't mix -# arrays and objects, so maybe use _: -b -c -...?) - -# Any object with an "output" key will be processed to produce said output by -# using its "template" key as a mako template and passing "data" is data. - -cards: # {{{ - - &a_hat - name: 'A Hat' - costs: - energy: 2 - health: 2 - effects: - - '\daydraw{+1}' - image: hat - type: attachment - flavour: 'I bet its a valve hat.' - - - &dog_chow - name: 'Dog Chow' - costs: - energy: 3 - health: 3 - effects: - - '\speed{+1}' - image: dog_chow - type: attachment - flavour: 'A hungry dog is a slow dog.' - - - &good_dog - name: 'Good Dog' - costs: - energy: 3 - health: 3 - effects: - - '\daydraw{+1}' - image: good_dog - type: dog - flavour: 'Good boy.' - - - &husky - name: 'Husky' - costs: - energy: 2 - health: 2 - risk: 2 - effects: - - '\daydraw{+1}' - - '\speed{+1}' - image: husky - type: dog - flavour: 'Standard mushing fare.' - - - &wheel_dog - name: 'Wheel Dog' - costs: - energy: 3 - health: 3 - effects: - - '\speed{+1}' - - '\discardonkill' - - '\inplayatstart' - image: wheel_dog - type: dog - flavour: 'The dog right in front of the sled. Strong and steady.' - - - &breakfast - name: 'Breakfast' - costs: - health: 3 - effects: - - '\draw{3}' - image: breakfast - type: food - flavour: 'The most important meal of the day.' - - - &lunch - name: 'Lunch' - costs: - energy: 3 - effects: - - '\draw{3}' - image: lunch - type: food - flavour: 'What about second breakfast?' - - - &dinner - name: 'Dinner' - costs: - energy: 2 - health: 2 - effects: - - '\draw{7}' - image: dinner - type: food - flavour: 'I hope you like salted fish.' - - - &move - name: 'Move' - effects: - - '\move{1}' - image: move - type: movement - flavour: 'Just another day.' - - - &mush - name: 'Mush' - costs: - energy: 2 - health: 2 - risk: 1 - effects: - - '\move{10}' - image: mush - type: movement - flavour: "Comes from the french word ``Marche''." - - - &first_aid - name: First Aid - costs: - energy: 2 - health: 2 - effects: - - '\see{3}' - - '\destroy{1}' - image: first_aid - type: personal - flavour: 'Reduces swelling.' - - - &grandma_soup - name: Grandma Soup - costs: - energy: 1 - health: 2 - risk: 1 - effects: - - '\see{10}' - - '\destroy{2}' - image: grandma_soup - type: personal - flavour: 'Cures what ails you.' - - - &repair_sled - name: Repair Sled - costs: - energy: 1 - health: 3 - effects: - - '\supply{1}' - - '\take{2}' - image: repair_sled - type: sled - flavour: "It doesn't need to be pretty. It just has to work." - - - &upgrade_sled - name: Upgrade Sled - costs: - energy: 2 - health: 2 - effects: - - '\supply{3}' - - '\take{1}' - image: upgrade_sled - type: sled - flavour: 'You have to keep your ride in top shape.' - - - &buffer_panel - name: Buffer Panel - costs: - energy: 2 - health: 2 - effects: - - '\immortal' - - '\safepass' - image: buffer_panel - type: attachment - flavour: 'Did the primary buffer panel just fall of my gorram ship for no apparent reason?' - - - &nuclear_reactor - name: Nuclear Reactor - costs: - energy: 2 - health: 2 - effects: - - '\speed{+5}' - - '\passdie' - image: nuclear_reactor - type: attachment - flavour: 'What could go wrong?' - - - &engineer_dog - name: Engineer Dog - costs: - energy: 3 - health: 5 - risk: 1 - effects: - - '\speed{$\times 2$}' - - '\nohold' - image: engineer_dog - type: dog - flavour: 'Nails and Gears.' - - - &moose - name: Moose - costs: - energy: 5 - risk: 3 - effects: - - '\speed{+5}' - - '\immortal' - image: moose - type: dog - flavour: 'Majestic creatures. Hard to tame.' - - - &waffle - name: Waffle - effects: - - '\draw{2}' - image: waffles - type: food - flavour: 'Waffles are \textbf{delicious}.' - - - &whale_meat - name: Whale Meat - costs: - energy: 1 - health: 1 - effects: - - '\draw{5}' - - '\nohypothermia' - image: whale_meat - type: food - flavour: "It's like rubber." - - - &hitch_a_ride - name: Hitch a Ride - costs: - energy: 1 - effects: - - '\move{6}' - - '\damage{1}' - image: hitch_a_ride - type: movement - flavour: 'Probably not in the spirit of the race.' - - - &tactical_play - name: Tactical Play - costs: - energy: 1 - risk: 1 - effects: - - '\move{0}' - - '\doubledistance' - image: tactical_play - type: movement - flavour: 'Make the most of it.' - - - &meditate - name: Meditate - costs: - energy: 1 - health: 1 - effects: - - '\see{all}' - - '\destroy{0}' - image: meditate - type: personal - flavour: 'It \textit{is} just sitting.' - - - &diamorphine - name: Diamorphine - costs: - energy: 1 - health: 1 - risk: 1 - effects: - - '\see{all}' - - '\destroy{all}' - image: diamorphine - type: personal - flavour: 'Highly addicting.' - - - &desperate_times - name: Desperate Times - costs: - energy: all - effects: - - '\supply{10}' - - '\take{5}' - image: desparate_times - type: sled - flavour: 'Desperate measures hotline, how may I help you?' - - - &lead_sled - name: Lead Sled - costs: - energy: 1 - health: 1 - risk: 1 - effects: - - '\supply{10}' - - '\take{10}' - image: lead_sled - type: sled - flavour: "At least it's not a zeppelin." - - - &damaged - name: Damaged - costs: - energy: 1 - health: 1 - effects: - - '\damagetext' - image: damaged - type: damage - flavour: 'You have been hurt.' - - - &dog_shoes - name: Dog Shoes - costs: - energy: 2 - health: 3 - effects: - - '\speed{+2}' - image: dog_shoes - type: attachment - flavour: 'Dogs look cute in shoes.' - - - &squirrel - name: Squirrel - costs: - energy: 2 - health: 2 - risk: 1 - effects: - - '\speed{+3}' - image: squirrel - type: attachment - flavour: 'Dogs \emph{hate} squirrels.' - - - &tiara - name: Tiara - costs: - energy: 2 - health: 2 - risk: 1 - effects: - - '\daydraw{+1}' - - '\speed{+1}' - image: tiara - type: attachment - flavour: 'Makes the dog feel special.' - - - &bear - name: Bear - costs: - energy: 2 - health: 2 - risk: 2 - effects: - - '\speed{+5}' - image: bear - type: dog - flavour: 'In hindsight, not the best idea.' - - - &big_dog - name: Big Dog - costs: - energy: 2 - health: 2 - effects: - - '\speed{+3}' - image: big_dog - type: dog - flavour: "He's not red though." - - - &greyhound - name: Greyhound - costs: - risk: 2 - effects: - - '\speed{+3}' - - '\nohold' - image: greyhound - type: dog - flavour: 'What happens when you mix the colours on a husky? You get a grey hound.' - - - &malamute - name: Malamute - costs: - energy: 2 - health: 2 - risk: 1 - effects: - - '\daydraw{+2}' - image: malamute - type: dog - flavour: 'A common sled hauling breed.' - - - &problem_dog - name: Problem Dog - costs: - energy: 1 - health: 1 - risk: 1 - effects: - - '\daydraw{-1}' - - '\speed{+3}' - image: problem_dog - type: dog - flavour: "I swear, if you weren't so fast." - - - &bison - name: Bison - costs: - energy: 2 - risk: 1 - effects: - - '\draw{5}' - image: bison - type: food - flavour: "It's very lean." - - - &poutine - name: Poutine - costs: - health: 2 - effects: - - '\draw{1}' - - '\nohypothermia' - image: poutine - type: food - flavour: 'The great Canadian carb!' - - - &venison - name: Venison - costs: - health: 2 - effects: - - '\draw{3}' - image: venison - type: food - flavour: 'Better than breakfast.' - - - &steak - name: Steak - effects: - - '\draw{1}' - image: steak - type: food - flavour: "Well aren't you fancy." - - - &jerky - name: Jerky - costs: - energy: 1 - health: 1 - effects: - - '\draw{3}' - image: jerky - type: food - flavour: 'Watch your sodium!' - - - &midnight_sun - name: Midnight Sun - costs: - energy: 1 - health: 1 - risk: 1 - effects: - - '\move{10}' - image: midnight_sun - type: movement - flavour: 'Strange things are done in the midnight sun.' - - - &push - name: Push - costs: - energy: 1 - effects: - - '\move{5}' - image: push - type: movement - flavour: 'Not a full mush, but still putting in some effort.' - - - &slow_and_steady - name: Slow and Steady - effects: - - '\draw{1}' - - '\move{0}' - image: slow_and_steady - type: movement - flavour: 'Maybe a bit too slow.' - - - &band_aid - name: Band Aid - effects: - - '\see{1}' - - '\destroy{1}' - image: band_aid - type: personal - flavour: 'Not much.' - - - &bandage - name: Bandage - costs: - energy: 1 - effects: - - '\see{5}' - - '\destroy{1}' - image: bandage - type: personal - flavour: 'Make sure you wrap it tight.' - - - &brandy - name: Brandy - costs: - risk: 1 - effects: - - '\see{5}' - - '\destroy{1}' - image: brandy - type: personal - flavour: 'Brought by a St.\ Bernard' - - - &caffeine - name: Caffeine - costs: - health: 2 - effects: - - '\draw{1}' - - '\see{2}' - - '\destroy{1}' - image: caffeine - type: personal - flavour: 'The greatest addiction ever.' - - - &improvise - name: Improvise - effects: - - '\take{1}' - image: improvise - type: sled - flavour: 'MacGyver of the north.' - - - &makeshift_sled - name: Makeshift Sled - costs: - energy: 1 - health: 1 - effects: - - '\supply{2}' - - '\take{6}' - image: makeshift_sled - type: sled - flavour: "Rickety, but it'll hold." - - - &salvage - name: Salvage - costs: - energy: 1 - health: 1 - effects: - - '\supply{3}' - - '\take{2}' - image: salvage - type: sled - flavour: 'Take the good with the bad.' - - - &antique_sled - name: Antique Sled - costs: - health: 5 - effects: - - '\supply{2}' - - '\take{8}' - image: antique_sled - type: sled - flavour: 'Withstood the test of the time.' - - - &rush - name: Rush - costs: - health: 3 - risk: 1 - effects: - - '\move{8}' - image: rush - type: movement - flavour: 'Hurry up!' - - - &supply_run - name: Supply Run - effects: - - '\move{3}' - image: supply_run - type: movement - flavour: 'Not as easy as dropping by the grocery store.' - -# }}} - -decks: - - name: Starter1 - cards: - - &a_hat1 - data: - <<: *a_hat - rarity: common - deck: Starter1 - output: "cards/a_hat1.tex" - template: "templates/card.mako" - - *breakfast - - *breakfast - - *dinner - - *dog_chow - - *first_aid - - *first_aid - - *good_dog - - *grandma_soup - - *husky - - *lunch - - *lunch - - *move - - *move - - *move - - *move - - *mush - - *repair_sled - - *repair_sled - - *upgrade_sled - - *upgrade_sled - - *wheel_dog +# documents: diff --git a/build.ninja b/build.ninja new file mode 100644 index 0000000..4a93ae0 --- /dev/null +++ b/build.ninja @@ -0,0 +1,1000 @@ +# Generated from configure.jq, do not edit this file! + +root = . + +rule configure + description = recreate build.ninja using configure.jq via configure.sh + command = bash configure.sh > build.ninja + generator = 1 + restat = 1 + +build build.ninja: configure | configure.jq configure.sh assets.cue cards.cue others.cue types.cue assets.yaml cards.yaml +include rules.ninja + +build output/everything.json: cuegen assets.cue cards.cue others.cue types.cue assets.yaml cards.yaml + filter = . + +build output/starter1-a_hat[1].json: extract output/everything.json + filter = --arg asset 'starter1-a_hat[1]' '.assets[$$asset].data' +build output/starter1-a_hat[1].tex: template2tex output/starter1-a_hat[1].json | templates/card.tex + template = templates/card.tex +build output/starter1-a_hat[1].pdf: tex2pdf output/starter1-a_hat[1].tex || output/starter1-a_hat[1].pdf.dd + dyndep = output/starter1-a_hat[1].pdf.dd +build output/starter1-a_hat[1].pdf.dd: scantex output/starter1-a_hat[1].tex +build output/starter1-a_hat[1].raw.png: pdf2png output/starter1-a_hat[1].pdf + w = 750 + h = 1050 +build output/starter1-a_hat[1].png: convert output/starter1-a_hat[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-breakfast[2].json: extract output/everything.json + filter = --arg asset 'starter1-breakfast[2]' '.assets[$$asset].data' +build output/starter1-breakfast[2].tex: template2tex output/starter1-breakfast[2].json | templates/card.tex + template = templates/card.tex +build output/starter1-breakfast[2].pdf: tex2pdf output/starter1-breakfast[2].tex || output/starter1-breakfast[2].pdf.dd + dyndep = output/starter1-breakfast[2].pdf.dd +build output/starter1-breakfast[2].pdf.dd: scantex output/starter1-breakfast[2].tex +build output/starter1-breakfast[2].raw.png: pdf2png output/starter1-breakfast[2].pdf + w = 750 + h = 1050 +build output/starter1-breakfast[2].png: convert output/starter1-breakfast[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-lunch[2].json: extract output/everything.json + filter = --arg asset 'starter1-lunch[2]' '.assets[$$asset].data' +build output/starter1-lunch[2].tex: template2tex output/starter1-lunch[2].json | templates/card.tex + template = templates/card.tex +build output/starter1-lunch[2].pdf: tex2pdf output/starter1-lunch[2].tex || output/starter1-lunch[2].pdf.dd + dyndep = output/starter1-lunch[2].pdf.dd +build output/starter1-lunch[2].pdf.dd: scantex output/starter1-lunch[2].tex +build output/starter1-lunch[2].raw.png: pdf2png output/starter1-lunch[2].pdf + w = 750 + h = 1050 +build output/starter1-lunch[2].png: convert output/starter1-lunch[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-dinner[1].json: extract output/everything.json + filter = --arg asset 'starter1-dinner[1]' '.assets[$$asset].data' +build output/starter1-dinner[1].tex: template2tex output/starter1-dinner[1].json | templates/card.tex + template = templates/card.tex +build output/starter1-dinner[1].pdf: tex2pdf output/starter1-dinner[1].tex || output/starter1-dinner[1].pdf.dd + dyndep = output/starter1-dinner[1].pdf.dd +build output/starter1-dinner[1].pdf.dd: scantex output/starter1-dinner[1].tex +build output/starter1-dinner[1].raw.png: pdf2png output/starter1-dinner[1].pdf + w = 750 + h = 1050 +build output/starter1-dinner[1].png: convert output/starter1-dinner[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-dog_chow[1].json: extract output/everything.json + filter = --arg asset 'starter1-dog_chow[1]' '.assets[$$asset].data' +build output/starter1-dog_chow[1].tex: template2tex output/starter1-dog_chow[1].json | templates/card.tex + template = templates/card.tex +build output/starter1-dog_chow[1].pdf: tex2pdf output/starter1-dog_chow[1].tex || output/starter1-dog_chow[1].pdf.dd + dyndep = output/starter1-dog_chow[1].pdf.dd +build output/starter1-dog_chow[1].pdf.dd: scantex output/starter1-dog_chow[1].tex +build output/starter1-dog_chow[1].raw.png: pdf2png output/starter1-dog_chow[1].pdf + w = 750 + h = 1050 +build output/starter1-dog_chow[1].png: convert output/starter1-dog_chow[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-first_aid[2].json: extract output/everything.json + filter = --arg asset 'starter1-first_aid[2]' '.assets[$$asset].data' +build output/starter1-first_aid[2].tex: template2tex output/starter1-first_aid[2].json | templates/card.tex + template = templates/card.tex +build output/starter1-first_aid[2].pdf: tex2pdf output/starter1-first_aid[2].tex || output/starter1-first_aid[2].pdf.dd + dyndep = output/starter1-first_aid[2].pdf.dd +build output/starter1-first_aid[2].pdf.dd: scantex output/starter1-first_aid[2].tex +build output/starter1-first_aid[2].raw.png: pdf2png output/starter1-first_aid[2].pdf + w = 750 + h = 1050 +build output/starter1-first_aid[2].png: convert output/starter1-first_aid[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-good_dog[1].json: extract output/everything.json + filter = --arg asset 'starter1-good_dog[1]' '.assets[$$asset].data' +build output/starter1-good_dog[1].tex: template2tex output/starter1-good_dog[1].json | templates/card.tex + template = templates/card.tex +build output/starter1-good_dog[1].pdf: tex2pdf output/starter1-good_dog[1].tex || output/starter1-good_dog[1].pdf.dd + dyndep = output/starter1-good_dog[1].pdf.dd +build output/starter1-good_dog[1].pdf.dd: scantex output/starter1-good_dog[1].tex +build output/starter1-good_dog[1].raw.png: pdf2png output/starter1-good_dog[1].pdf + w = 750 + h = 1050 +build output/starter1-good_dog[1].png: convert output/starter1-good_dog[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-grandma_soup[1].json: extract output/everything.json + filter = --arg asset 'starter1-grandma_soup[1]' '.assets[$$asset].data' +build output/starter1-grandma_soup[1].tex: template2tex output/starter1-grandma_soup[1].json | templates/card.tex + template = templates/card.tex +build output/starter1-grandma_soup[1].pdf: tex2pdf output/starter1-grandma_soup[1].tex || output/starter1-grandma_soup[1].pdf.dd + dyndep = output/starter1-grandma_soup[1].pdf.dd +build output/starter1-grandma_soup[1].pdf.dd: scantex output/starter1-grandma_soup[1].tex +build output/starter1-grandma_soup[1].raw.png: pdf2png output/starter1-grandma_soup[1].pdf + w = 750 + h = 1050 +build output/starter1-grandma_soup[1].png: convert output/starter1-grandma_soup[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-husky[1].json: extract output/everything.json + filter = --arg asset 'starter1-husky[1]' '.assets[$$asset].data' +build output/starter1-husky[1].tex: template2tex output/starter1-husky[1].json | templates/card.tex + template = templates/card.tex +build output/starter1-husky[1].pdf: tex2pdf output/starter1-husky[1].tex || output/starter1-husky[1].pdf.dd + dyndep = output/starter1-husky[1].pdf.dd +build output/starter1-husky[1].pdf.dd: scantex output/starter1-husky[1].tex +build output/starter1-husky[1].raw.png: pdf2png output/starter1-husky[1].pdf + w = 750 + h = 1050 +build output/starter1-husky[1].png: convert output/starter1-husky[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-move[4].json: extract output/everything.json + filter = --arg asset 'starter1-move[4]' '.assets[$$asset].data' +build output/starter1-move[4].tex: template2tex output/starter1-move[4].json | templates/card.tex + template = templates/card.tex +build output/starter1-move[4].pdf: tex2pdf output/starter1-move[4].tex || output/starter1-move[4].pdf.dd + dyndep = output/starter1-move[4].pdf.dd +build output/starter1-move[4].pdf.dd: scantex output/starter1-move[4].tex +build output/starter1-move[4].raw.png: pdf2png output/starter1-move[4].pdf + w = 750 + h = 1050 +build output/starter1-move[4].png: convert output/starter1-move[4].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-mush[1].json: extract output/everything.json + filter = --arg asset 'starter1-mush[1]' '.assets[$$asset].data' +build output/starter1-mush[1].tex: template2tex output/starter1-mush[1].json | templates/card.tex + template = templates/card.tex +build output/starter1-mush[1].pdf: tex2pdf output/starter1-mush[1].tex || output/starter1-mush[1].pdf.dd + dyndep = output/starter1-mush[1].pdf.dd +build output/starter1-mush[1].pdf.dd: scantex output/starter1-mush[1].tex +build output/starter1-mush[1].raw.png: pdf2png output/starter1-mush[1].pdf + w = 750 + h = 1050 +build output/starter1-mush[1].png: convert output/starter1-mush[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-repair_sled[2].json: extract output/everything.json + filter = --arg asset 'starter1-repair_sled[2]' '.assets[$$asset].data' +build output/starter1-repair_sled[2].tex: template2tex output/starter1-repair_sled[2].json | templates/card.tex + template = templates/card.tex +build output/starter1-repair_sled[2].pdf: tex2pdf output/starter1-repair_sled[2].tex || output/starter1-repair_sled[2].pdf.dd + dyndep = output/starter1-repair_sled[2].pdf.dd +build output/starter1-repair_sled[2].pdf.dd: scantex output/starter1-repair_sled[2].tex +build output/starter1-repair_sled[2].raw.png: pdf2png output/starter1-repair_sled[2].pdf + w = 750 + h = 1050 +build output/starter1-repair_sled[2].png: convert output/starter1-repair_sled[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-upgrade_sled[2].json: extract output/everything.json + filter = --arg asset 'starter1-upgrade_sled[2]' '.assets[$$asset].data' +build output/starter1-upgrade_sled[2].tex: template2tex output/starter1-upgrade_sled[2].json | templates/card.tex + template = templates/card.tex +build output/starter1-upgrade_sled[2].pdf: tex2pdf output/starter1-upgrade_sled[2].tex || output/starter1-upgrade_sled[2].pdf.dd + dyndep = output/starter1-upgrade_sled[2].pdf.dd +build output/starter1-upgrade_sled[2].pdf.dd: scantex output/starter1-upgrade_sled[2].tex +build output/starter1-upgrade_sled[2].raw.png: pdf2png output/starter1-upgrade_sled[2].pdf + w = 750 + h = 1050 +build output/starter1-upgrade_sled[2].png: convert output/starter1-upgrade_sled[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter1-wheel_dog[1].json: extract output/everything.json + filter = --arg asset 'starter1-wheel_dog[1]' '.assets[$$asset].data' +build output/starter1-wheel_dog[1].tex: template2tex output/starter1-wheel_dog[1].json | templates/card.tex + template = templates/card.tex +build output/starter1-wheel_dog[1].pdf: tex2pdf output/starter1-wheel_dog[1].tex || output/starter1-wheel_dog[1].pdf.dd + dyndep = output/starter1-wheel_dog[1].pdf.dd +build output/starter1-wheel_dog[1].pdf.dd: scantex output/starter1-wheel_dog[1].tex +build output/starter1-wheel_dog[1].raw.png: pdf2png output/starter1-wheel_dog[1].pdf + w = 750 + h = 1050 +build output/starter1-wheel_dog[1].png: convert output/starter1-wheel_dog[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-a_hat[1].json: extract output/everything.json + filter = --arg asset 'starter2-a_hat[1]' '.assets[$$asset].data' +build output/starter2-a_hat[1].tex: template2tex output/starter2-a_hat[1].json | templates/card.tex + template = templates/card.tex +build output/starter2-a_hat[1].pdf: tex2pdf output/starter2-a_hat[1].tex || output/starter2-a_hat[1].pdf.dd + dyndep = output/starter2-a_hat[1].pdf.dd +build output/starter2-a_hat[1].pdf.dd: scantex output/starter2-a_hat[1].tex +build output/starter2-a_hat[1].raw.png: pdf2png output/starter2-a_hat[1].pdf + w = 750 + h = 1050 +build output/starter2-a_hat[1].png: convert output/starter2-a_hat[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-breakfast[2].json: extract output/everything.json + filter = --arg asset 'starter2-breakfast[2]' '.assets[$$asset].data' +build output/starter2-breakfast[2].tex: template2tex output/starter2-breakfast[2].json | templates/card.tex + template = templates/card.tex +build output/starter2-breakfast[2].pdf: tex2pdf output/starter2-breakfast[2].tex || output/starter2-breakfast[2].pdf.dd + dyndep = output/starter2-breakfast[2].pdf.dd +build output/starter2-breakfast[2].pdf.dd: scantex output/starter2-breakfast[2].tex +build output/starter2-breakfast[2].raw.png: pdf2png output/starter2-breakfast[2].pdf + w = 750 + h = 1050 +build output/starter2-breakfast[2].png: convert output/starter2-breakfast[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-lunch[2].json: extract output/everything.json + filter = --arg asset 'starter2-lunch[2]' '.assets[$$asset].data' +build output/starter2-lunch[2].tex: template2tex output/starter2-lunch[2].json | templates/card.tex + template = templates/card.tex +build output/starter2-lunch[2].pdf: tex2pdf output/starter2-lunch[2].tex || output/starter2-lunch[2].pdf.dd + dyndep = output/starter2-lunch[2].pdf.dd +build output/starter2-lunch[2].pdf.dd: scantex output/starter2-lunch[2].tex +build output/starter2-lunch[2].raw.png: pdf2png output/starter2-lunch[2].pdf + w = 750 + h = 1050 +build output/starter2-lunch[2].png: convert output/starter2-lunch[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-dinner[1].json: extract output/everything.json + filter = --arg asset 'starter2-dinner[1]' '.assets[$$asset].data' +build output/starter2-dinner[1].tex: template2tex output/starter2-dinner[1].json | templates/card.tex + template = templates/card.tex +build output/starter2-dinner[1].pdf: tex2pdf output/starter2-dinner[1].tex || output/starter2-dinner[1].pdf.dd + dyndep = output/starter2-dinner[1].pdf.dd +build output/starter2-dinner[1].pdf.dd: scantex output/starter2-dinner[1].tex +build output/starter2-dinner[1].raw.png: pdf2png output/starter2-dinner[1].pdf + w = 750 + h = 1050 +build output/starter2-dinner[1].png: convert output/starter2-dinner[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-dog_chow[1].json: extract output/everything.json + filter = --arg asset 'starter2-dog_chow[1]' '.assets[$$asset].data' +build output/starter2-dog_chow[1].tex: template2tex output/starter2-dog_chow[1].json | templates/card.tex + template = templates/card.tex +build output/starter2-dog_chow[1].pdf: tex2pdf output/starter2-dog_chow[1].tex || output/starter2-dog_chow[1].pdf.dd + dyndep = output/starter2-dog_chow[1].pdf.dd +build output/starter2-dog_chow[1].pdf.dd: scantex output/starter2-dog_chow[1].tex +build output/starter2-dog_chow[1].raw.png: pdf2png output/starter2-dog_chow[1].pdf + w = 750 + h = 1050 +build output/starter2-dog_chow[1].png: convert output/starter2-dog_chow[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-first_aid[2].json: extract output/everything.json + filter = --arg asset 'starter2-first_aid[2]' '.assets[$$asset].data' +build output/starter2-first_aid[2].tex: template2tex output/starter2-first_aid[2].json | templates/card.tex + template = templates/card.tex +build output/starter2-first_aid[2].pdf: tex2pdf output/starter2-first_aid[2].tex || output/starter2-first_aid[2].pdf.dd + dyndep = output/starter2-first_aid[2].pdf.dd +build output/starter2-first_aid[2].pdf.dd: scantex output/starter2-first_aid[2].tex +build output/starter2-first_aid[2].raw.png: pdf2png output/starter2-first_aid[2].pdf + w = 750 + h = 1050 +build output/starter2-first_aid[2].png: convert output/starter2-first_aid[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-good_dog[1].json: extract output/everything.json + filter = --arg asset 'starter2-good_dog[1]' '.assets[$$asset].data' +build output/starter2-good_dog[1].tex: template2tex output/starter2-good_dog[1].json | templates/card.tex + template = templates/card.tex +build output/starter2-good_dog[1].pdf: tex2pdf output/starter2-good_dog[1].tex || output/starter2-good_dog[1].pdf.dd + dyndep = output/starter2-good_dog[1].pdf.dd +build output/starter2-good_dog[1].pdf.dd: scantex output/starter2-good_dog[1].tex +build output/starter2-good_dog[1].raw.png: pdf2png output/starter2-good_dog[1].pdf + w = 750 + h = 1050 +build output/starter2-good_dog[1].png: convert output/starter2-good_dog[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-grandma_soup[1].json: extract output/everything.json + filter = --arg asset 'starter2-grandma_soup[1]' '.assets[$$asset].data' +build output/starter2-grandma_soup[1].tex: template2tex output/starter2-grandma_soup[1].json | templates/card.tex + template = templates/card.tex +build output/starter2-grandma_soup[1].pdf: tex2pdf output/starter2-grandma_soup[1].tex || output/starter2-grandma_soup[1].pdf.dd + dyndep = output/starter2-grandma_soup[1].pdf.dd +build output/starter2-grandma_soup[1].pdf.dd: scantex output/starter2-grandma_soup[1].tex +build output/starter2-grandma_soup[1].raw.png: pdf2png output/starter2-grandma_soup[1].pdf + w = 750 + h = 1050 +build output/starter2-grandma_soup[1].png: convert output/starter2-grandma_soup[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-husky[1].json: extract output/everything.json + filter = --arg asset 'starter2-husky[1]' '.assets[$$asset].data' +build output/starter2-husky[1].tex: template2tex output/starter2-husky[1].json | templates/card.tex + template = templates/card.tex +build output/starter2-husky[1].pdf: tex2pdf output/starter2-husky[1].tex || output/starter2-husky[1].pdf.dd + dyndep = output/starter2-husky[1].pdf.dd +build output/starter2-husky[1].pdf.dd: scantex output/starter2-husky[1].tex +build output/starter2-husky[1].raw.png: pdf2png output/starter2-husky[1].pdf + w = 750 + h = 1050 +build output/starter2-husky[1].png: convert output/starter2-husky[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-move[4].json: extract output/everything.json + filter = --arg asset 'starter2-move[4]' '.assets[$$asset].data' +build output/starter2-move[4].tex: template2tex output/starter2-move[4].json | templates/card.tex + template = templates/card.tex +build output/starter2-move[4].pdf: tex2pdf output/starter2-move[4].tex || output/starter2-move[4].pdf.dd + dyndep = output/starter2-move[4].pdf.dd +build output/starter2-move[4].pdf.dd: scantex output/starter2-move[4].tex +build output/starter2-move[4].raw.png: pdf2png output/starter2-move[4].pdf + w = 750 + h = 1050 +build output/starter2-move[4].png: convert output/starter2-move[4].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-mush[1].json: extract output/everything.json + filter = --arg asset 'starter2-mush[1]' '.assets[$$asset].data' +build output/starter2-mush[1].tex: template2tex output/starter2-mush[1].json | templates/card.tex + template = templates/card.tex +build output/starter2-mush[1].pdf: tex2pdf output/starter2-mush[1].tex || output/starter2-mush[1].pdf.dd + dyndep = output/starter2-mush[1].pdf.dd +build output/starter2-mush[1].pdf.dd: scantex output/starter2-mush[1].tex +build output/starter2-mush[1].raw.png: pdf2png output/starter2-mush[1].pdf + w = 750 + h = 1050 +build output/starter2-mush[1].png: convert output/starter2-mush[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-repair_sled[2].json: extract output/everything.json + filter = --arg asset 'starter2-repair_sled[2]' '.assets[$$asset].data' +build output/starter2-repair_sled[2].tex: template2tex output/starter2-repair_sled[2].json | templates/card.tex + template = templates/card.tex +build output/starter2-repair_sled[2].pdf: tex2pdf output/starter2-repair_sled[2].tex || output/starter2-repair_sled[2].pdf.dd + dyndep = output/starter2-repair_sled[2].pdf.dd +build output/starter2-repair_sled[2].pdf.dd: scantex output/starter2-repair_sled[2].tex +build output/starter2-repair_sled[2].raw.png: pdf2png output/starter2-repair_sled[2].pdf + w = 750 + h = 1050 +build output/starter2-repair_sled[2].png: convert output/starter2-repair_sled[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-upgrade_sled[2].json: extract output/everything.json + filter = --arg asset 'starter2-upgrade_sled[2]' '.assets[$$asset].data' +build output/starter2-upgrade_sled[2].tex: template2tex output/starter2-upgrade_sled[2].json | templates/card.tex + template = templates/card.tex +build output/starter2-upgrade_sled[2].pdf: tex2pdf output/starter2-upgrade_sled[2].tex || output/starter2-upgrade_sled[2].pdf.dd + dyndep = output/starter2-upgrade_sled[2].pdf.dd +build output/starter2-upgrade_sled[2].pdf.dd: scantex output/starter2-upgrade_sled[2].tex +build output/starter2-upgrade_sled[2].raw.png: pdf2png output/starter2-upgrade_sled[2].pdf + w = 750 + h = 1050 +build output/starter2-upgrade_sled[2].png: convert output/starter2-upgrade_sled[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter2-wheel_dog[1].json: extract output/everything.json + filter = --arg asset 'starter2-wheel_dog[1]' '.assets[$$asset].data' +build output/starter2-wheel_dog[1].tex: template2tex output/starter2-wheel_dog[1].json | templates/card.tex + template = templates/card.tex +build output/starter2-wheel_dog[1].pdf: tex2pdf output/starter2-wheel_dog[1].tex || output/starter2-wheel_dog[1].pdf.dd + dyndep = output/starter2-wheel_dog[1].pdf.dd +build output/starter2-wheel_dog[1].pdf.dd: scantex output/starter2-wheel_dog[1].tex +build output/starter2-wheel_dog[1].raw.png: pdf2png output/starter2-wheel_dog[1].pdf + w = 750 + h = 1050 +build output/starter2-wheel_dog[1].png: convert output/starter2-wheel_dog[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-a_hat[1].json: extract output/everything.json + filter = --arg asset 'starter3-a_hat[1]' '.assets[$$asset].data' +build output/starter3-a_hat[1].tex: template2tex output/starter3-a_hat[1].json | templates/card.tex + template = templates/card.tex +build output/starter3-a_hat[1].pdf: tex2pdf output/starter3-a_hat[1].tex || output/starter3-a_hat[1].pdf.dd + dyndep = output/starter3-a_hat[1].pdf.dd +build output/starter3-a_hat[1].pdf.dd: scantex output/starter3-a_hat[1].tex +build output/starter3-a_hat[1].raw.png: pdf2png output/starter3-a_hat[1].pdf + w = 750 + h = 1050 +build output/starter3-a_hat[1].png: convert output/starter3-a_hat[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-breakfast[2].json: extract output/everything.json + filter = --arg asset 'starter3-breakfast[2]' '.assets[$$asset].data' +build output/starter3-breakfast[2].tex: template2tex output/starter3-breakfast[2].json | templates/card.tex + template = templates/card.tex +build output/starter3-breakfast[2].pdf: tex2pdf output/starter3-breakfast[2].tex || output/starter3-breakfast[2].pdf.dd + dyndep = output/starter3-breakfast[2].pdf.dd +build output/starter3-breakfast[2].pdf.dd: scantex output/starter3-breakfast[2].tex +build output/starter3-breakfast[2].raw.png: pdf2png output/starter3-breakfast[2].pdf + w = 750 + h = 1050 +build output/starter3-breakfast[2].png: convert output/starter3-breakfast[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-lunch[2].json: extract output/everything.json + filter = --arg asset 'starter3-lunch[2]' '.assets[$$asset].data' +build output/starter3-lunch[2].tex: template2tex output/starter3-lunch[2].json | templates/card.tex + template = templates/card.tex +build output/starter3-lunch[2].pdf: tex2pdf output/starter3-lunch[2].tex || output/starter3-lunch[2].pdf.dd + dyndep = output/starter3-lunch[2].pdf.dd +build output/starter3-lunch[2].pdf.dd: scantex output/starter3-lunch[2].tex +build output/starter3-lunch[2].raw.png: pdf2png output/starter3-lunch[2].pdf + w = 750 + h = 1050 +build output/starter3-lunch[2].png: convert output/starter3-lunch[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-dinner[1].json: extract output/everything.json + filter = --arg asset 'starter3-dinner[1]' '.assets[$$asset].data' +build output/starter3-dinner[1].tex: template2tex output/starter3-dinner[1].json | templates/card.tex + template = templates/card.tex +build output/starter3-dinner[1].pdf: tex2pdf output/starter3-dinner[1].tex || output/starter3-dinner[1].pdf.dd + dyndep = output/starter3-dinner[1].pdf.dd +build output/starter3-dinner[1].pdf.dd: scantex output/starter3-dinner[1].tex +build output/starter3-dinner[1].raw.png: pdf2png output/starter3-dinner[1].pdf + w = 750 + h = 1050 +build output/starter3-dinner[1].png: convert output/starter3-dinner[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-dog_chow[1].json: extract output/everything.json + filter = --arg asset 'starter3-dog_chow[1]' '.assets[$$asset].data' +build output/starter3-dog_chow[1].tex: template2tex output/starter3-dog_chow[1].json | templates/card.tex + template = templates/card.tex +build output/starter3-dog_chow[1].pdf: tex2pdf output/starter3-dog_chow[1].tex || output/starter3-dog_chow[1].pdf.dd + dyndep = output/starter3-dog_chow[1].pdf.dd +build output/starter3-dog_chow[1].pdf.dd: scantex output/starter3-dog_chow[1].tex +build output/starter3-dog_chow[1].raw.png: pdf2png output/starter3-dog_chow[1].pdf + w = 750 + h = 1050 +build output/starter3-dog_chow[1].png: convert output/starter3-dog_chow[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-first_aid[2].json: extract output/everything.json + filter = --arg asset 'starter3-first_aid[2]' '.assets[$$asset].data' +build output/starter3-first_aid[2].tex: template2tex output/starter3-first_aid[2].json | templates/card.tex + template = templates/card.tex +build output/starter3-first_aid[2].pdf: tex2pdf output/starter3-first_aid[2].tex || output/starter3-first_aid[2].pdf.dd + dyndep = output/starter3-first_aid[2].pdf.dd +build output/starter3-first_aid[2].pdf.dd: scantex output/starter3-first_aid[2].tex +build output/starter3-first_aid[2].raw.png: pdf2png output/starter3-first_aid[2].pdf + w = 750 + h = 1050 +build output/starter3-first_aid[2].png: convert output/starter3-first_aid[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-good_dog[1].json: extract output/everything.json + filter = --arg asset 'starter3-good_dog[1]' '.assets[$$asset].data' +build output/starter3-good_dog[1].tex: template2tex output/starter3-good_dog[1].json | templates/card.tex + template = templates/card.tex +build output/starter3-good_dog[1].pdf: tex2pdf output/starter3-good_dog[1].tex || output/starter3-good_dog[1].pdf.dd + dyndep = output/starter3-good_dog[1].pdf.dd +build output/starter3-good_dog[1].pdf.dd: scantex output/starter3-good_dog[1].tex +build output/starter3-good_dog[1].raw.png: pdf2png output/starter3-good_dog[1].pdf + w = 750 + h = 1050 +build output/starter3-good_dog[1].png: convert output/starter3-good_dog[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-grandma_soup[1].json: extract output/everything.json + filter = --arg asset 'starter3-grandma_soup[1]' '.assets[$$asset].data' +build output/starter3-grandma_soup[1].tex: template2tex output/starter3-grandma_soup[1].json | templates/card.tex + template = templates/card.tex +build output/starter3-grandma_soup[1].pdf: tex2pdf output/starter3-grandma_soup[1].tex || output/starter3-grandma_soup[1].pdf.dd + dyndep = output/starter3-grandma_soup[1].pdf.dd +build output/starter3-grandma_soup[1].pdf.dd: scantex output/starter3-grandma_soup[1].tex +build output/starter3-grandma_soup[1].raw.png: pdf2png output/starter3-grandma_soup[1].pdf + w = 750 + h = 1050 +build output/starter3-grandma_soup[1].png: convert output/starter3-grandma_soup[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-husky[1].json: extract output/everything.json + filter = --arg asset 'starter3-husky[1]' '.assets[$$asset].data' +build output/starter3-husky[1].tex: template2tex output/starter3-husky[1].json | templates/card.tex + template = templates/card.tex +build output/starter3-husky[1].pdf: tex2pdf output/starter3-husky[1].tex || output/starter3-husky[1].pdf.dd + dyndep = output/starter3-husky[1].pdf.dd +build output/starter3-husky[1].pdf.dd: scantex output/starter3-husky[1].tex +build output/starter3-husky[1].raw.png: pdf2png output/starter3-husky[1].pdf + w = 750 + h = 1050 +build output/starter3-husky[1].png: convert output/starter3-husky[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-move[4].json: extract output/everything.json + filter = --arg asset 'starter3-move[4]' '.assets[$$asset].data' +build output/starter3-move[4].tex: template2tex output/starter3-move[4].json | templates/card.tex + template = templates/card.tex +build output/starter3-move[4].pdf: tex2pdf output/starter3-move[4].tex || output/starter3-move[4].pdf.dd + dyndep = output/starter3-move[4].pdf.dd +build output/starter3-move[4].pdf.dd: scantex output/starter3-move[4].tex +build output/starter3-move[4].raw.png: pdf2png output/starter3-move[4].pdf + w = 750 + h = 1050 +build output/starter3-move[4].png: convert output/starter3-move[4].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-mush[1].json: extract output/everything.json + filter = --arg asset 'starter3-mush[1]' '.assets[$$asset].data' +build output/starter3-mush[1].tex: template2tex output/starter3-mush[1].json | templates/card.tex + template = templates/card.tex +build output/starter3-mush[1].pdf: tex2pdf output/starter3-mush[1].tex || output/starter3-mush[1].pdf.dd + dyndep = output/starter3-mush[1].pdf.dd +build output/starter3-mush[1].pdf.dd: scantex output/starter3-mush[1].tex +build output/starter3-mush[1].raw.png: pdf2png output/starter3-mush[1].pdf + w = 750 + h = 1050 +build output/starter3-mush[1].png: convert output/starter3-mush[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-repair_sled[2].json: extract output/everything.json + filter = --arg asset 'starter3-repair_sled[2]' '.assets[$$asset].data' +build output/starter3-repair_sled[2].tex: template2tex output/starter3-repair_sled[2].json | templates/card.tex + template = templates/card.tex +build output/starter3-repair_sled[2].pdf: tex2pdf output/starter3-repair_sled[2].tex || output/starter3-repair_sled[2].pdf.dd + dyndep = output/starter3-repair_sled[2].pdf.dd +build output/starter3-repair_sled[2].pdf.dd: scantex output/starter3-repair_sled[2].tex +build output/starter3-repair_sled[2].raw.png: pdf2png output/starter3-repair_sled[2].pdf + w = 750 + h = 1050 +build output/starter3-repair_sled[2].png: convert output/starter3-repair_sled[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-upgrade_sled[2].json: extract output/everything.json + filter = --arg asset 'starter3-upgrade_sled[2]' '.assets[$$asset].data' +build output/starter3-upgrade_sled[2].tex: template2tex output/starter3-upgrade_sled[2].json | templates/card.tex + template = templates/card.tex +build output/starter3-upgrade_sled[2].pdf: tex2pdf output/starter3-upgrade_sled[2].tex || output/starter3-upgrade_sled[2].pdf.dd + dyndep = output/starter3-upgrade_sled[2].pdf.dd +build output/starter3-upgrade_sled[2].pdf.dd: scantex output/starter3-upgrade_sled[2].tex +build output/starter3-upgrade_sled[2].raw.png: pdf2png output/starter3-upgrade_sled[2].pdf + w = 750 + h = 1050 +build output/starter3-upgrade_sled[2].png: convert output/starter3-upgrade_sled[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter3-wheel_dog[1].json: extract output/everything.json + filter = --arg asset 'starter3-wheel_dog[1]' '.assets[$$asset].data' +build output/starter3-wheel_dog[1].tex: template2tex output/starter3-wheel_dog[1].json | templates/card.tex + template = templates/card.tex +build output/starter3-wheel_dog[1].pdf: tex2pdf output/starter3-wheel_dog[1].tex || output/starter3-wheel_dog[1].pdf.dd + dyndep = output/starter3-wheel_dog[1].pdf.dd +build output/starter3-wheel_dog[1].pdf.dd: scantex output/starter3-wheel_dog[1].tex +build output/starter3-wheel_dog[1].raw.png: pdf2png output/starter3-wheel_dog[1].pdf + w = 750 + h = 1050 +build output/starter3-wheel_dog[1].png: convert output/starter3-wheel_dog[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-a_hat[1].json: extract output/everything.json + filter = --arg asset 'starter4-a_hat[1]' '.assets[$$asset].data' +build output/starter4-a_hat[1].tex: template2tex output/starter4-a_hat[1].json | templates/card.tex + template = templates/card.tex +build output/starter4-a_hat[1].pdf: tex2pdf output/starter4-a_hat[1].tex || output/starter4-a_hat[1].pdf.dd + dyndep = output/starter4-a_hat[1].pdf.dd +build output/starter4-a_hat[1].pdf.dd: scantex output/starter4-a_hat[1].tex +build output/starter4-a_hat[1].raw.png: pdf2png output/starter4-a_hat[1].pdf + w = 750 + h = 1050 +build output/starter4-a_hat[1].png: convert output/starter4-a_hat[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-breakfast[2].json: extract output/everything.json + filter = --arg asset 'starter4-breakfast[2]' '.assets[$$asset].data' +build output/starter4-breakfast[2].tex: template2tex output/starter4-breakfast[2].json | templates/card.tex + template = templates/card.tex +build output/starter4-breakfast[2].pdf: tex2pdf output/starter4-breakfast[2].tex || output/starter4-breakfast[2].pdf.dd + dyndep = output/starter4-breakfast[2].pdf.dd +build output/starter4-breakfast[2].pdf.dd: scantex output/starter4-breakfast[2].tex +build output/starter4-breakfast[2].raw.png: pdf2png output/starter4-breakfast[2].pdf + w = 750 + h = 1050 +build output/starter4-breakfast[2].png: convert output/starter4-breakfast[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-lunch[2].json: extract output/everything.json + filter = --arg asset 'starter4-lunch[2]' '.assets[$$asset].data' +build output/starter4-lunch[2].tex: template2tex output/starter4-lunch[2].json | templates/card.tex + template = templates/card.tex +build output/starter4-lunch[2].pdf: tex2pdf output/starter4-lunch[2].tex || output/starter4-lunch[2].pdf.dd + dyndep = output/starter4-lunch[2].pdf.dd +build output/starter4-lunch[2].pdf.dd: scantex output/starter4-lunch[2].tex +build output/starter4-lunch[2].raw.png: pdf2png output/starter4-lunch[2].pdf + w = 750 + h = 1050 +build output/starter4-lunch[2].png: convert output/starter4-lunch[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-dinner[1].json: extract output/everything.json + filter = --arg asset 'starter4-dinner[1]' '.assets[$$asset].data' +build output/starter4-dinner[1].tex: template2tex output/starter4-dinner[1].json | templates/card.tex + template = templates/card.tex +build output/starter4-dinner[1].pdf: tex2pdf output/starter4-dinner[1].tex || output/starter4-dinner[1].pdf.dd + dyndep = output/starter4-dinner[1].pdf.dd +build output/starter4-dinner[1].pdf.dd: scantex output/starter4-dinner[1].tex +build output/starter4-dinner[1].raw.png: pdf2png output/starter4-dinner[1].pdf + w = 750 + h = 1050 +build output/starter4-dinner[1].png: convert output/starter4-dinner[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-dog_chow[1].json: extract output/everything.json + filter = --arg asset 'starter4-dog_chow[1]' '.assets[$$asset].data' +build output/starter4-dog_chow[1].tex: template2tex output/starter4-dog_chow[1].json | templates/card.tex + template = templates/card.tex +build output/starter4-dog_chow[1].pdf: tex2pdf output/starter4-dog_chow[1].tex || output/starter4-dog_chow[1].pdf.dd + dyndep = output/starter4-dog_chow[1].pdf.dd +build output/starter4-dog_chow[1].pdf.dd: scantex output/starter4-dog_chow[1].tex +build output/starter4-dog_chow[1].raw.png: pdf2png output/starter4-dog_chow[1].pdf + w = 750 + h = 1050 +build output/starter4-dog_chow[1].png: convert output/starter4-dog_chow[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-first_aid[2].json: extract output/everything.json + filter = --arg asset 'starter4-first_aid[2]' '.assets[$$asset].data' +build output/starter4-first_aid[2].tex: template2tex output/starter4-first_aid[2].json | templates/card.tex + template = templates/card.tex +build output/starter4-first_aid[2].pdf: tex2pdf output/starter4-first_aid[2].tex || output/starter4-first_aid[2].pdf.dd + dyndep = output/starter4-first_aid[2].pdf.dd +build output/starter4-first_aid[2].pdf.dd: scantex output/starter4-first_aid[2].tex +build output/starter4-first_aid[2].raw.png: pdf2png output/starter4-first_aid[2].pdf + w = 750 + h = 1050 +build output/starter4-first_aid[2].png: convert output/starter4-first_aid[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-good_dog[1].json: extract output/everything.json + filter = --arg asset 'starter4-good_dog[1]' '.assets[$$asset].data' +build output/starter4-good_dog[1].tex: template2tex output/starter4-good_dog[1].json | templates/card.tex + template = templates/card.tex +build output/starter4-good_dog[1].pdf: tex2pdf output/starter4-good_dog[1].tex || output/starter4-good_dog[1].pdf.dd + dyndep = output/starter4-good_dog[1].pdf.dd +build output/starter4-good_dog[1].pdf.dd: scantex output/starter4-good_dog[1].tex +build output/starter4-good_dog[1].raw.png: pdf2png output/starter4-good_dog[1].pdf + w = 750 + h = 1050 +build output/starter4-good_dog[1].png: convert output/starter4-good_dog[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-grandma_soup[1].json: extract output/everything.json + filter = --arg asset 'starter4-grandma_soup[1]' '.assets[$$asset].data' +build output/starter4-grandma_soup[1].tex: template2tex output/starter4-grandma_soup[1].json | templates/card.tex + template = templates/card.tex +build output/starter4-grandma_soup[1].pdf: tex2pdf output/starter4-grandma_soup[1].tex || output/starter4-grandma_soup[1].pdf.dd + dyndep = output/starter4-grandma_soup[1].pdf.dd +build output/starter4-grandma_soup[1].pdf.dd: scantex output/starter4-grandma_soup[1].tex +build output/starter4-grandma_soup[1].raw.png: pdf2png output/starter4-grandma_soup[1].pdf + w = 750 + h = 1050 +build output/starter4-grandma_soup[1].png: convert output/starter4-grandma_soup[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-husky[1].json: extract output/everything.json + filter = --arg asset 'starter4-husky[1]' '.assets[$$asset].data' +build output/starter4-husky[1].tex: template2tex output/starter4-husky[1].json | templates/card.tex + template = templates/card.tex +build output/starter4-husky[1].pdf: tex2pdf output/starter4-husky[1].tex || output/starter4-husky[1].pdf.dd + dyndep = output/starter4-husky[1].pdf.dd +build output/starter4-husky[1].pdf.dd: scantex output/starter4-husky[1].tex +build output/starter4-husky[1].raw.png: pdf2png output/starter4-husky[1].pdf + w = 750 + h = 1050 +build output/starter4-husky[1].png: convert output/starter4-husky[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-move[4].json: extract output/everything.json + filter = --arg asset 'starter4-move[4]' '.assets[$$asset].data' +build output/starter4-move[4].tex: template2tex output/starter4-move[4].json | templates/card.tex + template = templates/card.tex +build output/starter4-move[4].pdf: tex2pdf output/starter4-move[4].tex || output/starter4-move[4].pdf.dd + dyndep = output/starter4-move[4].pdf.dd +build output/starter4-move[4].pdf.dd: scantex output/starter4-move[4].tex +build output/starter4-move[4].raw.png: pdf2png output/starter4-move[4].pdf + w = 750 + h = 1050 +build output/starter4-move[4].png: convert output/starter4-move[4].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-mush[1].json: extract output/everything.json + filter = --arg asset 'starter4-mush[1]' '.assets[$$asset].data' +build output/starter4-mush[1].tex: template2tex output/starter4-mush[1].json | templates/card.tex + template = templates/card.tex +build output/starter4-mush[1].pdf: tex2pdf output/starter4-mush[1].tex || output/starter4-mush[1].pdf.dd + dyndep = output/starter4-mush[1].pdf.dd +build output/starter4-mush[1].pdf.dd: scantex output/starter4-mush[1].tex +build output/starter4-mush[1].raw.png: pdf2png output/starter4-mush[1].pdf + w = 750 + h = 1050 +build output/starter4-mush[1].png: convert output/starter4-mush[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-repair_sled[2].json: extract output/everything.json + filter = --arg asset 'starter4-repair_sled[2]' '.assets[$$asset].data' +build output/starter4-repair_sled[2].tex: template2tex output/starter4-repair_sled[2].json | templates/card.tex + template = templates/card.tex +build output/starter4-repair_sled[2].pdf: tex2pdf output/starter4-repair_sled[2].tex || output/starter4-repair_sled[2].pdf.dd + dyndep = output/starter4-repair_sled[2].pdf.dd +build output/starter4-repair_sled[2].pdf.dd: scantex output/starter4-repair_sled[2].tex +build output/starter4-repair_sled[2].raw.png: pdf2png output/starter4-repair_sled[2].pdf + w = 750 + h = 1050 +build output/starter4-repair_sled[2].png: convert output/starter4-repair_sled[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-upgrade_sled[2].json: extract output/everything.json + filter = --arg asset 'starter4-upgrade_sled[2]' '.assets[$$asset].data' +build output/starter4-upgrade_sled[2].tex: template2tex output/starter4-upgrade_sled[2].json | templates/card.tex + template = templates/card.tex +build output/starter4-upgrade_sled[2].pdf: tex2pdf output/starter4-upgrade_sled[2].tex || output/starter4-upgrade_sled[2].pdf.dd + dyndep = output/starter4-upgrade_sled[2].pdf.dd +build output/starter4-upgrade_sled[2].pdf.dd: scantex output/starter4-upgrade_sled[2].tex +build output/starter4-upgrade_sled[2].raw.png: pdf2png output/starter4-upgrade_sled[2].pdf + w = 750 + h = 1050 +build output/starter4-upgrade_sled[2].png: convert output/starter4-upgrade_sled[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/starter4-wheel_dog[1].json: extract output/everything.json + filter = --arg asset 'starter4-wheel_dog[1]' '.assets[$$asset].data' +build output/starter4-wheel_dog[1].tex: template2tex output/starter4-wheel_dog[1].json | templates/card.tex + template = templates/card.tex +build output/starter4-wheel_dog[1].pdf: tex2pdf output/starter4-wheel_dog[1].tex || output/starter4-wheel_dog[1].pdf.dd + dyndep = output/starter4-wheel_dog[1].pdf.dd +build output/starter4-wheel_dog[1].pdf.dd: scantex output/starter4-wheel_dog[1].tex +build output/starter4-wheel_dog[1].raw.png: pdf2png output/starter4-wheel_dog[1].pdf + w = 750 + h = 1050 +build output/starter4-wheel_dog[1].png: convert output/starter4-wheel_dog[1].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-bear[2].json: extract output/everything.json + filter = --arg asset 'race-bear[2]' '.assets[$$asset].data' +build output/race-bear[2].tex: template2tex output/race-bear[2].json | templates/card.tex + template = templates/card.tex +build output/race-bear[2].pdf: tex2pdf output/race-bear[2].tex || output/race-bear[2].pdf.dd + dyndep = output/race-bear[2].pdf.dd +build output/race-bear[2].pdf.dd: scantex output/race-bear[2].tex +build output/race-bear[2].raw.png: pdf2png output/race-bear[2].pdf + w = 750 + h = 1050 +build output/race-bear[2].png: convert output/race-bear[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-big_dog[2].json: extract output/everything.json + filter = --arg asset 'race-big_dog[2]' '.assets[$$asset].data' +build output/race-big_dog[2].tex: template2tex output/race-big_dog[2].json | templates/card.tex + template = templates/card.tex +build output/race-big_dog[2].pdf: tex2pdf output/race-big_dog[2].tex || output/race-big_dog[2].pdf.dd + dyndep = output/race-big_dog[2].pdf.dd +build output/race-big_dog[2].pdf.dd: scantex output/race-big_dog[2].tex +build output/race-big_dog[2].raw.png: pdf2png output/race-big_dog[2].pdf + w = 750 + h = 1050 +build output/race-big_dog[2].png: convert output/race-big_dog[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-dog_shoes[2].json: extract output/everything.json + filter = --arg asset 'race-dog_shoes[2]' '.assets[$$asset].data' +build output/race-dog_shoes[2].tex: template2tex output/race-dog_shoes[2].json | templates/card.tex + template = templates/card.tex +build output/race-dog_shoes[2].pdf: tex2pdf output/race-dog_shoes[2].tex || output/race-dog_shoes[2].pdf.dd + dyndep = output/race-dog_shoes[2].pdf.dd +build output/race-dog_shoes[2].pdf.dd: scantex output/race-dog_shoes[2].tex +build output/race-dog_shoes[2].raw.png: pdf2png output/race-dog_shoes[2].pdf + w = 750 + h = 1050 +build output/race-dog_shoes[2].png: convert output/race-dog_shoes[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-greyhound[2].json: extract output/everything.json + filter = --arg asset 'race-greyhound[2]' '.assets[$$asset].data' +build output/race-greyhound[2].tex: template2tex output/race-greyhound[2].json | templates/card.tex + template = templates/card.tex +build output/race-greyhound[2].pdf: tex2pdf output/race-greyhound[2].tex || output/race-greyhound[2].pdf.dd + dyndep = output/race-greyhound[2].pdf.dd +build output/race-greyhound[2].pdf.dd: scantex output/race-greyhound[2].tex +build output/race-greyhound[2].raw.png: pdf2png output/race-greyhound[2].pdf + w = 750 + h = 1050 +build output/race-greyhound[2].png: convert output/race-greyhound[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-improvise[2].json: extract output/everything.json + filter = --arg asset 'race-improvise[2]' '.assets[$$asset].data' +build output/race-improvise[2].tex: template2tex output/race-improvise[2].json | templates/card.tex + template = templates/card.tex +build output/race-improvise[2].pdf: tex2pdf output/race-improvise[2].tex || output/race-improvise[2].pdf.dd + dyndep = output/race-improvise[2].pdf.dd +build output/race-improvise[2].pdf.dd: scantex output/race-improvise[2].tex +build output/race-improvise[2].raw.png: pdf2png output/race-improvise[2].pdf + w = 750 + h = 1050 +build output/race-improvise[2].png: convert output/race-improvise[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-midnight_sun[2].json: extract output/everything.json + filter = --arg asset 'race-midnight_sun[2]' '.assets[$$asset].data' +build output/race-midnight_sun[2].tex: template2tex output/race-midnight_sun[2].json | templates/card.tex + template = templates/card.tex +build output/race-midnight_sun[2].pdf: tex2pdf output/race-midnight_sun[2].tex || output/race-midnight_sun[2].pdf.dd + dyndep = output/race-midnight_sun[2].pdf.dd +build output/race-midnight_sun[2].pdf.dd: scantex output/race-midnight_sun[2].tex +build output/race-midnight_sun[2].raw.png: pdf2png output/race-midnight_sun[2].pdf + w = 750 + h = 1050 +build output/race-midnight_sun[2].png: convert output/race-midnight_sun[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-problem_dog[2].json: extract output/everything.json + filter = --arg asset 'race-problem_dog[2]' '.assets[$$asset].data' +build output/race-problem_dog[2].tex: template2tex output/race-problem_dog[2].json | templates/card.tex + template = templates/card.tex +build output/race-problem_dog[2].pdf: tex2pdf output/race-problem_dog[2].tex || output/race-problem_dog[2].pdf.dd + dyndep = output/race-problem_dog[2].pdf.dd +build output/race-problem_dog[2].pdf.dd: scantex output/race-problem_dog[2].tex +build output/race-problem_dog[2].raw.png: pdf2png output/race-problem_dog[2].pdf + w = 750 + h = 1050 +build output/race-problem_dog[2].png: convert output/race-problem_dog[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-push[2].json: extract output/everything.json + filter = --arg asset 'race-push[2]' '.assets[$$asset].data' +build output/race-push[2].tex: template2tex output/race-push[2].json | templates/card.tex + template = templates/card.tex +build output/race-push[2].pdf: tex2pdf output/race-push[2].tex || output/race-push[2].pdf.dd + dyndep = output/race-push[2].pdf.dd +build output/race-push[2].pdf.dd: scantex output/race-push[2].tex +build output/race-push[2].raw.png: pdf2png output/race-push[2].pdf + w = 750 + h = 1050 +build output/race-push[2].png: convert output/race-push[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-rush[2].json: extract output/everything.json + filter = --arg asset 'race-rush[2]' '.assets[$$asset].data' +build output/race-rush[2].tex: template2tex output/race-rush[2].json | templates/card.tex + template = templates/card.tex +build output/race-rush[2].pdf: tex2pdf output/race-rush[2].tex || output/race-rush[2].pdf.dd + dyndep = output/race-rush[2].pdf.dd +build output/race-rush[2].pdf.dd: scantex output/race-rush[2].tex +build output/race-rush[2].raw.png: pdf2png output/race-rush[2].pdf + w = 750 + h = 1050 +build output/race-rush[2].png: convert output/race-rush[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-slow_and_steady[2].json: extract output/everything.json + filter = --arg asset 'race-slow_and_steady[2]' '.assets[$$asset].data' +build output/race-slow_and_steady[2].tex: template2tex output/race-slow_and_steady[2].json | templates/card.tex + template = templates/card.tex +build output/race-slow_and_steady[2].pdf: tex2pdf output/race-slow_and_steady[2].tex || output/race-slow_and_steady[2].pdf.dd + dyndep = output/race-slow_and_steady[2].pdf.dd +build output/race-slow_and_steady[2].pdf.dd: scantex output/race-slow_and_steady[2].tex +build output/race-slow_and_steady[2].raw.png: pdf2png output/race-slow_and_steady[2].pdf + w = 750 + h = 1050 +build output/race-slow_and_steady[2].png: convert output/race-slow_and_steady[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-squirrel[2].json: extract output/everything.json + filter = --arg asset 'race-squirrel[2]' '.assets[$$asset].data' +build output/race-squirrel[2].tex: template2tex output/race-squirrel[2].json | templates/card.tex + template = templates/card.tex +build output/race-squirrel[2].pdf: tex2pdf output/race-squirrel[2].tex || output/race-squirrel[2].pdf.dd + dyndep = output/race-squirrel[2].pdf.dd +build output/race-squirrel[2].pdf.dd: scantex output/race-squirrel[2].tex +build output/race-squirrel[2].raw.png: pdf2png output/race-squirrel[2].pdf + w = 750 + h = 1050 +build output/race-squirrel[2].png: convert output/race-squirrel[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-supply_run[2].json: extract output/everything.json + filter = --arg asset 'race-supply_run[2]' '.assets[$$asset].data' +build output/race-supply_run[2].tex: template2tex output/race-supply_run[2].json | templates/card.tex + template = templates/card.tex +build output/race-supply_run[2].pdf: tex2pdf output/race-supply_run[2].tex || output/race-supply_run[2].pdf.dd + dyndep = output/race-supply_run[2].pdf.dd +build output/race-supply_run[2].pdf.dd: scantex output/race-supply_run[2].tex +build output/race-supply_run[2].raw.png: pdf2png output/race-supply_run[2].pdf + w = 750 + h = 1050 +build output/race-supply_run[2].png: convert output/race-supply_run[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/race-tiara[2].json: extract output/everything.json + filter = --arg asset 'race-tiara[2]' '.assets[$$asset].data' +build output/race-tiara[2].tex: template2tex output/race-tiara[2].json | templates/card.tex + template = templates/card.tex +build output/race-tiara[2].pdf: tex2pdf output/race-tiara[2].tex || output/race-tiara[2].pdf.dd + dyndep = output/race-tiara[2].pdf.dd +build output/race-tiara[2].pdf.dd: scantex output/race-tiara[2].tex +build output/race-tiara[2].raw.png: pdf2png output/race-tiara[2].pdf + w = 750 + h = 1050 +build output/race-tiara[2].png: convert output/race-tiara[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-antique_sled[2].json: extract output/everything.json + filter = --arg asset 'survival-antique_sled[2]' '.assets[$$asset].data' +build output/survival-antique_sled[2].tex: template2tex output/survival-antique_sled[2].json | templates/card.tex + template = templates/card.tex +build output/survival-antique_sled[2].pdf: tex2pdf output/survival-antique_sled[2].tex || output/survival-antique_sled[2].pdf.dd + dyndep = output/survival-antique_sled[2].pdf.dd +build output/survival-antique_sled[2].pdf.dd: scantex output/survival-antique_sled[2].tex +build output/survival-antique_sled[2].raw.png: pdf2png output/survival-antique_sled[2].pdf + w = 750 + h = 1050 +build output/survival-antique_sled[2].png: convert output/survival-antique_sled[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-band_aid[2].json: extract output/everything.json + filter = --arg asset 'survival-band_aid[2]' '.assets[$$asset].data' +build output/survival-band_aid[2].tex: template2tex output/survival-band_aid[2].json | templates/card.tex + template = templates/card.tex +build output/survival-band_aid[2].pdf: tex2pdf output/survival-band_aid[2].tex || output/survival-band_aid[2].pdf.dd + dyndep = output/survival-band_aid[2].pdf.dd +build output/survival-band_aid[2].pdf.dd: scantex output/survival-band_aid[2].tex +build output/survival-band_aid[2].raw.png: pdf2png output/survival-band_aid[2].pdf + w = 750 + h = 1050 +build output/survival-band_aid[2].png: convert output/survival-band_aid[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-bandage[2].json: extract output/everything.json + filter = --arg asset 'survival-bandage[2]' '.assets[$$asset].data' +build output/survival-bandage[2].tex: template2tex output/survival-bandage[2].json | templates/card.tex + template = templates/card.tex +build output/survival-bandage[2].pdf: tex2pdf output/survival-bandage[2].tex || output/survival-bandage[2].pdf.dd + dyndep = output/survival-bandage[2].pdf.dd +build output/survival-bandage[2].pdf.dd: scantex output/survival-bandage[2].tex +build output/survival-bandage[2].raw.png: pdf2png output/survival-bandage[2].pdf + w = 750 + h = 1050 +build output/survival-bandage[2].png: convert output/survival-bandage[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-bison[2].json: extract output/everything.json + filter = --arg asset 'survival-bison[2]' '.assets[$$asset].data' +build output/survival-bison[2].tex: template2tex output/survival-bison[2].json | templates/card.tex + template = templates/card.tex +build output/survival-bison[2].pdf: tex2pdf output/survival-bison[2].tex || output/survival-bison[2].pdf.dd + dyndep = output/survival-bison[2].pdf.dd +build output/survival-bison[2].pdf.dd: scantex output/survival-bison[2].tex +build output/survival-bison[2].raw.png: pdf2png output/survival-bison[2].pdf + w = 750 + h = 1050 +build output/survival-bison[2].png: convert output/survival-bison[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-brandy[2].json: extract output/everything.json + filter = --arg asset 'survival-brandy[2]' '.assets[$$asset].data' +build output/survival-brandy[2].tex: template2tex output/survival-brandy[2].json | templates/card.tex + template = templates/card.tex +build output/survival-brandy[2].pdf: tex2pdf output/survival-brandy[2].tex || output/survival-brandy[2].pdf.dd + dyndep = output/survival-brandy[2].pdf.dd +build output/survival-brandy[2].pdf.dd: scantex output/survival-brandy[2].tex +build output/survival-brandy[2].raw.png: pdf2png output/survival-brandy[2].pdf + w = 750 + h = 1050 +build output/survival-brandy[2].png: convert output/survival-brandy[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-caffeine[2].json: extract output/everything.json + filter = --arg asset 'survival-caffeine[2]' '.assets[$$asset].data' +build output/survival-caffeine[2].tex: template2tex output/survival-caffeine[2].json | templates/card.tex + template = templates/card.tex +build output/survival-caffeine[2].pdf: tex2pdf output/survival-caffeine[2].tex || output/survival-caffeine[2].pdf.dd + dyndep = output/survival-caffeine[2].pdf.dd +build output/survival-caffeine[2].pdf.dd: scantex output/survival-caffeine[2].tex +build output/survival-caffeine[2].raw.png: pdf2png output/survival-caffeine[2].pdf + w = 750 + h = 1050 +build output/survival-caffeine[2].png: convert output/survival-caffeine[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-jerky[2].json: extract output/everything.json + filter = --arg asset 'survival-jerky[2]' '.assets[$$asset].data' +build output/survival-jerky[2].tex: template2tex output/survival-jerky[2].json | templates/card.tex + template = templates/card.tex +build output/survival-jerky[2].pdf: tex2pdf output/survival-jerky[2].tex || output/survival-jerky[2].pdf.dd + dyndep = output/survival-jerky[2].pdf.dd +build output/survival-jerky[2].pdf.dd: scantex output/survival-jerky[2].tex +build output/survival-jerky[2].raw.png: pdf2png output/survival-jerky[2].pdf + w = 750 + h = 1050 +build output/survival-jerky[2].png: convert output/survival-jerky[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-makeshift_sled[2].json: extract output/everything.json + filter = --arg asset 'survival-makeshift_sled[2]' '.assets[$$asset].data' +build output/survival-makeshift_sled[2].tex: template2tex output/survival-makeshift_sled[2].json | templates/card.tex + template = templates/card.tex +build output/survival-makeshift_sled[2].pdf: tex2pdf output/survival-makeshift_sled[2].tex || output/survival-makeshift_sled[2].pdf.dd + dyndep = output/survival-makeshift_sled[2].pdf.dd +build output/survival-makeshift_sled[2].pdf.dd: scantex output/survival-makeshift_sled[2].tex +build output/survival-makeshift_sled[2].raw.png: pdf2png output/survival-makeshift_sled[2].pdf + w = 750 + h = 1050 +build output/survival-makeshift_sled[2].png: convert output/survival-makeshift_sled[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-malamute[2].json: extract output/everything.json + filter = --arg asset 'survival-malamute[2]' '.assets[$$asset].data' +build output/survival-malamute[2].tex: template2tex output/survival-malamute[2].json | templates/card.tex + template = templates/card.tex +build output/survival-malamute[2].pdf: tex2pdf output/survival-malamute[2].tex || output/survival-malamute[2].pdf.dd + dyndep = output/survival-malamute[2].pdf.dd +build output/survival-malamute[2].pdf.dd: scantex output/survival-malamute[2].tex +build output/survival-malamute[2].raw.png: pdf2png output/survival-malamute[2].pdf + w = 750 + h = 1050 +build output/survival-malamute[2].png: convert output/survival-malamute[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-poutine[2].json: extract output/everything.json + filter = --arg asset 'survival-poutine[2]' '.assets[$$asset].data' +build output/survival-poutine[2].tex: template2tex output/survival-poutine[2].json | templates/card.tex + template = templates/card.tex +build output/survival-poutine[2].pdf: tex2pdf output/survival-poutine[2].tex || output/survival-poutine[2].pdf.dd + dyndep = output/survival-poutine[2].pdf.dd +build output/survival-poutine[2].pdf.dd: scantex output/survival-poutine[2].tex +build output/survival-poutine[2].raw.png: pdf2png output/survival-poutine[2].pdf + w = 750 + h = 1050 +build output/survival-poutine[2].png: convert output/survival-poutine[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-salvage[2].json: extract output/everything.json + filter = --arg asset 'survival-salvage[2]' '.assets[$$asset].data' +build output/survival-salvage[2].tex: template2tex output/survival-salvage[2].json | templates/card.tex + template = templates/card.tex +build output/survival-salvage[2].pdf: tex2pdf output/survival-salvage[2].tex || output/survival-salvage[2].pdf.dd + dyndep = output/survival-salvage[2].pdf.dd +build output/survival-salvage[2].pdf.dd: scantex output/survival-salvage[2].tex +build output/survival-salvage[2].raw.png: pdf2png output/survival-salvage[2].pdf + w = 750 + h = 1050 +build output/survival-salvage[2].png: convert output/survival-salvage[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-steak[2].json: extract output/everything.json + filter = --arg asset 'survival-steak[2]' '.assets[$$asset].data' +build output/survival-steak[2].tex: template2tex output/survival-steak[2].json | templates/card.tex + template = templates/card.tex +build output/survival-steak[2].pdf: tex2pdf output/survival-steak[2].tex || output/survival-steak[2].pdf.dd + dyndep = output/survival-steak[2].pdf.dd +build output/survival-steak[2].pdf.dd: scantex output/survival-steak[2].tex +build output/survival-steak[2].raw.png: pdf2png output/survival-steak[2].pdf + w = 750 + h = 1050 +build output/survival-steak[2].png: convert output/survival-steak[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage +build output/survival-venison[2].json: extract output/everything.json + filter = --arg asset 'survival-venison[2]' '.assets[$$asset].data' +build output/survival-venison[2].tex: template2tex output/survival-venison[2].json | templates/card.tex + template = templates/card.tex +build output/survival-venison[2].pdf: tex2pdf output/survival-venison[2].tex || output/survival-venison[2].pdf.dd + dyndep = output/survival-venison[2].pdf.dd +build output/survival-venison[2].pdf.dd: scantex output/survival-venison[2].tex +build output/survival-venison[2].raw.png: pdf2png output/survival-venison[2].pdf + w = 750 + h = 1050 +build output/survival-venison[2].png: convert output/survival-venison[2].raw.png + args = -set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..e565208 --- /dev/null +++ b/build.sh @@ -0,0 +1,42 @@ +#!/bin/bash + + +# Incremental build script. +# Main inputs are from the *.cue and *.yaml files in the top-level directory +# Assets are taken from raw/ tex/ mako/ etc and put into the output/ directory +# The output/ directory is populated with a ninja build script to do the +# actual build, along with source files that are updated for a build. +# Thus to build a full output in dir you would run: build.sh dir/ && cd dir/ && ninja build +# Once built once, a simple `ninja` in the output directory should suffice + +# echo "new" | update file +# updates file with new content only if the content differs +update() { + fname="$1" + data="$(cat)" + new="$(echo "$data" | sha256sum | cut -d " " -f 1)" + old="$(sha256sum "$fname" | cut -d " " -f 1)" + if [ "$new" != "$old" ]; then + echo "Updating $fname" + echo "$data" > "$fname" + fi +} + +outdir="${1:-output}/" + +mkdir -p "$outdir" + +json="$(cue export *.cue *.yaml)" + +{ + echo "# Generated by build.sh on $(date)" + + echo "include ../rules.ninja" + +EOF +} | update "$outdir/build.ninja" + +# TODO: get json via `cue export *.cue *.yaml` + + + diff --git a/cards.cue b/cards.cue new file mode 100644 index 0000000..84e50ff --- /dev/null +++ b/cards.cue @@ -0,0 +1,99 @@ +// Iditacards card and deck asset specification + +package iditacards + +import "list" + +#CardType: "attachment" | "dog" | "food" | "movement" | "personal" | "sled" | "damage" +#UnaryEffect: "see" | "destroy" | "supply" | "take" | "speed" | "draw" | + "daydraw" | "move" | "damage" +#NilaryEffect: "immortal" | "safepass" | "inplayatstart" | "discardonkill" | + "nohypothermia" | "doubledistance" | "passdie" | "nohold" | "damagetext" + +// the template for a card gets this +#Card: { + name: string + type: #CardType + costs: { + energy: uint | *0 | "ALL" + health: uint | *0 | "ALL" + risk: uint | *0 | "ALL" + } + // effects: [#NAryEffect]: {} | null | int | "ALL" | =~"x[0-9]+" + effects: [#UnaryEffect]: int | "ALL" | =~"x[0-9]+" + effects: [#NilaryEffect]: {} | null + flavour: string + image: string + rarity?: #Rarity + deck?: string +} +cards: [string]: #Card + +#Rarity: "info" | "starting" | "common" | "rare" | "epic" | "legendary" + +decks: [string]: [Name=_]: { + rarity: #Rarity + count: int +} + +assets: { + for deckname, deck in decks + for cardname, freq in deck + let card = cards[cardname] { + "\(deckname)-\(cardname)[\(freq.count)]": { + size: "750x1050" + print: "-set option:distort:viewport 825x1125-37-37 -virtual-pixel Edge -distort SRT 0 +repage" + depends: { + assets: [ + "deck/\(deckname)", + "card/\(card.image)", + ] + files: [ + "iditacard.cls", + ] + } + + kind: "template" + template: "card.tex" + data: cards[cardname] & { + rarity: freq.rarity + deck: deckname + } + } + } + + for deckname, deck in decks + for cardname, freq in deck + let card = cards[cardname] { + "card/\(cardname)": { + kind: "image" + source: "images/card/\(cardname).png" + } + } +} + +pseudoassets: { + for deckname, deck in decks { + "\(deckname)-deck": { + kind: "cat" + contents: [ + for cardname, freq in deck + for idx in list.Range(0, freq.count, 1) { + "\(deckname)-\(cardname)[\(freq.count)]" + }, + ] + } + } + + cardrun: { + kind: "cat" + contents: [ + for deckname, deck in decks + for cardname, card in deck { + for idx in list.Range(0, card.count, 1) { + "\(deckname)-\(cardname)[\(card.count)]" + } + }, + ] + } +} diff --git a/cards.yaml b/cards.yaml index 8561a10..94daae2 100644 --- a/cards.yaml +++ b/cards.yaml @@ -1,833 +1,727 @@ # The cards cards: - - &a_hat + a_hat: name: 'A Hat' costs: energy: 2 health: 2 effects: - - '\daydraw{+1}' + daydraw: 1 image: hat type: attachment flavour: 'I bet its a valve hat.' - - &dog_chow + dog_chow: name: 'Dog Chow' costs: energy: 3 health: 3 effects: - - '\speed{+1}' + speed: 1 image: dog_chow type: attachment flavour: 'A hungry dog is a slow dog.' - - &good_dog + good_dog: name: 'Good Dog' costs: energy: 3 health: 3 effects: - - '\daydraw{+1}' + daydraw: 1 image: good_dog type: dog flavour: 'Good boy.' - - &husky + husky: name: 'Husky' costs: energy: 2 health: 2 risk: 2 effects: - - '\daydraw{+1}' - - '\speed{+1}' + daydraw: 1 + speed: 1 image: husky type: dog flavour: 'Standard mushing fare.' - - &wheel_dog + wheel_dog: name: 'Wheel Dog' costs: energy: 3 health: 3 effects: - - '\speed{+1}' - - '\discardonkill' - - '\inplayatstart' + speed: 1 + discardonkill: + inplayatstart: image: wheel_dog type: dog flavour: 'The dog right in front of the sled. Strong and steady.' - - &breakfast + breakfast: name: 'Breakfast' costs: health: 3 effects: - - '\draw{3}' + draw: 3 image: breakfast type: food flavour: 'The most important meal of the day.' - - &lunch + lunch: name: 'Lunch' costs: energy: 3 effects: - - '\draw{3}' + draw: 3 image: lunch type: food flavour: 'What about second breakfast?' - - &dinner + dinner: name: 'Dinner' costs: energy: 2 health: 2 effects: - - '\draw{7}' + draw: 7 image: dinner type: food flavour: 'I hope you like salted fish.' - - &move + move: name: 'Move' effects: - - '\move{1}' + move: 1 image: move type: movement flavour: 'Just another day.' - - &mush + mush: name: 'Mush' costs: energy: 2 health: 2 risk: 1 effects: - - '\move{10}' + move: 10 image: mush type: movement flavour: "Comes from the french word ``Marche''." - - &first_aid + first_aid: name: First Aid costs: energy: 2 health: 2 effects: - - '\see{3}' - - '\destroy{1}' + see: 3 + destroy: 1 image: first_aid type: personal flavour: 'Reduces swelling.' - - &grandma_soup + grandma_soup: name: Grandma Soup costs: energy: 1 health: 2 risk: 1 effects: - - '\see{10}' - - '\destroy{2}' + see: 10 + destroy: 2 image: grandma_soup type: personal flavour: 'Cures what ails you.' - - &repair_sled + repair_sled: name: Repair Sled costs: energy: 1 health: 3 effects: - - '\supply{1}' - - '\take{2}' + supply: 1 + take: 2 image: repair_sled type: sled flavour: "It doesn't need to be pretty. It just has to work." - - &upgrade_sled + upgrade_sled: name: Upgrade Sled costs: energy: 2 health: 2 effects: - - '\supply{3}' - - '\take{1}' + supply: 3 + take: 1 image: upgrade_sled type: sled flavour: 'You have to keep your ride in top shape.' - - &buffer_panel + buffer_panel: name: Buffer Panel costs: energy: 2 health: 2 effects: - - '\immortal' - - '\safepass' + immortal: + safepass: image: buffer_panel type: attachment flavour: 'Did the primary buffer panel just fall of my gorram ship for no apparent reason?' - - &nuclear_reactor + nuclear_reactor: name: Nuclear Reactor costs: energy: 2 health: 2 effects: - - '\speed{+5}' - - '\passdie' + speed: 5 + passdie: image: nuclear_reactor type: attachment flavour: 'What could go wrong?' - - &engineer_dog + engineer_dog: name: Engineer Dog costs: energy: 3 health: 5 risk: 1 effects: - - '\speed{$\times 2$}' - - '\nohold' + speed: x2 # - '\speed{$\times 2$}' + nohold: image: engineer_dog type: dog flavour: 'Nails and Gears.' - - &moose + moose: name: Moose costs: energy: 5 risk: 3 effects: - - '\speed{+5}' - - '\immortal' + speed: 5 + immortal: image: moose type: dog flavour: 'Majestic creatures. Hard to tame.' - - &waffle + waffle: name: Waffle effects: - - '\draw{2}' + draw: 2 image: waffles type: food flavour: 'Waffles are \textbf{delicious}.' - - &whale_meat + whale_meat: name: Whale Meat costs: energy: 1 health: 1 effects: - - '\draw{5}' - - '\nohypothermia' + draw: 5 + nohypothermia: image: whale_meat type: food flavour: "It's like rubber." - - &hitch_a_ride + hitch_a_ride: name: Hitch a Ride costs: energy: 1 effects: - - '\move{6}' - - '\damage{1}' + move: 6 + damage: 1 image: hitch_a_ride type: movement flavour: 'Probably not in the spirit of the race.' - - &tactical_play + tactical_play: name: Tactical Play costs: energy: 1 risk: 1 effects: - - '\move{0}' - - '\doubledistance' + move: 0 + doubledistance: image: tactical_play type: movement flavour: 'Make the most of it.' - - &meditate + meditate: name: Meditate costs: energy: 1 health: 1 effects: - - '\see{all}' - - '\destroy{0}' + see: ALL + destroy: 0 image: meditate type: personal flavour: 'It \textit{is} just sitting.' - - &diamorphine + diamorphine: name: Diamorphine costs: energy: 1 health: 1 risk: 1 effects: - - '\see{all}' - - '\destroy{all}' + see: ALL + destroy: ALL image: diamorphine type: personal flavour: 'Highly addicting.' - - &desperate_times + desperate_times: name: Desperate Times costs: - energy: all + energy: ALL effects: - - '\supply{10}' - - '\take{5}' + supply: 10 + take: 5 image: desparate_times type: sled flavour: 'Desperate measures hotline, how may I help you?' - - &lead_sled + lead_sled: name: Lead Sled costs: energy: 1 health: 1 risk: 1 effects: - - '\supply{10}' - - '\take{10}' + supply: 10 + take: 10 image: lead_sled type: sled flavour: "At least it's not a zeppelin." - - &damaged + damaged: name: Damaged costs: energy: 1 health: 1 effects: - - '\damagetext' + damagetext: image: damaged type: damage flavour: 'You have been hurt.' - - &dog_shoes + dog_shoes: name: Dog Shoes costs: energy: 2 health: 3 effects: - - '\speed{+2}' + speed: 2 image: dog_shoes type: attachment flavour: 'Dogs look cute in shoes.' - - &squirrel + squirrel: name: Squirrel costs: energy: 2 health: 2 risk: 1 effects: - - '\speed{+3}' + speed: 3 image: squirrel type: attachment flavour: 'Dogs \emph{hate} squirrels.' - - &tiara + tiara: name: Tiara costs: energy: 2 health: 2 risk: 1 effects: - - '\daydraw{+1}' - - '\speed{+1}' + daydraw: 1 + speed: 1 image: tiara type: attachment flavour: 'Makes the dog feel special.' - - &bear + bear: name: Bear costs: energy: 2 health: 2 risk: 2 effects: - - '\speed{+5}' + speed: 5 image: bear type: dog flavour: 'In hindsight, not the best idea.' - - &big_dog + big_dog: name: Big Dog costs: energy: 2 health: 2 effects: - - '\speed{+3}' + speed: 3 image: big_dog type: dog flavour: "He's not red though." - - &greyhound + greyhound: name: Greyhound costs: risk: 2 effects: - - '\speed{+3}' - - '\nohold' + speed: 3 + nohold: image: greyhound type: dog flavour: 'What happens when you mix the colours on a husky? You get a grey hound.' - - &malamute + malamute: name: Malamute costs: energy: 2 health: 2 risk: 1 effects: - - '\daydraw{+2}' + daydraw: 2 image: malamute type: dog flavour: 'A common sled hauling breed.' - - &problem_dog + problem_dog: name: Problem Dog costs: energy: 1 health: 1 risk: 1 effects: - - '\daydraw{-1}' - - '\speed{+3}' + daydraw: -1 + speed: 3 image: problem_dog type: dog flavour: "I swear, if you weren't so fast." - - &bison + bison: name: Bison costs: energy: 2 risk: 1 effects: - - '\draw{5}' + draw: 5 image: bison type: food flavour: "It's very lean." - - &poutine + poutine: name: Poutine costs: health: 2 effects: - - '\draw{1}' - - '\nohypothermia' + draw: 1 + nohypothermia: image: poutine type: food flavour: 'The great Canadian carb!' - - &venison + venison: name: Venison costs: health: 2 effects: - - '\draw{3}' + draw: 3 image: venison type: food flavour: 'Better than breakfast.' - - &steak + steak: name: Steak effects: - - '\draw{1}' + draw: 1 image: steak type: food flavour: "Well aren't you fancy." - - &jerky + jerky: name: Jerky costs: energy: 1 health: 1 effects: - - '\draw{3}' + draw: 3 image: jerky type: food flavour: 'Watch your sodium!' - - &midnight_sun + midnight_sun: name: Midnight Sun costs: energy: 1 health: 1 risk: 1 effects: - - '\move{10}' + move: 10 image: midnight_sun type: movement flavour: 'Strange things are done in the midnight sun.' - - &push + push: name: Push costs: energy: 1 effects: - - '\move{5}' + move: 5 image: push type: movement flavour: 'Not a full mush, but still putting in some effort.' - - &slow_and_steady + slow_and_steady: name: Slow and Steady effects: - - '\draw{1}' - - '\move{0}' + draw: 1 + move: 0 image: slow_and_steady type: movement flavour: 'Maybe a bit too slow.' - - &band_aid + band_aid: name: Band Aid effects: - - '\see{1}' - - '\destroy{1}' + see: 1 + destroy: 1 image: band_aid type: personal flavour: 'Not much.' - - &bandage + bandage: name: Bandage costs: energy: 1 effects: - - '\see{5}' - - '\destroy{1}' + see: 5 + destroy: 1 image: bandage type: personal flavour: 'Make sure you wrap it tight.' - - &brandy + brandy: name: Brandy costs: risk: 1 effects: - - '\see{5}' - - '\destroy{1}' + see: 5 + destroy: 1 image: brandy type: personal flavour: 'Brought by a St.\ Bernard' - - &caffeine + caffeine: name: Caffeine costs: health: 2 effects: - - '\draw{1}' - - '\see{2}' - - '\destroy{1}' + draw: 1 + see: 2 + destroy: 1 image: caffeine type: personal flavour: 'The greatest addiction ever.' - - &improvise + improvise: name: Improvise effects: - - '\take{1}' + take: 1 image: improvise type: sled flavour: 'MacGyver of the north.' - - &makeshift_sled + makeshift_sled: name: Makeshift Sled costs: energy: 1 health: 1 effects: - - '\supply{2}' - - '\take{6}' + supply: 2 + take: 6 image: makeshift_sled type: sled flavour: "Rickety, but it'll hold." - - &salvage + salvage: name: Salvage costs: energy: 1 health: 1 effects: - - '\supply{3}' - - '\take{2}' + supply: 3 + take: 2 image: salvage type: sled flavour: 'Take the good with the bad.' - - &antique_sled + antique_sled: name: Antique Sled costs: health: 5 effects: - - '\supply{2}' - - '\take{8}' + supply: 2 + take: 8 image: antique_sled type: sled flavour: 'Withstood the test of the time.' - - &rush + rush: name: Rush costs: health: 3 risk: 1 effects: - - '\move{8}' + move: 8 image: rush type: movement flavour: 'Hurry up!' - - &supply_run + supply_run: name: Supply Run effects: - - '\move{3}' + move: 3 image: supply_run type: movement flavour: 'Not as easy as dropping by the grocery store.' -# The decks that the cards are in -# TODO: Add rarity? + decks: - - name: Starter1 - cards: - - *a_hat - - *breakfast - - *breakfast - - *dinner - - *dog_chow - - *first_aid - - *first_aid - - *good_dog - - *grandma_soup - - *husky - - *lunch - - *lunch - - *move - - *move - - *move - - *move - - *mush - - *repair_sled - - *repair_sled - - *upgrade_sled - - *upgrade_sled - - *wheel_dog + starter1: &starter + a_hat: + rarity: starting + count: 1 + breakfast: + rarity: starting + count: 2 + lunch: + rarity: starting + count: 2 + dinner: + rarity: starting + count: 1 + dog_chow: + rarity: starting + count: 1 + first_aid: + rarity: starting + count: 2 + good_dog: + rarity: starting + count: 1 + grandma_soup: + rarity: starting + count: 1 + husky: + rarity: starting + count: 1 + move: + rarity: starting + count: 4 + mush: + rarity: starting + count: 1 + repair_sled: + rarity: starting + count: 2 + upgrade_sled: + rarity: starting + count: 2 + wheel_dog: + rarity: starting + count: 1 + starter2: *starter + starter3: *starter + starter4: *starter + # starter5: *starter + # starter6: *starter - - name: Starter2 - cards: - - *a_hat - - *breakfast - - *breakfast - - *dinner - - *dog_chow - - *first_aid - - *first_aid - - *good_dog - - *grandma_soup - - *husky - - *lunch - - *lunch - - *move - - *move - - *move - - *move - - *mush - - *repair_sled - - *repair_sled - - *upgrade_sled - - *upgrade_sled - - *wheel_dog + race: + bear: + rarity: rare + count: 2 + big_dog: + rarity: rare + count: 2 + dog_shoes: + rarity: rare + count: 2 + greyhound: + rarity: rare + count: 2 + improvise: + rarity: common + count: 2 + midnight_sun: + rarity: rare + count: 2 + problem_dog: + rarity: rare + count: 2 + push: + rarity: rare + count: 2 + rush: + rarity: rare + count: 2 + slow_and_steady: + rarity: rare + count: 2 + squirrel: + rarity: rare + count: 2 + supply_run: + rarity: rare + count: 2 + tiara: + rarity: rare + count: 2 - - name: Starter3 - cards: - - *a_hat - - *breakfast - - *breakfast - - *dinner - - *dog_chow - - *first_aid - - *first_aid - - *good_dog - - *grandma_soup - - *husky - - *lunch - - *lunch - - *move - - *move - - *move - - *move - - *mush - - *repair_sled - - *repair_sled - - *upgrade_sled - - *upgrade_sled - - *wheel_dog - - - name: Starter4 - cards: - - *a_hat - - *breakfast - - *breakfast - - *dinner - - *dog_chow - - *first_aid - - *first_aid - - *good_dog - - *grandma_soup - - *husky - - *lunch - - *lunch - - *move - - *move - - *move - - *move - - *mush - - *repair_sled - - *repair_sled - - *upgrade_sled - - *upgrade_sled - - *wheel_dog - - - name: Damage - cards: - - *damaged - - *damaged - - *damaged - - *damaged - - *damaged - - *damaged - - *damaged - - *damaged - - *damaged - - *damaged - - - name: Legendary - cards: - - *buffer_panel - - *desperate_times - - *diamorphine - - *engineer_dog - - *hitch_a_ride - - *lead_sled - - *meditate - - *moose - - *nuclear_reactor - - *tactical_play - - *waffle - - *whale_meat - - - name: Race - cards: - - *bear - - *bear - - *big_dog - - *big_dog - - *dog_shoes - - *dog_shoes - - *greyhound - - *greyhound - - *improvise - - *improvise - - *midnight_sun - - *midnight_sun - - *problem_dog - - *problem_dog - - *push - - *push - - *rush - - *rush - - *slow_and_steady - - *slow_and_steady - - *squirrel - - *squirrel - - *supply_run - - *supply_run - - *tiara - - *tiara - - - name: Survival - cards: - - *antique_sled - - *antique_sled - - *band_aid - - *band_aid - - *bandage - - *bandage - - *bison - - *bison - - *brandy - - *brandy - - *caffeine - - *caffeine - - *jerky - - *jerky - - *makeshift_sled - - *makeshift_sled - - *malamute - - *malamute - - *poutine - - *poutine - - *salvage - - *salvage - - *steak - - *steak - - *venison - - *venison - -Legs: - - &farm - name: Farm - effects: - - '\allowednot{\includegraphics[width=1cm]{icons/starve.png}}' - spaces: - 3: hypo - 5: damage - 7: hypo - - - &fishing_hole - name: Fishing Hole - effects: - - '\daydraw{3}' - spaces: - 3: damage - 5: hypo - 7: damage - - - &hospital - name: Hospital - effects: - - '\freecardtype{personal}' - spaces: - 3: starve - 5: hypo - 7: starve - - - &new_moon - name: New Moon - effects: - - '\freecardtype{dog}' - spaces: - 3: hypo - 5: starve - 7: hypo - - -Legdecks: - - name: First - legs: - - *farm - - *fishing_hole - - *hospital - - *new_moon - - - -# TODO: add legs + survival: + antique_sled: + rarity: common + count: 2 + band_aid: + rarity: common + count: 2 + bandage: + rarity: common + count: 2 + bison: + rarity: common + count: 2 + brandy: + rarity: common + count: 2 + caffeine: + rarity: common + count: 2 + jerky: + rarity: common + count: 2 + makeshift_sled: + rarity: common + count: 2 + malamute: + rarity: common + count: 2 + poutine: + rarity: common + count: 2 + salvage: + rarity: common + count: 2 + steak: + rarity: common + count: 2 + venison: + rarity: common + count: 2 diff --git a/cards.yaml.recovered b/cards.yaml.recovered index 0ddd02a..dab9b65 100644 --- a/cards.yaml.recovered +++ b/cards.yaml.recovered @@ -1,12 +1,12 @@ -# The cards +# vi: sw=2:ts=2:sts=2:et cards: - - &a_hat + a_hat: &a_hat name: 'A Hat' costs: energy: 2 health: 2 effects: - - '\daydraw{+1}' + daydraw: 1 image: hat type: attachment flavour: 'I bet its a valve hat.' @@ -17,7 +17,7 @@ cards: energy: 3 health: 3 effects: - - '\speed{+1}' + speed: 1 image: dog_chow type: attachment flavour: 'A hungry dog is a slow dog.' diff --git a/configure.jq b/configure.jq new file mode 100644 index 0000000..db3539c --- /dev/null +++ b/configure.jq @@ -0,0 +1,43 @@ +# Takes iditacards output json and produces the dynamic ninja build + +def everything: + (.assets,.pseudoassets) | to_entries[] | .value + { name: .key }; + +def cuesources: + $ARGS.positional | join(" "); + +"# Generated from configure.jq, do not edit this file!", +"", +"root = .", +"", +"rule configure", +" description = recreate build.ninja using configure.jq via configure.sh", +" command = bash configure.sh > build.ninja", +" generator = 1", +" restat = 1", +"", +"build build.ninja: configure | configure.jq configure.sh \(cuesources)", +"include rules.ninja", +"", +"build output/everything.json: cuegen \(cuesources)", +" filter = .", +"", ( +everything | ( + select(.kind == "template") | .w = (.size | split("x")[0]) | .h = (.size | split("x")[1]) | + "build output/\(.name).json: extract output/everything.json", + " filter = --arg asset '\(.name)' '.assets[$$asset].data'", + "build output/\(.name).tex: template2tex output/\(.name).json | templates/\(.template)", + " template = templates/\(.template)", + "build output/\(.name).pdf: tex2pdf output/\(.name).tex || output/\(.name).pdf.dd", + " dyndep = output/\(.name).pdf.dd", + "build output/\(.name).pdf.dd: scantex output/\(.name).tex", + "build output/\(.name).raw.png: pdf2png output/\(.name).pdf", + " w = \(.w)", + " h = \(.h)", + "build output/\(.name).png: convert output/\(.name).raw.png", + " args = \(.print)" # TODO: check that this doesn't break if print is missing +) +#,( +# select(.kind == "tex") | +#) +) diff --git a/configure.sh b/configure.sh new file mode 100755 index 0000000..a69e83a --- /dev/null +++ b/configure.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +# The real configure script uses jq to parse cue output +cue export -- *.cue *.yaml | jq -r -f configure.jq --args -- *.cue *.yaml diff --git a/dynamic.ninja b/dynamic.ninja new file mode 100644 index 0000000..e69de29 diff --git a/iditaboard.tex b/iditaboard.tex index a9868e8..8f207d9 100644 --- a/iditaboard.tex +++ b/iditaboard.tex @@ -279,10 +279,10 @@ \scoped[shift={(13.5,-3.75)},yscale=-1]{\cardtrackindicator{thirdleg}{\rotatebox[origin=c]{180}{Fifth Leg}}} \scoped[shift={(16.5,3.75)}]{\cardtrackindicator{thirdleg}{Sixth Leg}} -\node at (-12, 0) {\includegraphics[width=1cm]{images/icons/legend.png}}; -\node at (-9, 0) {\includegraphics[width=1cm]{images/icons/legend.png}}; -\node at (-6, 0) {\includegraphics[width=1cm]{images/icons/legend.png}}; -\node at (-3, 0) {\includegraphics[width=1cm]{images/icons/legend.png}}; +\node at (-12, 0) {\includegraphics[width=1cm]{icons/legend.png}}; +\node at (-9, 0) {\includegraphics[width=1cm]{icons/legend.png}}; +\node at (-6, 0) {\includegraphics[width=1cm]{icons/legend.png}}; +\node at (-3, 0) {\includegraphics[width=1cm]{icons/legend.png}}; \node at (-12.0,7.5) {\fontsize{24}{24}\bebas Start}; \node at (18.0,-7.5) {\fontsize{24}{24}\bebas End}; diff --git a/iditacard.cls b/iditacard.cls index 5d99404..981120e 100644 --- a/iditacard.cls +++ b/iditacard.cls @@ -104,7 +104,7 @@ % Aspect ratio of about 3:2 \newcommand{\art}[1]{% -\node [rectangle, minimum width=649.8/300.0, minimum height=425.0/300.0, inner sep=0, anchor=north west] at (49.2/300.0, 888.0/300.0) {\noindent\includegraphics*[width=2.1664in, height=1.416667in]{#1}}; +\node [rectangle, minimum width=649.8/300.0, minimum height=425.0/300.0, inner sep=0, anchor=north west] at (49.2/300.0, 888.0/300.0) {\noindent\includegraphics*[width=2.1664in, height=1.416667in]{card/#1}}; } \newcommand{\useicon}[1]{\raisebox{-0.1em}{\includegraphics[height=1em]{icons/#1.png}}} diff --git a/images/antique_sled.png b/images/card/antique_sled.png similarity index 100% rename from images/antique_sled.png rename to images/card/antique_sled.png diff --git a/images/band_aid.png b/images/card/band_aid.png similarity index 100% rename from images/band_aid.png rename to images/card/band_aid.png diff --git a/images/bandage.png b/images/card/bandage.png similarity index 100% rename from images/bandage.png rename to images/card/bandage.png diff --git a/images/bear.png b/images/card/bear.png similarity index 100% rename from images/bear.png rename to images/card/bear.png diff --git a/images/big_dog.png b/images/card/big_dog.png similarity index 100% rename from images/big_dog.png rename to images/card/big_dog.png diff --git a/images/bison.png b/images/card/bison.png similarity index 100% rename from images/bison.png rename to images/card/bison.png diff --git a/images/brandy.png b/images/card/brandy.png similarity index 100% rename from images/brandy.png rename to images/card/brandy.png diff --git a/images/breakfast.png b/images/card/breakfast.png similarity index 100% rename from images/breakfast.png rename to images/card/breakfast.png diff --git a/images/buffer_panel.png b/images/card/buffer_panel.png similarity index 100% rename from images/buffer_panel.png rename to images/card/buffer_panel.png diff --git a/images/caffeine.png b/images/card/caffeine.png similarity index 100% rename from images/caffeine.png rename to images/card/caffeine.png diff --git a/images/damaged.png b/images/card/damaged.png similarity index 100% rename from images/damaged.png rename to images/card/damaged.png diff --git a/images/desperate_times.png b/images/card/desperate_times.png similarity index 100% rename from images/desperate_times.png rename to images/card/desperate_times.png diff --git a/images/diamorphine.png b/images/card/diamorphine.png similarity index 100% rename from images/diamorphine.png rename to images/card/diamorphine.png diff --git a/images/dinner.png b/images/card/dinner.png similarity index 100% rename from images/dinner.png rename to images/card/dinner.png diff --git a/images/dog_chow.png b/images/card/dog_chow.png similarity index 100% rename from images/dog_chow.png rename to images/card/dog_chow.png diff --git a/images/dog_shoes.png b/images/card/dog_shoes.png similarity index 100% rename from images/dog_shoes.png rename to images/card/dog_shoes.png diff --git a/images/engineer_dog.png b/images/card/engineer_dog.png similarity index 100% rename from images/engineer_dog.png rename to images/card/engineer_dog.png diff --git a/images/first_aid.png b/images/card/first_aid.png similarity index 100% rename from images/first_aid.png rename to images/card/first_aid.png diff --git a/images/good_dog.png b/images/card/good_dog.png similarity index 100% rename from images/good_dog.png rename to images/card/good_dog.png diff --git a/images/grandma_soup.png b/images/card/grandma_soup.png similarity index 100% rename from images/grandma_soup.png rename to images/card/grandma_soup.png diff --git a/images/greyhound.png b/images/card/greyhound.png similarity index 100% rename from images/greyhound.png rename to images/card/greyhound.png diff --git a/images/hat.png b/images/card/hat.png similarity index 100% rename from images/hat.png rename to images/card/hat.png diff --git a/images/hitch_a_ride.png b/images/card/hitch_a_ride.png similarity index 100% rename from images/hitch_a_ride.png rename to images/card/hitch_a_ride.png diff --git a/images/husky.png b/images/card/husky.png similarity index 100% rename from images/husky.png rename to images/card/husky.png diff --git a/images/improvise.png b/images/card/improvise.png similarity index 100% rename from images/improvise.png rename to images/card/improvise.png diff --git a/images/jerky.png b/images/card/jerky.png similarity index 100% rename from images/jerky.png rename to images/card/jerky.png diff --git a/images/lead_sled.png b/images/card/lead_sled.png similarity index 100% rename from images/lead_sled.png rename to images/card/lead_sled.png diff --git a/images/lunch.png b/images/card/lunch.png similarity index 100% rename from images/lunch.png rename to images/card/lunch.png diff --git a/images/makeshift_sled.png b/images/card/makeshift_sled.png similarity index 100% rename from images/makeshift_sled.png rename to images/card/makeshift_sled.png diff --git a/images/malamute.png b/images/card/malamute.png similarity index 100% rename from images/malamute.png rename to images/card/malamute.png diff --git a/images/meditate.png b/images/card/meditate.png similarity index 100% rename from images/meditate.png rename to images/card/meditate.png diff --git a/images/midnight_sun.png b/images/card/midnight_sun.png similarity index 100% rename from images/midnight_sun.png rename to images/card/midnight_sun.png diff --git a/images/moose.png b/images/card/moose.png similarity index 100% rename from images/moose.png rename to images/card/moose.png diff --git a/images/move.png b/images/card/move.png similarity index 100% rename from images/move.png rename to images/card/move.png diff --git a/images/mush.png b/images/card/mush.png similarity index 100% rename from images/mush.png rename to images/card/mush.png diff --git a/images/nuclear_reactor.png b/images/card/nuclear_reactor.png similarity index 100% rename from images/nuclear_reactor.png rename to images/card/nuclear_reactor.png diff --git a/images/poutine.png b/images/card/poutine.png similarity index 100% rename from images/poutine.png rename to images/card/poutine.png diff --git a/images/problem_dog.png b/images/card/problem_dog.png similarity index 100% rename from images/problem_dog.png rename to images/card/problem_dog.png diff --git a/images/push.png b/images/card/push.png similarity index 100% rename from images/push.png rename to images/card/push.png diff --git a/images/repair_sled.png b/images/card/repair_sled.png similarity index 100% rename from images/repair_sled.png rename to images/card/repair_sled.png diff --git a/images/rush.png b/images/card/rush.png similarity index 100% rename from images/rush.png rename to images/card/rush.png diff --git a/images/salvage.png b/images/card/salvage.png similarity index 100% rename from images/salvage.png rename to images/card/salvage.png diff --git a/images/slow_and_steady.png b/images/card/slow_and_steady.png similarity index 100% rename from images/slow_and_steady.png rename to images/card/slow_and_steady.png diff --git a/images/squirrel.png b/images/card/squirrel.png similarity index 100% rename from images/squirrel.png rename to images/card/squirrel.png diff --git a/images/steak.png b/images/card/steak.png similarity index 100% rename from images/steak.png rename to images/card/steak.png diff --git a/images/supply_run.png b/images/card/supply_run.png similarity index 100% rename from images/supply_run.png rename to images/card/supply_run.png diff --git a/images/tactical_play.png b/images/card/tactical_play.png similarity index 100% rename from images/tactical_play.png rename to images/card/tactical_play.png diff --git a/images/tiara.png b/images/card/tiara.png similarity index 100% rename from images/tiara.png rename to images/card/tiara.png diff --git a/images/upgrade_sled.png b/images/card/upgrade_sled.png similarity index 100% rename from images/upgrade_sled.png rename to images/card/upgrade_sled.png diff --git a/images/venison.png b/images/card/venison.png similarity index 100% rename from images/venison.png rename to images/card/venison.png diff --git a/images/waffles.png b/images/card/waffles.png similarity index 100% rename from images/waffles.png rename to images/card/waffles.png diff --git a/images/whale_meat.png b/images/card/whale_meat.png similarity index 100% rename from images/whale_meat.png rename to images/card/whale_meat.png diff --git a/images/wheel_dog.png b/images/card/wheel_dog.png similarity index 100% rename from images/wheel_dog.png rename to images/card/wheel_dog.png diff --git a/others.cue b/others.cue new file mode 100644 index 0000000..f242361 --- /dev/null +++ b/others.cue @@ -0,0 +1,14 @@ +// Iditacards other asset specification + +images: [...string] + +documents: [string]: #Dimensions + +pseudoassets: { + for image, path in images { + "\(image)": { + kind: "image" + source: path + } + } +} diff --git a/rules.ninja b/rules.ninja new file mode 100644 index 0000000..3f13618 --- /dev/null +++ b/rules.ninja @@ -0,0 +1,28 @@ +rule template2tex + description = convert $in to $out using $template as a template + command = gomplate --left-delim '«' --right-delim '»' -c .=$in < $template > $out + +rule cuegen + description = run cue on $in to produce $out + command = cue export $in > $out + +rule extract + description = extract $out from $in via jq filter $filter + command = jq $filter < $in | bash update.sh $out + restat = 1 + +rule tex2pdf + description = render tex from $in to $out + command = xelatex -interaction=batchmode -halt-on-error --shell-escape --output-directory=$$(dirname $in) $in + +rule scantex + description = scan tex $in for dependencies + command = bash scantex.sh $in > $out + +rule pdf2png + description = convert pdf $in to png $out with size $w by $h + command = pdftoppm -scale-to-x $w -scale-to-y $h -png $in > $out + +rule convert + description = run ImageMagick convert on $in with args $args to $out + command = convert $in $args $out diff --git a/scantex.sh b/scantex.sh new file mode 100644 index 0000000..077b7fc --- /dev/null +++ b/scantex.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +echo 'ninja_dyndep_version = 1' + +src="$1" +tgt="${src%%.*}.pdf" +aux="${src%%.*}.aux" +log="${src%%.*}.log" + +# get_tex command +# returns the argument of \command{...} in the src document +get_tex() { + grep "[\]$1" "$src" | sed 's/.*{\(.*\)}.*/\1/' +} + +deps=( ) + +if grep -q '\\documentclass{iditacard}' "$src"; then + deps+=( + # The class file + 'iditacard.cls' + + # The artwork + "images/cards/$(get_tex art).png" + + # The deckmark + "images/deck/$(get_tex deck).png" + ) +fi + +read -r -a rawimages <<<"$(grep -o '\\includegraphics[^}]*}' "$src" | sed 's/.*{\(.*\)}.*/images\/\1/')" +deps+=( "${rawimages[@]}" ) + +if [ "${#deps[@]}" -gt 0 ]; then + echo "build $tgt | $aux $log : dyndep | ${deps[*]}" +else + echo "build $tgt | $aux $log : dyndep" +fi diff --git a/templates/card.mako b/templates/card.mako index 989690d..accb33c 100644 --- a/templates/card.mako +++ b/templates/card.mako @@ -1,6 +1,19 @@ -## % TODO: how to get the deck info? \documentclass{iditacard} \cardtype{${type}} -## \rarity{${rarity}} -## \deck{${deck}} +\rarity{${rarity}} +\deck{${deck}} + +\begin{document} +\begin{card} + \art{${image}} +% if costs["energy"] > 0: + \energy{${costs["energy"]}} +% endif +% if costs["health"] > 0: + \health{${costs["health"]}} +% endif +% if costs["risk"] > 0: + \risk{${costs["risk"]}} +% endif + \name{${name}} diff --git a/templates/card.tex b/templates/card.tex new file mode 100644 index 0000000..eb816d0 --- /dev/null +++ b/templates/card.tex @@ -0,0 +1,28 @@ +\documentclass{iditacard} + +\cardtype{«.type»} +\rarity{«.rarity»} +\deck{«.deck»} + +\begin{document} +\begin{card} + \art{«.image»} +«- if gt .costs.energy 0» + \energy{«.costs.energy»} +«- end» +«- if gt .costs.health 0» + \health{«.costs.health»} +«- end» +«- if gt .costs.risk 0» + \risk{«.costs.risk»} +«- end» + \name{«.name»} + \text{ +«- range $effect, $amount := .effects -» + \«- $effect -»{«- $amount -»} +«- end -» + } + \flava{«.flavour»} + \type{«.type»} +\end{card} +\end{document} diff --git a/test/.ninja_log b/test/.ninja_log new file mode 100644 index 0000000..a7690f7 --- /dev/null +++ b/test/.ninja_log @@ -0,0 +1,2 @@ +# ninja log v6 +0 1 1727044871155308194 a a7305d4d77a970a4 diff --git a/test/build.ninja b/test/build.ninja new file mode 100644 index 0000000..2b4d13e --- /dev/null +++ b/test/build.ninja @@ -0,0 +1,3 @@ +include ../rules.ninja + +build a: foo test.txt diff --git a/test/test.txt b/test/test.txt new file mode 100644 index 0000000..e69de29 diff --git a/types.cue b/types.cue new file mode 100644 index 0000000..543ffab --- /dev/null +++ b/types.cue @@ -0,0 +1,5 @@ +// Iditacards internal type definitions + +package iditacards + +#Dimensions: string & =~"[0-9]+x[0-9]+" diff --git a/update.sh b/update.sh new file mode 100755 index 0000000..f45e9ac --- /dev/null +++ b/update.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Takes input from standard input and overwrites output argument file only if +# they differ + +input="$(cat)" +output="$1" + +new="$(sha256sum <<<"$input" | cut -d " " -f 1)" +old="$(sha256sum "$output" 2>/dev/null | cut -d " " -f 1)" + +if [ "$new" != "$old" ]; then + echo -n "$input" > "$output" +fi