From 95c6bde6771fc714fd1892a567153ff94354fd0f Mon Sep 17 00:00:00 2001 From: Louis Burke Date: Wed, 25 Sep 2024 01:13:02 -0400 Subject: [PATCH] Migrated to cue+ninja --- .gitignore | 1 + .ninja_deps | Bin 0 -> 16 bytes .ninja_log | 1003 +++++++++++++++++++++++++ assets.cue | 44 ++ assets.yaml | 643 +--------------- build.ninja | 1000 ++++++++++++++++++++++++ build.sh | 42 ++ cards.cue | 99 +++ cards.yaml | 640 +++++++--------- cards.yaml.recovered | 8 +- configure.jq | 43 ++ configure.sh | 4 + dynamic.ninja | 0 iditaboard.tex | 8 +- iditacard.cls | 2 +- images/{ => card}/antique_sled.png | Bin images/{ => card}/band_aid.png | Bin images/{ => card}/bandage.png | Bin images/{ => card}/bear.png | Bin images/{ => card}/big_dog.png | Bin images/{ => card}/bison.png | Bin images/{ => card}/brandy.png | Bin images/{ => card}/breakfast.png | Bin images/{ => card}/buffer_panel.png | Bin images/{ => card}/caffeine.png | Bin images/{ => card}/damaged.png | Bin images/{ => card}/desperate_times.png | Bin images/{ => card}/diamorphine.png | Bin images/{ => card}/dinner.png | Bin images/{ => card}/dog_chow.png | Bin images/{ => card}/dog_shoes.png | Bin images/{ => card}/engineer_dog.png | Bin images/{ => card}/first_aid.png | Bin images/{ => card}/good_dog.png | Bin images/{ => card}/grandma_soup.png | Bin images/{ => card}/greyhound.png | Bin images/{ => card}/hat.png | Bin images/{ => card}/hitch_a_ride.png | Bin images/{ => card}/husky.png | Bin images/{ => card}/improvise.png | Bin images/{ => card}/jerky.png | Bin images/{ => card}/lead_sled.png | Bin images/{ => card}/lunch.png | Bin images/{ => card}/makeshift_sled.png | Bin images/{ => card}/malamute.png | Bin images/{ => card}/meditate.png | Bin images/{ => card}/midnight_sun.png | Bin images/{ => card}/moose.png | Bin images/{ => card}/move.png | Bin images/{ => card}/mush.png | Bin images/{ => card}/nuclear_reactor.png | Bin images/{ => card}/poutine.png | Bin images/{ => card}/problem_dog.png | Bin images/{ => card}/push.png | Bin images/{ => card}/repair_sled.png | Bin images/{ => card}/rush.png | Bin images/{ => card}/salvage.png | Bin images/{ => card}/slow_and_steady.png | Bin images/{ => card}/squirrel.png | Bin images/{ => card}/steak.png | Bin images/{ => card}/supply_run.png | Bin images/{ => card}/tactical_play.png | Bin images/{ => card}/tiara.png | Bin images/{ => card}/upgrade_sled.png | Bin images/{ => card}/venison.png | Bin images/{ => card}/waffles.png | Bin images/{ => card}/whale_meat.png | Bin images/{ => card}/wheel_dog.png | Bin others.cue | 14 + rules.ninja | 28 + scantex.sh | 38 + templates/card.mako | 19 +- templates/card.tex | 28 + test/.ninja_log | 2 + test/build.ninja | 3 + test/test.txt | 0 types.cue | 5 + update.sh | 14 + 78 files changed, 2665 insertions(+), 1023 deletions(-) create mode 100644 .ninja_deps create mode 100644 .ninja_log create mode 100644 assets.cue create mode 100644 build.ninja create mode 100755 build.sh create mode 100644 cards.cue create mode 100644 configure.jq create mode 100755 configure.sh create mode 100644 dynamic.ninja rename images/{ => card}/antique_sled.png (100%) rename images/{ => card}/band_aid.png (100%) rename images/{ => card}/bandage.png (100%) rename images/{ => card}/bear.png (100%) rename images/{ => card}/big_dog.png (100%) rename images/{ => card}/bison.png (100%) rename images/{ => card}/brandy.png (100%) rename images/{ => card}/breakfast.png (100%) rename images/{ => card}/buffer_panel.png (100%) rename images/{ => card}/caffeine.png (100%) rename images/{ => card}/damaged.png (100%) rename images/{ => card}/desperate_times.png (100%) rename images/{ => card}/diamorphine.png (100%) rename images/{ => card}/dinner.png (100%) rename images/{ => card}/dog_chow.png (100%) rename images/{ => card}/dog_shoes.png (100%) rename images/{ => card}/engineer_dog.png (100%) rename images/{ => card}/first_aid.png (100%) rename images/{ => card}/good_dog.png (100%) rename images/{ => card}/grandma_soup.png (100%) rename images/{ => card}/greyhound.png (100%) rename images/{ => card}/hat.png (100%) rename images/{ => card}/hitch_a_ride.png (100%) rename images/{ => card}/husky.png (100%) rename images/{ => card}/improvise.png (100%) rename images/{ => card}/jerky.png (100%) rename images/{ => card}/lead_sled.png (100%) rename images/{ => card}/lunch.png (100%) rename images/{ => card}/makeshift_sled.png (100%) rename images/{ => card}/malamute.png (100%) rename images/{ => card}/meditate.png (100%) rename images/{ => card}/midnight_sun.png (100%) rename images/{ => card}/moose.png (100%) rename images/{ => card}/move.png (100%) rename images/{ => card}/mush.png (100%) rename images/{ => card}/nuclear_reactor.png (100%) rename images/{ => card}/poutine.png (100%) rename images/{ => card}/problem_dog.png (100%) rename images/{ => card}/push.png (100%) rename images/{ => card}/repair_sled.png (100%) rename images/{ => card}/rush.png (100%) rename images/{ => card}/salvage.png (100%) rename images/{ => card}/slow_and_steady.png (100%) rename images/{ => card}/squirrel.png (100%) rename images/{ => card}/steak.png (100%) rename images/{ => card}/supply_run.png (100%) rename images/{ => card}/tactical_play.png (100%) rename images/{ => card}/tiara.png (100%) rename images/{ => card}/upgrade_sled.png (100%) rename images/{ => card}/venison.png (100%) rename images/{ => card}/waffles.png (100%) rename images/{ => card}/whale_meat.png (100%) rename images/{ => card}/wheel_dog.png (100%) create mode 100644 others.cue create mode 100644 rules.ninja create mode 100644 scantex.sh create mode 100644 templates/card.tex create mode 100644 test/.ninja_log create mode 100644 test/build.ninja create mode 100644 test/test.txt create mode 100644 types.cue create mode 100755 update.sh 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 0000000000000000000000000000000000000000..e5675ec1d586af8d236baf921ad7835de2df96ac GIT binary patch literal 16 XcmY#Z$ji*jN=!*DDCS~eU|;|MDX9bw literal 0 HcmV?d00001 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