From 3ee611d60b5c560208c27e83b0c4930596fddd8b Mon Sep 17 00:00:00 2001 From: Zygo Blaxell Date: Mon, 2 Mar 2009 00:42:21 -0500 Subject: [PATCH] ftp://ftp.sunet.se/pub/vendor/sco/skunkware/osr5/x11/savers/xscreensaver/xscreensaver-2.06.tar.gz -rw-r--r-- 1 zblaxell zblaxell 1250494 Feb 27 16:42 xscreensaver-2.06.tar.gz b4811e6d8afe14ae04c059cc097cf280120c2a52 xscreensaver-2.06.tar.gz --- Imakefile | 53 - README | 140 -- config.h | 167 -- driver/.gdbinit | 25 - driver/Imakefile | 162 -- driver/README | 6 - driver/XScreenSaver.ad | 214 -- driver/demo.c | 691 ------ driver/dialogs.c | 676 ------ driver/dialogs.xd | 569 ----- driver/lock.c | 693 ------ driver/stderr.c | 328 --- driver/subprocs.c | 639 ----- driver/timers.c | 526 ---- driver/windows.c | 833 ------- driver/xscreensaver-command.c | 151 -- driver/xscreensaver.c | 1183 --------- driver/xscreensaver.h | 70 - hacks/.gdbinit | 3 - hacks/Imakefile | 84 - hacks/README | 9 - hacks/attraction.c | 685 ------ hacks/blitspin.c | 279 --- hacks/bubbles-samples/blood.bub.gz | Bin 19382 -> 0 bytes hacks/bubbles-samples/blue.bub.gz | Bin 20129 -> 0 bytes hacks/bubbles-samples/jade.bub.gz | Bin 20111 -> 0 bytes hacks/bubbles-sources/blood.pov | 24 - hacks/bubbles-sources/blue.pov | 22 - hacks/bubbles-sources/glass.pov | 27 - hacks/bubbles-sources/jade.pov | 24 - hacks/bubbles-tools/bubblestodefault | 115 - hacks/bubbles-tools/bubblestofile | 107 - hacks/bubbles-tools/xpm2default | 51 - hacks/bubbles.README | 86 - hacks/bubbles.c | 1902 --------------- hacks/bubbles.h | 217 -- hacks/bubbles_default.c | 2123 ----------------- hacks/decayscreen.c | 146 -- hacks/default.xbm | 1686 ------------- hacks/flame.c | 297 --- hacks/greynetic.c | 166 -- hacks/halo.c | 379 --- hacks/helix.c | 208 -- hacks/hopalong.c | 236 -- hacks/hypercube.c | 334 --- hacks/imsmap.c | 437 ---- hacks/lmorph.c | 501 ---- hacks/maze.c | 792 ------ hacks/noseguy.c | 654 ----- hacks/noses/nose.0.left | 38 - hacks/noses/nose.0.right | 38 - hacks/noses/nose.1.left | 38 - hacks/noses/nose.1.right | 38 - hacks/noses/nose.down | 38 - hacks/noses/nose.front | 38 - hacks/noses/nose.left.front | 38 - hacks/noses/nose.right.front | 38 - hacks/pedal.c | 404 ---- hacks/pyro.c | 258 -- hacks/qix.c | 514 ---- hacks/rocks.c | 310 --- hacks/rorschach.c | 140 -- hacks/screenhack.c | 247 -- hacks/screenhack.h | 139 -- hacks/slidescreen.c | 253 -- hacks/vroot.h | 123 - hacks/xlock.h | 160 -- hacks/xroger-hack.c | 103 - lib/X11/app-defaults/XScreenSaver | 353 +++ local/bin/attraction | Bin 0 -> 48236 bytes local/bin/blitspin | Bin 0 -> 64652 bytes local/bin/bouboule | Bin 0 -> 46004 bytes local/bin/braid | Bin 0 -> 44364 bytes local/bin/bubbles | Bin 0 -> 87716 bytes local/bin/decayscreen | Bin 0 -> 36172 bytes local/bin/deco | Bin 0 -> 33840 bytes local/bin/drift | Bin 0 -> 45972 bytes local/bin/escher | Bin 0 -> 80280 bytes local/bin/flag | Bin 0 -> 45512 bytes local/bin/flame | Bin 0 -> 41840 bytes local/bin/forest | Bin 0 -> 41144 bytes local/bin/fract | Bin 0 -> 40076 bytes local/bin/galaxy | Bin 0 -> 44368 bytes local/bin/gears | Bin 0 -> 55744 bytes local/bin/goop | Bin 0 -> 40476 bytes local/bin/grav | Bin 0 -> 38440 bytes local/bin/greynetic | Bin 0 -> 25736 bytes local/bin/halo | Bin 0 -> 36980 bytes local/bin/helix | Bin 0 -> 32900 bytes local/bin/hopalong | Bin 0 -> 41540 bytes local/bin/hypercube | Bin 0 -> 38000 bytes local/bin/ifs | Bin 0 -> 45264 bytes local/bin/imsmap | Bin 0 -> 38080 bytes local/bin/julia | Bin 0 -> 45588 bytes local/bin/kaleidescope | Bin 0 -> 32872 bytes local/bin/laser | Bin 0 -> 37356 bytes local/bin/lightning | Bin 0 -> 39652 bytes local/bin/lisa | Bin 0 -> 43792 bytes local/bin/lmorph | Bin 0 -> 35444 bytes local/bin/maze | Bin 0 -> 33988 bytes local/bin/moire | Bin 0 -> 34200 bytes local/bin/munch | Bin 0 -> 37488 bytes local/bin/noseguy | Bin 0 -> 51876 bytes local/bin/pedal | Bin 0 -> 31944 bytes local/bin/penrose | Bin 0 -> 49368 bytes local/bin/pipes | Bin 0 -> 109404 bytes local/bin/pyro | Bin 0 -> 27164 bytes local/bin/qix | Bin 0 -> 33232 bytes local/bin/rocks | Bin 0 -> 34936 bytes local/bin/rorschach | Bin 0 -> 26560 bytes local/bin/sierpinski | Bin 0 -> 36460 bytes local/bin/slidescreen | Bin 0 -> 38696 bytes local/bin/slip | Bin 0 -> 41380 bytes local/bin/sphere | Bin 0 -> 37572 bytes local/bin/spiral | Bin 0 -> 41712 bytes local/bin/sproingies | Bin 0 -> 161604 bytes local/bin/starfish | Bin 0 -> 44512 bytes local/bin/strange | Bin 0 -> 44120 bytes local/bin/superquadrics | Bin 0 -> 55832 bytes local/bin/swirl | Bin 0 -> 46132 bytes local/bin/xroger | Bin 0 -> 29140 bytes local/bin/xscreensaver | Bin 0 -> 118192 bytes local/bin/xscreensaver-command | Bin 0 -> 15828 bytes local/man/cat.1/attraction.1 | 264 ++ local/man/cat.1/blitspin.1 | 132 + local/man/cat.1/bouboule.1 | 132 + local/man/cat.1/braid.1 | 132 + local/man/cat.1/bubbles.1 | 198 ++ local/man/cat.1/decayscreen.1 | 132 + local/man/cat.1/deco.1 | 132 + local/man/cat.1/drift.1 | 132 + local/man/cat.1/flag.1 | 132 + local/man/cat.1/flame.1 | 132 + local/man/cat.1/forest.1 | 132 + local/man/cat.1/fract.1 | 132 + local/man/cat.1/galaxy.1 | 132 + local/man/cat.1/goop.1 | 132 + local/man/cat.1/grav.1 | 132 + local/man/cat.1/greynetic.1 | 132 + local/man/cat.1/halo.1 | 132 + local/man/cat.1/helix.1 | 132 + local/man/cat.1/hopalong.1 | 132 + local/man/cat.1/hypercube.1 | 132 + local/man/cat.1/ifs.1 | 132 + local/man/cat.1/imsmap.1 | 132 + local/man/cat.1/julia.1 | 132 + local/man/cat.1/kaleidescope.1 | 132 + local/man/cat.1/laser.1 | 132 + local/man/cat.1/lightning.1 | 132 + local/man/cat.1/lisa.1 | 132 + local/man/cat.1/lmorph.1 | 132 + local/man/cat.1/maze.1 | 198 ++ local/man/cat.1/moire.1 | 132 + local/man/cat.1/munch.1 | 264 ++ local/man/cat.1/noseguy.1 | 132 + local/man/cat.1/pedal.1 | 132 + local/man/cat.1/penrose.1 | 132 + local/man/cat.1/pyro.1 | 132 + local/man/cat.1/qix.1 | 198 ++ local/man/cat.1/rocks.1 | 132 + local/man/cat.1/rorschach.1 | 132 + local/man/cat.1/sierpinski.1 | 132 + local/man/cat.1/slidescreen.1 | 132 + local/man/cat.1/slip.1 | 132 + local/man/cat.1/sphere.1 | 132 + local/man/cat.1/spiral.1 | 132 + local/man/cat.1/starfish.1 | 132 + local/man/cat.1/strange.1 | 132 + local/man/cat.1/swirl.1 | 132 + local/man/cat.1/xroger.1 | 132 + local/man/cat.1/xscreensaver-command.1 | 198 ++ local/man/cat.1/xscreensaver.1 | 990 ++++++++ .../man/man.1/attraction.1 | 31 +- .../man/man.1/blitspin.1 | 20 +- local/man/man.1/bouboule.1 | 76 + local/man/man.1/braid.1 | 65 + .../bubbles.man => local/man/man.1/bubbles.1 | 0 .../man/man.1/decayscreen.1 | 0 local/man/man.1/deco.1 | 72 + local/man/man.1/drift.1 | 75 + local/man/man.1/flag.1 | 88 + local/man/man.1/flame.1 | 70 + local/man/man.1/forest.1 | 63 + local/man/man.1/fract.1 | 62 + local/man/man.1/galaxy.1 | 83 + local/man/man.1/goop.1 | 81 + local/man/man.1/grav.1 | 74 + .../man/man.1/greynetic.1 | 0 hacks/halo.man => local/man/man.1/halo.1 | 16 +- hacks/helix.man => local/man/man.1/helix.1 | 0 .../man/man.1/hopalong.1 | 35 +- .../man/man.1/hypercube.1 | 0 local/man/man.1/ifs.1 | 59 + hacks/imsmap.man => local/man/man.1/imsmap.1 | 15 +- local/man/man.1/julia.1 | 83 + local/man/man.1/kaleidescope.1 | 85 + local/man/man.1/laser.1 | 64 + local/man/man.1/lightning.1 | 58 + local/man/man.1/lisa.1 | 67 + hacks/lmorph.man => local/man/man.1/lmorph.1 | 0 hacks/maze.man => local/man/man.1/maze.1 | 0 local/man/man.1/moire.1 | 64 + local/man/man.1/munch.1 | 133 ++ .../noseguy.man => local/man/man.1/noseguy.1 | 0 hacks/pedal.man => local/man/man.1/pedal.1 | 0 local/man/man.1/penrose.1 | 93 + hacks/pyro.man => local/man/man.1/pyro.1 | 0 hacks/qix.man => local/man/man.1/qix.1 | 19 +- hacks/rocks.man => local/man/man.1/rocks.1 | 13 +- .../man/man.1/rorschach.1 | 0 local/man/man.1/sierpinski.1 | 65 + .../man/man.1/slidescreen.1 | 0 hacks/flame.man => local/man/man.1/slip.1 | 18 +- local/man/man.1/sphere.1 | 58 + local/man/man.1/spiral.1 | 67 + local/man/man.1/starfish.1 | 89 + local/man/man.1/strange.1 | 58 + local/man/man.1/swirl.1 | 64 + hacks/xroger.man => local/man/man.1/xroger.1 | 0 .../man/man.1/xscreensaver-command.1 | 80 +- .../man/man.1/xscreensaver.1 | 616 +++-- screenblank.txt | 46 - utils/Imakefile | 24 - utils/README | 6 - utils/ad2c | 38 - utils/fade.c | 224 -- utils/grabscreen.c | 200 -- utils/hsv.c | 120 - utils/resources.c | 221 -- utils/spline.c | 331 --- utils/spline.h | 59 - utils/usleep.c | 97 - utils/version.h | 2 - utils/visual.c | 288 --- utils/xroger.c | 106 - utils/yarandom.c | 72 - utils/yarandom.h | 19 - 237 files changed, 10655 insertions(+), 23859 deletions(-) delete mode 100644 Imakefile delete mode 100644 README delete mode 100644 config.h delete mode 100644 driver/.gdbinit delete mode 100644 driver/Imakefile delete mode 100644 driver/README delete mode 100644 driver/XScreenSaver.ad delete mode 100644 driver/demo.c delete mode 100644 driver/dialogs.c delete mode 100644 driver/dialogs.xd delete mode 100644 driver/lock.c delete mode 100644 driver/stderr.c delete mode 100644 driver/subprocs.c delete mode 100644 driver/timers.c delete mode 100644 driver/windows.c delete mode 100644 driver/xscreensaver-command.c delete mode 100644 driver/xscreensaver.c delete mode 100644 driver/xscreensaver.h delete mode 100644 hacks/.gdbinit delete mode 100644 hacks/Imakefile delete mode 100644 hacks/README delete mode 100644 hacks/attraction.c delete mode 100644 hacks/blitspin.c delete mode 100644 hacks/bubbles-samples/blood.bub.gz delete mode 100644 hacks/bubbles-samples/blue.bub.gz delete mode 100644 hacks/bubbles-samples/jade.bub.gz delete mode 100644 hacks/bubbles-sources/blood.pov delete mode 100644 hacks/bubbles-sources/blue.pov delete mode 100644 hacks/bubbles-sources/glass.pov delete mode 100644 hacks/bubbles-sources/jade.pov delete mode 100755 hacks/bubbles-tools/bubblestodefault delete mode 100755 hacks/bubbles-tools/bubblestofile delete mode 100755 hacks/bubbles-tools/xpm2default delete mode 100644 hacks/bubbles.README delete mode 100644 hacks/bubbles.c delete mode 100644 hacks/bubbles.h delete mode 100644 hacks/bubbles_default.c delete mode 100644 hacks/decayscreen.c delete mode 100644 hacks/default.xbm delete mode 100644 hacks/flame.c delete mode 100644 hacks/greynetic.c delete mode 100644 hacks/halo.c delete mode 100644 hacks/helix.c delete mode 100644 hacks/hopalong.c delete mode 100644 hacks/hypercube.c delete mode 100644 hacks/imsmap.c delete mode 100644 hacks/lmorph.c delete mode 100644 hacks/maze.c delete mode 100644 hacks/noseguy.c delete mode 100644 hacks/noses/nose.0.left delete mode 100644 hacks/noses/nose.0.right delete mode 100644 hacks/noses/nose.1.left delete mode 100644 hacks/noses/nose.1.right delete mode 100644 hacks/noses/nose.down delete mode 100644 hacks/noses/nose.front delete mode 100644 hacks/noses/nose.left.front delete mode 100644 hacks/noses/nose.right.front delete mode 100644 hacks/pedal.c delete mode 100644 hacks/pyro.c delete mode 100644 hacks/qix.c delete mode 100644 hacks/rocks.c delete mode 100644 hacks/rorschach.c delete mode 100644 hacks/screenhack.c delete mode 100644 hacks/screenhack.h delete mode 100644 hacks/slidescreen.c delete mode 100644 hacks/vroot.h delete mode 100644 hacks/xlock.h delete mode 100644 hacks/xroger-hack.c create mode 100644 lib/X11/app-defaults/XScreenSaver create mode 100755 local/bin/attraction create mode 100755 local/bin/blitspin create mode 100755 local/bin/bouboule create mode 100755 local/bin/braid create mode 100755 local/bin/bubbles create mode 100755 local/bin/decayscreen create mode 100755 local/bin/deco create mode 100755 local/bin/drift create mode 100755 local/bin/escher create mode 100755 local/bin/flag create mode 100755 local/bin/flame create mode 100755 local/bin/forest create mode 100755 local/bin/fract create mode 100755 local/bin/galaxy create mode 100755 local/bin/gears create mode 100755 local/bin/goop create mode 100755 local/bin/grav create mode 100755 local/bin/greynetic create mode 100755 local/bin/halo create mode 100755 local/bin/helix create mode 100755 local/bin/hopalong create mode 100755 local/bin/hypercube create mode 100755 local/bin/ifs create mode 100755 local/bin/imsmap create mode 100755 local/bin/julia create mode 100755 local/bin/kaleidescope create mode 100755 local/bin/laser create mode 100755 local/bin/lightning create mode 100755 local/bin/lisa create mode 100755 local/bin/lmorph create mode 100755 local/bin/maze create mode 100755 local/bin/moire create mode 100755 local/bin/munch create mode 100755 local/bin/noseguy create mode 100755 local/bin/pedal create mode 100755 local/bin/penrose create mode 100755 local/bin/pipes create mode 100755 local/bin/pyro create mode 100755 local/bin/qix create mode 100755 local/bin/rocks create mode 100755 local/bin/rorschach create mode 100755 local/bin/sierpinski create mode 100755 local/bin/slidescreen create mode 100755 local/bin/slip create mode 100755 local/bin/sphere create mode 100755 local/bin/spiral create mode 100755 local/bin/sproingies create mode 100755 local/bin/starfish create mode 100755 local/bin/strange create mode 100755 local/bin/superquadrics create mode 100755 local/bin/swirl create mode 100755 local/bin/xroger create mode 100755 local/bin/xscreensaver create mode 100755 local/bin/xscreensaver-command create mode 100644 local/man/cat.1/attraction.1 create mode 100644 local/man/cat.1/blitspin.1 create mode 100644 local/man/cat.1/bouboule.1 create mode 100644 local/man/cat.1/braid.1 create mode 100644 local/man/cat.1/bubbles.1 create mode 100644 local/man/cat.1/decayscreen.1 create mode 100644 local/man/cat.1/deco.1 create mode 100644 local/man/cat.1/drift.1 create mode 100644 local/man/cat.1/flag.1 create mode 100644 local/man/cat.1/flame.1 create mode 100644 local/man/cat.1/forest.1 create mode 100644 local/man/cat.1/fract.1 create mode 100644 local/man/cat.1/galaxy.1 create mode 100644 local/man/cat.1/goop.1 create mode 100644 local/man/cat.1/grav.1 create mode 100644 local/man/cat.1/greynetic.1 create mode 100644 local/man/cat.1/halo.1 create mode 100644 local/man/cat.1/helix.1 create mode 100644 local/man/cat.1/hopalong.1 create mode 100644 local/man/cat.1/hypercube.1 create mode 100644 local/man/cat.1/ifs.1 create mode 100644 local/man/cat.1/imsmap.1 create mode 100644 local/man/cat.1/julia.1 create mode 100644 local/man/cat.1/kaleidescope.1 create mode 100644 local/man/cat.1/laser.1 create mode 100644 local/man/cat.1/lightning.1 create mode 100644 local/man/cat.1/lisa.1 create mode 100644 local/man/cat.1/lmorph.1 create mode 100644 local/man/cat.1/maze.1 create mode 100644 local/man/cat.1/moire.1 create mode 100644 local/man/cat.1/munch.1 create mode 100644 local/man/cat.1/noseguy.1 create mode 100644 local/man/cat.1/pedal.1 create mode 100644 local/man/cat.1/penrose.1 create mode 100644 local/man/cat.1/pyro.1 create mode 100644 local/man/cat.1/qix.1 create mode 100644 local/man/cat.1/rocks.1 create mode 100644 local/man/cat.1/rorschach.1 create mode 100644 local/man/cat.1/sierpinski.1 create mode 100644 local/man/cat.1/slidescreen.1 create mode 100644 local/man/cat.1/slip.1 create mode 100644 local/man/cat.1/sphere.1 create mode 100644 local/man/cat.1/spiral.1 create mode 100644 local/man/cat.1/starfish.1 create mode 100644 local/man/cat.1/strange.1 create mode 100644 local/man/cat.1/swirl.1 create mode 100644 local/man/cat.1/xroger.1 create mode 100644 local/man/cat.1/xscreensaver-command.1 create mode 100644 local/man/cat.1/xscreensaver.1 rename hacks/attraction.man => local/man/man.1/attraction.1 (82%) rename hacks/blitspin.man => local/man/man.1/blitspin.1 (77%) create mode 100644 local/man/man.1/bouboule.1 create mode 100644 local/man/man.1/braid.1 rename hacks/bubbles.man => local/man/man.1/bubbles.1 (100%) rename hacks/decayscreen.man => local/man/man.1/decayscreen.1 (100%) create mode 100644 local/man/man.1/deco.1 create mode 100644 local/man/man.1/drift.1 create mode 100644 local/man/man.1/flag.1 create mode 100644 local/man/man.1/flame.1 create mode 100644 local/man/man.1/forest.1 create mode 100644 local/man/man.1/fract.1 create mode 100644 local/man/man.1/galaxy.1 create mode 100644 local/man/man.1/goop.1 create mode 100644 local/man/man.1/grav.1 rename hacks/greynetic.man => local/man/man.1/greynetic.1 (100%) rename hacks/halo.man => local/man/man.1/halo.1 (83%) rename hacks/helix.man => local/man/man.1/helix.1 (100%) rename hacks/hopalong.man => local/man/man.1/hopalong.1 (68%) rename hacks/hypercube.man => local/man/man.1/hypercube.1 (100%) create mode 100644 local/man/man.1/ifs.1 rename hacks/imsmap.man => local/man/man.1/imsmap.1 (77%) create mode 100644 local/man/man.1/julia.1 create mode 100644 local/man/man.1/kaleidescope.1 create mode 100644 local/man/man.1/laser.1 create mode 100644 local/man/man.1/lightning.1 create mode 100644 local/man/man.1/lisa.1 rename hacks/lmorph.man => local/man/man.1/lmorph.1 (100%) rename hacks/maze.man => local/man/man.1/maze.1 (100%) create mode 100644 local/man/man.1/moire.1 create mode 100644 local/man/man.1/munch.1 rename hacks/noseguy.man => local/man/man.1/noseguy.1 (100%) rename hacks/pedal.man => local/man/man.1/pedal.1 (100%) create mode 100644 local/man/man.1/penrose.1 rename hacks/pyro.man => local/man/man.1/pyro.1 (100%) rename hacks/qix.man => local/man/man.1/qix.1 (87%) rename hacks/rocks.man => local/man/man.1/rocks.1 (85%) rename hacks/rorschach.man => local/man/man.1/rorschach.1 (100%) create mode 100644 local/man/man.1/sierpinski.1 rename hacks/slidescreen.man => local/man/man.1/slidescreen.1 (100%) rename hacks/flame.man => local/man/man.1/slip.1 (86%) create mode 100644 local/man/man.1/sphere.1 create mode 100644 local/man/man.1/spiral.1 create mode 100644 local/man/man.1/starfish.1 create mode 100644 local/man/man.1/strange.1 create mode 100644 local/man/man.1/swirl.1 rename hacks/xroger.man => local/man/man.1/xroger.1 (100%) rename driver/xscreensaver-command.man => local/man/man.1/xscreensaver-command.1 (53%) rename driver/xscreensaver.man => local/man/man.1/xscreensaver.1 (59%) delete mode 100644 screenblank.txt delete mode 100644 utils/Imakefile delete mode 100644 utils/README delete mode 100755 utils/ad2c delete mode 100644 utils/fade.c delete mode 100644 utils/grabscreen.c delete mode 100644 utils/hsv.c delete mode 100644 utils/resources.c delete mode 100644 utils/spline.c delete mode 100644 utils/spline.h delete mode 100644 utils/usleep.c delete mode 100644 utils/version.h delete mode 100644 utils/visual.c delete mode 100644 utils/xroger.c delete mode 100644 utils/yarandom.c delete mode 100644 utils/yarandom.h diff --git a/Imakefile b/Imakefile deleted file mode 100644 index d7ec7c62..00000000 --- a/Imakefile +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Imakefile file for xscreensaver, Copyright (c) 1991-1994 Jamie Zawinski. - * - * You should not need to edit this file; edit config.h instead. - * - */ - -#include "config.h" - - TARFILES = README Imakefile config.h screenblank.txt - TAR = tar - COMPRESS = compress - COMPRESS_EXT = Z -/**/# COMPRESS = gzip --verbose --best -/**/# COMPRESS_EXT = gz - -all:: utils/Makefile driver/Makefile hacks/Makefile - cd utils ; $(MAKE) $@ CC="$(CC)" CCOPTIONS="$(CCOPTIONS)" CDEBUGFLAGS="$(CDEBUGFLAGS)" - cd driver ; $(MAKE) $@ CC="$(CC)" CCOPTIONS="$(CCOPTIONS)" CDEBUGFLAGS="$(CDEBUGFLAGS)" - cd hacks ; $(MAKE) $@ CC="$(CC)" CCOPTIONS="$(CCOPTIONS)" CDEBUGFLAGS="$(CDEBUGFLAGS)" - -clean install install.man:: utils/Makefile driver/Makefile hacks/Makefile - cd utils ; $(MAKE) $@ BINDIR=$(BINDIR) XAPPLOADDIR=$(XAPPLOADDIR) - cd driver ; $(MAKE) $@ BINDIR=$(BINDIR) XAPPLOADDIR=$(XAPPLOADDIR) - cd hacks ; $(MAKE) $@ BINDIR=$(BINDIR) XAPPLOADDIR=$(XAPPLOADDIR) - -Makefiles:: utils/Makefile driver/Makefile hacks/Makefile - -utils/Makefile: utils/Imakefile config.h - cd utils ; $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)/utils -driver/Makefile: driver/Imakefile config.h - cd driver ; $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)/driver -hacks/Makefile: hacks/Imakefile config.h - cd hacks ; $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)/hacks - -/* This really makes me sick... */ -tar: utils/Makefile driver/Makefile hacks/Makefile - @NAME=`sed -n \ - 's/[^0-9]*\([0-9]\.[0-9][0-9]*\).*/xscreensaver-\1/p' utils/version.h` ; \ - rm -f $$NAME ; ln -s . $$NAME ; \ - FILES= ; \ - for subdir in driver utils hacks ; do \ - cd $$subdir ; \ - FILES="$$FILES `make echo_tarfiles \ - | grep -v '^make\[' \ - | sed \"s|^|$$subdir/|g;s| | $$subdir/|g\" \ - ` "; \ - cd .. ; done ; \ - echo creating tar file $${NAME}.tar.$(COMPRESS_EXT)... ; \ - $(TAR) -vchf - \ - `echo $(TARFILES) $$FILES | sed "s|^|$$NAME/|g; s| | $$NAME/|g" ` \ - | $(COMPRESS) > $${NAME}.tar.$(COMPRESS_EXT) ; \ - rm $$NAME diff --git a/README b/README deleted file mode 100644 index 3a755b33..00000000 --- a/README +++ /dev/null @@ -1,140 +0,0 @@ - -To build: - - - read the comments in `config.h' and edit it as appropriate - - xmkmf ; make - - make install install.man - -The xscreensaver program waits until the keyboard and mouse have been idle -for a period, and then runs a graphics demo chosen at random. It turns off -as soon as there is any mouse or keyboard activity. - -The purpose of xscreensaver is to display pretty pictures on your screen -when it is not in use, in keeping with the philosophy that unattended -monitors should always be doing something interesting, just like they do -in the movies. - -However, xscreensaver can also be used as a screen locker, to prevent -others from using your terminal while your are away. - -The benefit that this program has over the combination of the xlock and -xautolock programs is the ease with which new graphics hacks can be -installed: you don't need to recompile this program to add a new display -mode, you just change some resource settings. Any program which can be -invoked in such a way that it draws on the root window of the screen can -now be used as a screensaver without modification. The programs that -are being run as screensavers don't need to have any special knowledge -about what it means to be a screensaver. - -The XIDLE, MIT-SCREEN-SAVER, and/or SGI SCREEN_SAVER server extensions -will be used if you have them. - -Unfortunately, locking doesn't work if you don't have Motif. - -Also included are several graphics hacks for use as screensavers. There's -nothing magic about these: they're just programs that draw on the root -window, which are pointed at by the screensaver's default resource settings. - - qix - My own implementation of this, with many more options - than you would have thought qix could have. - helix - Generates spirally "stringart" patterns. - pedal - Draws a different kind of spirally pattern. - rorschach - Random inkblot patterns. - attraction - A bouncing ball demo, or a qix-like demo, or a wild - color-cycling thing, with some odd rules. - greynetic - Random colored/stippled rectangles. - rocks - Flying through an asteroid field. - blitspin - Rotate a bitmap using bitblts. - imsmap - Generates random maps or cloud formations. - hypercube - 2d projection of a hypercube rotating on all four axes. - slidescreen - Divides the screen into a grid and plays a 16-puzzle on it. - decayscreen - A melting effect. - halo - Random circular patterns. - pyro - Fireworks. Looks a lot like the version in xlock. - hopalong - Fractals. I snarfed this code from xlock. - flame - Fractals. Also from xlock. - noseguy - A guy with a big nose wanders around the screen saying - things. I snarfed this code from xnlock. - maze - This is the X maze demo modified to take a -root option - so that it works with xscreensaver. - lmorph - morphing line drawings. - bubbles - condensation forms on your monitor, then pops. - -All of these will pop up their own window unless given that -root option. -See their man pages for more details. - -Other reasonable things to use as screensavers, if you have them, are - - xdaliclock -root -builtin2 - melting digital clock - xswarm -r 2>&- - swimming sperm - xwave -root - random 3d graphs - xbouncebits - bounce arbitrary bitmaps around - ico -r -p8 -faces -sleep 1 - it's dull, but it's there - xv -root file.gif -quit - they don't all have to animate! - xsplinefun - bouncing splines - kaleid -root - qix-like kaleidescope patterns - xfishtank -c black -d -r 1 - fish (use version 2.0 or later) - xtacy -root - various eye candy - -You can get all of these from the contrib directory on ftp.x.org. If you -know of (or write) any other interesting programs that can be used as -screensavers, please let me know! - -The latest version of xscreensaver is always ftpable from ftp.x.org. You can -also get it from my web page at http://www.netscape.com/people/jwz/. - - -- Jamie Zawinski - - -Changes since 1.26: Added support for SGI SCREEN_SAVER extension. - Made `fade' and `unfade' work on 8-bit SGIs. - Made the dialog boxes more Motify. - Added `bubbles' hack. -Changes since 1.25: Added `lmorph' hack. - Added viscosity and mouse-control to attraction. - Fixed possible bad color choices in qix and attraction. - Added ramp-mode to halo. - Added a new RNG, which is faster and more portable - than using the RNG in libc. - Made locking work on SCO. - Various other minor tweaks that I don't remember. -Changes since 1.24: Made it capture the stdout/stderr of its subprocesses - and present them on the screensaver window itself. - Made demo mode work correctly with non-default visuals - and color maps, instead of always using the defaults. - Added -visual argument to all included screenhacks. - Support for the R6 MIT-SCREEN-SAVER server extension. - Made the demo mode list scroll properly. - Added `pedal' hack. -Changes since 1.23: Fixed some private-colormap oddities in slidescreen, - decayscreen, and xroger. Fixed apparent conservation- - of-mass problem in pyro; made the shrapnel round. -Changes since 1.22: Minor tweaks for IRIX5; fixed locking race condition. -Changes since 1.21: Minor tweaks for X11R6. - Fixes for non-default visuals. -Changes since 1.20: Fixed bug in color blitspin; added default image. - Added diagnostics to noseguy. Fixed off-by-one - error in flame. Added some missing casts. -Changes since 1.18: Added `flame' hack. - Fixed a minor Motif dialog text field bug. - Fixed yet another XPointer-not-defined-in-R4 bug. -Changes since 1.17: Added support for shadow password files. - Fixed some Motif-related locking bugs. - Added diagnostics when locking is disabled. - Made blitspin able to use the XPM library. - Added `decayscreen' hack. -Changes since 1.16: Added `halo' hack. -Changes since 1.15: Portability fixes. -Changes since 1.14: Broke the driver up into more source files. - Moved the hacks into their own directory. - Made all `time' parameters accept the 00:00:00 syntax, - so that even the parameters which are normally read as - minutes can be specified in seconds. - Added colormap cycling to `imsmap'. - Made hyper work with K&R compilers. -Changes since 1.13: Added `orbit' option to `attraction' hack. - Added `lock-timeout' option. - Cleaned up options of `maze' hack. -Changes since 1.8: Added demo mode, and locking. - Added `maze' hack. - Added `norotate' option to `rocks' hack. diff --git a/config.h b/config.h deleted file mode 100644 index 6230a79a..00000000 --- a/config.h +++ /dev/null @@ -1,167 +0,0 @@ -/* Config file for xscreensaver, Copyright (c) 1991-1996 Jamie Zawinski. - * This file is included by the various Imakefiles. - */ - -/* Uncomment the following line if you have the XPM library installed. - * Some of the demos can make use of this if it is available. - */ -#define HAVE_XPM - - -/* Uncomment the following line if you don't have Motif. If you don't have - * Motif, then the screensaver won't have any dialog boxes, which means - * that it won't be compiled with support for demo-mode or display-locking. - * But other than that, it will work fine. - */ -/* #define NO_MOTIF */ - - -/* Uncomment the following line if for some reason the locking code doesn't - * work (for example, if you don't have the crypt() system call, or if you - * don't use standard passwd files.) If you need to do this, please let me - * know. - * - * I'm told that locking doesn't work for sites which run AFS. I don't know - * anything about how one codes authentication for AFS; if you do, please let - * me know... - */ -/* #define NO_LOCKING */ - - -/* Select supported server extensions. - * There are three distinct server extensions which are useful with - * XScreenSaver: XIDLE, MIT-SCREEN-SAVER, and SCREEN_SAVER. - * - * The XIDLE extension resides in .../contrib/extensions/xidle/ on the X11R5 - * contrib tape. This extension lets the client get accurate idle-time - * information from the X server in a potentially more reliable way than by - * simply watching for keyboard and mouse activity. However, the XIDLE - * extension has apparently not been ported to X11R6. - * - * The SCREEN_SAVER extension is found (as far as I know) only in the SGI - * X server, and it exists in all releases since (at least) Irix 5. The - * relevant header file is /usr/include/X11/extensions/XScreenSaver.h. - * - * The similarly-named MIT-SCREEN-SAVER extension came into existence long - * after the SGI SCREEN_SAVER extension was already in use, and resides in - * .../contrib/extensions/screensaver/ on the X11R6 contrib tape. It is - * also found in certain recent X servers built in to NCD X terminals. - * - * The MIT extension does basically the same thing that the XIDLE extension - * does, but there are two things wrong with it: first, because of the way - * the extension was designed, the `fade' option to XScreenSaver will be - * uglier: just before the screen fades out, there will be an unattractive - * flicker to black, because this extension blanks the screen *before* - * telling us that it is time to do so. Second, this extension is known to - * be buggy; on the systems I use, it works, but some people have reported - * X server crashes as a result of using it. XScreenSaver uses this - * extension rather conservatively, because when I tried to use any of its - * more complicated features, I could get it to crash the server at the - * drop of a hat. - * - * In short, the MIT-SCREEN-SAVER extension is a piece of junk. The older - * SGI SCREEN_SAVER extension works great, as does XIDLE. It would be nice - * If those two existed on more systems, that is, would be adopted by the - * X Consortium in favor of their inferior "not-invented-here" entry. - */ - -/* Uncomment the following line if you have the XIDLE extension installed. - * If you have the XIDLE extension, this is recommended. (You have this - * extension if the file /usr/include/X11/extensions/xidle.h exists.) - * Turning on this flag lets XScreenSaver work better with servers which - * support this extension; but it will still work with servers which do not - * suport it, so it's a good idea to compile in support for it if you can. - */ -/* #define HAVE_XIDLE_EXTENSION */ - -/* Uncomment the following line if you have the MIT-SCREEN-SAVER extension - * installed. This is NOT RECOMMENDED. See the caveats about this extension, - * above. (It's available if the file /usr/include/X11/extensions/scrnsaver.h - * exists.) - */ -/* #define HAVE_MIT_SAVER_EXTENSION */ - - -/* Use the following line if you have the SGI SCREEN_SAVER extension; the - * default below should be correct (use it if and only if running on an SGI.) - * Compiling in support for this extension is recommended, if possible. - */ -#ifdef SGIArchitecture -# define HAVE_SGI_SAVER_EXTENSION -#endif - - -/* Uncomment the following line if your system doesn't have the select() - * system call. If you need to do this, please let me know. (I don't really - * think that any such systems exist in this day and age...) - */ -/* #define NO_SELECT */ - - -/* Uncomment the following line if your system doesn't have the setuid(), - * setregid(), and getpwnam() library routines. - * - * WARNING: if you do this, it will be unsafe to run xscreensaver as root - * (which probably means you can't have it be started by xdm.) If you are - * on such a system, please try to find the corresponding way to do this, - * and then tell me what it is. - */ -/* #define NO_SETUID */ - - -/* Uncomment the following line if your system uses `shadow' passwords, - * that is, the passwords live in /etc/shadow instead of /etc/passwd, - * and one reads them with getspnam() instead of getpwnam(). (Note that - * SCO systems do some random other thing; others might as well. See the - * ifdefs in driver/lock.c if you're having trouble related to reading - * passwords.) - */ -/* #define HAVE_SHADOW */ - - -/* You may need to edit these to correspond to where Motif is installed, - * if your site has Motif installed in a nonstandard place. - */ -#ifndef NO_MOTIF - MOTIFINCLUDES = -I/usr/local/include/ - MOTIFLDOPTIONS = -L/usr/local/lib/ - MOTIFLIBS = -lXm -#endif - - -/* On some systems, only programs running as root can use the getpwent() - library routine. This means that, in order for locking to work, the - screensaver must be installed as setuid to root. Define this to make - that happen. (You must run "make install" as root for it to work.) - (If your system needs this, and the default below is not correct, - please let me know.) - */ -#if defined(HPArchitecture) || defined(AIXArchitecture) || defined(HAVE_SHADOW) || defined(NetBSDArchitecture) -# define INSTALL_SETUID -#endif - -#ifdef HPArchitecture - CCOPTIONS = -Aa -D_HPUX_SOURCE /* eat me */ -# if (ProjectX <= 4) - MOTIFINCLUDES = -I/usr/include/Motif1.1 - MOTIFLDOPTIONS = -L/usr/lib/Motif1.1 -# else /* R5 */ - MOTIFINCLUDES = -I/usr/include/Motif1.2 - MOTIFLDOPTIONS = -L/usr/lib/Motif1.2 -# endif /* R5 */ -#endif /* HPArchitecture */ - -#ifdef MacIIArchitecture - CCOPTIONS = -D_POSIX_SOURCE -#endif /* MacIIArchitecture */ - -#if (ProjectX <= 4) -# define R5ISMS -DXPointer="char*" -#else /* r5 or better */ -# define R5ISMS -#endif - -/* It seems that some versions of Sun's dynamic X libraries are broken; if - you get link errors about _get_wmShellWidgetClass being undefined, try - adding -Bstatic to the link command. - */ diff --git a/driver/.gdbinit b/driver/.gdbinit deleted file mode 100644 index ab329236..00000000 --- a/driver/.gdbinit +++ /dev/null @@ -1,25 +0,0 @@ -# If you're debugging xscreensaver and you are running a virtual root window -# manager, you'd better let the process handle these signals: it remaps the -# virtual root window when they arrive. If you don't do this, your window -# manager will be hosed. -# -# Also, gdb copes badly with breakpoints in functions that are called on the -# other side of a fork(). The Trace/BPT traps cause the spawned process to -# die. -# -#handle 1 pass nostop -#handle 3 pass nostop -#handle 4 pass nostop -#handle 6 pass nostop -#handle 7 pass nostop -#handle 8 pass nostop -#handle 9 pass nostop -#handle 10 pass nostop -#handle 11 pass nostop -#handle 12 pass nostop -#handle 13 pass nostop -#handle 15 pass nostop -#handle 19 pass nostop -b exit -set args -sync -verbose -idelay 0 -#b purify_stop_here diff --git a/driver/Imakefile b/driver/Imakefile deleted file mode 100644 index 722d284a..00000000 --- a/driver/Imakefile +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Imakefile file for xscreensaver, Copyright (c) 1993-1996 Jamie Zawinski. - * - * You should not need to edit this file; edit ../config.h instead. - * - */ - -#include "../config.h" - -/* #### If anyone ever finishes the Athena locking code, remove this. */ -#if defined(NO_MOTIF) && !defined(NO_LOCKING) -# define NO_LOCKING -#endif - -#ifdef NO_LOCKING -# undef INSTALL_SETUID -#endif - -#ifdef HAVE_XIDLE_EXTENSION -# define XIDLE_DEF -DHAVE_XIDLE_EXTENSION -#else -# define XIDLE_DEF -#endif - -#ifdef HAVE_MIT_SAVER_EXTENSION -# define MIT_SAVER_DEF -DHAVE_MIT_SAVER_EXTENSION -#else -# define MIT_SAVER_DEF -#endif - -#ifdef HAVE_SGI_SAVER_EXTENSION -# define SGI_SAVER_DEF -DHAVE_SGI_SAVER_EXTENSION -#else -# define SGI_SAVER_DEF -#endif - -#ifdef NO_LOCKING -# define LOCKING_DEF -DNO_LOCKING -#else -# define LOCKING_DEF -#endif - -#ifdef NO_SETUID -# define SETUID_DEF -DNO_SETUID -#else -# define SETUID_DEF -#endif - -#ifdef HAVE_SHADOW -# define SHADOW_DEF -DHAVE_SHADOW -#else -# define SHADOW_DEF -#endif - -#ifdef NO_MOTIF -# define MOTIF_DEF -DNO_MOTIF -# define MOTIF_SRC -# define MOTIF_OBJ -# define MOTIF_LIB -# define MOTIF_INC -#else -# define MOTIF_DEF -# define MOTIF_SRC $(DBOX_SRCS) $(UTILS)/xroger.c -# define MOTIF_OBJ $(DBOX_OBJS) $(UTILS)/xroger.o -# define MOTIF_LIB $(MOTIFLDOPTIONS) $(MOTIFLIBS) -# define MOTIF_INC $(MOTIFINCLUDES) -#endif - - UTILS = ../utils - INCLUDES = -I$(UTILS) MOTIF_INC - DEFINES = SETUID_DEF XIDLE_DEF MIT_SAVER_DEF SGI_SAVER_DEF MOTIF_DEF LOCKING_DEF SHADOW_DEF R5ISMS - SAVERLIBS = $(XMULIB) $(XTOOLLIB) $(EXTENSIONLIB) $(XLIB) - COMMLIBS = $(XLIB) - UTIL_SRCS = $(UTILS)/resources.c $(UTILS)/fade.c $(UTILS)/visual.c $(UTILS)/usleep.c $(UTILS)/yarandom.c - UTIL_OBJS = $(UTILS)/resources.o $(UTILS)/fade.o $(UTILS)/visual.o $(UTILS)/usleep.o $(UTILS)/yarandom.o - DBOX_SRCS = dialogs.c demo.c - DBOX_OBJS = dialogs.o demo.o - LOCK_SRCS = lock.c - LOCK_OBJS = lock.o - SAVERSRCS = xscreensaver.c timers.c subprocs.c windows.c stderr.c - SAVEROBJS = xscreensaver.o timers.o subprocs.o windows.o stderr.o - SRCS1 = $(SAVERSRCS) MOTIF_SRC $(LOCK_SRCS) $(UTIL_SRCS) - OBJS1 = $(SAVEROBJS) MOTIF_OBJ $(LOCK_OBJS) $(UTIL_OBJS) - COMMSRCS = xscreensaver-command.c - COMMOBJS = xscreensaver-command.o - SRCS2 = $(COMMSRCS) - OBJS2 = $(COMMOBJS) - MEN = xscreensaver.man xscreensaver-command.man - TARFILES = README Imakefile $(SAVERSRCS) $(DBOX_SRCS) $(LOCK_SRCS) \ - $(COMMSRCS) xscreensaver.h XScreenSaver.ad dialogs.xd \ - $(MEN) .gdbinit - -#if defined(HPArchitecture) && !defined(NO_LOCKING) -EXTRA_LIBRARIES = -lXhp11 /* for XHPDisableReset() */ -#endif - -#if defined(NetBSDArchitecture) && !defined(NO_LOCKING) -EXTRA_LIBRARIES = -lcrypt -#endif - -#if defined(i386ScoArchitecture) -EXTRA_LIBRARIES = -lintl -lprot -lx -lcrypt_i -#endif - -all:: xscreensaver xscreensaver-command - -echo_tarfiles: - @echo $(TARFILES) - -PROGRAMS = xscreensaver xscreensaver-command - -#ifdef INSTALL_SETUID -#undef InstallProgram -#define InstallProgram(p,d) InstallProgramWithFlags(p,d,$(INSTUIDFLAGS)) -#endif - -ComplexProgramTarget_1(xscreensaver,MOTIF_LIB $(SAVERLIBS), $(HP_NULL_STR)) - -#ifdef INSTALL_SETUID -#undef InstallProgram -#define InstallProgram(p,d) InstallProgramWithFlags(p,d,$(HP_NULL_STR)) -#endif - -ComplexProgramTarget_2(xscreensaver-command,$(COMMLIBS),$(HP_NULL_STR)) - -InstallAppDefaults(XScreenSaver) - -xscreensaver.o: XScreenSaver.ad.h $(UTILS)/version.h -xscreensaver-command.o: $(UTILS)/version.h - -demo.o: $(UTILS)/version.h -lock.o: $(UTILS)/version.h - -/* build this before calling makedepend */ -depend:: XScreenSaver.ad.h - -XScreenSaver.ad.h: XScreenSaver.ad - $(UTILS)/ad2c XScreenSaver.ad > XScreenSaver.ad.h - -clean:: - $(RM) XScreenSaver.ad.h - - -#if defined(SparcArchitecture) || defined(SGIArchitecture) -# undef UsePurify -# define UsePurify -#endif - -#ifdef UsePurify - PURIFY = purify - PURIFYOPTIONS = - -# undef PurifyProgramTarget -# define PurifyProgramTarget(program,deplist,linklist) @@\ -program.pure: deplist @@\ - RemoveTargetProgram($@) @@\ - $(CCENVSETUP) $(PURIFY) $(PURIFYOPTIONS) $(CC) \ - -o $@ $(LDOPTIONS) linklist $(EXTRA_LOAD_FLAGS) - -PurifyProgramTarget(xscreensaver,$(OBJS1),$(OBJS1) MOTIF_LIB $(SAVERLIBS)) - -#endif /* Purify */ diff --git a/driver/README b/driver/README deleted file mode 100644 index df64793b..00000000 --- a/driver/README +++ /dev/null @@ -1,6 +0,0 @@ - -This directory contains the source for xscreensaver and xscreensaver-command, -the screensaver driver, and the program for externally controlling it. Some -stuff from the ../utils/ directory is used here as well. - -If you have compilation problems, check the parameters in ../config.h. diff --git a/driver/XScreenSaver.ad b/driver/XScreenSaver.ad deleted file mode 100644 index 01401a4b..00000000 --- a/driver/XScreenSaver.ad +++ /dev/null @@ -1,214 +0,0 @@ -! app-defaults file for XScreenSaver by Jamie Zawinski. -! See "man xscreensaver" for more info. If you don't have that, -! see http://www.netscape.com/people/jwz/ to get the latest version. - -*timeout: 10 -*cycle: 10 -*lockTimeout: 0 -*passwdTimeout: 30 -*nice: 10 -*lock: False -*verbose: False -*fade: True -*unfade: False -*fadeSeconds: 1 -*fadeTicks: 75 - -*captureStderr: True -*captureStdout: True -*textForeground: Yellow -*textBackground: Black -*font: *-medium-r-*-140-*-m-* - -! Turning on "installColormap" interacts erratically with twm and tvtwm, -! but seems to work fine with mwm and olwm. Try it and see. -! -*installColormap: True - - -! Any program which can draw on the root window will work as a screensaver. -! The following three resources enumerate them. - -*programs: qix -root \n\ - qix -root -solid -delay 0 -segments 100 \n\ - qix -root -linear -count 10 -size 100 -segments 200 \n\ - attraction -root -mode balls \n\ - attraction -root -mode lines -points 3 -segments 200 \n\ - attraction -root -mode splines -segments 300 \n\ - attraction -root -mode lines -radius 300 \ - -orbit -vmult 0.5 \n\ - pyro -root \n\ - helix -root \n\ - pedal -root \n\ - rorschach -root -offset 7 \n\ - hopalong -root \n\ - greynetic -root \n\ - xroger -root \n\ - imsmap -root \n\ - slidescreen -root \n\ - decayscreen -root \n\ - hypercube -root \n\ - halo -root \n\ - maze -root \n\ - flame -root \n\ - lmorph -root \n - -! Programs on this list are run only for monochrome screens. -! (These are in addition to those listed in "*programs".) -*monoPrograms: qix -root -linear -count 5 -size 200 -spread 30 \ - -segments 75 -solid -xor \n\ - rocks -root \n\ - noseguy -root \n - -! Programs on this list are run only for color (really, non-mono) screens. -! (These are in addition to those listed in "*programs".) -*colorPrograms: qix -root -count 4 -solid -transparent \n\ - qix -root -count 5 -solid -transparent -linear \ - -segments 250 -size 100 \n\ - attraction -root -mode polygons \n\ - attraction -root -mode filled-splines -segments 0 \n\ - attraction -root -glow -points 10 \n\ - rocks -root -fg darksalmon \n\ - noseguy -root -fg yellow -bg black \n\ - bubbles -root \n - - -! Some other programs that you might want to track down (these work as -! XScreenSaver helpers, but are not distributed with it): -! -! xdaliclock -root -builtin2 \n\ -! xswarm -r 2>&- \n\ -! xwave -root \n\ -! xbouncebits ... \n\ -! ico -r -faces -sleep 1 -obj ico \n\ -! xsplinefun \n\ -! kaleid -root \n\ -! xfishtank -c black -d -r 2 \n\ -! xtacy -root -delay 100 -gravity \n\ - - -! To display a slideshow of images, add commands like this to *programs: -! -! xv -root -rmode 5 image-1.gif -quit -! xv -root -rmode 5 image-2.gif -quit -! xv -root -rmode 5 image-3.gif -quit -! ...and so on... -! -! however, for this to work, you must also have started the screensaver so -! that it uses the default colormap (the "-no-install" command-line option, or -! the "installColormap: False" resource) because when XV is running in "-root" -! mode, it always assumes that the default colormap is being used, rather than -! examining the window it is drawing on to see what colormap it has. - - -! Some SGI GL programs work with XScreenSaver; most don't. -! -! Bongo works fine: -! -! /usr/demos/bin/bongo -wbongo -! -! ElectroPaint sort-of works; XScreenSaver will launch it, and it will run -! properly, but when it's time to turn off the screensaver, you need to hit -! the Escape key, rather than just moving the mouse. Apparently GL programs -! are able to intercept the keyboard even when X has the keyboard grabbed! -! -! /usr/demos/bin/ep -! -! None of the other GL demos I've tried worked, because none of them seem to -! have command-line options that will make them take up the whole screen; so -! all you get is a miniscule 100x100 image, which is worthless. This is a -! shame, since many of those demos would make fine screensavers. -! -! If anyone who understands how "haven" works would like to send me the code -! necessary to do what it does, I would be much obliged. - - - -!============================================================================= -! -! You probably don't want to change anything after this point. -! -!============================================================================= - - -! Resources for the dialog boxes: -! -*fontList: *-helvetica-medium-r-*-*-*-120-*-*-*-iso8859-1 -*demoDialog*label1.fontList: *-helvetica-medium-r-*-*-*-140-*-*-*-iso8859-1 -*passwdDialog*fontList: *-helvetica-medium-r-*-*-*-140-*-*-*-iso8859-1 -*XmList.fontList: *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1 -*XmTextField.fontList: *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1 -*passwdDialog.passwdText.fontList: *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1 - -*XmDialogShell*foreground: black -*XmDialogShell*background: gray90 -*XmDialogShell*XmTextField.foreground: black -*XmDialogShell*XmTextField.background: white -*XmDialogShell*demoList.foreground: black -*XmDialogShell*demoList.background: white -*XmDialogShell*rogerLabel.foreground: red3 -*XmDialogShell*rogerLabel.background: white - -*XmDialogShell.title: XScreenSaver -*allowShellResize: True -*autoUnmanage: False - -! This doesn't work. Motif ignores it if there is a scroll-list! -*demoDialog.maxWidth: 600 - -*label1.labelString: XScreenSaver %s -*label2.labelString: Copyright © 1991-1996 by Jamie Zawinski -*demoList.visibleItemCount: 10 -*demoList.automaticSelection: True -*next.labelString: Run Next -*prev.labelString: Run Previous -*edit.labelString: Edit Parameters -*done.labelString: Exit Demo Mode -*restart.labelString: Reinitialize - -*resourcesLabel.labelString: XScreenSaver Parameters - -! *timeoutLabel.labelString: Timeout Minutes -! *cycleLabel.labelString: Cycle Seconds -! *fadeSecondsLabel.labelString:Fade Seconds -! *fadeTicksLabel.labelString: Fade Ticks -! *lockLabel.labelString: Lock Timeout -! *passwdLabel.labelString: Password Timeout -! *resourcesForm*XmTextField.columns: 5 - -*timeoutLabel.labelString: Saver Timeout -*cycleLabel.labelString: Cycle Timeout -*fadeSecondsLabel.labelString: Fade Duration -*fadeTicksLabel.labelString: Fade Ticks -*lockLabel.labelString: Lock Timeout -*passwdLabel.labelString: Password Timeout -*resourcesForm*XmTextField.columns: 8 - -*verboseToggle.labelString: Verbose -*cmapToggle.labelString: Install Colormap -*fadeToggle.labelString: Fade Colormap -*unfadeToggle.labelString: Unfade Colormap -*lockToggle.labelString: Require Password -*resourcesDone.labelString: Done -*resourcesCancel.labelString: Cancel - -*passwdDialog.title: Password -*passwdLabel1.labelString: XScreenSaver %s -*passwdLabel2.labelString: This display is locked. -*passwdLabel3.labelString: Please type %s's password to unlock it. -*passwdDone.labelString: Done -*passwdCancel.labelString: Cancel - -*passwdLabel1.alignment: ALIGNMENT_BEGINNING -*passwdLabel2.alignment: ALIGNMENT_BEGINNING -*passwdLabel3.alignment: ALIGNMENT_BEGINNING -*rogerLabel.width: 150 - -! You probably won't need to change these. They are only used if no server -! extension is in use. -! -*pointerPollTime: 5 -*initialDelay: 30 -*windowCreationTimeout: 30 - -*bourneShell: /bin/sh diff --git a/driver/demo.c b/driver/demo.c deleted file mode 100644 index 4d4a7b07..00000000 --- a/driver/demo.c +++ /dev/null @@ -1,691 +0,0 @@ -/* xscreensaver, Copyright (c) 1993-1996 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include - -#if !__STDC__ -# define _NO_PROTO -#endif - -#include -#include -#include -#include - -#include "xscreensaver.h" -#include - -#ifdef HAVE_MIT_SAVER_EXTENSION -extern int mit_saver_ext_event_number; -extern Window server_mit_saver_window; -#endif /* HAVE_MIT_SAVER_EXTENSION */ - -#ifdef HAVE_SGI_SAVER_EXTENSION -/* extern int sgi_saver_ext_event_number; */ -#endif /* HAVE_SGI_SAVER_EXTENSION */ - -extern Bool use_mit_saver_extension; -extern Bool use_sgi_saver_extension; - -extern Time timeout, cycle, lock_timeout; -#ifndef NO_LOCKING -extern Time passwd_timeout; -#endif -extern int fade_seconds, fade_ticks; -extern Bool verbose_p, install_cmap_p, fade_p, unfade_p; -extern Bool lock_p, locking_disabled_p; - -static void demo_mode_hack P((char *)); -static void demo_mode_done P((void)); - -static void focus_fuckus P((Widget dialog)); -static void text_cb P((Widget button, XtPointer, XtPointer)); - -extern void demo_mode_restart_process (); - -extern Widget demo_dialog; -extern Widget label1; -extern Widget text_line; -extern Widget demo_form; -extern Widget demo_list; -extern Widget next, prev, done, restart, edit; - -extern Widget resources_dialog; -extern Widget resources_form; -extern Widget res_done, res_cancel; -extern Widget timeout_text, cycle_text, fade_text, ticks_text; -extern Widget lock_time_text, passwd_time_text; -extern Widget verbose_toggle, cmap_toggle, fade_toggle, unfade_toggle, - lock_toggle; - -extern create_demo_dialog (); -extern create_resources_dialog (); - -static void -focus_fuckus (dialog) - Widget dialog; -{ - XSetInputFocus (XtDisplay (dialog), XtWindow (dialog), - RevertToParent, CurrentTime); -} - -static void -raise_screenhack_dialog () -{ - XMapRaised (XtDisplay (demo_dialog), XtWindow (demo_dialog)); - if (resources_dialog) - XMapRaised (XtDisplay (resources_dialog), XtWindow (resources_dialog)); - focus_fuckus (resources_dialog ? resources_dialog : demo_dialog); -} - -static void -destroy_screenhack_dialogs () -{ - if (demo_dialog) XtDestroyWidget (demo_dialog); - if (resources_dialog) XtDestroyWidget (resources_dialog); - demo_dialog = resources_dialog = 0; -} - -static void -text_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - char *line = XmTextGetString (button); - demo_mode_hack (line); -} - - -static void -select_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - char **hacks = (char **) client_data; - XmListCallbackStruct *lcb = (XmListCallbackStruct *) call_data; - XmTextSetString (text_line, hacks [lcb->item_position - 1]); - if (lcb->reason == XmCR_DEFAULT_ACTION) - text_cb (text_line, 0, 0); - focus_fuckus (demo_dialog); -} - -static void -ensure_selected_item_visible (list) - Widget list; -{ - int *pos_list = 0; - int pos_count = 0; - if (XmListGetSelectedPos (list, &pos_list, &pos_count) && pos_count > 0) - { - int top = -2; - int visible = 0; - XtVaGetValues (list, - XmNtopItemPosition, &top, - XmNvisibleItemCount, &visible, - 0); - if (pos_list[0] >= top + visible) - { - int pos = pos_list[0] - visible + 1; - if (pos < 0) pos = 0; - XmListSetPos (list, pos); - } - else if (pos_list[0] < top) - { - XmListSetPos (list, pos_list[0]); - } - } - if (pos_list) - XtFree ((char *) pos_list); -} - -static void -next_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - int *pos_list; - int pos_count; - if (! XmListGetSelectedPos (demo_list, &pos_list, &pos_count)) - XmListSelectPos (demo_list, 1, True); - else - { - int pos = pos_list [0]; - XmListSelectPos (demo_list, pos + 1, True); - XtFree ((char *) pos_list); - if (! XmListGetSelectedPos (demo_list, &pos_list, &pos_count)) - abort (); - if (pos_list [0] == pos) - XmListSelectPos (demo_list, 1, True); - XtFree ((char *) pos_list); - } - ensure_selected_item_visible (demo_list); - text_cb (text_line, 0, 0); -} - -static void -prev_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - int *pos_list; - int pos_count; - if (! XmListGetSelectedPos (demo_list, &pos_list, &pos_count)) - XmListSelectPos (demo_list, 0, True); - else - { - XmListSelectPos (demo_list, pos_list [0] - 1, True); - XtFree ((char *) pos_list); - } - ensure_selected_item_visible (demo_list); - text_cb (text_line, 0, 0); -} - - -static void pop_resources_dialog (); -static void make_resources_dialog (); - -static void -edit_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - Widget parent = (Widget) client_data; - if (! resources_dialog) - make_resources_dialog (parent); - pop_resources_dialog (); -} - -static void -done_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - demo_mode_done (); -} - - -static void -restart_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - demo_mode_restart_process (); -} - -void -pop_up_dialog_box (dialog, form, where) - Widget dialog, form; - int where; -{ - /* I'm sure this is the wrong way to pop up a dialog box, but I can't - figure out how else to do it. - - It's important that the screensaver dialogs not get decorated or - otherwise reparented by the window manager, because they need to be - children of the *real* root window, not the WM's virtual root, in - order for us to guarentee that they are visible above the screensaver - window itself. - */ - Arg av [100]; - int ac = 0; - Dimension sw, sh, x, y, w, h; - XtRealizeWidget (form); - sw = WidthOfScreen (XtScreen (dialog)); - sh = HeightOfScreen (XtScreen (dialog)); - ac = 0; - XtSetArg (av [ac], XmNwidth, &w); ac++; - XtSetArg (av [ac], XmNheight, &h); ac++; - XtGetValues (form, av, ac); - switch (where) - { - case 0: /* center it in the top-right quadrant */ - x = (sw/2 + w) / 2 + (sw/2) - w; - y = (sh/2 + h) / 2 - h; - break; - case 1: /* center it in the bottom-right quadrant */ - x = (sw/2 + w) / 2 + (sw/2) - w; - y = (sh/2 + h) / 2 + (sh/2) - h; - break; - case 2: /* center it on the screen */ - x = (sw + w) / 2 - w; - y = (sh + h) / 2 - h; - break; - default: - abort (); - } - if (x + w > sw) x = sw - w; - if (y + h > sh) y = sh - h; - ac = 0; - XtSetArg (av [ac], XmNx, x); ac++; - XtSetArg (av [ac], XmNy, y); ac++; - XtSetArg (av [ac], XtNoverrideRedirect, True); ac++; - XtSetArg (av [ac], XmNdefaultPosition, False); ac++; - /* I wonder whether this does anything useful? */ - /* XtSetArg (av [ac], XmNdialogStyle, XmDIALOG_SYSTEM_MODAL); ac++; */ - XtSetValues (dialog, av, ac); - XtSetValues (form, av, ac); - XtManageChild (form); - - focus_fuckus (dialog); -} - - -static void -make_screenhack_dialog (parent, hacks) - Widget parent; - char **hacks; -{ - char buf [255]; - Arg av[10]; - int ac; - char *label; - XmString xm_label = 0; - XmString new_xm_label; - - create_demo_dialog (parent); - ac = 0; - XtSetArg (av [ac], XmNlabelString, &xm_label); ac++; - XtGetValues (label1, av, ac); - XmStringGetLtoR (xm_label, XmSTRING_DEFAULT_CHARSET, &label); - if (!strcmp (label, XtName (label1))) - strcpy (buf, "ERROR: RESOURCES ARE NOT INSTALLED CORRECTLY"); - else - sprintf (buf, label, screensaver_version); - new_xm_label = XmStringCreate (buf, XmSTRING_DEFAULT_CHARSET); - ac = 0; - XtSetArg (av [ac], XmNlabelString, new_xm_label); ac++; - XtSetValues (label1, av, ac); - XmStringFree (new_xm_label); - XtFree (label); - - XtAddCallback (demo_list, XmNbrowseSelectionCallback, select_cb, - (XtPointer) hacks); - XtAddCallback (demo_list, XmNdefaultActionCallback, select_cb, - (XtPointer) hacks); - - XtAddCallback (text_line, XmNactivateCallback, text_cb, 0); - XtAddCallback (next, XmNactivateCallback, next_cb, 0); - XtAddCallback (prev, XmNactivateCallback, prev_cb, 0); - XtAddCallback (done, XmNactivateCallback, done_cb, 0); - XtAddCallback (restart, XmNactivateCallback, restart_cb, 0); - XtAddCallback (edit, XmNactivateCallback, edit_cb, (XtPointer) parent); - - for (; *hacks; hacks++) - { - XmString xmstr = XmStringCreate (*hacks, XmSTRING_DEFAULT_CHARSET); - XmListAddItem (demo_list, xmstr, 0); - /* XmListSelectPos (widget, i, False); */ - XmStringFree (xmstr); - } - -#if 0 - /* Dialogs that have scroll-lists don't obey maxWidth! Fuck!! Hack it. */ - ac = 0; - XtSetArg (av [ac], XmNmaxWidth, &max_w); ac++; - XtGetValues (demo_dialog, av, ac); /* great, this SEGVs */ -#endif - - pop_up_dialog_box (demo_dialog, demo_form, 0); -} - - -/* the Screensaver Parameters dialog */ - -static struct resources { - int timeout, cycle, secs, ticks, lock_time, passwd_time; - int verb, cmap, fade, unfade, lock_p; -} res; - - -extern int parse_time (); - -static void -hack_time_cb (dpy, line, store, sec_p) - Display *dpy; - char *line; - int *store; - Bool sec_p; -{ - if (*line) - { - int value; - value = parse_time (line, sec_p, True); - if (value < 0) - /*XBell (dpy, 0)*/; - else - *store = value; - } -} - -static void -res_sec_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - hack_time_cb (XtDisplay (button), XmTextGetString (button), - (int *) client_data, True); -} - -static void -res_min_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - hack_time_cb (XtDisplay (button), XmTextGetString (button), - (int *) client_data, False); -} - -static void -res_int_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - char *line = XmTextGetString (button); - int *store = (int *) client_data; - unsigned int value; - char c; - if (! *line) - ; - else if (sscanf (line, "%u%c", &value, &c) != 1) - XBell (XtDisplay (button), 0); - else - *store = value; -} - -static void -res_bool_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - int *store = (int *) client_data; - *store = ((XmToggleButtonCallbackStruct *) call_data)->set; -} - -static void -res_cancel_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - XtDestroyWidget (resources_dialog); - resources_dialog = 0; - raise_screenhack_dialog (); -} - - -static void -res_done_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - res_cancel_cb (button, client_data, call_data); - - /* Throttle the timeouts to minimum sane values. */ - if (res.timeout < 5) res.timeout = 5; - if (res.cycle < 2) res.cycle = 2; - if (res.passwd_time < 10) res.passwd_time = 10; - - timeout = res.timeout * 1000; - cycle = res.cycle * 1000; - lock_timeout = res.lock_time * 1000; -#ifndef NO_LOCKING - passwd_timeout = res.passwd_time * 1000; -#endif - fade_seconds = res.secs; - fade_ticks = res.ticks; - verbose_p = res.verb; - install_cmap_p = res.cmap; - fade_p = res.fade; - unfade_p = res.unfade; - lock_p = res.lock_p; - -#if defined(HAVE_MIT_SAVER_EXTENSION) || defined(HAVE_SGI_SAVER_EXTENSION) - if (use_mit_saver_extension || use_sgi_saver_extension) - { - /* Need to set the server timeout to the new one the user has picked. - */ - int server_timeout, server_interval, prefer_blank, allow_exp; - XGetScreenSaver (dpy, &server_timeout, &server_interval, - &prefer_blank, &allow_exp); - if (server_timeout != (timeout / 1000)) - { - server_timeout = (timeout / 1000); - if (verbose_p) - fprintf (stderr, - "%s: configuring server for saver timeout of %d seconds.\n", - progname, server_timeout); - /* Leave all other parameters the same. */ - XSetScreenSaver (dpy, server_timeout, server_interval, - prefer_blank, allow_exp); - } - } -#endif /* HAVE_MIT_SAVER_EXTENSION || HAVE_SGI_SAVER_EXTENSION */ -} - - -static void -make_resources_dialog (parent) - Widget parent; -{ - Arg av[10]; - int ac; - - create_resources_dialog (parent); - - XtAddCallback (res_done, XmNactivateCallback, res_done_cb, 0); - XtAddCallback (res_cancel, XmNactivateCallback, res_cancel_cb, 0); - -#define CB(widget,type,slot) \ - XtAddCallback ((widget), XmNvalueChangedCallback, (type), \ - (XtPointer) (slot)) - CB (timeout_text, res_min_cb, &res.timeout); - CB (cycle_text, res_min_cb, &res.cycle); - CB (fade_text, res_sec_cb, &res.secs); - CB (ticks_text, res_int_cb, &res.ticks); - CB (lock_time_text, res_min_cb, &res.lock_time); - CB (passwd_time_text, res_sec_cb, &res.passwd_time); - CB (verbose_toggle, res_bool_cb, &res.verb); - CB (cmap_toggle, res_bool_cb, &res.cmap); - CB (fade_toggle, res_bool_cb, &res.fade); - CB (unfade_toggle, res_bool_cb, &res.unfade); - CB (lock_toggle, res_bool_cb, &res.lock_p); -#undef CB - ac = 0; - XtSetArg (av[ac], XmNsensitive, False); ac++; - - if (locking_disabled_p) - { - XtSetValues (passwd_time_text, av, ac); - XtSetValues (lock_time_text, av, ac); - XtSetValues (lock_toggle, av, ac); - } - if (CellsOfScreen (XtScreen (parent)) <= 2) - { - XtSetValues (fade_text, av, ac); - XtSetValues (ticks_text, av, ac); - XtSetValues (cmap_toggle, av, ac); - XtSetValues (fade_toggle, av, ac); - XtSetValues (unfade_toggle, av, ac); - } -} - - -static void -fmt_time (buf, s, min_p) - char *buf; - unsigned int s; - int min_p; -{ - unsigned int h = 0, m = 0; - if (s >= 60) - { - m += (s / 60); - s %= 60; - } - if (m >= 60) - { - h += (m / 60); - m %= 60; - } -/* - if (min_p && h == 0 && s == 0) - sprintf (buf, "%u", m); - else if (!min_p && h == 0 && m == 0) - sprintf (buf, "%u", s); - else - if (h == 0) - sprintf (buf, "%u:%02u", m, s); - else -*/ - sprintf (buf, "%u:%02u:%02u", h, m, s); -} - -static void -pop_resources_dialog () -{ - char buf [100]; - - res.timeout = timeout / 1000; - res.cycle = cycle / 1000; - res.lock_time = lock_timeout / 1000; -#ifndef NO_LOCKING - res.passwd_time = passwd_timeout / 1000; -#endif - res.secs = fade_seconds; - res.ticks = fade_ticks; - res.verb = verbose_p; - res.cmap = install_cmap_p; - res.fade = fade_p; - res.unfade = unfade_p; - res.lock_p = (lock_p && !locking_disabled_p); - - fmt_time (buf, res.timeout, 1); XmTextSetString (timeout_text, buf); - fmt_time (buf, res.cycle, 1); XmTextSetString (cycle_text, buf); - fmt_time (buf, res.lock_time, 1); XmTextSetString (lock_time_text, buf); - fmt_time (buf, res.passwd_time, 0); XmTextSetString (passwd_time_text, buf); - fmt_time (buf, res.secs, 0); XmTextSetString (fade_text, buf); - sprintf (buf, "%u", res.ticks); XmTextSetString (ticks_text, buf); - - XmToggleButtonSetState (verbose_toggle, res.verb, True); - XmToggleButtonSetState (cmap_toggle, res.cmap, True); - XmToggleButtonSetState (fade_toggle, res.fade, True); - XmToggleButtonSetState (unfade_toggle, res.unfade, True); - XmToggleButtonSetState (lock_toggle, res.lock_p, True); - - pop_up_dialog_box (resources_dialog, resources_form, 1); -} - - -/* The code on this page isn't actually Motif-specific */ - -Bool dbox_up_p = False; -Bool demo_mode_p = False; - -extern XtAppContext app; -extern Widget toplevel_shell; -extern Bool use_xidle_extension; -extern Bool use_mit_saver_extension; -extern Bool use_sgi_saver_extension; -extern Time notice_events_timeout; - -extern char **screenhacks; -extern char *demo_hack; - -extern void notice_events_timer P((XtPointer closure, XtIntervalId *timer)); -extern Bool handle_clientmessage P((/*XEvent *, Bool*/)); - -void -demo_mode () -{ - dbox_up_p = True; - initialize_screensaver_window (); - raise_window (True, False); - make_screenhack_dialog (toplevel_shell, screenhacks); - while (demo_mode_p) - { - XEvent event; - XtAppNextEvent (app, &event); - switch (event.xany.type) - { - case 0: /* synthetic "timeout" event */ - break; - - case ClientMessage: - handle_clientmessage (&event, False); - break; - - case CreateNotify: - if (!use_xidle_extension && - !use_mit_saver_extension && - !use_sgi_saver_extension) - { - XtAppAddTimeOut (app, notice_events_timeout, notice_events_timer, - (XtPointer) event.xcreatewindow.window); -#ifdef DEBUG_TIMERS - if (verbose_p) - printf ("%s: starting notice_events_timer for 0x%X (%lu)\n", - progname, - (unsigned int) event.xcreatewindow.window, - notice_events_timeout); -#endif /* DEBUG_TIMERS */ - } - break; - - case ButtonPress: - case ButtonRelease: - if (!XtWindowToWidget (dpy, event.xbutton.window)) - raise_screenhack_dialog (); - /* fall through */ - - default: -#ifdef HAVE_MIT_SAVER_EXTENSION - if (event.type == mit_saver_ext_event_number) - { - /* Get the "real" server window out of the way as soon - as possible. */ - if (server_mit_saver_window && - window_exists_p (dpy, server_mit_saver_window)) - XUnmapWindow (dpy, server_mit_saver_window); - } - else -#endif /* HAVE_MIT_SAVER_EXTENSION */ - - XtDispatchEvent (&event); - break; - } - } - destroy_screenhack_dialogs (); - initialize_screensaver_window (); - unblank_screen (); -} - -static void -demo_mode_hack (hack) - char *hack; -{ - if (! demo_mode_p) abort (); - kill_screenhack (); - if (! demo_hack) - blank_screen (); - demo_hack = hack; - spawn_screenhack (False); - /* raise_screenhack_dialog(); */ -} - -static void -demo_mode_done () -{ - kill_screenhack (); - if (demo_hack) - unblank_screen (); - demo_mode_p = False; - dbox_up_p = False; - demo_hack = 0; -} diff --git a/driver/dialogs.c b/driver/dialogs.c deleted file mode 100644 index 1fe9a45d..00000000 --- a/driver/dialogs.c +++ /dev/null @@ -1,676 +0,0 @@ -/* xscreensaver, Copyright (c) 1993-1996 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* The code in this file started off its life as the output of XDesigner, - but I've since hacked it by hand... It's a mess, avert your eyes. - */ - - -#if !__STDC__ -# define _NO_PROTO -#endif - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -extern Visual *visual; -extern int visual_depth; -extern Colormap cmap; - - -Widget passwd_dialog; -Widget passwd_form; -Widget roger_label; -Widget passwd_label1; -Widget passwd_label3; -Widget passwd_text; -Widget passwd_done; -Widget passwd_cancel; - -Widget resources_dialog; -Widget resources_form; -Widget timeout_text; -Widget cycle_text; -Widget fade_text; -Widget ticks_text; -Widget lock_time_text; -Widget passwd_time_text; -Widget verbose_toggle; -Widget cmap_toggle; -Widget fade_toggle; -Widget unfade_toggle; -Widget lock_toggle; -Widget res_done; -Widget res_cancel; - -Widget demo_dialog; -Widget demo_form; -Widget label1; -Widget label2; -Widget text_area; -Widget demo_list; -Widget text_line; -Widget vline; -Widget next; -Widget prev; -Widget edit; -Widget done; -Widget restart; -Widget spacer; - - -void -create_passwd_dialog( parent ) -Widget parent; -{ - Widget shell; - Widget form1; - Widget roger; - Widget dialog; - Widget form2; - Widget label1, label2, label3; - Widget text; - Widget ok, cancel; - Widget w; - - shell = XmCreateDialogShell (parent, "passwdDialog", 0, 0); - - form1 = XmCreateForm (shell, "form", 0, 0); - - roger = XmCreateDrawnButton (form1, "rogerLabel", 0, 0); - - dialog = XmCreateSelectionBox (form1, "passwdForm", 0, 0); - - form2 = XmCreateForm ( dialog, "form", 0, 0); - label1 = XmCreateLabel ( form2, "passwdLabel1", 0, 0); - label2 = XmCreateLabel ( form2, "passwdLabel2", 0, 0); - label3 = XmCreateLabel ( form2, "passwdLabel3", 0, 0); - - text = XmSelectionBoxGetChild (dialog, XmDIALOG_TEXT); - ok = XmSelectionBoxGetChild (dialog, XmDIALOG_OK_BUTTON); - cancel = XmSelectionBoxGetChild (dialog, XmDIALOG_CANCEL_BUTTON); - - w = XmSelectionBoxGetChild (dialog, XmDIALOG_LIST_LABEL); - if (w) XtUnmanageChild (w); - w = XmSelectionBoxGetChild (dialog, XmDIALOG_LIST); - if (w) XtUnmanageChild (XtParent(w)); - w = XmSelectionBoxGetChild (dialog, XmDIALOG_SELECTION_LABEL); - if (w) XtUnmanageChild (w); - w = XmSelectionBoxGetChild (dialog, XmDIALOG_SEPARATOR); - if (w) XtUnmanageChild (w); - w = XmSelectionBoxGetChild (dialog, XmDIALOG_APPLY_BUTTON); - if (w) XtUnmanageChild (w); - w = XmSelectionBoxGetChild (dialog, XmDIALOG_HELP_BUTTON); - if (w) XtUnmanageChild (w); - - XtVaSetValues(label1, - XmNtopAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_FORM, - XmNrightAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_NONE, - 0); - XtVaSetValues(label2, - XmNtopAttachment, XmATTACH_WIDGET, - XmNtopWidget, label1, - XmNleftAttachment, XmATTACH_FORM, - XmNrightAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_NONE, - 0); - XtVaSetValues(label3, - XmNtopAttachment, XmATTACH_WIDGET, - XmNtopWidget, label2, - XmNleftAttachment, XmATTACH_FORM, - XmNrightAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_FORM, - 0); - - XtVaSetValues(roger, - XmNsensitive, FALSE, - XmNtopAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_FORM, - XmNrightAttachment, XmATTACH_NONE, - XmNbottomAttachment, XmATTACH_FORM, - 0); - XtVaSetValues(dialog, - XmNtopAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_WIDGET, - XmNleftWidget, roger, - XmNrightAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_FORM, - 0); - - XtManageChild(label1); - XtManageChild(label2); - XtManageChild(label3); - - XtManageChild(form2); - XtManageChild(text); - XtManageChild(ok); - XtManageChild(cancel); - - XtManageChild(roger); - XtManageChild(dialog); - - { - Dimension w = 0, h = 0; - XtRealizeWidget(form1); - XtVaGetValues(roger, XmNwidth, &w, XmNheight, &h, 0); - if (w == h) - ; - else if (w > h) - XtVaSetValues(roger, XmNwidth, w, XmNheight, w, 0); - else - XtVaSetValues(roger, XmNwidth, h, XmNheight, h, 0); - } - - passwd_dialog = shell; - passwd_form = form1; - roger_label = roger; - passwd_label1 = label1; - passwd_label3 = label3; - passwd_text = text; - passwd_done = ok; - passwd_cancel = cancel; -} - - - -void -create_resources_dialog( parent ) -Widget parent; -{ - Widget children[22]; /* Children to manage */ - Arg al[64]; /* Arg List */ - register int ac = 0; /* Arg Count */ - Widget widget12; - Widget widget13; - Widget widget14; - Widget widget15; - Widget widget16; - Widget widget17; - Widget widget18; - Widget widget48; - Widget widget29; - - Widget real_dialog; - Widget w; - - - ac = 0; - XtSetArg (al[ac], XmNvisual, visual); ac++; - XtSetArg (al[ac], XmNcolormap, cmap); ac++; - XtSetArg (al[ac], XmNdepth, visual_depth); ac++; - - real_dialog = XmCreatePromptDialog (parent, "resourcesForm", al, ac); - resources_dialog = XtParent(real_dialog); - - w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_SEPARATOR); - if (w) XtUnmanageChild (w); - w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_TEXT); - if (w) XtUnmanageChild (w); - w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_SELECTION_LABEL); - if (w) XtUnmanageChild (w); - w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_HELP_BUTTON); - if (w) XtUnmanageChild (w); - - ac = 0; - XtSetArg (al [ac], XmNtopAttachment, XmATTACH_FORM); ac++; - XtSetArg (al [ac], XmNbottomAttachment, XmATTACH_FORM); ac++; - XtSetArg (al [ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg (al [ac], XmNrightAttachment, XmATTACH_FORM); ac++; - resources_form = XmCreateForm (real_dialog, "form", al, ac); - XtManageChild (resources_form); - - ac = 0; - - widget12 = XmCreateLabel ( resources_form, "resourcesLabel", al, ac ); - widget13 = XmCreateSeparator ( resources_form, "widget13", al, ac ); - XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++; - widget14 = XmCreateLabel ( resources_form, "timeoutLabel", al, ac ); - ac = 0; - XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++; - widget15 = XmCreateLabel ( resources_form, "cycleLabel", al, ac ); - ac = 0; - XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++; - widget16 = XmCreateLabel ( resources_form, "fadeSecondsLabel", al, ac ); - ac = 0; - XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++; - widget17 = XmCreateLabel ( resources_form, "fadeTicksLabel", al, ac ); - ac = 0; - XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++; - widget18 = XmCreateLabel ( resources_form, "lockLabel", al, ac ); - ac = 0; - XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++; - widget48 = XmCreateLabel ( resources_form, "passwdLabel", al, ac ); - ac = 0; - timeout_text = XmCreateTextField ( resources_form, "timeoutText", al, ac ); - cycle_text = XmCreateTextField ( resources_form, "cycleText", al, ac ); - fade_text = XmCreateTextField ( resources_form, "fadeSecondsText", al, ac ); - ticks_text = XmCreateTextField ( resources_form, "fadeTicksText", al, ac ); - lock_time_text = XmCreateTextField ( resources_form, "passwdText", al, ac ); - passwd_time_text = XmCreateTextField ( resources_form, "lockText", al, ac ); - XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++; - verbose_toggle = XmCreateToggleButton ( resources_form, "verboseToggle", al, ac ); - ac = 0; - XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++; - cmap_toggle = XmCreateToggleButton ( resources_form, "cmapToggle", al, ac ); - ac = 0; - XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++; - fade_toggle = XmCreateToggleButton ( resources_form, "fadeToggle", al, ac ); - ac = 0; - XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++; - unfade_toggle = XmCreateToggleButton ( resources_form, "unfadeToggle", al, ac ); - ac = 0; - XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++; - lock_toggle = XmCreateToggleButton ( resources_form, "lockToggle", al, ac ); - ac = 0; - widget29 = XmCreateSeparator ( resources_form, "widget29", al, ac ); - - res_done = XmSelectionBoxGetChild (real_dialog, XmDIALOG_OK_BUTTON); - res_cancel = XmSelectionBoxGetChild (real_dialog, XmDIALOG_CANCEL_BUTTON); - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNtopOffset, 4); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftOffset, 4); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNrightOffset, 4); ac++; - XtSetValues ( widget12,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 4); ac++; - XtSetArg(al[ac], XmNtopWidget, widget12); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftOffset, 0); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNrightOffset, 0); ac++; - XtSetValues ( widget13,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 4); ac++; - XtSetArg(al[ac], XmNtopWidget, widget13); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNbottomWidget, timeout_text); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftOffset, 20); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNrightOffset, 4); ac++; - XtSetArg(al[ac], XmNrightWidget, timeout_text); ac++; - XtSetValues ( widget14,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 0); ac++; - XtSetArg(al[ac], XmNtopWidget, cycle_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNbottomOffset, 0); ac++; - XtSetArg(al[ac], XmNbottomWidget, cycle_text); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftOffset, 20); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNrightOffset, 4); ac++; - XtSetArg(al[ac], XmNrightWidget, cycle_text); ac++; - XtSetValues ( widget15,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 0); ac++; - XtSetArg(al[ac], XmNtopWidget, fade_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNbottomOffset, 0); ac++; - XtSetArg(al[ac], XmNbottomWidget, fade_text); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftOffset, 20); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNrightOffset, 4); ac++; - XtSetArg(al[ac], XmNrightWidget, fade_text); ac++; - XtSetValues ( widget16,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 0); ac++; - XtSetArg(al[ac], XmNtopWidget, ticks_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNbottomOffset, 0); ac++; - XtSetArg(al[ac], XmNbottomWidget, ticks_text); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftOffset, 20); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNrightOffset, 4); ac++; - XtSetArg(al[ac], XmNrightWidget, ticks_text); ac++; - XtSetValues ( widget17,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 0); ac++; - XtSetArg(al[ac], XmNtopWidget, lock_time_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNbottomOffset, 0); ac++; - XtSetArg(al[ac], XmNbottomWidget, lock_time_text); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftOffset, 19); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNrightOffset, 4); ac++; - XtSetArg(al[ac], XmNrightWidget, lock_time_text); ac++; - XtSetValues ( widget18,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 0); ac++; - XtSetArg(al[ac], XmNtopWidget, passwd_time_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNbottomOffset, 0); ac++; - XtSetArg(al[ac], XmNbottomWidget, passwd_time_text); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftOffset, 14); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNrightOffset, 4); ac++; - XtSetArg(al[ac], XmNrightWidget, passwd_time_text); ac++; - XtSetValues ( widget48,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 4); ac++; - XtSetArg(al[ac], XmNtopWidget, widget13); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftOffset, 141); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++; - XtSetValues ( timeout_text,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 2); ac++; - XtSetArg(al[ac], XmNtopWidget, timeout_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNleftOffset, 0); ac++; - XtSetArg(al[ac], XmNleftWidget, timeout_text); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++; - XtSetValues ( cycle_text,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 2); ac++; - XtSetArg(al[ac], XmNtopWidget, cycle_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNleftOffset, 0); ac++; - XtSetArg(al[ac], XmNleftWidget, cycle_text); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++; - XtSetValues ( fade_text,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 2); ac++; - XtSetArg(al[ac], XmNtopWidget, fade_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNleftOffset, 0); ac++; - XtSetArg(al[ac], XmNleftWidget, fade_text); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++; - XtSetValues ( ticks_text,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 2); ac++; - XtSetArg(al[ac], XmNtopWidget, ticks_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNleftOffset, 0); ac++; - XtSetArg(al[ac], XmNleftWidget, ticks_text); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++; - XtSetValues ( lock_time_text,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 4); ac++; - XtSetArg(al[ac], XmNtopWidget, lock_time_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNleftOffset, 0); ac++; - XtSetArg(al[ac], XmNleftWidget, lock_time_text); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++; - XtSetValues ( passwd_time_text,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 4); ac++; - XtSetArg(al[ac], XmNtopWidget, widget13); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNbottomOffset, 0); ac++; - XtSetArg(al[ac], XmNbottomWidget, timeout_text); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNleftOffset, 20); ac++; - XtSetArg(al[ac], XmNleftWidget, timeout_text); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNrightOffset, 20); ac++; - XtSetValues ( verbose_toggle,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 0); ac++; - XtSetArg(al[ac], XmNtopWidget, cycle_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNbottomOffset, 0); ac++; - XtSetArg(al[ac], XmNbottomWidget, cycle_text); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNleftOffset, 0); ac++; - XtSetArg(al[ac], XmNleftWidget, verbose_toggle); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNrightOffset, 20); ac++; - XtSetValues ( cmap_toggle,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 0); ac++; - XtSetArg(al[ac], XmNtopWidget, fade_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNbottomOffset, 0); ac++; - XtSetArg(al[ac], XmNbottomWidget, fade_text); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNleftOffset, 0); ac++; - XtSetArg(al[ac], XmNleftWidget, cmap_toggle); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNrightOffset, 20); ac++; - XtSetValues ( fade_toggle,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 0); ac++; - XtSetArg(al[ac], XmNtopWidget, ticks_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNbottomOffset, 0); ac++; - XtSetArg(al[ac], XmNbottomWidget, ticks_text); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNleftOffset, 0); ac++; - XtSetArg(al[ac], XmNleftWidget, fade_toggle); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNrightOffset, 20); ac++; - XtSetValues ( unfade_toggle,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 0); ac++; - XtSetArg(al[ac], XmNtopWidget, lock_time_text); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNbottomOffset, 0); ac++; - XtSetArg(al[ac], XmNbottomWidget, lock_time_text); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++; - XtSetArg(al[ac], XmNleftOffset, 0); ac++; - XtSetArg(al[ac], XmNleftWidget, unfade_toggle); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNrightOffset, 20); ac++; - XtSetValues ( lock_toggle,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 0); ac++; - XtSetArg(al[ac], XmNtopWidget, passwd_time_text); ac++; - - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNbottomOffset, 4); ac++; - - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; - XtSetValues ( widget29,al, ac ); - ac = 0; - - - - ac = 0; - children[ac++] = widget12; - children[ac++] = widget13; - children[ac++] = widget14; - children[ac++] = widget15; - children[ac++] = widget16; - children[ac++] = widget17; - children[ac++] = widget18; - children[ac++] = widget48; - children[ac++] = timeout_text; - children[ac++] = cycle_text; - children[ac++] = fade_text; - children[ac++] = ticks_text; - children[ac++] = lock_time_text; - children[ac++] = passwd_time_text; - children[ac++] = verbose_toggle; - children[ac++] = cmap_toggle; - children[ac++] = fade_toggle; - children[ac++] = unfade_toggle; - children[ac++] = lock_toggle; - children[ac++] = widget29; - - XtManageChildren(children, ac); - ac = 0; - - resources_form = real_dialog; -} - - - -void -create_demo_dialog( parent ) -Widget parent; -{ - Widget children[11]; /* Children to manage */ - Arg al[64]; /* Arg List */ - register int ac = 0; /* Arg Count */ - XmString xmstrings[15]; /* temporary storage for XmStrings */ - - Widget real_dialog; - Widget w; - - - ac = 0; - XtSetArg (al[ac], XmNvisual, visual); ac++; - XtSetArg (al[ac], XmNcolormap, cmap); ac++; - XtSetArg (al[ac], XmNdepth, visual_depth); ac++; - - - real_dialog = XmCreatePromptDialog (parent, "demoForm", al, ac); - demo_dialog = XtParent(real_dialog); - - w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_SEPARATOR); - if (w) XtUnmanageChild (w); - w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_TEXT); - if (w) XtUnmanageChild (w); - w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_SELECTION_LABEL); - if (w) XtUnmanageChild (w); - w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_OK_BUTTON); - if (w) XtUnmanageChild (w); - w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_CANCEL_BUTTON); - if (w) XtUnmanageChild (w); - w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_HELP_BUTTON); - if (w) XtUnmanageChild (w); - - ac = 0; - XtSetArg (al [ac], XmNtopAttachment, XmATTACH_FORM); ac++; - XtSetArg (al [ac], XmNbottomAttachment, XmATTACH_FORM); ac++; - XtSetArg (al [ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg (al [ac], XmNrightAttachment, XmATTACH_FORM); ac++; - demo_form = XmCreateForm (real_dialog, "form", al, ac); - XtManageChild (demo_form); - - label1 = XmCreateLabel ( demo_form, "label1", al, ac ); - label2 = XmCreateLabel ( demo_form, "label2", al, ac ); - demo_list = XmCreateScrolledList ( demo_form, "demoList", al, ac ); - text_area = XtParent ( demo_list ); - - ac = 0; - text_line = XmSelectionBoxGetChild (real_dialog, XmDIALOG_TEXT); - XtManageChild(text_line); - - next = XmCreatePushButton ( real_dialog, "next", al, ac ); - prev = XmCreatePushButton ( real_dialog, "prev", al, ac ); - edit = XmCreatePushButton ( real_dialog, "edit", al, ac ); - done = XmCreatePushButton ( real_dialog, "done", al, ac ); - restart = XmCreatePushButton ( real_dialog, "restart", al, ac ); - XtManageChild(next); - XtManageChild(prev); - XtManageChild(edit); - XtManageChild(done); - XtManageChild(restart); - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNtopOffset, 5); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftOffset, 4); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNrightOffset, 4); ac++; - XtSetValues ( label1,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 4); ac++; - XtSetArg(al[ac], XmNtopWidget, label1); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftOffset, 4); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNrightOffset, 4); ac++; - XtSetValues ( label2,al, ac ); - ac = 0; - - XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; - XtSetArg(al[ac], XmNtopOffset, 4); ac++; - XtSetArg(al[ac], XmNtopWidget, label2); ac++; - XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNleftOffset, 4); ac++; - XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; - XtSetArg(al[ac], XmNrightOffset, 4); ac++; - XtSetValues ( text_area,al, ac ); - - XtManageChild(demo_list); - XtManageChild(label1); - XtManageChild(label2); - - demo_form = real_dialog; -} diff --git a/driver/dialogs.xd b/driver/dialogs.xd deleted file mode 100644 index ad1f6da0..00000000 --- a/driver/dialogs.xd +++ /dev/null @@ -1,569 +0,0 @@ -module 'XScreenSaver' -applicationName = 'XScreenSaver'; -generateNameC = 'dialogs.c'; -generateNameUIL = ''; -generateNameResDB = 'dialogs.ad'; -generateUidFile = ''; -generateMask = 1507557; -useMask = 1; -value -object 'passwd_dialog' : XmDialogShell { - arguments { - name = 'passwdDialog'; - XmNtitle= 'XScreenSaver'; - XmNallowShellResize= true; - }; -object 'passwd_form' : XmForm { - arguments { - name = 'passwdForm'; - XmNautoUnmanage= false; - }; -object 'roger_label' : XmDrawnButton { - arguments { - name = 'rogerLabel'; - XmNwidth= 150; - }; -}; -object 'passwd_label1' : XmLabel { - arguments { - name = 'passwdLabel1'; - XmNlabelString= 'XScreenSaver %s'; - XmNalignment= 0; - }; -}; -object '' : XmLabel { - arguments { - name = 'passwdLabel2'; - XmNlabelString= 'This display is locked.'; - XmNalignment= 0; - }; -}; -object 'passwd_label3' : XmLabel { - arguments { - name = 'passwdLabel3'; - XmNlabelString= 'Please type %s\'s password to unlock it.'; - XmNalignment= 0; - }; -}; -object 'passwd_text' : XmTextField { - arguments { - name = 'passwdText'; - }; -}; -object '' : XmSeparator { - arguments { - }; -}; -object 'passwd_done' : XmPushButton { - arguments { - name = 'passwdDone'; - XmNlabelString= 'Done'; - }; -}; -object 'passwd_cancel' : XmPushButton { - arguments { - name = 'passwdCancel'; - XmNlabelString= 'Cancel'; - }; -}; - attachments { - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 1 0 4; - XmNbottomAttachment = 1 0 4; - XmNtopAttachment = 1 0 4; - }; - attachment { - XmNrightAttachment = 1 0 4; - XmNleftAttachment = 3 1 4; - XmNbottomAttachment = 3 3 4; - XmNtopAttachment = 1 0 4; - }; - attachment { - XmNrightAttachment = 1 0 4; - XmNleftAttachment = 3 1 4; - XmNbottomAttachment = 3 4 4; - XmNtopAttachment = 0 0 0; - }; - attachment { - XmNrightAttachment = 1 0 30; - XmNleftAttachment = 3 1 4; - XmNbottomAttachment = 3 5 4; - XmNtopAttachment = 0 0 0; - }; - attachment { - XmNrightAttachment = 1 0 4; - XmNleftAttachment = 3 1 4; - XmNbottomAttachment = 3 6 4; - XmNtopAttachment = 0 0 0; - }; - attachment { - XmNrightAttachment = 1 0 0; - XmNleftAttachment = 3 1 0; - XmNbottomAttachment = 3 7 4; - XmNtopAttachment = 0 0 0; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 3 1 4; - XmNbottomAttachment = 1 0 4; - XmNtopAttachment = 0 0 0; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 3 7 4; - XmNbottomAttachment = 1 0 4; - XmNtopAttachment = 0 0 0; - }; - }; -}; -}; -object 'resources_dialog' : XmDialogShell { - arguments { - name = 'resourcesDialog'; - XmNtitle= 'XScreenSaver'; - XmNallowShellResize= true; - }; -object 'resources_form' : XmForm { - arguments { - name = 'resourcesForm'; - XmNautoUnmanage= false; - }; -object '' : XmLabel { - arguments { - name = 'resourcesLabel'; - XmNlabelString= 'XScreenSaver Parameters'; - }; -}; -object '' : XmSeparator { - arguments { - }; -}; -object '' : XmLabel { - arguments { - name = 'timeoutLabel'; - XmNlabelString= 'Timeout Minutes'; - XmNalignment= * 2; - }; -}; -object '' : XmLabel { - arguments { - name = 'cycleLabel'; - XmNlabelString= 'Cycle Seconds'; - XmNalignment= * 2; - }; -}; -object '' : XmLabel { - arguments { - name = 'fadeSecondsLabel'; - XmNlabelString= 'Fade Seconds'; - XmNalignment= * 2; - }; -}; -object '' : XmLabel { - arguments { - name = 'fadeTicksLabel'; - XmNlabelString= 'Fade Ticks'; - XmNalignment= * 2; - }; -}; -object '' : XmLabel { - arguments { - name = 'lockLabel'; - XmNlabelString= 'Lock Timeout'; - XmNalignment= * 2; - }; -}; -object '' : XmLabel { - arguments { - name = 'passwdLabel'; - XmNlabelString= 'Password Timeout'; - XmNalignment= * 2; - }; -}; -object 'timeout_text' : XmTextField { - arguments { - name = 'timeoutText'; - XmNcolumns= 5; - }; -}; -object 'cycle_text' : XmTextField { - arguments { - name = 'cycleText'; - XmNcolumns= 5; - }; -}; -object 'fade_text' : XmTextField { - arguments { - name = 'fadeSecondsText'; - XmNcolumns= 5; - }; -}; -object 'ticks_text' : XmTextField { - arguments { - name = 'fadeTicksText'; - XmNcolumns= 5; - }; -}; -object 'lock_time_text' : XmTextField { - arguments { - name = 'passwdText'; - XmNcolumns= 5; - }; -}; -object 'passwd_time_text' : XmTextField { - arguments { - name = 'lockText'; - XmNcolumns= 5; - }; -}; -object 'verbose_toggle' : XmToggleButton { - arguments { - name = 'verboseToggle'; - XmNlabelString= 'Verbose'; - XmNalignment= * 0; - }; -}; -object 'cmap_toggle' : XmToggleButton { - arguments { - name = 'cmapToggle'; - XmNlabelString= 'Install Colormap'; - XmNalignment= * 0; - }; -}; -object 'fade_toggle' : XmToggleButton { - arguments { - name = 'fadeToggle'; - XmNlabelString= 'Fade Colormap'; - XmNalignment= * 0; - }; -}; -object 'unfade_toggle' : XmToggleButton { - arguments { - name = 'unfadeToggle'; - XmNlabelString= 'Unfade Colormap'; - XmNalignment= * 0; - }; -}; -object 'lock_toggle' : XmToggleButton { - arguments { - name = 'lockToggle'; - XmNlabelString= 'Require Password'; - XmNalignment= * 0; - }; -}; -object '' : XmSeparator { - arguments { - }; -}; -object 'res_done' : XmPushButton { - arguments { - name = 'resourcesDone'; - XmNlabelString= 'Done'; - }; -}; -object 'res_cancel' : XmPushButton { - arguments { - name = 'resourcesCancel'; - XmNlabelString= 'Cancel'; - }; -}; - attachments { - attachment { - XmNrightAttachment = 1 0 4; - XmNleftAttachment = 1 0 4; - XmNtopAttachment = 1 0 4; - }; - attachment { - XmNrightAttachment = 1 0 0; - XmNleftAttachment = 1 0 0; - XmNbottomAttachment = 0 0 0; - XmNtopAttachment = 3 1 4; - }; - attachment { - XmNrightAttachment = 3 9 4; - XmNleftAttachment = 1 0 20; - XmNbottomAttachment = 4 9; - XmNtopAttachment = 3 2 4; - }; - attachment { - XmNrightAttachment = 3 10 4; - XmNleftAttachment = 1 0 20; - XmNbottomAttachment = 4 10 0; - XmNtopAttachment = 4 10 0; - }; - attachment { - XmNrightAttachment = 3 11 4; - XmNleftAttachment = 1 0 20; - XmNbottomAttachment = 4 11 0; - XmNtopAttachment = 4 11 0; - }; - attachment { - XmNrightAttachment = 3 12 4; - XmNleftAttachment = 1 0 20; - XmNbottomAttachment = 4 12 0; - XmNtopAttachment = 4 12 0; - }; - attachment { - XmNrightAttachment = 3 13 4; - XmNleftAttachment = 1 0 19; - XmNbottomAttachment = 4 13 0; - XmNtopAttachment = 4 13 0; - }; - attachment { - XmNrightAttachment = 3 14 4; - XmNleftAttachment = 1 0 14; - XmNbottomAttachment = 4 14 0; - XmNtopAttachment = 4 14 0; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 1 0 141; - XmNbottomAttachment = 0 0 0; - XmNtopAttachment = 3 2 4; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 4 9 0; - XmNbottomAttachment = 0 0 0; - XmNtopAttachment = 3 9 2; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 4 10 0; - XmNbottomAttachment = 0 0 0; - XmNtopAttachment = 3 10 2; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 4 11 0; - XmNbottomAttachment = 0 0 0; - XmNtopAttachment = 3 11 2; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 4 12 0; - XmNbottomAttachment = 0 0 0; - XmNtopAttachment = 3 12 2; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 4 13 0; - XmNbottomAttachment = 0 0 0; - XmNtopAttachment = 3 13 4; - }; - attachment { - XmNrightAttachment = 1 0 20; - XmNleftAttachment = 3 9 20; - XmNbottomAttachment = 4 9 0; - XmNtopAttachment = 3 2 4; - }; - attachment { - XmNrightAttachment = 1 0 20; - XmNleftAttachment = 4 15 0; - XmNbottomAttachment = 4 10 0; - XmNtopAttachment = 4 10 0; - }; - attachment { - XmNrightAttachment = 1 0 20; - XmNleftAttachment = 4 16 0; - XmNbottomAttachment = 4 11 0; - XmNtopAttachment = 4 11 0; - }; - attachment { - XmNrightAttachment = 1 0 20; - XmNleftAttachment = 4 17 0; - XmNbottomAttachment = 4 12 0; - XmNtopAttachment = 4 12 0; - }; - attachment { - XmNrightAttachment = 1 0 20; - XmNleftAttachment = 4 18 0; - XmNbottomAttachment = 4 13 0; - XmNtopAttachment = 4 13 0; - }; - attachment { - XmNrightAttachment = 1 0; - XmNleftAttachment = 1 0; - XmNbottomAttachment = 3 21 4; - XmNtopAttachment = 3 14 0; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 1 0 4; - XmNbottomAttachment = 1 0 4; - XmNtopAttachment = 0 0 0; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 3 21 4; - XmNbottomAttachment = 1 0 4; - XmNtopAttachment = 0 0 0; - }; - }; -}; -}; -object 'demo_dialog' : XmDialogShell { - arguments { - name = 'demoDialog'; - XmNtitle= 'XScreenSaver'; - XmNmaxWidth= 500; - XmNallowShellResize= true; - }; -object 'demo_form' : XmForm { - arguments { - name = 'demoForm'; - XmNautoUnmanage= false; - }; -object 'label1' : XmLabel { - arguments { - name = 'label1'; - XmNlabelString= 'XScreenSaver %s'; - }; -}; -object 'label2' : XmLabel { - arguments { - name = 'label2'; - XmNlabelString= 'Copyright © 1991-1994 by Jamie Zawinski '; - }; -}; -object 'text_area' : XmScrolledList { - arguments { - name = 'textArea'; - }; -object '' : XmScrollBar { - arguments { - name = 'ListhScrollBar'; - }; -}; -object '' : XmScrollBar { - arguments { - name = 'ListvScrollBar'; - }; -}; -object 'demo_list' : XmList { - arguments { - name = 'demoList'; - XmNvisibleItemCount= 10; - XmNautomaticSelection= true; - XmNlistSizePolicy= 2; - }; -}; -}; -object 'text_line' : XmTextField { - arguments { - name = 'textLine'; - }; -}; -object 'vline' : XmSeparator { - arguments { - name = 'vline'; - }; -}; -object 'next' : XmPushButton { - arguments { - name = 'next'; - XmNlabelString= 'Run Next'; - }; -}; -object 'prev' : XmPushButton { - arguments { - name = 'prev'; - XmNlabelString= 'Run Previous'; - }; -}; -object 'edit' : XmPushButton { - arguments { - name = 'edit'; - XmNlabelString= 'Edit Parameters'; - }; -}; -object 'done' : XmPushButton { - arguments { - name = 'done'; - XmNlabelString= 'Exit Demo Mode'; - }; -}; -object 'restart' : XmPushButton { - arguments { - name = 'restart'; - XmNlabelString= 'Restart Screen Saver'; - }; -}; -object 'spacer' : XmLabel { - arguments { - name = 'spacer'; - XmNlabelString= * ' '; - }; -}; - attachments { - attachment { - XmNrightAttachment = 1 0 4; - XmNleftAttachment = 1 0 4; - XmNbottomAttachment = 0 0 0; - XmNtopAttachment = 1 0 5; - }; - attachment { - XmNrightAttachment = 1 0 4; - XmNleftAttachment = 1 0 4; - XmNbottomAttachment = 0 0 0; - XmNtopAttachment = 3 1 4; - }; - attachment { - XmNrightAttachment = 1 0 4; - XmNleftAttachment = 1 0 4; - XmNbottomAttachment = 3 4 4; - XmNtopAttachment = 3 2 4; - }; - attachment { - XmNrightAttachment = 1 0 4; - XmNleftAttachment = 1 0 4; - XmNbottomAttachment = 3 5 4; - XmNtopAttachment = 0 0 0; - }; - attachment { - XmNrightAttachment = 1 0 4; - XmNleftAttachment = 1 0 4; - XmNbottomAttachment = 3 6 4; - XmNtopAttachment = 0 0 0; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 1 0 3; - XmNbottomAttachment = 1 0 4; - XmNtopAttachment = 0 0 0; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 3 6 4; - XmNbottomAttachment = 1 0 4; - XmNtopAttachment = 4 6 0; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 3 7 4; - XmNbottomAttachment = 1 0 4; - XmNtopAttachment = 4 7 0; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 3 8 4; - XmNbottomAttachment = 1 0 4; - XmNtopAttachment = 4 8 0; - }; - attachment { - XmNrightAttachment = 0 0 0; - XmNleftAttachment = 3 9 4; - XmNbottomAttachment = 1 0 4; - XmNtopAttachment = 4 9 0; - }; - attachment { - XmNrightAttachment = 1 0 4; - XmNleftAttachment = 3 10 4; - XmNbottomAttachment = 1 0 4; - XmNtopAttachment = 4 10 0; - }; - }; -}; -}; -end module; diff --git a/driver/lock.c b/driver/lock.c deleted file mode 100644 index 3fe3a1c2..00000000 --- a/driver/lock.c +++ /dev/null @@ -1,693 +0,0 @@ -/* xscreensaver, Copyright (c) 1993-1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* #### If anyone ever finishes the Athena locking code, remove this. - But until then, locking requires Motif. - */ -#if defined(NO_MOTIF) && !defined(NO_LOCKING) -# define NO_LOCKING -#endif - - -#ifndef NO_LOCKING - -#if __STDC__ -#include -#include -#include -#endif - -#ifdef HAVE_SHADOW -#include -#endif - -#include -#include - -#include - -#include "xscreensaver.h" - -extern char *screensaver_version; -extern char *progname; -extern XtAppContext app; -extern Bool verbose_p; - -#ifdef SCO -/* SCO has some kind of goofy, nonstandard security crap. This stuff was - donated by one of their victims, I mean users, Didier Poirot . - */ -# include -# include -# include -#endif - -#if !__STDC__ -# define _NO_PROTO -#endif - -#ifdef NO_MOTIF - -# include -# include -# include - -#else /* Motif */ - -# include -# include -# include - -#endif /* Motif */ - -Time passwd_timeout; - -extern Widget passwd_dialog; -extern Widget passwd_form; -extern Widget roger_label; -extern Widget passwd_label1; -extern Widget passwd_label3; -extern Widget passwd_text; -extern Widget passwd_done; -extern Widget passwd_cancel; - -extern create_passwd_dialog P((Widget)); -extern void ungrab_keyboard_and_mouse P((void)); - -static enum { pw_read, pw_ok, pw_fail, pw_cancel, pw_time } passwd_state; -static char typed_passwd [1024]; - -static char root_passwd [255]; -static char user_passwd [255]; - -#ifdef HAVE_SHADOW -# define PWTYPE struct spwd * -# define PWSLOT sp_pwdp -# define GETPW getspnam -#else -# define PWTYPE struct passwd * -# define PWSLOT pw_passwd -# define GETPW getpwnam -#endif - -#ifdef SCO -# define PRPWTYPE struct pr_passwd * -# define GETPRPW getprpwnam -#endif - -Bool -lock_init () -{ - Bool ok = True; - char *u; - PWTYPE p = GETPW ("root"); - -#ifdef SCO - PRPWTYPE prpwd = GETPRPW ("root"); - if (prpwd && *prpwd->ufld.fd_encrypt) - strcpy (root_passwd, prpwd->ufld.fd_encrypt); -#else /* !SCO */ - if (p && p->PWSLOT && p->PWSLOT[0] != '*') - strcpy (root_passwd, p->PWSLOT); -#endif /* !SCO */ - else - { - fprintf (stderr, "%s: couldn't get root's password\n", progname); - strcpy (root_passwd, "*"); - } - - /* It has been reported that getlogin() returns the wrong user id on some - very old SGI systems... */ - u = (char *) getlogin (); - if (u) - { -#ifdef SCO - prpwd = GETPRPW (u); -#endif /* SCO */ - p = GETPW (u); - } - else - { - /* getlogin() fails if not attached to a terminal; - in that case, use getpwuid(). */ - struct passwd *p2 = getpwuid (getuid ()); - u = p2->pw_name; -#ifdef HAVE_SHADOW - p = GETPW (u); -#else - p = p2; -#endif - } - -#ifdef SCO - if (prpwd && *prpwd->ufld.fd_encrypt) - strcpy (user_passwd, prpwd->ufld.fd_encrypt); -#else /* !SCO */ - if (p && p->PWSLOT && - /* p->PWSLOT[0] != '*' */ /* sensible */ - (strlen (p->PWSLOT) > 4) /* solaris */ - ) - strcpy (user_passwd, p->PWSLOT); -#endif /* !SCO */ - else - { - fprintf (stderr, "%s: couldn't get password of \"%s\"\n", progname, u); - strcpy (user_passwd, "*"); - ok = False; - } - return ok; -} - - - -#if defined(NO_MOTIF) || (XmVersion >= 1002) - /* The `destroy' bug apears to be fixed as of Motif 1.2.1, but - the `verify-callback' bug is still present. */ -# define DESTROY_WORKS -#endif - -static void -passwd_cancel_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - passwd_state = pw_cancel; -} - -static void -passwd_done_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - if (passwd_state != pw_read) return; /* already done */ - if (!strcmp ((char *) crypt (typed_passwd, user_passwd), user_passwd)) - passwd_state = pw_ok; - /* do not allow root to have empty passwd */ - else if (typed_passwd [0] && - !strcmp ((char *) crypt (typed_passwd, root_passwd), root_passwd)) - passwd_state = pw_ok; - else - passwd_state = pw_fail; -} - -#if !defined(NO_MOTIF) && defined(VERIFY_CALLBACK_WORKS) - - /* #### It looks to me like adding any modifyVerify callback causes - #### Motif 1.1.4 to free the the TextF_Value() twice. I can't see - #### the bug in the Motif source, but Purify complains, even if - #### check_passwd_cb() is a no-op. - - #### Update: Motif 1.2.1 also loses, but in a different way: it - #### writes beyond the end of a malloc'ed block in ModifyVerify(). - #### Probably this block is the text field's text. - */ - -static void -check_passwd_cb (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - XmTextVerifyCallbackStruct *vcb = (XmTextVerifyCallbackStruct *) call_data; - - if (passwd_state != pw_read) - return; - else if (vcb->reason == XmCR_ACTIVATE) - { - passwd_done_cb (0, 0, 0); - } - else if (vcb->text->length > 1) /* don't allow "paste" operations */ - { - vcb->doit = False; - } - else if (vcb->text->ptr != 0) - { - int i; - strncat (typed_passwd, vcb->text->ptr, vcb->text->length); - typed_passwd [vcb->endPos + vcb->text->length] = 0; - for (i = 0; i < vcb->text->length; i++) - vcb->text->ptr [i] = '*'; - } -} - -#else /* !VERIFY_CALLBACK_WORKS */ - -static void keypress(); -static void backspace(); -static void kill_line(); -static void done(); - -static XtActionsRec actions[] = {{"keypress", keypress}, - {"backspace", backspace}, - {"kill_line", kill_line}, - {"done", done} - }; - -#if 0 /* oh fuck, why doesn't this work? */ -static char translations[] = "\ -BackSpace: backspace()\n\ -Delete: backspace()\n\ -CtrlH: backspace()\n\ -CtrlU: kill_line()\n\ -CtrlX: kill_line()\n\ -CtrlJ: done()\n\ -CtrlM: done()\n\ -: keypress()\n\ -"; -#else -static char translations[] = ":keypress()"; -#endif - -static void -text_field_set_string (widget, text, position) - Widget widget; - char *text; - int position; -{ -#ifdef NO_MOTIF - XawTextBlock block; - block.firstPos = 0; - block.length = strlen (text); - block.ptr = text; - block.format = 0; - XawTextReplace (widget, 0, -1, &block); - XawTextSetInsertionPoint (widget, position); -#else /* !NO_MOTIF */ - XmTextFieldSetString (widget, text); - XmTextFieldSetInsertionPosition (widget, position); -#endif /* !NO_MOTIF */ -} - - -static void -keypress (w, event, argv, argc) - Widget w; - XEvent *event; - String *argv; - Cardinal *argc; -{ - int i, j; - char s [sizeof (typed_passwd)]; - int size = XLookupString ((XKeyEvent *) event, s, sizeof (s), 0, 0); - if (size != 1) return; - - /* hack because I can't get translations to dance to my tune... */ - if (*s == '\010') { backspace (w, event, argv, argc); return; } - if (*s == '\177') { backspace (w, event, argv, argc); return; } - if (*s == '\025') { kill_line (w, event, argv, argc); return; } - if (*s == '\030') { kill_line (w, event, argv, argc); return; } - if (*s == '\012') { done (w, event, argv, argc); return; } - if (*s == '\015') { done (w, event, argv, argc); return; } - - i = j = strlen (typed_passwd); - typed_passwd [i] = *s; - s [++i] = 0; - while (i--) - s [i] = '*'; - - text_field_set_string (passwd_text, s, j + 1); -} - -static void -backspace (w, event, argv, argc) - Widget w; - XEvent *event; - String *argv; - Cardinal *argc; -{ - char s [sizeof (typed_passwd)]; - int i = strlen (typed_passwd); - int j = i; - if (i == 0) - return; - typed_passwd [--i] = 0; - s [i] = 0; - while (i--) - s [i] = '*'; - - text_field_set_string (passwd_text, s, j + 1); -} - -static void -kill_line (w, event, argv, argc) - Widget w; - XEvent *event; - String *argv; - Cardinal *argc; -{ - memset (typed_passwd, 0, sizeof (typed_passwd)); - text_field_set_string (passwd_text, "", 0); -} - -static void -done (w, event, argv, argc) - Widget w; - XEvent *event; - String *argv; - Cardinal *argc; -{ - passwd_done_cb (w, 0, 0); -} - -#endif /* !VERIFY_CALLBACK_WORKS || NO_MOTIF */ - -static void -format_into_label (widget, string) - Widget widget; - char *string; -{ - char *label; - char buf [255]; - Arg av[10]; - int ac = 0; - -#ifdef NO_MOTIF - XtSetArg (av [ac], XtNlabel, &label); ac++; - XtGetValues (widget, av, ac); -#else /* Motif */ - XmString xm_label = 0; - XmString new_xm_label; - XtSetArg (av [ac], XmNlabelString, &xm_label); ac++; - XtGetValues (widget, av, ac); - XmStringGetLtoR (xm_label, XmSTRING_DEFAULT_CHARSET, &label); -#endif /* Motif */ - - if (!label || !strcmp (label, XtName (widget))) - strcpy (buf, "ERROR: RESOURCES ARE NOT INSTALLED CORRECTLY"); - else - sprintf (buf, label, string); - - ac = 0; - -#ifdef NO_MOTIF - XtSetArg (av [ac], XtNlabel, buf); ac++; -#else /* Motif */ - new_xm_label = XmStringCreate (buf, XmSTRING_DEFAULT_CHARSET); - XtSetArg (av [ac], XmNlabelString, new_xm_label); ac++; -#endif /* Motif */ - - XtSetValues (widget, av, ac); -#ifndef NO_MOTIF - XmStringFree (new_xm_label); -#endif - XtFree (label); -} - -#if __STDC__ -extern void skull (Display *, Window, GC, GC, int, int, int, int); -#endif - -static void -roger (button, client_data, call_data) - Widget button; - XtPointer client_data, call_data; -{ - Display *dpy = XtDisplay (button); - Screen *screen = XtScreen (button); - Window window = XtWindow (button); - Arg av [10]; - int ac = 0; - XGCValues gcv; - Colormap cmap; - GC draw_gc, erase_gc; - unsigned int fg, bg; - int x, y, size; - XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - if (xgwa.width > xgwa.height) size = xgwa.height; - else size = xgwa.width; - if (size > 40) size -= 30; - x = (xgwa.width - size) / 2; - y = (xgwa.height - size) / 2; - XtSetArg (av [ac], XtNforeground, &fg); ac++; - XtSetArg (av [ac], XtNbackground, &bg); ac++; - XtGetValues (button, av, ac); - /* if it's black on white, swap it cause it looks better (hack hack) */ - if (fg == BlackPixelOfScreen (screen) && bg == WhitePixelOfScreen (screen)) - fg = WhitePixelOfScreen (screen), bg = BlackPixelOfScreen (screen); - gcv.foreground = bg; - erase_gc = XCreateGC (dpy, window, GCForeground, &gcv); - gcv.foreground = fg; - draw_gc = XCreateGC (dpy, window, GCForeground, &gcv); - XFillRectangle (dpy, window, erase_gc, 0, 0, xgwa.width, xgwa.height); - skull (dpy, window, draw_gc, erase_gc, x, y, size, size); - XFreeGC (dpy, draw_gc); - XFreeGC (dpy, erase_gc); -} - -#ifdef NO_MOTIF - -static void -make_passwd_dialog (parent) - Widget parent; -{ - abort (); /* #### */ -} - -#else /* Motif */ - -static void -make_passwd_dialog (parent) - Widget parent; -{ - struct passwd *pw; - create_passwd_dialog (parent); - - XtAddCallback (passwd_done, XmNactivateCallback, passwd_done_cb, 0); - XtAddCallback (passwd_cancel, XmNactivateCallback, passwd_cancel_cb, 0); - XtAddCallback (roger_label, XmNexposeCallback, roger, 0); - -#ifdef VERIFY_CALLBACK_WORKS - XtAddCallback (passwd_text, XmNmodifyVerifyCallback, check_passwd_cb, 0); - XtAddCallback (passwd_text, XmNactivateCallback, check_passwd_cb, 0); -#else - XtAddCallback (passwd_text, XmNactivateCallback, passwd_done_cb, 0); - XtOverrideTranslations (passwd_text, XtParseTranslationTable (translations)); -#endif - -#if !defined(NO_MOTIF) && (XmVersion >= 1002) - /* The focus stuff changed around; this didn't exist in 1.1.5. */ - XtVaSetValues (passwd_form, XmNinitialFocus, passwd_text, 0); -#endif - - /* Another random thing necessary in 1.2.1 but not 1.1.5... */ - XtVaSetValues (roger_label, XmNborderWidth, 2, 0); - - pw = getpwuid (getuid ()); - format_into_label (passwd_label3, (pw->pw_name ? pw->pw_name : "???")); - format_into_label (passwd_label1, screensaver_version); -} - -#endif /* Motif */ - -extern void idle_timer (); - -static int passwd_idle_timer_tick; -static XtIntervalId id; - -static void -passwd_idle_timer (junk1, junk2) - void *junk1; - XtPointer junk2; -{ - Display *dpy = XtDisplay (passwd_form); - Window window = XtWindow (XtParent(passwd_done)); - static Dimension x, y, d, s, ss; - static GC gc = 0; - int max = passwd_timeout / 1000; - - idle_timer (junk1, junk2); - - if (passwd_idle_timer_tick == max) /* first time */ - { - Arg av [10]; - int ac = 0; - XGCValues gcv; - unsigned long fg, bg, ts, bs; - Dimension w = 0, h = 0; - XtVaGetValues(XtParent(passwd_done), - XmNwidth, &w, - 0); - XtVaGetValues(passwd_done, - XmNheight, &h, - XmNy, &y, - XtNforeground, &fg, - XtNbackground, &bg, - XmNtopShadowColor, &ts, - XmNbottomShadowColor, &bs, - 0); - - if (ts != bg && ts != fg) - fg = ts; - if (bs != bg && bs != fg) - fg = bs; - - d = h / 2; - if (d & 1) d++; - - x = (w / 2); - - x -= d/2; - y += d/2; - - gcv.foreground = fg; - if (gc) XFreeGC (dpy, gc); - gc = XCreateGC (dpy, window, GCForeground, &gcv); - s = 360*64 / (passwd_idle_timer_tick - 1); - ss = 90*64; - XFillArc (dpy, window, gc, x, y, d, d, 0, 360*64); - XSetForeground (dpy, gc, bg); - x += 1; - y += 1; - d -= 2; - } - - if (--passwd_idle_timer_tick) - { - id = XtAppAddTimeOut (app, 1000, - (XtTimerCallbackProc) passwd_idle_timer, 0); - XFillArc (dpy, window, gc, x, y, d, d, ss, s); - ss += s; - } -} - -extern void pop_up_dialog_box (); -extern int BadWindow_ehandler (); - -static Bool -pop_passwd_dialog (parent) - Widget parent; -{ - Display *dpy = XtDisplay (passwd_dialog); - Window focus; - int revert_to; - typed_passwd [0] = 0; - passwd_state = pw_read; - text_field_set_string (passwd_text, "", 0); - - XGetInputFocus (dpy, &focus, &revert_to); -#ifndef DESTROY_WORKS - /* This fucker blows up if we destroy the widget. I can't figure - out why. The second destroy phase dereferences freed memory... - So we just keep it around; but unrealizing or unmanaging it - doesn't work right either, so we hack the window directly. FMH. - */ - if (XtWindow (passwd_form)) - XMapRaised (dpy, XtWindow (passwd_dialog)); -#endif - - pop_up_dialog_box (passwd_dialog, passwd_form, 2); - XtManageChild (passwd_form); - -#if !defined(NO_MOTIF) && (XmVersion < 1002) - /* The focus stuff changed around; this causes problems in 1.2.1 - but is necessary in 1.1.5. */ - XmProcessTraversal (passwd_text, XmTRAVERSE_CURRENT); -#endif - - passwd_idle_timer_tick = passwd_timeout / 1000; - id = XtAppAddTimeOut (app, 1000, (XtTimerCallbackProc) passwd_idle_timer, 0); - - - XGrabServer (dpy); /* ############ DANGER! */ - - /* this call to ungrab used to be in main_loop() - see comment in - xscreensaver.c around line 696. */ - ungrab_keyboard_and_mouse (); - - while (passwd_state == pw_read) - { - XEvent event; - XtAppNextEvent (app, &event); - /* wait for timer event */ - if (event.xany.type == 0 && passwd_idle_timer_tick == 0) - passwd_state = pw_time; - XtDispatchEvent (&event); - } - XUngrabServer (dpy); - XSync (dpy, False); /* ###### (danger over) */ - - if (passwd_state != pw_time) - XtRemoveTimeOut (id); - - if (passwd_state != pw_ok) - { - char *lose; - switch (passwd_state) - { - case pw_time: lose = "Timed out!"; break; - case pw_fail: lose = "Sorry!"; break; - case pw_cancel: lose = 0; break; - default: abort (); - } -#ifndef NO_MOTIF - XmProcessTraversal (passwd_cancel, 0); /* turn off I-beam */ -#endif - if (lose) - { - text_field_set_string (passwd_text, lose, strlen (lose) + 1); - passwd_idle_timer_tick = 1; - id = XtAppAddTimeOut (app, 3000, - (XtTimerCallbackProc) passwd_idle_timer, 0); - while (1) - { - XEvent event; - XtAppNextEvent (app, &event); - if (event.xany.type == 0 && /* wait for timer event */ - passwd_idle_timer_tick == 0) - break; - XtDispatchEvent (&event); - } - } - } - memset (typed_passwd, 0, sizeof (typed_passwd)); - text_field_set_string (passwd_text, "", 0); - XtSetKeyboardFocus (parent, None); - -#ifdef DESTROY_WORKS - XtDestroyWidget (passwd_dialog); - passwd_dialog = 0; -#else - XUnmapWindow (XtDisplay (passwd_dialog), XtWindow (passwd_dialog)); -#endif - { - int (*old_handler) (); - old_handler = XSetErrorHandler (BadWindow_ehandler); - /* I don't understand why this doesn't refocus on the old selected - window when MWM is running in click-to-type mode. The value of - `focus' seems to be correct. */ - XSetInputFocus (dpy, focus, revert_to, CurrentTime); - XSync (dpy, False); - XSetErrorHandler (old_handler); - } - - return (passwd_state == pw_ok ? True : False); -} - -Bool -unlock_p (parent) - Widget parent; -{ - static Bool initted = False; - if (! initted) - { -#ifndef VERIFY_CALLBACK_WORKS - XtAppAddActions (app, actions, XtNumber (actions)); -#endif - passwd_dialog = 0; - initted = True; - } - if (! passwd_dialog) - make_passwd_dialog (parent); - return pop_passwd_dialog (parent); -} - -#endif /* !NO_LOCKING */ diff --git a/driver/stderr.c b/driver/stderr.c deleted file mode 100644 index 7d5fc136..00000000 --- a/driver/stderr.c +++ /dev/null @@ -1,328 +0,0 @@ -/* xscreensaver, Copyright (c) 1991-1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* stderr hackery - Why Unix Sucks, reason number 32767. - */ - -#if __STDC__ -#include -#include -#endif - -#include -#include -#include - -#include - -#include "xscreensaver.h" - -extern XtAppContext app; -extern Colormap cmap; -extern Window screensaver_window; - -extern char *get_string_resource P((char *, char *)); -extern Bool get_boolean_resource P((char *, char *)); -extern unsigned int get_pixel_resource P((char *, char *, - Display *, Colormap)); - -static char stderr_buffer [1024]; -static char *stderr_tail = 0; -static time_t stderr_last_read = 0; -static XtIntervalId stderr_popup_timer = 0; - -FILE *real_stderr = 0; -FILE *real_stdout = 0; - -static int text_x = 0; -static int text_y = 0; - -void -reset_stderr () -{ - text_x = text_y = 0; -} - -static void -print_stderr (string) - char *string; -{ - int h_border = 20; - int v_border = 20; - static int line_height; - static XFontStruct *font = 0; - static GC gc = 0; - char *head = string; - char *tail; - - /* In verbose mode, copy it to stderr as well. */ - if (verbose_p) - fprintf (real_stderr, "%s", string); - - if (! gc) - { - XGCValues gcv; - Pixel fg, bg; - char *font_name = get_string_resource ("font", "Font"); - if (!font_name) font_name = "fixed"; - font = XLoadQueryFont (dpy, font_name); - if (! font) font = XLoadQueryFont (dpy, "fixed"); - line_height = font->ascent + font->descent; - fg = get_pixel_resource ("textForeground", "Foreground", dpy, cmap); - bg = get_pixel_resource ("textBackground", "Background", dpy, cmap); - gcv.font = font->fid; - gcv.foreground = fg; - gcv.background = bg; - gc = XCreateGC (dpy, screensaver_window, - (GCFont | GCForeground | GCBackground), &gcv); - } - - for (tail = string; *tail; tail++) - { - if (*tail == '\n' || *tail == '\r') - { - int maxy = HeightOfScreen (screen) - v_border - v_border; - if (tail != head) - XDrawImageString (dpy, screensaver_window, gc, - text_x + h_border, - text_y + v_border + font->ascent, - head, tail - head); - text_x = 0; - text_y += line_height; - head = tail + 1; - if (*tail == '\r' && *head == '\n') - head++, tail++; - - if (text_y > maxy - line_height) - { -#if 0 - text_y = 0; -#else - int offset = line_height * 5; - XCopyArea (dpy, screensaver_window, screensaver_window, gc, - 0, v_border + offset, - WidthOfScreen (screen), - (HeightOfScreen (screen) - v_border - v_border - - offset), - 0, v_border); - XClearArea (dpy, screensaver_window, - 0, HeightOfScreen (screen) - v_border - offset, - WidthOfScreen (screen), offset, False); - text_y -= offset; -#endif - } - } - } - if (tail != head) - { - int direction, ascent, descent; - XCharStruct overall; - XDrawImageString (dpy, screensaver_window, gc, - text_x + h_border, text_y + v_border + font->ascent, - head, tail - head); - XTextExtents (font, tail, tail - head, - &direction, &ascent, &descent, &overall); - text_x += overall.width; - } -} - - -static void -stderr_popup_timer_fn (closure, id) - XtPointer closure; - XtIntervalId *id; -{ - char *s = stderr_buffer; - if (*s) - { - /* If too much data was printed, then something has gone haywire, - so truncate it. */ - char *trailer = "\n\n<< stderr diagnostics have been truncated >>\n\n"; - int max = sizeof (stderr_buffer) - strlen (trailer) - 5; - if (strlen (s) > max) - strcpy (s + max, trailer); - /* Now show the user. */ - print_stderr (s); - } - - stderr_tail = stderr_buffer; - stderr_popup_timer = 0; -} - - -static void -stderr_callback (closure, fd, id) - XtPointer closure; - int *fd; - XtIntervalId *id; -{ - char *s; - int left; - int size; - int read_this_time = 0; - - if (stderr_tail == 0) - stderr_tail = stderr_buffer; - - left = ((sizeof (stderr_buffer) - 2) - (stderr_tail - stderr_buffer)); - - s = stderr_tail; - *s = 0; - - /* Read as much data from the fd as we can, up to our buffer size. */ - if (left > 0) - { - while ((size = read (*fd, (void *) s, left)) > 0) - { - left -= size; - s += size; - read_this_time += size; - } - *s = 0; - } - else - { - char buf2 [1024]; - /* The buffer is full; flush the rest of it. */ - while (read (*fd, (void *) buf2, sizeof (buf2)) > 0) - ; - } - - stderr_tail = s; - stderr_last_read = time ((time_t *) 0); - - /* Now we have read some data that we would like to put up in a dialog - box. But more data may still be coming in - so don't pop up the - dialog right now, but instead, start a timer that will pop it up - a second from now. Should more data come in in the meantime, we - will be called again, and will reset that timer again. So the - dialog will only pop up when a second has elapsed with no new data - being written to stderr. - - However, if the buffer is full (meaning lots of data has been written) - then we don't reset the timer. - */ - if (read_this_time > 0) - { - if (stderr_popup_timer) - XtRemoveTimeOut (stderr_popup_timer); - - stderr_popup_timer = - XtAppAddTimeOut (app, 1 * 1000, stderr_popup_timer_fn, 0); - } -} - -void -initialize_stderr () -{ - static Boolean done = False; - int fds [2]; - int in, out; - int new_stdout, new_stderr; - int stdout_fd = 1; - int stderr_fd = 2; - int flags; - Boolean stderr_dialog_p = get_boolean_resource ("captureStderr", "Boolean"); - Boolean stdout_dialog_p = get_boolean_resource ("captureStdout", "Boolean"); - - real_stderr = stderr; - real_stdout = stdout; - - if (!stderr_dialog_p && !stdout_dialog_p) - return; - - if (done) return; - done = True; - - if (pipe (fds)) - { - perror ("error creating pipe:"); - return; - } - - in = fds [0]; - out = fds [1]; - -# ifdef O_NONBLOCK - flags = O_NONBLOCK; -# else -# ifdef O_NDELAY - flags = O_NDELAY; -# else - ERROR!! neither O_NONBLOCK nor O_NDELAY are defined. -# endif -# endif - - /* Set both sides of the pipe to nonblocking - this is so that - our reads (in stderr_callback) will terminate, and so that - out writes (in the client programs) will silently fail when - the pipe is full, instead of hosing the program. */ - if (fcntl (in, F_SETFL, flags) != 0) - { - perror ("fcntl:"); - return; - } - if (fcntl (out, F_SETFL, flags) != 0) - { - perror ("fcntl:"); - return; - } - - if (stderr_dialog_p) - { - FILE *new_stderr_file; - new_stderr = dup (stderr_fd); - if (new_stderr < 0) - { - perror ("could not dup() a stderr:"); - return; - } - if (! (new_stderr_file = fdopen (new_stderr, "w"))) - { - perror ("could not fdopen() the new stderr:"); - return; - } - real_stderr = new_stderr_file; - - close (stderr_fd); - if (dup2 (out, stderr_fd) < 0) - { - perror ("could not dup() a new stderr:"); - return; - } - } - - if (stdout_dialog_p) - { - FILE *new_stdout_file; - new_stdout = dup (stdout_fd); - if (new_stdout < 0) - { - perror ("could not dup() a stdout:"); - return; - } - if (! (new_stdout_file = fdopen (new_stdout, "w"))) - { - perror ("could not fdopen() the new stdout:"); - return; - } - real_stdout = new_stdout_file; - - close (stdout_fd); - if (dup2 (out, stdout_fd) < 0) - { - perror ("could not dup() a new stdout:"); - return; - } - } - - XtAppAddInput (app, in, (XtPointer) XtInputReadMask, stderr_callback, 0); -} diff --git a/driver/subprocs.c b/driver/subprocs.c deleted file mode 100644 index 689bbb01..00000000 --- a/driver/subprocs.c +++ /dev/null @@ -1,639 +0,0 @@ -/* xscreensaver, Copyright (c) 1991, 1992, 1993, 1995 - * Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* I would really like some error messages to show up on the screensaver window - itself when subprocs die, or when we can't launch them. If the process - produces output, but does not actually die, I would like that output to go - to the appropriate stdout/stderr as they do now. X and Unix conspire to - make this incredibly difficult. - - - Not all systems have SIGIO, so we can't necessarily be signalled when a - process dies, so we'd have to poll it with wait() or something awful like - that, which would mean the main thread waking up more often than it does - now. - - - We can't tell the difference between a process dying, and a process not - being launched correctly (for example, not being on $PATH) partly because - of the contortions we need to go through with /bin/sh in order to launch - it. - - - We can't do X stuff from signal handlers, so we'd need to set a flag, - save the error message, and notice that flag in the main thread. The - problem is that the main thread is probably sleeping, waiting for the - next X event, so to do this we'd have to register a pipe FD or something, - and write to it when something loses. - - - We could assume that any output produced by a subproc indicates an error, - and blast that across the screen. This means we'd need to use popen() - instead of forking and execing /bin/sh to run it for us. Possibly this - would work, but see comment in exec_screenhack() about getting pids. - I think we could do the "exec " trick with popen() but would SIGIO get - delivered correctly? Who knows. (We could register the pipe-FD with - Xt, and handle output on it with a callback.) - - - For the simple case of the programs not being on $PATH, we could just - search $PATH before launching the shell, but that seems hardly worth the - effort... And it's broken!! Why should we have to duplicate half the - work of the shell? (Because it's Unix, that's why! Bend over.) - */ - -#if __STDC__ -#include -#include -#include -#endif - -#include - -#include /* not used for much... */ - -#ifndef ESRCH -#include -#endif - -#include /* sys/resource.h needs this for timeval */ -#include /* for setpriority() and PRIO_PROCESS */ -#include /* for waitpid() and associated macros */ -#include /* for the signal names */ - -extern char **environ; /* why isn't this in some header file? */ - -#ifndef NO_SETUID -#include /* for getpwnam() and struct passwd */ -#include /* for getgrgid() and struct group */ -#endif /* NO_SETUID */ - -#if !defined(SIGCHLD) && defined(SIGCLD) -#define SIGCHLD SIGCLD -#endif - -#if __STDC__ -extern int putenv (/* const char * */); /* getenv() is in stdlib.h... */ -extern int kill (pid_t, int); /* signal() is in sys/signal.h... */ -#endif - -#include "yarandom.h" -#include "xscreensaver.h" - -/* this must be `sh', not whatever $SHELL happens to be. */ -char *shell; -static pid_t pid = 0; -char **screenhacks; -int screenhacks_count; -int current_hack = -1; -char *demo_hack; -int next_mode_p = 0; -Bool locking_disabled_p = False; -char *nolock_reason = 0; -int nice_inferior = 0; - -extern Bool demo_mode_p; - -static void -#if __STDC__ -exec_screenhack (char *command) -#else -exec_screenhack (command) - char *command; -#endif -{ - char *tmp; - char buf [512]; - char *av [5]; - int ac = 0; - - /* Close this fork's version of the display's fd. It will open its own. */ - close (ConnectionNumber (dpy)); - - /* I don't believe what a sorry excuse for an operating system UNIX is! - - - I want to spawn a process. - - I want to know it's pid so that I can kill it. - - I would like to receive a message when it dies of natural causes. - - I want the spawned process to have user-specified arguments. - - The *only way* to parse arguments the way the shells do is to run a - shell (or duplicate what they do, which would be a *lot* of code.) - - The *only way* to know the pid of the process is to fork() and exec() - it in the spawned side of the fork. - - But if you're running a shell to parse your arguments, this gives you - the pid of the SHELL, not the pid of the PROCESS that you're actually - interested in, which is an *inferior* of the shell. This also means - that the SIGCHLD you get applies to the shell, not its inferior. - - So, the only solution other than implementing an argument parser here - is to force the shell to exec() its inferior. What a fucking hack! - We prepend "exec " to the command string. - - (Actually, Clint Wong points out that process groups - might be used to take care of this problem; this may be worth considering - some day, except that, 1: this code works now, so why fix it, and 2: from - what I've seen in Emacs, dealing with process groups isn't especially - portable.) - */ - tmp = command; - command = (char *) malloc (strlen (tmp) + 6); - memcpy (command, "exec ", 5); - memcpy (command + 5, tmp, strlen (tmp) + 1); - - /* Invoke the shell as "/bin/sh -c 'exec prog -arg -arg ...'" */ - av [ac++] = shell; - av [ac++] = "-c"; - av [ac++] = command; - av [ac++] = 0; - - if (verbose_p) - printf ("%s: spawning \"%s\" in pid %d.\n", progname, command, getpid ()); - -#if defined(SYSV) || defined(SVR4) || defined(__hpux) - { - int old_nice = nice (0); - int n = nice_inferior - old_nice; - errno = 0; - if (nice (n) == -1 && errno != 0) - { - sprintf (buf, "%s: %snice(%d) failed", progname, - (verbose_p ? "## " : ""), n); - perror (buf); - } - } -#else /* !SYSV */ -#ifdef PRIO_PROCESS - if (setpriority (PRIO_PROCESS, getpid(), nice_inferior) != 0) - { - sprintf (buf, "%s: %ssetpriority(PRIO_PROCESS, %d, %d) failed", - progname, (verbose_p ? "## " : ""), getpid(), nice_inferior); - perror (buf); - } -#else /* !PRIO_PROCESS */ - if (nice_inferior != 0) - fprintf (stderr, - "%s: %sdon't know how to change process priority on this system.\n", - progname, (verbose_p ? "## " : "")); -#endif /* !PRIO_PROCESS */ -#endif /* !SYSV */ - - /* Now overlay the current process with /bin/sh running the command. - If this returns, it's an error. - */ - execve (av [0], av, environ); - - sprintf (buf, "%s: %sexecve() failed", progname, (verbose_p ? "## " : "")); - perror (buf); - exit (1); /* Note that this only exits a child fork. */ -} - -/* to avoid a race between the main thread and the SIGCHLD handler */ -static int killing = 0; -static Bool suspending = False; - -static char *current_hack_name P((void)); - -static void -#if __STDC__ -await_child_death (Bool killed) -#else -await_child_death (killed) - Bool killed; -#endif -{ - Bool suspended_p = False; - int status; - pid_t kid; - killing = 1; - if (! pid) - return; - - do - { - kid = waitpid (pid, &status, WUNTRACED); - } - while (kid == -1 && errno == EINTR); - - if (kid == pid) - { - if (WIFEXITED (status)) - { - int exit_status = WEXITSTATUS (status); - if (exit_status & 0x80) - exit_status |= ~0xFF; - /* One might assume that exiting with non-0 means something went - wrong. But that loser xswarm exits with the code that it was - killed with, so it *always* exits abnormally. Treat abnormal - exits as "normal" (don't mention them) if we've just killed - the subprocess. But mention them if they happen on their own. - */ - if (exit_status != 0 && (verbose_p || (! killed))) - fprintf (stderr, - "%s: %schild pid %d (%s) exited abnormally (code %d).\n", - progname, (verbose_p ? "## " : ""), - pid, current_hack_name (), exit_status); - else if (verbose_p) - printf ("%s: child pid %d (%s) exited normally.\n", - progname, pid, current_hack_name ()); - } - else if (WIFSIGNALED (status)) - { - if (!killed || WTERMSIG (status) != SIGTERM) - fprintf (stderr, - "%s: %schild pid %d (%s) terminated with signal %d!\n", - progname, (verbose_p ? "## " : ""), - pid, current_hack_name (), WTERMSIG (status)); - else if (verbose_p) - printf ("%s: child pid %d (%s) terminated with SIGTERM.\n", - progname, pid, current_hack_name ()); - } - else if (suspending) - { - suspended_p = True; - suspending = False; /* complain if it happens twice */ - } - else if (WIFSTOPPED (status)) - { - suspended_p = True; - fprintf (stderr, "%s: %schild pid %d (%s) stopped with signal %d!\n", - progname, (verbose_p ? "## " : ""), pid, - current_hack_name (), WSTOPSIG (status)); - } - else - fprintf (stderr, "%s: %schild pid %d (%s) died in a mysterious way!", - progname, (verbose_p ? "## " : ""), pid, current_hack_name()); - } - else if (kid <= 0) - fprintf (stderr, "%s: %swaitpid(%d, ...) says there are no kids? (%d)\n", - progname, (verbose_p ? "## " : ""), pid, kid); - else - fprintf (stderr, "%s: %swaitpid(%d, ...) says proc %d died, not %d?\n", - progname, (verbose_p ? "## " : ""), pid, kid, pid); - killing = 0; - if (suspended_p != True) - pid = 0; -} - -static char * -current_hack_name () -{ - static char chn [1024]; - char *hack = (demo_mode_p ? demo_hack : screenhacks [current_hack]); - int i; - for (i = 0; hack [i] != 0 && hack [i] != ' ' && hack [i] != '\t'; i++) - chn [i] = hack [i]; - chn [i] = 0; - return chn; -} - -#ifdef SIGCHLD -static void -sigchld_handler (sig) - int sig; -{ - if (killing) - return; - if (! pid) - abort (); - await_child_death (False); -} -#endif - - -void -init_sigchld () -{ -#ifdef SIGCHLD - if (((int) signal (SIGCHLD, sigchld_handler)) == -1) - { - char buf [255]; - sprintf (buf, "%s: %scouldn't catch SIGCHLD", progname, - (verbose_p ? "## " : "")); - perror (buf); - } -#endif -} - - -extern void raise_window P((Bool inhibit_fade, Bool between_hacks_p)); - -void -spawn_screenhack (first_time_p) - Bool first_time_p; -{ - raise_window (first_time_p, True); - XFlush (dpy); - - if (screenhacks_count || demo_mode_p) - { - char *hack; - pid_t forked; - char buf [255]; - int new_hack; - if (demo_mode_p) - { - hack = demo_hack; - } - else - { - if (screenhacks_count == 1) - new_hack = 0; - else if (next_mode_p == 1) - new_hack = (current_hack + 1) % screenhacks_count, - next_mode_p = 0; - else if (next_mode_p == 2) - { - new_hack = ((current_hack + screenhacks_count - 1) - % screenhacks_count); - next_mode_p = 0; - } - else - while ((new_hack = random () % screenhacks_count) == current_hack) - ; - current_hack = new_hack; - hack = screenhacks[current_hack]; - } - - switch (forked = fork ()) - { - case -1: - sprintf (buf, "%s: %scouldn't fork", - progname, (verbose_p ? "## " : "")); - perror (buf); - restore_real_vroot (); - exit (1); - case 0: - exec_screenhack (hack); /* this does not return */ - break; - default: - pid = forked; - break; - } - } -} - -void -kill_screenhack () -{ - killing = 1; - if (! pid) - return; - if (kill (pid, SIGTERM) < 0) - { - if (errno == ESRCH) - { - /* Sometimes we don't get a SIGCHLD at all! WTF? - It's a race condition. It looks to me like what's happening is - something like: a subprocess dies of natural causes. There is a - small window between when the process dies and when the SIGCHLD - is (would have been) delivered. If we happen to try to kill() - the process during that time, the kill() fails, because the - process is already dead. But! no SIGCHLD is delivered (perhaps - because the failed kill() has reset some state in the kernel?) - Anyway, if kill() says "No such process", then we have to wait() - for it anyway, because the process has already become a zombie. - I love Unix. - */ - await_child_death (False); - } - else - { - char buf [255]; - sprintf (buf, "%s: %scouldn't kill child process %d", progname, - (verbose_p ? "## " : ""), pid); - perror (buf); - } - } - else - { - if (verbose_p) - printf ("%s: killing pid %d.\n", progname, pid); - await_child_death (True); - } -} - - -void -suspend_screenhack (suspend_p) - Bool suspend_p; -{ - - suspending = suspend_p; - if (! pid) - ; - else if (kill (pid, (suspend_p ? SIGSTOP : SIGCONT)) < 0) - { - char buf [255]; - sprintf (buf, "%s: %scouldn't %s child process %d", progname, - (verbose_p ? "## " : ""), - (suspend_p ? "suspend" : "resume"), - pid); - perror (buf); - } - else if (verbose_p) - printf ("%s: %s pid %d.\n", progname, - (suspend_p ? "suspending" : "resuming"), pid); -} - - -/* Restarting the xscreensaver process from scratch. */ - -static char **saved_argv; - -void -save_argv (argc, argv) - int argc; - char **argv; -{ - saved_argv = (char **) malloc ((argc + 2) * sizeof (char *)); - saved_argv [argc] = 0; - while (argc--) - { - int i = strlen (argv [argc]) + 1; - saved_argv [argc] = (char *) malloc (i); - memcpy (saved_argv [argc], argv [argc], i); - } -} - -void -restart_process () -{ - XCloseDisplay (dpy); - fflush (stdout); - fflush (stderr); - execvp (saved_argv [0], saved_argv); - fprintf (stderr, "%s: %scould not restart process: %s (%d)\n", - progname, (verbose_p ? "## " : ""), - (errno == E2BIG ? "arglist too big" : - errno == EACCES ? "could not execute" : - errno == EFAULT ? "memory fault" : - errno == EIO ? "I/O error" : - errno == ENAMETOOLONG ? "name too long" : - errno == ELOOP ? "too many symbolic links" : - errno == ENOENT ? "file no longer exists" : - errno == ENOTDIR ? "directory no longer exists" : - errno == ENOEXEC ? "bad executable file" : - errno == ENOMEM ? "out of memory" : - "execvp() returned unknown error code"), - errno); - exit (1); -} - -void -demo_mode_restart_process () -{ - int i; - for (i = 0; saved_argv [i]; i++); - /* add the -demo switch; save_argv() left room for this. */ - saved_argv [i] = "-demo"; - saved_argv [i+1] = 0; - restart_process (); -} - -void -hack_environment () -{ - /* Store $DISPLAY into the environment, so that the $DISPLAY variable that - the spawned processes inherit is the same as the value of -display passed - in on our command line (which is not necessarily the same as what our - $DISPLAY variable is.) - */ - char *s, buf [2048]; - int i; - sprintf (buf, "DISPLAY=%s", DisplayString (dpy)); - i = strlen (buf); - s = (char *) malloc (i+1); - strncpy (s, buf, i+1); - if (putenv (s)) - abort (); -} - - -/* Change the uid/gid of the screensaver process, so that it is safe for it - to run setuid root (which it needs to do on some systems to read the - encrypted passwords from the passwd file.) - - hack_uid() is run before opening the X connection, so that XAuth works. - hack_uid_warn() is called after the connection is opened and the command - line arguments are parsed, so that the messages from hack_uid() get - printed after we know whether we're in `verbose' mode. - */ - -#ifndef NO_SETUID - -static int hack_uid_errno; -static char hack_uid_buf [255], *hack_uid_error; - -void -hack_uid () -{ - /* If we've been run as setuid or setgid to someone else (most likely root) - turn off the extra permissions so that random user-specified programs - don't get special privileges. (On some systems it might be necessary - to install this as setuid root in order to read the passwd file to - implement lock-mode...) - */ - setgid (getgid ()); - setuid (getuid ()); - - hack_uid_errno = 0; - hack_uid_error = 0; - - /* If we're being run as root (as from xdm) then switch the user id - to something safe. */ - if (getuid () == 0) - { - struct passwd *p; - /* Locking can't work when running as root, because we have no way of - knowing what the user id of the logged in user is (so we don't know - whose password to prompt for.) - */ - locking_disabled_p = True; - nolock_reason = "running as root"; - p = getpwnam ("nobody"); - if (! p) p = getpwnam ("daemon"); - if (! p) p = getpwnam ("bin"); - if (! p) p = getpwnam ("sys"); - if (! p) - { - hack_uid_error = "couldn't find safe uid; running as root."; - hack_uid_errno = -1; - } - else - { - struct group *g = getgrgid (p->pw_gid); - hack_uid_error = hack_uid_buf; - sprintf (hack_uid_error, "changing uid/gid to %s/%s (%d/%d).", - p->pw_name, (g ? g->gr_name : "???"), p->pw_uid, p->pw_gid); - - /* Change the gid to be a safe one. If we can't do that, then - print a warning. We change the gid before the uid so that we - change the gid while still root. */ - if (setgid (p->pw_gid) != 0) - { - hack_uid_errno = errno; - sprintf (hack_uid_error, "couldn't set gid to %s (%d)", - (g ? g->gr_name : "???"), p->pw_gid); - } - - /* Now change the uid to be a safe one. */ - if (setuid (p->pw_uid) != 0) - { - hack_uid_errno = errno; - sprintf (hack_uid_error, "couldn't set uid to %s (%d)", - p->pw_name, p->pw_uid); - } - } - } -#ifndef NO_LOCKING - else /* disable locking if already being run as "someone else" */ - { - struct passwd *p = getpwuid (getuid ()); - if (!p || - !strcmp (p->pw_name, "root") || - !strcmp (p->pw_name, "nobody") || - !strcmp (p->pw_name, "daemon") || - !strcmp (p->pw_name, "bin") || - !strcmp (p->pw_name, "sys")) - { - locking_disabled_p = True; - nolock_reason = hack_uid_buf; - sprintf (nolock_reason, "running as %s", p->pw_name); - } - } -#endif /* NO_LOCKING */ -} - -void -hack_uid_warn () -{ - if (! hack_uid_error) - ; - else if (hack_uid_errno == 0) - { - if (verbose_p) - printf ("%s: %s\n", progname, hack_uid_error); - } - else - { - char buf [255]; - sprintf (buf, "%s: %s%s", progname, (verbose_p ? "## " : ""), - hack_uid_error); - if (hack_uid_errno == -1) - fprintf (stderr, "%s\n", buf); - else - { - errno = hack_uid_errno; - perror (buf); - } - } -} - -#endif /* !NO_SETUID */ diff --git a/driver/timers.c b/driver/timers.c deleted file mode 100644 index 41b71258..00000000 --- a/driver/timers.c +++ /dev/null @@ -1,526 +0,0 @@ -/* xscreensaver, Copyright (c) 1991-1996 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* #define DEBUG_TIMERS */ - -#include -#include -#include -#include -#include - -#ifdef HAVE_XIDLE_EXTENSION -#include -#endif /* HAVE_XIDLE_EXTENSION */ - -#ifdef HAVE_MIT_SAVER_EXTENSION -#include -extern int mit_saver_ext_event_number; -extern Window server_mit_saver_window; -#endif /* HAVE_MIT_SAVER_EXTENSION */ - -#ifdef HAVE_SGI_SAVER_EXTENSION -#include -extern int sgi_saver_ext_event_number; -#endif /* HAVE_SGI_SAVER_EXTENSION */ - -#include "xscreensaver.h" - -#if __STDC__ -# define P(x)x -#else -#define P(x)() -#endif - -extern XtAppContext app; - -Time cycle; -Time timeout; -Time pointer_timeout; -Time notice_events_timeout; - -extern Bool use_xidle_extension; -extern Bool use_mit_saver_extension; -extern Bool use_sgi_saver_extension; -extern Bool dbox_up_p; -extern Bool locked_p; -extern Window screensaver_window; - -extern Bool handle_clientmessage P((XEvent *, Bool)); - -static time_t last_activity_time; /* for when we have no server extensions */ -static XtIntervalId timer_id = 0; -static XtIntervalId check_pointer_timer_id = 0; -XtIntervalId cycle_id = 0; -XtIntervalId lock_id = 0; - -void -idle_timer (junk1, junk2) - void *junk1; - XtPointer junk2; -{ - /* What an amazingly shitty design. Not only does Xt execute timeout - events from XtAppNextEvent() instead of from XtDispatchEvent(), but - there is no way to tell Xt to block until there is an X event OR a - timeout happens. Once your timeout proc is called, XtAppNextEvent() - still won't return until a "real" X event comes in. - - So this function pushes a stupid, gratuitous, unnecessary event back - on the event queue to force XtAppNextEvent to return Right Fucking Now. - When the code in sleep_until_idle() sees an event of type XAnyEvent, - which the server never generates, it knows that a timeout has occurred. - */ - XEvent fake_event; - fake_event.type = 0; /* XAnyEvent type, ignored. */ - fake_event.xany.display = dpy; - fake_event.xany.window = 0; - XPutBackEvent (dpy, &fake_event); -} - - -static void -#if __STDC__ -notice_events (Window window, Bool top_p) -#else -notice_events (window, top_p) - Window window; - Bool top_p; -#endif -{ - XWindowAttributes attrs; - unsigned long events; - Window root, parent, *kids; - unsigned int nkids; - - if (XtWindowToWidget (dpy, window)) - /* If it's one of ours, don't mess up its event mask. */ - return; - - if (!XQueryTree (dpy, window, &root, &parent, &kids, &nkids)) - return; - if (window == root) - top_p = False; - - XGetWindowAttributes (dpy, window, &attrs); - events = ((attrs.all_event_masks | attrs.do_not_propagate_mask) - & KeyPressMask); - - /* Select for SubstructureNotify on all windows. - Select for KeyPress on all windows that already have it selected. - Do we need to select for ButtonRelease? I don't think so. - */ - XSelectInput (dpy, window, SubstructureNotifyMask | events); - - if (top_p && verbose_p && (events & KeyPressMask)) - { - /* Only mention one window per tree (hack hack). */ - printf ("%s: selected KeyPress on 0x%lX\n", progname, - (unsigned long) window); - top_p = False; - } - - if (kids) - { - while (nkids) - notice_events (kids [--nkids], top_p); - XFree ((char *) kids); - } -} - - -int -BadWindow_ehandler (dpy, error) - Display *dpy; - XErrorEvent *error; -{ - /* When we notice a window being created, we spawn a timer that waits - 30 seconds or so, and then selects events on that window. This error - handler is used so that we can cope with the fact that the window - may have been destroyed <30 seconds after it was created. - */ - if (error->error_code == BadWindow || - error->error_code == BadMatch || - error->error_code == BadDrawable) - return 0; - XmuPrintDefaultErrorMessage (dpy, error, stderr); - exit (1); -} - -void -notice_events_timer (closure, timer) - XtPointer closure; - XtIntervalId *timer; -{ - Window window = (Window) closure; - int (*old_handler) (); - old_handler = XSetErrorHandler (BadWindow_ehandler); - notice_events (window, True); - XSync (dpy, False); - XSetErrorHandler (old_handler); -} - - -/* When the screensaver is active, this timer will periodically change - the running program. - */ -void -cycle_timer (junk1, junk2) - void *junk1; - XtPointer junk2; -{ - Time how_long = cycle; - if (dbox_up_p) - { - if (verbose_p) - printf ("%s: dbox up; delaying hack change.\n", progname); - how_long = 30000; /* 30 secs */ - } - else - { - if (verbose_p) - printf ("%s: changing graphics hacks.\n", progname); - kill_screenhack (); - spawn_screenhack (False); - } - cycle_id = XtAppAddTimeOut (app, how_long, - (XtTimerCallbackProc) cycle_timer, 0); - -#ifdef DEBUG_TIMERS - if (verbose_p) - printf ("%s: starting cycle_timer (%ld, %ld)\n", - progname, how_long, cycle_id); -#endif -} - - -void -activate_lock_timer (junk1, junk2) - void *junk1; - XtPointer junk2; -{ - if (verbose_p) - printf ("%s: timed out; activating lock\n", progname); - locked_p = True; -} - - -/* Call this when user activity (or "simulated" activity) has been noticed. - */ -static void -reset_timers P((void)) -{ - if (use_mit_saver_extension || use_sgi_saver_extension) - return; - -#ifdef DEBUG_TIMERS - if (verbose_p) - printf ("%s: restarting idle_timer (%ld, %ld)\n", - progname, timeout, timer_id); -#endif - XtRemoveTimeOut (timer_id); - timer_id = XtAppAddTimeOut (app, timeout, - (XtTimerCallbackProc) idle_timer, 0); - if (cycle_id) abort (); - -#ifdef DEBUG_TIMERS - if (verbose_p) - printf ("%s: starting idle_timer (%ld, %ld)\n", - progname, timeout, timer_id); -#endif - - last_activity_time = time ((time_t *) 0); -} - -/* When we aren't using a server extension, this timer is used to periodically - wake up and poll the mouse position, which is possibly more reliable than - selecting motion events on every window. - */ -static void -check_pointer_timer (closure, this_timer) - void *closure; - XtPointer this_timer; -{ - static int last_root_x = -1; - static int last_root_y = -1; - static Window last_child = (Window) -1; - static unsigned int last_mask = 0; - Window root, child; - int root_x, root_y, x, y; - unsigned int mask; - XtIntervalId *timerP = (XtIntervalId *) closure; - - if (use_xidle_extension || - use_mit_saver_extension || - use_sgi_saver_extension) - abort (); - - *timerP = XtAppAddTimeOut (app, pointer_timeout, - (XtTimerCallbackProc) check_pointer_timer, - closure); - - XQueryPointer (dpy, screensaver_window, &root, &child, - &root_x, &root_y, &x, &y, &mask); - if (root_x == last_root_x && root_y == last_root_y && - child == last_child && mask == last_mask) - return; - -#ifdef DEBUG_TIMERS - if (verbose_p && this_timer) - if (root_x == last_root_x && root_y == last_root_y && child == last_child) - printf ("%s: modifiers changed at %s.\n", progname, timestring ()); - else - printf ("%s: pointer moved at %s.\n", progname, timestring ()); -#endif - - last_root_x = root_x; - last_root_y = root_y; - last_child = child; - last_mask = mask; - - reset_timers (); -} - - -void -sleep_until_idle (until_idle_p) - Bool until_idle_p; -{ - XEvent event; - - if (until_idle_p) - { - if (!use_mit_saver_extension && !use_sgi_saver_extension) - { - /* Wake up periodically to ask the server if we are idle. */ - timer_id = XtAppAddTimeOut (app, timeout, - (XtTimerCallbackProc) idle_timer, 0); -#ifdef DEBUG_TIMERS - if (verbose_p) - printf ("%s: starting idle_timer (%ld, %ld)\n", - progname, timeout, timer_id); -#endif - } - - if (!use_xidle_extension && - !use_mit_saver_extension && - !use_sgi_saver_extension) - /* start polling the mouse position */ - check_pointer_timer (&check_pointer_timer_id, 0); - } - - while (1) - { - XtAppNextEvent (app, &event); - - switch (event.xany.type) { - case 0: /* our synthetic "timeout" event has been signalled */ - if (until_idle_p) - { - Time idle; -#ifdef HAVE_XIDLE_EXTENSION - if (use_xidle_extension) - { - if (! XGetIdleTime (dpy, &idle)) - { - fprintf (stderr, "%s: %sXGetIdleTime() failed.\n", - progname, (verbose_p ? "## " : "")); - exit (1); - } - } - else -#endif /* HAVE_XIDLE_EXTENSION */ -#ifdef HAVE_MIT_SAVER_EXTENSION - if (use_mit_saver_extension) - { - /* We don't need to do anything in this case - the synthetic - event isn't necessary, as we get sent specific events - to wake us up. */ - idle = 0; - } - else -#endif /* HAVE_MIT_SAVER_EXTENSION */ -#ifdef HAVE_SGI_SAVER_EXTENSION - if (use_sgi_saver_extension) - { - /* We don't need to do anything in this case - the synthetic - event isn't necessary, as we get sent specific events - to wake us up. */ - idle = 0; - } - else -#endif /* HAVE_SGI_SAVER_EXTENSION */ - { - idle = 1000 * (last_activity_time - time ((time_t *) 0)); - } - - if (idle >= timeout) - goto DONE; - else if (!use_mit_saver_extension && !use_sgi_saver_extension) - { - timer_id = XtAppAddTimeOut (app, timeout - idle, - (XtTimerCallbackProc) idle_timer, - 0); -#ifdef DEBUG_TIMERS - if (verbose_p) - printf ("%s: starting idle_timer (%ld, %ld)\n", - progname, timeout - idle, timer_id); -#endif /* DEBUG_TIMERS */ - } - } - break; - - case ClientMessage: - if (handle_clientmessage (&event, until_idle_p)) - goto DONE; - break; - - case CreateNotify: - if (!use_xidle_extension && - !use_mit_saver_extension && - !use_sgi_saver_extension) - { - XtAppAddTimeOut (app, notice_events_timeout, - (XtTimerCallbackProc) notice_events_timer, - (XtPointer) event.xcreatewindow.window); -#ifdef DEBUG_TIMERS - if (verbose_p) - printf ("%s: starting notice_events_timer for 0x%X (%lu)\n", - progname, - (unsigned int) event.xcreatewindow.window, - notice_events_timeout); -#endif /* DEBUG_TIMERS */ - } - break; - - case KeyPress: - case KeyRelease: - case ButtonPress: - case ButtonRelease: - case MotionNotify: - -#ifdef DEBUG_TIMERS - if (verbose_p) - { - if (event.xany.type == MotionNotify) - printf ("%s: MotionNotify at %s\n", progname, timestring ()); - else if (event.xany.type == KeyPress) - printf ("%s: KeyPress seen on 0x%X at %s\n", progname, - (unsigned int) event.xkey.window, timestring ()); - } -#endif - - /* We got a user event */ - if (!until_idle_p) - goto DONE; - else - reset_timers (); - break; - - default: - -#ifdef HAVE_MIT_SAVER_EXTENSION - if (event.type == mit_saver_ext_event_number) - { - XScreenSaverNotifyEvent *sevent = - (XScreenSaverNotifyEvent *) &event; - if (sevent->state == ScreenSaverOn) - { -# ifdef DEBUG_TIMERS - if (verbose_p) - printf ("%s: ScreenSaverOn event received at %s\n", - progname, timestring ()); -# endif /* DEBUG_TIMERS */ - - /* Get the "real" server window out of the way as soon - as possible. */ - if (server_mit_saver_window && - window_exists_p (dpy, server_mit_saver_window)) - XUnmapWindow (dpy, server_mit_saver_window); - - if (sevent->kind != ScreenSaverExternal) - { -# ifdef DEBUG_TIMERS - fprintf (stderr, - "%s: ScreenSaverOn event wasn't of type External!\n", - progname); -# endif /* DEBUG_TIMERS */ - } - - if (until_idle_p) - goto DONE; - } - else if (sevent->state == ScreenSaverOff) - { -# ifdef DEBUG_TIMERS - if (verbose_p) - printf ("%s: ScreenSaverOff event received at %s\n", - progname, timestring ()); -# endif /* DEBUG_TIMERS */ - if (!until_idle_p) - goto DONE; - } -# ifdef DEBUG_TIMERS - else if (verbose_p) - printf ("%s: unknown MIT-SCREEN-SAVER event received at %s\n", - progname, timestring ()); -# endif /* DEBUG_TIMERS */ - } - else - -#endif /* HAVE_MIT_SAVER_EXTENSION */ - - -#ifdef HAVE_SGI_SAVER_EXTENSION - if (event.type == (sgi_saver_ext_event_number + ScreenSaverStart)) - { -# ifdef DEBUG_TIMERS - if (verbose_p) - printf ("%s: ScreenSaverStart event received at %s\n", - progname, timestring ()); -# endif /* DEBUG_TIMERS */ - - if (until_idle_p) - goto DONE; - } - else if (event.type == (sgi_saver_ext_event_number + ScreenSaverEnd)) - { -# ifdef DEBUG_TIMERS - if (verbose_p) - printf ("%s: ScreenSaverEnd event received at %s\n", - progname, timestring ()); -# endif /* DEBUG_TIMERS */ - if (!until_idle_p) - goto DONE; - } - else -#endif /* HAVE_SGI_SAVER_EXTENSION */ - - XtDispatchEvent (&event); - } - } - DONE: - - if (check_pointer_timer_id) - { - XtRemoveTimeOut (check_pointer_timer_id); - check_pointer_timer_id = 0; - } - if (timer_id) - { - XtRemoveTimeOut (timer_id); - timer_id = 0; - } - - if (until_idle_p && cycle_id) - abort (); - - return; -} diff --git a/driver/windows.c b/driver/windows.c deleted file mode 100644 index fa782b42..00000000 --- a/driver/windows.c +++ /dev/null @@ -1,833 +0,0 @@ -/* xscreensaver, Copyright (c) 1991-1996 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include -#include -#include -#include -#include -#include - -#include /* for the signal names */ - -#include "xscreensaver.h" - -#ifdef HAVE_MIT_SAVER_EXTENSION -#include -#endif /* HAVE_MIT_SAVER_EXTENSION */ - -#ifdef HAVE_SGI_SAVER_EXTENSION -#include -#endif /* HAVE_SGI_SAVER_EXTENSION */ - -extern Bool use_mit_saver_extension; -extern Bool use_sgi_saver_extension; - -#if __STDC__ -extern int kill (pid_t, int); /* signal() is in sys/signal.h... */ -#endif /* __STDC__ */ - -extern Time timeout; - -extern Bool lock_p, demo_mode_p; - -Atom XA_VROOT, XA_XSETROOT_ID; -Atom XA_SCREENSAVER_VERSION, XA_SCREENSAVER_ID; - -#if __STDC__ -extern void describe_visual (FILE *, Display *, Visual *); -extern void reset_stderr (void); -#endif - -Window screensaver_window = 0; -Cursor cursor; -Colormap cmap, cmap2; -Bool install_cmap_p; -Bool fade_p, unfade_p; -int fade_seconds, fade_ticks; - -static unsigned long black_pixel; -static Window real_vroot, real_vroot_value; - -#ifdef HAVE_MIT_SAVER_EXTENSION -Window server_mit_saver_window = 0; -#endif /* HAVE_MIT_SAVER_EXTENSION */ - -#define ALL_POINTER_EVENTS \ - (ButtonPressMask | ButtonReleaseMask | EnterWindowMask | \ - LeaveWindowMask | PointerMotionMask | PointerMotionHintMask | \ - Button1MotionMask | Button2MotionMask | Button3MotionMask | \ - Button4MotionMask | Button5MotionMask | ButtonMotionMask) - -/* I don't really understand Sync vs Async, but these seem to work... */ -#define grab_kbd(win) \ - XGrabKeyboard (dpy, (win), True, GrabModeSync, GrabModeAsync, CurrentTime) -#define grab_mouse(win) \ - XGrabPointer (dpy, (win), True, ALL_POINTER_EVENTS, \ - GrabModeAsync, GrabModeAsync, None, cursor, CurrentTime) - -void -grab_keyboard_and_mouse P((void)) -{ - Status status; - XSync (dpy, False); - - if (demo_mode_p) return; - - status = grab_kbd (screensaver_window); - if (status != GrabSuccess) - { /* try again in a second */ - sleep (1); - status = grab_kbd (screensaver_window); - if (status != GrabSuccess) - fprintf (stderr, "%s: %scouldn't grab keyboard! (%d)\n", - progname, (verbose_p ? "## " : ""), status); - } - status = grab_mouse (screensaver_window); - if (status != GrabSuccess) - { /* try again in a second */ - sleep (1); - status = grab_mouse (screensaver_window); - if (status != GrabSuccess) - fprintf (stderr, "%s: %scouldn't grab pointer! (%d)\n", - progname, (verbose_p ? "## " : ""), status); - } -} - -void -ungrab_keyboard_and_mouse P((void)) -{ - XUngrabPointer (dpy, CurrentTime); - XUngrabKeyboard (dpy, CurrentTime); -} - - -void -ensure_no_screensaver_running () -{ - int i; - Window root = RootWindowOfScreen (screen); - Window root2, parent, *kids; - unsigned int nkids; - int (*old_handler) (); - - old_handler = XSetErrorHandler (BadWindow_ehandler); - - if (! XQueryTree (dpy, root, &root2, &parent, &kids, &nkids)) - abort (); - if (root != root2) - abort (); - if (parent) - abort (); - for (i = 0; i < nkids; i++) - { - Atom type; - int format; - unsigned long nitems, bytesafter; - char *version; - - if (XGetWindowProperty (dpy, kids[i], XA_SCREENSAVER_VERSION, 0, 1, - False, XA_STRING, &type, &format, &nitems, - &bytesafter, (unsigned char **) &version) - == Success - && type != None) - { - char *id; - if (!XGetWindowProperty (dpy, kids[i], XA_SCREENSAVER_ID, 0, 512, - False, XA_STRING, &type, &format, &nitems, - &bytesafter, (unsigned char **) &id) - == Success - || type == None) - id = "???"; - - fprintf (stderr, - "%s: %salready running on display %s (window 0x%x)\n from process %s.\n", - progname, (verbose_p ? "## " : ""), DisplayString (dpy), - (int) kids [i], id); - exit (1); - } - } - - if (kids) XFree ((char *) kids); - XSync (dpy, False); - XSetErrorHandler (old_handler); -} - - -void -disable_builtin_screensaver () -{ - int server_timeout, server_interval, prefer_blank, allow_exp; - /* Turn off the server builtin saver if it is now running. */ - XForceScreenSaver (dpy, ScreenSaverReset); - XGetScreenSaver (dpy, &server_timeout, &server_interval, - &prefer_blank, &allow_exp); - -#if defined(HAVE_MIT_SAVER_EXTENSION) || defined(HAVE_SGI_SAVER_EXTENSION) - if (use_mit_saver_extension || use_sgi_saver_extension) - { - /* Override the values specified with "xset" with our own parameters. */ - allow_exp = True; - server_interval = 0; - server_timeout = (timeout / 1000); - - /* The SGI extension won't give us events unless blanking is on. - I think (unsure right now) that the MIT extension is the opposite. */ - prefer_blank = (use_sgi_saver_extension ? True : False); - - if (verbose_p) - fprintf (stderr, - "%s: configuring server for saver timeout of %d seconds.\n", - progname, server_timeout); - XSetScreenSaver (dpy, server_timeout, server_interval, - prefer_blank, allow_exp); - } - else -#endif /* HAVE_MIT_SAVER_EXTENSION || HAVE_SGI_SAVER_EXTENSION */ - if (server_timeout != 0) - { - server_timeout = 0; - XSetScreenSaver (dpy, server_timeout, server_interval, - prefer_blank, allow_exp); - printf ("%s%sisabling server builtin screensaver.\n\ - You can re-enable it with \"xset s on\".\n", - (verbose_p ? "" : progname), (verbose_p ? "\n\tD" : ": d")); - } -} - - -/* Virtual-root hackery */ - -#ifdef _VROOT_H_ -ERROR! You must not include vroot.h in this file. -#endif - -static void -#if __STDC__ -store_vroot_property (Window win, Window value) -#else -store_vroot_property (win, value) - Window win, value; -#endif -{ -#if 0 - printf ("%s: storing XA_VROOT = 0x%x (%s) = 0x%x (%s)\n", progname, - win, - (win == screensaver_window ? "ScreenSaver" : - (win == real_vroot ? "VRoot" : - (win == real_vroot_value ? "Vroot_value" : "???"))), - value, - (value == screensaver_window ? "ScreenSaver" : - (value == real_vroot ? "VRoot" : - (value == real_vroot_value ? "Vroot_value" : "???")))); -#endif - XChangeProperty (dpy, win, XA_VROOT, XA_WINDOW, 32, PropModeReplace, - (unsigned char *) &value, 1); -} - -static void -#if __STDC__ -remove_vroot_property (Window win) -#else -remove_vroot_property (win) - Window win; -#endif -{ -#if 0 - printf ("%s: removing XA_VROOT from 0x%x (%s)\n", progname, win, - (win == screensaver_window ? "ScreenSaver" : - (win == real_vroot ? "VRoot" : - (win == real_vroot_value ? "Vroot_value" : "???")))); -#endif - XDeleteProperty (dpy, win, XA_VROOT); -} - - -static void -kill_xsetroot_data P((void)) -{ - Atom type; - int format; - unsigned long nitems, bytesafter; - Pixmap *dataP = 0; - - /* If the user has been using xv or xsetroot as a screensaver (to display - an image on the screensaver window, as a kind of slideshow) then the - pixmap and its associated color cells have been put in RetainPermanent - CloseDown mode. Since we're not destroying the xscreensaver window, - but merely unmapping it, we need to free these resources or those - colormap cells will stay allocated while the screensaver is off. (We - could just delete the screensaver window and recreate it later, but - that could cause other problems.) This code does an atomic read-and- - delete of the _XSETROOT_ID property, and if it held a pixmap, then we - cause the RetainPermanent resources of the client which created it - (and which no longer exists) to be freed. - */ - if (XGetWindowProperty (dpy, screensaver_window, XA_XSETROOT_ID, 0, 1, - True, AnyPropertyType, &type, &format, &nitems, - &bytesafter, (unsigned char **) &dataP) - == Success - && type != None) - { - if (dataP && *dataP && type == XA_PIXMAP && format == 32 && - nitems == 1 && bytesafter == 0) - { - if (verbose_p) - printf ("%s: destroying xsetroot data (0x%lX).\n", - progname, *dataP); - XKillClient (dpy, *dataP); - } - else - fprintf (stderr, "%s: %sdeleted unrecognised _XSETROOT_ID property: \n\ - %lu, %lu; type: %lu, format: %d, nitems: %lu, bytesafter %ld\n", - progname, (verbose_p ? "## " : ""), - (unsigned long) dataP, (dataP ? *dataP : 0), type, - format, nitems, bytesafter); - } -} - - -static void handle_signals P((Bool on_p)); - -static void -save_real_vroot P((void)) -{ - int i; - Window root = RootWindowOfScreen (screen); - Window root2, parent, *kids; - unsigned int nkids; - - real_vroot = 0; - real_vroot_value = 0; - if (! XQueryTree (dpy, root, &root2, &parent, &kids, &nkids)) - abort (); - if (root != root2) - abort (); - if (parent) - abort (); - for (i = 0; i < nkids; i++) - { - Atom type; - int format; - unsigned long nitems, bytesafter; - Window *vrootP = 0; - - if (XGetWindowProperty (dpy, kids[i], XA_VROOT, 0, 1, False, XA_WINDOW, - &type, &format, &nitems, &bytesafter, - (unsigned char **) &vrootP) - != Success) - continue; - if (! vrootP) - continue; - if (real_vroot) - { - if (*vrootP == screensaver_window) abort (); - fprintf (stderr, - "%s: %smore than one virtual root window found (0x%x and 0x%x).\n", - progname, (verbose_p ? "## " : ""), - (int) real_vroot, (int) kids [i]); - exit (1); - } - real_vroot = kids [i]; - real_vroot_value = *vrootP; - } - - if (real_vroot) - { - handle_signals (True); - remove_vroot_property (real_vroot); - XSync (dpy, False); - } - - XFree ((char *) kids); -} - -static Bool -restore_real_vroot_1 P((void)) -{ - if (verbose_p && real_vroot) - printf ("%s: restoring __SWM_VROOT property on the real vroot (0x%lx).\n", - progname, (unsigned long) real_vroot); - remove_vroot_property (screensaver_window); - if (real_vroot) - { - store_vroot_property (real_vroot, real_vroot_value); - real_vroot = 0; - real_vroot_value = 0; - /* make sure the property change gets there before this process - terminates! We might be doing this because we have intercepted - SIGTERM or something. */ - XSync (dpy, False); - return True; - } - return False; -} - -void -restore_real_vroot () -{ - if (restore_real_vroot_1 ()) - handle_signals (False); -} - - -/* Signal hackery to ensure that the vroot doesn't get left in an - inconsistent state - */ - -static const char *sig_names [255] = { 0 }; - -static void -restore_real_vroot_handler (sig) - int sig; -{ - signal (sig, SIG_DFL); - if (restore_real_vroot_1 ()) - fprintf (stderr, "\n%s: %s%s (%d) intercepted, vroot restored.\n", - progname, (verbose_p ? "## " : ""), - ((sig < sizeof(sig_names) && sig >= 0 && sig_names [sig]) - ? sig_names [sig] : "unknown signal"), - sig); - kill (getpid (), sig); -} - - -static void -#if __STDC__ -catch_signal (int sig, char *signame, Bool on_p) -#else -catch_signal (sig, signame, on_p) - int sig; - char *signame; - Bool on_p; -#endif -{ - if (! on_p) - signal (sig, SIG_DFL); - else - { - sig_names [sig] = signame; - if (((int) signal (sig, restore_real_vroot_handler)) == -1) - { - char buf [255]; - sprintf (buf, "%s: %scouldn't catch %s (%d)", progname, - (verbose_p ? "## " : ""), signame, sig); - perror (buf); - restore_real_vroot (); - exit (1); - } - } -} - -static void -handle_signals (on_p) - Bool on_p; -{ -#if 0 - if (on_p) printf ("handling signals\n"); - else printf ("unhandling signals\n"); -#endif - - catch_signal (SIGHUP, "SIGHUP", on_p); - catch_signal (SIGINT, "SIGINT", on_p); - catch_signal (SIGQUIT, "SIGQUIT", on_p); - catch_signal (SIGILL, "SIGILL", on_p); - catch_signal (SIGTRAP, "SIGTRAP", on_p); - catch_signal (SIGIOT, "SIGIOT", on_p); - catch_signal (SIGABRT, "SIGABRT", on_p); -#ifdef SIGEMT - catch_signal (SIGEMT, "SIGEMT", on_p); -#endif - catch_signal (SIGFPE, "SIGFPE", on_p); - catch_signal (SIGBUS, "SIGBUS", on_p); - catch_signal (SIGSEGV, "SIGSEGV", on_p); -#ifdef SIGSYS - catch_signal (SIGSYS, "SIGSYS", on_p); -#endif - catch_signal (SIGTERM, "SIGTERM", on_p); -#ifdef SIGXCPU - catch_signal (SIGXCPU, "SIGXCPU", on_p); -#endif -#ifdef SIGXFSZ - catch_signal (SIGXFSZ, "SIGXFSZ", on_p); -#endif -#ifdef SIGDANGER - catch_signal (SIGDANGER, "SIGDANGER", on_p); -#endif -} - - -/* Managing the actual screensaver window */ - -Bool -window_exists_p (dpy, window) - Display *dpy; - Window window; -{ - int (*old_handler) (); - XWindowAttributes xgwa; - xgwa.screen = 0; - old_handler = XSetErrorHandler (BadWindow_ehandler); - XGetWindowAttributes (dpy, window, &xgwa); - XSync (dpy, False); - XSetErrorHandler (old_handler); - return (xgwa.screen != 0); -} - -void -initialize_screensaver_window P((void)) -{ - /* This resets the screensaver window as fully as possible, since there's - no way of knowing what some random client may have done to us in the - meantime. We could just destroy and recreate the window, but that has - its own set of problems... - */ - XColor black; - XClassHint class_hints; - XSetWindowAttributes attrs; - unsigned long attrmask; - int width = WidthOfScreen (screen); - int height = HeightOfScreen (screen); - char id [2048]; - - reset_stderr (); - - black.red = black.green = black.blue = 0; - - if (cmap == DefaultColormapOfScreen (screen)) - cmap = 0; - - if (install_cmap_p || visual != DefaultVisualOfScreen (screen)) - { - if (! cmap) - { - cmap = XCreateColormap (dpy, RootWindowOfScreen (screen), - visual, AllocNone); - if (! XAllocColor (dpy, cmap, &black)) abort (); - black_pixel = black.pixel; - } - } - else - { - if (cmap) - { - XFreeColors (dpy, cmap, &black_pixel, 1, 0); - XFreeColormap (dpy, cmap); - } - cmap = DefaultColormapOfScreen (screen); - black_pixel = BlackPixelOfScreen (screen); - } - - if (cmap2) - { - XFreeColormap (dpy, cmap2); - cmap2 = 0; - } - - if (fade_p) - { - cmap2 = copy_colormap (dpy, cmap, 0); - if (! cmap2) - fade_p = unfade_p = 0; - } - - attrmask = (CWOverrideRedirect | CWEventMask | CWBackingStore | CWColormap | - CWBackPixel | CWBackingPixel | CWBorderPixel); - attrs.override_redirect = True; - - /* When use_mit_saver_extension or use_sgi_saver_extension is true, we won't - actually be reading these events during normal operation; but we still - need to see Button events for demo-mode to work properly. - */ - attrs.event_mask = (KeyPressMask | KeyReleaseMask | - ButtonPressMask | ButtonReleaseMask | - PointerMotionMask); - - attrs.backing_store = NotUseful; - attrs.colormap = cmap; - attrs.background_pixel = black_pixel; - attrs.backing_pixel = black_pixel; - attrs.border_pixel = black_pixel; - -#if 0 - if (demo_mode_p || lock_p) width = width / 2; /* #### */ -#endif - - if (screensaver_window || !verbose_p) - ; - else if (visual == DefaultVisualOfScreen (screen)) - { - fprintf (stderr, "%s: using default visual ", progname); - describe_visual (stderr, dpy, visual); - } - else - { - fprintf (stderr, "%s: using visual: ", progname); - describe_visual (stderr, dpy, visual); - fprintf (stderr, "%s: default visual: ", progname); - describe_visual (stderr, dpy, DefaultVisualOfScreen (screen)); - } - -#ifdef HAVE_MIT_SAVER_EXTENSION - if (use_mit_saver_extension) - { - XScreenSaverInfo *info; - Window root = RootWindowOfScreen (screen); - - /* This call sets the server screensaver timeouts to what we think - they should be (based on the resources and args xscreensaver was - started with.) It's important that we do this to sync back up - with the server - if we have turned on prematurely, as by an - ACTIVATE ClientMessage, then the server may decide to activate - the screensaver while it's already active. That's ok for us, - since we would know to ignore that ScreenSaverActivate event, - but a side effect of this would be that the server would map its - saver window (which we then hide again right away) meaning that - the bits currently on the screen get blown away. Ugly. */ -#if 0 - /* #### Ok, that doesn't work - when we tell the server that the - screensaver is "off" it sends us a Deactivate event, which is - sensible... but causes the saver to never come on. Hmm. */ - disable_builtin_screensaver (); -#endif /* 0 */ - -#if 0 - /* #### The MIT-SCREEN-SAVER extension gives us access to the - window that the server itself uses for saving the screen. - However, using this window in any way, in particular, calling - XScreenSaverSetAttributes() as below, tends to make the X server - crash. So fuck it, let's try and get along without using it... - - It's also inconvenient to use this window because it doesn't - always exist (though the ID is constant.) So to use this - window, we'd have to reimplement the ACTIVATE ClientMessage to - tell the *server* to tell *us* to turn on, to cause the window - to get created at the right time. Gag. */ - XScreenSaverSetAttributes (dpy, root, - 0, 0, width, height, 0, - visual_depth, InputOutput, visual, - attrmask, &attrs); - XSync (dpy, False); -#endif /* 0 */ - - info = XScreenSaverAllocInfo (); - XScreenSaverQueryInfo (dpy, root, info); - server_mit_saver_window = info->window; - if (! server_mit_saver_window) abort (); - XFree (info); - } -#endif /* HAVE_MIT_SAVER_EXTENSION */ - - if (screensaver_window) - { - XWindowChanges changes; - unsigned int changesmask = CWX|CWY|CWWidth|CWHeight|CWBorderWidth; - changes.x = 0; - changes.y = 0; - changes.width = width; - changes.height = height; - changes.border_width = 0; - - XConfigureWindow (dpy, screensaver_window, changesmask, &changes); - XChangeWindowAttributes (dpy, screensaver_window, attrmask, &attrs); - } - else - { - screensaver_window = - XCreateWindow (dpy, RootWindowOfScreen (screen), 0, 0, width, height, - 0, visual_depth, InputOutput, visual, attrmask, - &attrs); - } - -#ifdef HAVE_MIT_SAVER_EXTENSION - if (!use_mit_saver_extension || - window_exists_p (dpy, screensaver_window)) - /* When using the MIT-SCREEN-SAVER extension, the window pointed to - by screensaver_window only exists while the saver is active. - So we must be careful to only try and manipulate it while it - exists... - */ -#endif /* HAVE_MIT_SAVER_EXTENSION */ - { - class_hints.res_name = progname; - class_hints.res_class = progclass; - XSetClassHint (dpy, screensaver_window, &class_hints); - XStoreName (dpy, screensaver_window, "screensaver"); - XChangeProperty (dpy, screensaver_window, XA_SCREENSAVER_VERSION, - XA_STRING, 8, PropModeReplace, - (unsigned char *) screensaver_version, - strlen (screensaver_version)); - - sprintf (id, "%d on host ", getpid ()); - if (! XmuGetHostname (id + strlen (id), sizeof (id) - strlen (id) - 1)) - strcat (id, "???"); - XChangeProperty (dpy, screensaver_window, XA_SCREENSAVER_ID, XA_STRING, - 8, PropModeReplace, (unsigned char *) id, strlen (id)); - - if (!cursor) - { - Pixmap bit; - bit = XCreatePixmapFromBitmapData (dpy, screensaver_window, "\000", - 1, 1, - BlackPixelOfScreen (screen), - BlackPixelOfScreen (screen), 1); - cursor = XCreatePixmapCursor (dpy, bit, bit, &black, &black, 0, 0); - XFreePixmap (dpy, bit); - } - - XSetWindowBackground (dpy, screensaver_window, black_pixel); - if (! demo_mode_p) - XDefineCursor (dpy, screensaver_window, cursor); - else - XUndefineCursor (dpy, screensaver_window); - } -} - - -void -raise_window (inhibit_fade, between_hacks_p) - Bool inhibit_fade, between_hacks_p; -{ - initialize_screensaver_window (); - - if (fade_p && !inhibit_fade && !demo_mode_p) - { - int grabbed; - Colormap current_map = (between_hacks_p - ? cmap - : DefaultColormapOfScreen (screen)); - copy_colormap (dpy, current_map, cmap2); - if (verbose_p) fprintf (stderr, "%s: fading... ", progname); - XGrabServer (dpy); - /* grab and blacken mouse on the root window (saver not mapped yet) */ - grabbed = grab_mouse (RootWindowOfScreen (screen)); - /* fade what's on the screen to black */ - XInstallColormap (dpy, cmap2); - fade_colormap (dpy, current_map, cmap2, fade_seconds, fade_ticks, - True, True); - if (verbose_p) fprintf (stderr, "fading done.\n"); - XClearWindow (dpy, screensaver_window); - XMapRaised (dpy, screensaver_window); - -#ifdef HAVE_MIT_SAVER_EXTENSION - if (server_mit_saver_window && - window_exists_p (dpy, server_mit_saver_window)) - XUnmapWindow (dpy, server_mit_saver_window); -#endif /* HAVE_MIT_SAVER_EXTENSION */ - - /* Once the saver window is up, restore the colormap. - (The "black" pixels of the two colormaps are compatible.) */ - XInstallColormap (dpy, cmap); - if (grabbed == GrabSuccess) - XUngrabPointer (dpy, CurrentTime); - XUngrabServer (dpy); - } - else - { - XClearWindow (dpy, screensaver_window); - XMapRaised (dpy, screensaver_window); -#ifdef HAVE_MIT_SAVER_EXTENSION - if (server_mit_saver_window && - window_exists_p (dpy, server_mit_saver_window)) - XUnmapWindow (dpy, server_mit_saver_window); -#endif /* HAVE_MIT_SAVER_EXTENSION */ - } - - if (install_cmap_p) - XInstallColormap (dpy, cmap); -} - -#ifdef __hpux - /* Calls to XHPDisableReset and XHPEnableReset must be balanced, - or BadAccess errors occur. */ -static Bool hp_locked_p = False; -#endif /* __hpux */ - -void -blank_screen () -{ - save_real_vroot (); - store_vroot_property (screensaver_window, screensaver_window); - raise_window (False, False); - grab_keyboard_and_mouse (); -#ifdef __hpux - if (lock_p && !hp_locked_p) - XHPDisableReset (dpy); /* turn off C-Sh-Reset */ - hp_locked_p = True; -#endif -} - -void -unblank_screen () -{ - if (unfade_p && !demo_mode_p) - { - int grabbed; - Colormap default_map = DefaultColormapOfScreen (screen); - blacken_colormap (dpy, cmap2); - if (verbose_p) fprintf (stderr, "%s: unfading... ", progname); - XGrabServer (dpy); - /* grab and blacken mouse on the root window. */ - grabbed = grab_mouse (RootWindowOfScreen (screen)); - XInstallColormap (dpy, cmap2); - XUnmapWindow (dpy, screensaver_window); - fade_colormap (dpy, default_map, cmap2, fade_seconds, fade_ticks, - False, True); - XInstallColormap (dpy, default_map); - if (verbose_p) fprintf (stderr, "unfading done.\n"); - if (grabbed == GrabSuccess) - XUngrabPointer (dpy, CurrentTime); - XUngrabServer (dpy); - } - else - { - if (install_cmap_p) - { - XClearWindow (dpy, screensaver_window); /* avoid technicolor */ - XInstallColormap (dpy, DefaultColormapOfScreen (screen)); - } - XUnmapWindow (dpy, screensaver_window); - } - - - /* If the focus window does has a non-default colormap, then install - that colormap as well. (On SGIs, this will cause both the root map - and the focus map to be installed simultaniously. It'd be nice to - pick up the other colormaps that had been installed, too; perhaps - XListInstalledColormaps could be used for that?) - */ - { - Window focus = 0; - int revert_to; - XGetInputFocus (dpy, &focus, &revert_to); - if (focus && focus != PointerRoot && focus != None) - { - XWindowAttributes xgwa; - Colormap default_map = DefaultColormapOfScreen (screen); - xgwa.colormap = 0; - XGetWindowAttributes (dpy, focus, &xgwa); - if (xgwa.colormap && - xgwa.colormap != default_map) - XInstallColormap (dpy, xgwa.colormap); - } - } - - - kill_xsetroot_data (); - ungrab_keyboard_and_mouse (); - restore_real_vroot (); - -#ifdef __hpux - if (lock_p && hp_locked_p) - XHPEnableReset (dpy); /* turn C-Sh-Reset back on */ - hp_locked_p = False; -#endif -} diff --git a/driver/xscreensaver-command.c b/driver/xscreensaver-command.c deleted file mode 100644 index d0aced94..00000000 --- a/driver/xscreensaver-command.c +++ /dev/null @@ -1,151 +0,0 @@ -/* xscreensaver-command, Copyright (c) 1991-1995 - * Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include "version.h" -#include -#include -#include -#include -#if __STDC__ -# include -#endif - -#ifdef _VROOT_H_ -ERROR! you must not include vroot.h in this file -#endif - -static char *screensaver_version; -static char *usage = "usage: %s -\n\ -\n\ - This program provides external control of a running xscreensaver process.\n\ - Version %s, copyright (c) 1991-1994 Jamie Zawinski .\n\ -\n\ - -demo Enter interactive demo mode.\n\ - -deactivate Turns off the screensaver if it is on, as user input would.\n\ - -activate Turns it on as if the user had been idle for long enough.\n\ - -cycle Stops the current hack and runs a new one.\n\ - -next Like either -activate or -cycle, depending on which is more\n\ - appropriate, except that the screenhack that will be run is\n\ - the next one in the list of hacks, instead of a randomly-\n\ - chosen one. This option is good for looking at a demo of\n\ - each of the hacks in place.\n\ - -prev Like -next, but goes in the other direction.\n\ - -exit Causes the screensaver process to exit. It should be ok to\n\ - just kill the process (NOT with -9!) but this is a slightly\n\ - easier way.\n\ - -restart Causes the screensaver process to exit and then restart with\n\ - the same command line arguments. This is a good way of \n\ - causing the screensaver to re-read the resource database.\n\ - -lock Same as -activate, but with immediate locking.\n\ -\n\ - See the man page for more details.\n\n"; - -static Window -find_screensaver_window (dpy, progname) - Display *dpy; - char *progname; -{ - int i; - Window root = RootWindowOfScreen (DefaultScreenOfDisplay (dpy)); - Window root2, parent, *kids; - unsigned int nkids; - - if (! XQueryTree (dpy, root, &root2, &parent, &kids, &nkids)) - abort (); - if (root != root2) - abort (); - if (parent) - abort (); - if (! (kids && nkids)) - abort (); - for (i = 0; i < nkids; i++) - { - Atom type; - int format; - unsigned long nitems, bytesafter; - char *version; - - if (XGetWindowProperty (dpy, kids[i], - XInternAtom (dpy, "_SCREENSAVER_VERSION", False), - 0, 1, False, XA_STRING, - &type, &format, &nitems, &bytesafter, - (unsigned char **) &version) - == Success - && type != None) - return kids[i]; - } - fprintf (stderr, "%s: no screensaver is running on display %s\n", progname, - DisplayString (dpy)); - exit (1); -} - - -#define USAGE() \ - { fprintf (stderr, usage, argv[0], screensaver_version); exit (1); } - -void -main (argc, argv) - int argc; - char **argv; -{ - Display *dpy; - Window window; - XEvent event; - int i; - char *message = 0, *dpyname = 0; - screensaver_version = (char *) malloc (5); - memcpy (screensaver_version, screensaver_id + 17, 4); - screensaver_version [4] = 0; - for (i = 1; i < argc; i++) - { - char *s = argv [i]; - int L = strlen (s); - if (L < 2) USAGE (); - if (!strncmp (s, "-display", L)) dpyname = argv [++i]; - else if (message) USAGE () - else if (!strncmp (s, "-activate", L)) message = "ACTIVATE"; - else if (!strncmp (s, "-deactivate", L)) message = "DEACTIVATE"; - else if (!strncmp (s, "-cycle", L)) message = "CYCLE"; - else if (!strncmp (s, "-next", L)) message = "NEXT"; - else if (!strncmp (s, "-prev", L)) message = "PREV"; - else if (!strncmp (s, "-exit", L)) message = "EXIT"; - else if (!strncmp (s, "-restart", L)) message = "RESTART"; - else if (!strncmp (s, "-demo", L)) message = "DEMO"; - else if (!strncmp (s, "-lock", L)) message = "LOCK"; - else USAGE (); - } - if (! message) USAGE (); - if (!dpyname) dpyname = (char *) getenv ("DISPLAY"); - dpy = XOpenDisplay (dpyname); - if (!dpy) - { - fprintf (stderr, "%s: can't open display %s\n", argv[0], - (dpyname ? dpyname : "(null)")); - exit (1); - } - window = find_screensaver_window (dpy, argv[0]); - - event.xany.type = ClientMessage; - event.xclient.display = dpy; - event.xclient.window = window; - event.xclient.message_type = XInternAtom (dpy, "SCREENSAVER", False); - event.xclient.format = 32; - event.xclient.data.l[0] = (long) XInternAtom (dpy, message, False); - if (! XSendEvent (dpy, window, False, 0L, &event)) - { - fprintf (stderr, "%s: XSendEvent(dpy, 0x%x ...) failed.\n", argv [0], - (unsigned int) window); - exit (1); - } - XSync (dpy, 0); - exit (0); -} diff --git a/driver/xscreensaver.c b/driver/xscreensaver.c deleted file mode 100644 index b0811c3e..00000000 --- a/driver/xscreensaver.c +++ /dev/null @@ -1,1183 +0,0 @@ -/* xscreensaver, Copyright (c) 1991-1996 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include "version.h" - -/* ======================================================================== - * First we wait until the keyboard and mouse become idle for the specified - * amount of time. We do this in one of three different ways: periodically - * checking with the XIdle server extension; selecting key and mouse events - * on (nearly) all windows; or by waiting for the MIT-SCREEN-SAVER extension - * to send us a "you are idle" event. - * - * Then, we map a full screen black window (or, in the case of the - * MIT-SCREEN-SAVER extension, use the one it gave us.) - * - * We place a __SWM_VROOT property on this window, so that newly-started - * clients will think that this window is a "virtual root" window. - * - * If there is an existing "virtual root" window (one that already had - * an __SWM_VROOT property) then we remove that property from that window. - * Otherwise, clients would see that window (the real virtual root) instead - * of ours (the impostor.) - * - * Then we pick a random program to run, and start it. Two assumptions - * are made about this program: that it has been specified with whatever - * command-line options are necessary to make it run on the root window; - * and that it has been compiled with vroot.h, so that it is able to find - * the root window when a virtual-root window manager (or this program) is - * running. - * - * Then, we wait for keyboard or mouse events to be generated on the window. - * When they are, we kill the inferior process, unmap the window, and restore - * the __SWM_VROOT property to the real virtual root window if there was one. - * - * While we are waiting, we also set up timers so that, after a certain - * amount of time has passed, we can start a different screenhack. We do - * this by killing the running child process with SIGTERM, and then starting - * a new one in the same way. - * - * If there was a real virtual root, meaning that we removed the __SWM_VROOT - * property from it, meaning we must (absolutely must) restore it before we - * exit, then we set up signal handlers for most signals (SIGINT, SIGTERM, - * etc.) that do this. Most Xlib and Xt routines are not reentrant, so it - * is not generally safe to call them from signal handlers; however, this - * program spends most of its time waiting, so the window of opportunity - * when code could be called reentrantly is fairly small; and also, the worst - * that could happen is that the call would fail. If we've gotten one of - * these signals, then we're on our way out anyway. If we didn't restore the - * __SWM_VROOT property, that would be very bad, so it's worth a shot. Note - * that this means that, if you're using a virtual-root window manager, you - * can really fuck up the world by killing this process with "kill -9". - * - * This program accepts ClientMessages of type SCREENSAVER; these messages - * may contain the atom ACTIVATE or DEACTIVATE, meaning to turn the - * screensaver on or off now, regardless of the idleness of the user, - * and a few other things. The included "xscreensaver_command" program - * sends these messsages. - * - * If we don't have the XIdle, MIT-SCREEN-SAVER, or SGI SCREEN_SAVER - * extensions, then we do the XAutoLock trick: notice every window that - * gets created, and wait 30 seconds or so until its creating process has - * settled down, and then select KeyPress events on those windows which - * already select for KeyPress events. It's important that we not select - * KeyPress on windows which don't select them, because that would - * interfere with event propagation. This will break if any program - * changes its event mask to contain KeyRelease or PointerMotion more than - * 30 seconds after creating the window, but that's probably pretty rare. - * - * The reason that we can't select KeyPresses on windows that don't have - * them already is that, when dispatching a KeyPress event, X finds the - * lowest (leafmost) window in the hierarchy on which *any* client selects - * for KeyPress, and sends the event to that window. This means that if a - * client had a window with subwindows, and expected to receive KeyPress - * events on the parent window instead of the subwindows, then that client - * would malfunction if some other client selected KeyPress events on the - * subwindows. It is an incredible misdesign that one client can make - * another client malfunction in this way. - * - * To detect mouse motion, we periodically wake up and poll the mouse - * position and button/modifier state, and notice when something has - * changed. We make this check every five seconds by default, and since the - * screensaver timeout has a granularity of one minute, this makes the - * chance of a false positive very small. We could detect mouse motion in - * the same way as keyboard activity, but that would suffer from the same - * "client changing event mask" problem that the KeyPress events hack does. - * I think polling is more reliable. - * - * None of this crap happens if we're using one of the extensions, so install - * one of them if the description above sounds just too flaky to live. It - * is, but those are your choices. - * - * A third idle-detection option could be implemented (but is not): when - * running on the console display ($DISPLAY is `localhost`:0) and we're on a - * machine where /dev/tty and /dev/mouse have reasonable last-modification - * times, we could just stat() those. But the incremental benefit of - * implementing this is really small, so forget I said anything. - * - * Debugging hints: - * - Have a second terminal handy. - * - Be careful where you set your breakpoints, you don't want this to - * stop under the debugger with the keyboard grabbed or the blackout - * window exposed. - * - you probably can't set breakpoints in functions that are called on - * the other side of a call to fork() -- if your clients are dying - * with signal 5, Trace/BPT Trap, you're losing in this way. - * - If you aren't using a server extension, don't leave this stopped - * under the debugger for very long, or the X input buffer will get - * huge because of the keypress events it's selecting for. This can - * make your X server wedge with "no more input buffers." - * - * ======================================================================== */ - -#if __STDC__ -#include -#include -#endif - -#include -#include -#include -#include -#include -#include - -#ifdef HAVE_XIDLE_EXTENSION -#include -#endif /* HAVE_XIDLE_EXTENSION */ - -#ifdef HAVE_MIT_SAVER_EXTENSION -#include -#endif /* HAVE_MIT_SAVER_EXTENSION */ - -#ifdef HAVE_SGI_SAVER_EXTENSION -#include -#endif /* HAVE_SGI_SAVER_EXTENSION */ - -#include "yarandom.h" -#include "xscreensaver.h" - -extern char *get_string_resource P((char *, char *)); -extern Bool get_boolean_resource P((char *, char *)); -extern int get_integer_resource P((char *, char *)); -extern unsigned int get_minutes_resource P((char *, char *)); -extern unsigned int get_seconds_resource P((char *, char *)); - -extern Visual *get_visual_resource P((Display *, char *, char *)); -extern int get_visual_depth P((Display *, Visual *)); - -extern void notice_events_timer P((XtPointer closure, XtIntervalId *timer)); -extern void cycle_timer P((void *junk1, XtPointer junk2)); -extern void activate_lock_timer P((void *junk1, XtPointer junk2)); -extern void sleep_until_idle P((Bool until_idle_p)); - -extern void ensure_no_screensaver_running P((void)); -extern void initialize_screensaver_window P((void)); -extern void disable_builtin_screensaver P((void)); - -extern void hack_environment P((void)); -extern void grab_keyboard_and_mouse P((void)); -extern void ungrab_keyboard_and_mouse P((void)); - -extern void save_argv P((int argc, char **argv)); - -extern void initialize_stderr P((void)); - -char *screensaver_version; -char *progname; -char *progclass; -XrmDatabase db; - -XtAppContext app; - -Display *dpy; -Screen *screen; -Visual *visual; -int visual_depth; - -Widget toplevel_shell; - -Time lock_timeout; - -extern Time timeout; -extern Time cycle; -#ifndef NO_LOCKING -extern Time passwd_timeout; -#endif -extern Time pointer_timeout; -extern Time notice_events_timeout; -extern XtIntervalId lock_id, cycle_id; - -Bool use_xidle_extension; -Bool use_mit_saver_extension; -Bool use_sgi_saver_extension; -Bool verbose_p; -Bool lock_p, locked_p; - -extern char **screenhacks; -extern int screenhacks_count; -extern char *shell; -extern int nice_inferior; -extern Window screensaver_window; -extern Cursor cursor; -extern Colormap cmap, cmap2; -extern Bool fade_p, unfade_p; -extern int fade_seconds, fade_ticks; -extern Bool install_cmap_p; -extern Bool locking_disabled_p; -extern char *nolock_reason; -extern Bool demo_mode_p; -extern Bool dbox_up_p; -extern int next_mode_p; - -#ifdef HAVE_MIT_SAVER_EXTENSION -int mit_saver_ext_event_number = 0; -int mit_saver_ext_error_number = 0; -#endif /* HAVE_MIT_SAVER_EXTENSION */ - -#ifdef HAVE_SGI_SAVER_EXTENSION -int sgi_saver_ext_event_number = 0; -int sgi_saver_ext_error_number = 0; -#endif /* HAVE_SGI_SAVER_EXTENSION */ - -static time_t initial_delay; - -extern Atom XA_VROOT, XA_XSETROOT_ID; -extern Atom XA_SCREENSAVER_VERSION, XA_SCREENSAVER_ID; - -static Atom XA_SCREENSAVER; -static Atom XA_ACTIVATE, XA_DEACTIVATE, XA_CYCLE, XA_NEXT, XA_PREV; -static Atom XA_EXIT, XA_RESTART, XA_DEMO, XA_LOCK; - -#ifdef NO_MOTIF /* kludge */ -Bool demo_mode_p = 0; -Bool dbox_up_p = 0; -#endif - - -#ifdef NO_DEMO_MODE -# define demo_mode() abort() -#else -extern void demo_mode P((void)); -#endif - -static XrmOptionDescRec options [] = { - { "-timeout", ".timeout", XrmoptionSepArg, 0 }, - { "-cycle", ".cycle", XrmoptionSepArg, 0 }, - { "-idelay", ".initialDelay", XrmoptionSepArg, 0 }, - { "-nice", ".nice", XrmoptionSepArg, 0 }, - { "-visual", ".visualID", XrmoptionSepArg, 0 }, - { "-lock-timeout", ".lockTimeout", XrmoptionSepArg, 0 }, - { "-install", ".installColormap", XrmoptionNoArg, "on" }, - { "-no-install", ".installColormap", XrmoptionNoArg, "off" }, - { "-verbose", ".verbose", XrmoptionNoArg, "on" }, - { "-silent", ".verbose", XrmoptionNoArg, "off" }, - { "-xidle-extension", ".xidleExtension", XrmoptionNoArg, "on" }, - { "-no-xidle-extension", ".xidleExtension", XrmoptionNoArg, "off" }, - { "-mit-extension", ".mitSaverExtension",XrmoptionNoArg, "on" }, - { "-no-mit-extension", ".mitSaverExtension",XrmoptionNoArg, "off" }, - { "-sgi-extension", ".sgiSaverExtension",XrmoptionNoArg, "on" }, - { "-no-sgi-extension", ".sgiSaverExtension",XrmoptionNoArg, "off" }, - { "-lock", ".lock", XrmoptionNoArg, "on" }, - { "-no-lock", ".lock", XrmoptionNoArg, "off" } -}; - -static char *defaults[] = { -#include "XScreenSaver.ad.h" - 0 -}; - -static void -do_help P((void)) -{ - printf ("\ -xscreensaver %s, copyright (c) 1991-1996 by Jamie Zawinski .\n\ -The standard Xt command-line options are accepted; other options include:\n\ -\n\ - -timeout When the screensaver should activate.\n\ - -cycle How long to let each hack run.\n\ - -idelay How long to sleep before startup.\n\ - -visual Which X visual to run on.\n\ - -demo Enter interactive demo mode on startup.\n\ - -install Install a private colormap.\n\ - -no-install Don't.\n\ - -verbose Be loud.\n\ - -silent Don't.\n\ - -xidle-extension Use the R5 XIdle server extension.\n\ - -no-xidle-extension Don't.\n\ - -mit-extension Use the R6 MIT_SCREEN_SAVER server extension.\n\ - -no-mit-extension Don't.\n\ - -sgi-extension Use the SGI SCREEN-SAVER server extension.\n\ - -no-sgi-extension Don't.\n\ - -lock Require a password before deactivating.\n\ - -no-lock Don't.\n\ - -lock-timeout Grace period before locking; default 0.\n\ - -help This message.\n\ -\n\ -Use the `xscreensaver-command' program to control a running screensaver.\n\ -\n\ -The *programs, *colorPrograms, and *monoPrograms resources control which\n\ -graphics demos will be launched by the screensaver. See the man page for\n\ -more details.\n\n", - screensaver_version); - -#ifdef NO_LOCKING - printf ("Support for locking was not enabled at compile-time.\n"); -#endif -#ifdef NO_DEMO_MODE - printf ("Support for demo mode was not enabled at compile-time.\n"); -#endif -#if !defined(HAVE_XIDLE_EXTENSION) && !defined(HAVE_MIT_SAVER_EXTENSION) && !defined(HAVE_SGI_SAVER_EXTENSION) - printf ("Support for the XIDLE, SCREEN_SAVER, and MIT-SCREEN-SAVER server\ - extensions\nwas not enabled at compile-time.\n"); -#endif /* !HAVE_XIDLE_EXTENSION && !HAVE_MIT_SAVER_EXTENSION && !HAVE_SGI_SAVER_EXTENSION */ - - fflush (stdout); - exit (1); -} - - -static void -get_screenhacks P((void)) -{ - char *data[3]; - int i, hacks_size = 10; - - data[0] = get_string_resource ("programs", "Programs"); - data[1] = ((CellsOfScreen (screen) <= 2) - ? get_string_resource ("monoPrograms", "MonoPrograms") - : get_string_resource ("colorPrograms", "ColorPrograms")); - data[2] = 0; - if (! data[0]) data[0] = data[1], data[1] = 0; - - screenhacks = (char **) malloc (sizeof (char *) * hacks_size); - screenhacks_count = 0; - - for (i = 0; data[i]; i++) - { - int j = 0; - char *d = data [i]; - int size = strlen (d); - while (j < size) - { - int end, start = j; - if (d[j] == ' ' || d[j] == '\t' || d[j] == '\n' || d[j] == 0) - { - j++; - continue; - } - if (hacks_size <= screenhacks_count) - screenhacks = (char **) realloc (screenhacks, - (hacks_size = hacks_size * 2) * - sizeof (char *)); - screenhacks [screenhacks_count++] = d + j; - while (d[j] != 0 && d[j] != '\n') - j++; - end = j; - while (j > start && (d[j-1] == ' ' || d[j-1] == '\t')) - j--; - d[j] = 0; - j = end + 1; - } - } - - /* shrink all whitespace to one space, for the benefit of the "demo" - mode display. We only do this when we can easily tell that the - whitespace is not significant (no shell metachars). - */ - for (i = 0; i < screenhacks_count; i++) - { - char *s = screenhacks [i]; - char *s2; - int L = strlen (s); - int j, k; - for (j = 0; j < L; j++) - { - switch (s[j]) - { - case '\'': case '"': case '`': case '\\': - goto DONE; - case '\t': - s[j] = ' '; - case ' ': - k = 0; - for (s2 = s+j+1; *s2 == ' ' || *s2 == '\t'; s2++) - k++; - if (k > 0) - for (s2 = s + j + 1; *s2; s2++) - s2 [0] = s2 [k]; - break; - } - } - DONE: - ; - } - - if (screenhacks_count) - { - /* Shrink down the screenhacks array to be only as big as it needs to. - This doesn't really matter at all. */ - screenhacks = (char **) - realloc (screenhacks, ((screenhacks_count + 1) * sizeof(char *))); - screenhacks [screenhacks_count] = 0; - } - else - { - free (screenhacks); - screenhacks = 0; - } -} - - -static void -get_resources P((void)) -{ - /* Note: we can't use the resource ".visual" because Xt is SO FUCKED. */ - visual = get_visual_resource (dpy, "visualID", "VisualID"); - timeout = 1000 * get_minutes_resource ("timeout", "Time"); - cycle = 1000 * get_minutes_resource ("cycle", "Time"); - lock_timeout = 1000 * get_minutes_resource ("lockTimeout", "Time"); - nice_inferior = get_integer_resource ("nice", "Nice"); - verbose_p = get_boolean_resource ("verbose", "Boolean"); - lock_p = get_boolean_resource ("lock", "Boolean"); - install_cmap_p = get_boolean_resource ("installColormap", "Boolean"); - fade_p = get_boolean_resource ("fade", "Boolean"); - unfade_p = get_boolean_resource ("unfade", "Boolean"); - fade_seconds = get_seconds_resource ("fadeSeconds", "Time"); - fade_ticks = get_integer_resource ("fadeTicks", "Integer"); - shell = get_string_resource ("bourneShell", "BourneShell"); - initial_delay = get_seconds_resource ("initialDelay", "Time"); - pointer_timeout = 1000 * get_seconds_resource ("pointerPollTime", "Time"); - notice_events_timeout = 1000 * get_seconds_resource ("windowCreationTimeout", - "Time"); -#ifndef NO_LOCKING - passwd_timeout = 1000 * get_seconds_resource ("passwdTimeout", "Time"); - if (passwd_timeout == 0) passwd_timeout = 30000; -#endif - if (timeout < 10000) timeout = 10000; - if (cycle != 0 && cycle < 2000) cycle = 2000; - if (pointer_timeout == 0) pointer_timeout = 5000; - if (notice_events_timeout == 0) notice_events_timeout = 10000; - if (fade_seconds == 0 || fade_ticks == 0) fade_p = False; - if (! fade_p) unfade_p = False; - - visual_depth = get_visual_depth (dpy, visual); - - if (visual_depth <= 1 || CellsOfScreen (screen) <= 2) - install_cmap_p = False; - -#ifdef NO_LOCKING - locking_disabled_p = True; - nolock_reason = "not compiled with locking support"; - if (lock_p) - { - lock_p = False; - fprintf (stderr, "%s: %snot compiled with support for locking.\n", - progname, (verbose_p ? "## " : "")); - } -#else /* ! NO_LOCKING */ - if (lock_p && locking_disabled_p) - { - fprintf (stderr, "%s: %slocking is disabled (%s).\n", progname, - (verbose_p ? "## " : ""), nolock_reason); - lock_p = False; - } -#endif /* ! NO_LOCKING */ - - /* don't set use_xidle_extension unless it is explicitly specified */ - if (get_string_resource ("xidleExtension", "Boolean")) - use_xidle_extension = get_boolean_resource ("xidleExtension", "Boolean"); - else -#ifdef HAVE_XIDLE_EXTENSION /* pick a default */ - use_xidle_extension = True; -#else /* !HAVE_XIDLE_EXTENSION */ - use_xidle_extension = False; -#endif /* !HAVE_XIDLE_EXTENSION */ - - /* don't set use_saver_extension unless it is explicitly specified */ - if (get_string_resource ("mitSaverExtension", "Boolean")) - use_mit_saver_extension = get_boolean_resource ("mitSaverExtension", - "Boolean"); - else -#ifdef HAVE_MIT_SAVER_EXTENSION /* pick a default */ - use_mit_saver_extension = True; -#else /* !HAVE_MIT_SAVER_EXTENSION */ - use_mit_saver_extension = False; -#endif /* !HAVE_MIT_SAVER_EXTENSION */ - - /* don't set use_saver_extension unless it is explicitly specified */ - if (get_string_resource ("sgiSaverExtension", "Boolean")) - use_sgi_saver_extension = get_boolean_resource ("sgiSaverExtension", - "Boolean"); - else -#ifdef HAVE_SGI_SAVER_EXTENSION /* pick a default */ - use_sgi_saver_extension = True; -#else /* !HAVE_SGI_SAVER_EXTENSION */ - use_sgi_saver_extension = False; -#endif /* !HAVE_SGI_SAVER_EXTENSION */ - - get_screenhacks (); -} - -char * -timestring P((void)) -{ - long now = time ((time_t *) 0); - char *str = (char *) ctime (&now); - char *nl = (char *) strchr (str, '\n'); - if (nl) *nl = 0; /* take off that dang newline */ - return str; -} - -#ifdef NO_SETUID -# define hack_uid() -# define hack_uid_warn() -#else /* !NO_SETUID */ -extern void hack_uid P((void)); -extern void hack_uid_warn P((void)); -#endif /* NO_SETUID */ - - -#ifndef NO_LOCKING -extern Bool unlock_p P((Widget)); -extern Bool lock_init P((void)); -#endif - -static void initialize P((int argc, char **argv)); -static void main_loop P((void)); - -void -main (argc, argv) - int argc; - char **argv; -{ - initialize (argc, argv); - main_loop (); -} - - -static int -saver_ehandler (dpy, error) - Display *dpy; - XErrorEvent *error; -{ - fprintf (real_stderr, "\nX error in %s:\n", progname); - if (XmuPrintDefaultErrorMessage (dpy, error, real_stderr)) - exit (-1); - else - fprintf (real_stderr, " (nonfatal.)\n"); - return 0; -} - -static void -#if __STDC__ -initialize_connection (int argc, char **argv) -#else -initialize_connection (argc, argv) - int argc; - char **argv; -#endif -{ - toplevel_shell = XtAppInitialize (&app, progclass, - options, XtNumber (options), - &argc, argv, defaults, 0, 0); - - dpy = XtDisplay (toplevel_shell); - screen = XtScreen (toplevel_shell); - db = XtDatabase (dpy); - XtGetApplicationNameAndClass (dpy, &progname, &progclass); - - if (argc == 2 && !strcmp (argv[1], "-help")) - do_help (); - else if (argc > 1) - { - fprintf (stderr, "%s: unknown option %s\n", progname, argv [1]); - exit (1); - } - get_resources (); - hack_uid_warn (); - hack_environment (); - XA_VROOT = XInternAtom (dpy, "__SWM_VROOT", False); - XA_SCREENSAVER = XInternAtom (dpy, "SCREENSAVER", False); - XA_SCREENSAVER_VERSION = XInternAtom (dpy, "_SCREENSAVER_VERSION", False); - XA_SCREENSAVER_ID = XInternAtom (dpy, "_SCREENSAVER_ID", False); - XA_XSETROOT_ID = XInternAtom (dpy, "_XSETROOT_ID", False); - XA_ACTIVATE = XInternAtom (dpy, "ACTIVATE", False); - XA_DEACTIVATE = XInternAtom (dpy, "DEACTIVATE", False); - XA_RESTART = XInternAtom (dpy, "RESTART", False); - XA_CYCLE = XInternAtom (dpy, "CYCLE", False); - XA_NEXT = XInternAtom (dpy, "NEXT", False); - XA_PREV = XInternAtom (dpy, "PREV", False); - XA_EXIT = XInternAtom (dpy, "EXIT", False); - XA_DEMO = XInternAtom (dpy, "DEMO", False); - XA_LOCK = XInternAtom (dpy, "LOCK", False); -} - -#ifdef HAVE_MIT_SAVER_EXTENSION - -static int -ignore_all_errors_ehandler (dpy, error) - Display *dpy; - XErrorEvent *error; -{ - return 0; -} - -static void -init_mit_saver_extension () -{ - XID kill_id; - Atom kill_type; - Window root = RootWindowOfScreen (screen); - Pixmap blank_pix = XCreatePixmap (dpy, root, 1, 1, 1); - - /* Kill off the old MIT-SCREEN-SAVER client if there is one. - This tends to generate X errors, though (possibly due to a bug - in the server extension itself?) so just ignore errors here. */ - if (XScreenSaverGetRegistered (dpy, XScreenNumberOfScreen (screen), - &kill_id, &kill_type) - && kill_id != blank_pix) - { - int (*old_handler) (); - old_handler = XSetErrorHandler (ignore_all_errors_ehandler); - XKillClient (dpy, kill_id); - XSync (dpy, False); - XSetErrorHandler (old_handler); - } - - XScreenSaverSelectInput (dpy, root, ScreenSaverNotifyMask); - - XScreenSaverRegister (dpy, XScreenNumberOfScreen (screen), - (XID) blank_pix, XA_PIXMAP); -} -#endif /* HAVE_MIT_SAVER_EXTENSION */ - - -#ifdef HAVE_SGI_SAVER_EXTENSION - -static void -init_sgi_saver_extension () -{ - if (! XScreenSaverEnable (dpy, XScreenNumberOfScreen(screen))) - { - fprintf (stderr, - "%s: %sSGI SCREEN_SAVER extension exists, but can't be initialized;\n\ - perhaps some other screensaver program is already running?\n", - progname, (verbose_p ? "## " : "")); - use_sgi_saver_extension = False; - } -} - -#endif /* HAVE_SGI_SAVER_EXTENSION */ - - -extern void init_sigchld P((void)); - -static void -initialize (argc, argv) - int argc; - char **argv; -{ - Bool initial_demo_mode_p = False; - screensaver_version = (char *) malloc (5); - memcpy (screensaver_version, screensaver_id + 17, 4); - screensaver_version [4] = 0; - progname = argv[0]; /* reset later; this is for the benefit of lock_init() */ - -#ifdef NO_LOCKING - locking_disabled_p = True; - nolock_reason = "not compiled with locking support"; -#else - locking_disabled_p = False; - -#ifdef SCO - set_auth_parameters(argc, argv); -#endif - - if (! lock_init ()) /* before hack_uid() for proper permissions */ - { - locking_disabled_p = True; - nolock_reason = "error getting password"; - } -#endif - - hack_uid (); - progclass = "XScreenSaver"; - - /* remove -demo switch before saving argv */ - { - int i; - for (i = 1; i < argc; i++) - while (!strcmp ("-demo", argv [i])) - { - int j; - initial_demo_mode_p = True; - for (j = i; j < argc; j++) - argv [j] = argv [j+1]; - argv [j] = 0; - argc--; - if (argc <= i) break; - } - } - save_argv (argc, argv); - initialize_connection (argc, argv); - ensure_no_screensaver_running (); - - if (verbose_p) - printf ("\ -%s %s, copyright (c) 1991-1996 by Jamie Zawinski .\n\ - pid = %d.\n", progname, screensaver_version, getpid ()); - ensure_no_screensaver_running (); - - demo_mode_p = initial_demo_mode_p; - screensaver_window = 0; - cursor = 0; - srandom ((int) time ((time_t *) 0)); - cycle_id = 0; - lock_id = 0; - locked_p = False; - - if (use_sgi_saver_extension) - { -#ifdef HAVE_SGI_SAVER_EXTENSION - if (! XScreenSaverQueryExtension (dpy, - &sgi_saver_ext_event_number, - &sgi_saver_ext_error_number)) - { - fprintf (stderr, - "%s: %sdisplay %s does not support the SGI SCREEN_SAVER extension.\n", - progname, (verbose_p ? "## " : ""), DisplayString (dpy)); - use_sgi_saver_extension = False; - } - else if (use_mit_saver_extension) - { - fprintf (stderr, "%s: %sSGI SCREEN_SAVER extension used instead\ - of MIT-SCREEN-SAVER extension.\n", - progname, (verbose_p ? "## " : "")); - use_mit_saver_extension = False; - } - else if (use_xidle_extension) - { - fprintf (stderr, - "%s: %sSGI SCREEN_SAVER extension used instead of XIDLE extension.\n", - progname, (verbose_p ? "## " : "")); - use_xidle_extension = False; - } -#else /* !HAVE_MIT_SAVER_EXTENSION */ - fprintf (stderr, - "%s: %snot compiled with support for the SGI SCREEN_SAVER extension.\n", - progname, (verbose_p ? "## " : "")); - use_sgi_saver_extension = False; -#endif /* !HAVE_SGI_SAVER_EXTENSION */ - } - - if (use_mit_saver_extension) - { -#ifdef HAVE_MIT_SAVER_EXTENSION - if (! XScreenSaverQueryExtension (dpy, - &mit_saver_ext_event_number, - &mit_saver_ext_error_number)) - { - fprintf (stderr, - "%s: %sdisplay %s does not support the MIT-SCREEN-SAVER extension.\n", - progname, (verbose_p ? "## " : ""), DisplayString (dpy)); - use_mit_saver_extension = False; - } - else if (use_xidle_extension) - { - fprintf (stderr, - "%s: %sMIT-SCREEN-SAVER extension used instead of XIDLE extension.\n", - progname, (verbose_p ? "## " : "")); - use_xidle_extension = False; - } -#else /* !HAVE_MIT_SAVER_EXTENSION */ - fprintf (stderr, - "%s: %snot compiled with support for the MIT-SCREEN-SAVER extension.\n", - progname, (verbose_p ? "## " : "")); - use_mit_saver_extension = False; -#endif /* !HAVE_MIT_SAVER_EXTENSION */ - } - - if (use_xidle_extension) - { -#ifdef HAVE_XIDLE_EXTENSION - int first_event, first_error; - if (! XidleQueryExtension (dpy, &first_event, &first_error)) - { - fprintf (stderr, - "%s: %sdisplay %s does not support the XIdle extension.\n", - progname, (verbose_p ? "## " : ""), DisplayString (dpy)); - use_xidle_extension = False; - } -#else /* !HAVE_XIDLE_EXTENSION */ - fprintf (stderr, "%s: %snot compiled with support for XIdle.\n", - progname, (verbose_p ? "## " : "")); - use_xidle_extension = False; -#endif /* !HAVE_XIDLE_EXTENSION */ - } - - /* Call this only after having probed for presence of desired extension. */ - initialize_screensaver_window (); - - init_sigchld (); - - disable_builtin_screensaver (); - -#ifdef HAVE_MIT_SAVER_EXTENSION - if (use_mit_saver_extension) - init_mit_saver_extension (); -#endif /* HAVE_MIT_SAVER_EXTENSION */ - -#ifdef HAVE_SGI_SAVER_EXTENSION - if (use_sgi_saver_extension) - init_sgi_saver_extension (); -#endif /* HAVE_SGI_SAVER_EXTENSION */ - - if (verbose_p && use_mit_saver_extension) - fprintf (stderr, "%s: using MIT-SCREEN-SAVER server extension.\n", - progname); - if (verbose_p && use_sgi_saver_extension) - fprintf (stderr, "%s: using SGI SCREEN_SAVER server extension.\n", - progname); - if (verbose_p && use_xidle_extension) - fprintf (stderr, "%s: using XIdle server extension.\n", - progname); - - initialize_stderr (); - XSetErrorHandler (saver_ehandler); - - if (initial_demo_mode_p) - /* If the user wants demo mode, don't wait around before doing it. */ - initial_delay = 0; - - if (!use_xidle_extension && - !use_mit_saver_extension && - !use_sgi_saver_extension) - { - if (initial_delay) - { - if (verbose_p) - { - printf ("%s: waiting for %d second%s...", progname, - (int) initial_delay, (initial_delay == 1 ? "" : "s")); - fflush (stdout); - } - sleep (initial_delay); - if (verbose_p) - printf (" done.\n"); - } - if (verbose_p) - { - printf ("%s: selecting events on extant windows...", progname); - fflush (stdout); - } - notice_events_timer ((XtPointer) - RootWindowOfScreen (XtScreen (toplevel_shell)), - 0); - if (verbose_p) - printf (" done.\n"); - } -} - - -extern void suspend_screenhack P((Bool suspend_p)); - -static void -main_loop () -{ - while (1) - { - if (! demo_mode_p) - sleep_until_idle (True); - - if (demo_mode_p) - demo_mode (); - else - { - if (verbose_p) - printf ("%s: user is idle; waking up at %s.\n", progname, - timestring()); - blank_screen (); - spawn_screenhack (True); - if (cycle) - cycle_id = XtAppAddTimeOut (app, cycle, - (XtTimerCallbackProc)cycle_timer, 0); - -#ifndef NO_LOCKING - if (lock_p && lock_timeout == 0) - locked_p = True; - if (lock_p && !locked_p) - /* locked_p might be true already because of ClientMessage */ - lock_id = XtAppAddTimeOut (app,lock_timeout, - (XtTimerCallbackProc) - activate_lock_timer,0); -#endif - - PASSWD_INVALID: - - sleep_until_idle (False); /* until not idle */ - -#ifndef NO_LOCKING - if (locked_p) - { - Bool val; - if (locking_disabled_p) abort (); - dbox_up_p = True; - - /* We used to ungrab the keyboard here, before calling unlock_p() - to pop up the dialog box. This left the keyboard ungrabbed - for a small window, during an insecure state. Bennett Todd - was seeing the bahavior that, when the load was high, he could - actually get characters through to a shell under the saver - window (he accidentally typed his password there...) - - So the ungrab has been moved down into pop_passwd_dialog() - just after the server is grabbed, closing this window - entirely. - */ - /* ungrab_keyboard_and_mouse (); */ - - suspend_screenhack (True); - XUndefineCursor (dpy, screensaver_window); - if (verbose_p) - printf ("%s: prompting for password.\n", progname); - val = unlock_p (toplevel_shell); - if (verbose_p && val == False) - printf ("%s: password incorrect!\n", progname); - dbox_up_p = False; - XDefineCursor (dpy, screensaver_window, cursor); - suspend_screenhack (False); - - /* I think this grab is now redundant, but it shouldn't hurt. */ - grab_keyboard_and_mouse (); - - if (! val) - goto PASSWD_INVALID; - locked_p = False; - } -#endif - unblank_screen (); - kill_screenhack (); - if (cycle_id) - { - XtRemoveTimeOut (cycle_id); - cycle_id = 0; - } -#ifndef NO_LOCKING - if (lock_id) - { - XtRemoveTimeOut (lock_id); - lock_id = 0; - } -#endif - if (verbose_p) - printf ("%s: user is active; going to sleep at %s.\n", progname, - timestring ()); - } - } -} - - - -Bool -handle_clientmessage (event, until_idle_p) - XEvent *event; - Bool until_idle_p; -{ - Atom type = 0; - if (event->xclient.message_type != XA_SCREENSAVER) - { - char *str; - str = XGetAtomName (dpy, event->xclient.message_type); - fprintf (stderr, "%s: %sunrecognised ClientMessage type %s received\n", - progname, (verbose_p ? "## " : ""), - (str ? str : "(null)")); - if (str) XFree (str); - return False; - } - if (event->xclient.format != 32) - { - fprintf (stderr, "%s: %sClientMessage of format %d received, not 32\n", - progname, (verbose_p ? "## " : ""), event->xclient.format); - return False; - } - type = event->xclient.data.l[0]; - if (type == XA_ACTIVATE) - { - if (until_idle_p) - { - if (verbose_p) - printf ("%s: ACTIVATE ClientMessage received.\n", progname); - if (use_mit_saver_extension || use_sgi_saver_extension) - { - XForceScreenSaver (dpy, ScreenSaverActive); - return False; - } - else - { - return True; - } - } - fprintf (stderr, - "%s: %sClientMessage ACTIVATE received while already active.\n", - progname, (verbose_p ? "## " : "")); - } - else if (type == XA_DEACTIVATE) - { - if (! until_idle_p) - { - if (verbose_p) - printf ("%s: DEACTIVATE ClientMessage received.\n", progname); - if (use_mit_saver_extension || use_sgi_saver_extension) - { - XForceScreenSaver (dpy, ScreenSaverReset); - return False; - } - else - { - return True; - } - } - fprintf (stderr, - "%s: %sClientMessage DEACTIVATE received while inactive.\n", - progname, (verbose_p ? "## " : "")); - } - else if (type == XA_CYCLE) - { - if (! until_idle_p) - { - if (verbose_p) - printf ("%s: CYCLE ClientMessage received.\n", progname); - if (cycle_id) - XtRemoveTimeOut (cycle_id); - cycle_id = 0; - cycle_timer (0, 0); - return False; - } - fprintf (stderr, - "%s: %sClientMessage CYCLE received while inactive.\n", - progname, (verbose_p ? "## " : "")); - } - else if (type == XA_NEXT || type == XA_PREV) - { - if (verbose_p) - printf ("%s: %s ClientMessage received.\n", progname, - (type == XA_NEXT ? "NEXT" : "PREV")); - next_mode_p = 1 + (type == XA_PREV); - - if (! until_idle_p) - { - if (cycle_id) - XtRemoveTimeOut (cycle_id); - cycle_id = 0; - cycle_timer (0, 0); - } - else - return True; - } - else if (type == XA_EXIT) - { - /* Ignore EXIT message if the screen is locked. */ - if (until_idle_p || !locked_p) - { - if (verbose_p) - printf ("%s: EXIT ClientMessage received.\n", progname); - if (! until_idle_p) - { - unblank_screen (); - kill_screenhack (); - XSync (dpy, False); - } - exit (0); - } - else - fprintf (stderr, "%s: %sEXIT ClientMessage received while locked.\n", - progname, (verbose_p ? "## " : "")); - } - else if (type == XA_RESTART) - { - /* The RESTART message works whether the screensaver is active or not, - unless the screen is locked, in which case it doesn't work. - */ - if (until_idle_p || !locked_p) - { - if (verbose_p) - printf ("%s: RESTART ClientMessage received.\n", progname); - if (! until_idle_p) - { - unblank_screen (); - kill_screenhack (); - XSync (dpy, False); - } - restart_process (); - } - else - fprintf(stderr, "%s: %sRESTART ClientMessage received while locked.\n", - progname, (verbose_p ? "## " : "")); - } - else if (type == XA_DEMO) - { -#ifdef NO_DEMO_MODE - fprintf (stderr, - "%s: %snot compiled with support for DEMO mode\n", - progname, (verbose_p ? "## " : "")); -#else - if (until_idle_p) - { - if (verbose_p) - printf ("%s: DEMO ClientMessage received.\n", progname); - demo_mode_p = True; - return True; - } - fprintf (stderr, - "%s: %sDEMO ClientMessage received while active.\n", - progname, (verbose_p ? "## " : "")); -#endif - } - else if (type == XA_LOCK) - { -#ifdef NO_LOCKING - fprintf (stderr, "%s: %snot compiled with support for LOCK mode\n", - progname, (verbose_p ? "## " : "")); -#else - if (locking_disabled_p) - fprintf (stderr, - "%s: %sLOCK ClientMessage received, but locking is disabled.\n", - progname, (verbose_p ? "## " : "")); - else if (locked_p) - fprintf (stderr, - "%s: %sLOCK ClientMessage received while already locked.\n", - progname, (verbose_p ? "## " : "")); - else - { - locked_p = True; - if (verbose_p) - printf ("%s: LOCK ClientMessage received;%s locking.\n", - progname, until_idle_p ? " activating and" : ""); - - if (lock_id) /* we're doing it now, so lose the timeout */ - { - XtRemoveTimeOut (lock_id); - lock_id = 0; - } - - if (until_idle_p) - { - if (use_mit_saver_extension || use_sgi_saver_extension) - { - XForceScreenSaver (dpy, ScreenSaverActive); - return False; - } - else - { - return True; - } - } - } -#endif - } - else - { - char *str; - str = (type ? XGetAtomName(dpy, type) : 0); - if (str) - fprintf (stderr, - "%s: %sunrecognised screensaver ClientMessage %s received\n", - progname, (verbose_p ? "## " : ""), str); - else - fprintf (stderr, - "%s: %sunrecognised screensaver ClientMessage 0x%x received\n", - progname, (verbose_p ? "## " : ""), - (unsigned int) event->xclient.data.l[0]); - if (str) XFree (str); - } - return False; -} diff --git a/driver/xscreensaver.h b/driver/xscreensaver.h deleted file mode 100644 index 9b933347..00000000 --- a/driver/xscreensaver.h +++ /dev/null @@ -1,70 +0,0 @@ -/* xscreensaver, Copyright (c) 1993-1996 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#if __STDC__ -# include -# include -#endif - -#include - -#if __STDC__ -# define P(x)x -#else -# define P(x)() -# ifndef const -# define const /**/ -# endif -#endif - -#ifdef NO_MOTIF -# define NO_DEMO_MODE - - /* #### If anyone ever finishes the Athena locking code, remove this. - Until then, Locking requires Motif. */ -# ifndef NO_LOCKING -# define NO_LOCKING -# endif - -#endif - -extern char *progname, *progclass; -extern char *screensaver_version; - -extern Display *dpy; -extern Screen *screen; -extern Visual *visual; -extern int visual_depth; - -extern Bool verbose_p; - -extern FILE *real_stderr; -extern FILE *real_stdout; - -extern void initialize_screensaver_window P((void)); -extern void raise_window P((Bool inhibit_fade, Bool between_hacks_p)); -extern void blank_screen P((void)); -extern void unblank_screen P((void)); -extern void restart_process P((void)); - -extern void restore_real_vroot P((void)); - -extern void spawn_screenhack P((Bool)); -extern void kill_screenhack P((void)); - -extern Colormap copy_colormap P((Display *, Colormap, Colormap)); -extern void fade_colormap P((Display*,Colormap,Colormap,int,int,Bool,Bool)); -extern void blacken_colormap P((Display *, Colormap)); - -extern int BadWindow_ehandler P((Display *dpy, XErrorEvent *error)); - -extern char *timestring P((void)); -extern Bool window_exists_p P((Display *dpy, Window window)); diff --git a/hacks/.gdbinit b/hacks/.gdbinit deleted file mode 100644 index 0bd01420..00000000 --- a/hacks/.gdbinit +++ /dev/null @@ -1,3 +0,0 @@ -b exit -b abort -set args -geom =700x700+0+0 diff --git a/hacks/Imakefile b/hacks/Imakefile deleted file mode 100644 index e9e6ed87..00000000 --- a/hacks/Imakefile +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Imakefile file for xscreensaver, Copyright (c) 1993, 1995 Jamie Zawinski. - * - * You should not need to edit this file; edit ../config.h instead. - * - */ - -#include "../config.h" - -#ifdef HAVE_XPM - /* Yeah, this means that all hacks link against libXpm even though only - one hack actually uses it. It doesn't matter: it's a library. */ -# define XPMDEFS -DHAVE_XPM -# define XPMLIB -lXpm -#else -# define XPMDEFS -# define XPMLIB -#endif - - STAR = * - UTILS = ../utils - INCLUDES = -I$(UTILS) - DEFINES = R5ISMS XPMDEFS -LOCAL_LIBRARIES = $(XMULIB) $(XTOOLLIB) XPMLIB $(EXTENSIONLIB) $(XLIB) -lm - HACKS = attraction.c greynetic.c helix.c hopalong.c xroger-hack.c \ - noseguy.c pyro.c qix.c rocks.c rorschach.c blitspin.c \ - imsmap.c slidescreen.c decayscreen.c maze.c hypercube.c \ - halo.c flame.c pedal.c lmorph.c \ - bubbles.c bubbles.h bubbles_default.c - MEN = attraction.man greynetic.man helix.man hopalong.man \ - noseguy.man pyro.man xroger.man qix.man rocks.man \ - rorschach.man blitspin.man imsmap.man slidescreen.man \ - decayscreen.man maze.man hypercube.man halo.man flame.man \ - pedal.man lmorph.man \ - bubbles.man bubbles.README - TARFILES = README Imakefile screenhack.c $(HACKS) screenhack.h \ - vroot.h xlock.h default.xbm $(MEN) .gdbinit \ - noses/nose.$(STAR) \ - bubbles-tools/bubbles$(STAR) \ - bubbles-tools/xpm$(STAR) \ - bubbles-sources/$(STAR).pov \ - bubbles-samples/$(STAR).bub.gz - -all:: - -echo_tarfiles: - @echo $(TARFILES) - -#define ScreenhackTarget(p,ps,deps) @@\ -all:: p @@\ -p: deps screenhack.h ps.o $(DEPLIBS) @@\ - RemoveTargetProgram($@) @@\ - $(CCENVSETUP) \ - $(CC) -o $@ $(LDOPTIONS) deps ps.o $(LOCAL_LIBRARIES) $(LDLIBS) @@\ - @@\ -InstallProgram(p,$(BINDIR)) @@\ -InstallManPage(p,$(MANDIR)) @@\ -clean:: @@\ - $(RM) p - -HOBJS=screenhack.o $(UTILS)/resources.o $(UTILS)/visual.o \ - $(UTILS)/usleep.o $(UTILS)/yarandom.o - -ScreenhackTarget (qix, qix, $(HOBJS) $(UTILS)/hsv.o) -ScreenhackTarget (helix, helix, $(HOBJS) $(UTILS)/hsv.o) -ScreenhackTarget (pyro, pyro, $(HOBJS) $(UTILS)/hsv.o) -ScreenhackTarget (attraction, attraction, $(HOBJS) $(UTILS)/hsv.o $(UTILS)/spline.o) -ScreenhackTarget (rorschach, rorschach, $(HOBJS) $(UTILS)/hsv.o) -ScreenhackTarget (hopalong, hopalong, $(HOBJS) $(UTILS)/hsv.o) -ScreenhackTarget (xroger, xroger-hack, $(HOBJS) $(UTILS)/hsv.o $(UTILS)/xroger.o) -ScreenhackTarget (rocks, rocks, $(HOBJS)) -ScreenhackTarget (noseguy, noseguy, $(HOBJS)) -ScreenhackTarget (blitspin, blitspin, $(HOBJS)) -ScreenhackTarget (greynetic, greynetic, $(HOBJS)) -ScreenhackTarget (slidescreen, slidescreen, $(HOBJS) $(UTILS)/grabscreen.o) -ScreenhackTarget (decayscreen, decayscreen, $(HOBJS) $(UTILS)/grabscreen.o) -ScreenhackTarget (imsmap, imsmap, $(HOBJS) $(UTILS)/hsv.o) -ScreenhackTarget (maze, maze, $(HOBJS) $(UTILS)/xroger.o) -ScreenhackTarget (hypercube, hypercube, $(HOBJS)) -ScreenhackTarget (halo, halo, $(HOBJS) $(UTILS)/hsv.o) -ScreenhackTarget (flame, flame, $(HOBJS) $(UTILS)/hsv.o) -ScreenhackTarget (pedal, pedal, $(HOBJS) $(UTILS)/hsv.o) -ScreenhackTarget (lmorph, lmorph, $(HOBJS)) -ScreenhackTarget (bubbles, bubbles, bubbles_default.o $(HOBJS)) diff --git a/hacks/README b/hacks/README deleted file mode 100644 index c5ebcd64..00000000 --- a/hacks/README +++ /dev/null @@ -1,9 +0,0 @@ - -This directory contains various graphics hacks. These are independent from -the xscreensaver program (in the ../driver/ directory) but some of them use -the utility functions found in the ../utils/ directory. - -If you have compilation problems, check the parameters in ../config.h. - -The file xlock.h makes it really easy to turn `xlock' modules into standalone -programs that can be used with xscreensaver; check it out. diff --git a/hacks/attraction.c b/hacks/attraction.c deleted file mode 100644 index 8e3f188f..00000000 --- a/hacks/attraction.c +++ /dev/null @@ -1,685 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* Simulation of a pair of quasi-gravitational fields, maybe sorta kinda - a little like the strong and weak electromagnetic forces. Derived from - a Lispm screensaver by John Pezaris . Mouse control and - viscosity added by "Philip Edward Cutone, III" . - - John sez: - - The simulation started out as a purely accurate gravitational simulation, - but, with constant simulation step size, I quickly realized the field being - simulated while grossly gravitational was, in fact, non-conservative. It - also had the rather annoying behavior of dealing very badly with colliding - orbs. Therefore, I implemented a negative-gravity region (with two - thresholds; as I read your code, you only implemented one) to prevent orbs - from every coming too close together, and added a viscosity factor if the - speed of any orb got too fast. This provides a nice stable system with - interesting behavior. - - I had experimented with a number of fields including the van der Waals - force (very interesting orbiting behavior) and 1/r^3 gravity (not as - interesting as 1/r^2). An even normal viscosity (rather than the - thresholded version to bleed excess energy) is also not interesting. - The 1/r^2, -1/r^2, -10/r^2 thresholds proved not only robust but also - interesting -- the orbs never collided and the threshold viscosity fixed - the non-conservational problem. - - Philip sez: - > An even normal viscosity (rather than the thresholded version to - > bleed excess energy) is also not interesting. - - unless you make about 200 points.... set the viscosity to about .8 - and drag the mouse through it. it makes a nice wave which travels - through the field. - */ - -#include -#include -#include "screenhack.h" -#include "spline.h" - -struct ball { - float x, y; - float vx, vy; - float dx, dy; - float mass; - int size; - XColor color; - int hue; -}; - -static unsigned int default_fg_pixel; -static struct ball *balls; -static int npoints; -static int threshold; -static int delay; -static int global_size; -static int segments; -static Bool glow_p; -static Bool orbit_p; -static XPoint *point_stack; -static int point_stack_size, point_stack_fp, pixel_stack_fp, pixel_stack_size; -static unsigned long *pixel_stack; -static unsigned int color_shift; - -/*flip mods for mouse interaction*/ -static Bool mouse_p; -int mouse_x, mouse_y, mouse_mass, root_x, root_y; -static float viscosity; - -static enum object_mode { - ball_mode, line_mode, polygon_mode, spline_mode, spline_filled_mode, - tail_mode -} mode; - -static enum color_mode { - cycle_mode, random_mode -} cmode; - -static GC draw_gc, erase_gc; - -#define MAX_SIZE 16 - -#define min(a,b) ((a)<(b)?(a):(b)) -#define max(a,b) ((a)>(b)?(a):(b)) - -static void -init_balls (dpy, window) - Display *dpy; - Window window; -{ - int i; - XWindowAttributes xgwa; - XGCValues gcv; - int xlim, ylim, midx, midy, r, vx, vy; - double th; - Colormap cmap; - char *mode_str; - XGetWindowAttributes (dpy, window, &xgwa); - xlim = xgwa.width; - ylim = xgwa.height; - cmap = xgwa.colormap; - midx = xlim/2; - midy = ylim/2; - r = get_integer_resource ("radius", "Integer"); - if (r <= 0 || r > min (xlim/2, ylim/2)) - r = min (xlim/2, ylim/2) - 50; - vx = get_integer_resource ("vx", "Integer"); - vy = get_integer_resource ("vy", "Integer"); - npoints = get_integer_resource ("points", "Integer"); - if (npoints < 1) - npoints = 3 + (random () % 5); - balls = (struct ball *) malloc (npoints * sizeof (struct ball)); - segments = get_integer_resource ("segments", "Integer"); - if (segments < 0) segments = 1; - threshold = get_integer_resource ("threshold", "Integer"); - if (threshold < 0) threshold = 0; - delay = get_integer_resource ("delay", "Integer"); - if (delay < 0) delay = 0; - global_size = get_integer_resource ("size", "Integer"); - if (global_size < 0) global_size = 0; - glow_p = get_boolean_resource ("glow", "Boolean"); - orbit_p = get_boolean_resource ("orbit", "Boolean"); - color_shift = get_integer_resource ("colorShift", "Integer"); - if (color_shift >= 360) color_shift = 5; - - /*flip mods for mouse interaction*/ - mouse_p = get_boolean_resource ("mouse", "Boolean"); - mouse_mass = get_integer_resource ("mouseSize", "Integer"); - mouse_mass = mouse_mass * mouse_mass *10; - - viscosity = get_float_resource ("viscosity", "Float"); - - mode_str = get_string_resource ("mode", "Mode"); - if (! mode_str) mode = ball_mode; - else if (!strcmp (mode_str, "balls")) mode = ball_mode; - else if (!strcmp (mode_str, "lines")) mode = line_mode; - else if (!strcmp (mode_str, "polygons")) mode = polygon_mode; - else if (!strcmp (mode_str, "tails")) mode = tail_mode; - else if (!strcmp (mode_str, "splines")) mode = spline_mode; - else if (!strcmp (mode_str, "filled-splines")) mode = spline_filled_mode; - else { - fprintf (stderr, - "%s: mode must be balls, lines, tails, polygons, splines, or\n\ - filled-splines, not \"%s\"\n", - progname, mode_str); - exit (1); - } - - mode_str = get_string_resource ("colorMode", "ColorMode"); - if (! mode_str) cmode = cycle_mode; - else if (!strcmp (mode_str, "cycle")) cmode = cycle_mode; - else if (!strcmp (mode_str, "random")) cmode = random_mode; - else { - fprintf (stderr, "%s: colorMode must be cycle or random, not \"%s\"\n", - progname, mode_str); - exit (1); - } - - if (mode != ball_mode && mode != tail_mode) glow_p = False; - - if (mode == polygon_mode && npoints < 3) - mode = line_mode; - - if (mode != ball_mode) - { - int size = (segments ? segments : 1); - point_stack_size = size * (npoints + 1); - point_stack = (XPoint *) calloc (point_stack_size, sizeof (XPoint)); - point_stack_fp = 0; - if (segments > 0) - pixel_stack_size = segments; - else - pixel_stack_size = (360 / color_shift); - pixel_stack = (unsigned long *) - calloc (pixel_stack_size, sizeof (unsigned int)); - pixel_stack_fp = 0; - } - - gcv.line_width = (mode == tail_mode - ? (global_size ? global_size : (MAX_SIZE * 2 / 3)) - : 1); - gcv.cap_style = (mode == tail_mode ? CapRound : CapButt); - - gcv.foreground = default_fg_pixel = - get_pixel_resource ("foreground", "Foreground", dpy, cmap); - draw_gc = XCreateGC (dpy, window, GCForeground|GCLineWidth|GCCapStyle, &gcv); - gcv.foreground = get_pixel_resource ("background", "Background", dpy, cmap); - erase_gc = XCreateGC (dpy, window, GCForeground|GCLineWidth|GCCapStyle,&gcv); - - if (!mono_p && mode != ball_mode) - for (i = 0; i < pixel_stack_size; i++) - { - XColor color; - color.pixel = default_fg_pixel; - XQueryColor (dpy, cmap, &color); - if (!XAllocColor (dpy, cmap, &color)) abort (); - pixel_stack [i] = color.pixel; - } - -#define rand_size() min (MAX_SIZE, 8 + (random () % (MAX_SIZE - 9))) - - if (orbit_p && !global_size) - /* To orbit, all objects must be the same mass, or the math gets - really hairy... */ - global_size = rand_size (); - - th = frand (M_PI+M_PI); - for (i = 0; i < npoints; i++) - { - int new_size = (global_size ? global_size : rand_size ()); - balls [i].dx = 0; - balls [i].dy = 0; - balls [i].size = new_size; - balls [i].mass = (new_size * new_size * 10); - balls [i].x = midx + r * cos (i * ((M_PI+M_PI) / npoints) + th); - balls [i].y = midy + r * sin (i * ((M_PI+M_PI) / npoints) + th); - if (! orbit_p) - { - balls [i].vx = vx ? vx : ((6.0 - (random () % 11)) / 8.0); - balls [i].vy = vy ? vy : ((6.0 - (random () % 11)) / 8.0); - } - balls [i].color.pixel = default_fg_pixel; - balls [i].color.flags = DoRed | DoGreen | DoBlue; - if (!mono_p) - { - if (i != 0 && (glow_p || mode != ball_mode)) - balls [i].hue = balls [0].hue; - else - balls [i].hue = random () % 360; - hsv_to_rgb (balls [i].hue, 1.0, 1.0, - &balls [i].color.red, &balls [i].color.green, - &balls [i].color.blue); - if (!XAllocColor (dpy, cmap, &balls [i].color)) - mono_p = True; /* just give up */ - } - } - - if (orbit_p) - { - double a = 0; - double v; - double v_mult = get_float_resource ("vMult", "Float"); - if (v_mult == 0.0) v_mult = 1.0; - - for (i = 1; i < npoints; i++) - { - double _2ipi_n = (2 * i * M_PI / npoints); - double x = r * cos (_2ipi_n); - double y = r * sin (_2ipi_n); - double distx = r - x; - double dist2 = (distx * distx) + (y * y); - double dist = sqrt (dist2); - double a1 = ((balls[i].mass / dist2) * - ((dist < threshold) ? -1.0 : 1.0) * - (distx / dist)); - a += a1; - } - if (a < 0.0) - { - fprintf (stderr, "%s: domain error: forces on balls too great\n", - progname); - exit (-1); - } - v = sqrt (a * r) * v_mult; - for (i = 0; i < npoints; i++) - { - double k = ((2 * i * M_PI / npoints) + th); - balls [i].vx = -v * sin (k); - balls [i].vy = v * cos (k); - } - } - - if (mono_p) glow_p = False; - XClearWindow (dpy, window); -} - -static void -compute_force (i, dx_ret, dy_ret) - int i; - float *dx_ret, *dy_ret; -{ - int j; - float x_dist, y_dist, dist, dist2; - *dx_ret = 0; - *dy_ret = 0; - for (j = 0; j < npoints; j++) - { - float x_dist, y_dist, dist, dist2; - - if (i == j) continue; - x_dist = balls [j].x - balls [i].x; - y_dist = balls [j].y - balls [i].y; - dist2 = (x_dist * x_dist) + (y_dist * y_dist); - dist = sqrt (dist2); - - if (dist > 0.1) /* the balls are not overlapping */ - { - float new_acc = ((balls[j].mass / dist2) * - ((dist < threshold) ? -1.0 : 1.0)); - float new_acc_dist = new_acc / dist; - *dx_ret += new_acc_dist * x_dist; - *dy_ret += new_acc_dist * y_dist; - } - else - { /* the balls are overlapping; move randomly */ - *dx_ret += (frand (10.0) - 5.0); - *dy_ret += (frand (10.0) - 5.0); - } - } - - if (mouse_p) - { - x_dist = mouse_x - balls [i].x; - y_dist = mouse_y - balls [i].y; - dist2 = (x_dist * x_dist) + (y_dist * y_dist); - dist = sqrt (dist2); - - if (dist > 0.1) /* the balls are not overlapping */ - { - float new_acc = ((mouse_mass / dist2) * - ((dist < threshold) ? -1.0 : 1.0)); - float new_acc_dist = new_acc / dist; - *dx_ret += new_acc_dist * x_dist; - *dy_ret += new_acc_dist * y_dist; - } - else - { /* the balls are overlapping; move randomly */ - *dx_ret += (frand (10.0) - 5.0); - *dy_ret += (frand (10.0) - 5.0); - } - } -} - -static void -run_balls (dpy, window) - Display *dpy; - Window window; -{ - int last_point_stack_fp = point_stack_fp; - static int tick = 500, xlim, ylim; - static Colormap cmap; - int i; - - /*flip mods for mouse interaction*/ - Window root1, child1; - int mask; - if (mouse_p) - { - XQueryPointer(dpy, window, &root1, &child1, - &root_x, &root_y, &mouse_x, &mouse_y, &mask); - } - - if (tick++ == 500) - { - XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); - tick = 0; - xlim = xgwa.width; - ylim = xgwa.height; - cmap = xgwa.colormap; - } - - /* compute the force of attraction/repulsion among all balls */ - for (i = 0; i < npoints; i++) - compute_force (i, &balls[i].dx, &balls[i].dy); - - /* move the balls according to the forces now in effect */ - for (i = 0; i < npoints; i++) - { - float old_x = balls[i].x; - float old_y = balls[i].y; - float new_x, new_y; - int size = balls[i].size; - balls[i].vx += balls[i].dx; - balls[i].vy += balls[i].dy; - - /* don't let them get too fast: impose a terminal velocity - (actually, make the medium have friction) */ - if (balls[i].vx > 10) - { - balls[i].vx *= 0.9; - balls[i].dx = 0; - } - else if (viscosity != 1) - { - balls[i].vx *= viscosity; - } - - if (balls[i].vy > 10) - { - balls[i].vy *= 0.9; - balls[i].dy = 0; - } - else if (viscosity != 1) - { - balls[i].vy *= viscosity; - } - - balls[i].x += balls[i].vx; - balls[i].y += balls[i].vy; - - /* bounce off the walls */ - if (balls[i].x >= (xlim - balls[i].size)) - { - balls[i].x = (xlim - balls[i].size - 1); - if (balls[i].vx > 0) - balls[i].vx = -balls[i].vx; - } - if (balls[i].y >= (ylim - balls[i].size)) - { - balls[i].y = (ylim - balls[i].size - 1); - if (balls[i].vy > 0) - balls[i].vy = -balls[i].vy; - } - if (balls[i].x <= 0) - { - balls[i].x = 0; - if (balls[i].vx < 0) - balls[i].vx = -balls[i].vx; - } - if (balls[i].y <= 0) - { - balls[i].y = 0; - if (balls[i].vy < 0) - balls[i].vy = -balls[i].vy; - } - - new_x = balls[i].x; - new_y = balls[i].y; - - /* make color saturation be related to particle acceleration. */ - if (glow_p) - { - float limit = 0.5; - double s, v, fraction; - float vx = balls [i].dx; - float vy = balls [i].dy; - XColor new_color; - if (vx < 0) vx = -vx; - if (vy < 0) vy = -vy; - fraction = vx + vy; - if (fraction > limit) fraction = limit; - - s = 1 - (fraction / limit); - v = 1.0; - - s = (s * 0.75) + 0.25; - - hsv_to_rgb (balls [i].hue, s, v, - &new_color.red, &new_color.green, &new_color.blue); - if (XAllocColor (dpy, cmap, &new_color)) - { - XFreeColors (dpy, cmap, &balls [i].color.pixel, 1, 0); - balls [i].color = new_color; - } - } - - if (mode == ball_mode) - { - if (!mono_p) - XSetForeground (dpy, draw_gc, balls [i].color.pixel); - XFillArc (dpy, window, erase_gc, (int) old_x, (int) old_y, - size, size, 0, 360*64); - XFillArc (dpy, window, draw_gc, (int) new_x, (int) new_y, - size, size, 0, 360*64); - } - if (mode != ball_mode) - { - point_stack [point_stack_fp].x = new_x; - point_stack [point_stack_fp].y = new_y; - point_stack_fp++; - } - } - - /* draw the lines or polygons after computing all points */ - if (mode != ball_mode) - { - point_stack [point_stack_fp].x = balls [0].x; /* close the polygon */ - point_stack [point_stack_fp].y = balls [0].y; - point_stack_fp++; - if (point_stack_fp == point_stack_size) - point_stack_fp = 0; - else if (point_stack_fp > point_stack_size) /* better be aligned */ - abort (); - if (!mono_p) - { - XColor color2, desired; - color2 = balls [0].color; - switch (cmode) - { - case cycle_mode: - cycle_hue (&color2, color_shift); - break; - case random_mode: - color2.red = random () % 65535; - color2.green = random () % 65535; - color2.blue = random () % 65535; - break; - default: - abort (); - } - - desired = color2; - if (XAllocColor (dpy, cmap, &color2)) - { - /* XAllocColor returns the actual RGB that the hardware let us - allocate. Restore the requested values into the XColor struct - so that limited-resolution hardware doesn't cause cycle_hue to - get "stuck". */ - color2.red = desired.red; - color2.green = desired.green; - color2.blue = desired.blue; - } - else - { - color2 = balls [0].color; - if (!XAllocColor (dpy, cmap, &balls [0].color)) - abort (); - } - pixel_stack [pixel_stack_fp++] = balls [0].color.pixel; - if (pixel_stack_fp >= pixel_stack_size) - pixel_stack_fp = 0; - XFreeColors (dpy, cmap, pixel_stack + pixel_stack_fp, 1, 0); - balls [0].color = color2; - XSetForeground (dpy, draw_gc, balls [0].color.pixel); - } - } - - switch (mode) - { - case ball_mode: - break; - case line_mode: - if (segments > 0) - XDrawLines (dpy, window, erase_gc, point_stack + point_stack_fp, - npoints + 1, CoordModeOrigin); - XDrawLines (dpy, window, draw_gc, point_stack + last_point_stack_fp, - npoints + 1, CoordModeOrigin); - break; - case polygon_mode: - if (segments > 0) - XFillPolygon (dpy, window, erase_gc, point_stack + point_stack_fp, - npoints + 1, (npoints == 3 ? Convex : Complex), - CoordModeOrigin); - XFillPolygon (dpy, window, draw_gc, point_stack + last_point_stack_fp, - npoints + 1, (npoints == 3 ? Convex : Complex), - CoordModeOrigin); - break; - case tail_mode: - { - int i; - for (i = 0; i < npoints; i++) - { - int index = point_stack_fp + i; - int next_index = (index + (npoints + 1)) % point_stack_size; - XDrawLine (dpy, window, erase_gc, - point_stack [index].x, - point_stack [index].y, - point_stack [next_index].x, - point_stack [next_index].y); - - index = last_point_stack_fp + i; - next_index = (index - (npoints + 1)) % point_stack_size; - if (next_index < 0) next_index += point_stack_size; - if (point_stack [next_index].x == 0 && - point_stack [next_index].y == 0) - continue; - XDrawLine (dpy, window, draw_gc, - point_stack [index].x, - point_stack [index].y, - point_stack [next_index].x, - point_stack [next_index].y); - } - } - break; - case spline_mode: - case spline_filled_mode: - { - int i; - static spline *s = 0; - if (! s) s = make_spline (npoints); - if (segments > 0) - { - for (i = 0; i < npoints; i++) - { - s->control_x [i] = point_stack [point_stack_fp + i].x; - s->control_y [i] = point_stack [point_stack_fp + i].y; - } - compute_closed_spline (s); - if (mode == spline_filled_mode) - XFillPolygon (dpy, window, erase_gc, s->points, s->n_points, - (s->n_points == 3 ? Convex : Complex), - CoordModeOrigin); - else - XDrawLines (dpy, window, erase_gc, s->points, s->n_points, - CoordModeOrigin); - } - for (i = 0; i < npoints; i++) - { - s->control_x [i] = point_stack [last_point_stack_fp + i].x; - s->control_y [i] = point_stack [last_point_stack_fp + i].y; - } - compute_closed_spline (s); - if (mode == spline_filled_mode) - XFillPolygon (dpy, window, draw_gc, s->points, s->n_points, - (s->n_points == 3 ? Convex : Complex), - CoordModeOrigin); - else - XDrawLines (dpy, window, draw_gc, s->points, s->n_points, - CoordModeOrigin); - } - break; - default: - abort (); - } - - XSync (dpy, True); -} - - -char *progclass = "Attraction"; - -char *defaults [] = { - "Attraction.background: black", /* to placate SGI */ - "Attraction.foreground: white", - "*mode: balls", - "*points: 0", - "*size: 0", - "*threshold: 100", - "*delay: 10000", - "*glow: false", - "*mouseSize: 10", - "*mouse: false", - "*viscosity: 1", - "*orbit: false", - "*colorShift: 3", - "*segments: 100", - 0 -}; - -XrmOptionDescRec options [] = { - { "-mode", ".mode", XrmoptionSepArg, 0 }, - { "-points", ".points", XrmoptionSepArg, 0 }, - { "-threshold", ".threshold", XrmoptionSepArg, 0 }, - { "-segments", ".segments", XrmoptionSepArg, 0 }, - { "-delay", ".delay", XrmoptionSepArg, 0 }, - { "-size", ".size", XrmoptionSepArg, 0 }, - { "-color-mode", ".colorMode", XrmoptionSepArg, 0 }, - { "-color-shift", ".colorShift", XrmoptionSepArg, 0 }, - { "-radius", ".radius", XrmoptionSepArg, 0 }, - { "-vx", ".vx", XrmoptionSepArg, 0 }, - { "-vy", ".vy", XrmoptionSepArg, 0 }, - { "-vmult", ".vMult", XrmoptionSepArg, 0 }, - { "-mouse-size", ".mouseSize", XrmoptionSepArg, 0 }, - { "-mouse", ".mouse", XrmoptionNoArg, "true" }, - { "-nomouse", ".mouse", XrmoptionNoArg, "false" }, - { "-viscosity", ".viscosity", XrmoptionSepArg, 0 }, - { "-glow", ".glow", XrmoptionNoArg, "true" }, - { "-noglow", ".glow", XrmoptionNoArg, "false" }, - { "-orbit", ".orbit", XrmoptionNoArg, "true" } -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - init_balls (dpy, window); - while (1) - { - run_balls (dpy, window); - if (delay) usleep (delay); - } -} diff --git a/hacks/blitspin.c b/hacks/blitspin.c deleted file mode 100644 index 9a72b302..00000000 --- a/hacks/blitspin.c +++ /dev/null @@ -1,279 +0,0 @@ -/* xscreensaver, Copyright (c) 1992-1996 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* Rotate a bitmap using using bitblts. - The bitmap must be square, and must be a power of 2 in size. - This was translated from SmallTalk code which appeared in the - August 1981 issue of Byte magazine. - - The input bitmap may be non-square, it is padded and centered - with the background color. Another way would be to subdivide - the bitmap into square components and rotate them independently - (and preferably in parallel), but I don't think that would be as - interesting looking. - - It's too bad almost nothing uses blitter hardware these days, - or this might actually win. - */ - -#include "screenhack.h" -#include - -#ifdef HAVE_XPM -# include -# ifndef PIXEL_ALREADY_TYPEDEFED -# define PIXEL_ALREADY_TYPEDEFED /* Sigh, Xmu/Drawing.h needs this... */ -# endif -#endif - -#include - -#include "default.xbm" - -static Display *dpy; -static Window window; -static unsigned int size; -static Pixmap self, temp, mask; -static GC SET, CLR, CPY, IOR, AND, XOR; -static GC gc; -static int delay, delay2; -static Pixmap bitmap; -static int depth; -static unsigned int fg, bg; - -static void rotate(), init (), display (); - -#define copy_all_to(from, xoff, yoff, to, gc) \ - XCopyArea (dpy, (from), (to), (gc), 0, 0, \ - size-(xoff), size-(yoff), (xoff), (yoff)) - -#define copy_all_from(to, xoff, yoff, from, gc) \ - XCopyArea (dpy, (from), (to), (gc), (xoff), (yoff), \ - size-(xoff), size-(yoff), 0, 0) - -static void -rotate () -{ - int qwad; /* fuckin' C, man... who needs namespaces? */ - XFillRectangle (dpy, mask, CLR, 0, 0, size, size); - XFillRectangle (dpy, mask, SET, 0, 0, size>>1, size>>1); - for (qwad = size>>1; qwad > 0; qwad>>=1) - { - if (delay) usleep (delay); - copy_all_to (mask, 0, 0, temp, CPY); /* 1 */ - copy_all_to (mask, 0, qwad, temp, IOR); /* 2 */ - copy_all_to (self, 0, 0, temp, AND); /* 3 */ - copy_all_to (temp, 0, 0, self, XOR); /* 4 */ - copy_all_from (temp, qwad, 0, self, XOR); /* 5 */ - copy_all_from (self, qwad, 0, self, IOR); /* 6 */ - copy_all_to (temp, qwad, 0, self, XOR); /* 7 */ - copy_all_to (self, 0, 0, temp, CPY); /* 8 */ - copy_all_from (temp, qwad, qwad, self, XOR); /* 9 */ - copy_all_to (mask, 0, 0, temp, AND); /* A */ - copy_all_to (temp, 0, 0, self, XOR); /* B */ - copy_all_to (temp, qwad, qwad, self, XOR); /* C */ - copy_all_from (mask, qwad>>1, qwad>>1, mask, AND); /* D */ - copy_all_to (mask, qwad, 0, mask, IOR); /* E */ - copy_all_to (mask, 0, qwad, mask, IOR); /* F */ - display (self); - } -} - -static void -read_bitmap (bitmap_name, widthP, heightP) - char *bitmap_name; - int *widthP, *heightP; -{ -#ifdef HAVE_XPM - XpmAttributes xpmattrs; - int result; - xpmattrs.valuemask = 0; - bitmap = 0; - -#ifdef XpmCloseness - xpmattrs.valuemask |= XpmCloseness; - xpmattrs.closeness = 40000; -#endif - - result = XpmReadFileToPixmap (dpy, window, bitmap_name, &bitmap, 0, - &xpmattrs); - switch (result) - { - case XpmColorError: - fprintf (stderr, "%s: warning: xpm color substitution performed\n", - progname); - /* fall through */ - case XpmSuccess: - *widthP = xpmattrs.width; - *heightP = xpmattrs.height; - break; - case XpmFileInvalid: - case XpmOpenFailed: - bitmap = 0; - break; - case XpmColorFailed: - fprintf (stderr, "%s: xpm: color allocation failed\n", progname); - exit (-1); - case XpmNoMemory: - fprintf (stderr, "%s: xpm: out of memory\n", progname); - exit (-1); - default: - fprintf (stderr, "%s: xpm: unknown error code %d\n", progname, result); - exit (-1); - } - if (! bitmap) -#endif - { - int xh, yh; - Pixmap b2; - bitmap = XmuLocateBitmapFile (DefaultScreenOfDisplay (dpy), bitmap_name, - 0, 0, widthP, heightP, &xh, &yh); - if (! bitmap) - { - fprintf (stderr, "%s: couldn't find bitmap %s\n", progname, - bitmap_name); - exit (1); - } - b2 = XmuCreatePixmapFromBitmap (dpy, window, bitmap, *widthP, *heightP, - depth, fg, bg); - XFreePixmap (dpy, bitmap); - bitmap = b2; - } -} - -static void -init () -{ - XWindowAttributes xgwa; - Colormap cmap; - XGCValues gcv; - int width, height; - unsigned int real_size; - char *bitmap_name; - int i; - - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - depth = xgwa.depth; - - fg = get_pixel_resource ("foreground", "Foreground", dpy, cmap); - bg = get_pixel_resource ("background", "Background", dpy, cmap); - delay = get_integer_resource ("delay", "Integer"); - delay2 = get_integer_resource ("delay2", "Integer"); - if (delay < 0) delay = 0; - if (delay2 < 0) delay2 = 0; - bitmap_name = get_string_resource ("bitmap", "Bitmap"); - if (! bitmap_name || !*bitmap_name) - bitmap_name = "(default)"; - - if (!strcmp (bitmap_name, "(default)")) - { - width = logo_width; - height = logo_height; - bitmap = XCreatePixmapFromBitmapData (dpy, window, (char *) logo_bits, - width, height, fg, bg, depth); - } - else - { - read_bitmap (bitmap_name, &width, &height); - } - - real_size = (width > height) ? width : height; - - size = real_size; - /* semi-sleazy way of doing (setq size (expt 2 (ceiling (log size 2)))). */ - for (i = 31; i > 0; i--) - if (size & (1<>i)<<(i+1); - self = XCreatePixmap (dpy, window, size, size, depth); - temp = XCreatePixmap (dpy, window, size, size, depth); - mask = XCreatePixmap (dpy, window, size, size, depth); - gcv.foreground = (depth == 1 ? 1 : (~0)); - gcv.function=GXset; SET = XCreateGC(dpy,self,GCFunction|GCForeground,&gcv); - gcv.function=GXclear;CLR = XCreateGC(dpy,self,GCFunction|GCForeground,&gcv); - gcv.function=GXcopy; CPY = XCreateGC(dpy,self,GCFunction|GCForeground,&gcv); - gcv.function=GXor; IOR = XCreateGC(dpy,self,GCFunction|GCForeground,&gcv); - gcv.function=GXand; AND = XCreateGC(dpy,self,GCFunction|GCForeground,&gcv); - gcv.function=GXxor; XOR = XCreateGC(dpy,self,GCFunction|GCForeground,&gcv); - - gcv.foreground = gcv.background = bg; - gc = XCreateGC (dpy, window, GCForeground|GCBackground, &gcv); - /* Clear self to the background color (not to 0, which CLR does.) */ - XFillRectangle (dpy, self, gc, 0, 0, size, size); - XSetForeground (dpy, gc, fg); - - XCopyArea (dpy, bitmap, self, CPY, 0, 0, width, height, - (size - width)>>1, (size - height)>>1); -} - -static void -display (pixmap) - Pixmap pixmap; -{ - XWindowAttributes xgwa; - static int last_w = 0, last_h = 0; - XGetWindowAttributes (dpy, window, &xgwa); - if (xgwa.width != last_w || xgwa.height != last_h) - { - XClearWindow (dpy, window); - last_w = xgwa.width; - last_h = xgwa.height; - } -#ifdef HAVE_XPM - if (depth != 1) - XCopyArea (dpy, pixmap, window, gc, 0, 0, size, size, - (xgwa.width-size)>>1, (xgwa.height-size)>>1); - else -#endif - XCopyPlane (dpy, pixmap, window, gc, 0, 0, size, size, - (xgwa.width-size)>>1, (xgwa.height-size)>>1, 1); -/* - XDrawRectangle (dpy, window, gc, - ((xgwa.width-size)>>1)-1, ((xgwa.height-size)>>1)-1, - size+2, size+2); -*/ - XSync (dpy, True); -} - - -char *progclass = "BlitSpin"; - -char *defaults [] = { - "BlitSpin.background: black", /* to placate SGI */ - "BlitSpin.foreground: white", - "*delay: 500000", - "*delay2: 500000", - "*bitmap: (default)", - 0 -}; - -XrmOptionDescRec options [] = { - { "-delay", ".delay", XrmoptionSepArg, 0 }, - { "-delay2", ".delay2", XrmoptionSepArg, 0 }, - { "-bitmap", ".bitmap", XrmoptionSepArg, 0 } -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (d, w) - Display *d; - Window w; -{ - dpy = d; - window = w; - init (); - while (1) - { - rotate (); - if (delay2) usleep (delay2); - } -} diff --git a/hacks/bubbles-samples/blood.bub.gz b/hacks/bubbles-samples/blood.bub.gz deleted file mode 100644 index b98e8558c5c7d380ed6cd29e1386a2df6472fe76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19382 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 diff --git a/hacks/bubbles-samples/blue.bub.gz b/hacks/bubbles-samples/blue.bub.gz deleted file mode 100644 index f656079c92accc6d18b10aa56744804e7e932e5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20129 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 diff --git a/hacks/bubbles-samples/jade.bub.gz b/hacks/bubbles-samples/jade.bub.gz deleted file mode 100644 index 48424f080bffe443a6fb42add6bb7c4d98f1312a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20111 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 x=zCv6B>S7U+{_AgyAT8}CB007Z2Z!iD= diff --git a/hacks/bubbles-sources/blood.pov b/hacks/bubbles-sources/blood.pov deleted file mode 100644 index 8166f4ea..00000000 --- a/hacks/bubbles-sources/blood.pov +++ /dev/null @@ -1,24 +0,0 @@ -#include "colors.inc" -#include "shapes.inc" -#include "textures.inc" - -/* The following make the field of view as wide as it is high - * Thus, you should have the -W and -H command line options - * equal to each other. */ -camera { - location <5.8, 0, 0> - up <0, 1, 0> - right <1, 0, 0> - look_at <0, 0, 0> -} - -sphere { - <0,0,0>, 2.5 - texture { Blood_Marble - scale <2, 2, 2> - rotate <0, 20, 0> } - finish { Dull } -} - -light_source {<6, 1, 0> color White} -/* light_source {<6.1, 1, 0> color White} */ diff --git a/hacks/bubbles-sources/blue.pov b/hacks/bubbles-sources/blue.pov deleted file mode 100644 index 86d1ff8d..00000000 --- a/hacks/bubbles-sources/blue.pov +++ /dev/null @@ -1,22 +0,0 @@ -#include "colors.inc" -#include "shapes.inc" -#include "textures.inc" - -/* The following make the field of view as wide as it is high - * Thus, you should have the -W and -H command line options - * equal to each other. */ -camera { - location <5.8, 0, 0> - up <0, 1, 0> - right <1, 0, 0> - look_at <0, 0, 0> -} - -sphere { - <0,0,0>, 2.5 - texture { Blue_Agate - scale <0.7, 0.7, 0.7> } - finish { phong 1 } -} - -light_source {<6, 1, 0> color White} diff --git a/hacks/bubbles-sources/glass.pov b/hacks/bubbles-sources/glass.pov deleted file mode 100644 index c1897714..00000000 --- a/hacks/bubbles-sources/glass.pov +++ /dev/null @@ -1,27 +0,0 @@ -#include "colors.inc" -#include "shapes.inc" -#include "textures.inc" - -/* The following make the field of view as wide as it is high - * Thus, you should have the -W and -H command line options - * equal to each other. */ -camera { - location <5.8, 0, 0> - up <0, 1, 0> - right <1, 0, 0> - look_at <0, 0, 0> -} - -sphere { - <0,0,0>, 2.5 - texture { Glass - scale <0.7, 0.7, 0.7> - rotate y*clock - normal {bumps 0.4 scale 0.1} - finish { Shiny } -# finish { phong 0.4 } - } -} - -light_source {<6, 7, 0> color White} -light_source {<6.1, 1, 0> color Blue} diff --git a/hacks/bubbles-sources/jade.pov b/hacks/bubbles-sources/jade.pov deleted file mode 100644 index 7c1cb023..00000000 --- a/hacks/bubbles-sources/jade.pov +++ /dev/null @@ -1,24 +0,0 @@ -#include "colors.inc" -#include "shapes.inc" -#include "textures.inc" - -/* The following make the field of view as wide as it is high - * Thus, you should have the -W and -H command line options - * equal to each other. */ -camera { - location <5.8, 0, 0> - up <0, 1, 0> - right <1, 0, 0> - look_at <0, 0, 0> -} - -sphere { - <0,0,0>, 2.5 - texture { Jade - scale <0.7, 0.7, 0.7> - rotate y*clock } - finish { phong 0.4 } -} - -light_source {<6, 1, 0> color White} -light_source {<6.1, 1, 0> color White} diff --git a/hacks/bubbles-tools/bubblestodefault b/hacks/bubbles-tools/bubblestodefault deleted file mode 100755 index 3ad718b8..00000000 --- a/hacks/bubbles-tools/bubblestodefault +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/perl -# -# $Id: bubblestodefault,v 1.1 1996/09/08 01:35:51 jwz Exp $ -# -#---------------------------------------------------------------------------- -# Copyright (C) 1995-1996 James Macnicol -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2, or (at your option) any later -# version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -#----------------------------------------------------------------------------- -# -# Contact me (J.Macnicol@student.anu.edu.au) if you have problems. -# -# [ The moral of this story is use a version of rm which safely backs up -# files when you delete them in case you do something stupid like -# "rm * xpm" which trashed all the scripts in this directory so I had -# to write them again. Grrrrrr..... ] -# -#----------------------------------------------------------------------------- -# -# This script takes a set of XPM files (from povbubbles, for example) -# whose names are listed in file with extension .names (of same format -# as output by povbubbles) and puts them together into a file which can -# be used in place of the source file bubbles_default.c which comes with -# bubbles/xscreensaver. -# -# To use it, provide as an argument the base-name of the .names file, -# i.e. if you ran povbubbles on the file foo.pov by typing "povbubbles foo" -# then this created a file "foo.names" so you can now make a new -# bubbles_default.c by typing "bubblestodefault foo". -# - -sub die_help { - print STDERR "Usage: $0 [-help] base-name\n"; - print STDERR " -help gives this message.\n"; - print STDERR " base-name is the name of the file used to generate\n"; - print STDERR " the XPM files, e.g. if you invoked povbubbles with\n"; - print STDERR " \"povbubbles foo\"\n"; - print STDERR " then you should invoke $0 with\n"; - die(" \"$0 foo\"\n"); -} - -sub die_usage { - die "Usage: $0 [-help] base-name\n"; -} - -$infile = undef; - -# Process command line arguments -while ($op = shift) { - if ($op eq "-help") { - &die_help; - } else { - $infile = $op; - # Ignore further arguments - break; - } -} -if ($infile eq undef) { - &die_usage; -} - -$namesfile = $infile . ".names"; - -if (! -f $namesfile) { - die("File list $namesfile doesn't exist\n"); -} - -if (-f "bubbles_default.c") { - print "Backing up bubbles_default.c...\n"; - system("mv -f bubbles_default.c bubbles_default.c.bak"); -} - -open(OUT, ">bubbles_default.c") || die("Couldn't open bubbles_default.c\n"); -print OUT "#include \n"; -print OUT "#include \"bubbles.h\"\n"; -print OUT "\n"; -print OUT "#ifndef NO_DEFAULT_BUBBLE\n"; -print OUT "\n"; - -open(NAMES, $namesfile) || die ("Couldn't open $namesfile\n"); -$numbubbles = 0; -while () { - if (/\s*(\S+)\:(\S+)\s*/) { - $filename = $1; - $xpmname = $2; - $xpmlist = $xpmlist . $xpmname . ", "; - open(CAT, $filename) || die("Couldn't open file $filename listed in\ -$namesfile\n"); - while () { - print OUT; - } - close(CAT); - $numbubbles++; - } else { - print STDERR "Can't understand the line \"$_\"\n"; - print STDERR " in $namesfile. Ignoring...\n"; - } -} -print OUT "char **default_bubbles[] = {$xpmlist"; -print OUT "(char **)0};\n"; -print OUT "\n"; -print OUT "int num_default_bubbles = $numbubbles;\n"; -print OUT "\n"; -print OUT "#endif /* NO_DEFAULT_BUBBLE */\n"; - -close(NAMES); -close(OUT); diff --git a/hacks/bubbles-tools/bubblestofile b/hacks/bubbles-tools/bubblestofile deleted file mode 100755 index 4eaf5c9b..00000000 --- a/hacks/bubbles-tools/bubblestofile +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/perl -# -# $Id: bubblestofile,v 1.1 1996/09/08 01:35:52 jwz Exp $ -# -#---------------------------------------------------------------------------- -# Copyright (C) 1995-1996 James Macnicol -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2, or (at your option) any later -# version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -#----------------------------------------------------------------------------- -# -# Contact me (J.Macnicol@student.anu.edu.au) if you have problems. -# -# [ The moral of this story is use a version of rm which safely backs up -# files when you delete them in case you do something stupid like -# "rm * xpm" which trashed all the scripts in this directory so I had -# to write them again. Grrrrrr..... ] -# -#----------------------------------------------------------------------------- -# -# This script takes a set of XPM files (from povbubbles, for example) -# whose names are listed in file with extension .names (of same format -# as output by povbubbles) and puts them together into a file which can -# loaded with the -file option or place in a directory suitable for -# use with the -directory option to bubbles. Note that neither of these -# options are available if you have just compiled bubbles as provided. -# You must edit bubbles.h to enable these. Files generated by this script -# have by default the extension ".bub". -# -# To use it, provide as an argument the base-name of the .names file, -# i.e. if you ran povbubbles on the file foo.pov by typing "povbubbles foo" -# then this created a file "foo.names" so you can now make the loadable file -# "foo.bub" by typing "bubblestofile foo". -# - -sub die_help { - print STDERR "Usage: $0 [-help] base-name\n"; - print STDERR " -help\n"; - print STDERR " gives this message.\n"; - print STDERR " base-name is the name of the file used to generate\n"; - print STDERR " the XPM files, e.g. if you invoked povbubbles with\n"; - print STDERR " \"povbubbles foo\"\n"; - print STDERR " then you should invoke $0 with\n"; - die(" \"$0 foo\"\n"); -} - -sub die_usage { - die "Usage: $0 [-help] base-name\n"; -} - -$infile = undef; - -# Process command line arguments -while ($op = shift) { - if ($op eq "-help") { - &die_help; - } else { - $infile = $op; - # Ignore further arguments - break; - } -} -if ($infile eq undef) { - &die_usage; -} - -$namesfile = $infile . ".names"; -$outfile = $infile . ".bub"; - -if (! -f $namesfile) { - die("File list $namesfile doesn't exist\n"); -} - -if (-f $outfile) { - print "Backing up $outfile\n"; - system("mv -f $outfile $outfile.bak"); -} - -open(OUT, ">$outfile") || die("Couldn't open $outfile\n"); -open(NAMES, $namesfile) || die ("Couldn't open $namesfile\n"); -$numbubbles = 0; -while () { - if (/\s*(\S+)\:(\S+)\s*/) { - $filename = $1; - $xpmname = $2; - open(CAT, $filename) || die("Couldn't open file $filename listed in\ -$namesfile\n"); - while () { - print OUT; - } - close(CAT); - } else { - print STDERR "Can't understand the line \"$_\"\n"; - print STDERR " in $namesfile. Ignoring...\n"; - } -} -close(NAMES); -close(OUT); - - diff --git a/hacks/bubbles-tools/xpm2default b/hacks/bubbles-tools/xpm2default deleted file mode 100755 index b4236089..00000000 --- a/hacks/bubbles-tools/xpm2default +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/perl -#---------------------------------------------------------------------------- -# Copyright (C) 1995-1996 James Macnicol -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 1, or (at your option) any later -# version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -#----------------------------------------------------------------------------- -# -# Prints to the stdout a file suitable for use as bubbles_default.c for the -# bubbles screensaver (i.e. the default bubble which is compiled into the -# executable). A list of XPMs is expected as input, e.g. output from the -# pov2xpm script in this directory. -# -# Remember to change the path to your perl executable at the top of the -# script if it is wrong. -# -# Examples of usage: -# -# pov2xpm sample.pov | xpm2default > bubbles_default.c -# -# A new set of bubbles is first created with pov2xpm then passed to this -# script which places the C wrapper around the data and finally dumps the -# output into bubbles_default.c. -# -# xpm2default < sample.xpm > bubbles_default.c -# -# Same as the previous example except the XPM data came from a file rather -# than a pipe. -# -$numargs = @ARGV; -print "#include \"bubbles.h\"\n"; -print "\n"; -print "#ifndef NO_DEFAULT_BUBBLE\n"; -print "\n"; -print "char *default_ball_data[] = {\n"; -while () { - chop; - s/"/\\"/g; - print "\"$_\",\n"; -} -print "(char *)0\n"; -print "};\n"; -print "\n"; -print "#endif\n"; diff --git a/hacks/bubbles.README b/hacks/bubbles.README deleted file mode 100644 index b82d8080..00000000 --- a/hacks/bubbles.README +++ /dev/null @@ -1,86 +0,0 @@ -First of all, you should read and possibly change the options in -bubbles.h. Things should work without you having to change anything. - -Most of the stuff below is of no use to you if you do not have the -XPM library and thus cannot use rendered bubbles. The same goes for -monochrome displays, whether you have XPM or not. - -The most interesting #define here is BUBBLES_IO. If this is set then -the -file and -directory options become available to you, which means -that you can use bubbles with the program other than just the one that -is used by default (see below). The problem is that there is code in -the routines that implement this which arenot portable across the -various flavours of UNIX. Therefore, this #define is not set out of -the box. Chances are that it will work for you fine, however. I have -personally seen it work under Linux 1.3.x and Solaris 2.x. IRIX has -problems, from what I hear. If you do need to hack the code in order -to get these features to work, please send e-mail to the address at -the bottom of this file and detail your changes. They will be -incorporated in a future release. - -If you are compiling with the XPM library you have the option of -putting in or leaving out a "default" bubble in your binary, i.e. if -no -file or -directory options are specified on the command line then -this bubble will be used. Things are setup to include this by -default, so that people can happily run the program without there -being any compulsory options. If you use very large bubbles or are -low on memory you might like to take the option of not compiling in -the default bubble and thus saving some space should you wish to use -more than one bubble (to make life more interesting, or whatever). -This can be done by removing the comments around #define -NO_DEFAULT_BUBBLE in bubbles.h. - -If you are hacking the bubbles code then you might like to switch on -extra checks and messages with the DEBUG flag in bubbles.h, but -otherwise you can leave it commented out. The sanity checks enables -there will slow things down. - -There are also some configuration options to help you compile and run -bubbles properly. These are explained in bubbles.h. All changes -affecting portability will end up in here. If you need to change -anything to get bubbles to compile on your system, please tell me what -they are. - -Apart from the source files, there are also some other directories -here which contain things you might use if loading bubbles at runtime -or developing new ones : - - -bubbles-tools/ - Contains several perl scripts to help you make new -sets of bubbles easily. povbubbles runs povray on a scene description -file and outputs a series of XPM files which you can then postprocess -if need be. To turn these files into a new instance of the default -bubble source file bubbles_default.c, use the script bubblestodefault. -To put all the files together into a single file which can be loaded -with the -file or -directory options (if available), use the script -bubblestofile. - - Read the comments at the top of each script to find out more. - -bubbles-samples/ - This directory contains some compressed bubbles -files which can be used with the -directory option (or the -file -option on individual files there). The files will be automatically -uncompressed before use. - -bubbles-sources/ - The povray sources used to make some of the bubbles -in the bubbles-samples directory. You can use these as templates for -making new bubbles. - - -I'm not much good with povray so the examples are probably pretty -boring. If you make some nice bubbles yourself, I'd like to see them. -Send your _sources_ to J.Macnicol@student.anu.edu.au (please don't -fill my inbox with XPM files, there is a limit on the amount of -waiting e-mail I can have). - - -Enjoy. - - --- -James Macnicol -e-mail: J.Macnicol@student.anu.edu.au -http://goblet.anu.edu.au/~m9305357/home.html diff --git a/hacks/bubbles.c b/hacks/bubbles.c deleted file mode 100644 index 2033130c..00000000 --- a/hacks/bubbles.c +++ /dev/null @@ -1,1902 +0,0 @@ -/* bubbles.c - frying pan / soft drink in a glass simulation */ - -/*$Id: bubbles.c,v 1.1 1996/09/08 01:35:40 jwz Exp $*/ - -/* - * Copyright (C) 1995-1996 James Macnicol - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2, or (at your option) any later - * version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -/* - * I got my original inspiration for this by looking at the bottom of a - * frying pan while something was cooking and watching the little bubbles - * coming off the bottom of the pan as the oil was boiling joining together - * to form bigger bubbles and finally to *pop* and disappear. I had some - * time on my hands so I wrote this little xscreensaver module to imitate - * it. Now that it's done it reminds me more of the bubbles you get in - * a glass of fizzy soft drink..... - * - * The problem seemed to be that the position/size etc. of all the bubbles - * on the screen had to be remembered and searched through to find when - * bubbles hit each other and combined. To do this more efficiently, the - * window/screen is divided up into a square mesh of side length mesh_length - * and separate lists of bubbles contained in each cell of the mesh are - * kept. Only the cells in the immediate vicinity of the bubble in question - * are searched. This should make things more efficient although the whole - * thing seems to use up too much CPU, but then I'm using an ancient PC so - * perhaps it's not surprising . - * (Six months after I wrote the above I now have a Pentium with PCI graphics - * and things are _much_ nicer.) - * - * Author: James Macnicol - * Internet E-mail : J.Macnicol@student.anu.edu.au - */ - -#include "bubbles.h" - -#ifdef BUBBLES_IO -#include -#include -#include -#endif /* BUBBLES_IO */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "screenhack.h" -#include "../utils/yarandom.h" - -#ifdef HAVE_XPM -#include -#endif - -/* - * Public variables - */ - -#ifndef NO_DEFAULT_BUBBLE -extern int num_default_bubbles; -extern char **default_bubbles[]; -#endif /* NO_DEFAULT_BUBBLE */ - -char *progclass = "Bubbles"; - -char *defaults [] = { - "*background: black", - "*foreground: white", - "*simple: false", - "*broken: false", - "*delay: 2000", -#ifdef BUBBLES_IO - "*file: (default)", - "*directory: (default)", -#endif /* BUBBLES_IO */ - "*quiet: false", - "*nodelay: false", - "*3D: false", - "*geometry: 400x300", - 0 -}; - -XrmOptionDescRec options [] = { - { "-simple", ".simple", XrmoptionNoArg, "true" }, -#ifdef HAVE_XPM - { "-broken", ".broken", XrmoptionNoArg, "true" }, -#endif /* HAVE_XPM */ - { "-quiet", ".quiet", XrmoptionNoArg, "true" }, - { "-nodelay", ".nodelay", XrmoptionNoArg, "true" }, - { "-3D", ".3D", XrmoptionNoArg, "true" }, -#ifdef BUBBLES_IO - { "-file", ".file", XrmoptionSepArg, 0 }, - { "-directory", ".directory", XrmoptionSepArg, 0 }, -#endif /* BUBBLES_IO */ - { "-delay", ".delay", XrmoptionSepArg, 0 } -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -/* - * Private variables - */ - -static Bubble **mesh; -static int mesh_length; -static int mesh_width; -static int mesh_height; -static int mesh_cells; - -static int **adjacent_list; - -static int screen_width; -static int screen_height; -static int screen_depth; -static unsigned int default_fg_pixel, default_bg_pixel; -/* - * I know it's not elegant to save this stuff in global variables - * but we need it for the signal handler. - */ -static Display *defdsp; -static Window defwin; -static Colormap defcmap; - -/* For simple mode only */ -static int bubble_min_radius; -static int bubble_max_radius; -static long *bubble_areas; -static GC draw_gc, erase_gc; - -#ifdef HAVE_XPM -static int num_bubble_pixmaps; -static Bubble_Step **step_pixmaps; -#ifdef BUBBLES_IO -static char *pixmap_file; -#endif /* BUBBLES_IO */ -static int use_default_bubble; -#endif /* HAVE_XPM */ - -/* Options stuff */ -#ifdef HAVE_XPM -static Bool simple = False; -#else -static Bool simple = True; -#endif -static Bool broken = False; -static Bool quiet = False; -static Bool threed = False; -static int delay; - -/* - * To prevent forward references, some stuff is up here - */ - -static long -calc_bubble_area(r) - int r; -/* Calculate the area of a bubble of radius r */ -{ -#ifdef DEBUG - printf("%d %g\n", r, - 10.0 * PI * (double)r * (double)r * (double)r); -#endif /* DEBUG */ - if (threed) - return (long)(10.0 * PI * (double)r * (double)r * (double)r); - else - return (long)(10.0 * PI * (double)r * (double)r); -} - -static void * -xmalloc(size) - size_t size; -/* Safe malloc */ -{ - void *ret; - - if ((ret = malloc(size)) == NULL) { - fprintf(stderr, "%s: out of memory\n", progname); - exit(1); - } - return ret; -} - -#ifdef DEBUG -static void -die_bad_bubble(bb) - Bubble *bb; -/* This is for use with GDB */ -{ - fprintf(stderr, "Bad bubble detected at 0x%x!\n", (int)bb); - exit(1); -} -#endif - -static int -null_bubble(bb) - Bubble *bb; -/* Returns true if the pointer passed is NULL. If not then this checks to -see if the bubble is valid (i.e. the (x,y) position is valid and the magic -number is set correctly. This only a sanity check for debugging and is -turned off if DEBUG isn't set. */ -{ - if (bb == (Bubble *)NULL) - return 1; -#ifdef DEBUG - if ((bb->cell_index < 0) || (bb->cell_index > mesh_cells)) { - fprintf(stderr, "cell_index = %d\n", bb->cell_index); - die_bad_bubble(bb); - } - if (bb->magic != BUBBLE_MAGIC) { - fprintf(stderr, "Magic = %d\n", bb->magic); - die_bad_bubble(bb); - } - if (simple) { - if ((bb->x < 0) || (bb->x > screen_width) || - (bb->y < 0) || (bb->y > screen_height) || - (bb->radius < bubble_min_radius) || (bb->radius > - bubble_max_radius)) { - fprintf(stderr, - "radius = %d, x = %d, y = %d, magic = %d, \ -cell index = %d\n", bb->radius, bb->x, bb->y, bb->magic, bb->cell_index); - die_bad_bubble(bb); - } -#ifdef HAVE_XPM - } else { - if ((bb->x < 0) || (bb->x > screen_width) || - (bb->y < 0) || (bb->y > screen_height) || - (bb->radius < step_pixmaps[0]->radius) || - (bb->radius > step_pixmaps[num_bubble_pixmaps-1]->radius)) { - fprintf(stderr, - "radius = %d, x = %d, y = %d, magic = %d, \ -cell index = %d\n", bb->radius, bb->x, bb->y, bb->magic, bb->cell_index); - die_bad_bubble(bb); - } -#endif /* HAVE_XPM */ - } -#endif /* DEBUG */ - return 0; -} - -#ifdef DEBUG -static void -print_bubble_list(bb) - Bubble *bb; -/* Print list of where all the bubbles are. For debugging purposes only. */ -{ - if (! null_bubble(bb)) { - printf(" (%d, %d) %d\n", bb->x, bb->y, bb->radius); - print_bubble_list(bb->next); - } -} -#endif /* DEBUG */ - -static void -add_bubble_to_list(list, bb) - Bubble **list; - Bubble *bb; -/* Take a pointer to a list of bubbles and stick bb at the head of the - list. */ -{ - Bubble *head = *list; - - if (null_bubble(head)) { - bb->prev = (Bubble *)NULL; - bb->next = (Bubble *)NULL; - } else { - bb->next = head; - bb->prev = (Bubble *)NULL; - head->prev = bb; - } - *list = bb; -} - - -/* - * Mesh stuff - */ - - -static void -init_mesh() -/* Setup the mesh of bubbles */ -{ - int i; - - mesh = (Bubble **)xmalloc(mesh_cells * sizeof(Bubble *)); - for (i = 0; i < mesh_cells; i++) - mesh[i] = (Bubble *)NULL; -} - -static int -cell_to_mesh(x, y) - int x; - int y; -/* convert cell coordinates to mesh index */ -{ -#ifdef DEBUG - if ((x < 0) || (y < 0)) { - fprintf(stderr, "cell_to_mesh: x = %d, y = %d\n", x, y); - exit(1); - } -#endif - return ((mesh_width * y) + x); -} - -static void -mesh_to_cell(mi, cx, cy) - int mi; - int *cx; - int *cy; -/* convert mesh index into cell coordinates */ -{ - *cx = mi % mesh_width; - *cy = mi / mesh_width; -} - -static int -pixel_to_mesh(x, y) - int x; - int y; -/* convert screen coordinates into mesh index */ -{ - return cell_to_mesh((x / mesh_length), (y / mesh_length)); -} - -static int -verify_mesh_index(x, y) - int x; - int y; -/* check to see if (x,y) is in the mesh */ -{ - if ((x < 0) || (y < 0) || (x >= mesh_width) || (y >= mesh_height)) - return (-1); - return (cell_to_mesh(x, y)); -} - -#ifdef DEBUG -static void -print_adjacents(adj) - int *adj; -/* Print a list of the cells calculated above. For debugging only. */ -{ - int i; - - printf("("); - for (i = 0; i < 8; i++) - printf("%d ", adj[i]); - printf(")\n"); -} -#endif /* DEBUG */ - -static void -add_to_mesh(bb) - Bubble *bb; -/* Add the given bubble to the mesh by sticking it on the front of the -list. bb is already allocated so no need to malloc() anything, just -adjust pointers. */ -{ -#ifdef DEBUG - if (null_bubble(bb)) { - fprintf(stderr, "Bad bubble passed to add_to_mesh()!\n"); - exit(1); - } -#endif /* DEBUG */ - - add_bubble_to_list(&mesh[bb->cell_index], bb); -} - -#ifdef DEBUG -static void -print_mesh() -/* Print the contents of the mesh */ -{ - int i; - - for (i = 0; i < mesh_cells; i++) { - if (! null_bubble(mesh[i])) { - printf("Mesh cell %d\n", i); - print_bubble_list(mesh[i]); - } - } -} - -static void -valid_mesh() -/* Check to see if the mesh is Okay. For debugging only. */ -{ - int i; - Bubble *b; - - for (i = 0; i < mesh_cells; i++) { - b = mesh[i]; - while (! null_bubble(b)) - b = b->next; - } -} - -static int -total_bubbles() -/* Count how many bubbles there are in total. For debugging only. */ -{ - int rv = 0; - int i; - Bubble *b; - - for (i = 0; i < mesh_cells; i++) { - b = mesh[i]; - while (! null_bubble(b)) { - rv++; - b = b->next; - } - } - - return rv; -} -#endif /* DEBUG */ - -static void -calculate_adjacent_list() -/* Calculate the list of cells adjacent to a particular cell for use - later. */ -{ - int i; - int ix, iy; - - adjacent_list = (int **)xmalloc(mesh_cells * sizeof(int *)); - for (i = 0; i < mesh_cells; i++) { - adjacent_list[i] = (int *)xmalloc(9 * sizeof(int)); - mesh_to_cell(i, &ix, &iy); - adjacent_list[i][0] = verify_mesh_index(--ix, --iy); - adjacent_list[i][1] = verify_mesh_index(++ix, iy); - adjacent_list[i][2] = verify_mesh_index(++ix, iy); - adjacent_list[i][3] = verify_mesh_index(ix, ++iy); - adjacent_list[i][4] = verify_mesh_index(ix, ++iy); - adjacent_list[i][5] = verify_mesh_index(--ix, iy); - adjacent_list[i][6] = verify_mesh_index(--ix, iy); - adjacent_list[i][7] = verify_mesh_index(ix, --iy); - adjacent_list[i][8] = i; - } -} - -static void -adjust_areas() -/* Adjust areas of bubbles so we don't get overflow in weighted_mean() */ -{ - double maxvalue; - long maxarea; - long factor; - int i; - -#ifdef HAVE_XPM - if (simple) - maxarea = bubble_areas[bubble_max_radius+1]; - else - maxarea = step_pixmaps[num_bubble_pixmaps]->area; -#else - maxarea = bubble_areas[bubble_max_radius+1]; -#endif /* HAVE_XPM */ - maxvalue = (double)screen_width * 2.0 * (double)maxarea; - factor = (long)ceil(maxvalue / (double)LONG_MAX); - if (factor > 1) { - /* Overflow will occur in weighted_mean(). We must divide areas - each by factor so it will never do so. */ -#ifdef HAVE_XPM - if (simple) { - for (i = bubble_min_radius; i <= bubble_max_radius+1; i++) { - bubble_areas[i] /= factor; - if (bubble_areas[i] == 0) - bubble_areas[i] = 1; - } - } else { - for (i = 0; i <= num_bubble_pixmaps; i++) { -#ifdef DEBUG - printf("area = %ld", step_pixmaps[i]->area); -#endif /* DEBUG */ - step_pixmaps[i]->area /= factor; - if (step_pixmaps[i]->area == 0) - step_pixmaps[i]->area = 1; -#ifdef DEBUG - printf("-> %ld\n", step_pixmaps[i]->area); -#endif /* DEBUG */ - } - } -#else - for (i = bubble_min_radius; i <= bubble_max_radius+1; i++) { - bubble_areas[i] /= factor; - if (bubble_areas[i] == 0) - bubble_areas[i] = 1; - } -#endif /* HAVE_XPM */ - } -#ifdef DEBUG - printf("maxarea = %ld\n", maxarea); - printf("maxvalue = %g\n", maxvalue); - printf("LONG_MAX = %ld\n", LONG_MAX); - printf("factor = %ld\n", factor); -#endif /* DEBUG */ -} - -/* - * Bubbles stuff - */ - -static Bubble * -new_bubble() -/* Add a new bubble at some random position on the screen of the smallest -size. */ -{ - Bubble *rv = (Bubble *)xmalloc(sizeof(Bubble)); - - /* Can't use null_bubble() here since magic number hasn't been set */ - if (rv == (Bubble *)NULL) { - fprintf(stderr, "Ran out of memory!\n"); - exit(1); - } - - if (simple) { - rv->radius = bubble_min_radius; - rv->area = bubble_areas[bubble_min_radius]; -#ifdef HAVE_XPM - } else { - rv->step = 0; - rv->radius = step_pixmaps[0]->radius; - rv->area = step_pixmaps[0]->area; -#endif /* HAVE_XPM */ - } - rv->visible = 0; - rv->magic = BUBBLE_MAGIC; - rv->x = ya_random() % screen_width; - rv->y = ya_random() % screen_height; - rv->cell_index = pixel_to_mesh(rv->x, rv->y); - - return rv; -} - -static void -show_bubble(bb) - Bubble *bb; -/* paint the bubble on the screen */ -{ - if (null_bubble(bb)) { - fprintf(stderr, "NULL bubble passed to show_bubble\n"); - exit(1); - } - - if (! bb->visible) { - bb->visible = 1; - - if (simple) { - XDrawArc(defdsp, defwin, draw_gc, (bb->x - bb->radius), - (bb->y - bb->radius), bb->radius*2, bb->radius*2, 0, - 360*64); - } else { -#ifdef HAVE_XPM - XSetClipOrigin(defdsp, step_pixmaps[bb->step]->draw_gc, - (bb->x - bb->radius), - (bb->y - bb->radius)); - - XCopyArea(defdsp, step_pixmaps[bb->step]->ball, defwin, - step_pixmaps[bb->step]->draw_gc, - 0, 0, (bb->radius * 2), - (bb->radius * 2), - (bb->x - bb->radius), - (bb->y - bb->radius)); -#endif /* HAVE_XPM */ - } - } -} - -static void -hide_bubble(bb) - Bubble *bb; -/* erase the bubble */ -{ - if (null_bubble(bb)) { - fprintf(stderr, "NULL bubble passed to hide_bubble\n"); - exit(1); - } - - if (bb->visible) { - bb->visible = 0; - - if (simple) { - XDrawArc(defdsp, defwin, erase_gc, (bb->x - bb->radius), - (bb->y - bb->radius), bb->radius*2, bb->radius*2, 0, - 360*64); - } else { -#ifdef HAVE_XPM - if (! broken) { - XSetClipOrigin(defdsp, step_pixmaps[bb->step]->erase_gc, - (bb->x - bb->radius), (bb->y - bb->radius)); - - XFillRectangle(defdsp, defwin, step_pixmaps[bb->step]->erase_gc, - (bb->x - bb->radius), - (bb->y - bb->radius), - (bb->radius * 2), - (bb->radius * 2)); - } -#endif /* HAVE_XPM */ - } - } -} - -static void -delete_bubble_in_mesh(bb, keep_bubble) - Bubble *bb; - int keep_bubble; -/* Delete an individual bubble, adjusting list of bubbles around it. - If keep_bubble is true then the bubble isn't actually deleted. We - use this to allow bubbles to change mesh cells without reallocating, - (it needs this when two bubbles collide and the centre position is - recalculated, and this may stray over a mesh boundary). */ -{ - if ((!null_bubble(bb->prev)) && (!null_bubble(bb->next))) { - bb->prev->next = bb->next; - bb->next->prev = bb->prev; - } else if ((!null_bubble(bb->prev)) && - (null_bubble(bb->next))) { - bb->prev->next = (Bubble *)NULL; - bb->next = mesh[bb->cell_index]; - } else if ((null_bubble(bb->prev)) && - (!null_bubble(bb->next))) { - bb->next->prev = (Bubble *)NULL; - mesh[bb->cell_index] = bb->next; - bb->next = mesh[bb->cell_index]; - } else { - /* Only item on list */ - mesh[bb->cell_index] = (Bubble *)NULL; - } - if (! keep_bubble) - free(bb); -} - -static unsigned long -ulongsqrint(x) - int x; -/* Saves ugly inline code */ -{ - return ((unsigned long)x * (unsigned long)x); -} - -static Bubble * -get_closest_bubble(bb) - Bubble *bb; -/* Find the closest bubble touching the this bubble, NULL if none are - touching. */ -{ - Bubble *rv = (Bubble *)NULL; - Bubble *tmp; - unsigned long separation2, touchdist2; - int dx, dy; - unsigned long closest2 = ULONG_MAX; - int i; - -#ifdef DEBUG - if (null_bubble(bb)) { - fprintf(stderr, "NULL pointer 0x%x passed to get_closest_bubble()!", - (int)bb); - exit(1); - } -#endif /* DEBUG */ - - for (i = 0; i < 9; i++) { - /* There is a bug here where bb->cell_index is negaitve.. */ -#ifdef DEBUG - if ((bb->cell_index < 0) || (bb->cell_index >= mesh_cells)) { - fprintf(stderr, "bb->cell_index = %d\n", bb->cell_index); - exit(1); - } -#endif /* DEBUG */ -/* printf("%d,", bb->cell_index); */ - if (adjacent_list[bb->cell_index][i] != -1) { - tmp = mesh[adjacent_list[bb->cell_index][i]]; - while (! null_bubble(tmp)) { - if (tmp != bb) { - dx = tmp->x - bb->x; - dy = tmp->y - bb->y; - separation2 = ulongsqrint(dx) + ulongsqrint(dy); - /* Add extra leeway so circles _never_ overlap */ - touchdist2 = ulongsqrint(tmp->radius + bb->radius + 2); - if ((separation2 <= touchdist2) && (separation2 < - closest2)) { - rv = tmp; - closest2 = separation2; - } - } - tmp = tmp->next; - } - } - } - - return rv; -} - -#ifdef DEBUG -static void -ldr_barf() -{ -} -#endif /* DEBUG */ - -static long -long_div_round(num, dem) - long num; - long dem; -{ - long divvie, moddo; - -#ifdef DEBUG - if ((num < 0) || (dem < 0)) { - fprintf(stderr, "long_div_round: %ld, %ld\n", num, dem); - ldr_barf(); - exit(1); - } -#endif /* DEBUG */ - - divvie = num / dem; - moddo = num % dem; - if (moddo > (dem / 2)) - ++divvie; - -#ifdef DEBUG - if ((divvie < 0) || (moddo < 0)) { - fprintf(stderr, "long_div_round: %ld, %ld\n", divvie, moddo); - ldr_barf(); - exit(1); - } -#endif /* DEBUG */ - - return divvie; -} - -static int -weighted_mean(n1, n2, w1, w2) - int n1; - int n2; - long w1; - long w2; -/* Mean of n1 and n2 respectively weighted by weights w1 and w2. */ -{ -#ifdef DEBUG - if ((w1 <= 0) || (w2 <= 0)) { - fprintf(stderr, "Bad weights passed to weighted_mean() - \ -(%d, %d, %ld, %ld)!\n", n1, n2, w1, w2); - exit(1); - } -#endif /* DEBUG */ - return ((int)long_div_round((long)n1 * w1 + (long)n2 * w2, - w1 + w2)); -} - -static int -bubble_eat(diner, food) - Bubble *diner; - Bubble *food; -/* The diner eats the food. Returns true (1) if the diner still exists */ -{ - int i; - int newmi; - -#ifdef DEBUG - if ((null_bubble(diner)) || (null_bubble(food))) { - fprintf(stderr, "Bad bubbles passed to bubble_eat()!\n"); - exit(1); - } -#endif /* DEBUG */ - - /* We hide the diner even in the case that it doesn't grow so that - if the food overlaps its boundary it is replaced. This could - probably be solved by letting bubbles eat others which are close - but not quite touching. It's probably worth it, too, since we - would then not have to redraw bubbles which don't change in - size. */ - - hide_bubble(diner); - hide_bubble(food); - diner->x = weighted_mean(diner->x, food->x, diner->area, food->area); - diner->y = weighted_mean(diner->y, food->y, diner->area, food->area); - newmi = pixel_to_mesh(diner->x, diner->y); - diner->area += food->area; - delete_bubble_in_mesh(food, DELETE_BUBBLE); - - if ((simple) && (diner->area > bubble_areas[bubble_max_radius])) { - delete_bubble_in_mesh(diner, DELETE_BUBBLE); - return 0; - } -#ifdef HAVE_XPM - if ((! simple) && (diner->area > - step_pixmaps[num_bubble_pixmaps]->area)) { - delete_bubble_in_mesh(diner, DELETE_BUBBLE); - return 0; - } -#endif /* HAVE_XPM */ - - if (simple) { - if (diner->area > bubble_areas[diner->radius + 1]) { - /* Move the bubble to a new radius */ - i = diner->radius; - while (diner->area > bubble_areas[i+1]) - ++i; - diner->radius = i; - } - show_bubble(diner); -#ifdef HAVE_XPM - } else { - if (diner->area > step_pixmaps[diner->step+1]->area) { - i = diner->step; - while (diner->area > step_pixmaps[i+1]->area) - ++i; - diner->step = i; - diner->radius = step_pixmaps[diner->step]->radius; - } - show_bubble(diner); -#endif /* HAVE_XPM */ - } - - /* Now adjust locations and cells if need be */ - if (newmi != diner->cell_index) { - delete_bubble_in_mesh(diner, KEEP_BUBBLE); - diner->cell_index = newmi; - add_to_mesh(diner); - } - - return 1; -} - -static int -merge_bubbles(b1, b2) - Bubble *b1; - Bubble *b2; -/* These two bubbles merge into one. If the first one wins out return -1 else return 2. If there is no winner (it explodes) then return 0 */ -{ - int b1size, b2size; - - b1size = b1->area; - b2size = b2->area; - -#ifdef DEBUG - if ((null_bubble(b1) || null_bubble(b2))) { - fprintf(stderr, "NULL bubble passed to merge_bubbles()!\n"); - exit(1); - } -#endif /* DEBUG */ - - if (b1 == b2) { - hide_bubble(b1); - delete_bubble_in_mesh(b1, DELETE_BUBBLE); - return 0; - } - - if (b1size > b2size) { - switch (bubble_eat(b1, b2)) { - case 0: - return 0; - break; - case 1: - return 1; - break; - default: - break; - } - } else if (b1size < b2size) { - switch (bubble_eat(b2, b1)) { - case 0: - return 0; - break; - case 1: - return 2; - break; - default: - break; - } - } else { - if ((ya_random() % 2) == 0) { - switch (bubble_eat(b1, b2)) { - case 0: - return 0; - break; - case 1: - return 1; - break; - default: - break; - } - } else { - switch (bubble_eat(b2, b1)) { - case 0: - return 0; - break; - case 1: - return 2; - break; - default: - break; - } - } - } - fprintf(stderr, "An error occurred in merge_bubbles()\n"); - exit(1); -} - -static void -insert_new_bubble(tmp) - Bubble *tmp; -/* Calculates which bubbles are eaten when a new bubble tmp is - inserted. This is called recursively in case when a bubble grows - it eats others. Careful to pick out disappearing bubbles. */ -{ - Bubble *nextbub; - Bubble *touch; - -#ifdef DEBUG - if (null_bubble(tmp)) { - fprintf(stderr, "Bad bubble passed to insert_new_bubble()!\n"); - exit(1); - } -#endif /* DEBUG */ - - nextbub = tmp; - touch = get_closest_bubble(nextbub); - while (! null_bubble(touch)) { - switch (merge_bubbles(nextbub, touch)) { - case 2: - /* touch ate nextbub and survived */ - nextbub = touch; - break; - case 1: - /* nextbub ate touch and survived */ - break; - case 0: - /* somebody ate someone else but they exploded */ - nextbub = (Bubble *)NULL; - break; - default: - /* something went wrong */ - fprintf(stderr, "Error occurred in insert_new_bubble()\n"); - exit(1); - } - /* Check to see if there are any other bubbles still in the area - and if we need to do this all over again for them. */ - if (! null_bubble(nextbub)) - touch = get_closest_bubble(nextbub); - else - touch = (Bubble *)NULL; - } -} - -#ifdef DEBUG -static int -get_length_of_bubble_list(bb) - Bubble *bb; -{ - Bubble *tmp = bb; - int rv = 0; - - while (! null_bubble(tmp)) { - rv++; - tmp = tmp->next; - } - - return rv; -} -#endif /* DEBUG */ - -/* - * Pixmap stuff used regardless of whether file I/O is available. Must - * still check for XPM, though! - */ - -#ifdef HAVE_XPM - -static void -free_pixmaps() -/* Free resources associated with XPM */ -{ - int i; - -#ifdef DEBUG - if (simple) { - fprintf(stderr, "free_pixmaps() called in simple mode\n"); - exit(1); - } - printf("free_pixmaps()\n"); -#endif /* DEBUG */ - - for(i = 0; i < (num_bubble_pixmaps - 1); i++) { - XFreePixmap(defdsp, step_pixmaps[i]->ball); - XFreePixmap(defdsp, step_pixmaps[i]->shape_mask); - XFreeGC(defdsp, step_pixmaps[i]->draw_gc); - XFreeGC(defdsp, step_pixmaps[i]->erase_gc); - XFreeColors(defdsp, defcmap, step_pixmaps[i]->xpmattrs.pixels, - step_pixmaps[i]->xpmattrs.npixels, 0); - XpmFreeAttributes(&step_pixmaps[i]->xpmattrs); - } -} - -static void -onintr(a) - int a; -/* This gets called when SIGINT or SIGTERM is received */ -{ - free_pixmaps(); - exit(0); -} - -#ifdef DEBUG -static void -onsegv(a) - int a; -/* Called when SEGV detected. Hmmmmm.... */ -{ - fflush(stdout); - fprintf(stderr, "SEGV detected! : %d\n", a); - exit(1); -} -#endif /* DEBUG */ - - -/* - * Pixmaps without file I/O (but do have XPM) - */ - -static void -pixmap_sort(head, numelems) - Bubble_Step **head; - int numelems; -/* Couldn't get qsort to work right with this so I wrote my own. This puts -the numelems length array with first element at head into order of radius. -*/ -{ - Bubble_Step tmp; - Bubble_Step *least = 0; - int minradius = INT_MAX; - int i; - - for (i = 0; i < numelems; i++) { - if (head[i]->radius < minradius) { - least = head[i]; - minradius = head[i]->radius; - } - } - if (*head != least) { - memcpy(&tmp, least, sizeof(Bubble_Step)); - memcpy(least, *head, sizeof(Bubble_Step)); - memcpy(*head, &tmp, sizeof(Bubble_Step)); - } - - if (numelems > 2) - pixmap_sort(&head[1], numelems-1); -} - -static int -extrapolate(i1, i2) - int i1; - int i2; -{ - return (i2 + (i2 - i1)); -} - -static void -make_pixmap_array(list) - Bubble_Step *list; -/* From a linked list of bubbles construct the array step_pixmaps */ -{ - Bubble_Step *tmp = list; - int ind; -#ifdef DEBUG - int prevrad = -1; -#endif - - if (list == (Bubble_Step *)NULL) { - fprintf(stderr, "NULL list passed to make_pixmap_array\n"); - exit(1); - } - - num_bubble_pixmaps = 1; - while(tmp->next != (Bubble_Step *)NULL) { - tmp = tmp->next; - ++num_bubble_pixmaps; - } - - if (num_bubble_pixmaps < 2) { - fprintf(stderr, "Must be at least two bubbles in file\n"); - exit(1); - } - - step_pixmaps = (Bubble_Step **)xmalloc((num_bubble_pixmaps + 1) * - sizeof(Bubble_Step *)); - - /* Copy them blindly into the array for sorting. */ - ind = 0; - tmp = list; - do { - step_pixmaps[ind++] = tmp; - tmp = tmp->next; - } while(tmp != (Bubble_Step *)NULL); - - /* We make another bubble beyond the ones with pixmaps so that the final - bubble hangs around and doesn't pop immediately. It's radius and area - are found by extrapolating from the largest two bubbles with pixmaps. */ - - step_pixmaps[num_bubble_pixmaps] = - (Bubble_Step *)xmalloc(sizeof(Bubble_Step)); - step_pixmaps[num_bubble_pixmaps]->radius = INT_MAX; - - pixmap_sort(step_pixmaps, (num_bubble_pixmaps + 1)); - -#ifdef DEBUG - if (step_pixmaps[num_bubble_pixmaps]->radius != INT_MAX) { - fprintf(stderr, "pixmap_sort() screwed up make_pixmap_array\n"); - } -#endif /* DEBUG */ - - step_pixmaps[num_bubble_pixmaps]->radius = - extrapolate(step_pixmaps[num_bubble_pixmaps-2]->radius, - step_pixmaps[num_bubble_pixmaps-1]->radius); - step_pixmaps[num_bubble_pixmaps]->area = - calc_bubble_area(step_pixmaps[num_bubble_pixmaps]->radius); - - -#ifdef DEBUG - /* Now check for correct order */ - for (ind = 0; ind < num_bubble_pixmaps; ind++) { - if (prevrad > 0) { - if (step_pixmaps[ind]->radius < prevrad) { - fprintf(stderr, "Pixmaps not in ascending order of radius\n"); - exit(1); - } - } - prevrad = step_pixmaps[ind]->radius; - } -#endif /* DEBUG */ -} - -#ifndef NO_DEFAULT_BUBBLE -static void -make_pixmap_from_default(pixmap_data, bl) - char **pixmap_data; - Bubble_Step *bl; -/* Read pixmap data which has been compiled into the program and a pointer - to which has been passed. - - This is virtually copied verbatim from make_pixmap_from_file() above and -changes made to either should be propagated onwards! */ -{ - int result; - XGCValues gcv; - -#ifdef DEBUG - if (pixmap_data == (char **)0) { - fprintf(stderr, "make_pixmap_from_default(): NULL passed\n"); - exit(1); - } -#endif - - if (bl == (Bubble_Step *)NULL) { - fprintf(stderr, "NULL pointer passed to make_pixmap()\n"); - exit(1); - } - - bl->xpmattrs.closeness = 40000; - bl->xpmattrs.valuemask = XpmColormap | XpmCloseness; - bl->xpmattrs.colormap = defcmap; - - /* This is the only line which is different from make_pixmap_from_file() */ - result = XpmCreatePixmapFromData(defdsp, defwin, pixmap_data, &bl->ball, - &bl->shape_mask, &bl->xpmattrs); - - switch(result) { - case XpmColorError: - fprintf(stderr, "xpm: color substitution performed\n"); - /* fall through */ - case XpmSuccess: - bl->radius = MAX(bl->xpmattrs.width, bl->xpmattrs.height) / 2; - bl->area = calc_bubble_area(bl->radius); - break; - case XpmColorFailed: - fprintf(stderr, "xpm: color allocation failed\n"); - exit(1); - case XpmNoMemory: - fprintf(stderr, "xpm: out of memory\n"); - exit(1); - default: - fprintf(stderr, "xpm: unknown error code %d\n", result); - exit(1); - } - - gcv.plane_mask = AllPlanes; - gcv.foreground = default_fg_pixel; - gcv.function = GXcopy; - bl->draw_gc = XCreateGC (defdsp, defwin, GCForeground, &gcv); - XSetClipMask(defdsp, bl->draw_gc, bl->shape_mask); - - gcv.foreground = default_bg_pixel; - gcv.function = GXcopy; - bl->erase_gc = XCreateGC (defdsp, defwin, GCForeground, &gcv); - XSetClipMask(defdsp, bl->erase_gc, bl->shape_mask); -} - -static void -default_to_pixmaps(void) -/* Make pixmaps out of default ball data stored in bubbles_default.c */ -{ - int i; - Bubble_Step *pixmap_list = (Bubble_Step *)NULL; - Bubble_Step *newpix, *tmppix; - char **pixpt; - - /* Make sure pixmaps are freed when program is terminated */ - /* This is when I hit ^C */ - if (signal(SIGINT, SIG_IGN) != SIG_IGN) - signal(SIGINT, onintr); - /* xscreensaver sends SIGTERM */ - if (signal(SIGTERM, SIG_IGN) != SIG_IGN) - signal(SIGTERM, onintr); -#ifdef DEBUG - if (signal(SIGSEGV, SIG_IGN) != SIG_IGN) { - printf("Setting signal handler for SIGSEGV\n"); - signal(SIGSEGV, onsegv); - } else { - printf("Didn't set signal hanlder for SIGSEGV\n"); - } -#endif /* DEBUG */ - - for (i = 0; i < num_default_bubbles; i++) { - pixpt = default_bubbles[i]; - newpix = (Bubble_Step *)xmalloc(sizeof(Bubble_Step)); - make_pixmap_from_default(pixpt, newpix); - /* Now add to list */ - if (pixmap_list == (Bubble_Step *)NULL) { - pixmap_list = newpix; - } else { - tmppix = pixmap_list; - while (tmppix->next != (Bubble_Step *)NULL) - tmppix = tmppix->next; - tmppix->next = newpix; - } - newpix->next = (Bubble_Step *)NULL; - } - - /* Finally construct step_pixmaps[] */ - make_pixmap_array(pixmap_list); -} - -#endif /* NO_DEFAULT_BUBBLE */ - -#endif /* HAVE_XPM */ - -/* - * File I/O stuff - */ - -#ifdef BUBBLES_IO - -static DIR * -my_opendir(name) - char *name; -/* Like opendir() but checks for things so we don't have to do it multiple -times in the code. */ -{ - DIR *rv; - - if (name == (char *)NULL) { - fprintf(stderr, "NULL directory name\n"); - return (DIR *)NULL; - } - - if ((rv = opendir(name)) == NULL) { - perror(name); - return (DIR *)NULL; - } - - return rv; -} - -static int -regular_file(name) - char *name; -/* Check to see if we can use the named file. This was broken under Linux -1.3.45 but seems to be okay under 1.3.54. The parameter "name" was being -trashed if the file didn't exist. Yeah, I know 1.3.x are development -kernels.... -*/ -{ - int fd; - - if ((fd = open(name, O_RDONLY)) == -1) { - perror(name); - return 0; - } else { - close(fd); - return 1; - } -} - -static char * -get_random_name(dir) - char *dir; -/* Pick an appropriate file at random out of the files in the directory dir */ -{ - STRUCT_DIRENT *dp; - DIR *dfd; - int numentries = 0; - int entnum; - int x; - char buf[PATH_BUF_SIZE]; - char *rv; - - if ((dfd = my_opendir(dir)) == (DIR *)NULL) - return (char *)NULL; - - while ((dp = readdir(dfd)) != NULL) { - if ((strcmp(DIRENT_NAME, ".") == 0) || (strcmp(DIRENT_NAME, "..") == 0)) - continue; - if ((strlen(dir)+strlen(DIRENT_NAME)+2) > 1024) { - fprintf(stderr, "name %s/%s too long\n", dir, DIRENT_NAME); - continue; - } - if (sprintf(buf, "%s/%s", dir, DIRENT_NAME) > (PATH_BUF_SIZE-1)) { - fprintf(stderr, "path buffer overflowed in get_random_name()\n"); - continue; - } - if (regular_file(buf)) - ++numentries; - } - closedir(dfd); - if (numentries == 0) { - fprintf(stderr, "No suitable files found in %s\n", dir); - return (char *)NULL; - } - entnum = ya_random() % numentries; - x = 0; - - if ((dfd = my_opendir(dir)) == (DIR *)NULL) - return (char *)NULL; - while ((dp = readdir(dfd)) != NULL) { - if ((strcmp(DIRENT_NAME, ".") == 0) || (strcmp(DIRENT_NAME, "..") == 0)) - continue; - if ((strlen(dir)+strlen(DIRENT_NAME)+2) > 1024) { - /* We warned about this previously */ - continue; - } - if (sprintf(buf, "%s/%s", dir, DIRENT_NAME) > (PATH_BUF_SIZE-1)) { - fprintf(stderr, "path buffer overflowed in get_random_name()\n"); - continue; - } - if (regular_file(buf)) { - if (x == entnum) { - rv = (char *)xmalloc(1024 * sizeof(char)); - strcpy(rv, buf); - closedir(dfd); - return rv; - } - ++x; - } - } - /* We've screwed up if we reach here - someone must have deleted all the - files while we were counting them... */ - fprintf(stderr, "get_random_name(): Oops!\n"); - exit(1); -} - -static int -read_line(fd, buf, bufsize) - int fd; - char **buf; - int bufsize; -/* A line is read from fd until a '\n' is found or EOF is reached. (*buf) -is initially of length bufsize and is extended by bufsize chars if need -be (for as many times as it takes). */ -{ - char x; - int pos = 0; - int size = bufsize; - int rv; - char *newbuf; - - while (1) { - rv = read(fd, &x, 1); - if (rv == -1) { - perror("read_line(): "); - return IO_ERROR; - } else if (rv == 0) { - (*buf)[pos] = '\0'; - return EOF_REACHED; - } else if (x == '\n') { - (*buf)[pos] = '\0'; - return LINE_READ; - } else { - (*buf)[pos++] = x; - if (pos == (size - 1)) { - /* We've come to the end of the space */ - newbuf = (char *)xmalloc((size+bufsize) * sizeof(char)); - strncpy(newbuf, *buf, (size - 1)); - free(*buf); - *buf = newbuf; - size += bufsize; - } - } - } -} - -static int -create_temp_file(name) - char **name; -/* Create a temporary file in /tmp and return a filedescriptor to it */ -{ - int rv; - - if (*name != (char *)NULL) - free(*name); - - if ((*name = tempnam("/tmp", "abxdfes")) == (char *)NULL) { - fprintf(stderr, "Couldn't make new temporary file\n"); - exit(1); - } -/* printf("Temp file created : %s\n", *name); */ - if ((rv = creat(*name, 0644)) == -1) { - fprintf(stderr, "Couldn't open temporary file\n"); - exit(1); - } - - return rv; -} - - -#ifdef BUBBLES_IO -static void -make_pixmap_from_file(fname, bl) - char *fname; - Bubble_Step *bl; -/* Read the pixmap in file fname into structure bl which must already - be allocated. */ -{ - int result; - XGCValues gcv; - - if (bl == (Bubble_Step *)NULL) { - fprintf(stderr, "NULL pointer passed to make_pixmap()\n"); - exit(1); - } - - bl->xpmattrs.closeness = 40000; - bl->xpmattrs.valuemask = XpmColormap | XpmCloseness; - bl->xpmattrs.colormap = defcmap; - - result = XpmReadFileToPixmap(defdsp, defwin, fname, &bl->ball, - &bl->shape_mask, &bl->xpmattrs); - - switch(result) { - case XpmColorError: - fprintf(stderr, "xpm: color substitution performed\n"); - /* fall through */ - case XpmSuccess: - bl->radius = MAX(bl->xpmattrs.width, bl->xpmattrs.height) / 2; - bl->area = calc_bubble_area(bl->radius); - break; - case XpmColorFailed: - fprintf(stderr, "xpm: color allocation failed\n"); - exit(1); - case XpmNoMemory: - fprintf(stderr, "xpm: out of memory\n"); - exit(1); - default: - fprintf(stderr, "xpm: unknown error code %d\n", result); - exit(1); - } - - gcv.plane_mask = AllPlanes; - gcv.foreground = default_fg_pixel; - gcv.function = GXcopy; - bl->draw_gc = XCreateGC (defdsp, defwin, GCForeground, &gcv); - XSetClipMask(defdsp, bl->draw_gc, bl->shape_mask); - - gcv.foreground = default_bg_pixel; - gcv.function = GXcopy; - bl->erase_gc = XCreateGC (defdsp, defwin, GCForeground, &gcv); - XSetClipMask(defdsp, bl->erase_gc, bl->shape_mask); -} -#endif /* BUBBLES_IO */ - -static void -read_file_to_pixmaps(fname) - char *fname; -/* Read the pixmaps contained in the file fname into memory. THESE SHOULD -BE UNCOMPRESSED AND READY TO GO! */ -{ - int fd, tmpfd=0, rv; - int inxpm = 0; - int xpmseen = 0; - char *buf = (char *)NULL; - char *tmpname = (char *)NULL; - Bubble_Step *pixmap_list = (Bubble_Step *)NULL; - Bubble_Step *newpix, *tmppix; - - /* We first create a linked list of pixmaps before allocating - memory for the array */ - - if ((fd = open(fname, O_RDONLY)) == -1) { - fprintf(stderr, "Couldn't open %s\n", fname); - exit(1); - } - - /* Make sure pixmaps are freed when program is terminated */ - /* This is when I hit ^C */ - if (signal(SIGINT, SIG_IGN) != SIG_IGN) - signal(SIGINT, onintr); - /* xscreensaver sends SIGTERM */ - if (signal(SIGTERM, SIG_IGN) != SIG_IGN) - signal(SIGTERM, onintr); -#ifdef DEBUG - if (signal(SIGSEGV, SIGN_IGN) != SIG_IGN) - signal(SIGSEGV, onsegv); -#endif /* DEBUG */ - - while (1) { - if (inxpm == 2) - break; - - buf = (char *)malloc(READ_LINE_BUF_SIZE * sizeof(char)); - - switch ((rv = read_line(fd, &buf, READ_LINE_BUF_SIZE))) { - case IO_ERROR: - fprintf(stderr, "An I/O error occurred\n"); - exit(1); - case EOF_REACHED: - if (inxpm) { - fprintf(stderr, "EOF occurred inside an XPM block\n"); - exit(1); - } else - inxpm = 2; - break; - case LINE_READ: - if (inxpm) { - if (strncmp("};", buf, 2) == 0) { - inxpm = 0; - write(tmpfd, buf, strlen(buf)); - write(tmpfd, "\n", 1); - close(tmpfd); - /* Now process the tmpfile */ - newpix = (Bubble_Step *)xmalloc(sizeof(Bubble_Step)); - make_pixmap_from_file(tmpname, newpix); - /* Now add to list */ - if (pixmap_list == (Bubble_Step *)NULL) { - pixmap_list = newpix; - } else { - tmppix = pixmap_list; - while (tmppix->next != (Bubble_Step *)NULL) - tmppix = tmppix->next; - tmppix->next = newpix; - } - newpix->next = (Bubble_Step *)NULL; - unlink(tmpname); - } else { - write(tmpfd, buf, strlen(buf)); - write(tmpfd, "\n", 1); - } - } else { - if (strncmp("/* XPM */", buf, 9) == 0) { - tmpfd = create_temp_file(&tmpname); -/* This proves XPM's performance is kinda pathetic */ -#ifdef DEBUG - printf("New XPM detected : %s, fd=%d\n", tmpname, tmpfd); -#endif /* DEBUG */ - inxpm = 1; - xpmseen = 1; - } - write(tmpfd, buf, strlen(buf)); - write(tmpfd, "\n", 1); - } - break; - default: - fprintf(stderr, "read_line returned unknown code %d\n", rv); - exit(1); - } - - free(buf); - } - - close(fd); - if (buf != (char *)NULL) - free(buf); - if (tmpname != (char *)NULL) - free(tmpname); - - if (! xpmseen) { - fprintf(stderr, "There was no XPM data in the file %s\n", fname); - exit(1); - } - - /* Finally construct step_pixmaps[] */ - make_pixmap_array(pixmap_list); -} - -static void -shell_exec(command) - char *command; -/* Forks a shell to execute "command" then waits for command to finish */ -{ - int pid, status, wval; - - switch(pid=fork()) { - case 0: - if (execlp(BOURNESH, BOURNESH, "-c", command, (char *)NULL) == -1) { - fprintf(stderr, "Couldn't exec shell %s\n", BOURNESH); - exit(1); - } - /* fall through if execlp() fails */ - case -1: - /* Couldn't fork */ - perror(progname); - exit(1); - default: - while ((wval = wait(&status)) != pid) - if (wval == -1) { - perror(progname); - exit(1); - } - } -} - -static void -uncompress_file(current, namebuf) - char *current; - char *namebuf; -/* If the file current is compressed (i.e. its name ends in .gz or .Z, -no check is made to see if it is actually a compressed file...) then a -new temporary file is created for it and it is decompressed into there, -returning the name of the file to namebuf, else current is returned in -namebuf */ -{ - int fd; - char *tname = (char *)NULL; - char argbuf[COMMAND_BUF_SIZE]; - - if (((strlen(current) >=4) && - (strncmp(¤t[strlen(current)-3], ".gz", 3) == 0)) || - ((strlen(current) >=3) && - (strncmp(¤t[strlen(current)-2], ".Z", 2) == 0))) { - fd = create_temp_file(&tname); - /* close immediately but don't unlink so we should have a zero length - file in /tmp which we can append to */ - close(fd); - if (sprintf(argbuf, "%s -dc %s > %s", GZIP, current, tname) > - (COMMAND_BUF_SIZE-1)) { - fprintf(stderr, "command buffer overflowed in uncompress_file()\n"); - exit(1); - } - shell_exec(argbuf); - strcpy(namebuf, tname); - } else { - strcpy(namebuf, current); - } - return; -} - -#endif /* BUBBLES_IO */ - -/* - * Main stuff - */ - - -static void -get_resources(dpy) - Display *dpy; -/* Get the appropriate X resources and warn about any inconsistencies. */ -{ - Bool nodelay; -#ifdef BUBBLES_IO -#ifdef HAVE_XPM - char *dirname; -#else - char *foo, *bar; -#endif /* HAVE_XPM */ -#endif /* BUBBLES_IO */ - - threed = get_boolean_resource("3D", "Boolean"); - quiet = get_boolean_resource("quiet", "Boolean"); - simple = get_boolean_resource("simple", "Boolean"); - /* Forbid rendered bubbles on monochrome displays */ - if ((mono_p) && (! simple)) { - if (! quiet) - fprintf(stderr, "Rendered bubbles not supported on monochrome \ -displays\n"); - simple = True; - } - delay = get_integer_resource("delay", "Integer"); - nodelay = get_boolean_resource("nodelay", "Boolean"); - if (nodelay) - delay = 0; - if (delay < 0) - delay = 0; - - default_fg_pixel = get_pixel_resource ("foreground", "Foreground", dpy, - DefaultColormap(dpy, - DefaultScreen(dpy))); - default_bg_pixel = get_pixel_resource ("background", "Background", dpy, - DefaultColormap(dpy, - DefaultScreen(dpy))); - - if (simple) { - /* This is easy */ - broken = get_boolean_resource("broken", "Boolean"); - if (broken) - if (! quiet) - fprintf(stderr, "-broken not available in simple mode\n"); - } else { -#ifndef HAVE_XPM - simple = 1; -#else - broken = get_boolean_resource("broken", "Boolean"); -#ifdef BUBBLES_IO - pixmap_file = get_string_resource("file", "File"); - dirname = get_string_resource("directory", "Directory"); -#ifdef NO_DEFAULT_BUBBLE - /* Must specify -file or -directory if no default bubble compiled in */ - if (strcmp(pixmap_file, "(default)") != 0) { - } else if (strcmp(dirname, "(default)") != 0) { - if ((pixmap_file = get_random_name(dirname)) == (char *)NULL) { - /* Die if we can't open directory - make it consistent with -file - when it fails, rather than falling back to default. */ - exit(1); - } - } else { - fprintf(stderr, "No default bubble compiled in - use -file or \ --directory\n"); - exit(1); - } -#else - if (strcmp(pixmap_file, "(default)") != 0) { - } else if (strcmp(dirname, "(default)") != 0) { - if ((pixmap_file = get_random_name(dirname)) == (char *)NULL) { - exit(1); - } - } else { - /* Use default bubble */ - use_default_bubble = 1; - } -#endif /* NO_DEFAULT_BUBBLE */ -#else - use_default_bubble = 1; -#endif /* BUBBLES_IO */ -#endif /* HAVE_XPM */ - } -} - -static void -init_bubbles (dpy, window) - Display *dpy; - Window window; -{ - XGCValues gcv; - XWindowAttributes xgwa; - int i; -#ifdef BUBBLES_IO - char uncompressed[1024]; -#endif /* BUBBLES_IO */ - - defdsp = dpy; - defwin = window; - - ya_rand_init(0); - - get_resources(dpy); - - XGetWindowAttributes (dpy, window, &xgwa); - -#ifdef DEBUG - printf("sizof(int) on this platform is %d\n", sizeof(int)); - printf("sizof(long) on this platform is %d\n", sizeof(long)); -#endif /* DEBUG */ - - screen_width = xgwa.width; - screen_height = xgwa.height; - screen_depth = xgwa.depth; - defcmap = xgwa.colormap; - - if (simple) { - /* These are pretty much plucked out of the air */ - bubble_min_radius = (int)(0.006*(double)(MIN(screen_width, - screen_height))); - bubble_max_radius = (int)(0.045*(double)(MIN(screen_width, - screen_height))); - /* Some trivial values */ - if (bubble_min_radius < 1) - bubble_min_radius = 1; - if (bubble_max_radius <= bubble_min_radius) - bubble_max_radius = bubble_min_radius + 1; - - mesh_length = (2 * bubble_max_radius) + 3; - - /* store area of each bubble of certain radius as number of 1/10s of - a pixel area. PI is defined in */ - bubble_areas = (long *)xmalloc((bubble_max_radius + 2) * sizeof(int)); - for (i = 0; i < bubble_min_radius; i++) - bubble_areas[i] = 0; - for (i = bubble_min_radius; i <= (bubble_max_radius+1); i++) - bubble_areas[i] = calc_bubble_area(i); - - mesh_length = (2 * bubble_max_radius) + 3; - } else { -#ifndef HAVE_XPM - fprintf(stderr, "Bug: simple mode code not set but HAVE_XPM not \ -defined\n"); - exit(1); -#else - /* Make sure all #ifdef sort of things have been taken care of in - get_resources(). */ - if (use_default_bubble) { -#ifdef NO_DEFAULT_BUBBLE - fprintf(stderr, "Bug: use_default_bubble and NO_DEFAULT_BUBBLE both \ -defined\n"); - exit(1); -#else - default_to_pixmaps(); -#endif /* NO_DEFAULT_BUBBLE */ - - /* Set mesh length */ - mesh_length = (2 * step_pixmaps[num_bubble_pixmaps-1]->radius) + 3; - } else { -#ifdef BUBBLES_IO - if (! regular_file(pixmap_file)) { - /* perror() in regular_file printed error message */ - exit(1); - } - uncompress_file(pixmap_file, uncompressed); - read_file_to_pixmaps(uncompressed); - if (strcmp(pixmap_file, uncompressed)) - unlink(uncompressed); - - mesh_length = (2 * step_pixmaps[num_bubble_pixmaps-1]->radius) + 3; -#else - fprintf(stderr, "Bug: use_default_bubble is not defined yet I/O is not \ -compiled in\n"); - exit(1); -#endif /* BUBBLES_IO */ - } -#endif /* HAVE_XPM */ - - /* Am I missing something in here??? */ - } - - mesh_width = (screen_width / mesh_length) + 1; - mesh_height = (screen_height / mesh_length) + 1; - mesh_cells = mesh_width * mesh_height; - init_mesh(); - - calculate_adjacent_list(); - - adjust_areas(); - - /* Graphics contexts for simple mode */ - if (simple) { - gcv.foreground = default_fg_pixel; - draw_gc = XCreateGC (dpy, window, GCForeground, &gcv); - gcv.foreground = default_bg_pixel; - erase_gc = XCreateGC (dpy, window, GCForeground, &gcv); - } - - XClearWindow (dpy, window); -} - -static void -bubbles (dpy, window) - Display *dpy; - Window window; -{ - Bubble *tmp; - - tmp = new_bubble(); - add_to_mesh(tmp); - insert_new_bubble(tmp); - - XSync (dpy, True); -} - - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - init_bubbles (dpy, window); - while (1) { - bubbles (dpy, window); - if (delay) - usleep(delay); - } -} - diff --git a/hacks/bubbles.h b/hacks/bubbles.h deleted file mode 100644 index 43f19407..00000000 --- a/hacks/bubbles.h +++ /dev/null @@ -1,217 +0,0 @@ -/* bubbles.h - definitions for bubbles screensaver */ - -/* $Id: bubbles.h,v 1.1 1996/09/08 01:35:40 jwz Exp $ */ - -#ifndef _BUBBLES_H_ -#define _BUBBLES_H_ - -#ifdef HAVE_XPM -#include -#endif - -/*************************************************************************** - * Options you might like to change to affect the program's behaviour * - ***************************************************************************/ - -/* - * Uncommenting the following will enable support for reading bubbles from - * files (using the -file and -directory options to bubbles). This is - * disabled by default since such operations are inherently non-portable - * and we want the program to compile on as many systems as possible. - * - * If you uncomment this and you figure out how to get it working, please - * let me (J.Macnicol@student.anu.edu.au) know. Diffs against the standard - * distribution would be appreciated. Possible sources of problems are - * dirent and possibly the use of tmpnam(). - */ - -/* #define BUBBLES_IO */ - -/* - * The following only makes sense if BUBBLES_IO above is defined. - * - * Uncomment the following if you always want to use the -file or - * -directory options on the command line and never to use a default bubble - * compiled into the program. This way you would save memory and disk space - * since if you do use -file or -directory only one bubble will be loaded - * into memory at any one time (and remember the default bubble is really - * uncompressed, unlike bubbles in files which can be compressed). This - * is disabled by default only so people running the program for the first - * time with no knowldege of the command line options don't get error - * messages ;) - * - * NOTE: You will still need to have a bubbles_default.c file, else the - * build sequence will fail. Well constructed bubbles_default.c files - * have #ifdef's which simply exclude everything else in the file at - * compile time. The bubblestodefault script does this. - */ - -/* #define NO_DEFAULT_BUBBLE */ - -/* - * This turns on any debugging messages and sanity checks. Hopefully you - * won't need this :) It slows things down a bit, too. - * - * NOTE: If you uncomment this you will get some messages about unused - * functions when you compile. You can ignore these - they refer to - * convenient checking routines which simply aren't called but are left - * in case someone wants to use them. - */ - -/* #define DEBUG */ - -/*************************************************************************** - * Things you might need to change to get things working right * - ***************************************************************************/ - -/* - * Name of the gzip binary. You shouldn't need to change this unless it's - * not in your PATH when the program is run, in which case you will need to - * substitute the full path here. Keep the double quotes else things won't - * compile! - */ - -#define GZIP "gzip" - -/* - * Likewise for the Bourne shell. - */ - -#define BOURNESH "sh" - -/* - * The name of the directory entry structure is different under Linux - * (under which this code is being developed) than other systems. The case - * alternate form here is that given in Kernighan & Ritchie's C book (which - * must be authoratitive, no?) - * - * 04/07/96 : People will have to hack this to get it working on some - * systems. I believe it doesn't work on SGI, for example. - */ - -#ifdef _POSIX_SOURCE -#define STRUCT_DIRENT struct dirent -#else -#define STRUCT_DIRENT Dirent -#endif - -/* - * The naming of fields in struct dirent also seems to differ from system to - * system. This may have to be extended to make things truly portable. - * What we want here is the name field from a dirent struct pointed to - * by "dp". - * - * 04/07/96 : See above. This may need to be changed too. - */ - -#ifdef _POSIX_SOURCE -#define DIRENT_NAME dp->d_name -#else -#define DIRENT_NAME dp->name -#endif - -/* - * I don't know why this isn't defined. - */ -#ifdef linux -extern char *tempnam(char *, char *); -#endif - -/**************************************************************************** - * Buffer lengths and things you probably won't need to touch * - ****************************************************************************/ - -/* Maximum length of a full path name we can deal with */ -#define PATH_BUF_SIZE 1024 - -/* Size of string passed to shell as command */ -#define COMMAND_BUF_SIZE 2500 - -/* Size increments for read_line() buffers */ -#define READ_LINE_BUF_SIZE 24 - -/**************************************************************************** - * End of options * - ****************************************************************************/ - -/* Some machines define M_PI and not PI. If they don't define either, use -own own. Really, the accuracy of this is _not_ very important. */ -#ifndef PI -#define PI M_PI -#ifndef M_PI -#define M_PI 3.1415926535 -#endif -#endif - -/* for delete_bubble_in_mesh() */ -#define DELETE_BUBBLE 0 -#define KEEP_BUBBLE 1 - -/* Status codes for read_line */ -#define LINE_READ 0 -#define EOF_REACHED 1 -#define IO_ERROR 2 - -/* - * Magic number for Bubble struct, in case it's trashed when debugging code - * (which happened to me often.... :( - */ - -#define BUBBLE_MAGIC 5674 - -/* Useful macros */ -#define MAX(A, B) ((A) > (B) ? (A) : (B)) -#define MIN(A, B) ((A) < (B) ? (A) : (B)) - -/* How we represent bubbles */ -struct bub { - int radius; - int step; /* for rendered bubbles */ - long area; - int x; - int y; - int magic; - int cell_index; - int visible; - struct bub *next; - struct bub *prev; -}; - -typedef struct bub Bubble; - -/* - * How we represent pixmaps of rendered bubbles. Because the range of radii - * available may not be continuous, we call each a step (for the lack of a - * better name...) - */ - -#ifdef HAVE_XPM -struct bub_step { - int radius; - long area; - Pixmap ball, shape_mask; - GC draw_gc, erase_gc; - XpmAttributes xpmattrs; - struct bub_step *next; -}; - -typedef struct bub_step Bubble_Step; -#endif /* HAVE_XPM */ - -/* Make sure default bubble isn't compiled when we don't have XPM -Disable file I/O code too. */ -#ifndef HAVE_XPM -#define NO_DEFAULT_BUBBLE -#ifdef BUBBLES_IO -#undef BUBBLES_IO -#endif /* BUBBLES_IO */ -#endif /* HAVE_XPM */ - -/* Make sure default bubble is compiled in when we have XPM and no file I/O */ -#ifdef HAVE_XPM -#ifndef BUBBLES_IO -#undef NO_DEFAULT_BUBBLE -#endif /* BUBBLES_IO */ -#endif /* HAVE_XPM */ - -#endif /* _BUBBLES_H_ */ diff --git a/hacks/bubbles_default.c b/hacks/bubbles_default.c deleted file mode 100644 index fe6be92b..00000000 --- a/hacks/bubbles_default.c +++ /dev/null @@ -1,2123 +0,0 @@ -#include -#include "bubbles.h" - -#ifndef NO_DEFAULT_BUBBLE - -/* XPM */ -static char *glass1[] = { -/* width height ncolors chars_per_pixel */ -"10 10 61 2", -/* colors */ -"`` c None", -"`a c #27274E", -"`b c #29293F", -"`c c #2C2C63", -"`d c #353579", -"`e c #242447", -"`f c #222245", -"`g c #25253E", -"`h c #1C1C3F", -"`i c #2B2B47", -"`j c #252544", -"`k c #222251", -"`l c #323264", -"`m c #212146", -"`n c #37374B", -"`o c #22223D", -"`p c #252536", -"`q c #232337", -"`r c #34346C", -"`s c #303068", -"`t c #26264A", -"`u c #5D5D97", -"`v c #363674", -"`w c #2C2C6A", -"`x c #2E2E5B", -"`y c #242451", -"`z c #343464", -"a` c #3C3C6F", -"aa c #353572", -"ab c #38386B", -"ac c #242454", -"ad c #181831", -"ae c #28285B", -"af c #37377A", -"ag c #20203F", -"ah c #26265C", -"ai c #4C4C60", -"aj c #383874", -"ak c #333379", -"al c #444458", -"am c #272756", -"an c #32326E", -"ao c #30306C", -"ap c #40407F", -"aq c #292944", -"ar c #212150", -"as c #323271", -"at c #2D2D76", -"au c #21213F", -"av c #25255A", -"aw c #35356D", -"ax c #313169", -"ay c #2C2C6E", -"az c #18182C", -"b` c #232344", -"ba c #292961", -"bb c #202037", -"bc c #1C1C33", -"bd c #242452", -"be c #45456F", -"bf c #242455", -/* pixels */ -"``````aibebebeal````", -"`````n`zaw`ua``l`n``", -"```i`xab`wasaj`r`x`q", -"``auaean`daf`vao`c`t", -"```haxahayatakbaaeb`", -"``adbfav`wapao`sam`m", -"``azagaracaaae`k`fbc", -"````bb`ybd`aar`e`o``", -"```````paq`j`b`g````", -"````````````````````" -}; -/* XPM */ -static char *glass2[] = { -/* width height ncolors chars_per_pixel */ -"12 12 75 2", -/* colors */ -"`` c None", -"`a c #25254C", -"`b c #23234A", -"`c c #212148", -"`d c #2E2E62", -"`e c #29293F", -"`f c #272754", -"`g c #414188", -"`h c #20202C", -"`i c #2E2E68", -"`j c #242447", -"`k c #25253E", -"`l c #B9B9ED", -"`m c #6767A3", -"`n c #2B2B47", -"`o c #29295C", -"`p c #252544", -"`q c #29295F", -"`r c #1F1F3E", -"`s c #2F2F68", -"`t c #2D2D66", -"`u c #30305F", -"`v c #4C4C6D", -"`w c #2B2B53", -"`x c #2F2F6E", -"`y c #34346C", -"`z c #3B3B55", -"a` c #303068", -"aa c #2C2C64", -"ab c #26264A", -"ac c #5D5D97", -"ad c #363674", -"ae c #3C3C66", -"af c #252556", -"ag c #30306E", -"ah c #3E3E54", -"ai c #2C2C6A", -"aj c #4C4C68", -"ak c #20204A", -"al c #2E2E5B", -"am c #343464", -"an c #16162C", -"ao c #292938", -"ap c #333384", -"aq c #3C3C6F", -"ar c #1E1E37", -"as c #38386B", -"at c #242454", -"au c #31316E", -"av c #181831", -"aw c #232349", -"ax c #272739", -"ay c #23234C", -"az c #37377A", -"b` c #1E1E3D", -"ba c #313174", -"bb c #3C3C78", -"bc c #383874", -"bd c #1B1B33", -"be c #40407F", -"bf c #292944", -"bg c #212150", -"bh c #2D2D76", -"bi c #191937", -"bj c #313169", -"bk c #22224D", -"bl c #18182C", -"bm c #2D2D65", -"bn c #232344", -"bo c #292961", -"bp c #27275F", -"bq c #242452", -"br c #484868", -"bs c #262657", -"bt c #242455", -/* pixels */ -"`````````vajajajbr``````", -"````ahaeae`yacasaq`zah``", -"`````w`f`dagacbb`y`u`u``", -"```naybm`i`mbabcaaamawar", -"``bf`ua`adbpaz`gai`ial`j", -"``bnbgbjaz`xbhapboaa`uav", -"``b`aybtbcaube`x`s`tbqbd", -"``anbiakafbb`l`i`q`o`rbl", -"`````rakbkaf`wbsay`c`k``", -"````ao`pay`aatab`bar`h``", -"````````ax`e`n`kax``````", -"````````````````````````" -}; -/* XPM */ -static char *glass3[] = { -/* width height ncolors chars_per_pixel */ -"14 14 90 2", -/* colors */ -"`` c None", -"`a c #27274E", -"`b c #383858", -"`c c #2E2E62", -"`d c #292967", -"`e c #3535A1", -"`f c #272751", -"`g c #23234D", -"`h c #29293F", -"`i c #353579", -"`j c #272754", -"`k c #20202C", -"`l c #2E2E3D", -"`m c #242447", -"`n c #25253E", -"`o c #3E3E67", -"`p c #1C1C3F", -"`q c #6767A3", -"`r c #2B2B47", -"`s c #29295C", -"`t c #2B2B61", -"`u c #29295F", -"`v c #1F1F3E", -"`w c #2F2F68", -"`x c #2D2D66", -"`y c #222251", -"`z c #2D2D69", -"a` c #33335B", -"aa c #37374B", -"ab c #22223D", -"ac c #28285A", -"ad c #2B2B53", -"ae c #2C2C36", -"af c #424266", -"ag c #232337", -"ah c #525265", -"ai c #32326A", -"aj c #1B1B2F", -"ak c #303068", -"al c #232351", -"am c #363674", -"an c #3C3C66", -"ao c #252556", -"ap c #27275B", -"aq c #363663", -"ar c #4C4C68", -"as c #2E2E5B", -"at c #29294C", -"au c #27274A", -"av c #252548", -"aw c #16162C", -"ax c #292938", -"ay c #353572", -"az c #38386B", -"b` c #4C4C85", -"ba c #2F2F83", -"bb c #20203F", -"bc c #313174", -"bd c #333379", -"be c #444458", -"bf c #272756", -"bg c #47477C", -"bh c #32326E", -"bi c #1B1B33", -"bj c #30306C", -"bk c #40407F", -"bl c #23233E", -"bm c #141422", -"bn c #343473", -"bo c #2D2D76", -"bp c #2E2E6D", -"bq c #40406E", -"br c #21213F", -"bs c #8080BA", -"bt c #25255A", -"bu c #1B1B39", -"bv c #35356D", -"bw c #262651", -"bx c #18182C", -"by c #373786", -"bz c #2B2B63", -"c` c #202037", -"ca c #1C1C33", -"cb c #242452", -"cc c #484868", -"cd c #1F1F43", -"ce c #2C2C5D", -"cf c #3535DD", -"cg c #262657", -"ch c #242455", -/* pixels */ -"``````````arccaharcc````````", -"``````bea``obqbqbqanafaa````", -"`````ladaqbv`qbsbgai`ca``b``", -"````a`a`asaib`bhb`bhakasau``", -"``c``j`c`d`dbd`eb`am`wce`aca", -"``bxasaobt`ibdbycf`iay`u`abx", -"``bl`a`t`ubnbdbocfbcbt`cbwbu", -"``bi`fch`sbhbkbabp`z`u`w`gaj", -"``bm`a`a`u`xbjaibgbzcgbf`paw", -"````agbralazap`t`ucbacbbaj``", -"`````kbrcdcbcbcgbw`y`vab`k``", -"``````axbrauatav`r`m`n`n````", -"``````````ax`h`r`nae````````", -"````````````````````````````" -}; -/* XPM */ -static char *glass4[] = { -/* width height ncolors chars_per_pixel */ -"20 20 151 2", -/* colors */ -"`` c None", -"`a c #27274E", -"`b c #25254C", -"`c c #383858", -"`d c #23234A", -"`e c #212148", -"`f c #2E2E62", -"`g c #292967", -"`h c #3535A1", -"`i c #29293F", -"`j c #2C2C63", -"`k c #2A2A61", -"`l c #33334C", -"`m c #353579", -"`n c #272754", -"`o c #20202C", -"`p c #2E2E3D", -"`q c #2E2E68", -"`r c #242447", -"`s c #2C2C66", -"`t c #222245", -"`u c #181824", -"`v c #25253E", -"`w c #B9B9ED", -"`x c #1C1C3F", -"`y c #6767A3", -"`z c #2B2B47", -"a` c #272743", -"aa c #222248", -"ab c #292931", -"ac c #29295C", -"ad c #1D1D39", -"ae c #252544", -"af c #2B2B61", -"ag c #29295F", -"ah c #1F1F3E", -"ai c #2F2F68", -"aj c #2D2D66", -"ak c #30305F", -"al c #2C2C5B", -"am c #11111C", -"an c #262655", -"ao c #31316D", -"ap c #4C4C6D", -"aq c #222251", -"ar c #323264", -"as c #43436E", -"at c #212146", -"au c #37374B", -"av c #22223D", -"aw c #252536", -"ax c #1D1D42", -"ay c #2A2A5C", -"az c #28285A", -"b` c #2B2B53", -"ba c #333372", -"bb c #2F2F6E", -"bc c #2B2B3F", -"bd c #2C2C36", -"be c #232337", -"bf c #34346C", -"bg c #525265", -"bh c #32326A", -"bi c #303068", -"bj c #21214C", -"bk c #2C2C64", -"bl c #292957", -"bm c #232351", -"bn c #26264A", -"bo c #2F2F60", -"bp c #5D5D97", -"bq c #363674", -"br c #3C3C66", -"bs c #252556", -"bt c #30306E", -"bu c #414178", -"bv c #2C2C6A", -"bw c #20204A", -"bx c #2E2E5B", -"by c #29294C", -"bz c #242451", -"c` c #27274A", -"ca c #343464", -"cb c #4F4F64", -"cc c #252548", -"cd c #292938", -"ce c #333384", -"cf c #3C3C6F", -"cg c #353572", -"ch c #1E1E37", -"ci c #38386B", -"cj c #414156", -"ck c #242454", -"cl c #181831", -"cm c #232349", -"cn c #272739", -"co c #4C4C85", -"cp c #2F2F83", -"cq c #28285B", -"cr c #36366C", -"cs c #48486D", -"ct c #23234C", -"cu c #37377A", -"cv c #20203F", -"cw c #26265C", -"cx c #313174", -"cy c #4C4C60", -"cz c #27273F", -"d` c #3C3C78", -"da c #48485C", -"db c #383874", -"dc c #333379", -"dd c #444458", -"de c #272756", -"df c #32326E", -"dg c #1B1B33", -"dh c #1E1E2C", -"di c #30306C", -"dj c #40407F", -"dk c #292944", -"dl c #212150", -"dm c #141422", -"dn c #323271", -"do c #2D2D76", -"dp c #2E2E6D", -"dq c #21213F", -"dr c #8080BA", -"ds c #23232D", -"dt c #25255A", -"du c #35356D", -"dv c #191937", -"dw c #262651", -"dx c #313169", -"dy c #2C2C6E", -"dz c #22224D", -"e` c #18182C", -"ea c #373786", -"eb c #232344", -"ec c #2B2B63", -"ed c #292961", -"ee c #202037", -"ef c #1C1C33", -"eg c #242452", -"eh c #45456F", -"ei c #535380", -"ej c #1F1F43", -"ek c #2C2C5D", -"el c #3535DD", -"em c #262657", -"en c #393963", -"eo c #242455", -/* pixels */ -"``````````````cycyapbgcbcybg````````````", -"``````````dacycsehcsehapehcsddcj````````", -"````````au`cenbraseicibucicibrendd``````", -"``````auau`ccacidudrbpdrcfcrarakau`p````", -"`````p`lbx`nbhbfdxcobpcodjdu`sakalb`bd``", -"`````zbybxbocicgbvbbdn`ydbdfbfekbxbybe``", -"``dh`r`rbl`faidydndn`hd`dnbtecafakdwah`o", -"``dhdqejcqajdfcg`meacu`hbqdfdibi`jblbndh", -"``ch`rbxemaidudnbq`geldcbqdbdn`jafbxbnav", -"``dm`x`bdxdxcwbqdycpdocxdcbvedbkcqalebdg", -"```uccctdzbsag`qbqdpeacxbtaidiagekdwcvdm", -"``dmcl`xeoandtdfbv`wdjcediecbiaydectatch", -"``amdvcm`xaf`kagaodi`qdbbaecanazejdvdv`u", -"````e``xcvandlcqckdtcgagcq`qaqay`tbjef``", -"````dsclaxbwdzdebsckb`acegbjeg`eaaadds``", -"``````eeeeejbzanegdw`abmdl`b`rcnavaw````", -"````````eeczbc`b`dby`dbya``eae`iaw``````", -"``````````bdawa`dkc`aeae`i`i`vab````````", -"``````````````bd`pcdcdbdcdbd````````````", -"````````````````````````````````````````" -}; -/* XPM */ -static char *glass5[] = { -/* width height ncolors chars_per_pixel */ -"24 24 164 2", -/* colors */ -"`` c None", -"`a c #27274E", -"`b c #25254C", -"`c c #383858", -"`d c #23234A", -"`e c #212148", -"`f c #2E2E62", -"`g c #292967", -"`h c #3535A1", -"`i c #272751", -"`j c #23234D", -"`k c #29293F", -"`l c #2C2C63", -"`m c #2A2A61", -"`n c #33334C", -"`o c #272754", -"`p c #414188", -"`q c #20202C", -"`r c #2E2E3D", -"`s c #1C1C28", -"`t c #2E2E68", -"`u c #242447", -"`v c #2C2C66", -"`w c #181824", -"`x c #25253E", -"`y c #161622", -"`z c #B9B9ED", -"a` c #3E3E67", -"aa c #1C1C3F", -"ab c #6767A3", -"ac c #2B2B47", -"ad c #222248", -"ae c #292931", -"af c #29295C", -"ag c #252544", -"ah c #1E1E47", -"ai c #2B2B61", -"aj c #29295F", -"ak c #1F1F3E", -"al c #2F2F68", -"am c #2D2D66", -"an c #30305F", -"ao c #2C2C5B", -"ap c #11111C", -"aq c #262655", -"ar c #31316D", -"as c #4C4C6D", -"at c #323264", -"au c #2D2D69", -"av c #33335B", -"aw c #212146", -"ax c #37374B", -"ay c #22223D", -"az c #252536", -"b` c #1D1D42", -"ba c #28285A", -"bb c #2B2B53", -"bc c #333372", -"bd c #2F2F6E", -"be c #2C2C36", -"bf c #424266", -"bg c #232337", -"bh c #2F2FB0", -"bi c #34346C", -"bj c #525265", -"bk c #32326A", -"bl c #1B1B2F", -"bm c #3B3B55", -"bn c #303068", -"bo c #21214C", -"bp c #2C2C64", -"bq c #292957", -"br c #26264A", -"bs c #202044", -"bt c #5D5D97", -"bu c #2B2B5C", -"bv c #363674", -"bw c #3C3C66", -"bx c #252556", -"by c #30306E", -"bz c #3E3E54", -"c` c #2C2C6A", -"ca c #25252E", -"cb c #27275B", -"cc c #363663", -"cd c #4C4C68", -"ce c #20204A", -"cf c #2E2E5B", -"cg c #29294C", -"ch c #242451", -"ci c #27274A", -"cj c #343464", -"ck c #252548", -"cl c #16162C", -"cm c #292938", -"cn c #333384", -"co c #3C3C6F", -"cp c #353572", -"cq c #1E1E37", -"cr c #38386B", -"cs c #414156", -"ct c #242454", -"cu c #31316E", -"cv c #181831", -"cw c #232349", -"cx c #272739", -"cy c #4C4C85", -"cz c #2F2F83", -"d` c #28285B", -"da c #292952", -"db c #48486D", -"dc c #23234C", -"dd c #37377A", -"de c #1E1E3D", -"df c #26265C", -"dg c #313174", -"dh c #4C4C60", -"di c #27273F", -"dj c #3C3C78", -"dk c #48485C", -"dl c white", -"dm c #383874", -"dn c #333379", -"do c #444458", -"dp c #272756", -"dq c #1B1B33", -"dr c #1E1E2C", -"ds c #30306C", -"dt c #40407F", -"du c #292944", -"dv c #212150", -"dw c #23233E", -"dx c #343473", -"dy c #323271", -"dz c #2D2D76", -"e` c #2E2E6D", -"ea c #40406E", -"eb c #21213F", -"ec c #8080BA", -"ed c #23232D", -"ee c #25255A", -"ef c #35356D", -"eg c #191937", -"eh c #262651", -"ei c #313169", -"ej c #2C2C6E", -"ek c #22224D", -"el c #18182C", -"em c #373786", -"en c #2D2D65", -"eo c #232344", -"ep c #2B2B63", -"eq c #292961", -"er c #27275F", -"es c #1C1C33", -"et c #242452", -"eu c #45456F", -"ev c #484868", -"ew c #1F1F43", -"ex c #2C2C5D", -"ey c #3535DD", -"ez c #262657", -"f` c #393963", -"fa c #242455", -/* pixels */ -"``````````````````dkdhbjbjbjbjdh````````````````", -"``````````````csasascdevcdascddbevdh````````````", -"``````````dodobfa`dbeubfeueueacrbfbfcsax````````", -"````````bzcsbwf`bwcrbicobteccratcof`bmbzbz``````", -"```````n`navavanefcjbibt`zcrcobicratccf``nax````", -"``````acbbao`oat`fambycobtdldjbkbialan`can`n````", -"````dicg`icj`fbi`fefdyauarabbybiefbnaicfbbcg`x``", -"````ac`udcbqenbk`tdyabczdgdxdmdtbpcpcjeicwcgcq``", -"```wdq`acfaiefcpe`bydn`hcyeydmc`ambcef`fcf`u`y`s", -"```ydudaandfbnaubvdgerbhdd`h`pdyc`cu`tezcf`b`ubl", -"``elad`abqezbndmdsbccncnczeydnbvdmdxamep`fcgcv`w", -"```weoetdv`leidfdd`gbddzdzdncncneqeebpexan`ucvap", -"``elcwdaexehd`epaubd`hdz`hcz`gdycucueeba`oekcl`w", -"``eldebsdcbxfaeedmejcuemdtcnbdbyalafambuet`bdq`w", -"```yclakboce`fbx`mcper`veccyauei`mbncbaqdpdaesap", -"````clakegbsceetbxdsdjdt`zbt`tctajdvafahakayel``", -"````eldqdeebetboenepetezbnbxencb`lbaeteoaabldr``", -"``````blakb`ceetekambxctbbafezctdcbo`eew`xcq````", -"``````ed`qakbsawekchchchetd``jboceaddwcxesed````", -"````````cmazag`xdcek`bchctetbrci`deocqbg`q``````", -"```````````qbgayckaybr`uacek`beo`x`xazca````````", -"``````````````aecxdi`kagacag`xcxcxcm````````````", -"``````````````````ca`rcmbebebeae````````````````", -"````````````````````````````````````````````````" -}; -/* XPM */ -static char *glass6[] = { -/* width height ncolors chars_per_pixel */ -"30 30 181 2", -/* colors */ -"`` c None", -"`a c #27274E", -"`b c #25254C", -"`c c #383858", -"`d c #23234A", -"`e c #212148", -"`f c #2E2E62", -"`g c #3535A1", -"`h c #23234D", -"`i c #29293F", -"`j c #2C2C63", -"`k c #2A2A61", -"`l c #33334C", -"`m c #353579", -"`n c #272754", -"`o c #20202C", -"`p c #2E2E3D", -"`q c #1C1C28", -"`r c #2E2E68", -"`s c #242447", -"`t c #2C2C66", -"`u c #222245", -"`v c #181824", -"`w c #25253E", -"`x c #161622", -"`y c #B9B9ED", -"`z c #3E3E67", -"a` c #1C1C3F", -"aa c #6767A3", -"ab c #2B2B47", -"ac c #272743", -"ad c #292931", -"ae c #29295C", -"af c #1D1D39", -"ag c #252544", -"ah c #1E1E47", -"ai c #2B2B61", -"aj c #29295F", -"ak c #1F1F3E", -"al c #2F2F68", -"am c #2D2D66", -"an c #30305F", -"ao c #2C2C5B", -"ap c #11111C", -"aq c #262655", -"ar c #31316D", -"as c #4C4C6D", -"at c #222251", -"au c #323264", -"av c #2D2D69", -"aw c #33335B", -"ax c #43436E", -"ay c #2B2B67", -"az c #212146", -"b` c #37374B", -"ba c #22223D", -"bb c #252536", -"bc c #1D1D42", -"bd c #28285A", -"be c #2B2B53", -"bf c #333372", -"bg c #2F2F6E", -"bh c #2C2C36", -"bi c #424266", -"bj c #232337", -"bk c #2F2FB0", -"bl c #34346C", -"bm c #525265", -"bn c #32326A", -"bo c #1B1B2F", -"bp c #3B3B55", -"bq c #303068", -"br c #21214C", -"bs c #2C2C64", -"bt c #292957", -"bu c #232351", -"bv c #26264A", -"bw c #2F2F60", -"bx c #202044", -"by c #5D5D97", -"bz c #2B2B5C", -"c` c #363674", -"ca c #3C3C66", -"cb c #252556", -"cc c #30306E", -"cd c #3E3E54", -"ce c #414178", -"cf c #2C2C6A", -"cg c #2F2F4F", -"ch c #25252E", -"ci c #27275B", -"cj c #363663", -"ck c #4C4C68", -"cl c #20204A", -"cm c #2E2E5B", -"cn c #29294C", -"co c #242451", -"cp c #27274A", -"cq c #343464", -"cr c #4F4F64", -"cs c #252548", -"ct c #16162C", -"cu c #292938", -"cv c #333384", -"cw c #3C3C6F", -"cx c #353572", -"cy c #1E1E37", -"cz c #38386B", -"d` c #414156", -"da c #242454", -"db c #31316E", -"dc c #181831", -"dd c #232349", -"de c #272739", -"df c #393979", -"dg c #4C4C85", -"dh c #2F2F83", -"di c #28285B", -"dj c #292952", -"dk c #36366C", -"dl c #48486D", -"dm c #23234C", -"dn c #37377A", -"do c #20203F", -"dp c #1E1E3D", -"dq c #26265C", -"dr c #313174", -"ds c #4C4C60", -"dt c #27273F", -"du c #3C3C78", -"dv c #48485C", -"dw c white", -"dx c #383874", -"dy c #333379", -"dz c #444458", -"e` c #272756", -"ea c #47477C", -"eb c #32326E", -"ec c #1E1E2C", -"ed c #30306C", -"ee c #40407F", -"ef c #292944", -"eg c #212150", -"eh c #23233E", -"ei c #141422", -"ej c #343473", -"ek c #323271", -"el c #2D2D76", -"em c #2E2E6D", -"en c #40406E", -"eo c #21213F", -"ep c #272731", -"eq c #8080BA", -"er c #23232D", -"es c #25255A", -"et c #1B1B39", -"eu c #35356D", -"ev c #191937", -"ew c #262651", -"ex c #313169", -"ey c #2C2C6E", -"ez c #22224D", -"f` c #18182C", -"fa c #373786", -"fb c #2D2D65", -"fc c #232344", -"fd c #2B2B63", -"fe c #292961", -"ff c #27275F", -"fg c #202037", -"fh c #1C1C33", -"fi c #242452", -"fj c #45456F", -"fk c #484868", -"fl c #535380", -"fm c #1F1F43", -"fn c #2C2C5D", -"fo c #353573", -"fp c #262657", -"fq c #393963", -"fr c #242455", -/* pixels */ -"````````````````````````bmbmbmbmbmbmbm``````````````````````", -"``````````````````dscrasasascrckasasasfkckbm````````````````", -"````````````````dsdsdzbifjfjfjfjaxaxfjfjckdzdv``````````````", -"````````````d`dvfqdzenfkfjencaendlaxaxcabibi`zdvb```````````", -"``````````cd`zaw`cfqcacaceflczbydg`zencjcwca`cbpbpcd````````", -"````````d`cdb``cawcqczdkeubycwbyczdwcwczcqaucaawb`b`b```````", -"````````b``lcmcqaoczaublbndgeqdfeqczdgbn`jcmanfnawcg`l``````", -"``````cu`w`wcmcmcqblardxeu`yceareqdueualbleuexdjcmbeba`p````", -"````chabcg`acmbwbqczaiebcfdfdgekeqdudxebcxblbncmcm`ababjer``", -"`````o`aeodmaobdalbn`rcfdf`mdhdrdyeaejdubscxffbwbwdd`b`w`q``", -"````fhbadjcmbq`jcxcxekemeydr`gdy`geeekek`t`rexe`e``ndjdcdc``", -"```q`veocnbtdialbleb`rfo`medfadnelbkc`bffeedeufn`jcmfmbvfg`x", -"``ecbo`sbze`feaeayexavbgej`gbkdyeydhdudnemdbfdal`kfna``udc`v", -"```xeieodjbtfpexfbc`avekbg`gbkelfa`g`gdxcxcfdxamfpbtcpfcdoap", -"```vcya`btegex`kbldqdncfeycvdyelcv`gdycvfefeebaedianfmfcdc`q", -"``fhcyetahfncobdbs`tbncfdybgcf`gdhcfavavav`tfraifnbtbteteoei", -"```xdpaz`bbtcl`fesfbedfdekelbkdhaaavbgcf`jfe`fesbwez`bbxdcei", -"```xfhdcbx`hfratbresfdedcfee`meedffded`t`tbqdiaee``nazazdcap", -"`````vdp`sew`bbqaifpfpdbbsccdxdfekbyee`j`jdialbzfidmazafct``", -"`````vbodpevbcaqbdatcb`tfdamar`ydg`taicbaje`dadaahaketevbo``", -"`````qf`bjakdobdezegfbaidacibncxdgbddiajalatfibz`ubccyfh`q``", -"``````chbjbcbcfmbdaediatcbfpfpajfpdaesfpbudmco`h`eewfhf`````", -"`````````ocydp`waz`e`baqfiesfpdjfpfiaidacpewah`wafdpbb``````", -"````````chfgfgfmddcofibdfi`bfi`ada`hegbu`h`seodtbafhec``````", -"``````````cuepdo`wefdmfidd`b`hdae``bbvcn`dagakbabj`o````````", -"````````````erbbdeefcsefcpabezcp`habef`sbx`wehbber``````````", -"````````````````chbbba`ief`iacagabef`i`wba`wcu``````````````", -"``````````````````chbb`p`p`w`w`pcu`p`icucuch````````````````", -"````````````````````````adadcudeepadbh``````````````````````", -"````````````````````````````````````````````````````````````" -}; -/* XPM */ -static char *glass7[] = { -/* width height ncolors chars_per_pixel */ -"36 36 187 2", -/* colors */ -"`` c None", -"`a c #27274E", -"`b c #25254C", -"`c c #383858", -"`d c #23234A", -"`e c #212148", -"`f c #2E2E62", -"`g c #292967", -"`h c #3535A1", -"`i c #272751", -"`j c #23234D", -"`k c #29293F", -"`l c #2C2C63", -"`m c #2A2A61", -"`n c #33334C", -"`o c #353579", -"`p c #272754", -"`q c #414188", -"`r c #20202C", -"`s c #2E2E3D", -"`t c #1C1C28", -"`u c #2E2E68", -"`v c #242447", -"`w c #2C2C66", -"`x c #222245", -"`y c #181824", -"`z c #25253E", -"a` c #161622", -"aa c #B9B9ED", -"ab c #3E3E67", -"ac c #1C1C3F", -"ad c #6767A3", -"ae c #2B2B47", -"af c #272743", -"ag c #222248", -"ah c #292931", -"ai c #29295C", -"aj c #1D1D39", -"ak c #252544", -"al c #1E1E47", -"am c #2B2B61", -"an c #29295F", -"ao c #1F1F3E", -"ap c #2F2F68", -"aq c #2D2D66", -"ar c #30305F", -"as c #2C2C5B", -"at c #11111C", -"au c #262655", -"av c #31316D", -"aw c #4C4C6D", -"ax c #222251", -"ay c #323264", -"az c #2D2D69", -"b` c #33335B", -"ba c #43436E", -"bb c #2B2B67", -"bc c #212146", -"bd c #37374B", -"be c #22223D", -"bf c #252536", -"bg c #1D1D42", -"bh c #2A2A5C", -"bi c #28285A", -"bj c #2B2B53", -"bk c #333372", -"bl c #2F2F6E", -"bm c #2B2B3F", -"bn c #2C2C36", -"bo c #424266", -"bp c #232337", -"bq c #2F2FB0", -"br c #34346C", -"bs c #525265", -"bt c #32326A", -"bu c #1B1B2F", -"bv c #3B3B55", -"bw c #303068", -"bx c #21214C", -"by c #2C2C64", -"bz c #292957", -"c` c #232351", -"ca c #26264A", -"cb c #2F2F60", -"cc c #202044", -"cd c #5D5D97", -"ce c #2B2B5C", -"cf c #363674", -"cg c #3C3C66", -"ch c #252556", -"ci c #30306E", -"cj c #3E3E54", -"ck c #414178", -"cl c #2C2C6A", -"cm c #2F2F4F", -"cn c #25252E", -"co c #27275B", -"cp c #363663", -"cq c #4C4C68", -"cr c #20204A", -"cs c #2E2E5B", -"ct c #29294C", -"cu c #242451", -"cv c #27274A", -"cw c #343464", -"cx c #4F4F64", -"cy c #252548", -"cz c #16162C", -"d` c #292938", -"da c #333384", -"db c #3C3C6F", -"dc c #353572", -"dd c #1E1E37", -"de c #38386B", -"df c #414156", -"dg c #242454", -"dh c #31316E", -"di c #181831", -"dj c #232349", -"dk c #272739", -"dl c #393979", -"dm c #4C4C85", -"dn c #2F2F83", -"do c #28285B", -"dp c #292952", -"dq c #48486D", -"dr c #23234C", -"ds c #37377A", -"dt c #1E1E3D", -"du c #26265C", -"dv c #313174", -"dw c #4C4C60", -"dx c #27273F", -"dy c #3C3C78", -"dz c #48485C", -"e` c white", -"ea c #383874", -"eb c #333379", -"ec c #444458", -"ed c #272756", -"ee c #47477C", -"ef c #32326E", -"eg c #1B1B33", -"eh c #1E1E2C", -"ei c #30306C", -"ej c #40407F", -"ek c #292944", -"el c #212150", -"em c #23233E", -"en c #141422", -"eo c #343473", -"ep c #323271", -"eq c #2D2D76", -"er c #2E2E6D", -"es c #40406E", -"et c #21213F", -"eu c #272731", -"ev c #8080BA", -"ew c #23232D", -"ex c #25255A", -"ey c #1B1B39", -"ez c #35356D", -"f` c #191937", -"fa c #262651", -"fb c #313169", -"fc c #2C2C6E", -"fd c #22224D", -"fe c #18182C", -"ff c #373786", -"fg c #2D2D65", -"fh c #232344", -"fi c #2B2B63", -"fj c #292961", -"fk c #27275F", -"fl c #202037", -"fm c #1C1C33", -"fn c #242452", -"fo c #45456F", -"fp c #484868", -"fq c #535380", -"fr c #1F1F43", -"fs c #2C2C5D", -"ft c #3535DD", -"fu c #353573", -"fv c #262657", -"fw c #393963", -"fx c #242455", -/* pixels */ -"````````````````````````````````bsbsbsdwbs``````````````````````````````", -"````````````````````````dwbsdwcqcxbscqdwcqcxdzcxbs``````````````````````", -"````````````````````fpcxawcqawcqawawcqawfocqcqawfpcqcx``````````````````", -"``````````````````ececfpfpbofodqdqdqesbababadqfobafpeccj````````````````", -"``````````````dfeccjabcgesbobaabadcgabbaeefobaesbob`cgdfcjcj````````````", -"````````````cjdfbvcgfwfwcgcgesbrevdbcdeeesdedbfwdbcgcpbvbvdfcj``````````", -"``````````bdbvbvcg`ccpcwdecwayckcdeecddydcbrezdecpayfwb`ar`ncjbd````````", -"```````````saecmcscpcscwbwaqayeaevfqdyckbtdefbcpeicscbcscpb`cmae````````", -"`````````scvbjcmar`pcsfb`fbt`fcidmdecdcdefdyezaqbraz`farasasarek`s``````", -"``````bnaecmdjayb`fscsbwaqfbbwdyaacddheacdfudbfbbrbtfbaqbzcsdpafcmcn````", -"```````s`zbj`basfs`fbr`f`wdcepeqcfcdfue`dmdvcdbkbkbrfb`fbwbjcaaect`z````", -"`````taeaoccdrcsfdfgbwbr`ubb`oadebdndvebe`eadsejbyavfgcwbtcsdjbjaeddbf``", -"````eudidjbzdp`pbzbwbbefeperfjdabldadada`qcfdveofi`wfb`fay`ped`aeteg`k``", -"`````yflfadpcsfs`lbrdcav`wcfeoepdsda`qbqebdydsepfiaveabwbz`maybc`abufe``", -"````fmek`aararaiambwbyefcfcfbqfkeqejds`gft`qeofuclfkbw`ubibtcs`bcv`vfe``", -"```ydi`v`xdpbzamaxaqfkavererbkfffcfc`hdaeqdscffudcclbkfgapanayaodpczeg`t", -"``atbpao`adpbzdo`mfgbtepereperfcbqft`g`hffbqbkdlfucleiaqfbdg`bctfrfmfea`", -"```yetfh`xdpelfbfsfbaz`mdsci`gblffdneqftebda`hdafjfjfgbybwdgardr`xdia`at", -"``ateheycccredfsaxfgcibbeffjejdafc`g`heqblfjepclazazap`wfscbbz`jacfrflat", -"``atczey`v`afsacfsdgco`lbb`gebffereqft`qffdaer`wfgfifififjbzcu`i`adda`at", -"````a`dtcy`xdrcrexfxfvfgeabkbbdhffadejdndnblclepapdubhaqfvcefn`xdtegfe``", -"````a`dieybxfnbx`jfsfxfkfgfgdheoev`qdncdfcdlfjfi`wfiapcuchaubzaceydiat``", -"````atdifr`abz`bbzbranaifneifufidyckejepckffepfibyaianancu`bbgbgagegen``", -"````atczegeyf`bgascrcrelchanefdyfieaaa`qaq`uexduanbhfxaicecraoemajfea```", -"```````tfebedtccaled`dcoaqdoamdeaiandydyaifi`mfbaqfdfnbh`pagfrddfmfe````", -"```````t`reydidjagbzaxchanfnaianchch`lbhcoaichauc`chdoelbgbgbcegfm`r````", -"`````````reyaoacetcrfn`afd`ffvchc`fvbjaianfvco`bdrdgbz`e`vbe`zeyeg``````", -"```````````regacem`vccfnbxc`cu`jbifnfvcoc`bi`ich`adjac`xflajemew````````", -"``````````ewbpbpdtaobcbc`jchbic``ac``afafafnfd`jfncybcdxdkbedd`r````````", -"````````````d`ddbeakfh`kdrfd`b`b`jcudged`bcacvct`dcyccddewd``r``````````", -"``````````````eubndddxdxakaecvcaae`ecaagaecvafcabcfhbp`keucn````````````", -"``````````````````d`flem`z`s`v`kbc`bekaeagaeetafekd`bmbf````````````````", -"`````````````````````s`zdk`zae`kdxakaeekek`zekbfdkd`bn``````````````````", -"````````````````````````bnbmd`dkdk`sbndxd`bmbfbnah``````````````````````", -"````````````````````````````````cnbneu`sah``````````````````````````````", -"````````````````````````````````````````````````````````````````````````" -}; -/* XPM */ -static char *glass8[] = { -/* width height ncolors chars_per_pixel */ -"44 44 189 2", -/* colors */ -"`` c None", -"`a c #27274E", -"`b c #25254C", -"`c c #383858", -"`d c #23234A", -"`e c #212148", -"`f c #2E2E62", -"`g c #292967", -"`h c #3535A1", -"`i c #272751", -"`j c #23234D", -"`k c #29293F", -"`l c #2C2C63", -"`m c #2A2A61", -"`n c #33334C", -"`o c #353579", -"`p c #272754", -"`q c #414188", -"`r c #20202C", -"`s c #2E2E3D", -"`t c #1C1C28", -"`u c #2E2E68", -"`v c #242447", -"`w c #2C2C66", -"`x c #222245", -"`y c #181824", -"`z c #25253E", -"a` c #161622", -"aa c #B9B9ED", -"ab c #3E3E67", -"ac c #1C1C3F", -"ad c #6767A3", -"ae c #2B2B47", -"af c #272743", -"ag c #222248", -"ah c #292931", -"ai c #29295C", -"aj c #1D1D39", -"ak c #252544", -"al c #1E1E47", -"am c #2B2B61", -"an c #29295F", -"ao c #1F1F3E", -"ap c #2F2F68", -"aq c #2D2D66", -"ar c #30305F", -"as c #2C2C5B", -"at c #11111C", -"au c #262655", -"av c #31316D", -"aw c #4C4C6D", -"ax c #222251", -"ay c #323264", -"az c #2D2D69", -"b` c #33335B", -"ba c #43436E", -"bb c #2B2B67", -"bc c #212146", -"bd c #37374B", -"be c #22223D", -"bf c #252536", -"bg c #1D1D42", -"bh c #2A2A5C", -"bi c #28285A", -"bj c #2B2B53", -"bk c #333372", -"bl c #2F2F6E", -"bm c #2B2B3F", -"bn c #2C2C36", -"bo c #424266", -"bp c #232337", -"bq c #2F2FB0", -"br c #34346C", -"bs c #525265", -"bt c #32326A", -"bu c #1B1B2F", -"bv c #3B3B55", -"bw c #303068", -"bx c #21214C", -"by c #2C2C64", -"bz c #292957", -"c` c #232351", -"ca c #26264A", -"cb c #2F2F60", -"cc c #202044", -"cd c #5D5D97", -"ce c #2B2B5C", -"cf c #363674", -"cg c #3C3C66", -"ch c #252556", -"ci c #30306E", -"cj c #3E3E54", -"ck c #414178", -"cl c #2C2C6A", -"cm c #2F2F4F", -"cn c #25252E", -"co c #27275B", -"cp c #363663", -"cq c #4C4C68", -"cr c #20204A", -"cs c #2E2E5B", -"ct c #29294C", -"cu c #242451", -"cv c #27274A", -"cw c #343464", -"cx c #4F4F64", -"cy c #252548", -"cz c #16162C", -"d` c #292938", -"da c #333384", -"db c #3C3C6F", -"dc c #353572", -"dd c #1E1E37", -"de c #38386B", -"df c #414156", -"dg c #242454", -"dh c #31316E", -"di c #181831", -"dj c #232349", -"dk c #272739", -"dl c #393979", -"dm c #4C4C85", -"dn c #2F2F83", -"do c #28285B", -"dp c #292952", -"dq c #36366C", -"dr c #48486D", -"ds c #23234C", -"dt c #37377A", -"du c #20203F", -"dv c #1E1E3D", -"dw c #26265C", -"dx c #313174", -"dy c #4C4C60", -"dz c #27273F", -"e` c #3C3C78", -"ea c #48485C", -"eb c white", -"ec c #383874", -"ed c #333379", -"ee c #444458", -"ef c #272756", -"eg c #47477C", -"eh c #32326E", -"ei c #1B1B33", -"ej c #1E1E2C", -"ek c #30306C", -"el c #40407F", -"em c #292944", -"en c #212150", -"eo c #23233E", -"ep c #141422", -"eq c #343473", -"er c #323271", -"es c #2D2D76", -"et c #2E2E6D", -"eu c #40406E", -"ev c #21213F", -"ew c #272731", -"ex c #8080BA", -"ey c #23232D", -"ez c #25255A", -"f` c #1B1B39", -"fa c #35356D", -"fb c #191937", -"fc c #262651", -"fd c #313169", -"fe c #2C2C6E", -"ff c #22224D", -"fg c #18182C", -"fh c #373786", -"fi c #2D2D65", -"fj c #232344", -"fk c #2B2B63", -"fl c #292961", -"fm c #27275F", -"fn c #202037", -"fo c #1C1C33", -"fp c #242452", -"fq c #45456F", -"fr c #484868", -"fs c #535380", -"ft c #1F1F43", -"fu c #2C2C5D", -"fv c #3535DD", -"fw c #353573", -"fx c #262657", -"fy c #393963", -"fz c #242455", -/* pixels */ -"````````````````````````````````````````````bs``````````````````````````````````````````", -"````````````````````````````````dybseabsawbsbscxawcxbsdybs``````````````````````````````", -"````````````````````````````eedycqcqcqdrcxawcqawawawawfrfrcxcq``````````````````````````", -"````````````````````````eadyfrdybafrfqawawfqdrawawfrfrdrawcqeaeeee``````````````````````", -"````````````````````eeeebofrboawbofqdrbadrfqeufqfqbababafqfrbobobocjee``````````````````", -"``````````````````dfeebvfybvcgbaboeueueueuababfqdefqegeuabeufybocgdfeacj````````````````", -"````````````````bvbo`nfydffybocgcgdedbegfsfqeuegexeudbdqdedbdeabfybvcjdfcj``````````````", -"``````````````bdcjbvfyfyb`defyfydedbckexexebckdmaqdbdbdbayaydeaycpbvab`ccjbd````````````", -"`````````````s`ccjb`b`b`b`ardededeaydcexadckaddbdbaadqdqbrbtbrayb`cpb``c`ccm`n``````````", -"```````````n`n`ncmcsb`cpascpegfi`ucwbrcdcdebehaddbbrdmfaayaqcbb`arcscs`ccmb`ae`s````````", -"``````````aeafcmaeasfu`paraycbbtfd`lavecckegcdcdaaec`qfa`ufa`f`ubwarbzb`cscs`kbm````````", -"````````ewaectfjbzcsb`arcwbtdcapec`fdcaadmcd`ueqaddmekecav`fapbtecbwdparbjcmaoct`n``````", -"````````bddzcmbjdparcscb`fdbfdfidcdlcieqbbdlciebexeletegbwbk`ubtbwfufucsdpcm`zctbm``````", -"```````ycmdjdpctauaramefcsbwapehekereddleledcfdmdmdmerelecaqaqbrehcbbzarfc`vbjcyem`r````", -"``````bpaobefjccbzasenbw`ufafdblcl`oeldldnbqededdtcdbkdldlet`lekamcbbw`fbjauctdp`zfn````", -"`````yfoaj`bbzeodsfibhbrekavcfcletfldneddxeddadtdadmbkerercleh`ubwbwcbbzarbhdpfjdiei`t``", -"````atfoemfcdpbzasfi`ffadcekbkazeqerbkerdadtdmfhbqdldleddxfkfdapdcfdfcam`pbz`e`ifoepa```", -"````a`dd`v`bbzbjefdw`lbwbtehdceccf`hfeerbqfhedesbqfvdlcifwcifldhbrficbficsefcc`v`xajbp``", -"````fnfgeo`vfubzbwdwco`ufm`m`ucfbler`ofh`hfveddndnbqdldldtcffmbkbwapbwaiefaybgctczfgei``", -"`````yczacaodpbjayfxcobwapbkehdhblerdtdnfe`hbqfhbqfedtcfeqecaqeqbwfiapanbhbr`zdjbcaofo``", -"````atczf``bbzbzbhax`laqbwaqdhciblfeclfhfhdafmbqdabqdacidldtdhflcf`wby`fauef`vccakev`y``", -"``ata`fnagccbzenbhfiaifdehezdhdlet`geteddnbqesfvedbqesdndabbfmfmbtbyamfufuasbcccdidiepat", -"````fgfgao`dbg`e`falcobwfkfmdh`o`gcidnesdn`gdabqed`geteretblekazfk`u`fdocb`j`abgf`ev`y``", -"`````yeicv`v`b`pamfcbhfxfidwetazazdx`q`heted`qfveder`get`wciekehchcodgbhffefeffcczbu`y``", -"````epdvfjfj`acubzenanbifxbyaqci`w`gereleddnesehdnazdxbkcl`wfmfm`f`lfmayenau`bfceidia```", -"`````ybuev`xcc`j`pfzaxau`jezekcferblcifhfhdmdmdldtfmblekdhekaq`fbififzbzftbidudvdifgbu``", -"````atfgfoaobgal`pc`auamaxcoekapdcfwaqe`edeldnele`ekelfm`manapaqficubi`pdjfcacf`bgdvep``", -"`````ya`f`ag`bdpasbcfubraibifmfmdhcfanekdcdmdtdhflexblcifkbyfiaifian`pau`pagbgbceicza```", -"``````epdif`dubcefbgauenaxfmco`f`mecekfied`uavexfkbbaqfmdwanapcubifxffbgacftbef`di`y````", -"``````a`czbuf`ddddbcfffcfcdgdoancofdezbwecfkap`wehaifmbtfiandwaxenbibzagf`ccbpaj`t`y````", -"`````````yfoeyaceoevenfpffbx`mam`mbifpdwchapehaicocoamaibibtezfxdgfxeffjccfpeiddfg``````", -"````````ej`rdidvaobzalbzfp`mauchfpfkezfkau`f`fdechchchfzbic`axbxfpauff`ebg`pejej`t``````", -"```````````tf`f`ajal`zcrfpendsffaycochfzdgfzbjcoancofpdo`ben`affce`edjbcbebef`di````````", -"```````````t`rf`dvaoeobcdu`ece`bfpencucofxbic`auc`dgficuef`bbxffbg`ebedddvaobfew````````", -"````````````cnejbpaodvftdj`jcr`pcoen`j`jcu`ifcbifx`jc``jen`bbx`vccbe`z`zddddcn``````````", -"``````````````ewbpddfbddaccycr`dfp`jfpca`jcu`dc`cacv`dff`d`d`x`dft`z`zbeejcn````````````", -"````````````````fgfneoduembmfj`vag`act`bds`ac``j`j`acv`bbcagak`xdudvbpcn`t``````````````", -"``````````````````ewd`fnaeakemcyaecvdjaeaecrcvdsakaeakafcy`jao`zfnd`cn`t````````````````", -"````````````````````d`dkfndzd``zbm`v`k`b`ecvemaeca`vaedudz`zafew`kbfey``````````````````", -"````````````````````````bfdkd`dz`kafdzae`vemcyafakakaedzdzbed`dkcn``````````````````````", -"````````````````````````````ahdkbnbnbm`z`sdk`s`zd`bm`safd`bn`s``````````````````````````", -"````````````````````````````````bnbn`sd`d`dk`sbmbnah`s`sah``````````````````````````````", -"````````````````````````````````````````````cn``````````````````````````````````````````", -"````````````````````````````````````````````````````````````````````````````````````````" -}; -/* XPM */ -static char *glass9[] = { -/* width height ncolors chars_per_pixel */ -"50 50 188 2", -/* colors */ -"`` c None", -"`a c #27274E", -"`b c #25254C", -"`c c #383858", -"`d c #23234A", -"`e c #212148", -"`f c #2E2E62", -"`g c #292967", -"`h c #3535A1", -"`i c #272751", -"`j c #23234D", -"`k c #29293F", -"`l c #2C2C63", -"`m c #2A2A61", -"`n c #33334C", -"`o c #353579", -"`p c #272754", -"`q c #414188", -"`r c #20202C", -"`s c #2E2E3D", -"`t c #1C1C28", -"`u c #2E2E68", -"`v c #242447", -"`w c #2C2C66", -"`x c #222245", -"`y c #181824", -"`z c #25253E", -"a` c #161622", -"aa c #B9B9ED", -"ab c #3E3E67", -"ac c #1C1C3F", -"ad c #6767A3", -"ae c #2B2B47", -"af c #272743", -"ag c #222248", -"ah c #292931", -"ai c #29295C", -"aj c #1D1D39", -"ak c #252544", -"al c #1E1E47", -"am c #2B2B61", -"an c #29295F", -"ao c #1F1F3E", -"ap c #2F2F68", -"aq c #2D2D66", -"ar c #30305F", -"as c #2C2C5B", -"at c #11111C", -"au c #262655", -"av c #31316D", -"aw c #4C4C6D", -"ax c #222251", -"ay c #323264", -"az c #2D2D69", -"b` c #33335B", -"ba c #43436E", -"bb c #2B2B67", -"bc c #212146", -"bd c #37374B", -"be c #22223D", -"bf c #252536", -"bg c #1D1D42", -"bh c #2A2A5C", -"bi c #28285A", -"bj c #2B2B53", -"bk c #333372", -"bl c #2F2F6E", -"bm c #2B2B3F", -"bn c #2C2C36", -"bo c #424266", -"bp c #232337", -"bq c #2F2FB0", -"br c #34346C", -"bs c #525265", -"bt c #32326A", -"bu c #1B1B2F", -"bv c #3B3B55", -"bw c #303068", -"bx c #21214C", -"by c #292957", -"bz c #232351", -"c` c #26264A", -"ca c #2F2F60", -"cb c #202044", -"cc c #5D5D97", -"cd c #2B2B5C", -"ce c #363674", -"cf c #3C3C66", -"cg c #252556", -"ch c #30306E", -"ci c #3E3E54", -"cj c #414178", -"ck c #2C2C6A", -"cl c #2F2F4F", -"cm c #25252E", -"cn c #27275B", -"co c #363663", -"cp c #4C4C68", -"cq c #20204A", -"cr c #2E2E5B", -"cs c #29294C", -"ct c #242451", -"cu c #27274A", -"cv c #343464", -"cw c #4F4F64", -"cx c #252548", -"cy c #16162C", -"cz c #292938", -"d` c #333384", -"da c #3C3C6F", -"db c #353572", -"dc c #1E1E37", -"dd c #38386B", -"de c #414156", -"df c #242454", -"dg c #31316E", -"dh c #181831", -"di c #232349", -"dj c #272739", -"dk c #393979", -"dl c #4C4C85", -"dm c #2F2F83", -"dn c #28285B", -"do c #292952", -"dp c #36366C", -"dq c #48486D", -"dr c #23234C", -"ds c #37377A", -"dt c #20203F", -"du c #1E1E3D", -"dv c #26265C", -"dw c #313174", -"dx c #4C4C60", -"dy c #27273F", -"dz c #3C3C78", -"e` c #48485C", -"ea c white", -"eb c #383874", -"ec c #333379", -"ed c #444458", -"ee c #272756", -"ef c #47477C", -"eg c #32326E", -"eh c #1B1B33", -"ei c #1E1E2C", -"ej c #30306C", -"ek c #40407F", -"el c #292944", -"em c #212150", -"en c #23233E", -"eo c #141422", -"ep c #343473", -"eq c #323271", -"er c #2D2D76", -"es c #2E2E6D", -"et c #40406E", -"eu c #21213F", -"ev c #272731", -"ew c #8080BA", -"ex c #23232D", -"ey c #25255A", -"ez c #1B1B39", -"f` c #35356D", -"fa c #191937", -"fb c #262651", -"fc c #313169", -"fd c #2C2C6E", -"fe c #22224D", -"ff c #18182C", -"fg c #373786", -"fh c #2D2D65", -"fi c #232344", -"fj c #2B2B63", -"fk c #292961", -"fl c #27275F", -"fm c #202037", -"fn c #1C1C33", -"fo c #242452", -"fp c #45456F", -"fq c #484868", -"fr c #535380", -"fs c #1F1F43", -"ft c #2C2C5D", -"fu c #3535DD", -"fv c #353573", -"fw c #262657", -"fx c #393963", -"fy c #242455", -/* pixels */ -"````````````````````````````````````````````````````````````````````````````````````````````````````", -"``````````````````````````````````````e`bscwbscwbsbsbsbsbsbsbscw````````````````````````````````````", -"````````````````````````````````bse`bscpbse`awawcwbsbsdqawawbsdxdxcwcw``````````````````````````````", -"````````````````````````````e`eddxfqcwcpfqfqawawdqawdqawawfqcwawawfqfqe`cw``````````````````````````", -"````````````````````````cie`e`dxfqboboawfpfpdqfpbafpawfpdqbofpabdqfqfqedcfdee```````````````````````", -"``````````````````````edede`cifqbodqabfpfpbabobaccbabafpbaddbaetfpfqabbobobodee`````````````````````", -"````````````````````deedbvbvfxfxcfetboetfpcfewetddetetdaefetbaetabetbofxabcfedcici``````````````````", -"``````````````````bdedbd`cabdefxababfxddetddcccjefbacjeaetddddcfdpdaddababb``cdeedde````````````````", -"````````````````bvbdbvfx`cb`fxcfcffxdddaddefccaaeaefewbwdldadaddcoayddcvcfb``cbvbdbvci``````````````", -"```````````````s`cbvbdb`b`b`cocvdddaddayf`braadlfrccdldzewdddaebddfcbwayfxcfb``cbd`cbd`s````````````", -"````````````bd`sclclbjb`crb`arcofr`ubtbtfcdkaaewewdlcjdabtdabtcvddebayaycadoarb``c`n`ncl`s``````````", -"``````````bdbv`c`ccub`b`b`ascrdp`fcadzaqbwfjebcjeaccewaaccdlfrdlegbw`f`lcab`crcrcrclclelbpbd````````", -"``````````bnbmcuclclcrb``pararcv`ff`fcegf`dzewcjcjeqdleabkavf`fc`mbrcaegfcaycabjararcrae`sbm````````", -"````````evaedycragcacvb`apcrasbwf``faybtavekewaddleqdkccccdkbrdzfcavapbrfhf`biascac`bjcuel`kbf``````", -"````````aeae`vcldo`acrcacr`fbtddaqapebceckbleqdzdseqaaadekdwebdkavceapbrbt`fftamcrbybjaeclbpbp``````", -"```````rfnbeakdocubzarfw`faiarbraqegejbkcheqeqekd``oefekewdzchekbkaqfhbtbkapcrcacr`j`vdocbbpfn`t````", -"``````cz`zdoakbccbbyasdr`fap`uf`fcejck`obkdl`odmfudwecdwaadzbkdzdbaz`legaqftar`fcadofbdobjafdccm````", -"``````bfehdc`aeefifbftaiambw`gavbkblck`gckd`eqecec`hfgd`addsepbkfvfkapazavf`fw`fbycrcd`a`vehbubp````", -"`````tbuehdyfbasdocaapayayebebbteq`geqchfvdwecbqdkaddsfudwdzbkckdwfjbrapf`bwf`byfwbyasdr`iezbucy`t``", -"`````yfnfieu`bdi`abydn`mfcf`f`egdbavdbec`odwcefgecdsd`dmbqepceeqf`az`wejdbbrambi`lcdft`bcbc``va`ei``", -"````a`eoenfifsaycrbyfl`mfc`uan`webceebdmer`gdwbqdsdsdmdmbqekdkeccechckfkejegfhbiftarby`a`v`vfiffbu``", -"````fmcycxdidt`iardpdnemanavflejazeqesepcefgblerfud`fgfderfgdkdsdkdzfkeqbkapapbt`lctfceuas`vcydhfn``", -"````ehdheudtagbybjcabidnapapfcebejblchcheqer`hbqbqerbqfufgecdsebcedkbkbleqf`fjambicaaycu`vcxa`du`y``", -"````fnfndhdtbgdobybifocnbwameqckdgeqeqfdesfdfgfgdwflfddmfufudwch`odschflejebdvayby`pee`vcbacfndcbu``", -"````bube`vacfe`iembyfc`f`ufc`wdveqdkeqflfddwfudm`her`hd`fgbqecd`ecbbflfkfjapdvbwdnftas`jfifieh`yeo``", -"````ffehdhdhdrcqalft`jembtai`wfkdg`obbesbldmfddm`gecfud`dmbbdw`ochbl`ufkap`weganaiar`j`j`ddu`adhff``", -"````ffdcdrdtbj`a`pfhfebibh`legfkesapaqeq`obqbqfddkfu`hd`dwfkchdw`wcheq`ufjemfyaucdby`peectduezdhbu``", -"`````tfadhag`v`iee`fcqfweefleyanaqfjazazebfg`g`qfu`hadcher`q`h`gazdwaibbap`lfw`waybxct`aagcbeueofn``", -"````eoa`ffcbfididr`eaxeybzbhcgaqepdlbkckazeqds`qfueqfdblefeqdzchdg`wfheyamey`laibyalbiagdraodheheo``", -"````at`ydhdh`dfsal`pfyalfyemeyey`waqdgazckepbkdw`qekepecfjdmejflazfj`ubw`lbiftaxee`beecbcbbcdu`ta```", -"````a`a`a`ficbalcqeeauct`fcgdffyflejapds`wefdleradewegaaegeseqbr`lfl`u`megamamctfb`vfebc`deudceoat``", -"``````eofffacb`abyftcbbybtfcanfwaidvapepap`wegazdzdlek`uerfgepdgfj`laqdncn`mbyfoct`p`vbgacezdhbu````", -"```````yffdhfsficbeealbybxbiemcncnamflch`u`uccew`udgdlf``wdldbcgflanbweefycnaxeeacezfsdyfmdh`y`t````", -"```````teoeiezajdcdc`ealeeai`jaxaiamcgavaiew`ucc`w`mandzanebflfcamfldvbiemdffw`pfeezcbdcbpeh`yeo````", -"`````````tfffffmaoakdtalamfbdremfjamaiaidffraiddegdbfhancnbrdn`mamegfwaxfocgftct`x`efeezeifn`t``````", -"````````ex`tehbeezdubydialcdaxcnbidndfbhfwbweydf`mandfcgdvananfyfofycncgcnaxfoacbg`e`pfadueiex``````", -"```````````rbufndcajacfscbbycqfofodnaifhfyai`paxcnfweyddcg`pcgfwfofedifeaxbyalfs`j`kduehfmfm````````", -"```````````yeifndhbefsao`vaxbxbxcsfebyfwbzfybidfcgbjfwaidnambibybzbx`afocdbc`vfidtezajbueha`````````", -"`````````````y`r`rezduaocxficb`jfw`abz`jct`jdnfwbzfwdnaufofofw`afo`i`ddiducb`zdudcezdu`rex``````````", -"``````````````evbudjfmajcbagbcctbcfwcgaufoct`afofb`afodf`jbzemfobx`dfe`val`xczdjbebpdccm````````````", -"````````````````evcmezfneufsaoelcqcxctfeaufecsfectbxbzfeae`b`jdrc``b`x`ecb`zbpfmfmeiev``````````````", -"``````````````````ffbubpfiafafbmbc`vag`bc`csdr`j`bct`jfefbcxcx`j`xdificxacbeenbfev`t````````````````", -"````````````````````cmczczdy`zak`kcucucudrcuaecxc`cxdrcxaeelak`vc``jajakbpafbfbf`r``````````````````", -"``````````````````````cmczbpdjdc`kcxelaoelakagbc`aaeel`bbxakakeu`zdtbm`zdjbpevbf````````````````````", -"````````````````````````cmbfeibfbmeuel`kelelafelelakaeelaf`k`k`zdjbebm`zbncmah``````````````````````", -"````````````````````````````czbnczbp`zafbmaedyafelbmdy`zdybeczdjczbf`kbpex``````````````````````````", -"`````````````````````````````````sevdjbncz`zdj`sczcz`k`k`s`sdjbfahevbn``````````````````````````````", -"``````````````````````````````````````evah`sbncz`kev`sbnczbnczah````````````````````````````````````", -"````````````````````````````````````````````````````````````````````````````````````````````````````", -"````````````````````````````````````````````````````````````````````````````````````````````````````" -}; -/* XPM */ -static char *glass10[] = { -/* width height ncolors chars_per_pixel */ -"60 60 189 2", -/* colors */ -"`` c None", -"`a c #27274E", -"`b c #25254C", -"`c c #383858", -"`d c #23234A", -"`e c #212148", -"`f c #2E2E62", -"`g c #292967", -"`h c #3535A1", -"`i c #272751", -"`j c #23234D", -"`k c #29293F", -"`l c #2C2C63", -"`m c #2A2A61", -"`n c #33334C", -"`o c #353579", -"`p c #272754", -"`q c #414188", -"`r c #20202C", -"`s c #2E2E3D", -"`t c #1C1C28", -"`u c #2E2E68", -"`v c #242447", -"`w c #2C2C66", -"`x c #222245", -"`y c #181824", -"`z c #25253E", -"a` c #161622", -"aa c #B9B9ED", -"ab c #3E3E67", -"ac c #1C1C3F", -"ad c #6767A3", -"ae c #2B2B47", -"af c #272743", -"ag c #222248", -"ah c #292931", -"ai c #29295C", -"aj c #1D1D39", -"ak c #252544", -"al c #1E1E47", -"am c #2B2B61", -"an c #29295F", -"ao c #1F1F3E", -"ap c #2F2F68", -"aq c #2D2D66", -"ar c #30305F", -"as c #2C2C5B", -"at c #11111C", -"au c #262655", -"av c #31316D", -"aw c #4C4C6D", -"ax c #222251", -"ay c #323264", -"az c #2D2D69", -"b` c #33335B", -"ba c #43436E", -"bb c #2B2B67", -"bc c #212146", -"bd c #37374B", -"be c #22223D", -"bf c #252536", -"bg c #1D1D42", -"bh c #2A2A5C", -"bi c #28285A", -"bj c #2B2B53", -"bk c #333372", -"bl c #2F2F6E", -"bm c #2B2B3F", -"bn c #2C2C36", -"bo c #424266", -"bp c #232337", -"bq c #2F2FB0", -"br c #34346C", -"bs c #525265", -"bt c #32326A", -"bu c #1B1B2F", -"bv c #3B3B55", -"bw c #303068", -"bx c #21214C", -"by c #2C2C64", -"bz c #292957", -"c` c #232351", -"ca c #26264A", -"cb c #2F2F60", -"cc c #202044", -"cd c #5D5D97", -"ce c #2B2B5C", -"cf c #363674", -"cg c #3C3C66", -"ch c #252556", -"ci c #30306E", -"cj c #3E3E54", -"ck c #414178", -"cl c #2C2C6A", -"cm c #2F2F4F", -"cn c #25252E", -"co c #27275B", -"cp c #363663", -"cq c #4C4C68", -"cr c #20204A", -"cs c #2E2E5B", -"ct c #29294C", -"cu c #242451", -"cv c #27274A", -"cw c #343464", -"cx c #4F4F64", -"cy c #252548", -"cz c #16162C", -"d` c #292938", -"da c #333384", -"db c #3C3C6F", -"dc c #353572", -"dd c #1E1E37", -"de c #38386B", -"df c #414156", -"dg c #242454", -"dh c #31316E", -"di c #181831", -"dj c #232349", -"dk c #272739", -"dl c #393979", -"dm c #4C4C85", -"dn c #2F2F83", -"do c #28285B", -"dp c #292952", -"dq c #36366C", -"dr c #48486D", -"ds c #23234C", -"dt c #37377A", -"du c #20203F", -"dv c #1E1E3D", -"dw c #26265C", -"dx c #313174", -"dy c #4C4C60", -"dz c #27273F", -"e` c #3C3C78", -"ea c #48485C", -"eb c white", -"ec c #383874", -"ed c #333379", -"ee c #444458", -"ef c #272756", -"eg c #47477C", -"eh c #32326E", -"ei c #1B1B33", -"ej c #1E1E2C", -"ek c #30306C", -"el c #40407F", -"em c #292944", -"en c #212150", -"eo c #23233E", -"ep c #141422", -"eq c #343473", -"er c #323271", -"es c #2D2D76", -"et c #2E2E6D", -"eu c #40406E", -"ev c #21213F", -"ew c #272731", -"ex c #8080BA", -"ey c #23232D", -"ez c #25255A", -"f` c #1B1B39", -"fa c #35356D", -"fb c #191937", -"fc c #262651", -"fd c #313169", -"fe c #2C2C6E", -"ff c #22224D", -"fg c #18182C", -"fh c #373786", -"fi c #2D2D65", -"fj c #232344", -"fk c #2B2B63", -"fl c #292961", -"fm c #27275F", -"fn c #202037", -"fo c #1C1C33", -"fp c #242452", -"fq c #45456F", -"fr c #484868", -"fs c #535380", -"ft c #1F1F43", -"fu c #2C2C5D", -"fv c #3535DD", -"fw c #353573", -"fx c #262657", -"fy c #393963", -"fz c #242455", -/* pixels */ -"````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````", -"````````````````````````````````````````````````bsbsbsbsbsbsbsbsbsbsbscxbs``````````````````````````````````````````````", -"``````````````````````````````````````````dycxdydycxawawawbsbsbsawcxcxcqdycxcxbs````````````````````````````````````````", -"````````````````````````````````````dyeacxfrawcqawfrawcqcxawcqawawawawawawfrfrcxcqeabs``````````````````````````````````", -"````````````````````````````````dfeadydyawcqawawfrcqawawdrawcqawawfqawcqcqfrawawfrdyeaeadf``````````````````````````````", -"``````````````````````````````eadyeadyfreedrboawfqfqfqdrfqeufqawbaawbabofqeufqdrcqfreeboeadf````````````````````````````", -"``````````````````````````dydffrbocjfrfrdrfrfrfqfqbabofrfqfsbaeubafqfqcgeubafqdrbaabbobobocjeedf````````````````````````", -"````````````````````````dfeeeadffyboeecgeufrfreufqeueueucgbaeubadrdbbacdbaeucgbabocpboboabboeaeebd``````````````````````", -"``````````````````````bdbdcjbd`cfyeefybaabcgfyeubaabdmfseudbdefsaackdbeudebaeudedebocgbofyfycjcjeecj````````````````````", -"````````````````````cjdfabbvb`cg`cfyfyfycgabcgdeckbrfscddecdcddmdmfsabdeeucwcpdbdbcgcgcp`cbvbvcjbvbdcj``````````````````", -"``````````````````bdbddfbv`ccgfyb`cgcgcpfycwdedbdbcdadcdexexckcd`u`uegdedbdbaycpaydecpcpb`bvfybvbdcj`s`s````````````````", -"````````````````dfbdcjbvbd`c`c`cb`cpcwcgdededqayfabrcdexdbcdcdcddeexebbrdbecdedqcwfdaycpcgarb`b`bd`cbd`sbd``````````````", -"```````````````sbdbd`n`ncmcscsarcscwcpdbbtbwbwbtbrfaebexegexaddbdeeceldqbrbrdqbtbkaybt`fbjcscpb`b``ncmctbdbd````````````", -"``````````````aebd`c`ncmcsb`cwayascsdebraybwbrfdbtazdmdeexaddladexckdedmdme`btay`lcbcscwarasfucpb`cmcmae`nbd````````````", -"`````````````saeeo`nbjcmcsarar`paycsbtcb`fbrbtfkfdciecdmdqebcdaacddmece`elbrazfabr`f`wbwbtarbzcsascsarbjbm`kbn``````````", -"``````````ewd`ae`z`c`zbjcsb`cscscwcwbrbravbtecbrfackaadmckexavciexdme`bkfabtapanbr`ffabtfdbtdpcscsbjbjdpbeae`s`s````````", -"``````````ahcm`kcm`bdparaycsay`fcscsfdbrfibwbtbrfdeqcd`qdmelbkeldmexdmeqdce`faerdcapbtbwfa`waucscscvdpdpafcmae`n````````", -"````````cncmaeakcmct`adpcsarcbcbbwdqdeapamdcehcfclbldlbldmeqeradexade`esecelehehdc`ubrbrbtfucsbhcsas`actbecmbpbpey``````", -"````````ejbpeo`vctcv`abzb`ef`ffxfucbbwapbldcdheqetesdlfwdmescfcddmdmdmbkbleldldhaq`ubrfabtcbcsbtcs`pcccycm`veobe`t``````", -"`````````rae`aajevdjdsasas`jbifiapbrbtav`uapclcfdlad`odndnfvdxededexegeceqe`e`cfbybydcbrfmcwcbfdcbbjdjca`bcv`zdd`t``````", -"``````ej`rbu`vcvcv`vcyfcbzefbz`f`uclapfderfeerclerdldlerdada`hedfhe`aacferdtcfciazapfk`ubramcbfuararbzfc`zaeaofo`t`r````", -"``````bpfodibedsdp`jcs`abwbh`lfadccidcecerclet`gfe`hdxdx`hededdt`hdaelcfereterer`wbk`ubtfdbtef`fefcb`paudpbcdiczdi`y````", -"``````ejddddemfcbjefcscs`faycedcececapciazcieqbldterdxdnbqelcdfhfv`h`oe`ererdnetfkfdekfabwbtfubifxfcar`affdpf``yepfo````", -"`````tej`ycyevcuctftbzefdoaiapaqbrbrehfw`udcfwda`oerekfhfhdxdtdaes`hbqfwcferbkehflfkekcffabwfuco`lbzcsbzftbccaevfneja```", -"````atddddem`xaocscsar`pdwdwfibwapbyapeccfdlcf`hdnfmbl`hfhdtdt`hclfvbq`qfhdxbkcfcl`gfkehfa`ufufpamaycsaydjcc`v`vfoepat``", -"````ejfgbucy`vccceaseffdfldgai`ubbfzfdazazcfblereqdt`hdnbq`hedbqfedndndte`dtdtdletfmdhehfkapapbt`mdgfubzacdp`xf`dicz`y``", -"````budddi`x`vevdpcsbzcwfxai`mapfdflfaavblercibkcffhcl`gfvfvfvdadaedclcfcfdteqecdcfkercfav`lbt`famchfdcsbe`bcaczfjbefg``", -"````a`buepccevcrdpbzbzcbfxbifdfififacfekazereretblfe`hfhbqesesdnfh`h`hbq`hfwecdldcerclavecaqaqfifxbhbzbzcv`xfjfodufnat``", -"````atepbufodualfcdp`lauauchfi`lapek`gcicieretfecl`gfhed`hesfm`gfefvfvfvdxbl`oederetfm`wdlfkfxaybzau`d`j`xduf`fgdufga```", -"`````yepddfjacccbz`benamfd`f`mfdbr`mdwcidtcfclfmfebldadneddnesdadadx`hdaededdaclflfmflfmehbyaiaydofuarasftccfjdidiei`t``", -"````a``yczczfbbcbc`bacficucraqfdanfkflaz`oehbbesbldndxfefefeesfvbqbqdnbbdtedciciazaqfkazaz`ubw`laicbas`pdjcccc`advddat``", -"````fo`yddccf`fcalcefucbcufpbi`fbyav`wazbt`ucldxed`hblescldn`hbqdndncl`gazedazazazfw`wekfzanameffucbbzbxbz`jf`fbevbuep``", -"````at`yfbaccy`a`bdsceaiffbzbichfi`manekaq`uclbkcffheletfvesfh`hesdx`qclci`gfkapap`wekapezanfzaifubxeffcfc`bdubufgepat``", -"````a`czdvf`bcdv`bffbzbicrax`fbiezcofifiekbkfk`geredeserbqdndndtadfhazcfblfecl`u`laiflaq`f`lez`ucbdgff`j`bdpccdddiepep``", -"````atczdidvaocy`v`edsbcaxdwbxfzefchameqecdlbl`gazdh`qfhaaadelesfhdaflblbkblerazapfidwbhchaqdobibzalfp`pccbgdveiczepat``", -"````a`epfoczdi`dccac`jaufzcraxaubxdwez`wfkehekbbclbkelaa`obqeleddldafkdmekfm`wfk`wfibwfidobhaiaxef`j`pdsbcacbcaodiddat``", -"``````eifgczevccfbau`jefdgffbhamaxfxezfd`w`l`odl`udcbk`wdneldtegadaaazetdlfmanan`waqfkehfifpbic``p`dbzagftao`vdifbfg````", -"``````a``yfgdv`b`v`ifcbz`b`ibwbtamfxfxfmfxekdhcfby`lciehec`wdlaverapcdecelaz`lby`lfidofiap`mcefxfp`idsagbcagajeicza`````", -"``````ata`czfbdv`vdjceasac`ibiamfian`maifxanazehave`apekehap`uege`ecazcfbkekdwfkfifiauchefbiencuftbcdvfbfof`fbdi`y`y````", -"`````````yczbudvdvdvfbcubgfcaucrbicraxfzchco`wekfke`aqflav`uaa`udm`u`w`uamfzchfmanameffpdgaidgfpaldvaoevf``zfbfgbu``````", -"````````a``tejeif`ajddajdsccbz`pbi`jfpdoanfzanbtai`f`ufkfkdq`lanebexaidcfme`fafiancodgenenbiai`pcracccf`bpddbufg`t``````", -"`````````t`yfgfgbpacaoakdubgbiauffdsenanfidoamaidgcdcoezbtecdc`mdmanbifidoanan`uapfzaxfpfpbhcecr`xbcbgbxddbufoej`t``````", -"```````````t`yfoddaodidv`i`xaleffpc`chfxamchezaichezfmfzanbwanfpcb`famfkanfxfzezcoanbifxc`ffefacbgccacf`ddddej`t````````", -"```````````tcnfobpdvbgdvbgbxftefbibxaiaudofzaxfichanfxfpfxezananfxchdgefezfzfxcuc`crdsfpcubz`jft`eeofcfbfoejfg`r````````", -"````````````eyfgbudiaoajbgdvbecrfpfpff`bffefbwaichchdgdgbhdgbjbidoaicofxfpaicubxds`afpdgas`e`vduag`z`zajdibuey``````````", -"```````````````t`rbuddeodvft`zalbccr`ec``bc`auenfp`jezchfxaidpc`fxdgfpfiamfcdgfxcvcrfcfpalcr`zbeajf`dvajbfey````````````", -"```````````````rbfbpfofbbgdvaffjfjcc`jfxbxfcc``b`bdsbiau`jc`biaibifxfpfcch`afpc``d`d`vdvfjfj`zdvajfbdvbp`tcn````````````", -"````````````````cnfnfnbpfnaoftftdj`ecuftfpaubidgfp`j`bfcfpfc`afpdgc``jfpencuc``b`j`e`vcrevdkdzewbefnfobfej``````````````", -"``````````````````bffnfnajfodvddccftaf`e`b`jdgcuai`jcv`jc`fcdj`jbxcvcvdsdsbxbxdjcr`xbxdjft`z`zddbefnbf`r````````````````", -"````````````````````d`eyewbeduak`zfjemcads`dfp`jdj`b`bcu`jcudgfpefds`bcacacvctct`dagak`xaoddbeeybpfn`r``````````````````", -"``````````````````````eyfnbpdkdz`z`zbmakfj`bag`v`dctctctctem`d`ecvctaeaeafcu`v`ecc`zakafbp`kbpewbfew````````````````````", -"````````````````````````eyeybfbpdk`zemcvcyafemakcvcvaeaeffdjcvcv`j`vae`vemaf`vagcc`z`z`zeodkbfd`ey``````````````````````", -"``````````````````````````cnbnfobe`kbe`kevemdzfj`k`z`b`edjctaeaeemds`eaf`vevdzdjafemd`dk`zbfd`ey````````````````````````", -"``````````````````````````````bncneybf`kbeaf`kememem`kcvafemakaeaeakemem`kdk`z`kbebm`zd`d`ah````````````````````````````", -"````````````````````````````````ahcnewd`dk`z`zaeaf`kaf`k`vemaedzcvakak`z`kdzd`dkdkbmbfbnah``````````````````````````````", -"````````````````````````````````````cncnbf`z`sd``s`k`z`s`zbm`s`kd`d``s`s`k`kd`ahd`bncn``````````````````````````````````", -"``````````````````````````````````````````bnd``s`s`kbnd`d`bfd``kbnbnd`bnd`ewahbn````````````````````````````````````````", -"````````````````````````````````````````````````ahbnahbnd`ewdkbfewahahewbn``````````````````````````````````````````````", -"````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````", -"````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````" -}; -/* XPM */ -static char *glass11[] = { -/* width height ncolors chars_per_pixel */ -"72 72 189 2", -/* colors */ -"`` c None", -"`a c #27274E", -"`b c #25254C", -"`c c #383858", -"`d c #23234A", -"`e c #212148", -"`f c #2E2E62", -"`g c #292967", -"`h c #3535A1", -"`i c #272751", -"`j c #23234D", -"`k c #29293F", -"`l c #2C2C63", -"`m c #2A2A61", -"`n c #33334C", -"`o c #353579", -"`p c #272754", -"`q c #414188", -"`r c #20202C", -"`s c #2E2E3D", -"`t c #1C1C28", -"`u c #2E2E68", -"`v c #242447", -"`w c #2C2C66", -"`x c #222245", -"`y c #181824", -"`z c #25253E", -"a` c #161622", -"aa c #B9B9ED", -"ab c #3E3E67", -"ac c #1C1C3F", -"ad c #6767A3", -"ae c #2B2B47", -"af c #272743", -"ag c #222248", -"ah c #292931", -"ai c #29295C", -"aj c #1D1D39", -"ak c #252544", -"al c #1E1E47", -"am c #2B2B61", -"an c #29295F", -"ao c #1F1F3E", -"ap c #2F2F68", -"aq c #2D2D66", -"ar c #30305F", -"as c #2C2C5B", -"at c #11111C", -"au c #262655", -"av c #31316D", -"aw c #4C4C6D", -"ax c #222251", -"ay c #323264", -"az c #2D2D69", -"b` c #33335B", -"ba c #43436E", -"bb c #2B2B67", -"bc c #212146", -"bd c #37374B", -"be c #22223D", -"bf c #252536", -"bg c #1D1D42", -"bh c #2A2A5C", -"bi c #28285A", -"bj c #2B2B53", -"bk c #333372", -"bl c #2F2F6E", -"bm c #2B2B3F", -"bn c #2C2C36", -"bo c #424266", -"bp c #232337", -"bq c #2F2FB0", -"br c #34346C", -"bs c #525265", -"bt c #32326A", -"bu c #1B1B2F", -"bv c #3B3B55", -"bw c #303068", -"bx c #21214C", -"by c #2C2C64", -"bz c #292957", -"c` c #232351", -"ca c #26264A", -"cb c #2F2F60", -"cc c #202044", -"cd c #5D5D97", -"ce c #2B2B5C", -"cf c #363674", -"cg c #3C3C66", -"ch c #252556", -"ci c #30306E", -"cj c #3E3E54", -"ck c #414178", -"cl c #2C2C6A", -"cm c #2F2F4F", -"cn c #25252E", -"co c #27275B", -"cp c #363663", -"cq c #4C4C68", -"cr c #20204A", -"cs c #2E2E5B", -"ct c #29294C", -"cu c #242451", -"cv c #27274A", -"cw c #343464", -"cx c #4F4F64", -"cy c #252548", -"cz c #16162C", -"d` c #292938", -"da c #333384", -"db c #3C3C6F", -"dc c #353572", -"dd c #1E1E37", -"de c #38386B", -"df c #414156", -"dg c #242454", -"dh c #31316E", -"di c #181831", -"dj c #232349", -"dk c #272739", -"dl c #393979", -"dm c #4C4C85", -"dn c #2F2F83", -"do c #28285B", -"dp c #292952", -"dq c #36366C", -"dr c #48486D", -"ds c #23234C", -"dt c #37377A", -"du c #20203F", -"dv c #1E1E3D", -"dw c #26265C", -"dx c #313174", -"dy c #4C4C60", -"dz c #27273F", -"e` c #3C3C78", -"ea c #48485C", -"eb c white", -"ec c #383874", -"ed c #333379", -"ee c #444458", -"ef c #272756", -"eg c #47477C", -"eh c #32326E", -"ei c #1B1B33", -"ej c #1E1E2C", -"ek c #30306C", -"el c #40407F", -"em c #292944", -"en c #212150", -"eo c #23233E", -"ep c #141422", -"eq c #343473", -"er c #323271", -"es c #2D2D76", -"et c #2E2E6D", -"eu c #40406E", -"ev c #21213F", -"ew c #272731", -"ex c #8080BA", -"ey c #23232D", -"ez c #25255A", -"f` c #1B1B39", -"fa c #35356D", -"fb c #191937", -"fc c #262651", -"fd c #313169", -"fe c #2C2C6E", -"ff c #22224D", -"fg c #18182C", -"fh c #373786", -"fi c #2D2D65", -"fj c #232344", -"fk c #2B2B63", -"fl c #292961", -"fm c #27275F", -"fn c #202037", -"fo c #1C1C33", -"fp c #242452", -"fq c #45456F", -"fr c #484868", -"fs c #535380", -"ft c #1F1F43", -"fu c #2C2C5D", -"fv c #3535DD", -"fw c #353573", -"fx c #262657", -"fy c #393963", -"fz c #242455", -/* pixels */ -"````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````", -"``````````````````````````````````````````````````````````````bsbsbsbsbsbsdydybsbsea````````````````````````````````````````````````````````````", -"``````````````````````````````````````````````````````eabsbsdybsbsbsbsbsbscqcxbsbsbsbsbscxdy````````````````````````````````````````````````````", -"````````````````````````````````````````````````dydybsbsdycqcqdycxbsbsfrcqcxdyfrcqcxcxbseacxcxbsbs``````````````````````````````````````````````", -"````````````````````````````````````````````eaeaeafrcqawawawdrdrawcxawawcqcqawawawawawbscqfrfrdycxcxea``````````````````````````````````````````", -"````````````````````````````````````````frdfcxcqawcqcqawawfrcqdrawfrawawcqawawawfqawcqawcqdrawdrfrdycqdycx``````````````````````````````````````", -"````````````````````````````````````eeeaeaeadycqdffrboboawfqfqfqdrdrfqbabadrdrdrdrbobodrdrbaawdrdyfreaeaboeeee``````````````````````````````````", -"``````````````````````````````````eeeefreeeefrbofrfrbofrfqeudrbadrfqdrfqeubabababababafqdreufqfrbafrfreeeeeacjdf````````````````````````````````", -"``````````````````````````````eecjboeebocjboboababboabdrfsfqfqbabobobafqfqawdrfqawbaeueudrdebafrbocgbobobobodfdfcjbd````````````````````````````", -"````````````````````````````dfeeeedfcjbvab`ccgfyeuabboabbabaabdbadeucgdeabbabadbegfqfqfqbaeueueubobob`bocgcgdfeacjcjcj``````````````````````````", -"``````````````````````````cjbddfcjbv`ccgdffycgfqbofyfyabdbeuabfqexbaeueudefqexadckdbbadedebaabdedeeufyboabcpfycjdfdfeecj````````````````````````", -"````````````````````````cjcjdfdfbvb`cg`cfyfyfyfycgabcgdeeudbbregexdbdbadcddmegexeucgdedbdbayfydbdbabcgfycpb`bv`cbvcjdfbdcj``````````````````````", -"``````````````````````bdbdcjbvbvfy`c`cb`cpcgfyfyfycpdededbdeegexdmaaebexckaadm`ucddbdedbdbcwcpcpfddedeb`fyb`bvfycjcmbdcj`s`s````````````````````", -"````````````````````bd`nbvbvbv`ccg`c`ccscpcwcwcgdebrcwbraydqckdbcdegegcdcdade`btdcadbrdqfabrdebrcpbwaycpfyfyb``car`n`nbdcjbnbd``````````````````", -"```````````````````n`s`n`ncj`nb`b`b`b`b`b`arcpdqfabrbrcwaybtbrexadcddbadaae`dedeexaddbdqdebrdedbdededeayb`b`cpb`b`fy`n`c`ncmbdbd````````````````", -"```````````````````n`sbdaecmcmcscscscpcscscpcwfsbwfiaqfdaybtecadexaafsexe`exckdbbtecdedqfdaycpbrekcbcsaycb`icsaycpb`b``ncm`naebd````````````````", -"`````````````````scj`c`ccmctbjcsb`cparasascsdqayaybwecbwbrbrbbe`dee`ebadegcdexadegdbcdade`ecbrbwfk`ffuarcwarcscscscpcscmcmct`nd`bd``````````````", -"```````````````s`saecv`nbjaecmasarar`parcsayfdcb`fbrbtaq`fbtciecdmdbdeebcdebcdebehece`egfabtaqecbrcbazap`fayarcsas`casbjarcmem`n`sbn````````````", -"``````````````ew`s`zcv`nevcmbjcscsbzcscwaydedqbwavfafdfadcdcckadebcke`aaehdhadebe`dcehdcbtbran`fbr`fbrfibtayaybzbjarcsb`bjbjafbm`sae````````````", -"````````````bnaeae`kcmagdjfuaycsb``ffucscsbtbwdcaqfifdfabwave`exaaadcdcddh`oecadcddmfwapdbe`fdaqbrapbtbtfdecaqbhbzarcs`adpcmaf`zcmcncn``````````", -"````````````dz`n`kctcmct`idparcwaybw`farfubrdqbr`ffdfafaecekerdcfeazeleqavdmexaddmelcibkegbrbtbkfa`uehbwfifiambzfxcscs`abjbjakctcmcm`z``````````", -"``````````ey`saf`zafbjcv`befascsfuar`ffdbrde`faq`wdcdcbkerclesdlcfdmcdblfwcdebaddmdldxercdecbkavbkapbrbtfdbt`fcbbwcbbjbzcactaebectfn`zey````````", -"``````````a`bf`zcacvdpcv`icucscsbi`fefbhar`fbr`uekbrekcierdxdxdlcieleqes`odmelelexdmcfere`eldcetaqfibwfadcapcbcscsbtcsfcccakdp`vcv`zfncn````````", -"`````````tbpaecvao`vcccydsbzcsbzffaifiekbwbtbrap`uekbber`odladdteddndnbqdxeqedeqebeleceqdtelelerbyfkavdcfiancwarbtfdcsbjdjfcbjctaebpddbpbf``````", -"````````bf`rfodpevcv`vfjcybz`idpefbhayapetblapfdciblcleqeteqeldldxdxdadadaesdadtadcdcfereqdldcekapap`wflbwayamcbbhcbasasdp`pbjakcvfjfo`y`y``````", -"````````ewdddidvdj`abzagdpcu`p`lbzambwfdbbclehdcerfeetetflfedaedbldxdadndaeddada`qdmcfeqdxdheqblfkap`waqfddq`fdgaycs`pcsefef`afjeveieifo`k``````", -"```````ybfevei`zft`afubzcsas`fam`fbwfaecdcdcdccfetbbblcieretedesed`h`heldm`qdafvdndleceqercledetaqbrapbkfaayfabwbz`fbiascs`p`j`vftf`a`epbu`t````", -"```````y`ybufnaefc`bdpcucs`pfubw`lbwbrdqdcehavfw`wcfcfereqfwercidt`hdae``qdtbqbqeddle`cfdtdxercifk`uavavecbwbw`fbz`m`mefay`jbc`d`aaobua`fg`t````", -"``````epbuddcvfjefca`bdsbzbzbhezbyaqaqbrdqehecdcfddccfeqdaedblazdtfhfhdxdtdnfednfvfvcfdtererdcehfl`wfkbkfafaap`fcefifiasasfudjbc`bcadudda``t````", -"``````a`foeoemak`adparcsarefaidwamapbwapbyazeheccfeccfdxbqesfmblesbqeldtdtbq`g`hfvbq`q`qeqerfweqclbbfmdhbwfa`ufubifxbtarcscb`b`bcv`v`vfgfgbu````", -"````atejfgfgcy`v`bbcfuasef`ffiezchco`uazezezap`uekdlererereqeddadnfvfved`ofvesesbqfvdle`dleddtdlclfmfkerbr`mapfibtbi`lbzfufuccfccvccdvfg`yfoat``", -"`````yfodiaj`v`v`x`bdpcsbzdeamamaxfkaqehfm`wav`ueteretbkbkcffhdxfednfefv`hbqdadxesfedtfwcfdtfwe`dcflcldlbkfdfibtap`fanfpayasao`idpagczfneifg`t``", -"````atfgfofgagccao`abjasbzcbfufxbibtbwfdapecdlavekerblbkeqeqdaesfedafvdndn`hfvfv`hdxeddtdtcffwdlecdhcleqehbkaqaqfkfkco`f`fayafctdjcadiajdv`yfo``", -"````atejbpczaocc`aaldpbzbzfudoen`mbtfiambtbtereretererbletetfeesbq`hfv`g`gdn`hdafhdabqfvbkbkdldlfwerclfkekecaqaqfdfidgef`b`pctccftakfoajfgbua```", -"````ata`befofoft`daldp`p`laubzambi`lby`lehfm`gavciererclfe`g`gfhdtdxed`g`gesfmdnfvfvdndnetdxedblblazfmfmapec`mfzcbarc`bzbxfcaoccftf`fgbcepfgbu``", -"`````y`yevbefjdv`xfpdp`jenbifd`lfufkfdbtazdw`merdtdtci`g`gfebledfhesdnfeesdafvededfvdaed`hdadaclflfmflezfibtbycobwfudgfuarfuds`v`xaodidia`atat``", -"````atfgaobudif`acfp`ebxacfu`fc`fxfdfdan`mdw`gaz`ocfekcletesdndxfecletesdn`h`hfvfhedclfheqfherek`gbyazfm`uaz`ubtamanfucbceaufcccccducaevfoatat``", -"````atfoejfof`fbcc`jcrbheffufualaxamfiancifkbbciehekflcleleqdadxfedn`gbq`hfvesdnblfmflbberedcletazeqazehapfm`w`lfubzcbcsbzcr`jdpacf`ftdvfn`yat``", -"````atfgbufodjfjdudp`afpfu`l`jfcbiefdoapavfkfketazbyazbldxdt`hes`hesdxdx`h`hesdndaet`gazeler`wazdhdhcidhanbxezfzchbibh`p`pfceffffcf`czfodd`yat``", -"````atatczdif``b`v`v`afffu`facfcfubidgfmcoez`lapbbap`gbbedecfhedetdaesesfv`h`qcifhfhdadletfl`wekfianfkcifk`lfkchfl`lbzcrcufc`ift`aaodddda`buat``", -"````at`tdif`dvagcycc`iff`pefcraxfz`fbianezfkap`uehfw`ufl`gcieqcderfh`hdnedeqdcfedmazdldxdl`gazaq`lfmfmdwfi`l`lan`wfdfucrc`fp`b`d`daoddbufnatat``", -"``````fga`f`dvdvcycc`xffdsdscrchezcrfzeffxezfieqecdlbkfebbcidh`qfhfhad`qelfedndadnfkblcfclcierazapaqdwaibhchaqanfxcecealfpef`x`bdvf`eiczfg`y````", -"``````at`yeiczeiajftftac`j`pfpaxalaxefbxfzch`maqfkbkerazclblbkdmdtdaaaedexfvaddafe`udmblflfkazbbazaqfiaqanbiamanaxfpbzds`pfcbcccdvftaoei`yep````", -"``````a`a`didif`f`acbxalfp`pbxax`jcefufzfzfmfmbbfifkfibkdhaveqelexfv`qcddndmcdadfeekdl`hflanfkfm`wfdfkapapbhcuefchcuau`bbz`jacccf``vdidvat`y````", -"``````a`epfoczdv`baoacefbxbzcscr`pfi`fcochchezez`mavekdcecfmfmdmfa`wdlapexcdcddmaabbazes`wfd`lan`maqaibwehapcofiauauau`befalbcdp`ddvfodieiat````", -"````````ata`difbftao`a`bbzfu`bagbzfdbrfiandoaiaifp`wekeqfw`wfkeke`apckaqelecerfkckcdfherer`ufk`wbyaqaidoanamanbzcufx`b`pbgbcbgccagdieiczep``````", -"````````at`yfgf`difbctagbzascrbcefaubififx`lananezdo`mcidhapav`uelcddcecape`dcflfaekbkeqekdwcofkfiapaidgefchbic`ffalftaldvf`bpf`fbdidia`a```````", -"````````at`yczddeiaof`dvfb`jbgccasc`crbhcrfpenchchcoanekeh`we``wfkelececaaek`qcdaqfk`ufiezdgdwfman`lbhenfzfzaifpcealcraoaodueobeajdifg`ya```````", -"``````````a`bueibueiajajddddbcbgalbzfcbh`j`pfpdoaichchavapdodmbtbyad`mfkbydweccfckaielfmbybt`l`mcodwanaxaxenbifxbzdsbxf`ftacfndkajfofgfg````````", -"``````````a``teifgbubeftdvafccbgalamef`j`dbxcofkaqcodo`famdgdeanaidqanape``me`fiaianfk`m`mbwfdapaqfzffenfpc`bhfu`pftagagft`jddddfofofga`````````", -"````````````fg`tbueibpf`dvevfbevbgfpfpcrenbxaxamfiananfkbiaxfpezezfxfkecbwbifzch`mezfiamdocochfi`lcobibibzfpfpbzcufjevccac`efgbubu`tej``````````", -"`````````````tbu`rejf`aodidvdjfcagacbzbhaxdochfxanfzfpbiaichanbychchchbt`lfzbhezcofxaiaichchaufzc`fxch`jdoffenefbgalbgbcbccceiddfo`y`r``````````", -"```````````````rejeifodvdvajacbcccccdgbibxfpdgaufuezfz`manfzanfxaufp`fcodocoezchchenauchfxchefff`jagffbxenbzbi`dftbc`edz`df`buddbudd````````````", -"```````````````y`rbuf`diaoajacbgevevcrfpfpfp`afffffc`faqfxchchfzc`dgfxdgbjfxaiaiancofxfpcodg`bffds`adgbxbzbz`e`v`vftbeev`zajf`ddei`t````````````", -"`````````````````yfoeyfbaj`zajbgevakalbxcccu`e`b`bc`efbic`axaxchfxfpezchbjfcdodochfx`fanbzcuaufxcv`bfp`pef`e`eeoeoaof`f`ajdv`rfn`r``````````````", -"``````````````````cn`rejeidvacdveoak`vccccfffpbibx`ac``jcucu`jfxbifxfpfxfxfxcodgc`aybiai`i`jch`j`a`edjagacbc`x`zfnddajf`eodvey`t````````````````", -"``````````````````eybfej`rejfoaoevcccc`v`xbcc`c`fffpbicubxcucuffc`cu`pfcfpdgbhdoaucu`jcuffbxbx`bcr`efjagbcfjeodkeodkevddfobpcney````````````````", -"````````````````````eyejbpejbpdddvaoaodjbcagbcft`jefchfxbiauc``a`ac`c`fc`afcfccufcenfp`jfffp`jdsfpftcycrbcccdz`zdkbebebfddbf`r``````````````````", -"``````````````````````cnbpeyfofofodudd`eacdjafcr`d`dcufpffef`jca`bff`jfcbxcuc`dsaecv`d`jds`dcy`vag`xagbcfteo`zbpfnbpbfej`r`r````````````````````", -"````````````````````````d`bpddbfbebgak`zfj`z`kdsdsbxffff`bdj`b`b`jcucucudgcueffp`b`bcacacvcvctct`dagcyfjccevddeoeybpd`ej`r``````````````````````", -"``````````````````````````eyddbp`r`k`z`zdzem`kfjfj`b`d`vdjcyctctcactctcv`dcr`bcvctaeaecv`b`jfjdsccakcveoakbedz`zd`ahewah````````````````````````", -"````````````````````````````ewcnbnbndd`kdzfjdzemakemae`zcv`dcaaeaecy`e`acadsag`vaeaecvakaffjcacrbcajfj`zbp`z`kfnewewcn``````````````````````````", -"```````````````````````````````rewbfbp`z`zbedzafcyakembeafctcaak`d`v`acvaeae`dff`dag`baeakfj`zcy`zbm`z`z`k`zbfd`ahcn````````````````````````````", -"```````````````````````````````````sd`eyfnbmeobm`zdz`saf`v`k`kcvbcag`bcvemaeaecvagcyaecvevafaf`zem`zd`dkbmd`bfbf````````````````````````````````", -"````````````````````````````````````ahewfoewbf`k`z`zdz`zafemememcvaf`kdz`vafaeafakemembmbpafdkdkbp`k`zbp`seyah``````````````````````````````````", -"`````````````````````````````````````````sah`zewdk`z`zdzaeaf`kemdzakakaeae`kemakemeo`z`kemdkbfbpdk`kd`d`bn``````````````````````````````````````", -"````````````````````````````````````````````ahbnbf`zd`d``sbm`kdz`sdkdk`sae`k`zbmd``k`sbmdz`kbnah`s`sbn``````````````````````````````````````````", -"````````````````````````````````````````````````bncnbmbnd`dkdkdkdkbm`sbnbnbndzd`d``sbm`sbfd`bnewah``````````````````````````````````````````````", -"``````````````````````````````````````````````````````cnd``s`s`sahd`dkbmbnbn`sbnd`bnbn`newah````````````````````````````````````````````````````", -"``````````````````````````````````````````````````````````````ahcn`sbnahewbn`sewahbn````````````````````````````````````````````````````````````", -"````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````", -"````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````" -}; -char **default_bubbles[] = {glass1, glass2, glass3, glass4, glass5, glass6, glass7, glass8, glass9, glass10, glass11, (char **)0}; - -int num_default_bubbles = 11; - -#endif /* NO_DEFAULT_BUBBLE */ diff --git a/hacks/decayscreen.c b/hacks/decayscreen.c deleted file mode 100644 index ce18a7ee..00000000 --- a/hacks/decayscreen.c +++ /dev/null @@ -1,146 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1993, 1994 - * Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* decayscreen - * - * Based on slidescreen program from the xscreensaver application and the - * decay program for Sun framebuffers. This is the comment from the decay.c - * file: - - * decay.c - * find the screen bitmap for the console and make it "decay" by - * randomly shifting random rectangles by one pixelwidth at a time. - * - * by David Wald, 1988 - * rewritten by Natuerlich! - * based on a similar "utility" on the Apollo ring at Yale. - - * X version by - * - * Vivek Khera - * 5-AUG-1993 - */ - -#include "screenhack.h" - -static int sizex, sizey; -static int delay; -static GC gc; - -static void -init_decay (dpy, window) - Display *dpy; - Window window; -{ - XGCValues gcv; - XWindowAttributes xgwa; - int root_p; - Pixmap pixmap; - - delay = get_integer_resource ("delay", "Integer"); - root_p = get_boolean_resource ("root", "Boolean"); - - if (delay < 0) delay = 0; - - gcv.function = GXcopy; - gcv.subwindow_mode = IncludeInferiors; - gc = XCreateGC (dpy, window, GCForeground |GCFunction | GCSubwindowMode, - &gcv); - - XGetWindowAttributes (dpy, window, &xgwa); - sizex = xgwa.width; - sizey = xgwa.height; - - copy_default_colormap_contents (dpy, xgwa.colormap, xgwa.visual); - pixmap = grab_screen_image (dpy, window, root_p); -} - - -/* - * perform one iteration of decay - */ -static void -decay1 (dpy, window) - Display *dpy; - Window window; -{ - int left, top, width, height; - -#define nrnd(x) (random() % (x)) - - switch (random() % 8) { - case 0: /* move a block left */ - case 1: - left = nrnd(sizex - 1) + 1; - top = nrnd(sizey); - width = nrnd(sizex - left); - height = nrnd(sizey - top); - XCopyArea (dpy, window, window, gc, left, top, width, height, - left - 1, top); - break; - case 2: /* move a block right */ - case 3: - left = nrnd(sizex - 1); - top = nrnd(sizey); - width = nrnd(sizex - 1 - left); - height = nrnd(sizey - top); - XCopyArea (dpy, window, window, gc, left, top, width, height, - left + 1, top); - break; - case 4: /* move a block up */ - left = nrnd(sizex); - top = nrnd(sizey - 1) + 1; - width = nrnd(sizex - left); - height = nrnd(sizey - top); - XCopyArea (dpy, window, window, gc, left, top, width, height, - left, top - 1); - break; - default: /* move block down (biased to this) */ - left = nrnd(sizex); - top = nrnd(sizey - 1); - width = nrnd(sizex - left); - height = nrnd(sizey - 1 - top); - XCopyArea (dpy, window, window, gc, left, top, width, height, - left, top + 1); - break; - } - XSync (dpy, True); -#undef nrnd -} - - -char *progclass = "DecayScreen"; - -char *defaults [] = { - "DecayScreen.mappedWhenManaged:false", - "DecayScreen.dontClearWindow: true", - "*delay: 10", - 0 -}; - -XrmOptionDescRec options [] = { - { "-delay", ".delay", XrmoptionSepArg, 0 }, -}; - -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - init_decay (dpy, window); - while (1) { - decay1 (dpy, window); - if (delay) usleep (delay); - } -} diff --git a/hacks/default.xbm b/hacks/default.xbm deleted file mode 100644 index dcd2ff50..00000000 --- a/hacks/default.xbm +++ /dev/null @@ -1,1686 +0,0 @@ -#define logo_width 464 -#define logo_height 435 -static unsigned char logo_bits[] = { -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x60, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x60,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xf0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xf0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xf0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf8,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xf8,0x01,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xf8,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc,0x01, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xfc,0x01,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xfc,0x03,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xfc,0x07,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xfe,0x07,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xfe,0x07,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xfe,0x07,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff, -0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xff,0x0f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x80,0xff,0x0f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x80,0xff,0x1f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x80,0xff,0x3f,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x80,0xff,0x3f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x80,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, -0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0x7f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0x7f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xe0,0xff,0x7f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xe0,0xff,0xff,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf0,0xff,0xff,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xf0,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xf0,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff, -0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff,0x03, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0x03,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xfc,0xff,0xff,0x03,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xfc,0xff,0xff,0x07,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xfc,0xff,0xff,0x07,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xfe,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe, -0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0xff, -0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xff,0xff,0xff,0x0f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0x1f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x80,0xff,0xff,0xff,0x1f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x80,0xff,0xff,0xff,0x1f,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x80,0xff,0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, -0xff,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff, -0xff,0x7f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0xff,0x7f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0xff,0x7f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0xff,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xe0,0xff,0xff,0xff,0xff,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xf0,0xff,0xff,0xff,0xff,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xf0,0xff,0xff,0xff,0xff,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff, -0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0xff,0xff, -0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff,0xff,0xff,0x03, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xf8,0xff,0xff,0xff,0xff,0x03,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xf8,0xff,0xff,0xff,0xff,0x03,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xf8,0xff,0xff,0xff,0xff,0x07,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xfc,0xff,0xdf,0xff,0xff,0x07,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe, -0xff,0xdf,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0x8f, -0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0x0f,0xff,0xff, -0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xfe,0xff,0x0f,0xff,0xff,0x0f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xff,0xff,0x07,0xff,0xff,0x1f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xff,0xff,0x07,0xff,0xff,0x1f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x80,0xff,0xff,0x07,0xfe,0xff,0x1f,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, -0xff,0xff,0x03,0xfc,0xff,0x3f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff, -0x03,0xfc,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0x03,0xfc, -0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0x01,0xf8,0xff,0x7f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xe0,0xff,0xff,0x01,0xf8,0xff,0x7f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xe0,0xff,0xff,0,0xf0,0x03,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xe0,0xff,0xff,0,0xf0,0x03,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xe0,0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff, -0x01,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xf0,0x07,0,0, -0x80,0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff, -0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff,0xff,0xff, -0x03,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xc0,0xff,0xff,0xff,0x03,0,0,0xe0,0xff,0x7f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xfc,0xff,0xff,0,0,0,0,0,0xe0,0xff,0x07,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff, -0x7f,0xfe,0,0,0,0,0,0,0xfc,0x7f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0x01,0xfe, -0x01,0,0,0,0,0,0xc0,0xff,0x03,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xfe,0xff,0x01,0xfe,0x01,0, -0,0,0,0,0xc0,0xff,0x03,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xf0,0xff,0x07,0,0xce,0x07,0,0,0, -0,0,0,0xfe,0x1f,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xfe,0x7f,0,0,0x87,0x1f,0,0,0,0,0, -0,0xc0,0xff,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xe0,0xff,0x07,0,0x80,0x03,0x3e,0,0,0,0,0,0,0, -0xfe,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc, -0x3f,0,0,0x80,0x03,0xf8,0,0,0,0,0,0,0,0xe0,0x3f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xfc,0x3f,0, -0,0x80,0x03,0xf8,0,0,0,0,0,0,0,0xe0,0x3f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x80,0xff,0x07,0,0,0xc0, -0x01,0xe0,0x01,0,0,0,0,0,0,0,0xff,0x01,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xf0,0xff,0x7f,0,0,0xc0,0xfb,0xff, -0x0f,0,0,0,0,0,0,0,0xf0,0x0f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xfe,0xff,0xff,0x07,0,0xc0,0xff,0xff,0x3f,0, -0,0,0,0,0,0,0x80,0xff,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x80,0xff,0xc0,0xff,0x7f,0,0xe0,0xff,0xff,0x7f,0,0,0, -0,0,0,0,0,0xfe,0x01,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x80,0xff,0xc0,0xff,0x7f,0,0xe0,0xff,0xff,0x7f,0,0,0,0,0, -0,0,0,0xfe,0x01,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0x1f, -0,0xf8,0xff,0x0f,0xf0,0x0f,0xc0,0xff,0x01,0,0,0,0,0,0, -0,0xf0,0x0f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xe0,0x0f,0,0, -0xff,0x7f,0xf0,0x01,0,0xf8,0x03,0,0,0,0,0,0,0,0xc0, -0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xf0,0x01,0,0,0x80,0xff, -0x7b,0,0,0xe0,0x07,0,0,0,0,0,0,0,0,0xfe,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xf8,0,0,0,0,0xfc,0x3f,0, -0,0x80,0x1f,0,0,0,0,0,0,0,0,0xf0,0x03,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xf8,0,0,0,0,0xfc,0x3f,0,0,0x80, -0x1f,0,0,0,0,0,0,0,0,0xf0,0x03,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x3c,0,0,0,0,0xe0,0x7f,0,0,0,0x7e,0, -0,0,0,0,0,0,0,0xe0,0x0f,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x3e,0,0,0,0,0,0xff,0x03,0,0,0x70,0,0,0, -0,0,0,0,0,0x80,0x3f,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x80,0x0f, -0,0,0,0,0,0xf0,0x1f,0,0,0,0,0,0,0,0, -0,0,0,0,0xfc,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xc0,0x0f,0,0, -0,0,0,0,0xfe,0x01,0,0,0,0,0,0,0,0,0, -0,0,0xf0,0x01,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xc0,0x07,0,0,0,0, -0,0,0xf8,0x07,0,0,0,0,0,0,0,0,0,0,0, -0xe0,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xc0,0x07,0,0,0,0,0,0, -0xf8,0x07,0,0,0,0,0,0,0,0,0,0,0,0xe0,0x07, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xe0,0x03,0,0,0,0,0,0,0xe0,0x3f, -0,0,0,0,0,0,0,0,0,0,0,0x80,0x0f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xf0,0x01,0,0,0,0,0,0,0x80,0xff,0,0, -0,0,0,0,0,0,0,0,0,0,0x3f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xf8,0x01,0,0,0,0,0,0,0,0xfc,0x07,0,0,0, -0,0,0,0,0,0,0,0,0x7c,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xf8, -0,0,0,0xfe,0x03,0,0,0,0xf0,0x0f,0,0,0,0,0, -0,0,0,0,0,0,0xf8,0x01,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xf8,0,0, -0,0xfe,0x03,0,0,0,0xf0,0x0f,0,0,0,0,0,0,0, -0,0,0,0,0xf8,0x01,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xfc,0,0,0xf0,0xff, -0x1f,0,0,0,0x80,0x7f,0,0,0,0,0,0,0,0,0, -0,0,0xf0,0x03,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x3f,0,0,0xfc,0xff,0x7f,0, -0,0,0,0xfe,0x01,0,0,0,0,0,0,0,0,0,0, -0xc0,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x80,0x1f,0,0,0xff,0x47,0x7f,0,0,0, -0,0xf8,0x0f,0,0,0,0,0,0,0,0,0,0,0x80,0x0f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xf0,0x07,0x80,0xff,0xff,0x3f,0x7c,0,0,0,0,0xc0, -0xff,0,0,0,0,0,0,0,0,0,0,0,0x3e,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xf0,0x07,0x80,0xff,0xff,0x3f,0x7c,0,0,0,0,0xc0,0xff,0, -0,0,0,0,0,0,0,0,0,0,0x3e,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc, -0x03,0xc0,0xff,0xfe,0xff,0x7d,0,0,0,0,0x80,0xff,0x01,0,0, -0,0,0,0,0,0,0,0,0x7c,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0,0x40, -0,0,0xfe,0x7f,0,0,0,0,0x80,0xff,0x07,0,0,0,0, -0,0,0,0,0,0,0xf0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xf0,0x3f,0,0,0x80,0x03, -0xf8,0x3f,0,0,0,0,0x80,0xe7,0x1f,0,0,0,0,0,0, -0,0,0,0,0xf0,0x01,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xfe,0x0f,0,0,0xf0,0xff,0xff,0x1f, -0,0,0,0,0x80,0xc7,0x7f,0,0,0,0,0,0,0,0, -0,0,0xe0,0x03,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xfe,0x0f,0,0,0xf0,0xff,0xff,0x1f,0,0, -0,0,0x80,0xc7,0x7f,0,0,0,0,0,0,0,0,0,0, -0xe0,0x03,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xc0,0xff,0x03,0,0,0xf0,0xff,0xff,0x0f,0,0,0,0, -0xc0,0x0f,0xff,0x01,0,0,0,0,0,0,0,0,0,0xc0,0x07, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xf0,0x7f,0,0,0,0xc0,0xff,0xff,0x01,0,0,0,0,0xc0,0x0f, -0xfc,0x07,0,0,0,0,0,0,0,0,0,0x80,0x0f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xff,0x0f, -0,0,0,0,0,0,0,0,0,0,0,0xc0,0x0f,0xf0,0x0f, -0,0,0,0,0,0,0,0,0,0,0x1f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x80,0xff,0x01,0,0, -0,0,0,0,0,0,0,0,0,0xe0,0x1f,0x80,0x3f,0,0, -0,0,0,0,0,0,0,0,0x1c,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xf8,0x0f,0,0,0,0,0, -0,0,0,0,0,0,0,0xf0,0x1c,0,0xfe,0x03,0,0,0, -0,0,0,0,0,0,0x78,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xf8,0x0f,0,0,0,0,0,0,0, -0,0,0,0,0,0xf0,0x1c,0,0xfe,0x03,0,0,0,0,0, -0,0,0,0,0x78,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xfe,0x01,0,0,0,0,0,0,0,0,0, -0,0,0,0x70,0x1c,0,0xf0,0x07,0,0,0,0,0,0,0, -0,0,0xf0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x3f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x70,0x38,0,0xc0,0x1f,0,0,0,0,0,0,0,0,0, -0xe0,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x80, -0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0,0x70, -0x78,0,0,0x7f,0,0,0,0,0,0,0,0,0,0xc0,0x03, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0x03,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x70,0x70,0, -0,0xfc,0,0,0,0,0,0,0,0,0,0xc0,0x07,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xc0,0x03,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x70,0x70,0,0,0xfc, -0,0,0,0,0,0,0,0,0,0xc0,0x07,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xc0,0x01,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x38,0x70,0,0,0xfe,0x03,0xfe, -0x7f,0,0,0,0,0,0,0,0x0f,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xe0,0x01,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x38,0xf0,0,0,0xfe,0x0f,0xff,0xff,0x01, -0,0,0,0,0,0,0x0f,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xe0,0x01,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x18,0xe0,0,0x80,0x9f,0xff,0x3f,0xfe,0x03,0,0, -0,0,0,0,0x0f,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xe0,0x01,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x1c,0xe0,0,0x80,0x0f,0xff,0x07,0xc0,0x0f,0,0,0,0, -0,0,0x1e,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xe0,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1c,0xe0,0,0x80,0x0f,0xff,0x07,0xc0,0x0f,0,0,0,0,0,0, -0x1e,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0xf1, -0x1f,0,0,0,0,0,0,0,0,0,0,0,0,0x0e,0xe0, -0,0xc0,0x07,0xfc,0x01,0,0x1f,0,0,0,0,0,0,0x3e,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xc0,0xe1,0xff,0, -0,0,0,0,0,0,0,0,0,0,0,0x0e,0xe0,0x01,0xe0, -0x03,0x60,0,0,0x38,0,0,0,0,0,0,0x3c,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xc0,0xc3,0xff,0x01,0,0, -0,0,0,0,0,0,0,0,0,0x07,0xc0,0x01,0xf0,0x01,0, -0xe0,0x03,0xf0,0,0,0,0,0,0,0x38,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x80,0x07,0xf0,0x03,0,0,0,0, -0,0,0,0,0,0,0,0x07,0xc0,0x03,0xf8,0,0,0xf8,0x1f, -0xe0,0,0,0,0,0,0,0x38,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x80,0x07,0xf0,0x03,0,0,0,0,0,0, -0,0,0,0,0,0x07,0xc0,0x03,0xf8,0,0,0xf8,0x1f,0xe0,0, -0,0,0,0,0,0x38,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x80,0x0f,0xc0,0x07,0,0,0,0,0,0,0,0, -0,0,0,0x07,0x80,0x03,0x78,0,0,0xf8,0x7f,0xe0,0x01,0,0, -0,0,0,0x78,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x0f,0x80,0x0f,0,0,0,0,0,0,0,0,0,0, -0x80,0x03,0x80,0x03,0x3e,0,0,0x78,0x7e,0xc0,0x03,0,0,0,0, -0,0x78,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1e,0x1c,0x0f,0,0,0,0,0,0,0,0,0,0,0x80,0xf3, -0x9f,0x03,0x1f,0,0,0,0xf0,0x80,0x03,0,0,0,0,0,0x70, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x1e,0xfe, -0x0f,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0x07, -0x0f,0,0,0,0xe0,0,0x07,0,0,0,0,0,0x70,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x1e,0xfe,0x0f,0, -0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0x07,0x0f,0, -0,0,0xe0,0,0x07,0,0,0,0,0,0x70,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x7c,0xfc,0x0f,0,0,0, -0,0,0,0,0,0,0,0xc0,0xff,0xff,0x87,0x07,0,0,0, -0xe0,0,0x07,0,0,0,0,0,0x70,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x7c,0xf8,0x0f,0,0,0,0,0, -0,0,0,0,0,0xc0,0x3f,0xf4,0xc7,0x07,0,0,0,0xe0,0, -0x07,0,0,0,0,0,0x70,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xf0,0x01,0,0,0,0,0,0,0,0, -0,0,0,0xe0,0x03,0x80,0xe7,0x01,0,0,0,0xe0,0,0x07,0, -0,0,0,0,0xe0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xf0,0x03,0,0,0,0,0,0,0,0,0,0, -0,0xe0,0,0,0xff,0x01,0,0,0,0xe0,0x80,0x07,0,0,0, -0,0,0xe0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xe0,0x03,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xff,0,0,0,0,0xf8,0x80,0x03,0,0,0,0,0, -0xe0,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0, -0x03,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xff,0,0,0,0,0xf8,0x80,0x03,0,0,0,0,0,0xe0,0x01, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x80,0x07,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x7e,0, -0,0,0,0x7c,0xc0,0x01,0,0,0,0,0,0xe0,0x01,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x1f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x3e,0,0x80,0x07, -0xe0,0x3f,0xe0,0x01,0,0,0,0,0,0xc0,0x01,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x1f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x1e,0,0xc0,0xff,0xff,0x0f, -0xe0,0,0,0,0,0,0,0xc0,0x01,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x1e,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x1f,0,0xe0,0xff,0xff,0x03,0xe0,0, -0,0,0,0,0,0xc0,0x01,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x1e,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x1f,0,0xe0,0xff,0xff,0x03,0xe0,0,0,0, -0,0,0,0xc0,0x01,0,0,0,0,0,0,0,0,0,0, -0,0,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0x3f,0,0x1e,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x80,0x07,0,0x80,0xff,0x7f,0,0xf8,0x01,0,0,0,0, -0,0xc0,0x01,0,0,0,0,0,0,0,0,0,0,0,0, -0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0x03,0x1e,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xc0,0x07,0,0,0,0,0,0xfc,0x07,0,0,0,0,0,0xc0, -0x01,0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x1e, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0x03, -0,0,0,0,0,0xfe,0x0f,0,0,0,0,0,0xc0,0x01,0, -0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xf0,0x01,0,0, -0,0,0x80,0xcf,0x3f,0,0,0xfe,0x01,0,0xc0,0x01,0,0,0, -0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xf0,0x01,0,0,0,0, -0x80,0xcf,0x3f,0,0,0xfe,0x01,0,0xc0,0x01,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x0f,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xf0,0,0,0,0,0,0xe0,0xe7, -0xff,0,0,0xfe,0x0f,0,0xc0,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0x03,0,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0x03,0x0f,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x7c,0,0,0,0,0xf0,0xff,0xf9,0xff,0x01, -0,0xe0,0x1f,0,0xc0,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0x03,0,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0x03,0x0f,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x7e,0,0,0,0xc0,0xff,0x7f,0xfe,0xe1,0x07,0,0xc0, -0xff,0,0xc0,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0x01,0,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0x03,0x07,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x1e,0,0,0,0xfc,0xff,0x1f,0xff,0x81,0x0f,0,0x80,0xf1,0x03, -0xc0,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0,0, -0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03, -0x07,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1e, -0,0,0,0xfc,0xff,0x1f,0xff,0x81,0x0f,0,0x80,0xf1,0x03,0xc0,0xe1, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0,0,0xc0,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x81,0x0f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1f,0,0, -0,0xff,0x3f,0x80,0xff,0,0x1f,0,0x80,0xc1,0x07,0xc0,0xe1,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0,0,0,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,0xff,0x3f,0,0, -0,0,0,0,0,0,0,0,0,0x80,0x0f,0,0x03,0xc0,0x3f, -0,0xe0,0x7f,0,0x7e,0,0x80,0x01,0x1f,0xe0,0xe1,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0,0,0,0xfc,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xff,0xff,0x03,0,0,0, -0,0,0,0,0,0,0,0x80,0x0f,0x80,0x07,0xf0,0x07,0,0xf0, -0x3f,0,0xf8,0,0x80,0x01,0x3c,0xe0,0xe1,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0x03,0,0,0,0xf8,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xff,0xff,0x7f,0,0,0,0,0, -0,0,0,0,0,0xc0,0x03,0x80,0xff,0xff,0x01,0,0xfc,0x1f,0, -0xf0,0x01,0xc0,0x01,0x38,0xe0,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0,0,0,0,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0x7f,0xf0,0,0xf8,0xff,0x07,0,0,0,0,0,0, -0,0,0,0xe0,0x03,0,0xfe,0x1f,0,0x80,0xbf,0x07,0,0x80,0x07, -0xc0,0x01,0xe0,0xf1,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f, -0,0,0,0,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0x7f,0xf0,0,0xf8,0xff,0x07,0,0,0,0,0,0,0,0, -0,0xe0,0x03,0,0xfe,0x1f,0,0x80,0xbf,0x07,0,0x80,0x07,0xc0,0x01, -0xe0,0xf1,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0,0, -0,0,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, -0xf0,0,0,0xfe,0x7f,0,0,0,0,0,0,0,0,0,0xf0, -0x01,0,0xf8,0x03,0,0xc0,0xcf,0x03,0,0x80,0x1f,0xf0,0x01,0xe0,0x71, -0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0,0,0,0, -0,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf0,0, -0,0xe0,0xff,0x03,0,0,0,0,0,0,0,0,0xf8,0,0, -0,0,0,0xe0,0xe7,0x03,0,0,0x7e,0xff,0,0xc0,0x73,0xf0,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0,0,0,0,0,0xfc, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xf0,0,0,0, -0xfc,0x1f,0,0,0,0,0,0,0,0,0x78,0,0,0,0, -0,0xf8,0xf3,0,0,0,0xfc,0x7f,0,0,0x7f,0xf0,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0,0,0,0,0,0,0xf0,0xff,0xff, -0xff,0x1f,0,0,0,0,0,0,0,0xf0,0,0,0,0xe0,0xff, -0,0,0,0,0,0,0,0,0x3c,0,0,0,0,0,0x7c, -0xf8,0,0,0,0xf8,0xff,0xff,0xff,0x7f,0xf0,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0x7f,0,0,0,0,0,0,0xf0,0xff,0xff,0xff,0x1f, -0,0,0,0,0,0,0,0xf0,0,0,0,0xe0,0xff,0,0, -0,0,0,0,0,0,0x3c,0,0,0,0,0,0x7c,0xf8,0, -0,0,0xf8,0xff,0xff,0xff,0x7f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0x7f,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x3f,0,0, -0,0,0,0,0,0x70,0,0,0,0x80,0xff,0x0f,0,0,0, -0,0,0,0,0x3e,0,0,0,0,0,0x7f,0x7c,0,0,0, -0xe0,0xff,0xff,0xff,0x7f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f, -0,0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0,0,0,0, -0,0,0,0x78,0,0,0,0,0xfe,0x7f,0,0,0,0,0, -0,0,0x1e,0,0,0,0,0xc0,0x1f,0x3e,0,0,0,0xc0,0xff, -0xff,0xff,0x7f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0,0, -0,0,0,0,0,0xff,0xff,0xff,0xff,0x01,0,0,0,0,0, -0,0x7c,0,0,0,0,0xf0,0xff,0x03,0,0,0,0,0,0, -0x0f,0,0,0,0,0xe0,0x07,0x1f,0,0,0,0x80,0x0f,0,0, -0x3c,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0,0,0,0, -0,0,0,0xfc,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0x3c, -0,0,0,0,0,0xfe,0x0f,0,0,0,0,0,0,0x0f,0, -0,0,0,0xfc,0x83,0x0f,0,0,0,0,0x0f,0,0,0x38,0xf0, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0,0,0,0,0,0, -0,0xfc,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0x3c,0,0, -0,0,0,0xfe,0x0f,0,0,0,0,0,0,0x0f,0,0,0, -0,0xfc,0x83,0x0f,0,0,0,0,0x0f,0,0,0x38,0xf0,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0xf0, -0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0x1e,0,0,0,0xf8, -0xff,0xff,0x3f,0,0,0,0,0,0x80,0x07,0,0,0,0,0xff, -0x80,0x07,0,0,0,0,0x3e,0,0,0x38,0,0,0,0,0, -0xff,0xff,0xff,0x7f,0,0,0,0,0,0,0,0,0xc0,0xff,0xff, -0xff,0x7f,0,0,0,0,0,0,0x0f,0,0,0,0xff,0xff,0xff, -0xff,0x03,0,0,0,0,0xe0,0x01,0,0,0,0xe0,0x1f,0xe0,0x03, -0,0,0,0,0x78,0,0,0x1c,0,0,0,0,0xe0,0xff,0xff, -0xff,0x0f,0,0,0,0,0,0,0,0,0,0xff,0xff,0xff,0xff, -0,0,0,0,0,0x80,0x0f,0,0,0,0xff,0x3f,0xe0,0xff,0x0f, -0,0,0,0,0xf0,0x01,0,0,0,0xf8,0x07,0xf0,0x01,0,0, -0,0,0xf0,0x01,0,0x1e,0,0,0,0,0xf0,0xff,0xff,0xff,0x07, -0,0,0,0,0,0,0,0,0,0xfe,0xff,0xff,0xff,0x03,0, -0,0,0,0x80,0x07,0,0,0,0xe0,0xff,0x01,0xfe,0x3f,0,0, -0,0,0xf0,0,0,0,0,0xfe,0x01,0xf8,0,0,0,0,0, -0xc0,0x03,0,0x0e,0,0,0,0,0xfc,0xff,0xff,0xff,0x01,0,0, -0,0,0,0,0,0,0,0xfe,0xff,0xff,0xff,0x03,0,0,0, -0,0x80,0x07,0,0,0,0xe0,0xff,0x01,0xfe,0x3f,0,0,0,0, -0xf0,0,0,0,0,0xfe,0x01,0xf8,0,0,0,0,0,0xc0,0x03, -0,0x0e,0,0,0,0,0xfc,0xff,0xff,0xff,0x01,0,0,0,0, -0,0,0,0,0,0xf8,0xff,0xff,0xff,0x07,0,0,0,0,0x80, -0x07,0,0,0,0,0xf8,0x07,0xc0,0xff,0x01,0,0,0,0xf8,0, -0,0,0x80,0x7f,0,0x78,0,0,0,0,0,0xc0,0x0f,0,0x0e, -0,0,0,0,0xff,0xff,0xff,0xff,0,0,0,0,0,0,0, -0,0,0,0xf0,0xff,0xff,0xff,0x1f,0,0,0,0,0xc0,0xe3,0xff, -0xff,0,0,0xc0,0x1f,0x80,0xff,0x03,0,0,0,0x3c,0,0,0, -0xe0,0x1f,0,0x3e,0,0,0,0,0,0,0x0f,0,0x07,0,0, -0,0x80,0xff,0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0, -0,0xc0,0xff,0xff,0xff,0x7f,0,0,0,0,0xc0,0xfb,0xff,0xff,0x0f, -0,0,0x3e,0x80,0xf3,0x1f,0,0,0,0x3e,0,0,0,0xf8,0x07, -0,0x1e,0,0,0,0,0,0,0x1e,0,0x07,0,0,0,0xe0, -0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0, -0xff,0xff,0xff,0xff,0,0,0,0,0xc0,0xff,0xff,0xff,0xff,0,0, -0x7c,0xc0,0x81,0xff,0,0,0,0x1f,0,0,0,0xff,0x01,0,0x0f, -0,0,0,0,0,0,0x7c,0x80,0x07,0,0,0,0xf0,0xff,0xff, -0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff, -0xff,0xff,0x03,0,0,0,0xc0,0x7f,0,0xe0,0xff,0x3f,0,0xf0,0xc0, -0x01,0xfe,0x03,0,0,0x0f,0,0,0xc0,0x7f,0,0xc0,0x07,0,0, -0,0,0,0,0xf0,0xc0,0x03,0,0,0,0xfc,0xff,0xff,0xff,0, -0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff, -0x03,0,0,0,0xc0,0x7f,0,0xe0,0xff,0x3f,0,0xf0,0xc0,0x01,0xfe, -0x03,0,0,0x0f,0,0,0xc0,0x7f,0,0xc0,0x07,0,0,0,0, -0,0,0xf0,0xc0,0x03,0,0,0,0xfc,0xff,0xff,0xff,0,0,0, -0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff,0xff,0x07,0, -0,0,0xc0,0x0f,0,0,0xfc,0xff,0x03,0xc0,0xe3,0x01,0xf0,0x07,0, -0x80,0x07,0,0,0xf0,0x1f,0,0xc0,0x07,0,0,0,0,0,0, -0xf0,0xc1,0x01,0,0,0,0xff,0xff,0xff,0x7f,0,0,0,0,0, -0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x1f,0,0,0, -0xc0,0x07,0,0,0,0xfc,0xff,0,0xf7,0,0,0x3f,0,0xc0,0x03, -0,0,0xff,0,0,0xe0,0x01,0,0,0,0,0,0,0xc0,0xe3, -0x01,0,0,0xc0,0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0, -0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0,0,0,0xc0,0x01, -0,0,0,0xc0,0xff,0x07,0x7f,0,0,0xfc,0,0xe0,0x03,0,0xe0, -0x3f,0,0,0xf0,0x01,0,0,0,0,0,0,0x80,0xff,0,0, -0,0xf0,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xfe,0xff,0xff,0xff,0,0,0,0xc0,0x01,0,0, -0,0,0xfe,0x7f,0x7f,0,0,0xf8,0x01,0xe0,0x01,0,0xfc,0x07,0, -0,0xf8,0,0,0,0,0,0,0,0,0xff,0,0,0,0xfc, -0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xfe,0xff,0xff,0xff,0,0,0,0xc0,0x01,0,0,0,0, -0xfe,0x7f,0x7f,0,0,0xf8,0x01,0xe0,0x01,0,0xfc,0x07,0,0,0xf8, -0,0,0,0,0,0,0,0,0xff,0,0,0,0xfc,0xff,0xff, -0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xfc,0xff,0xff,0xff,0x03,0,0,0xc0,0x03,0,0,0,0,0xe0,0xff, -0x3f,0,0,0xf0,0x07,0xf0,0,0,0xff,0x03,0,0,0x7c,0,0, -0,0,0,0,0,0,0x7e,0,0,0,0xff,0xff,0xff,0x7f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff, -0xff,0xff,0x0f,0,0,0xc0,0x03,0,0,0,0,0,0xfe,0x3f,0, -0,0xc0,0x3f,0xf8,0,0xf8,0x3f,0,0,0,0x3c,0,0,0,0, -0,0,0,0,0x3c,0,0,0x80,0xff,0xff,0xff,0x3f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0xff, -0x3f,0,0,0xc0,0x03,0,0,0,0,0,0xf0,0xff,0x0f,0,0, -0x7f,0x7c,0,0xfe,0x07,0,0,0,0x1e,0,0,0,0,0,0, -0,0,0x1e,0,0,0xe0,0xff,0xff,0xff,0x0f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0x7f,0, -0,0x80,0x07,0,0,0,0,0,0,0xff,0x7f,0,0,0xfc,0x3e, -0xe0,0x7f,0,0,0,0,0x1f,0,0,0,0,0,0,0,0, -0x1f,0,0,0xf8,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0x7f,0,0,0x80, -0x07,0,0,0,0,0,0,0xff,0x7f,0,0,0xfc,0x3e,0xe0,0x7f, -0,0,0,0,0x1f,0,0,0,0,0,0,0,0,0x1f,0, -0,0xf8,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xfe,0xff,0xff,0xff,0x01,0,0x80,0x0f,0, -0,0,0,0,0,0xf0,0xff,0x1f,0,0xf0,0x1f,0xfe,0x0f,0,0, -0,0x80,0x0f,0,0,0,0,0,0,0,0,0x07,0,0,0xfc, -0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf8,0xff,0xff,0xff,0x03,0,0,0x0f,0,0,0, -0,0,0,0,0xfc,0xff,0x3f,0xc0,0xff,0xff,0,0,0,0,0xc0, -0x07,0,0,0,0,0,0,0,0x80,0x03,0,0,0xff,0xff,0xff, -0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xf0,0xff,0xff,0xff,0x0f,0,0,0x1e,0,0,0,0,0, -0,0,0,0xfe,0xff,0xff,0xff,0x1f,0,0,0,0,0xe0,0x03,0, -0,0,0,0,0,0,0xe0,0x03,0,0xc0,0xff,0xff,0xff,0x1f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x80,0xff,0xff,0xff,0x7f,0,0,0x3c,0,0,0,0,0,0,0, -0,0,0xfc,0xff,0xff,0x03,0,0,0,0,0xf0,0x01,0,0,0, -0,0,0,0,0xf8,0,0,0xf8,0xff,0xff,0xff,0x03,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x80,0xff, -0xff,0xff,0x7f,0,0,0x3c,0,0,0,0,0,0,0,0,0, -0xfc,0xff,0xff,0x03,0,0,0,0,0xf0,0x01,0,0,0,0,0, -0,0,0xf8,0,0,0xf8,0xff,0xff,0xff,0x03,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0xff, -0xff,0,0,0x78,0,0,0,0,0,0,0,0,0,0,0xf8, -0xff,0x1f,0,0,0,0,0xf0,0,0,0,0,0,0,0,0, -0x7c,0,0,0xfc,0xff,0xff,0xff,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff,0x03, -0,0xf0,0,0,0,0,0,0,0,0,0,0,0,0xfe,0x7f, -0,0,0,0,0x7c,0,0,0,0,0,0,0,0,0x3e,0, -0,0xff,0xff,0xff,0x7f,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xf0,0xff,0xff,0xff,0x07,0,0xe0, -0x01,0,0,0,0,0,0,0,0,0,0,0x7c,0xfe,0,0, -0,0,0x3c,0,0,0,0,0,0,0,0x80,0x1f,0,0xc0,0xff, -0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x1f,0,0xc0,0x03,0, -0,0,0,0,0,0,0,0,0,0x78,0xf8,0x03,0,0,0, -0x1e,0,0,0,0,0,0,0,0xc0,0x07,0,0xe0,0xff,0xff,0xff, -0x07,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x80,0xff,0xff,0xff,0x7f,0,0x80,0x07,0,0,0, -0,0,0,0,0,0,0,0x70,0xe0,0x0f,0,0,0,0x0f,0, -0,0,0,0,0,0,0xf0,0x03,0,0xf8,0xff,0xff,0xff,0x03,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x80,0xff,0xff,0xff,0x7f,0,0x80,0x07,0,0,0,0,0, -0,0,0,0,0,0x70,0xe0,0x0f,0,0,0,0x0f,0,0,0, -0,0,0,0,0xf0,0x03,0,0xf8,0xff,0xff,0xff,0x03,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xff,0xff,0xff,0xff,0,0x80,0x0f,0,0,0,0,0,0,0, -0,0,0,0x70,0,0x3f,0,0,0x80,0x0f,0,0,0,0,0, -0,0,0xf8,0x01,0,0xfe,0xff,0xff,0x7f,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc, -0xff,0xff,0xff,0x03,0,0x1f,0,0,0,0,0,0,0,0,0, -0,0x70,0,0xfe,0,0,0xc0,0x03,0,0,0,0,0,0,0, -0x7e,0,0x80,0xff,0xff,0xff,0x3f,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0xff, -0xff,0x0f,0,0x3e,0,0,0,0,0,0,0,0,0,0,0x70, -0,0xf8,0x01,0,0xc0,0x03,0,0,0,0,0,0,0,0x3e,0, -0xc0,0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0xff,0x3f, -0,0xf8,0,0,0,0,0,0,0,0,0,0,0x70,0,0x80, -0x0f,0,0xf0,0x01,0,0,0,0,0,0,0xc0,0x0f,0,0xf8,0xff, -0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0xff,0x3f,0,0xf8, -0,0,0,0,0,0,0,0,0,0,0x70,0,0x80,0x0f,0, -0xf0,0x01,0,0,0,0,0,0,0xc0,0x0f,0,0xf8,0xff,0xff,0xff, -0x01,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xff,0xff,0xff,0xff,0,0xe0,0x01,0, -0,0,0,0,0,0,0,0,0x70,0,0,0x3e,0,0xf0,0, -0,0,0,0,0,0,0xe0,0x07,0,0xfe,0xff,0xff,0xff,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xfc,0xff,0xff,0xff,0x03,0xc0,0x03,0,0,0, -0,0,0,0,0,0,0x70,0,0,0xfc,0,0x78,0,0,0, -0,0,0,0,0xf8,0x01,0x80,0xff,0xff,0xff,0x3f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xf0,0xff,0xff,0xff,0x0f,0xc0,0x07,0,0,0,0,0, -0,0,0,0,0x78,0,0,0xe0,0x03,0x3c,0,0,0,0,0, -0,0,0x7c,0,0xe0,0xff,0xff,0xff,0x0f,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xc0,0xff,0xff,0xff,0x1f,0,0x0f,0,0,0,0,0,0,0, -0,0,0x7c,0,0,0xc0,0x1f,0x1e,0,0,0,0,0,0,0, -0x3e,0,0xf0,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, -0xff,0xff,0xff,0x1f,0,0x0f,0,0,0,0,0,0,0,0,0, -0x7c,0,0,0xc0,0x1f,0x1e,0,0,0,0,0,0,0,0x3e,0, -0xf0,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0xff, -0xff,0x7f,0,0x1e,0,0,0,0,0,0,0,0,0,0x7c,0, -0,0,0x3f,0x0f,0,0,0,0,0,0,0x80,0x0f,0,0xfc,0xff, -0xff,0xff,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0xff,0xff, -0x01,0x7c,0,0,0,0,0,0,0,0,0,0x3c,0,0,0, -0xfc,0x0f,0,0,0,0,0,0,0xe0,0x07,0,0xff,0xff,0xff,0x3f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff,0x03,0x78, -0,0,0,0,0,0,0,0,0,0x3c,0,0,0,0xf8,0x07, -0,0,0,0,0,0,0xf0,0x01,0xc0,0xff,0xff,0xff,0x1f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xf0,0xff,0xff,0xff,0x07,0xf0,0x01,0, -0,0,0,0,0,0,0,0x1c,0,0,0,0xfc,0x03,0,0, -0,0,0,0,0xf8,0,0xf0,0xff,0xff,0xff,0x07,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xf0,0xff,0xff,0xff,0x07,0xf0,0x01,0,0,0, -0,0,0,0,0,0x1c,0,0,0,0xfc,0x03,0,0,0,0, -0,0,0xf8,0,0xf0,0xff,0xff,0xff,0x07,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xe0,0xff,0xff,0xff,0x1f,0xe0,0x03,0,0,0,0,0, -0,0,0,0x1c,0,0,0,0xfc,0x01,0,0,0,0,0,0, -0x7e,0,0xf8,0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xff,0xff,0xff,0xff,0x80,0x0f,0,0,0,0,0,0,0, -0,0x1e,0,0,0,0xff,0,0,0,0,0,0,0x80,0x0f,0, -0xfe,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xfc,0xff,0xff,0xff,0x01,0x1f,0,0,0,0,0,0,0,0,0x0e, -0,0,0x80,0x7f,0,0,0,0,0,0,0xc0,0x07,0x80,0xff,0xff, -0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff, -0xff,0xff,0x07,0x3e,0,0,0,0,0,0,0,0,0x0e,0,0, -0xc0,0x3f,0,0,0,0,0,0,0xf0,0x01,0xe0,0xff,0xff,0xff,0x07, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff, -0x0f,0x7c,0,0,0,0,0,0,0,0,0x0f,0,0,0xe0,0x3f, -0,0,0,0,0,0,0xf8,0x01,0xf8,0xff,0xff,0xff,0x01,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x0f,0x7c, -0,0,0,0,0,0,0,0,0x0f,0,0,0xe0,0x3f,0,0, -0,0,0,0,0xf8,0x01,0xf8,0xff,0xff,0xff,0x01,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xc0,0xff,0xff,0xff,0x3f,0xf0,0,0, -0,0,0,0,0,0,0x0f,0,0,0xf0,0x1f,0,0,0,0, -0,0,0x7e,0,0xfc,0xff,0xff,0xff,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xfe,0xff,0xff,0x7f,0xe0,0x01,0,0,0, -0,0,0,0x80,0x07,0,0,0xfc,0x1f,0,0,0,0,0,0, -0x3e,0,0xff,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xfc,0xff,0xff,0xff,0xe0,0x03,0,0,0,0,0, -0,0x80,0x07,0,0,0xfc,0x0f,0,0,0,0,0,0,0x1f,0xc0, -0xff,0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xf0,0xff,0xff,0xff,0xc1,0x07,0,0,0,0,0,0,0xc0, -0x03,0,0,0xfe,0x07,0,0,0,0,0,0xc0,0x0f,0xf0,0xff,0xff, -0xff,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xf0,0xff,0xff,0xff,0xc1,0x07,0,0,0,0,0,0,0xc0,0x03,0, -0,0xfe,0x07,0,0,0,0,0,0xc0,0x0f,0xf0,0xff,0xff,0xff,0x07, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff, -0xff,0xff,0x83,0x0f,0,0,0,0,0,0,0xc0,0x01,0,0,0xff, -0x07,0,0,0,0,0,0xc0,0x07,0xf8,0xff,0xff,0xff,0x03,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0xff, -0x0f,0x1e,0,0,0,0,0,0,0xe0,0x01,0,0xc0,0xef,0x03,0, -0,0,0,0,0xe0,0x01,0xff,0xff,0xff,0x7f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0xff,0x0f,0x1c, -0,0,0,0,0,0,0xf0,0,0,0xe0,0xf3,0x01,0,0,0, -0,0,0xf0,0x80,0xff,0xff,0xff,0x1f,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0x1f,0x38,0,0, -0,0,0,0,0x70,0,0,0xf0,0xf9,0,0,0,0,0,0, -0x78,0xe0,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xfc,0xff,0xff,0x1f,0x38,0,0,0,0, -0,0,0x70,0,0,0xf0,0xf9,0,0,0,0,0,0,0x78,0xe0, -0xff,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf0,0xff,0xff,0x7f,0xf0,0,0,0,0,0,0, -0x78,0,0,0x78,0x7c,0,0,0,0,0,0,0x3c,0xf0,0xff,0xff, -0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x80,0xff,0xff,0xff,0xe0,0,0,0,0,0,0,0x78,0, -0,0x7e,0x7c,0,0,0,0,0,0,0x3c,0xf8,0xff,0xff,0xff,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xff,0xff,0xff,0xe0,0x01,0,0,0,0,0,0x3c,0,0,0x3e, -0x3e,0,0,0,0,0,0,0x1f,0xfe,0xff,0xff,0x7f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe, -0xff,0xff,0xc1,0x03,0,0,0,0,0,0x3c,0,0,0x0f,0x1e,0, -0,0,0,0,0,0x0f,0xfe,0xff,0xff,0x1f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0xff, -0xc1,0x03,0,0,0,0,0,0x3c,0,0,0x0f,0x1e,0,0,0, -0,0,0,0x0f,0xfe,0xff,0xff,0x1f,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0x83,0x07, -0,0,0,0,0,0x1e,0,0xc0,0x07,0x0f,0,0,0,0,0, -0x80,0x07,0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xf0,0xff,0xff,0x07,0x0f,0,0, -0,0,0,0x0f,0,0xe0,0x83,0x0f,0,0,0,0,0,0x80,0xc7, -0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xc0,0xff,0xff,0x0f,0x0f,0,0,0,0, -0,0x07,0,0xf0,0x81,0x07,0,0,0,0,0,0xc0,0xc3,0xff,0xff, -0xff,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xff,0xff,0x1f,0x1c,0,0,0,0,0x80,0x03, -0,0x7c,0xc0,0x03,0,0,0,0,0,0xe0,0xe1,0xff,0xff,0x7f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xfe,0xff,0x3f,0x3c,0,0,0,0,0xc0,0x03,0,0x3f, -0xe0,0x01,0,0,0,0,0,0xe0,0xe0,0xff,0xff,0x1f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xfe,0xff,0x3f,0x3c,0,0,0,0,0xc0,0x03,0,0x3f,0xe0,0x01, -0,0,0,0,0,0xe0,0xe0,0xff,0xff,0x1f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xf8, -0xff,0x3f,0x3c,0,0,0,0,0xe0,0x01,0x80,0x1f,0xe0,0x01,0,0, -0,0,0,0xf0,0xe0,0xff,0xff,0x07,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff,0x3f, -0x38,0,0,0,0,0xe0,0,0xe0,0x07,0xf0,0,0,0,0,0, -0,0x78,0xf8,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xf8,0xff,0x3f,0x38,0, -0,0,0,0xf0,0,0xf0,0x03,0x70,0,0,0,0,0,0,0x78, -0xf8,0xff,0xff,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xf8,0xff,0x3f,0x38,0,0,0, -0,0x70,0,0xfe,0,0x38,0,0,0,0,0,0,0x3c,0xfc,0xff, -0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xf8,0xff,0x3f,0x38,0,0,0,0,0x70, -0,0xfe,0,0x38,0,0,0,0,0,0,0x3c,0xfc,0xff,0x3f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf8,0xff,0x3f,0x38,0,0,0,0,0x38,0x80,0x3f, -0,0x3c,0,0,0,0,0,0,0x1c,0xfc,0xff,0x3f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xfc,0xff,0x3f,0x38,0,0,0,0,0x1c,0xc0,0x0f,0,0x1c, -0,0,0,0,0,0,0x1e,0xfc,0xff,0x3f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xfc,0xff,0x1f,0x38,0,0,0,0,0x1e,0xf0,0x03,0,0x1e,0,0, -0,0,0,0,0x1e,0xfc,0xff,0x3f,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff, -0x1f,0x38,0,0,0,0,0x0f,0x7f,0,0,0x0f,0,0,0,0, -0,0,0x0f,0xfc,0xff,0x3f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0x1f,0x38, -0,0,0,0,0x0f,0x7f,0,0,0x0f,0,0,0,0,0,0, -0x0f,0xfc,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xfe,0xff,0x1f,0x38,0,0, -0,0,0xe7,0x3f,0,0,0x07,0,0,0,0,0,0,0x0f,0xfc, -0xff,0x7f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xff,0xff,0x0f,0x38,0,0,0,0x80, -0xfb,0x0f,0,0x80,0x03,0,0,0,0,0,0,0x07,0xfc,0xff,0x7f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xff,0xff,0x07,0x38,0,0,0,0xc0,0xff,0x01, -0,0xc0,0x03,0,0,0,0,0,0x80,0x07,0xf8,0xff,0xff,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xff,0xff,0x07,0x38,0,0,0,0xe0,0x3f,0,0,0xc0, -0x01,0,0,0,0,0,0xc0,0x03,0xf8,0xff,0xff,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xff,0xff,0x07,0x38,0,0,0,0xe0,0x3f,0,0,0xc0,0x01,0, -0,0,0,0,0xc0,0x03,0xf8,0xff,0xff,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x80,0xff, -0xff,0x07,0x38,0,0,0,0xe0,0x0f,0,0,0xe0,0,0,0,0, -0,0,0xc0,0x03,0xf8,0xff,0xff,0x01,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0x03, -0x38,0,0,0,0xf0,0x03,0,0,0xf0,0,0,0,0,0,0, -0xe0,0x01,0xf8,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0x03,0x38,0, -0,0,0x70,0,0,0,0x70,0,0,0,0,0,0,0xe0,0x01, -0xf0,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xc0,0xff,0xff,0x01,0x38,0,0,0, -0,0,0,0,0x78,0,0,0,0,0,0,0xe0,0,0xf0,0xff, -0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xe0,0xff,0xff,0,0x38,0,0,0,0,0, -0,0,0x38,0,0,0,0,0,0,0xf0,0,0xf0,0xff,0xff,0x03, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xe0,0xff,0xff,0,0x38,0,0,0,0,0,0,0, -0x38,0,0,0,0,0,0,0xf0,0,0xf0,0xff,0xff,0x03,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xe0,0xff,0xff,0,0x38,0,0,0,0,0,0,0,0x3c,0, -0,0,0,0,0,0xf0,0,0xe0,0xff,0xff,0x07,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0, -0xff,0xff,0,0x38,0,0,0,0,0,0,0,0x1e,0,0,0, -0,0,0,0x78,0,0xe0,0xff,0xff,0x07,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0x7f, -0,0x18,0,0,0,0,0,0,0,0x1e,0,0,0,0,0, -0,0x78,0,0xc0,0xff,0xff,0x0f,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0x7f,0,0x18, -0,0,0,0,0,0,0,0x0f,0,0,0,0,0,0,0x3c, -0,0xc0,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xf0,0xff,0x7f,0,0x18,0,0, -0,0,0,0,0,0x0f,0,0,0,0,0,0,0x3c,0,0xc0, -0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xf8,0xff,0x7f,0,0x1c,0,0,0,0, -0,0,0x80,0x07,0,0,0,0,0,0,0x3c,0,0x80,0xff,0xff, -0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf8,0xff,0x3f,0,0x1c,0,0,0,0,0,0, -0x80,0x07,0,0,0,0,0,0,0x1e,0,0x80,0xff,0xff,0x1f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xfc,0xff,0x1f,0,0x1c,0,0,0,0,0,0,0xc0,0x03, -0,0,0,0,0,0,0x1e,0,0x80,0xff,0xff,0x1f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xfc,0xff,0x1f,0,0x1c,0,0,0,0,0,0,0xc0,0x03,0,0, -0,0,0,0,0x1f,0,0,0xff,0xff,0x1f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff, -0x1f,0,0x1c,0,0,0,0,0,0,0xc0,0x03,0,0,0,0, -0,0,0x1f,0,0,0xff,0xff,0x1f,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0x0f,0, -0x1c,0,0,0,0,0,0,0xe0,0x01,0,0,0,0,0,0, -0x0f,0,0,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xfe,0xff,0x0f,0,0x1c,0, -0,0,0,0,0,0xe0,0,0,0,0,0,0,0,0x0f,0, -0,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xfe,0xff,0x07,0,0x1c,0,0,0, -0,0,0,0xf0,0,0,0,0,0,0,0x80,0x07,0,0,0xfe, -0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xff,0xff,0x07,0,0x1e,0,0,0,0,0, -0,0x70,0,0,0,0,0,0,0x80,0x07,0,0,0xfe,0xff,0x7f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xff,0xff,0x07,0,0x1e,0,0,0,0,0,0,0x70, -0,0,0,0,0,0,0x80,0x07,0,0,0xfe,0xff,0x7f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xff,0xff,0x07,0,0x1e,0,0,0,0,0,0,0x78,0,0, -0,0,0,0,0x80,0x07,0,0,0xfc,0xff,0x7f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x80,0xff, -0xff,0x03,0,0x1e,0,0,0,0,0,0,0x38,0,0,0,0, -0,0,0x80,0x03,0,0,0xfc,0xff,0xff,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0x03, -0,0x1e,0,0,0,0,0,0,0x3c,0,0,0,0,0,0, -0xc0,0x03,0,0,0xfc,0xff,0xff,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0x03,0,0x1e, -0,0,0,0,0,0,0x1e,0,0,0,0,0,0,0xc0,0x03, -0,0,0xf8,0xff,0xff,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xc0,0xff,0xff,0x03,0,0x1e,0,0, -0,0,0,0,0x1e,0,0,0,0,0,0,0xc0,0x03,0,0, -0xf8,0xff,0xff,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xc0,0xff,0xff,0x01,0,0x1e,0,0,0,0, -0,0,0x1e,0,0,0,0,0,0,0xc0,0x03,0,0,0xf8,0xff, -0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xe0,0xff,0xff,0x01,0,0x1c,0,0,0,0,0,0, -0x0f,0,0,0,0,0,0,0xc0,0x01,0,0,0xf0,0xff,0xff,0x01, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xe0,0xff,0xff,0,0,0x1c,0,0,0,0,0,0x80,0x07,0, -0,0,0,0,0,0xc0,0x01,0,0,0xf0,0xff,0xff,0x01,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0, -0xff,0xff,0,0,0x3c,0,0,0,0,0,0x80,0x07,0,0,0, -0,0,0,0xc0,0x01,0,0,0xf0,0xff,0xff,0x03,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0x7f, -0,0,0x3c,0,0,0,0,0,0x80,0x03,0,0,0,0,0, -0,0xc0,0x01,0,0,0xe0,0xff,0xff,0x03,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0x7f,0,0, -0x3c,0,0,0,0,0,0x80,0x03,0,0,0,0,0,0,0xc0, -0x01,0,0,0xe0,0xff,0xff,0x03,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xf0,0xff,0x7f,0,0,0x38,0, -0,0,0,0,0xc0,0x03,0,0,0,0,0,0,0xc0,0x01,0, -0,0xe0,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xf8,0xff,0x3f,0,0,0x38,0,0,0, -0,0,0xc0,0x01,0,0,0,0,0,0,0xc0,0x01,0,0,0xe0, -0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf8,0xff,0x3f,0,0,0x38,0,0,0,0,0, -0xe0,0x01,0,0,0,0,0,0,0xc0,0x01,0,0,0xc0,0xff,0xff, -0x07,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xfc,0xff,0x1f,0,0,0x38,0,0,0,0,0,0xe0,0, -0,0,0,0,0,0,0xc0,0x01,0,0,0xc0,0xff,0xff,0x07,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xfc,0xff,0x1f,0,0,0x38,0,0,0,0,0,0xe0,0,0,0, -0,0,0,0,0xc0,0x01,0,0,0xc0,0xff,0xff,0x07,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff, -0x1f,0,0,0x38,0,0,0,0,0,0xf0,0,0,0,0,0, -0,0,0xc0,0x01,0,0,0x80,0xff,0xff,0x0f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0x1f,0, -0,0x38,0,0,0,0,0,0x78,0,0,0,0,0,0,0, -0xc0,0x03,0,0,0x80,0xff,0xff,0x0f,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xfe,0xff,0x0f,0,0,0x38, -0,0,0,0,0,0x78,0,0,0,0,0,0,0,0xc0,0x03, -0,0,0,0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xfe,0xff,0x0f,0,0,0x3c,0,0, -0,0,0,0x3c,0,0,0,0,0,0,0,0x80,0x07,0,0, -0,0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xfe,0xff,0x0f,0,0,0x3c,0,0,0,0, -0,0x3c,0,0,0,0,0,0,0,0x80,0x07,0,0,0,0xff, -0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xff,0x07,0,0,0xfc,0x3f,0,0,0,0,0,0x3e, -0,0,0,0,0,0,0,0x80,0x07,0,0,0,0xfe,0xff,0x1f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x0f,0,0xe0,0xff,0xff,0x3f,0,0,0,0,0,0x1e,0,0, -0,0,0,0,0,0,0x0f,0,0,0,0xfe,0xff,0x3f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xfc,0xff,0xff,0xff,0x3f,0,0,0,0,0,0x0f,0,0,0,0, -0,0,0,0,0x0f,0,0,0,0xfe,0xff,0x3f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff, -0xff,0x0f,0x3c,0,0,0,0,0,0x0f,0,0,0,0,0,0, -0,0,0x0e,0,0,0,0xfc,0xff,0x3f,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x0f, -0x3c,0,0,0,0,0,0x0f,0,0,0,0,0,0,0,0, -0x0e,0,0,0,0xfc,0xff,0x3f,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0x01,0,0x38,0, -0,0,0,0x80,0x07,0,0,0,0,0,0,0,0,0x1e,0, -0,0,0xfc,0xff,0x7f,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xf0,0xff,0xff,0,0,0,0x38,0,0,0, -0,0x80,0x07,0,0,0,0,0,0,0,0,0x3c,0,0,0, -0xfc,0xff,0x7f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xff,0xff,0x03,0,0,0,0x38,0,0,0,0,0xc0, -0x03,0,0,0,0,0,0,0,0,0x78,0,0,0,0xf8,0xff, -0x7f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xfc,0xff,0x1f,0,0,0,0,0x78,0,0,0,0,0xc0,0x01,0, -0,0,0,0,0,0,0,0x70,0,0,0,0xf8,0xff,0xff,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff, -0x01,0,0,0,0,0x70,0,0,0,0,0xe0,0x01,0,0,0, -0,0,0,0,0,0xf0,0x01,0,0,0xf0,0xff,0xff,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0x01,0, -0,0,0,0x70,0,0,0,0,0xe0,0x01,0,0,0,0,0, -0,0,0,0xf0,0x01,0,0,0xf0,0xff,0xff,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xff,0xff,0x07,0,0xfe,0,0, -0,0x70,0,0,0,0,0xe0,0,0,0,0,0,0,0,0, -0,0xe0,0x03,0,0,0xf0,0xff,0xff,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xf0,0xff,0x1f,0,0xf8,0xff,0,0,0,0x70, -0,0,0,0,0xf0,0,0,0,0,0,0,0,0,0,0xc0, -0x03,0,0,0xf0,0xff,0xff,0x01,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xfe,0x7f,0,0xe0,0xff,0x7f,0,0,0,0x70,0,0, -0,0,0xf8,0,0,0,0,0,0,0,0,0,0x80,0x0f,0, -0,0xf0,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xe0,0xff,0x03,0,0xf0,0xff,0x3f,0,0,0,0x70,0,0,0,0, -0x78,0,0,0,0,0,0,0,0,0,0,0x1f,0,0,0xe0, -0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff, -0x03,0,0xf0,0xff,0x3f,0,0,0,0x70,0,0,0,0,0x78,0, -0,0,0,0,0,0,0,0,0,0x1f,0,0,0xe0,0xff,0xff, -0x03,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xfc,0x7f,0,0, -0xf8,0xff,0x3f,0,0,0,0x70,0,0,0,0,0x78,0,0,0, -0,0,0,0,0,0,0,0x7c,0,0,0xe0,0xff,0xff,0x03,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x80,0xff,0x07,0,0,0xf8,0xff, -0x1f,0,0,0,0xe0,0,0,0,0,0x3c,0,0,0,0,0, -0,0,0,0,0,0xf8,0x01,0,0xe0,0xff,0xff,0x03,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xc0,0xff,0,0,0,0xfc,0xff,0x1f,0, -0,0,0xe0,0,0,0,0,0x3c,0,0,0,0,0,0,0, -0,0,0,0xe0,0x07,0,0xc0,0xff,0xff,0x03,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xc0,0x1f,0,0,0,0xfe,0xff,0x1f,0,0,0, -0xe0,0,0,0,0,0x3c,0,0,0x60,0,0,0,0,0,0, -0,0xc0,0x3f,0,0xc0,0xff,0xff,0x07,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xc0,0x1f,0,0,0,0xfe,0xff,0x1f,0,0,0,0xe0,0, -0,0,0,0x3c,0,0,0x60,0,0,0,0,0,0,0,0xc0, -0x3f,0,0xc0,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x80,0x03,0,0,0,0xfe,0xff,0x0f,0,0,0,0xe0,0,0,0, -0,0x3e,0,0,0x70,0,0,0,0,0,0,0,0,0xff,0x01, -0x80,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xfe,0xff,0x0f,0,0,0,0xe0,0,0,0,0,0x3f, -0,0,0x38,0,0,0,0,0,0,0,0,0xf8,0x3f,0x80,0xff, -0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xff,0xff,0x07,0,0,0,0xc0,0x01,0,0,0,0xff,0,0, -0x38,0,0,0,0,0,0,0,0,0xc0,0xff,0,0xfc,0xff,0x0f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff, -0xff,0x07,0,0,0,0xc0,0x01,0,0,0,0xf7,0x03,0,0x3c,0, -0,0,0,0,0,0,0,0,0xff,0x0f,0xc0,0xff,0x0f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xff,0x07, -0,0,0,0xc0,0x01,0,0,0,0xf7,0x03,0,0x3c,0,0,0, -0,0,0,0,0,0,0xff,0x0f,0xc0,0xff,0x0f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0x03,0,0, -0,0xc0,0x01,0,0,0x80,0xe3,0x0f,0,0x3f,0,0,0,0,0, -0,0,0,0,0xf0,0x7f,0,0xf8,0x1f,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x80,0xff,0xff,0x03,0,0,0,0xc0, -0x01,0,0,0x80,0xe3,0xff,0xff,0x3f,0,0,0,0,0,0,0, -0,0,0x80,0xff,0x03,0x80,0x0f,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x80,0xff,0xff,0x03,0,0,0,0xc0,0x01,0, -0,0x80,0xc3,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0, -0,0xfe,0x1f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xc0,0xff,0xff,0x01,0,0,0,0xc0,0x01,0,0,0xc0, -0x01,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0xe0, -0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xc0,0xff,0xff,0,0,0,0,0xc0,0x01,0,0,0xc0,0x01,0xfe, -0x7f,0x38,0,0,0,0,0,0,0,0,0,0,0,0xfe,0x1f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, -0xff,0xff,0,0,0,0,0xc0,0x01,0,0,0xc0,0x01,0xfe,0x7f,0x38, -0,0,0,0,0,0,0,0,0,0,0,0xfe,0x1f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff, -0,0,0,0,0xc1,0x01,0,0,0xe0,0,0x3e,0,0x38,0,0, -0,0,0,0,0,0,0,0,0,0xf0,0xff,0x01,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0,0, -0,0x80,0xc3,0x01,0,0,0xe0,0,0x7c,0,0x3c,0,0,0,0, -0,0,0,0,0,0,0,0,0xff,0x7f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xf0,0xff,0x7f,0,0,0,0xf0, -0xc3,0x01,0,0,0xf0,0,0xf0,0,0x3c,0,0,0,0,0,0, -0,0,0,0,0,0,0x80,0xff,0xff,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xf8,0xff,0x7f,0,0,0,0xf8,0xc3,0x01, -0,0,0xf0,0,0xe0,0x01,0x3c,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xe0,0xff,0xff,0x03,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf8,0xff,0x7f,0,0,0,0xf8,0xc3,0x01,0,0, -0xf0,0,0xe0,0x01,0x3c,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xe0,0xff,0xff,0x03,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xf8,0xff,0x7f,0,0,0,0xff,0xc3,0x03,0,0,0x70,0, -0xc0,0x03,0x3c,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x80,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xf8,0xff,0x3f,0,0,0x80,0xff,0xc3,0x03,0,0,0x70,0,0xc0,0x03, -0x3c,0,0,0,0,0,0,0,0,0,0,0,0xf0,0x01,0, -0xf0,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff, -0x1f,0,0,0xe0,0xff,0xc3,0x03,0,0,0x78,0,0x80,0x07,0x3c,0, -0,0,0,0,0,0,0,0,0,0,0xf0,0x7f,0,0,0, -0xfc,0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0x1f,0, -0,0xf8,0xff,0xc3,0x03,0,0,0x78,0,0,0x0f,0x3c,0,0,0, -0,0,0,0,0,0,0,0,0xe0,0xff,0x0f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xfc,0xff,0x1f,0,0,0xf8, -0xff,0xc3,0x03,0,0,0x78,0,0,0x0f,0x3c,0,0,0,0,0, -0,0,0,0,0,0,0xe0,0xff,0x0f,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xfc,0xff,0x0f,0,0,0xfe,0xff,0x83, -0x03,0,0,0x3c,0,0,0x1e,0x1c,0,0,0,0,0,0,0, -0,0xfc,0xff,0x01,0xe0,0xff,0xff,0x01,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xfe,0xff,0x0f,0,0x80,0xff,0xff,0x87,0x03,0, -0,0x3c,0,0,0x3c,0x1c,0,0,0,0,0,0,0xf8,0xff,0xff, -0xff,0xff,0xe1,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xfe,0xff,0x0f,0,0xc0,0xff,0xff,0x87,0x03,0,0,0x3c, -0,0,0x78,0x1c,0,0,0,0,0,0xfe,0xff,0xff,0xff,0xff,0xff, -0xe1,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xff,0xff,0x07,0,0xf8,0xff,0xff,0xc7,0x03,0,0,0x1c,0,0, -0xe0,0x1c,0,0,0,0x80,0xff,0xff,0xff,0x01,0,0,0,0xc0,0xff, -0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff, -0xff,0x07,0,0xf8,0xff,0xff,0xc7,0x03,0,0,0x1c,0,0,0xe0,0x1c, -0,0,0,0x80,0xff,0xff,0xff,0x01,0,0,0,0xc0,0xff,0xff,0x03, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xff,0x03, -0,0xfe,0xff,0xff,0xc7,0x03,0,0,0x1c,0,0,0xe0,0x1f,0,0, -0,0xf0,0xff,0xff,0,0,0,0,0,0x80,0xff,0xff,0x07,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0x03,0,0xff, -0xff,0xff,0xc7,0x03,0,0,0x1c,0,0,0x80,0x1f,0,0,0,0xff, -0xff,0x03,0,0,0,0xfc,0x03,0x80,0xff,0xff,0x07,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x80,0xff,0xff,0x03,0xc0,0xff,0xff,0xff, -0xc7,0x03,0,0,0x1e,0,0,0,0x1f,0,0,0xf8,0xff,0x0f,0, -0x80,0xff,0xff,0xff,0x1f,0,0xff,0xff,0x07,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x80,0xff,0xff,0x01,0xf0,0xff,0xff,0xff,0xc3,0x03, -0,0,0xfe,0xff,0,0,0x1f,0,0xe0,0xff,0x3f,0,0,0x80,0xff, -0xff,0xff,0x3f,0,0xff,0xff,0x07,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xc0,0xff,0xff,0x01,0xfc,0xff,0xff,0xff,0xc1,0x03,0,0, -0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0,0,0x80,0xff,0xff,0xff, -0x7f,0,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xc0,0xff,0xff,0x01,0xfc,0xff,0xff,0xff,0xc1,0x03,0,0,0xfe,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0x01,0,0,0x80,0xff,0xff,0xff,0x7f,0, -0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0, -0xff,0xff,0x01,0xff,0xff,0xff,0xff,0x80,0x03,0,0,0xfe,0xff,0xff,0xff, -0xff,0xff,0xff,0x07,0,0,0,0,0xfe,0xff,0xff,0xff,0x01,0xfe,0xff, -0x1f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff, -0x80,0xff,0xff,0xff,0x3f,0,0,0,0,0x7c,0,0,0xf5,0xff,0xff, -0x3f,0,0,0,0,0,0xfc,0xff,0xff,0xff,0x07,0xfe,0xff,0x1f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0x7f,0xf0,0xff, -0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf0,0xff,0xff,0xff,0x1f,0xfe,0xff,0x1f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xf0,0xff,0x7f,0xf8,0xff,0xff,0xff, -0x03,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xc0,0xff,0xff,0xff,0x3f,0xfe,0xff,0x3f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xf0,0xff,0x7f,0xf8,0xff,0xff,0xff,0x03,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xc0,0xff,0xff,0xff,0x3f,0xfe,0xff,0x3f,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf0,0xff,0xff,0xff,0xff,0xff,0x7f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff, -0xff,0xff,0xff,0xfc,0xff,0x3f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xf8,0xff,0xff,0xff,0xff,0xff,0x3f,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff, -0xff,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xf8,0xff,0xff,0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0xff,0xff,0xff, -0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff, -0xff,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0xff,0xff,0x7f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff, -0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0xff,0xff,0x7f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff,0xff,0xff, -0x01,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x80,0xff,0xff,0xff,0xff,0xff,0x7f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff,0xff,0x7f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xfe,0xff,0xff,0xff,0xff,0xff,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xfe,0xff,0xff,0xff,0xff,0x3f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xfc,0xff,0xff,0xff,0xff,0xff,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xfe,0xff,0xff,0xff,0xff,0x07,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0, -0xff,0xff,0xff,0xff,0xff,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xfe,0xff,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0xff, -0xff,0xff,0xff,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe, -0xff,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0xff, -0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xff,0xff, -0xff,0xff,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0xff,0x01, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0x3f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xfe,0xff,0xff,0xff,0xff,0x01,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0x1f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xf8,0xff,0xff,0xff,0xff,0x03,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xc0,0xff,0xff,0xff,0xff,0x07,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xf0,0xff,0xff,0xff,0xff,0x03,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xc0,0xff,0xff,0xff,0xff,0x07,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xf0,0xff,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xc0,0xff,0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, -0xff,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, -0xff,0xff,0xff,0xff,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0xff, -0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff, -0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xff,0xff,0xff,0xff, -0x07,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x0f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff,0x0f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x0f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff,0x0f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xf0,0xff,0xff,0xff,0x03,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xf8,0xff,0xff,0xff,0x0f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf0,0xff,0xff,0xff,0x01,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xe0,0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xf8,0xff,0xff,0x7f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xc0,0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xf8,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xff,0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff, -0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xff, -0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff,0x07, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0x3f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0x03,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff,0x3f,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xfe,0xff,0xff,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xe0,0xff,0xff,0x3f,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xfe,0xff,0x3f,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x80,0xff,0xff,0x3f,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xfe,0xff,0x3f,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x80,0xff,0xff,0x3f,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xfe,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xfe,0xff,0x7f,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff, -0xff,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xfc,0xff,0x7f,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xff,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff, -0x7f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x80,0xff,0x3f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0x7f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x80,0xff,0x1f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x80,0xff,0x1f,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x80,0xff,0xff,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xc0,0xff,0x03,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xfe,0xff,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xc0,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xfc,0xff,0x01,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, -0x7f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xf0,0xff,0x01,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0x1f,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xc0,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xe0,0x1f,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff, -0x01,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xe0,0x0f,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0x01,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xf0,0x03,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xfe,0x03,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x78,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xf8,0x03,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x18,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xf0,0x03,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x18,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf0,0x03,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xc0,0x07,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -}; diff --git a/hacks/flame.c b/hacks/flame.c deleted file mode 100644 index 3f98e3e3..00000000 --- a/hacks/flame.c +++ /dev/null @@ -1,297 +0,0 @@ -/* xscreensaver, Copyright (c) 1993, 1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* This file was ported from xlock for use in xscreensaver (and standalone) - * by jwz on 18-Oct-93. Original copyright reads: - * - * static char sccsid[] = "@(#)flame.c 1.4 91/09/27 XLOCK"; - * - * flame.c - recursive fractal cosmic flames. - * - * Copyright (c) 1991 by Patrick J. Naughton. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, - * provided that the above copyright notice appear in all copies and that - * both that copyright notice and this permission notice appear in - * supporting documentation. - * - * This file is provided AS IS with no warranties of any kind. The author - * shall have no liability with respect to the infringement of copyrights, - * trade secrets or any patents by this file or any part thereof. In no - * event will the author be liable for any lost revenue or profits or - * other special, indirect and consequential damages. - * - * Comments and additions should be sent to the author: - * - * naughton@eng.sun.com - * - * Patrick J. Naughton - * MS 21-14 - * Sun Laboritories, Inc. - * 2550 Garcia Ave - * Mountain View, CA 94043 - * - * Revision History: - * 27-Jun-91: vary number of functions used. - * 24-Jun-91: fixed portability problem with integer mod (%). - * 06-Jun-91: Written. (received from Scott Graves, spot@cs.cmu.edu). - */ - -#include "screenhack.h" - -#define POINT_BUFFER_SIZE 10 -#define MAXLEV 4 - -static double f[2][3][MAXLEV]; /* three non-homogeneous transforms */ -static int max_total; -static int max_levels; -static int max_points; -static int cur_level; -static int snum; -static int anum; -static int num_points; -static int total_points; -static int pixcol; -static int npixels; -static unsigned long *pixels; -static XPoint points [POINT_BUFFER_SIZE]; -static GC gc; - -static int delay, delay2; -static int width, height; - -static short -halfrandom (mv) - int mv; -{ - static short lasthalf = 0; - unsigned long r; - - if (lasthalf) - { - r = lasthalf; - lasthalf = 0; - } - else - { - r = random (); - lasthalf = r >> 16; - } - return (r % mv); -} - - -static void -init_flame (dpy, window) - Display *dpy; - Window window; -{ - XGCValues gcv; - XWindowAttributes xgwa; - Colormap cmap; - XGetWindowAttributes (dpy, window, &xgwa); - width = xgwa.width; - height = xgwa.height; - cmap = xgwa.colormap; - - max_points = get_integer_resource ("iterations", "Integer"); - if (max_points <= 0) max_points = 100; - - max_levels = max_points; - - max_total = get_integer_resource ("points", "Integer"); - if (max_total <= 0) max_total = 10000; - - delay = get_integer_resource ("delay", "Integer"); - if (delay < 0) delay = 0; - delay2 = get_integer_resource ("delay2", "Integer"); - if (delay2 < 0) delay2 = 0; - - if (mono_p) - npixels = 0; - else - { - int i = get_integer_resource ("ncolors", "Integer"); - double saturation = 1.0; - double value = 1.0; - XColor color; - if (i <= 0) i = 128; - - pixels = (unsigned long *) malloc ((i+1) * sizeof (*pixels)); - for (npixels = 0; npixels < i; npixels++) - { - hsv_to_rgb ((360*npixels)/i, saturation, value, - &color.red, &color.green, &color.blue); - if (! XAllocColor (dpy, cmap, &color)) - break; - pixels [npixels] = color.pixel; - } - } - - gcv.foreground = get_pixel_resource ("foreground", "Foreground", dpy, cmap); - gcv.background = get_pixel_resource ("background", "Background", dpy, cmap); - - if (! mono_p) - { - pixcol = halfrandom (npixels); - gcv.foreground = (pixels [pixcol]); - } - - gc = XCreateGC (dpy, window, GCForeground | GCBackground, &gcv); -} - -static int -recurse (x, y, l, dpy, win) - register double x, y; - register int l; - Display *dpy; - Window win; -{ - int xp, yp, i; - double nx, ny; - - if (l == max_levels) - { - total_points++; - if (total_points > max_total) /* how long each fractal runs */ - return 0; - - if (x > -1.0 && x < 1.0 && y > -1.0 && y < 1.0) - { - xp = points[num_points].x = (int) ((width / 2) * (x + 1.0)); - yp = points[num_points].y = (int) ((height / 2) * (y + 1.0)); - num_points++; - if (num_points >= POINT_BUFFER_SIZE) - { - XDrawPoints (dpy, win, gc, points, num_points, CoordModeOrigin); - num_points = 0; - /* if (delay) usleep (delay); */ - /* XSync (dpy, True); */ - } - } - } - else - { - for (i = 0; i < snum; i++) - { - nx = f[0][0][i] * x + f[0][1][i] * y + f[0][2][i]; - ny = f[1][0][i] * x + f[1][1][i] * y + f[1][2][i]; - if (i < anum) - { - nx = sin(nx); - ny = sin(ny); - } - if (!recurse (nx, ny, l + 1, dpy, win)) - return 0; - } - } - return 1; -} - - -static void -flame (dpy, window) - Display *dpy; - Window window; -{ - int i, j, k; - static int alt = 0; - - if (!(cur_level++ % max_levels)) - { - if (delay2) usleep (delay2); - XClearWindow (dpy, window); - alt = !alt; - } - else - { - if (npixels > 2) - { - XSetForeground (dpy, gc, pixels [pixcol]); - if (--pixcol < 0) - pixcol = npixels - 1; - } - } - - /* number of functions */ - snum = 2 + (cur_level % (MAXLEV - 1)); - - /* how many of them are of alternate form */ - if (alt) - anum = 0; - else - anum = halfrandom (snum) + 2; - - /* 6 coefs per function */ - for (k = 0; k < snum; k++) - { - for (i = 0; i < 2; i++) - for (j = 0; j < 3; j++) - f[i][j][k] = ((double) (random() & 1023) / 512.0 - 1.0); - } - num_points = 0; - total_points = 0; - (void) recurse (0.0, 0.0, 0, dpy, window); - XDrawPoints (dpy, window, gc, points, num_points, CoordModeOrigin); - XSync (dpy, True); - if (delay) usleep (delay); -} - - -#ifdef __hpux -/* I don't understand why this is necessary, but I'm told that this program - does nothing at all on HP-sUX without it. - */ -#undef random -#undef srandom -#include -int matherr(x) - register struct exception *x; -{ - if (x->type == PLOSS) return 1; - else return 0; -} -#endif /* __hpux */ - - - -char *progclass = "Flame"; - -char *defaults [] = { - "Flame.background: black", /* to placate SGI */ - "Flame.foreground: white", - "*colors: 128", - "*iterations: 25", - "*delay: 50000", - "*delay2: 2000000", - "*points: 10000", - 0 -}; - -XrmOptionDescRec options [] = { - { "-ncolors", ".colors", XrmoptionSepArg, 0 }, - { "-iterations", ".iterations", XrmoptionSepArg, 0 }, - { "-delay", ".delay", XrmoptionSepArg, 0 }, - { "-delay2", ".delay2", XrmoptionSepArg, 0 }, - { "-points", ".points", XrmoptionSepArg, 0 } -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - init_flame (dpy, window); - while (1) - flame (dpy, window); -} diff --git a/hacks/greynetic.c b/hacks/greynetic.c deleted file mode 100644 index 4dd3f172..00000000 --- a/hacks/greynetic.c +++ /dev/null @@ -1,166 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include "screenhack.h" - -#define NBITS 12 - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static Pixmap pixmaps [NBITS]; -static GC gc; -static int delay; -static unsigned long fg, bg, pixels [512]; -static int npixels; - -static void -init_greynetic (dpy, window) - Display *dpy; - Window window; -{ - int i; - XGCValues gcv; - XWindowAttributes xgwa; - Colormap cmap; - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - npixels = 0; - gcv.foreground= fg= get_pixel_resource("foreground","Foreground", dpy, cmap); - gcv.background= bg= get_pixel_resource("background","Background", dpy, cmap); - gcv.fill_style= FillOpaqueStippled; - gc = XCreateGC (dpy, window, GCForeground|GCBackground|GCFillStyle, &gcv); - - delay = get_integer_resource ("delay", "Integer"); - if (delay < 0) delay = 0; - - i = 0; -#define BITS(n,w,h) \ - pixmaps [i++] = XCreatePixmapFromBitmapData (dpy, window, n, w, h, 1, 0, 1) - - BITS (stipple_bits, stipple_width, stipple_height); - BITS (cross_weave_bits, cross_weave_width, cross_weave_height); - BITS (dimple1_bits, dimple1_width, dimple1_height); - BITS (dimple3_bits, dimple3_width, dimple3_height); - BITS (flipped_gray_bits, flipped_gray_width, flipped_gray_height); - BITS (gray1_bits, gray1_width, gray1_height); - BITS (gray3_bits, gray3_width, gray3_height); - BITS (hlines2_bits, hlines2_width, hlines2_height); - BITS (light_gray_bits, light_gray_width, light_gray_height); - BITS (root_weave_bits, root_weave_width, root_weave_height); - BITS (vlines2_bits, vlines2_width, vlines2_height); - BITS (vlines3_bits, vlines3_width, vlines3_height); -} - -static void -greynetic (dpy, window) - Display *dpy; - Window window; -{ - static int tick = 500, xlim, ylim; - static Colormap cmap; - int x, y, w, h, i; - XGCValues gcv; - if (tick++ == 500) - { - XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); - tick = 0; - xlim = xgwa.width; - ylim = xgwa.height; - cmap = xgwa.colormap; - } - for (i = 0; i < 10; i++) /* minimize area, but don't try too hard */ - { - w = 50 + random () % (xlim - 50); - h = 50 + random () % (ylim - 50); - if (w + h < xlim && w + h < ylim) - break; - } - x = random () % (xlim - w); - y = random () % (ylim - h); - gcv.stipple = pixmaps [random () % NBITS]; - if (mono_p) - { - if (random () & 1) - gcv.foreground = fg, gcv.background = bg; - else - gcv.foreground = bg, gcv.background = fg; - } - else - { - XColor fgc, bgc; - if (npixels == sizeof (pixels) / sizeof (unsigned long)) - goto REUSE; - fgc.flags = bgc.flags = DoRed|DoGreen|DoBlue; - fgc.red = random (); - fgc.green = random (); - fgc.blue = random (); - bgc.red = random (); - bgc.green = random (); - bgc.blue = random (); - if (! XAllocColor (dpy, cmap, &fgc)) - goto REUSE; - pixels [npixels++] = fgc.pixel; - gcv.foreground = fgc.pixel; - if (! XAllocColor (dpy, cmap, &bgc)) - goto REUSE; - pixels [npixels++] = bgc.pixel; - gcv.background = bgc.pixel; - goto DONE; - REUSE: - gcv.foreground = pixels [random () % npixels]; - gcv.background = pixels [random () % npixels]; - DONE: - ; - } - XChangeGC (dpy, gc, GCStipple|GCForeground|GCBackground, &gcv); - XFillRectangle (dpy, window, gc, x, y, w, h); - XSync (dpy, True); -} - - -char *progclass = "Greynetic"; - -char *defaults [] = { - "Greynetic.background: black", /* to placate SGI */ - "Greynetic.foreground: white", - "*delay: 0", - 0 -}; - -XrmOptionDescRec options [] = { - { "-delay", ".delay", XrmoptionSepArg, 0 } -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - init_greynetic (dpy, window); - while (1) - { - greynetic (dpy, window); - if (delay) usleep (delay); - } -} diff --git a/hacks/halo.c b/hacks/halo.c deleted file mode 100644 index d61e2ac3..00000000 --- a/hacks/halo.c +++ /dev/null @@ -1,379 +0,0 @@ -/* xscreensaver, Copyright (c) 1993, 1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* I wanted to lay down new circles with TV:ALU-ADD instead of TV:ALU-XOR, - but X doesn't support arithmetic combinations of pixmaps!! What losers. - I suppose I could crank out the 2's compliment math by hand, but that's - a real drag... - - This would probably look good with shapes other than circles as well. - - */ - -#include "screenhack.h" -#include - -struct circle { - int x, y, radius; - int increment; - int dx, dy; -}; - -static enum color_mode { - seuss_mode, ramp_mode, random_mode -} cmode; - - -static struct circle *circles; -static int count, global_count; -static Pixmap pixmap, buffer; -static int width, height, global_inc; -static int delay; -static unsigned long fg_pixel, bg_pixel; -static XColor fgc, bgc; -static GC draw_gc, erase_gc, copy_gc, merge_gc; -static Bool anim_p; -static Colormap cmap; - -#define min(x,y) ((x)<(y)?(x):(y)) -#define max(x,y) ((x)>(y)?(x):(y)) - -static void -init_circles_1 (dpy, window) - Display *dpy; - Window window; -{ - int i; - count = (global_count ? global_count - : (3 + (random () % max (1, (min (width, height) / 50))) - + (random () % max (1, (min (width, height) / 50))))); - circles = (struct circle *) malloc (count * sizeof (struct circle)); - for (i = 0; i < count; i++) - { - circles [i].x = 10 + random () % (width - 20); - circles [i].y = 10 + random () % (height - 20); - if (global_inc) - circles [i].increment = global_inc; - else - { /* prefer smaller increments to larger ones */ - int j = 8; - int inc = ((random()%j) + (random()%j) + (random()%j)) - ((j*3)/2); - if (inc < 0) inc = -inc + 3; - circles [i].increment = inc + 3; - } - circles [i].radius = random () % circles [i].increment; - circles [i].dx = ((random () % 3) - 1) * (1 + random () % 5); - circles [i].dy = ((random () % 3) - 1) * (1 + random () % 5); - } -} - -static void -init_circles (dpy, window) - Display *dpy; - Window window; -{ - XGCValues gcv; - XWindowAttributes xgwa; - char *mode_str = 0; - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - global_count = get_integer_resource ("count", "Integer"); - if (global_count < 0) global_count = 0; - global_inc = get_integer_resource ("increment", "Integer"); - if (global_inc < 0) global_inc = 0; - anim_p = get_boolean_resource ("animate", "Boolean"); - delay = get_integer_resource ("delay", "Integer"); - mode_str = get_string_resource ("colorMode", "ColorMode"); - if (! mode_str) cmode = random_mode; - else if (!strcmp (mode_str, "seuss")) cmode = seuss_mode; - else if (!strcmp (mode_str, "ramp")) cmode = ramp_mode; - else if (!strcmp (mode_str, "random")) cmode = random_mode; - else { - fprintf (stderr, - "%s: colorMode must be seuss, ramp, or random, not \"%s\"\n", - progname, mode_str); - exit (1); - } - - if (mono_p) cmode = seuss_mode; - if (cmode == random_mode) - cmode = ((random()&3) == 1) ? ramp_mode : seuss_mode; - - if (cmode == ramp_mode) - anim_p = False; /* This combo doesn't work right... */ - - if (mono_p) - { - fg_pixel = get_pixel_resource ("foreground","Foreground", dpy, cmap); - bg_pixel = get_pixel_resource ("background","Background", dpy, cmap); - } - else - { - int r = random() % 360; - int r2 = (random() % 180) + 45; - double fs, bs; - if (cmode == seuss_mode) - fs = 0.5, bs = 1.0; - else - fs = 1.0, bs = 0.1; - hsv_to_rgb (r, fs, 1.0, &fgc.red, &fgc.green, &fgc.blue); - hsv_to_rgb ((r+r2)%360, bs, 0.7, &bgc.red, &bgc.green, &bgc.blue); - XAllocColor (dpy, cmap, &fgc); - XAllocColor (dpy, cmap, &bgc); - fg_pixel = fgc.pixel; - bg_pixel = bgc.pixel; - } - - width = max (50, xgwa.width); - height = max (50, xgwa.height); - -#ifdef DEBUG - width/=2; height/=2; -#endif - - pixmap = XCreatePixmap (dpy, window, width, height, 1); - if (cmode == seuss_mode) - buffer = XCreatePixmap (dpy, window, width, height, 1); - else - buffer = 0; - - gcv.foreground = 1; - gcv.background = 0; - draw_gc = XCreateGC (dpy, pixmap, GCForeground | GCBackground, &gcv); - gcv.foreground = 0; - erase_gc = XCreateGC (dpy, pixmap, GCForeground, &gcv); - gcv.foreground = fg_pixel; - gcv.background = bg_pixel; - copy_gc = XCreateGC (dpy, window, GCForeground | GCBackground, &gcv); - - if (cmode == seuss_mode) - { - gcv.foreground = 1; - gcv.background = 0; - gcv.function = GXxor; - merge_gc = XCreateGC (dpy, pixmap, - GCForeground | GCBackground | GCFunction, &gcv); - } - else - { - gcv.foreground = fg_pixel; - gcv.background = bg_pixel; - gcv.function = GXcopy; - merge_gc = XCreateGC (dpy, window, - GCForeground | GCBackground | GCFunction, &gcv); - } - - init_circles_1 (dpy, window); - XClearWindow (dpy, window); - if (buffer) XFillRectangle (dpy, buffer, erase_gc, 0, 0, width, height); -} - -static void -run_circles (dpy, window) - Display *dpy; - Window window; -{ - int i; - static int iterations = 0; - static int oiterations = 0; - static Bool first_time_p = True; - Bool done = False; - Bool inhibit_sleep = False; - XFillRectangle (dpy, pixmap, erase_gc, 0, 0, width, height); - for (i = 0; i < count; i++) - { - int radius = circles [i].radius; - int inc = circles [i].increment; - if (! (iterations & 1)) - ; - else if (radius == 0) - ; - else if (radius < 0) - done = True; - else - { - /* Probably there's a simpler way to ask the musical question, - "is this square completely enclosed by this circle," but I've - forgotten too much trig to know it... (That's not really the - right question anyway, but the right question is too hard.) */ - double x1 = ((double) (-circles [i].x)) / ((double) radius); - double y1 = ((double) (-circles [i].y)) / ((double) radius); - double x2 = ((double) (width - circles [i].x)) / ((double) radius); - double y2 = ((double) (height - circles [i].y)) / ((double) radius); - x1 *= x1; x2 *= x2; y1 *= y1; y2 *= y2; - if ((x1 + y1) < 1 && (x2 + y2) < 1 && (x1 + y2) < 1 && (x2 + y1) < 1) - done = True; - } - if (radius > 0 && - (cmode == seuss_mode || circles [0].increment < 0)) - XFillArc (dpy, - (cmode == seuss_mode ? pixmap : window), - (cmode == seuss_mode ? draw_gc : merge_gc), - circles [i].x - radius, circles [i].y - radius, - radius * 2, radius * 2, 0, 360*64); - circles [i].radius += inc; - } - - if (anim_p && !first_time_p) - inhibit_sleep = !done; - - if (done) - { - if (anim_p) - { - first_time_p = False; - for (i = 0; i < count; i++) - { - circles [i].x += circles [i].dx; - circles [i].y += circles [i].dy; - circles [i].radius %= circles [i].increment; - if (circles [i].x < 0 || circles [i].x >= width) - { - circles [i].dx = -circles [i].dx; - circles [i].x += (2 * circles [i].dx); - } - if (circles [i].y < 0 || circles [i].y >= height) - { - circles [i].dy = -circles [i].dy; - circles [i].y += (2 * circles [i].dy); - } - } - } - else if (circles [0].increment < 0) - { - free (circles); - init_circles_1 (dpy, window); - if (! mono_p) - { - XColor d1, d2; - cycle_hue (&fgc, 10); - cycle_hue (&bgc, 10); - XFreeColors (dpy, cmap, &fgc.pixel, 1, 0); - XFreeColors (dpy, cmap, &bgc.pixel, 1, 0); - d1 = fgc; - d2 = bgc; - XAllocColor (dpy, cmap, &fgc); - XAllocColor (dpy, cmap, &bgc); - fgc.red = d1.red; fgc.green = d1.green; fgc.blue = d1.blue; - bgc.red = d2.red; bgc.green = d2.green; bgc.blue = d2.blue; - XSetForeground (dpy, copy_gc, fgc.pixel); - XSetBackground (dpy, copy_gc, bgc.pixel); - } - } -#if 0 - else if ((random () % 2) == 0) - { - iterations = 0; /* ick */ - for (i = 0; i < count; i++) - circles [i].radius %= circles [i].increment; - } -#endif - else - { - oiterations = iterations; - for (i = 0; i < count; i++) - { - circles [i].increment = -circles [i].increment; - circles [i].radius += (2 * circles [i].increment); - } - } - } - - if (buffer) - XCopyPlane (dpy, pixmap, buffer, merge_gc, 0, 0, width, height, 0, 0, 1); - else if (cmode != seuss_mode) - { - static int ncolors = 0; - static XColor *colors = 0; - if (circles [0].increment >= 0) - inhibit_sleep = True; - else if (done) - { - int fgh, bgh; - double fgs, fgv, bgs, bgv; - if (colors) - for (i = 0; i < ncolors; i++) - XFreeColors (dpy, cmap, &colors [i].pixel, 1, 0); - - rgb_to_hsv (fgc.red, fgc.green, fgc.blue, &fgh, &fgs, &fgv); - rgb_to_hsv (bgc.red, bgc.green, bgc.blue, &bgh, &bgs, &bgv); - ncolors = oiterations; - colors = ((XColor *) - (colors - ? realloc (colors, sizeof (XColor) * ncolors) - : malloc (sizeof (XColor) * ncolors))); - - make_color_ramp (bgh, bgs, bgv, fgh, fgs, fgv, colors, ncolors); - for (i = 0; i < ncolors; i++) - XAllocColor (dpy, cmap, &colors [i]); - XSetForeground (dpy, merge_gc, colors [0].pixel); - } - else - { - XSetForeground (dpy, merge_gc, colors [iterations].pixel); - } - } - else - XCopyPlane (dpy, pixmap, window, merge_gc, 0, 0, width, height, 0, 0, 1); - - if (buffer && (anim_p - ? (done || (first_time_p && (iterations & 1))) - : (iterations & 1))) - { - XCopyPlane (dpy, buffer, window, copy_gc, 0, 0, width, height, 0, 0, 1); - XSync (dpy, True); - if (anim_p && done) - XFillRectangle (dpy, buffer, erase_gc, 0, 0, width, height); - } -#ifdef DEBUG - XCopyPlane (dpy, pixmap, window, copy_gc, 0,0,width,height,width,height, 1); - if (buffer) - XCopyPlane (dpy, buffer, window, copy_gc, 0,0,width,height,0,height, 1); - XSync (dpy, True); -#endif - - if (done) - iterations = 0; - else - iterations++; - - if (delay && !inhibit_sleep) usleep (delay); -} - - -char *progclass = "Halo"; - -char *defaults [] = { - "Halo.background: black", /* to placate SGI */ - "Halo.foreground: white", - "*colorMode: random", - "*count: 0", - "*delay: 100000", - 0 -}; - -XrmOptionDescRec options [] = { - { "-count", ".count", XrmoptionSepArg, 0 }, - { "-delay", ".delay", XrmoptionSepArg, 0 }, - { "-animate", ".animate", XrmoptionNoArg, "True" }, - { "-mode", ".colorMode", XrmoptionSepArg, 0 } -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - init_circles (dpy, window); - while (1) - run_circles (dpy, window); -} diff --git a/hacks/helix.c b/hacks/helix.c deleted file mode 100644 index 84c4fd8c..00000000 --- a/hacks/helix.c +++ /dev/null @@ -1,208 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include -#include "screenhack.h" - -static double sins [360]; -static double coss [360]; - -static GC draw_gc, erase_gc; -static unsigned int default_fg_pixel; - -static void -init_helix (dpy, window) - Display *dpy; - Window window; -{ - int i; - XGCValues gcv; - XWindowAttributes xgwa; - Colormap cmap; - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - gcv.foreground = default_fg_pixel = - get_pixel_resource ("foreground", "Foreground", dpy, cmap); - draw_gc = XCreateGC (dpy, window, GCForeground, &gcv); - gcv.foreground = get_pixel_resource ("background", "Background", dpy, cmap); - erase_gc = XCreateGC (dpy, window, GCForeground, &gcv); - - for (i = 0; i < 360; i++) - { - sins [i] = sin ((((double) i) / 180.0) * M_PI); - coss [i] = cos ((((double) i) / 180.0) * M_PI); - } -} - -static int -gcd (a, b) - int a, b; -{ - while (b > 0) - { - int tmp; - tmp = a % b; - a = b; - b = tmp; - } - return (a < 0 ? -a : a); -} - -static void -helix (dpy, window, - radius1, radius2, d_angle, - factor1, factor2, factor3, factor4) - Display *dpy; - Window window; - int radius1, radius2, d_angle; - int factor1, factor2, factor3, factor4; -{ - XWindowAttributes xgwa; - int width, height; - int xmid, ymid; - int x1, y1, x2, y2, angle, limit; - int i; - - XClearWindow (dpy, window); - XGetWindowAttributes (dpy, window, &xgwa); - width = xgwa.width; - height = xgwa.height; - - xmid = width / 2; - ymid = height / 2; - x1 = xmid; - y1 = ymid + radius2; - x2 = xmid; - y2 = ymid + radius1; - angle = 0; - limit = 1 + (360 / gcd (360, d_angle)); - - for (i = 0; i < limit; i++) - { - int tmp; -#define pmod(x,y) (tmp = (x % y), (tmp >= 0 ? tmp : tmp + y)) - x1 = xmid + (((double) radius1) * sins [pmod ((angle * factor1), 360)]); - y1 = ymid + (((double) radius2) * coss [pmod ((angle * factor2), 360)]); - XDrawLine (dpy, window, draw_gc, x1, y1, x2, y2); - x2 = xmid + (((double) radius2) * sins [pmod ((angle * factor3), 360)]); - y2 = ymid + (((double) radius1) * coss [pmod ((angle * factor4), 360)]); - XDrawLine (dpy, window, draw_gc, x1, y1, x2, y2); - angle += d_angle; - XFlush (dpy); - } -} - -#define min(a,b) ((a)<(b)?(a):(b)) - -static void -random_helix (dpy, window) - Display *dpy; - Window window; -{ - Colormap cmap; - int width, height; - int radius, radius1, radius2, d_angle, factor1, factor2, factor3, factor4; - double divisor; - XColor color; - int i, got_color = 0; - XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); - width = xgwa.width; - height = xgwa.height; - cmap = xgwa.colormap; - - radius = min (width, height) / 2; - - d_angle = 0; - factor1 = 2; - factor2 = 2; - factor3 = 2; - factor4 = 2; - - divisor = ((frand (3.0) + 1) * (((random() & 1) * 2) - 1)); - - if ((random () & 1) == 0) - { - radius1 = radius; - radius2 = radius / divisor; - } - else - { - radius2 = radius; - radius1 = radius / divisor; - } - - while (gcd (360, d_angle) >= 2) - d_angle = random () % 360; - -#define random_factor() \ - (((random() % 7) ? ((random() & 1) + 1) : 3) \ - * (((random() & 1) * 2) - 1)) - - while (gcd (gcd (gcd (factor1, factor2), factor3), factor4) != 1) - { - factor1 = random_factor (); - factor2 = random_factor (); - factor3 = random_factor (); - factor4 = random_factor (); - } - - if (mono_p) - XSetForeground (dpy, draw_gc, default_fg_pixel); - else - { - hsv_to_rgb (random () % 360, frand (1.0), frand (0.5) + 0.5, - &color.red, &color.green, &color.blue); - if ((got_color = XAllocColor (dpy, cmap, &color))) - XSetForeground (dpy, draw_gc, color.pixel); - else - XSetForeground (dpy, draw_gc, default_fg_pixel); - } - helix (dpy, window, radius1, radius2, d_angle, - factor1, factor2, factor3, factor4); - - XSync (dpy, True); - sleep (5); - - for (i = 0; i < height; i++) - { - int y = (random () % height); - XDrawLine (dpy, window, erase_gc, 0, y, width, y); - XFlush (dpy); - if ((i % 50) == 0) - usleep (10000); - } - XClearWindow (dpy, window); - if (got_color) XFreeColors (dpy, cmap, &color.pixel, 1, 0); - XSync (dpy, True); - sleep (1); -} - - -char *progclass = "Helix"; - -char *defaults [] = { - "Helix.background: black", /* to placate SGI */ - 0 -}; - -XrmOptionDescRec options [] = { { 0, } }; -int options_size = 0; - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - init_helix (dpy, window); - while (1) - random_helix (dpy, window); -} diff --git a/hacks/hopalong.c b/hacks/hopalong.c deleted file mode 100644 index 2a91ecef..00000000 --- a/hacks/hopalong.c +++ /dev/null @@ -1,236 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* This file was ported from xlock for use in xscreensaver (and standalone) - * by jwz on 12-Aug-92. Original copyright reads: - * - * hopalong.c - Real Plane Fractals for xlock, the X Window System lockscreen. - * - * Copyright (c) 1991 by Patrick J. Naughton. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, - * provided that the above copyright notice appear in all copies and that - * both that copyright notice and this permission notice appear in - * supporting documentation. - * - * This file is provided AS IS with no warranties of any kind. The author - * shall have no liability with respect to the infringement of copyrights, - * trade secrets or any patents by this file or any part thereof. In no - * event will the author be liable for any lost revenue or profits or - * other special, indirect and consequential damages. - * - * Comments and additions should be sent to the author: - * - * naughton@eng.sun.com - * - * Patrick J. Naughton - * MS 21-14 - * Sun Laboritories, Inc. - * 2550 Garcia Ave - * Mountain View, CA 94043 - * - * Revision History: - * 29-Oct-90: fix bad (int) cast. - * 29-Jul-90: support for multiple screens. - * 08-Jul-90: new timing and colors and new algorithm for fractals. - * 15-Dec-89: Fix for proper skipping of {White,Black}Pixel() in colors. - * 08-Oct-89: Fixed long standing typo bug in RandomInitHop(); - * Fixed bug in memory allocation in inithop(); - * Moved seconds() to an extern. - * Got rid of the % mod since .mod is slow on a sparc. - * 20-Sep-89: Lint. - * 31-Aug-88: Forked from xlock.c for modularity. - * 23-Mar-88: Coded HOPALONG routines from Scientific American Sept. 86 p. 14. - */ - -#include -#include "screenhack.h" - -static GC gc; -static int batchcount = 1000; - -static unsigned int *pixels = 0, fg_pixel, bg_pixel; -static int npixels; -static unsigned int delay; -static int timeout; - -typedef struct { - int centerx; - int centery; /* center of the screen */ - double a; - double b; - double c; - double i; - double j; /* hopalong parameters */ - int inc; - int pix; - long startTime; -} hopstruct; - -static hopstruct hop; -static XPoint *pointBuffer = 0; /* pointer for XDrawPoints */ - -static void -inithop(dsp,win) - Display *dsp; - Window win; -{ - double range; - XWindowAttributes xgwa; - hopstruct *hp = &hop; - XGCValues gcv; - Colormap cmap; - XGetWindowAttributes (dsp, win, &xgwa); - cmap = xgwa.colormap; - - if (! pixels) - { - XColor color; - int i = get_integer_resource ("ncolors", "Integer"); - int shift; - if (i <= 2) i = 2, mono_p = True; - shift = 360 / i; - pixels = (unsigned int *) calloc (i, sizeof (unsigned int)); - fg_pixel = get_pixel_resource ("foreground", "Foreground", dsp, cmap); - bg_pixel = get_pixel_resource ("background", "Background", dsp, cmap); - if (! mono_p) - { - hsv_to_rgb (random () % 360, 1.0, 1.0, - &color.red, &color.green, &color.blue); - for (npixels = 0; npixels < i; npixels++) - { - if (! XAllocColor (dsp, cmap, &color)) - break; - pixels[npixels] = color.pixel; - cycle_hue (&color, shift); - } - } - timeout = get_integer_resource ("timeout", "Seconds"); - if (timeout <= 0) timeout = 30; - delay = get_integer_resource ("delay", "Usecs"); - - gcv.foreground = fg_pixel; - gc = XCreateGC (dsp, win, GCForeground, &gcv); - } - - XClearWindow (dsp, win); - - hp->centerx = xgwa.width / 2; - hp->centery = xgwa.height / 2; - range = sqrt((double) hp->centerx * hp->centerx + - (double) hp->centery * hp->centery) / - (10.0 + random() % 10); - - hp->pix = 0; -#define frand0() (((double) random()) / ((unsigned int) (~0))) - hp->inc = (int) (frand0() * 200) - 100; - hp->a = frand0() * range - range / 2.0; - hp->b = frand0() * range - range / 2.0; - hp->c = frand0() * range - range / 2.0; - if (!(random() % 2)) - hp->c = 0.0; - - hp->i = hp->j = 0.0; - - if (!pointBuffer) - pointBuffer = (XPoint *) malloc(batchcount * sizeof(XPoint)); - - XSetForeground(dsp, gc, bg_pixel); - XFillRectangle(dsp, win, gc, 0, 0, - hp->centerx * 2, hp->centery * 2); - XSetForeground(dsp, gc, fg_pixel); - hp->startTime = time ((time_t *) 0); -} - - -static void -drawhop(dsp,win) - Display *dsp; - Window win; -{ - double oldj; - int k = batchcount; - XPoint *xp = pointBuffer; - hopstruct *hp = &hop; - - hp->inc++; - if (! mono_p) { - XSetForeground(dsp, gc, pixels[hp->pix]); - if (++hp->pix >= npixels) - hp->pix = 0; - } - while (k--) { - oldj = hp->j; - hp->j = hp->a - hp->i; - hp->i = oldj + (hp->i < 0 - ? sqrt(fabs(hp->b * (hp->i + hp->inc) - hp->c)) - : -sqrt(fabs(hp->b * (hp->i + hp->inc) - hp->c))); - xp->x = hp->centerx + (int) (hp->i + hp->j); - xp->y = hp->centery - (int) (hp->i - hp->j); - xp++; - } - XDrawPoints(dsp, win, gc, - pointBuffer, batchcount, CoordModeOrigin); - XSync (dsp, True); - if ((time ((time_t *) 0) - hp->startTime) > timeout) - { - int i; - XSetForeground(dsp, gc, bg_pixel); - for (i = 0; i < hp->centery; i++) - { - int y = (random () % (hp->centery << 1)); - XDrawLine (dsp, win, gc, 0, y, hp->centerx << 1, y); - XFlush (dsp); - if ((i % 50) == 0) - usleep (10000); - } - XClearWindow (dsp, win); - XFlush (dsp); - sleep (1); - inithop(dsp,win); - } -} - - -char *progclass = "Hopalong"; - -char *defaults [] = { - "Hopalong.background: black", /* to placate SGI */ - "Hopalong.foreground: white", - "*count: 1000", - "*ncolors: 100", - "*timeout: 20", - "*delay: 0", - 0 -}; - -XrmOptionDescRec options [] = { - { "-count", ".count", XrmoptionSepArg, 0 }, - { "-ncolors", ".ncolors", XrmoptionSepArg, 0 }, - { "-timeout", ".timeout", XrmoptionSepArg, 0 }, - { "-delay", ".delay", XrmoptionSepArg, 0 }, -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - inithop (dpy, window); - while (1) - { - drawhop (dpy, window); - XSync (dpy, True); - if (delay) usleep (delay); - } -} diff --git a/hacks/hypercube.c b/hacks/hypercube.c deleted file mode 100644 index 05574fb3..00000000 --- a/hacks/hypercube.c +++ /dev/null @@ -1,334 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - * This code derived from TI Explorer Lisp code by Joe Keane, Fritz Mueller, - * and Jamie Zawinski. - */ - -#include -#include "screenhack.h" - -static Display *dpy; -static Window window; -static GC color0, color1, color2, color3, color4, color5, color6, color7; -static GC black; - -static int delay; - -static int observer_z; -static int x_offset, y_offset; -static int unit_pixels; - -struct point_state { - int old_x, old_y; - int new_x, new_y; - Bool same_p; -}; - -static void -move_line (state0, state1, gc) - struct point_state *state0, *state1; - GC gc; -{ - if (state0->same_p && state1->same_p) - return; - if (mono_p) - { - XDrawLine (dpy, window, black, - state0->old_x, state0->old_y, state1->old_x, state1->old_y); - XDrawLine (dpy, window, gc, - state0->new_x, state0->new_y, state1->new_x, state1->new_y); - } - else - { - XSegment segments [2]; - segments [0].x1 = state0->old_x; segments [0].y1 = state0->old_y; - segments [0].x2 = state1->old_x; segments [0].y2 = state1->old_y; - segments [1].x1 = state0->new_x; segments [1].y1 = state0->new_y; - segments [1].x2 = state1->new_x; segments [1].y2 = state1->new_y; - XDrawSegments (dpy, window, gc, segments, 2); - } -} - -static void -hyper (xy, xz, yz, xw, yw, zw) - double xy, xz, yz, xw, yw, zw; -{ - double cos_xy = cos (xy), sin_xy = sin (xy); - double cos_xz = cos (xz), sin_xz = sin (xz); - double cos_yz = cos (yz), sin_yz = sin (yz); - double cos_xw = cos (xw), sin_xw = sin (xw); - double cos_yw = cos (yw), sin_yw = sin (yw); - double cos_zw = cos (zw), sin_zw = sin (zw); - - double ax = 1.0, ay = 0.0, az = 0.0, aw = 0.0; - double bx = 0.0, by = 1.0, bz = 0.0, bw = 0.0; - double cx = 0.0, cy = 0.0, cz = 1.0, cw = 0.0; - double dx = 0.0, dy = 0.0, dz = 0.0, dw = 1.0; - - double _tmp0_, _tmp1_; - - struct point_state points [16]; - memset (points, 0, sizeof (points)); - -#define mmmm (&points[0]) -#define mmmp (&points[1]) -#define mmpm (&points[2]) -#define mmpp (&points[3]) -#define mpmm (&points[4]) -#define mpmp (&points[5]) -#define mppm (&points[6]) -#define mppp (&points[7]) -#define pmmm (&points[8]) -#define pmmp (&points[9]) -#define pmpm (&points[10]) -#define pmpp (&points[11]) -#define ppmm (&points[12]) -#define ppmp (&points[13]) -#define pppm (&points[14]) -#define pppp (&points[15]) - - while (1) - { - double temp_mult; - -#define compute(a,b,c,d,point_state) \ - temp_mult = (unit_pixels / (((a*az) + (b*bz) + (c*cz) + (d*dz) + \ - (a*aw) + (b*bw) + (c*cw) + (d*dw)) \ - - observer_z)); \ - point_state->old_x = point_state->new_x; \ - point_state->old_y = point_state->new_y; \ - point_state->new_x = ((((a*ax) + (b*bx) + (c*cx) + (d*dx)) * temp_mult) \ - + x_offset); \ - point_state->new_y = ((((a*ay) + (b*by) + (c*cy) + (d*dy)) * temp_mult) \ - + y_offset); \ - point_state->same_p = (point_state->old_x == point_state->new_x && \ - point_state->old_y == point_state->new_y); - - compute (-1, -1, -1, -1, mmmm); - compute (-1, -1, -1, 1, mmmp); - compute (-1, -1, 1, -1, mmpm); - compute (-1, -1, 1, 1, mmpp); - compute (-1, 1, -1, -1, mpmm); - compute (-1, 1, -1, 1, mpmp); - compute (-1, 1, 1, -1, mppm); - compute (-1, 1, 1, 1, mppp); - compute ( 1, -1, -1, -1, pmmm); - compute ( 1, -1, -1, 1, pmmp); - compute ( 1, -1, 1, -1, pmpm); - compute ( 1, -1, 1, 1, pmpp); - compute ( 1, 1, -1, -1, ppmm); - compute ( 1, 1, -1, 1, ppmp); - compute ( 1, 1, 1, -1, pppm); - compute ( 1, 1, 1, 1, pppp); - - move_line (mmmm, mmmp, color0); - move_line (mmmm, mmpm, color0); - move_line (mmpm, mmpp, color0); - move_line (mmmp, mmpp, color0); - - move_line (pmmm, pmmp, color1); - move_line (pmmm, pmpm, color1); - move_line (pmpm, pmpp, color1); - move_line (pmmp, pmpp, color1); - - move_line (mpmm, mpmp, color2); - move_line (mpmm, mppm, color2); - move_line (mppm, mppp, color2); - move_line (mpmp, mppp, color2); - - move_line (mmpp, mppp, color3); - move_line (mmpp, pmpp, color3); - move_line (pmpp, pppp, color3); - move_line (mppp, pppp, color3); - - move_line (mmmm, mpmm, color4); - move_line (mmmm, pmmm, color4); - move_line (mpmm, ppmm, color4); - move_line (pmmm, ppmm, color4); - - move_line (mmmp, mpmp, color5); - move_line (mmmp, pmmp, color5); - move_line (pmmp, ppmp, color5); - move_line (mpmp, ppmp, color5); - - move_line (mmpm, mppm, color6); - move_line (mmpm, pmpm, color6); - move_line (pmpm, pppm, color6); - move_line (mppm, pppm, color6); - - move_line (ppmm, ppmp, color7); - move_line (ppmm, pppm, color7); - move_line (pppm, pppp, color7); - move_line (ppmp, pppp, color7); - - /* If you get error messages about the following forms, and you think you're - using an ANSI C conforming compiler, then you're mistaken. Possibly you're - mixing an ANSI compiler with a non-ANSI preprocessor, or vice versa. - Regardless, your system is broken; it's not a bug in this program. - */ -#if __STDC__ -# define rotate(name,dim0,dim1,cos,sin) \ - _tmp0_ = ((name##dim0 * cos) + (name##dim1 * sin)); \ - _tmp1_ = ((name##dim1 * cos) - (name##dim0 * sin)); \ - name##dim0 = _tmp0_; \ - name##dim1 = _tmp1_; - -# define rotates(dim0,dim1) \ - if (sin_##dim0##dim1 != 0) { \ - rotate(a, dim0, dim1, cos_##dim0##dim1, sin_##dim0##dim1); \ - rotate(b, dim0, dim1, cos_##dim0##dim1, sin_##dim0##dim1); \ - rotate(c, dim0, dim1, cos_##dim0##dim1, sin_##dim0##dim1); \ - rotate(d, dim0, dim1, cos_##dim0##dim1, sin_##dim0##dim1); \ - } - -#else /* !__STDC__, courtesy of Andreas Luik */ -# define rotate(name,dim0,dim1,cos,sin) \ - _tmp0_ = ((name/**/dim0 * cos) + (name/**/dim1 * sin)); \ - _tmp1_ = ((name/**/dim1 * cos) - (name/**/dim0 * sin)); \ - name/**/dim0 = _tmp0_; \ - name/**/dim1 = _tmp1_; - -# define rotates(dim0,dim1) \ - if (sin_/**/dim0/**/dim1 != 0) { \ - rotate(a,dim0,dim1,cos_/**/dim0/**/dim1,sin_/**/dim0/**/dim1); \ - rotate(b,dim0,dim1,cos_/**/dim0/**/dim1,sin_/**/dim0/**/dim1); \ - rotate(c,dim0,dim1,cos_/**/dim0/**/dim1,sin_/**/dim0/**/dim1); \ - rotate(d,dim0,dim1,cos_/**/dim0/**/dim1,sin_/**/dim0/**/dim1); \ - } -#endif /* !__STDC__ */ - - rotates (x,y); - rotates (x,z); - rotates (y,z); - rotates (x,w); - rotates (y,w); - rotates (z,w); - - XSync (dpy, True); - if (delay) usleep (delay); - } -} - - -char *progclass = "Hypercube"; - -char *defaults [] = { - "Hypercube.background: black", /* to placate SGI */ - "Hypercube.foreground: white", - "*color0: red", - "*color1: orange", - "*color2: yellow", - "*color3: white", - "*color4: green", - "*color5: cyan", - "*color6: dodgerblue", - "*color7: magenta", - - "*xw: 0.000", - "*xy: 0.010", - "*xz: 0.005", - "*yw: 0.010", - "*yz: 0.000", - "*zw: 0.000", - - "*observer-z: 5", - "*delay: 100000", - 0 -}; - -XrmOptionDescRec options [] = { - { "-color0", ".color0", XrmoptionSepArg, 0 }, - { "-color1", ".color1", XrmoptionSepArg, 0 }, - { "-color2", ".color2", XrmoptionSepArg, 0 }, - { "-color3", ".color3", XrmoptionSepArg, 0 }, - { "-color4", ".color4", XrmoptionSepArg, 0 }, - { "-color5", ".color5", XrmoptionSepArg, 0 }, - { "-color6", ".color6", XrmoptionSepArg, 0 }, - { "-color7", ".color7", XrmoptionSepArg, 0 }, - - { "-xw", ".xw", XrmoptionSepArg, 0 }, - { "-xy", ".xy", XrmoptionSepArg, 0 }, - { "-xz", ".xz", XrmoptionSepArg, 0 }, - { "-yw", ".yw", XrmoptionSepArg, 0 }, - { "-yz", ".yz", XrmoptionSepArg, 0 }, - { "-zw", ".zw", XrmoptionSepArg, 0 }, - - { "-observer-z", ".observer-z", XrmoptionSepArg, 0 }, - { "-delay", ".delay", XrmoptionSepArg, 0 } -}; - -int options_size = (sizeof (options) / sizeof (options[0])); - - -void -screenhack (d, w) - Display *d; - Window w; -{ - XGCValues gcv; - XWindowAttributes xgwa; - Colormap cmap; - double xy, xz, yz, xw, yw, zw; - unsigned long bg; - - dpy = d; - window = w; - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - - x_offset = xgwa.width / 2; - y_offset = xgwa.height / 2; - unit_pixels = xgwa.width < xgwa.height ? xgwa.width : xgwa.height; - - xy = get_float_resource ("xy", "Float"); - xz = get_float_resource ("xz", "Float"); - yz = get_float_resource ("yz", "Float"); - xw = get_float_resource ("xw", "Float"); - yw = get_float_resource ("yw", "Float"); - zw = get_float_resource ("zw", "Float"); - - observer_z = get_integer_resource ("observer-z", "Integer"); - - delay = get_integer_resource ("delay", "Integer"); - - bg = get_pixel_resource ("background", "Background", dpy, cmap); - - if (mono_p) - { - gcv.function = GXcopy; - gcv.foreground = bg; - black = XCreateGC (dpy, window, GCForeground|GCFunction, &gcv); - gcv.foreground = get_pixel_resource ("foreground", "Foreground", - dpy, cmap); - color0 = color1 = color2 = color3 = color4 = color5 = color6 = color7 = - XCreateGC (dpy, window, GCForeground|GCFunction, &gcv); - } - else - { - black = 0; - gcv.function = GXxor; -#define make_gc(color,name) \ - gcv.foreground = bg ^ get_pixel_resource ((name), "Foreground", \ - dpy, cmap); \ - color = XCreateGC (dpy, window, GCForeground|GCFunction, &gcv) - - make_gc (color0,"color0"); - make_gc (color1,"color1"); - make_gc (color2,"color2"); - make_gc (color3,"color3"); - make_gc (color4,"color4"); - make_gc (color5,"color5"); - make_gc (color6,"color6"); - make_gc (color7,"color7"); - } - - hyper (xy, xz, yz, xw, yw, zw); -} diff --git a/hacks/imsmap.c b/hacks/imsmap.c deleted file mode 100644 index 7a619b94..00000000 --- a/hacks/imsmap.c +++ /dev/null @@ -1,437 +0,0 @@ -/* imsmap, Copyright (c) 1992 Juergen Nickelsen - * Derived from code by Markus Schirmer, TU Berlin. - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include "screenhack.h" -#include -#include - -#define NSTEPS 7 -#define COUNT (1 << NSTEPS) -#define CELL(c, r) cell[((unsigned int)(c)) + ((unsigned int) (r)) * xmax] - -static enum mode_t { MODE_H, MODE_S, MODE_V, MODE_RANDOM } mode; - -static GC gc, gc2; -static Display *disp; -static Window wind; -static XWindowAttributes wattrs; - -#if defined(sun) && !__STDC__ /* sun cc doesn't know "signed char" */ -#define signed /**/ -#endif - -static unsigned long *pixels = 0, fg_pixel, bg_pixel; -static int npixels = 0; -static Colormap cmap; -static int timeout, cycle_delay; -static int cycle_p; -static signed char *cell = NULL; -static int xmax, ymax; -static int iterations; - -static void -initwin (dsp, win) - Display *dsp; - Window win; -{ - int fg_h, bg_h; - double fg_s, fg_v, bg_s, bg_v; - - enum mode_t this_mode; - static Bool rv_p; - static int ncolors = 0; - int shift = 0; - double dshift = 0; - - XGCValues gcv; - - XGetWindowAttributes (dsp, win, &wattrs); - cmap = wattrs.colormap; - - if (!ncolors) - { - char *mode_str = get_string_resource ("mode", "Mode"); - rv_p = get_boolean_resource ("reverseVideo", "ReverseVideo"); - cycle_p = get_boolean_resource ("cycle", "Cycle"); - ncolors = get_integer_resource ("ncolors", "Integer"); - timeout = get_integer_resource ("timeout", "Integer"); - cycle_delay = get_integer_resource ("cycleDelay", "Integer"); - iterations = get_integer_resource ("iterations", "Integer"); - if (iterations < 0) iterations = 0; - else if (iterations > 7) iterations = 7; - pixels = (unsigned long *) calloc (ncolors, sizeof (unsigned int)); - fg_pixel = get_pixel_resource ("background", "Background", dsp, cmap); - bg_pixel = get_pixel_resource ("foreground", "Foreground", dsp, cmap); - - if (mono_p && fg_pixel == bg_pixel) - bg_pixel = !bg_pixel; - - if (mono_p) cycle_p = False; - - gcv.foreground = fg_pixel; - gcv.background = bg_pixel; - gc = XCreateGC (dsp, win, GCForeground|GCBackground, &gcv); - gcv.foreground = bg_pixel; - gc2 = XCreateGC (dsp, win, GCForeground, &gcv); - - if (!mode_str || !strcmp (mode_str, "random")) - mode = MODE_RANDOM; - else if (!strcmp (mode_str, "h") || !strcmp (mode_str, "hue")) - mode = MODE_H; - else if (!strcmp (mode_str, "s") || !strcmp (mode_str, "saturation")) - mode = MODE_S; - else if (!strcmp (mode_str, "v") || !strcmp (mode_str, "value")) - mode = MODE_V; - else - { - fprintf (stderr, - "%s: mode must be hue, saturation, value, or random, not \"%s\"\n", - progname, mode_str); - mode = MODE_RANDOM; - } - } - else if (! mono_p) - XFreeColors (dsp, cmap, pixels, npixels, 0); - - this_mode = mode; - if (!mono_p && mode == MODE_RANDOM) - switch (random () % 3) { - case 0: this_mode = MODE_H; break; - case 1: this_mode = MODE_S; break; - case 2: this_mode = MODE_V; break; - } - - if (mono_p) - { - npixels = ncolors; - pixels [0] = fg_pixel; - pixels [1] = bg_pixel; - } - else - { - XColor fg_color, bg_color; - - if (fg_pixel == bg_pixel) - { - HSV_AGAIN: - fg_h = random () % 360; - bg_h = random () % 360; - fg_s = frand (1.0); - bg_s = frand (1.0); - V_AGAIN: - fg_v = frand (1.0); - bg_v = frand (1.0); - if ((fg_v - bg_v) > -0.4 && (fg_v - bg_v) < 0.4) - goto V_AGAIN; - hsv_to_rgb (fg_h, fg_s, fg_v, - &fg_color.red, &fg_color.green, &fg_color.blue); - hsv_to_rgb (bg_h, bg_s, bg_v, - &bg_color.red, &bg_color.green, &bg_color.blue); - } - else - { - XQueryColor (dsp, cmap, &fg_color); - XQueryColor (dsp, cmap, &bg_color); - fg_color.pixel = fg_pixel; - bg_color.pixel = bg_pixel; - } - fg_color.flags = DoRed|DoGreen|DoBlue; - bg_color.flags = DoRed|DoGreen|DoBlue; - - rgb_to_hsv (fg_color.red, fg_color.green, fg_color.blue, - &fg_h, &fg_s, &fg_v); - rgb_to_hsv (bg_color.red, bg_color.green, bg_color.blue, - &bg_h, &bg_s, &bg_v); - - if (/*mode == MODE_RANDOM &&*/ - ((this_mode == MODE_S && (fg_s-bg_s) > -0.3 && (fg_s-bg_s) < 0.3) || - (this_mode == MODE_V && (fg_v-bg_v) > -0.3 && (fg_v-bg_v) < 0.3) || - (this_mode == MODE_H && (fg_h-bg_h) > -30 && (fg_h-bg_h) < 30))) - goto HSV_AGAIN; - - switch (this_mode) { - case MODE_H: shift = (bg_h - fg_h) / ncolors; break; - case MODE_S: dshift = (bg_s - fg_s) / ncolors; break; - case MODE_V: dshift = (bg_v - fg_v) / ncolors; break; - default: abort (); - } - - if (mode == MODE_RANDOM && - ((this_mode == MODE_H) - ? ((shift > -2 && shift < 2) || fg_s < 0.3 || fg_v < 0.3) - : (dshift > -0.005 && dshift < 0.005))) - goto HSV_AGAIN; - - if (mode == MODE_RANDOM && this_mode == MODE_S && fg_v < 0.5) - goto V_AGAIN; - - for (npixels = 0; npixels < ncolors; npixels++) - { - if (cycle_p) - { - unsigned long plane_masks; - /* allocate the writable color cells, one at a time. */ - if (! XAllocColorCells (dsp, cmap, False, &plane_masks, 0, - &fg_color.pixel, 1)) - { - fprintf (stderr, - "%s: couldn't allocate %s writable color cells. Turning off -cycle.\n", - progname, (npixels ? "enough" : "any")); - cycle_p = 0; - goto NON_CYCLE; - } - XStoreColor (dsp, cmap, &fg_color); - } - else - { - NON_CYCLE: - if (!XAllocColor (dsp, cmap, &fg_color)) - break; - } - pixels[npixels] = fg_color.pixel; - - switch (this_mode) - { - case MODE_H: fg_h = (fg_h + shift) % 360; break; - case MODE_S: fg_s += dshift; break; - case MODE_V: fg_v += dshift; break; - default: abort (); - } - hsv_to_rgb (fg_h, fg_s, fg_v, - &fg_color.red, &fg_color.green, &fg_color.blue); - } - } - XSetForeground (dsp, gc, pixels [0]); - XFillRectangle (dsp, win, gc, 0, 0, wattrs.width, wattrs.height); -} - - -#define HEIGHT_TO_PIXEL(height) \ - (((int) (height)) < 0 ? 0 : \ - ((int) (height)) >= npixels ? npixels - 3 : ((int) (height))) - -static unsigned int -set (l, c, size, height) - unsigned int l, c, size; - int height; -{ - int rang = 1 << (NSTEPS - size); - height = height + (random () % rang) - rang / 2; - CELL (l, c) = height; - - return pixels [HEIGHT_TO_PIXEL (height)]; -} - -static void -floyd_steinberg () -{ - int x, y, err; - - /* Instead of repeatedly calling XPutPixel(), we make an Image and then - send its bits over all at once. This consumes much less network - bandwidth. The image we create is Wx1 intead of WxH, so that we - don't use enormous amounts of memory. - */ - XImage *image = - XCreateImage (disp, DefaultVisual(disp,DefaultScreen(disp)), - 1, XYBitmap, 0, /* depth, format, offset */ - (char *) calloc ((xmax + 1) / 8, 1), /* data */ - xmax, 1, 8, 0); /* w, h, pad, bpl */ - - for (y = 0; y < ymax - 1; y++) - { - for (x = 0; x < xmax - 1; x++) - { - if (CELL(x, y) < 0) - { - err = CELL (x, y); - XPutPixel (image, x, 0, 1); - } - else - { - err = CELL (x, y) - 1; - XPutPixel (image, x, 0, 0); - } - /* distribute error */ - CELL (x, y+1) += (int) (((float) err) * 3.0/8.0); - CELL (x+1, y) += (int) (((float) err) * 3.0/8.0); - CELL (x+1, y+1) += (int) (((float) err) * 1.0/4.0); - } - XPutImage (disp, wind, gc, image, 0, 0, 0, y, xmax, 1); - } - XDestroyImage (image); -} - -static void -draw (x, y, pixel, grid_size) /* not called in mono mode */ - int x, y, grid_size; - unsigned long pixel; -{ - static unsigned int last_pixel, last_valid = 0; - if (! (last_valid && pixel == last_pixel)) - XSetForeground (disp, gc, pixel); - last_valid = 1, last_pixel = pixel; - if (grid_size == 1) - XDrawPoint (disp, wind, gc, x, y); - else - XFillRectangle (disp, wind, gc, x, y, grid_size, grid_size); -} - - -static void -drawmap () -{ - unsigned int x, y, i, step, nextStep, x1, x2, y1, y2; - unsigned int pixel, qpixels [4]; - - xmax = wattrs.width; - ymax = wattrs.height; - - cell = (signed char *) calloc (xmax * ymax, 1); - if (cell == NULL) - exit (1); - - CELL (0, 0) = 0; - step = COUNT; - for (i = 0; i < iterations; i++) - { - nextStep = step / 2; - for (x = 0; x < xmax; x += step) - { - x1 = x + nextStep; - if (x1 >= xmax) - x1 = 0; - x2 = x + step; - if (x2 >= xmax) - x2 = 0; - for (y = 0; y < ymax; y += step) - { - y1 = y + nextStep; - if (y1 >= ymax) - y1 = 0; - y2 = y + step; - if (y2 >= ymax) - y2 = 0; - - qpixels [0] = pixels [HEIGHT_TO_PIXEL (CELL (x, y))]; - qpixels [1] = pixels [HEIGHT_TO_PIXEL (CELL (x, y2))]; - qpixels [2] = pixels [HEIGHT_TO_PIXEL (CELL (x2, y))]; - qpixels [3] = pixels [HEIGHT_TO_PIXEL (CELL (x2, y2))]; - - pixel = set (x, y1, i, - ((int) CELL (x, y) + (int) CELL (x, y2) + 1) / 2); - if (! mono_p && - (pixel != qpixels[0] || pixel != qpixels[1] || - pixel != qpixels[2] || pixel != qpixels[3])) - draw (x, y1, pixel, nextStep); - - pixel = set (x1, y, i, - ((int) CELL (x, y) + (int) CELL (x2, y) + 1) / 2); - if (! mono_p && - (pixel != qpixels[0] || pixel != qpixels[1] || - pixel != qpixels[2] || pixel != qpixels[3])) - draw (x1, y, pixel, nextStep); - - pixel = set (x1, y1, i, - ((int) CELL (x, y) + (int) CELL (x, y2) + - (int) CELL (x2, y) + (int) CELL (x2, y2) + 2) - / 4); - if (! mono_p && - (pixel != qpixels[0] || pixel != qpixels[1] || - pixel != qpixels[2] || pixel != qpixels[3])) - draw (x1, y1, pixel, nextStep); - } - } - step = nextStep; - if (!mono_p) - XSync (disp, True); - } - if (mono_p) - /* in mono-mode, we do all the drawing at the end */ - floyd_steinberg (); - - free (cell); - XSync (disp, True); -} - -static void -cycle (dpy) - Display *dpy; -{ - XColor *colors = (XColor *) malloc (npixels * sizeof (XColor)); - time_t stop; - int i; - for (i = 0; i < npixels; i++) - colors [i].pixel = pixels [i]; - XQueryColors (dpy, cmap, colors, npixels); - stop = (time_t) ((time ((time_t) 0)) + timeout); - while (stop >= (time_t) time ((time_t) 0)) - { - unsigned long scratch = colors [npixels-1].pixel; - for (i = npixels-1; i > 0; i--) - colors [i].pixel = colors [i-1].pixel; - colors [0].pixel = scratch; - XStoreColors (dpy, cmap, colors, npixels); - XSync (dpy, True); - if (cycle_delay) usleep (cycle_delay); - } - XSync (dpy, True); - free (colors); -} - - -char *progclass = "Imsmap"; - -char *defaults [] = { - "Imsmap.background: black", /* to placate SGI */ - "Imsmap.foreground: black", - "*mode: random", - "*ncolors: 50", - "*iterations: 7", - "*timeout: 10", - "*cycleDelay: 100000", - "*cycle: true", - 0 -}; - -XrmOptionDescRec options [] = { - { "-ncolors", ".ncolors", XrmoptionSepArg, 0 }, - { "-timeout", ".timeout", XrmoptionSepArg, 0 }, - { "-cycle-delay", ".cycleDelay", XrmoptionSepArg, 0 }, - { "-mode", ".mode", XrmoptionSepArg, 0 }, - { "-iterations", ".iterations", XrmoptionSepArg, 0 }, - { "-cycle", ".cycle", XrmoptionNoArg, "True" }, - { "-no-cycle", ".cycle", XrmoptionNoArg, "False" } -}; -int options_size = (sizeof (options) / sizeof (options[0])); - - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - disp = dpy; - wind = window; - while (1) - { - initwin (dpy, window); - drawmap (); - if (timeout) - { - if (cycle_p) - cycle (dpy); - else - sleep (timeout); - } - } -} diff --git a/hacks/lmorph.c b/hacks/lmorph.c deleted file mode 100644 index 9672f962..00000000 --- a/hacks/lmorph.c +++ /dev/null @@ -1,501 +0,0 @@ - -/************************************************************************** - * - * FILE lmorph.c - * MODULE OF xscreensaver - * - * DESCRIPTION Bilinear interpolation for morphing line shapes. - * - * WRITTEN BY Sverre H. Huseby Glenn T. Lines - * Maridalsvn. 122, leil 101 Frysjavn. 3, 5. etg. - * N-0461 Oslo N-0883 Oslo - * Norway Norway - * - * Phone: +47 22 71 99 08 Phone: +47 22 23 71 99 - * E-mail: sverrehu@ifi.uio.no E-mail: gtl@si.sintef.no - * - * The original idea, and the bilinear interpolation - * mathematics used, emerged in the head of the wise - * Glenn Terje Lines. - * - * MODIFICATIONS march 1995 - * * Converted from an MS-Windows program to X Window. - * - **************************************************************************/ - -#include -#include -#include -#include -#include "screenhack.h" - -/************************************************************************** - * * - * P R I V A T E D A T A * - * * - **************************************************************************/ - -/* Define MARGINS to make some space around the figure */ -#define MARGINS /**/ - -#define MAXFIGS 20 -#define TWO_PI (2.0 * M_PI) -#define RND(x) (random() % (x)) -static int - cFig = 0, /* Number of figure arrays. */ - cPoint, /* Number of points in each array. */ - nWork, /* Current work array number. */ - nFrom, /* Current from array number. */ - nTo; /* Current to array number. */ -static long - delay; /* usecs to wait between updates. */ -static XPoint - *aWork[2], /* Working arrays. */ - *a[MAXFIGS], /* The figure arrays. */ - *aTmp, /* Used as source when interrupting morph */ - *aPrev, /* Previous points displayed. */ - *aCurr, /* The current points displayed. */ - *aFrom, /* Figure converting from. */ - *aTo; /* Figure converting to. */ -static double - gam, - maxGamma = 1.0, - delta_gam; -static GC - gcDraw, gcClear; -static Display - *dpy; -static Window - window; - - - -/************************************************************************** - * * - * P U B L I C D A T A * - * * - **************************************************************************/ - -char *progclass = "LMorph"; - -char *defaults [] = { - "LMorph.background: black", - "LMorph.foreground: green", - "*points: 150", - "*steps: 0", - "*delay: 50000", - 0 -}; - -XrmOptionDescRec options [] = { - { "-points", ".points", XrmoptionSepArg, 0 }, - { "-steps", ".steps", XrmoptionSepArg, 0 }, - { "-delay", ".delay", XrmoptionSepArg, 0 }, -}; -int options_size = (sizeof (options) / sizeof (options[0])); - - - -/************************************************************************** - * * - * P R I V A T E F U N C T I O N S * - * * - **************************************************************************/ - -static void *xmalloc(size) - size_t size; -{ - void *ret; - - if ((ret = malloc(size)) == NULL) { - fprintf(stderr, "lmorph: out of memory\n"); - exit(1); - } - return ret; -} - - - -static double frnd() -{ - /* - * Hm. for some reason the second line (using RAND_MAX) didn't - * work on some machines, so I always use the first. - */ -#undef RAND_MAX -#ifndef RAND_MAX - return (double) (random() & 0x7FFF) / 0x7FFF; -#else - return ((double) random()) / RAND_MAX; -#endif -} - - - -static void initPointArrays() -{ - XWindowAttributes wa; - int q, w, - mx, my, /* Max screen coordinates. */ - mp, /* Max point number. */ - s, rx, ry, - marginx, marginy; - double scalex, scaley; - - XGetWindowAttributes(dpy, window, &wa); - mx = wa.width - 1; - my = wa.height - 1; - mp = cPoint - 1; - - aWork[0] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - aWork[1] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - aTmp = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - - - /* - * Figure 0 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - s = cPoint / 4; - for (q = 0; q < s; q++) { - a[cFig][q].x = ((double) q / s) * mx; - a[cFig][q].y = 0; - a[cFig][s + q].x = mx; - a[cFig][s + q].y = ((double) q / s) * my; - a[cFig][2 * s + q].x = mx - ((double) q / s) * mx; - a[cFig][2 * s + q].y = my; - a[cFig][3 * s + q].x = 0; - a[cFig][3 * s + q].y = my - ((double) q / s) * my; - } - for (q = 4 * s; q < cPoint; q++) - a[cFig][q].x = a[cFig][q].y = 0; - a[cFig][mp].x = a[cFig][0].x; - a[cFig][mp].y = a[cFig][0].y; - ++cFig; - - /* - * Figure 1 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - for (q = 0; q < cPoint; q++) { - a[cFig][q].x = ((double) q / cPoint) * mx; - a[cFig][q].y = (1.0 - sin(((double) q / mp) * TWO_PI)) * my / 2.0; - } - ++cFig; - - /* - * Figure 2 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - rx = mx / 2; - ry = my / 2; - for (q = 0; q < cPoint; q++) { - a[cFig][q].x = mx / 2 + rx * sin(1 * TWO_PI * (double) q / mp); - a[cFig][q].y = my / 2 + ry * cos(3 * TWO_PI * (double) q / mp); - } - a[cFig][mp].x = a[cFig][0].x; - a[cFig][mp].y = a[cFig][0].y; - ++cFig; - - /* - * Figure 3 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - rx = mx / 2; - ry = my / 2; - for (q = 0; q < cPoint; q++) { - a[cFig][q].x = mx / 2 + ry * sin(3 * TWO_PI * (double) q / mp); - a[cFig][q].y = my / 2 + ry * cos(1 * TWO_PI * (double) q / mp); - } - a[cFig][mp].x = a[cFig][0].x; - a[cFig][mp].y = a[cFig][0].y; - ++cFig; - - /* - * Figure 4 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - rx = mx / 2; - ry = my / 2; - for (q = 0; q < cPoint; q++) { - a[cFig][q].x = mx / 2 + ry * (1 - 0.1 * frnd()) - * sin(TWO_PI * (double) q / mp); - a[cFig][q].y = my / 2 + ry * (1 - 0.1 * frnd()) - * cos(TWO_PI * (double) q / mp); - } - a[cFig][mp].x = a[cFig][0].x; - a[cFig][mp].y = a[cFig][0].y; - ++cFig; - - /* - * Figure 5 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - rx = mx / 2; - ry = my / 2; - for (q = 0; q < cPoint; q++) { - a[cFig][q].x = mx / 2 + ry * (0.8 - 0.2 * sin(30 * TWO_PI * q / mp)) - * sin(TWO_PI * (double) q / mp); - a[cFig][q].y = my / 2 + ry * (0.8 - 0.2 * sin(30 * TWO_PI * q / mp)) - * cos(TWO_PI * (double) q / mp); - } - a[cFig][mp].x = a[cFig][0].x; - a[cFig][mp].y = a[cFig][0].y; - ++cFig; - - /* - * Figure 6 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - rx = mx / 2; - ry = my / 2; - for (q = 0; q < cPoint; q++) { - a[cFig][q].x = mx / 2 + ry * sin(TWO_PI * (double) q / mp); - a[cFig][q].y = my / 2 + ry * cos(TWO_PI * (double) q / mp); - } - a[cFig][mp].x = a[cFig][0].x; - a[cFig][mp].y = a[cFig][0].y; - ++cFig; - - /* - * Figure 7 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - rx = mx / 2; - ry = my / 2; - for (q = 0; q < cPoint; q++) { - a[cFig][q].x = mx / 2 + rx * cos(TWO_PI * (double) q / mp); - a[cFig][q].y = my / 2 + ry * sin(TWO_PI * (double) q / mp); - } - a[cFig][mp].x = a[cFig][0].x; - a[cFig][mp].y = a[cFig][0].y; - ++cFig; - - /* - * Figure 8 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - for (q = 0; q < cPoint; q++) { - a[cFig][q].x = ((double) q / mp) * mx; - a[cFig][q].y = (1.0 - cos(((double) q / mp) * 3 * TWO_PI)) * my / 2.0; - } - ++cFig; - - /* - * Figure 9 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - rx = mx / 2; - ry = my / 2; - for (q = 0; q < cPoint; q++) { - a[cFig][q].x = mx / 2 + rx * sin(2 * TWO_PI * (double) q / mp); - a[cFig][q].y = my / 2 + ry * cos(3 * TWO_PI * (double) q / mp); - } - a[cFig][mp].x = a[cFig][0].x; - a[cFig][mp].y = a[cFig][0].y; - ++cFig; - - /* - * Figure 10 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - rx = mx / 2; - ry = my / 2; - for (q = 0; q < cPoint; q++) { - a[cFig][q].x = mx / 2 + ry * sin(5 * TWO_PI * (double) q / mp) - * ((double) q / mp); - a[cFig][q].y = my / 2 + ry * cos(5 * TWO_PI * (double) q / mp) - * ((double) q / mp); - } - ++cFig; - - /* - * Figure 11 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - rx = mx / 2; - ry = my / 2; - for (q = 0; q < cPoint; q++) { - a[cFig][q].x = mx / 2 + ry * sin(6 * TWO_PI * (double) q / mp) - * ((double) q / mp); - a[cFig][q].y = my / 2 - ry * cos(6 * TWO_PI * (double) q / mp) - * ((double) q / mp); - } - ++cFig; - - /* - * Figure 12 - */ - a[cFig] = (XPoint *) xmalloc(cPoint * sizeof(XPoint)); - for (q = 0; q < cPoint; q++) { - a[cFig][q].x = ((double) q / mp) * mx; - a[cFig][q].y = (1.0 - sin(((double) q / mp) * 5 * TWO_PI)) * my / 2.0; - } - ++cFig; - -#ifdef MARGINS - /* - * Make some space around the figures. - */ - marginx = (mx + 1) / 10; - marginy = (my + 1) / 10; - scalex = (double) ((mx + 1) - 2.0 * marginx) / (mx + 1.0); - scaley = (double) ((my + 1) - 2.0 * marginy) / (my + 1.0); - for (q = 0; q < cFig; q++) - for (w = 0; w < cPoint; w++) { - a[q][w].x = marginx + a[q][w].x * scalex; - a[q][w].y = marginy + a[q][w].y * scaley; - } -#endif -} - - - -static void createPoints() -{ - int q; - XPoint *pa = aCurr, *pa1 = aFrom, *pa2 = aTo; - long lg, l1g; - - - lg = 8192L * gam, l1g = 8192L * (1.0 - gam); - for (q = 0; q < cPoint; q++) { - pa->x = (short) ((l1g * pa1->x + lg * pa2->x) / 8192L); - pa->y = (short) ((l1g * pa1->y + lg * pa2->y) / 8192L); - ++pa; - ++pa1; - ++pa2; - } -} - - -static void drawImage() -{ - register int q; - XPoint *old0, *old1, *new0, *new1; - - /* - * Problem: update the window without too much flickering. I do - * this by handling each linesegment separately. First remove a - * line, then draw the new line. The problem is that this leaves - * small black pixels on the figure. To fix this, I draw the - * entire figure using XDrawLines() afterwards. - */ - if (aPrev) { - old0 = aPrev; - old1 = aPrev + 1; - new0 = aCurr; - new1 = aCurr + 1; - for (q = cPoint - 1; q; q--) { - XDrawLine(dpy, window, gcClear, - old0->x, old0->y, old1->x, old1->y); - XDrawLine(dpy, window, gcDraw, - new0->x, new0->y, new1->x, new1->y); - ++old0; - ++old1; - ++new0; - ++new1; - } - } - XDrawLines(dpy, window, gcDraw, aCurr, cPoint, CoordModeOrigin); - XFlush(dpy); -} - -static void initLMorph() -{ - int steps; - XGCValues gcv; - XWindowAttributes wa; - Colormap cmap; - - cPoint = get_integer_resource("points", "Integer"); - steps = get_integer_resource("steps", "Integer"); - delay = get_integer_resource("delay", "Integer"); - - if (steps <= 0) - steps = (random() % 400) + 100; - - delta_gam = 1.0 / steps; - XGetWindowAttributes(dpy, window, &wa); - cmap = wa.colormap; - gcv.foreground = get_pixel_resource("foreground", "Foreground", dpy, cmap); - gcDraw = XCreateGC(dpy, window, GCForeground, &gcv); - XSetForeground(dpy, gcDraw, gcv.foreground); - gcv.foreground = get_pixel_resource("background", "Background", dpy, cmap); - gcClear = XCreateGC(dpy, window, GCForeground, &gcv); - XClearWindow(dpy, window); - - srandom(time(NULL)); - initPointArrays(); - aCurr = aWork[nWork = 0]; - aPrev = NULL; - gam = 2.0; - nTo = RND(cFig); -} - -static void animateLMorph() -{ - if (gam > maxGamma) { - gam = 0.0; - if (maxGamma == 1.0) { - nFrom = nTo; - aFrom = a[nFrom]; - } else { - memcpy(aTmp, aCurr, cPoint * sizeof(XPoint)); - aFrom = aTmp; - nFrom = -1; - } - do { - nTo = RND(cFig); - } while (nTo == nFrom); - aTo = a[nTo]; - if (RND(2)) { - /* - * Reverse the array to get more variation. - */ - int i1, i2; - XPoint p; - - for (i1 = 0, i2 = cPoint - 1; i1 < cPoint / 2; i1++, i2--) { - p = aTo[i1]; - aTo[i1] = aTo[i2]; - aTo[i2] = p; - } - } - /* - * It may be nice to interrupt the next run. - */ - if (RND(3) > 0) - maxGamma = 0.1 + 0.7 * (RND(1001) / 1000.0); - else - maxGamma = 1.0; - } - - createPoints(); - drawImage(); - aPrev = aCurr; - aCurr = aWork[nWork ^= 1]; - - gam += delta_gam; -} - - - -/************************************************************************** - * * - * P U B L I C F U N C T I O N S * - * * - **************************************************************************/ - -void screenhack(disp, win) - Display *disp; - Window win; -{ - dpy = disp; - window = win; - initLMorph(); - for (;;) { - animateLMorph(); - screenhack_usleep(delay); - } -} diff --git a/hacks/maze.c b/hacks/maze.c deleted file mode 100644 index 6d73796e..00000000 --- a/hacks/maze.c +++ /dev/null @@ -1,792 +0,0 @@ -/****************************************************************************** - * [ maze ] ... - * - * modified: [ 8-11-95 ] Ed James - * added fill of dead-end box to solve_maze while loop. - * modified: [ 3-7-93 ] Jamie Zawinski - * added the XRoger logo, cleaned up resources, made - * grid size a parameter. - * modified: [ 3-3-93 ] Jim Randell - * Added the colour stuff and integrated it with jwz's - * screenhack stuff. There's still some work that could - * be done on this, particularly allowing a resource to - * specify how big the squares are. - * modified: [ 10-4-88 ] Richard Hess ...!uunet!cimshop!rhess - * [ Revised primary execution loop within main()... - * [ Extended X event handler, check_events()... - * modified: [ 1-29-88 ] Dave Lemke lemke@sun.com - * [ Hacked for X11... - * [ Note the word "hacked" -- this is extremely ugly, but at - * [ least it does the job. NOT a good programming example - * [ for X. - * original: [ 6/21/85 ] Martin Weiss Sun Microsystems [ SunView ] - * - ****************************************************************************** - Copyright 1988 by Sun Microsystems, Inc. Mountain View, CA. - - All Rights Reserved - - Permission to use, copy, modify, and distribute this software and its - documentation for any purpose and without fee is hereby granted, - provided that the above copyright notice appear in all copies and that - both that copyright notice and this permission notice appear in - supporting documentation, and that the names of Sun or MIT not be - used in advertising or publicity pertaining to distribution of the - software without specific prior written permission. Sun and M.I.T. - make no representations about the suitability of this software for - any purpose. It is provided "as is" without any express or implied warranty. - - SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. IN NO EVENT SHALL SUN BE LIABLE FOR ANY SPECIAL, INDIRECT - OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS - OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE - OR PERFORMANCE OF THIS SOFTWARE. - *****************************************************************************/ - -#include "screenhack.h" - -#define XROGER - -static int solve_delay, pre_solve_delay, post_solve_delay; - -#include -#include -#include -#include - -#define MAX_MAZE_SIZE_X 500 -#define MAX_MAZE_SIZE_Y 500 - -#define MOVE_LIST_SIZE (MAX_MAZE_SIZE_X * MAX_MAZE_SIZE_Y) - -#define WALL_TOP 0x8000 -#define WALL_RIGHT 0x4000 -#define WALL_BOTTOM 0x2000 -#define WALL_LEFT 0x1000 - -#define DOOR_IN_TOP 0x800 -#define DOOR_IN_RIGHT 0x400 -#define DOOR_IN_BOTTOM 0x200 -#define DOOR_IN_LEFT 0x100 -#define DOOR_IN_ANY 0xF00 - -#define DOOR_OUT_TOP 0x80 -#define DOOR_OUT_RIGHT 0x40 -#define DOOR_OUT_BOTTOM 0x20 -#define DOOR_OUT_LEFT 0x10 - -#define START_SQUARE 0x2 -#define END_SQUARE 0x1 - -#define border_x (0) -#define border_y (0) - -#define get_random(x) (random() % (x)) - -static int logo_x, logo_y; - -#ifdef XROGER -# define logo_width 128 -# define logo_height 128 -#else -# include -# define logo_width xlogo64_width -# define logo_height xlogo64_height -# define logo_bits xlogo64_bits -#endif - -static unsigned short maze[MAX_MAZE_SIZE_X][MAX_MAZE_SIZE_Y]; - -static struct { - unsigned char x; - unsigned char y; - unsigned char dir; -} move_list[MOVE_LIST_SIZE], save_path[MOVE_LIST_SIZE], path[MOVE_LIST_SIZE]; - -static int maze_size_x, maze_size_y; -static int sqnum, cur_sq_x, cur_sq_y, path_length; -static int start_x, start_y, start_dir, end_x, end_y, end_dir; -static int grid_width, grid_height; - -static Display *dpy; -static Window win; -static GC gc, cgc, tgc, logo_gc; -static Pixmap logo_map; - -static int x = 0, y = 0, restart = 0, stop = 1, state = 1; - -static int -check_events() /* X event handler [ rhess ] */ -{ - XEvent e; - - if (XPending(dpy)) { - XNextEvent(dpy, &e); - switch (e.type) { - - case ButtonPress: - switch (e.xbutton.button) { - case 3: - exit (0); - break; - case 2: - stop = !stop ; - if (state == 5) state = 4 ; - else { - restart = 1; - stop = 0; - } - break; - default: - restart = 1 ; - stop = 0 ; - break; - } - break; - - case ConfigureNotify: - restart = 1; - break; - case UnmapNotify: - stop = 1; - XClearWindow (dpy, win); - XSync (dpy, False); - break; - case Expose: - restart = 1; - break; - } - return(1); - } - return(0); -} - - -static void -set_maze_sizes (width, height) - int width, height; -{ - maze_size_x = width / grid_width; - maze_size_y = height / grid_height; -} - - -static void -initialize_maze() /* draw the surrounding wall and start/end squares */ -{ - register int i, j, wall; - - /* initialize all squares */ - for ( i=0; i> wall ); - maze[i][j] &= ~( WALL_TOP >> wall ); - cur_sq_x = i; - cur_sq_y = j; - start_x = i; - start_y = j; - start_dir = wall; - sqnum = 0; - - /* set end square */ - wall = (wall + 2)%4; - switch (wall) { - case 0: - i = get_random(maze_size_x); - j = 0; - break; - case 1: - i = maze_size_x - 1; - j = get_random(maze_size_y); - break; - case 2: - i = get_random(maze_size_x); - j = maze_size_y - 1; - break; - case 3: - i = 0; - j = get_random(maze_size_y); - break; - } - maze[i][j] |= END_SQUARE; - maze[i][j] |= ( DOOR_OUT_TOP >> wall ); - maze[i][j] &= ~( WALL_TOP >> wall ); - end_x = i; - end_y = j; - end_dir = wall; - - /* set logo */ - if ((maze_size_x > 15) && (maze_size_y > 15)) - { - int logow = 1 + logo_width / grid_width; - int logoh = 1 + logo_height / grid_height; - /* not closer than 3 grid units from a wall */ - logo_x = get_random (maze_size_x - logow - 6) + 3; - logo_y = get_random (maze_size_y - logoh - 6) + 3; - for (i=0; i> newdoor ); - - switch (newdoor) { - case 0: cur_sq_y--; - break; - case 1: cur_sq_x++; - break; - case 2: cur_sq_y++; - break; - case 3: cur_sq_x--; - break; - } - sqnum++; - - /* mark the in door */ - maze[cur_sq_x][cur_sq_y] |= ( DOOR_IN_TOP >> ((newdoor+2)%4) ); - - /* if end square set path length and save path */ - if ( maze[cur_sq_x][cur_sq_y] & END_SQUARE ) { - path_length = sqnum; - for ( i=0; i> start_dir); - maze[end_x][end_y] |= (WALL_TOP >> end_dir); - - /* initialize search path */ - i = 0; - path[i].x = end_x; - path[i].y = end_y; - path[i].dir = -1; - - /* do it */ - while (1) { - if ( ++path[i].dir >= 4 ) { - XFillRectangle(dpy, win, cgc, - border_x + bw + grid_width * (int)(path[i].x), - border_y + bw + grid_height * (int)(path[i].y), - grid_width - (bw+bw), grid_height - (bw+bw)); - i--; - draw_solid_square( (int)(path[i].x), (int)(path[i].y), - (int)(path[i].dir), cgc); - } - else if ( ! (maze[path[i].x][path[i].y] & - (WALL_TOP >> path[i].dir)) && - ( (i == 0) || ( (path[i].dir != - (int)(path[i-1].dir+2)%4) ) ) ) { - enter_square(i); - i++; - if ( maze[path[i].x][path[i].y] & START_SQUARE ) { - return; - } - } - if (check_events()) return; - /* Abort solve on expose - cheapo repaint strategy */ - if (solve_delay) usleep (solve_delay); - } -} - - -static void -enter_square(n) /* move into a neighboring square */ - int n; -{ - draw_solid_square( (int)path[n].x, (int)path[n].y, - (int)path[n].dir, tgc); - - path[n+1].dir = -1; - switch (path[n].dir) { - case 0: path[n+1].x = path[n].x; - path[n+1].y = path[n].y - 1; - break; - case 1: path[n+1].x = path[n].x + 1; - path[n+1].y = path[n].y; - break; - case 2: path[n+1].x = path[n].x; - path[n+1].y = path[n].y + 1; - break; - case 3: path[n+1].x = path[n].x - 1; - path[n+1].y = path[n].y; - break; - } -} - -/* ---- */ - - -/* - * jmr additions for Jamie Zawinski's screensaver stuff, - * note that the code above this has probably been hacked about in some - * arbitrary way. - */ - -char *progclass = "Maze"; - -char *defaults[] = { - "Maze.background: black", /* to placate SGI */ - "Maze.foreground: white", /* to placate SGI */ - "*gridSize: 0", - "*solveDelay: 5000", - "*preDelay: 2000000", - "*postDelay: 4000000", - "*liveColor: green", - "*deadColor: red", -#ifdef XROGER - "*logoColor: red3", -#endif - 0 -}; - -XrmOptionDescRec options[] = { - { "-grid-size", ".gridSize", XrmoptionSepArg, 0 }, - { "-solve-delay", ".solveDelay", XrmoptionSepArg, 0 }, - { "-pre-delay", ".preDelay", XrmoptionSepArg, 0 }, - { "-post-delay", ".postDelay", XrmoptionSepArg, 0 }, - { "-live-color", ".liveColor", XrmoptionSepArg, 0 }, - { "-dead-color", ".deadColor", XrmoptionSepArg, 0 } -}; - -int options_size = (sizeof(options)/sizeof(options[0])); - -void screenhack(display,window) - Display *display; - Window window; -{ - Pixmap gray; - int size, root; - XWindowAttributes xgwa; - unsigned long bg, fg, pfg, pbg, lfg; - - size = get_integer_resource ("gridSize", "Dimension"); - root = get_boolean_resource("root", "Boolean"); - solve_delay = get_integer_resource ("solveDelay", "Integer"); - pre_solve_delay = get_integer_resource ("preDelay", "Integer"); - post_solve_delay = get_integer_resource ("postDelay", "Integer"); - - if (size < 2) size = 7 + (random () % 30); - grid_width = grid_height = size; - bw = (size > 6 ? 3 : (size-1)/2); - - dpy = display; win = window; /* the maze stuff uses global variables */ - - XGetWindowAttributes (dpy, win, &xgwa); - - x = 0; - y = 0; - - set_maze_sizes (xgwa.width, xgwa.height); - - if (! root) - XSelectInput (dpy, win, ExposureMask|ButtonPressMask|StructureNotifyMask); - - gc = XCreateGC(dpy, win, 0, 0); - cgc = XCreateGC(dpy, win, 0, 0); - tgc = XCreateGC(dpy,win,0,0); - logo_gc = XCreateGC(dpy, win, 0, 0); - - gray = XCreateBitmapFromData (dpy,win,gray1_bits,gray1_width,gray1_height); - - bg = get_pixel_resource ("background","Background", dpy, xgwa.colormap); - fg = get_pixel_resource ("foreground","Foreground", dpy, xgwa.colormap); - lfg = get_pixel_resource ("logoColor", "Foreground", dpy, xgwa.colormap); - pfg = get_pixel_resource ("liveColor", "Foreground", dpy, xgwa.colormap); - pbg = get_pixel_resource ("deadColor", "Foreground", dpy, xgwa.colormap); - if (mono_p) lfg = pfg = fg; - - if (lfg == bg) - lfg = ((bg == WhitePixel (dpy, DefaultScreen (dpy))) - ? BlackPixel (dpy, DefaultScreen (dpy)) - : WhitePixel (dpy, DefaultScreen (dpy))); - - XSetForeground (dpy, gc, fg); - XSetBackground (dpy, gc, bg); - XSetForeground (dpy, cgc, pbg); - XSetBackground (dpy, cgc, bg); - XSetForeground (dpy, tgc, pfg); - XSetBackground (dpy, tgc, bg); - XSetForeground (dpy, logo_gc, lfg); - XSetBackground (dpy, logo_gc, bg); - - XSetStipple (dpy, cgc, gray); - XSetFillStyle (dpy, cgc, FillOpaqueStippled); - -#ifdef XROGER - { - int w, h; - XGCValues gcv; - GC draw_gc, erase_gc; - extern void skull (); - /* round up to grid size */ - w = ((logo_width / grid_width) + 1) * grid_width; - h = ((logo_height / grid_height) + 1) * grid_height; - logo_map = XCreatePixmap (dpy, win, w, h, 1); - gcv.foreground = 1L; - draw_gc = XCreateGC (dpy, logo_map, GCForeground, &gcv); - gcv.foreground = 0L; - erase_gc= XCreateGC (dpy, logo_map, GCForeground, &gcv); - XFillRectangle (dpy, logo_map, erase_gc, 0, 0, w, h); - skull (dpy, logo_map, draw_gc, erase_gc, 5, 0, w-10, h-10); - XFreeGC (dpy, draw_gc); - XFreeGC (dpy, erase_gc); - } -#else - if (!(logo_map = XCreateBitmapFromData (dpy, win, logo_bits, - logo_width, logo_height))) - { - fprintf (stderr, "Can't create logo pixmap\n"); - exit (1); - } -#endif - XMapRaised(dpy, win); - srandom(getpid()); - - restart = root; - - while (1) { /* primary execution loop [ rhess ] */ - if (check_events()) continue ; - if (restart || stop) goto pop; - switch (state) { - case 1: - initialize_maze(); - break; - case 2: - XClearWindow(dpy, win); - draw_maze_border(); - break; - case 3: - create_maze(); - break; - case 4: - XSync (dpy, False); - usleep (pre_solve_delay); - break; - case 5: - solve_maze(); - break; - case 6: - XSync (dpy, False); - usleep (post_solve_delay); - state = 0 ; - break; - default: - abort (); - } - ++state; - pop: - if (restart) - { - static XWindowAttributes wattr; - restart = 0; - stop = 0; - state = 1; - XGetWindowAttributes (dpy, win, &wattr); - set_maze_sizes (wattr.width, wattr.height); - XClearWindow (dpy, win); - XSync (dpy, False); - } - } -} diff --git a/hacks/noseguy.c b/hacks/noseguy.c deleted file mode 100644 index 713ee238..00000000 --- a/hacks/noseguy.c +++ /dev/null @@ -1,654 +0,0 @@ -/* xscreensaver, Copyright (c) 1992 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* Make a little guy with a big nose and a hat wanter around the screen, - spewing out messages. Derived from xnlock by Dan Heller . - */ - -#include "screenhack.h" -#include - -#if __STDC__ -extern FILE *popen (const char *, const char *); -extern int pclose (FILE *); -#endif - -#define Pixel unsigned long - -#define font_height(font) (font->ascent + font->descent) -#define FONT_NAME "-*-times-*-*-*-*-18-*-*-*-*-*-*-*" - -static Display *dpy; -static Window window; -static int Width, Height; -static GC fg_gc, bg_gc, text_fg_gc, text_bg_gc; -static char *words, *get_words(); -static int x, y; -static XFontStruct *font; -static char *def_words = "I'm out running around."; -static void init_images(), walk(), talk(); -static int think(); -static unsigned long interval, look(); -static Pixmap left0, left1, right0, right1; -static Pixmap left_front, right_front, front, down; - -static char *program, *orig_program, *filename, *text; - -#define FROM_ARGV 1 -#define FROM_PROGRAM 2 -#define FROM_FILE 3 -#define FROM_RESRC 4 -static int getwordsfrom; - -#define IS_MOVING 1 -#define GET_PASSWD 2 -static int state; /* indicates states: walking or getting passwd */ - -static void (*next_fn) (); - -#include "noses/nose.0.left" -#include "noses/nose.1.left" -#include "noses/nose.0.right" -#include "noses/nose.1.right" -#include "noses/nose.left.front" -#include "noses/nose.right.front" -#include "noses/nose.front" -#include "noses/nose.down" - -static void -init_images () -{ - static Pixmap *images[] = { - &left0, &left1, &right0, &right1, - &left_front, &right_front, &front, &down - }; - static unsigned char *bits[] = { - nose_0_left_bits, nose_1_left_bits, nose_0_right_bits, - nose_1_right_bits, nose_left_front_bits, nose_right_front_bits, - nose_front_bits, nose_down_bits - }; - int i; - - for (i = 0; i < sizeof (images) / sizeof (images[0]); i++) - if (!(*images[i] = - XCreatePixmapFromBitmapData(dpy, window, - (char *) bits[i], 64, 64, 1, 0, 1))) - { - fprintf (stderr, "%s: Can't load nose images", progname); - exit (1); - } -} - -#define LEFT 001 -#define RIGHT 002 -#define DOWN 004 -#define UP 010 -#define FRONT 020 -#define X_INCR 3 -#define Y_INCR 2 - -static void -move() -{ - static int length, - dir; - - if (!length) - { - register int tries = 0; - dir = 0; - if ((random() & 1) && think()) - { - talk(0); /* sets timeout to itself */ - return; - } - if (!(random() % 3) && (interval = look())) - { - next_fn = move; - return; - } - interval = 20 + random() % 100; - do - { - if (!tries) - length = Width / 100 + random() % 90, tries = 8; - else - tries--; - switch (random() % 8) - { - case 0: - if (x - X_INCR * length >= 5) - dir = LEFT; - break; - case 1: - if (x + X_INCR * length <= Width - 70) - dir = RIGHT; - break; - case 2: - if (y - (Y_INCR * length) >= 5) - dir = UP, interval = 40; - break; - case 3: - if (y + Y_INCR * length <= Height - 70) - dir = DOWN, interval = 20; - break; - case 4: - if (x - X_INCR * length >= 5 && y - (Y_INCR * length) >= 5) - dir = (LEFT | UP); - break; - case 5: - if (x + X_INCR * length <= Width - 70 && - y - Y_INCR * length >= 5) - dir = (RIGHT | UP); - break; - case 6: - if (x - X_INCR * length >= 5 && - y + Y_INCR * length <= Height - 70) - dir = (LEFT | DOWN); - break; - case 7: - if (x + X_INCR * length <= Width - 70 && - y + Y_INCR * length <= Height - 70) - dir = (RIGHT | DOWN); - break; - default: - /* No Defaults */ - break; - } - } while (!dir); - } - walk(dir); - --length; - next_fn = move; -} - -static void -walk(dir) - register int dir; -{ - register int incr = 0; - static int lastdir; - static int up = 1; - static Pixmap frame; - - if (dir & (LEFT | RIGHT)) - { /* left/right movement (mabye up/down too) */ - up = -up; /* bouncing effect (even if hit a wall) */ - if (dir & LEFT) - { - incr = X_INCR; - frame = (up < 0) ? left0 : left1; - } - else - { - incr = -X_INCR; - frame = (up < 0) ? right0 : right1; - } - if ((lastdir == FRONT || lastdir == DOWN) && dir & UP) - { - - /* - * workaround silly bug that leaves screen dust when guy is - * facing forward or down and moves up-left/right. - */ - XCopyPlane(dpy, frame, window, fg_gc, 0, 0, 64, 64, x, y, 1L); - XFlush(dpy); - } - /* note that maybe neither UP nor DOWN is set! */ - if (dir & UP && y > Y_INCR) - y -= Y_INCR; - else if (dir & DOWN && y < Height - 64) - y += Y_INCR; - } - /* Explicit up/down movement only (no left/right) */ - else if (dir == UP) - XCopyPlane(dpy, front, window, fg_gc, - 0, 0, 64, 64, x, y -= Y_INCR, 1L); - else if (dir == DOWN) - XCopyPlane(dpy, down, window, fg_gc, - 0, 0, 64, 64, x, y += Y_INCR, 1L); - else if (dir == FRONT && frame != front) - { - if (up > 0) - up = -up; - if (lastdir & LEFT) - frame = left_front; - else if (lastdir & RIGHT) - frame = right_front; - else - frame = front; - XCopyPlane(dpy, frame, window, fg_gc, 0, 0, 64, 64, x, y, 1L); - } - if (dir & LEFT) - while (--incr >= 0) - { - XCopyPlane(dpy, frame, window, fg_gc, - 0, 0, 64, 64, --x, y + up, 1L); - XFlush(dpy); - } - else if (dir & RIGHT) - while (++incr <= 0) - { - XCopyPlane(dpy, frame, window, fg_gc, - 0, 0, 64, 64, ++x, y + up, 1L); - XFlush(dpy); - } - lastdir = dir; -} - -static int -think() -{ - if (random() & 1) - walk(FRONT); - if (random() & 1) - { - if (getwordsfrom == FROM_PROGRAM) - words = get_words(0, (char **) 0); - return 1; - } - return 0; -} - -#define MAXLINES 40 - -static void -talk(force_erase) - int force_erase; -{ - int width = 0, - height, - Z, - total = 0; - static int X, - Y, - talking; - static struct - { - int x, - y, - width, - height; - } s_rect; - register char *p, - *p2; - char buf[BUFSIZ], - args[MAXLINES][256]; - - /* clear what we've written */ - if (talking || force_erase) - { - if (!talking) - return; - XFillRectangle(dpy, window, bg_gc, s_rect.x - 5, s_rect.y - 5, - s_rect.width + 10, s_rect.height + 10); - talking = 0; - if (!force_erase) - next_fn = move; - interval = 0; - { - /* might as well check the window for size changes now... */ - XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); - Width = xgwa.width + 2; - Height = xgwa.height + 2; - } - return; - } - talking = 1; - walk(FRONT); - p = strcpy(buf, words); - - if (!(p2 = index(p, '\n')) || !p2[1]) - { - total = strlen (words); - strcpy (args[0], words); - width = XTextWidth(font, words, total); - height = 0; - } - else - /* p2 now points to the first '\n' */ - for (height = 0; p; height++) - { - int w; - *p2 = 0; - if ((w = XTextWidth(font, p, p2 - p)) > width) - width = w; - total += p2 - p; /* total chars; count to determine reading - * time */ - (void) strcpy(args[height], p); - if (height == MAXLINES - 1) - { - puts("Message too long!"); - break; - } - p = p2 + 1; - if (!(p2 = index(p, '\n'))) - break; - } - height++; - - /* - * Figure out the height and width in pixels (height, width) extend the - * new box by 15 pixels on the sides (30 total) top and bottom. - */ - s_rect.width = width + 30; - s_rect.height = height * font_height(font) + 30; - if (x - s_rect.width - 10 < 5) - s_rect.x = 5; - else if ((s_rect.x = x + 32 - (s_rect.width + 15) / 2) - + s_rect.width + 15 > Width - 5) - s_rect.x = Width - 15 - s_rect.width; - if (y - s_rect.height - 10 < 5) - s_rect.y = y + 64 + 5; - else - s_rect.y = y - 5 - s_rect.height; - - XFillRectangle(dpy, window, text_bg_gc, - s_rect.x, s_rect.y, s_rect.width, s_rect.height); - - /* make a box that's 5 pixels thick. Then add a thin box inside it */ - XSetLineAttributes(dpy, text_fg_gc, 5, 0, 0, 0); - XDrawRectangle(dpy, window, text_fg_gc, - s_rect.x, s_rect.y, s_rect.width - 1, s_rect.height - 1); - XSetLineAttributes(dpy, text_fg_gc, 0, 0, 0, 0); - XDrawRectangle(dpy, window, text_fg_gc, - s_rect.x + 7, s_rect.y + 7, s_rect.width - 15, s_rect.height - 15); - - X = 15; - Y = 15 + font_height(font); - - /* now print each string in reverse order (start at bottom of box) */ - for (Z = 0; Z < height; Z++) - { - XDrawString(dpy, window, text_fg_gc, s_rect.x + X, s_rect.y + Y, - args[Z], strlen(args[Z])); - Y += font_height(font); - } - interval = (total / 15) * 1000; - if (interval < 2000) interval = 2000; - next_fn = talk; -} - -static unsigned long -look() -{ - if (random() % 3) - { - XCopyPlane(dpy, (random() & 1) ? down : front, window, fg_gc, - 0, 0, 64, 64, x, y, 1L); - return 1000L; - } - if (!(random() % 5)) - return 0; - if (random() % 3) - { - XCopyPlane(dpy, (random() & 1) ? left_front : right_front, - window, fg_gc, 0, 0, 64, 64, x, y, 1L); - return 1000L; - } - if (!(random() % 5)) - return 0; - XCopyPlane(dpy, (random() & 1) ? left0 : right0, window, fg_gc, - 0, 0, 64, 64, x, y, 1L); - return 1000L; -} - - -static void -init_words() -{ - char *mode = get_string_resource ("mode", "Mode"); - - program = get_string_resource ("program", "Program"); - filename = get_string_resource ("filename", "Filename"); - text = get_string_resource ("text", "Text"); - - if (program) /* get stderr on stdout, so it shows up on the window */ - { - orig_program = program; - program = (char *) malloc (strlen (program) + 10); - strcpy (program, "( "); - strcat (program, orig_program); - strcat (program, " ) 2>&1"); - } - - if (!mode || !strcmp (mode, "program")) - getwordsfrom = FROM_PROGRAM; - else if (!strcmp (mode, "file")) - getwordsfrom = FROM_FILE; - else if (!strcmp (mode, "string")) - getwordsfrom = FROM_RESRC; - else - { - fprintf (stderr, - "%s: mode must be program, file, or string, not %s\n", - progname, mode); - exit (1); - } - - if (getwordsfrom == FROM_PROGRAM && !program) - { - fprintf (stderr, "%s: no program specified.\n", progname); - exit (1); - } - if (getwordsfrom == FROM_FILE && !filename) - { - fprintf (stderr, "%s: no file specified.\n", progname); - exit (1); - } - - words = get_words(); -} - -static int first_time = 1; - -static char * -get_words() -{ - FILE *pp; - static char buf[BUFSIZ]; - register char *p = buf; - - buf[0] = '\0'; - - switch (getwordsfrom) - { - case FROM_PROGRAM: - if ((pp = popen(program, "r"))) - { - while (fgets(p, sizeof(buf) - strlen(buf), pp)) - { - if (strlen(buf) + 1 < sizeof(buf)) - p = buf + strlen(buf); - else - break; - } - (void) pclose(pp); - if (! buf[0]) - sprintf (buf, "\"%s\" produced no output!", orig_program); - else if (!first_time && - (strstr (buf, ": not found") || - strstr (buf, ": Not found"))) - switch (random () % 20) - { - case 1: strcat (buf, "( Get with the program, bub. )\n"); - break; - case 2: strcat (buf, - "( I blow my nose at you, you silly person! ) \n"); break; - case 3: strcat (buf, - "\nThe resource you want to\nset is `noseguy.program'\n"); - break; - case 4: - strcat(buf,"\nHelp!! Help!!\nAAAAAAGGGGHHH!! \n\n"); break; - case 5: strcpy (buf, "You have new mail.\n"); break; - case 6: - strcat(buf,"( Hello? Are you paying attention? )\n");break; - case 7: - strcat (buf, "sh: what kind of fool do you take me for? \n"); - break; - } - first_time = 0; - p = buf; - } - else - { - perror(program); - p = def_words; - } - break; - case FROM_FILE: - if ((pp = fopen(filename, "r"))) - { - while (fgets(p, sizeof(buf) - strlen(buf), pp)) - { - if (strlen(buf) + 1 < sizeof(buf)) - p = buf + strlen(buf); - else - break; - } - (void) fclose(pp); - if (! buf[0]) - sprintf (buf, "file \"%s\" is empty!", filename); - p = buf; - } - else - { - sprintf (buf, "couldn't read file \"%s\"!", filename); - p = buf; - } - break; - case FROM_RESRC: - p = text; - break; - default: - p = def_words; - break; - } - - if (!p || *p == '\0') - p = def_words; - return p; -} - - - -char *progclass = "Noseguy"; - -char *defaults [] = { - "Noseguy.background: black", /* to placate SGI */ - "Noseguy.foreground: white", - "*mode: program", - "*program: fortune -s", - "noseguy.font: -*-new century schoolbook-*-r-*-*-*-180-*-*-*-*-*-*", - 0 -}; - -XrmOptionDescRec options [] = { - { "-mode", ".mode", XrmoptionSepArg, 0 }, - { "-program", ".program", XrmoptionSepArg, 0 }, - { "-text", ".text", XrmoptionSepArg, 0 }, - { "-filename", ".filename", XrmoptionSepArg, 0 }, - { "-font", ".font", XrmoptionSepArg, 0 }, - { "-text-foreground", ".textForeground", XrmoptionSepArg, 0 }, - { "-text-background", ".textBackground", XrmoptionSepArg, 0 } -}; -int options_size = (sizeof (options) / sizeof (options[0])); - - -static void -noseguy_init (d, w) - Display *d; - Window w; -{ - Pixel fg, bg, text_fg, text_bg; - XWindowAttributes xgwa; - Colormap cmap; - char *fontname = get_string_resource ("font", "Font"); - char **list; - int foo, i; - XGCValues gcvalues; - dpy = d; - window = w; - XGetWindowAttributes (dpy, window, &xgwa); - Width = xgwa.width + 2; - Height = xgwa.height + 2; - cmap = xgwa.colormap; - - init_words(); - init_images(); - - if (!fontname || !(font = XLoadQueryFont(dpy, fontname))) - { - list = XListFonts(dpy, FONT_NAME, 32767, &foo); - for (i = 0; i < foo; i++) - if ((font = XLoadQueryFont(dpy, list[i]))) - break; - if (!font) - { - fprintf (stderr, "%s: Can't find a large font.", progname); - exit (1); - } - XFreeFontNames(list); - } - - fg = get_pixel_resource ("foreground", "Foreground", dpy, cmap); - bg = get_pixel_resource ("background", "Background", dpy, cmap); - text_fg = get_pixel_resource ("textForeground", "Foreground", dpy, cmap); - text_bg = get_pixel_resource ("textBackground", "Background", dpy, cmap); - /* notice when unspecified */ - if (! get_string_resource ("textForeground", "Foreground")) - text_fg = bg; - if (! get_string_resource ("textBackground", "Background")) - text_bg = fg; - - gcvalues.font = font->fid; - gcvalues.graphics_exposures = False; - gcvalues.foreground = fg; - gcvalues.background = bg; - fg_gc = XCreateGC (dpy, window, - GCForeground|GCBackground|GCGraphicsExposures|GCFont, - &gcvalues); - gcvalues.foreground = bg; - gcvalues.background = fg; - bg_gc = XCreateGC (dpy, window, - GCForeground|GCBackground|GCGraphicsExposures|GCFont, - &gcvalues); - gcvalues.foreground = text_fg; - gcvalues.background = text_bg; - text_fg_gc = XCreateGC (dpy, window, - GCForeground|GCBackground|GCGraphicsExposures|GCFont, - &gcvalues); - gcvalues.foreground = text_bg; - gcvalues.background = text_fg; - text_bg_gc = XCreateGC (dpy, window, - GCForeground|GCBackground|GCGraphicsExposures|GCFont, - &gcvalues); - x = Width / 2; - y = Height / 2; - state = IS_MOVING; -} - -void -screenhack (d, w) - Display *d; - Window w; -{ - noseguy_init (d, w); - next_fn = move; - while (1) - { - next_fn (0); - XSync (dpy, True); - usleep (interval * 1000); - } -} - diff --git a/hacks/noses/nose.0.left b/hacks/noses/nose.0.left deleted file mode 100644 index cb3d1528..00000000 --- a/hacks/noses/nose.0.left +++ /dev/null @@ -1,38 +0,0 @@ -#define nose_0_left_width 64 -#define nose_0_left_height 64 -static unsigned char nose_0_left_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x40,0x00, - 0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40, - 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00, - 0x40,0x00,0x00,0x04,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0x3f,0x00,0x00, - 0x08,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x20,0x00, - 0x00,0xf8,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0xf0,0x03,0x00,0x00,0x80,0x00, - 0x00,0x00,0x0e,0x0c,0x00,0x00,0x80,0x01,0x00,0x00,0x03,0x30,0x00,0x00,0x00, - 0x01,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x40,0x00,0xc0,0x00,0x00, - 0x00,0x02,0x00,0x20,0x00,0x80,0x00,0x00,0x00,0x04,0x00,0x10,0x00,0x00,0x00, - 0x00,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x00, - 0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00, - 0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08, - 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00, - 0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10, - 0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x01,0x00,0x00, - 0x18,0x00,0x20,0x00,0x00,0x01,0x00,0x00,0x08,0x00,0x40,0x00,0x80,0x00,0x00, - 0x00,0x08,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x0c,0x00,0x00,0x01,0x20,0x00, - 0x00,0x00,0x04,0x00,0x00,0x06,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0xf8,0x07, - 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0x01,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x0f,0x00,0x00,0x00, - 0x00,0xff,0x00,0x04,0x10,0x00,0x00,0x00,0xc0,0x00,0x03,0x03,0x10,0x00,0x00, - 0x00,0x30,0x00,0x0c,0x01,0x20,0x00,0x00,0x00,0x08,0x00,0x98,0x00,0x20,0x00, - 0x00,0x00,0x0c,0x03,0x60,0x00,0x20,0x00,0x00,0x00,0xc2,0x00,0xc0,0x00,0x20, - 0x00,0x00,0x00,0x42,0x00,0x80,0x00,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x01, - 0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x21,0x00,0x00, - 0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x01,0x00, - 0x00,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x02, - 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x00,0x00, - 0x18,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x10,0x00,0x00, - 0x00,0xc0,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00}; diff --git a/hacks/noses/nose.0.right b/hacks/noses/nose.0.right deleted file mode 100644 index f387baa7..00000000 --- a/hacks/noses/nose.0.right +++ /dev/null @@ -1,38 +0,0 @@ -#define nose_0_right_width 64 -#define nose_0_right_height 64 -static unsigned char nose_0_right_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x20,0x00, - 0x00,0x02,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x20, - 0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x00,0x00,0x00,0x00, - 0x20,0x00,0x00,0x02,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0x1f,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x10,0x00, - 0x00,0xfc,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0xc0,0x0f, - 0x00,0x00,0x80,0x01,0x00,0x00,0x30,0x70,0x00,0x00,0x80,0x00,0x00,0x00,0x0c, - 0xc0,0x00,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x01,0x00,0x40,0x00,0x00,0x00, - 0x03,0x00,0x02,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x20,0x00,0x00, - 0x00,0x00,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00, - 0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08, - 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00, - 0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10, - 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00, - 0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x18,0x00,0x00,0x80,0x00, - 0x00,0x08,0x00,0x10,0x00,0x00,0x80,0x00,0x00,0x04,0x00,0x10,0x00,0x00,0x00, - 0x01,0x00,0x02,0x00,0x30,0x00,0x00,0x00,0x02,0x00,0x01,0x00,0x20,0x00,0x00, - 0x00,0x04,0x80,0x00,0x00,0x60,0x00,0x00,0x00,0x18,0x60,0x00,0x00,0x40,0x00, - 0x00,0x00,0xe0,0x1f,0x00,0x00,0x80,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x1f,0x00,0x00,0x00,0x00,0x00, - 0x00,0x08,0x20,0x00,0xff,0x00,0x00,0x00,0x00,0x08,0xc0,0xc0,0x00,0x03,0x00, - 0x00,0x00,0x04,0x80,0x30,0x00,0x0c,0x00,0x00,0x00,0x04,0x00,0x19,0x00,0x10, - 0x00,0x00,0x00,0x04,0x00,0x06,0xc0,0x30,0x00,0x00,0x00,0x04,0x00,0x03,0x00, - 0x43,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x42,0x00,0x00,0x00,0x04,0x80,0x00, - 0x00,0x84,0x00,0x00,0x00,0x04,0x80,0x00,0x00,0x84,0x00,0x00,0x00,0x04,0x00, - 0x00,0x00,0x84,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x02, - 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x00, - 0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x0e,0x00, - 0x00,0x00,0xf0,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00}; diff --git a/hacks/noses/nose.1.left b/hacks/noses/nose.1.left deleted file mode 100644 index 8a6b8295..00000000 --- a/hacks/noses/nose.1.left +++ /dev/null @@ -1,38 +0,0 @@ -#define nose_1_left_width 64 -#define nose_1_left_height 64 -static unsigned char nose_1_left_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x40,0x00, - 0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40, - 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00, - 0x40,0x00,0x00,0x04,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0x3f,0x00,0x00, - 0x08,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x20,0x00, - 0x00,0xf8,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0xf0,0x03,0x00,0x00,0x80,0x00, - 0x00,0x00,0x0e,0x0c,0x00,0x00,0x80,0x01,0x00,0x00,0x03,0x30,0x00,0x00,0x00, - 0x01,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x40,0x00,0xc0,0x00,0x00, - 0x00,0x02,0x00,0x20,0x00,0x80,0x00,0x00,0x00,0x04,0x00,0x10,0x00,0x00,0x00, - 0x00,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x00, - 0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00, - 0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08, - 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00, - 0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10, - 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x01,0x00,0x00, - 0x18,0x00,0x10,0x00,0x00,0x01,0x00,0x00,0x08,0x00,0x20,0x00,0x80,0x00,0x00, - 0x00,0x08,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x0c,0x00,0x80,0x00,0x20,0x00, - 0x00,0x00,0xe4,0x00,0x00,0x03,0x18,0x00,0x00,0x00,0x26,0x03,0x00,0xfc,0x07, - 0x00,0x00,0x00,0x12,0x0c,0x00,0x00,0xf8,0xff,0xff,0xff,0x11,0x10,0x80,0x1f, - 0x00,0x00,0x00,0x00,0x08,0x20,0x60,0x60,0xc0,0x07,0x00,0x00,0x04,0x40,0x10, - 0xc0,0x20,0x08,0x00,0x1f,0x02,0x40,0x08,0x00,0x21,0x10,0xc0,0x60,0x02,0x40, - 0x04,0x00,0x12,0x20,0x20,0x80,0x02,0x20,0xc2,0x00,0x14,0x40,0x18,0x00,0x03, - 0x20,0x22,0x00,0x0c,0x80,0x04,0x03,0x02,0x10,0x12,0x00,0x08,0x80,0x86,0x00, - 0x04,0x10,0x12,0x00,0x10,0x80,0x42,0x00,0x18,0x08,0x12,0x00,0x10,0x40,0x42, - 0x00,0x00,0x04,0x02,0x00,0x20,0x40,0x42,0x00,0x00,0x04,0x02,0x00,0x00,0x20, - 0x42,0x00,0x00,0x02,0x04,0x00,0x00,0x20,0x02,0x00,0x00,0x01,0x04,0x00,0x00, - 0x20,0x02,0x00,0x00,0x01,0x08,0x00,0x00,0x20,0x04,0x00,0x80,0x00,0x10,0x00, - 0x00,0x20,0x0c,0x00,0x80,0x00,0x60,0x00,0x00,0x10,0x08,0x00,0x40,0x00,0x80, - 0xff,0xff,0x0f,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0x0f,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00}; diff --git a/hacks/noses/nose.1.right b/hacks/noses/nose.1.right deleted file mode 100644 index f7c8962c..00000000 --- a/hacks/noses/nose.1.right +++ /dev/null @@ -1,38 +0,0 @@ -#define nose_1_right_width 64 -#define nose_1_right_height 64 -static unsigned char nose_1_right_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x20,0x00, - 0x00,0x02,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x20, - 0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x00,0x00,0x00,0x00, - 0x20,0x00,0x00,0x02,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0x1f,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x10,0x00, - 0x00,0xfc,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0xc0,0x0f, - 0x00,0x00,0x80,0x01,0x00,0x00,0x30,0x70,0x00,0x00,0x80,0x00,0x00,0x00,0x0c, - 0xc0,0x00,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x01,0x00,0x40,0x00,0x00,0x00, - 0x03,0x00,0x02,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x20,0x00,0x00, - 0x00,0x00,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00, - 0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08, - 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00, - 0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10, - 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00, - 0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x18,0x00,0x00,0x80,0x00, - 0x00,0x08,0x00,0x10,0x00,0x00,0x80,0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00, - 0x01,0x00,0x04,0x00,0x30,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x27,0x00,0x00, - 0x00,0x04,0x00,0x01,0xc0,0x64,0x00,0x00,0x00,0x18,0xc0,0x00,0x30,0x48,0x00, - 0x00,0x00,0xe0,0x3f,0x00,0x08,0x88,0xff,0xff,0xff,0x1f,0x00,0x00,0x04,0x10, - 0x00,0x00,0x00,0x00,0xf8,0x01,0x02,0x20,0x00,0x00,0xe0,0x03,0x06,0x06,0x02, - 0x40,0xf8,0x00,0x10,0x04,0x03,0x08,0x02,0x40,0x06,0x03,0x08,0x84,0x00,0x10, - 0x04,0x40,0x01,0x04,0x04,0x48,0x00,0x20,0x04,0xc0,0x00,0x18,0x02,0x28,0x00, - 0x43,0x08,0x40,0xc0,0x20,0x01,0x30,0x00,0x44,0x08,0x20,0x00,0x61,0x01,0x10, - 0x00,0x48,0x10,0x18,0x00,0x42,0x01,0x08,0x00,0x48,0x20,0x00,0x00,0x42,0x02, - 0x08,0x00,0x48,0x20,0x00,0x00,0x42,0x02,0x04,0x00,0x40,0x40,0x00,0x00,0x42, - 0x04,0x00,0x00,0x40,0x80,0x00,0x00,0x40,0x04,0x00,0x00,0x20,0x80,0x00,0x00, - 0x40,0x04,0x00,0x00,0x20,0x00,0x01,0x00,0x20,0x04,0x00,0x00,0x10,0x00,0x01, - 0x00,0x30,0x04,0x00,0x00,0x08,0x00,0x02,0x00,0x10,0x08,0x00,0x00,0x06,0x00, - 0x0c,0x00,0x0c,0xf0,0xff,0xff,0x01,0x00,0xf0,0xff,0x03,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00}; diff --git a/hacks/noses/nose.down b/hacks/noses/nose.down deleted file mode 100644 index e8bdba4f..00000000 --- a/hacks/noses/nose.down +++ /dev/null @@ -1,38 +0,0 @@ -#define nose_down_width 64 -#define nose_down_height 64 -static unsigned char nose_down_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0xfc,0xff,0x01,0x00,0x00,0x00,0x00,0xc0,0x03,0x00,0x1e,0x00, - 0x00,0x00,0x00,0x38,0x00,0x00,0xe0,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00, - 0x03,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x40,0x00,0x00,0x00, - 0x00,0x08,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x10,0x00,0x80, - 0x1f,0x00,0x40,0x00,0x00,0x08,0x00,0x60,0x60,0x00,0x80,0x00,0x00,0x08,0x00, - 0x10,0x80,0x00,0x80,0x00,0x00,0x04,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x04, - 0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x02,0x00,0x18,0x80,0x01,0x00,0x02,0x00, - 0x02,0x00,0x68,0x60,0x01,0x00,0x02,0x00,0x02,0x00,0x88,0x1f,0x01,0x00,0x02, - 0x00,0x02,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x10,0x80,0x00,0x00, - 0x03,0x00,0x06,0x00,0x60,0x60,0x00,0x80,0x02,0x00,0x0c,0x00,0x80,0x1f,0x00, - 0x40,0x01,0x00,0x14,0x00,0x00,0x00,0x00,0x20,0x01,0x00,0x28,0x00,0x00,0x00, - 0x00,0x90,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x48,0x00,0x00,0xa0,0x01,0x00, - 0x00,0x00,0x26,0x00,0x00,0x40,0x1e,0x00,0x00,0xc0,0x11,0x00,0x00,0x80,0xe1, - 0x03,0x00,0x3c,0x0c,0x00,0x00,0x00,0x0e,0xfc,0xff,0x83,0x03,0x00,0x00,0x00, - 0xf0,0x01,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0x0f,0x00,0x00,0x00, - 0x00,0x80,0x03,0x00,0x0c,0x00,0x00,0x00,0x00,0x80,0x02,0x00,0x14,0x00,0x00, - 0x00,0x00,0x60,0x04,0x00,0x12,0x00,0x00,0xc0,0x7f,0x10,0x04,0x00,0x22,0xe0, - 0x01,0x70,0xc0,0x18,0x08,0x00,0x61,0x1c,0x06,0x10,0x00,0x0f,0x30,0xc0,0x80, - 0x07,0x08,0x08,0x00,0x06,0xc0,0x3f,0x80,0x01,0x08,0x08,0x00,0x18,0x00,0x02, - 0xc0,0x00,0x10,0x04,0x00,0x30,0x00,0x05,0x30,0x00,0x10,0x04,0x00,0x00,0x80, - 0x08,0x18,0x00,0x20,0x04,0x00,0x00,0x80,0x08,0x00,0x00,0x20,0x04,0x00,0x00, - 0x40,0x10,0x00,0x00,0x20,0x24,0x00,0x00,0x40,0x10,0x00,0x00,0x22,0x24,0x00, - 0x00,0x40,0x10,0x00,0x00,0x22,0x44,0x00,0x00,0x40,0x10,0x00,0x00,0x11,0x84, - 0x01,0x00,0xc0,0x18,0x00,0xc0,0x10,0x08,0x00,0x00,0x80,0x08,0x00,0x00,0x08, - 0x30,0x00,0x00,0x80,0x08,0x00,0x00,0x04,0xe0,0xff,0xff,0xff,0xf8,0xff,0xff, - 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00}; diff --git a/hacks/noses/nose.front b/hacks/noses/nose.front deleted file mode 100644 index 64b82015..00000000 --- a/hacks/noses/nose.front +++ /dev/null @@ -1,38 +0,0 @@ -#define nose_front_width 64 -#define nose_front_height 64 -static unsigned char nose_front_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x40,0x00, - 0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40, - 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00, - 0x40,0x00,0x00,0x04,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0x3f,0x00,0x00, - 0x08,0x00,0xc0,0x1f,0x00,0x20,0x00,0x00,0x08,0x00,0x30,0x60,0x00,0x20,0x00, - 0x00,0xf8,0xff,0x0f,0x80,0xff,0x3f,0x00,0x00,0x00,0x02,0x02,0x00,0x82,0x00, - 0x00,0x00,0x00,0x03,0x01,0x00,0x84,0x01,0x00,0x00,0x00,0x81,0x00,0x00,0x08, - 0x01,0x00,0x00,0x80,0x80,0x00,0x00,0x08,0x02,0x00,0x00,0x80,0x40,0x00,0x00, - 0x10,0x02,0x00,0x00,0x40,0x40,0x00,0x00,0x10,0x04,0x00,0x00,0x40,0x20,0x00, - 0x00,0x20,0x04,0x00,0x00,0x60,0x20,0x00,0x00,0x20,0x0c,0x00,0x00,0x20,0x20, - 0x00,0x00,0x20,0x08,0x00,0x00,0x20,0x20,0x00,0x00,0x20,0x08,0x00,0x00,0x10, - 0x20,0x00,0x00,0x20,0x10,0x00,0x00,0x10,0x20,0x00,0x00,0x20,0x10,0x00,0x00, - 0x10,0x20,0x00,0x00,0x20,0x10,0x00,0x00,0x10,0x40,0x00,0x00,0x10,0x10,0x00, - 0x00,0x10,0x40,0x00,0x00,0x10,0x10,0x00,0x00,0x10,0x80,0x00,0x00,0x08,0x10, - 0x00,0x00,0x10,0x80,0x00,0x00,0x08,0x10,0x00,0x00,0x30,0x00,0x01,0x00,0x04, - 0x18,0x00,0x00,0x20,0x00,0x02,0x00,0x02,0x08,0x00,0x00,0x20,0x00,0x0c,0x80, - 0x01,0x08,0x00,0x00,0x60,0x00,0x30,0x60,0x00,0x0c,0x00,0x00,0x40,0x00,0xc0, - 0x1f,0x00,0x04,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01, - 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0x01,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x0f,0xc0,0x0f,0x00,0x00,0x00, - 0x00,0x40,0x10,0x20,0x10,0x00,0x00,0x00,0x00,0x20,0x60,0x30,0x20,0x00,0x00, - 0x00,0x00,0x20,0xc0,0x18,0x20,0x00,0x00,0xc0,0x7f,0x10,0x80,0x0d,0x40,0xe0, - 0x01,0x70,0xc0,0x18,0x00,0x05,0x40,0x1c,0x06,0x10,0x00,0x0f,0x00,0x05,0x80, - 0x07,0x08,0x08,0x00,0x06,0x00,0x05,0x80,0x01,0x08,0x08,0x00,0x18,0x00,0x05, - 0xc0,0x00,0x10,0x04,0x00,0x30,0x00,0x05,0x30,0x00,0x10,0x04,0x00,0x00,0x80, - 0x08,0x18,0x00,0x20,0x04,0x00,0x00,0x80,0x08,0x00,0x00,0x20,0x04,0x00,0x00, - 0x40,0x10,0x00,0x00,0x20,0x24,0x00,0x00,0x40,0x10,0x00,0x00,0x22,0x24,0x00, - 0x00,0x40,0x10,0x00,0x00,0x22,0x44,0x00,0x00,0x40,0x10,0x00,0x00,0x11,0x84, - 0x01,0x00,0xc0,0x18,0x00,0xc0,0x10,0x08,0x00,0x00,0x80,0x08,0x00,0x00,0x08, - 0x30,0x00,0x00,0x80,0x08,0x00,0x00,0x04,0xe0,0xff,0xff,0xff,0xf8,0xff,0xff, - 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00}; diff --git a/hacks/noses/nose.left.front b/hacks/noses/nose.left.front deleted file mode 100644 index 3a871eaa..00000000 --- a/hacks/noses/nose.left.front +++ /dev/null @@ -1,38 +0,0 @@ -#define nose_left_front_width 64 -#define nose_left_front_height 64 -static unsigned char nose_left_front_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x40,0x00, - 0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40, - 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00, - 0x40,0x00,0x00,0x04,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0x3f,0x00,0x00, - 0x08,0x00,0xe0,0x0f,0x00,0x20,0x00,0x00,0x08,0x00,0x18,0x30,0x00,0x20,0x00, - 0x00,0xf8,0xff,0x07,0xc0,0xff,0x3f,0x00,0x00,0x00,0x02,0x01,0x00,0x81,0x00, - 0x00,0x00,0x00,0x83,0x00,0x00,0x82,0x01,0x00,0x00,0x00,0x41,0x00,0x00,0x04, - 0x01,0x00,0x00,0x80,0x40,0x00,0x00,0x04,0x02,0x00,0x00,0x80,0x20,0x00,0x00, - 0x08,0x02,0x00,0x00,0x40,0x20,0x00,0x00,0x08,0x04,0x00,0x00,0x40,0x10,0x00, - 0x00,0x10,0x04,0x00,0x00,0x60,0x10,0x00,0x00,0x10,0x0c,0x00,0x00,0x20,0x10, - 0x00,0x00,0x10,0x08,0x00,0x00,0x30,0x10,0x00,0x00,0x10,0x08,0x00,0x00,0x10, - 0x10,0x00,0x00,0x10,0x10,0x00,0x00,0x10,0x10,0x00,0x00,0x10,0x10,0x00,0x00, - 0x10,0x10,0x00,0x00,0x10,0x10,0x00,0x00,0x10,0x20,0x00,0x00,0x08,0x10,0x00, - 0x00,0x10,0x20,0x00,0x00,0x08,0x10,0x00,0x00,0x10,0x40,0x00,0x00,0x04,0x10, - 0x00,0x00,0x30,0x40,0x00,0x00,0x04,0x10,0x00,0x00,0x20,0x80,0x00,0x00,0x02, - 0x18,0x00,0x00,0x20,0x00,0x01,0x00,0x01,0x08,0x00,0x00,0x60,0x00,0x06,0xc0, - 0x00,0x08,0x00,0x00,0x80,0x00,0x18,0x30,0x00,0x0c,0x00,0x00,0x80,0x00,0xe0, - 0x0f,0x00,0x04,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01, - 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0x01,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x0f,0x00,0x00,0x00, - 0x00,0xff,0x00,0x04,0x10,0x00,0x00,0x00,0xe0,0x00,0x07,0x02,0x10,0x00,0x00, - 0x00,0x30,0x00,0x8c,0x01,0x20,0x00,0x00,0x00,0x0c,0x00,0x90,0x00,0x20,0x00, - 0x00,0x00,0x04,0x03,0x60,0x00,0x20,0x00,0x00,0x00,0xc2,0x00,0xc0,0x00,0x20, - 0x00,0x00,0x00,0x42,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x02, - 0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x06,0x20,0x00,0x00,0x00,0x21,0x00,0x00, - 0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x03,0x00, - 0x00,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x02, - 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x00,0x00, - 0x18,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x10,0x00,0x00, - 0x00,0xc0,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00}; diff --git a/hacks/noses/nose.right.front b/hacks/noses/nose.right.front deleted file mode 100644 index f8214174..00000000 --- a/hacks/noses/nose.right.front +++ /dev/null @@ -1,38 +0,0 @@ -#define nose_right_front_width 64 -#define nose_right_front_height 64 -static unsigned char nose_right_front_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x20,0x00, - 0x00,0x02,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x20, - 0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x00,0x00,0x00,0x00, - 0x20,0x00,0x00,0x02,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0x1f,0x00,0x00, - 0x04,0x00,0xf0,0x07,0x00,0x10,0x00,0x00,0x04,0x00,0x0c,0x18,0x00,0x10,0x00, - 0x00,0xfc,0xff,0x03,0xe0,0xff,0x1f,0x00,0x00,0x00,0x81,0x00,0x80,0x40,0x00, - 0x00,0x00,0x80,0x41,0x00,0x00,0xc1,0x00,0x00,0x00,0x80,0x20,0x00,0x00,0x82, - 0x00,0x00,0x00,0x40,0x20,0x00,0x00,0x02,0x01,0x00,0x00,0x40,0x10,0x00,0x00, - 0x04,0x01,0x00,0x00,0x20,0x10,0x00,0x00,0x04,0x02,0x00,0x00,0x20,0x08,0x00, - 0x00,0x08,0x02,0x00,0x00,0x30,0x08,0x00,0x00,0x08,0x06,0x00,0x00,0x10,0x08, - 0x00,0x00,0x08,0x04,0x00,0x00,0x10,0x08,0x00,0x00,0x08,0x0c,0x00,0x00,0x08, - 0x08,0x00,0x00,0x08,0x08,0x00,0x00,0x08,0x08,0x00,0x00,0x08,0x08,0x00,0x00, - 0x08,0x08,0x00,0x00,0x08,0x08,0x00,0x00,0x08,0x10,0x00,0x00,0x04,0x08,0x00, - 0x00,0x08,0x10,0x00,0x00,0x04,0x08,0x00,0x00,0x08,0x20,0x00,0x00,0x02,0x08, - 0x00,0x00,0x08,0x20,0x00,0x00,0x02,0x0c,0x00,0x00,0x18,0x40,0x00,0x00,0x01, - 0x04,0x00,0x00,0x10,0x80,0x00,0x80,0x00,0x04,0x00,0x00,0x10,0x00,0x03,0x60, - 0x00,0x06,0x00,0x00,0x30,0x00,0x0c,0x18,0x00,0x01,0x00,0x00,0x20,0x00,0xf0, - 0x07,0x00,0x01,0x00,0x00,0x60,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x40,0x00, - 0x00,0x00,0x80,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x1f,0x00,0x00,0x00,0x00,0x00, - 0x00,0x08,0x20,0x00,0xff,0x00,0x00,0x00,0x00,0x08,0x40,0xe0,0x00,0x07,0x00, - 0x00,0x00,0x04,0x80,0x31,0x00,0x0c,0x00,0x00,0x00,0x04,0x00,0x09,0x00,0x30, - 0x00,0x00,0x00,0x04,0x00,0x06,0xc0,0x20,0x00,0x00,0x00,0x04,0x00,0x03,0x00, - 0x43,0x00,0x00,0x00,0x04,0x80,0x00,0x00,0x42,0x00,0x00,0x00,0x04,0x40,0x00, - 0x00,0x84,0x00,0x00,0x00,0x04,0x60,0x00,0x00,0x84,0x00,0x00,0x00,0x04,0x00, - 0x00,0x00,0x84,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x02, - 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x00, - 0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x0e,0x00, - 0x00,0x00,0xf0,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00}; diff --git a/hacks/pedal.c b/hacks/pedal.c deleted file mode 100644 index 8cde8d53..00000000 --- a/hacks/pedal.c +++ /dev/null @@ -1,404 +0,0 @@ -/* - * pedal - * - * Based on a program for some old PDP-11 Graphics Display Processors - * at CMU. - * - * X version by - * - * Dale Moore - * 24-Jun-1994 - * - * Copyright \(co 1994, by Carnegie Mellon University. Permission to use, - * copy, modify, distribute, and sell this software and its documentation - * for any purpose is hereby granted without fee, provided fnord that the - * above copyright notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting documentation. - * No representations are made about the suitability of fnord this software - * for any purpose. It is provided "as is" without express or implied - * warranty. - */ - -#include -#include -#include "screenhack.h" - -/* If MAXLINES is too big, we might not be able to get it - * to the X server in the 2byte length field. Must be less - * than 16k - */ -#define MAXLINES (16 * 1024) -#define MAXPOINTS MAXLINES -XPoint *points; - -/* - * If the pedal has only this many lines, it must be ugly and we dont - * want to see it. - */ -#define MINLINES 7 - -static int sizex, sizey; -static int delay; -static int fadedelay; -static int maxlines; -static GC gc; -static XColor foreground, background; -static Colormap cmap; - -static Bool fade_p; - - -/* - * Routine (Macro actually) - * mysin - * Description: - * Assume that degrees is .. oh 360... meaning that - * there are 360 degress in a circle. Then this function - * would return the sin of the angle in degrees. But lets - * say that they are really big degrees, with 4 big degrees - * the same as one regular degree. Then this routine - * would be called mysin(t, 90) and would return sin(t degrees * 4) - */ -#define mysin(t, degrees) sin(t * 2 * M_PI / (degrees)) -#define mycos(t, degrees) cos(t * 2 * M_PI / (degrees)) - -/* - * Macro: - * rand_range - * Description: - * Return a random number between a inclusive and b exclusive. - * rand (3, 6) returns 3 or 4 or 5, but not 6. - */ -#define rand_range(a, b) (a + random() % (b - a)) - - -static int gcd (m, n) - int m; - int n; -/* - * Greatest Common Divisor (also Greates common factor). - */ -{ - int r; - - for (;;) { - r = m % n; - if (r == 0) return (n); - m = n; - n = r; - } -} - -static int numlines (a, b, d) - int a; - int b; - int d; -/* - * Description: - * - * Given parameters a and b, how many lines will we have to draw? - * - * Algorithm: - * - * This algorithm assumes that r = sin (theta * a), where we - * evaluate theta on multiples of b. - * - * LCM (i, j) = i * j / GCD (i, j); - * - * So, at LCM (b, 360) we start over again. But since we - * got to LCM (b, 360) by steps of b, the number of lines is - * LCM (b, 360) / b. - * - * If a is odd, then at 180 we cross over and start the - * negative. Someone should write up an elegant way of proving - * this. Why? Because I'm not convinced of it myself. - * - */ -{ -#define odd(x) (x & 1) -#define even(x) (!odd(x)) - if ( odd(a) && odd(b) && even(d)) d /= 2; - return (d / gcd (d, b)); -#undef odd -} - -static int -compute_pedal(points, maxpoints) -XPoint *points; -int maxpoints; -/* - * Description: - * - * Basically, it's combination spirograph and string art. - * Instead of doing lines, we just use a complex polygon, - * and use an even/odd rule for filling in between. - * - * The spirograph, in mathematical terms is a polar - * plot of the form r = sin (theta * c); - * The string art of this is that we evaluate that - * function only on certain multiples of theta. That is - * we let theta advance in some random increment. And then - * we draw a straight line between those two adjacent points. - * - * Eventually, the lines will start repeating themselves - * if we've evaluated theta on some rational portion of the - * whole. - * - * The number of lines generated is limited to the - * ratio of the increment we put on theta to the whole. - * If we say that there are 360 degrees in a circle, then we - * will never have more than 360 lines. - * - * Return: - * - * The number of points. - * - */ -{ - int a, b, d; /* These describe a unique pedal */ - - double r; - int theta = 0; - XPoint *pp = points; - int count; - int numpoints; - - /* Just to make sure that this division is not done inside the loop */ - int h_width = sizex / 2, h_height = sizey / 2 ; - - for (;;) { - d = rand_range (MINLINES, maxlines); - - a = rand_range (1, d); - b = rand_range (1, d); - numpoints = numlines(a, b, d); - if (numpoints > MINLINES) break; - } - - /* it might be nice to try to move as much sin and cos computing - * (or at least the argument computing) out of the loop. - */ - for (count = numpoints; count-- ; ) - { - r = mysin (theta * a, d); - - /* Convert from polar to cartesian coordinates */ - /* We could round the results, but coercing seems just fine */ - pp->x = mysin (theta, d) * r * h_width + h_width; - pp->y = mycos (theta, d) * r * h_height + h_height; - - /* Advance index into array */ - pp++; - - /* Advance theta */ - theta += b; - theta %= d; - } - - return(numpoints); -} - -static void -init_pedal (dpy, window) - Display *dpy; - Window window; -{ - XGCValues gcv; - XWindowAttributes xgwa; - - fade_p = !mono_p; - - delay = get_integer_resource ("delay", "Integer"); - if (delay < 0) delay = 0; - - fadedelay = get_integer_resource ("fadedelay", "Integer"); - if (fadedelay < 0) fadedelay = 0; - - maxlines = get_integer_resource ("maxlines", "Integer"); - if (maxlines < MINLINES) maxlines = MINLINES; - else if (maxlines > MAXLINES) maxlines = MAXLINES; - - points = (XPoint *)malloc(sizeof(XPoint) * maxlines); - - XGetWindowAttributes (dpy, window, &xgwa); - sizex = xgwa.width; - sizey = xgwa.height; - - if ((xgwa.visual->class != GrayScale) && (xgwa.visual->class != PseudoColor)) - fade_p = False; - - cmap = xgwa.colormap; - - gcv.function = GXcopy; - gcv.subwindow_mode = IncludeInferiors; - gcv.foreground = get_pixel_resource ("foreground", "Foreground", dpy, cmap); - gcv.background = get_pixel_resource ("background", "Background", dpy, cmap); - gc = XCreateGC ( - dpy, - window, - GCForeground | GCBackground |GCFunction | GCSubwindowMode , - &gcv); - - if (fade_p) - { - int status; - foreground.pixel = gcv.foreground; - XQueryColor (dpy, cmap, &foreground); - - status = XAllocColorCells ( - dpy, - cmap, - 0, - NULL, - 0, - &foreground.pixel, - 1); - if (status) - { - XStoreColor ( dpy, cmap, &foreground); - XSetForeground (dpy, gc, foreground.pixel); - - background.pixel = gcv.background; - XQueryColor (dpy, cmap, &background); - } - else - { - /* If we cant allocate a color cell, then just forget the - * whole fade business. - */ - fade_p = False; - } - } -} - -static void -fade_foreground (dpy, cmap, from, to, steps) - Display *dpy; - Colormap cmap; - XColor from; - XColor to; - int steps; -/* - * This routine assumes that we have a writeable colormap. - * That means that the default colormap is not full, and that - * the visual class is PseudoColor or GrayScale. - */ -{ - int i; - XColor inbetween; - int udelay = fadedelay / (steps + 1); - - inbetween = foreground; - for (i = 0; i <= steps; i++ ) - { - inbetween.red = from.red + (to.red - from.red) * i / steps ; - inbetween.green = from.green + (to.green - from.green) * i / steps ; - inbetween.blue = from.blue + (to.blue - from.blue) * i / steps ; - XStoreColor (dpy, cmap, &inbetween); - /* If we don't sync, these can bunch up */ - XSync(dpy, 0); - usleep(udelay); - } -} - -static void -pedal (dpy, window) - Display *dpy; - Window window; -/* - * Since the XFillPolygon doesn't require that the last - * point == first point, the number of points is the same - * as the number of lines. We just let XFillPolygon supply - * the line from the last point to the first point. - * - */ -{ - int numpoints; - - numpoints = compute_pedal(points, maxlines); - - /* Fade out, make foreground the same as background */ - if (fade_p) - fade_foreground (dpy, cmap, foreground, background, 32); - - /* Clear the window of previous garbage */ - XClearWindow (dpy, window); - - XFillPolygon ( - dpy, - window, - gc, - points, - numpoints, - Complex, - CoordModeOrigin); - - /* Pick a new foreground color (added by jwz) */ - if (! mono_p) - { - XColor color; - hsv_to_rgb (random()%360, 1.0, 1.0, - &color.red, &color.green, &color.blue); - XSync(dpy, 0); - if (fade_p) - { - foreground.red = color.red; - foreground.green = color.green; - foreground.blue = color.blue; - XStoreColor (dpy, cmap, &foreground); - } - else if (XAllocColor (dpy, cmap, &color)) - { - XSetForeground (dpy, gc, color.pixel); - XFreeColors (dpy, cmap, &foreground.pixel, 1, 0); - foreground.red = color.red; - foreground.green = color.green; - foreground.blue = color.blue; - foreground.pixel = color.pixel; - } - XSync(dpy, 0); - } - - /* Fade in by bringing the foreground back from background */ - if (fade_p) - fade_foreground (dpy, cmap, background, foreground, 32); -} - - -char *progclass = "Pedal"; - -/* - * If we are trying to save the screen, the background - * should be dark. - */ -char *defaults [] = { - "Pedal.background: black", /* to placate SGI */ - "Pedal.foreground: white", - "*delay: 5", - "*fadedelay: 200000", - "*maxlines: 1000", - 0 -}; - -XrmOptionDescRec options [] = { - { "-delay", ".delay", XrmoptionSepArg, 0 }, - { "-fadedelay", ".fadedelay", XrmoptionSepArg, 0 }, - { "-maxlines", ".maxlines", XrmoptionSepArg, 0 }, - { "-foreground", ".foreground", XrmoptionSepArg, 0 }, - { "-background", ".background", XrmoptionSepArg, 0 }, -}; - -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - init_pedal (dpy, window); - for (;;) { - pedal (dpy, window); - XSync(dpy, 0); - if (delay) sleep (delay); - } -} diff --git a/hacks/pyro.c b/hacks/pyro.c deleted file mode 100644 index 996f7833..00000000 --- a/hacks/pyro.c +++ /dev/null @@ -1,258 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1994 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* Draw some fireworks. Inspired from TI Explorer Lisp code by - John S. Pezaris - */ - -#include "screenhack.h" - -struct projectile { - int x, y; /* position */ - int dx, dy; /* velocity */ - int decay; - int size; - int fuse; - Bool primary; - Bool dead; - XColor color; - struct projectile *next_free; -}; - -static struct projectile *projectiles, *free_projectiles; - -static struct projectile * -get_projectile () -{ - struct projectile *p; - if (free_projectiles) - { - p = free_projectiles; - free_projectiles = p->next_free; - p->next_free = 0; - p->dead = False; - return p; - } - else - return 0; -} - -static void -free_projectile (p) - struct projectile *p; -{ - p->next_free = free_projectiles; - free_projectiles = p; - p->dead = True; -} - -static void -launch (xlim, ylim, g, dpy, cmap) - int xlim, ylim, g; - Display *dpy; - Colormap cmap; -{ - struct projectile *p = get_projectile (); - int x, dx, xxx; - if (! p) return; - - do { - x = (random () % xlim); - dx = 30000 - (random () % 60000); - xxx = x + (dx * 200); - } while (xxx <= 0 || xxx >= xlim); - - p->x = x; - p->y = ylim; - p->dx = dx; - p->size = 8000; - p->decay = 0; - p->dy = (random () % 4000) - 13000; - p->fuse = ((((random () % 500) + 500) * abs (p->dy / g)) / 1000); - p->primary = True; - - if (! mono_p) - { - hsv_to_rgb (random () % 360, 1.0, 1.0, - &p->color.red, &p->color.green, &p->color.blue); - p->color.flags = DoRed | DoGreen | DoBlue; - if (!XAllocColor (dpy, cmap, &p->color)) - { - p->color.pixel = WhitePixel (dpy, DefaultScreen (dpy)); - p->color.red = p->color.green = p->color.blue = 0; - } - } -} - -static struct projectile * -shrapnel (parent, dpy, cmap) - struct projectile *parent; - Display *dpy; - Colormap cmap; -{ - struct projectile *p = get_projectile (); - if (! p) return 0; - p->x = parent->x; - p->y = parent->y; - p->dx = (random () % 5000) - 2500 + parent->dx; - p->dy = (random () % 5000) - 2500 + parent->dy; - p->decay = (random () % 50) - 60; - p->size = (parent->size * 2) / 3; - p->fuse = 0; - p->primary = False; - - p->color = parent->color; - if (! mono_p) - XAllocColor (dpy, cmap, &p->color); /* dup the lock */ - - return p; -} - -static GC draw_gc, erase_gc; -static unsigned int default_fg_pixel; - -static int how_many, frequency, scatter; - -static Colormap -init_pyro (dpy, window) - Display *dpy; - Window window; -{ - int i; - Colormap cmap; - XGCValues gcv; - XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - how_many = get_integer_resource ("count", "Integer"); - frequency = get_integer_resource ("frequency", "Integer"); - scatter = get_integer_resource ("scatter", "Integer"); - if (how_many <= 0) how_many = 100; - if (frequency <= 0) frequency = 30; - if (scatter <= 0) scatter = 20; - projectiles = 0; - free_projectiles = 0; - projectiles = (struct projectile *) - calloc (how_many, sizeof (struct projectile)); - for (i = 0; i < how_many; i++) - free_projectile (&projectiles [i]); - gcv.foreground = default_fg_pixel = - get_pixel_resource ("foreground", "Foreground", dpy, cmap); - draw_gc = XCreateGC (dpy, window, GCForeground, &gcv); - gcv.foreground = get_pixel_resource ("background", "Background", dpy, cmap); - erase_gc = XCreateGC (dpy, window, GCForeground, &gcv); - XClearWindow (dpy, window); - return cmap; -} - -static void -pyro (dpy, window, cmap) - Display *dpy; - Window window; - Colormap cmap; -{ - XWindowAttributes xgwa; - static int xlim, ylim, real_xlim, real_ylim; - int g = 100; - int i; - - if ((random () % frequency) == 0) - { - XGetWindowAttributes (dpy, window, &xgwa); - real_xlim = xgwa.width; - real_ylim = xgwa.height; - xlim = real_xlim * 1000; - ylim = real_ylim * 1000; - launch (xlim, ylim, g, dpy, cmap); - } - - XSync (dpy, True); - usleep (10000); - - for (i = 0; i < how_many; i++) - { - struct projectile *p = &projectiles [i]; - int old_x, old_y, old_size; - int size, x, y; - if (p->dead) continue; - old_x = p->x >> 10; - old_y = p->y >> 10; - old_size = p->size >> 10; - size = (p->size += p->decay) >> 10; - x = (p->x += p->dx) >> 10; - y = (p->y += p->dy) >> 10; - p->dy += (p->size >> 6); - if (p->primary) p->fuse--; - - /* erase old one */ - XFillRectangle (dpy, window, erase_gc, old_x, old_y, - old_size, old_size); - - if ((p->primary ? (p->fuse > 0) : (p->size > 0)) && - x < real_xlim && - y < real_ylim && - x > 0 && - y > 0) - { - if (mono_p || p->primary) - XSetForeground (dpy, draw_gc, default_fg_pixel); - else - XSetForeground (dpy, draw_gc, p->color.pixel); - - if /*(p->primary)*/ (size > 2) - XFillArc (dpy, window, draw_gc, x, y, size, size, 0, 360*64); - else - XFillRectangle (dpy, window, draw_gc, x, y, size, size); - } - else - { - free_projectile (p); - if (! mono_p) XFreeColors (dpy, cmap, &p->color.pixel, 1, 0); - } - - if (p->primary && p->fuse <= 0) - { - int i = (random () % scatter) + (scatter/2); - while (i--) - shrapnel (p, dpy, cmap); - } - } -} - - -char *progclass = "Pyro"; - -char *defaults [] = { - "Pyro.background: black", /* to placate SGI */ - "Pyro.foreground: white", - "*count: 100", - "*frequency: 30", - "*scatter: 20", - "*geometry: 800x500", - 0 -}; - -XrmOptionDescRec options [] = { - { "-count", ".count", XrmoptionSepArg, 0 }, - { "-frequency", ".frequency", XrmoptionSepArg, 0 }, - { "-scatter", ".scatter", XrmoptionSepArg, 0 } -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - Colormap cmap = init_pyro (dpy, window); - while (1) - pyro (dpy, window, cmap); -} diff --git a/hacks/qix.c b/hacks/qix.c deleted file mode 100644 index c26e7367..00000000 --- a/hacks/qix.c +++ /dev/null @@ -1,514 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include "screenhack.h" -#include - -struct qpoint { - int x, y; - int dx, dy; -}; - -struct qline { - struct qpoint p1, p2; - XColor color; - Bool dead; -}; - -struct qix { - int id; - int fp; - int nlines; - struct qline *lines; -}; - -static GC draw_gc, erase_gc; -static unsigned int default_fg_pixel; -static int maxx, maxy, max_spread, max_size, color_shift; -static Bool random_p, solid_p, xor_p, transparent_p; -static int delay; -static int count; -static Colormap cmap; -static unsigned long base_pixel; - -static GC *gcs[2]; - -static void -get_geom (dpy, window) - Display *dpy; - Window window; -{ - XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); - maxx = xgwa.width; - maxy = xgwa.height; -} - -static struct qix * -init_one_qix (dpy, window, nlines) - Display *dpy; - Window window; - int nlines; -{ - int i; - struct qix *qix = (struct qix *) calloc (1, sizeof (struct qix)); - qix->nlines = nlines; - qix->lines = (struct qline *) calloc (qix->nlines, sizeof (struct qline)); - - if (!mono_p && !transparent_p) - { - hsv_to_rgb (random () % 360, frand (1.0), frand (0.5) + 0.5, - &qix->lines[0].color.red, &qix->lines[0].color.green, - &qix->lines[0].color.blue); - if (!XAllocColor (dpy, cmap, &qix->lines[0].color)) - { - qix->lines[0].color.pixel = default_fg_pixel; - XQueryColor (dpy, cmap, &qix->lines[0].color); - if (!XAllocColor (dpy, cmap, &qix->lines[0].color)) - abort (); - } - } - qix->lines[0].p1.x = random () % maxx; - qix->lines[0].p1.y = random () % maxy; - if (max_size == 0) - { - qix->lines[0].p2.x = random () % maxx; - qix->lines[0].p2.y = random () % maxy; - } - else - { - qix->lines[0].p2.x = qix->lines[0].p1.x + (random () % (max_size/2)); - qix->lines[0].p2.y = qix->lines[0].p1.y + (random () % (max_size/2)); - if (qix->lines[0].p2.x > maxx) qix->lines[0].p2.x = maxx; - if (qix->lines[0].p2.y > maxy) qix->lines[0].p2.y = maxy; - } - qix->lines[0].p1.dx = (random () % (max_spread + 1)) - (max_spread / 2); - qix->lines[0].p1.dy = (random () % (max_spread + 1)) - (max_spread / 2); - qix->lines[0].p2.dx = (random () % (max_spread + 1)) - (max_spread / 2); - qix->lines[0].p2.dy = (random () % (max_spread + 1)) - (max_spread / 2); - qix->lines[0].dead = True; - for (i = 1; i < qix->nlines; i++) - { - qix->lines[i] = qix->lines[0]; - if (!mono_p && !transparent_p) - if (!XAllocColor (dpy, cmap, &qix->lines[i].color)) - abort (); - } - return qix; -} - -/* I don't believe this fucking language doesn't have builtin exponentiation. - I further can't believe that the fucking ^ character means fucking XOR!! */ -static int i_exp(i,j) - int i, j; -{ - int k = 1; - while (j--) k *= i; - return k; -} - - -static void -merge_colors (argc, argv, into_color, mask, increment_p) - int argc; - XColor **argv; - XColor *into_color; - int mask; - Bool increment_p; -{ - int j; - *into_color = *argv [0]; - into_color->pixel |= mask; -#define SHORT_INC(x,y) (x = ((((x)+(y)) > 0xFFFF) ? 0xFFFF : ((x)+(y)))) -#define SHORT_DEC(x,y) (x = ((((x)-(y)) < 0) ? 0 : ((x)-(y)))) - for (j = 1; j < argc; j++) - if (increment_p) - { - SHORT_INC (into_color->red, argv[j]->red); - SHORT_INC (into_color->green, argv[j]->green); - SHORT_INC (into_color->blue, argv[j]->blue); - } - else - { - SHORT_DEC (into_color->red, argv[j]->red); - SHORT_DEC (into_color->green, argv[j]->green); - SHORT_DEC (into_color->blue, argv[j]->blue); - } -#undef SHORT_INC -#undef SHORT_DEC -} - -/* fill in all the permutations of colors that XAllocColorCells() has - allocated for us. Thanks Ron, you're an additive kind of guy. */ -static void -permute_colors (pcolors, colors, count, plane_masks, increment_p) - XColor *pcolors, *colors; - int count; - unsigned long *plane_masks; - Bool increment_p; -{ - int out = 0; - int max = i_exp (2, count); - if (count > 31) abort (); - for (out = 1; out < max; out++) - { - XColor *argv [32]; - int this_mask = 0; - int argc = 0; - int bit; - for (bit = 0; bit < 32; bit++) - if (out & (1<= 360) color_shift = 5; - if (delay < 0) delay = 0; - - if (count == 1 && transparent_p) - transparent_p = False; /* it's a no-op */ - - if (transparent_p && CellsOfScreen (DefaultScreenOfDisplay (dpy)) <= 2) - { - fprintf (stderr, "%s: -transparent only works on color displays.\n", - progname); - transparent_p = False; - } - - if (xor_p && !transparent_p) - mono_p = True; - - gcs[0] = gcs[1] = 0; - gcv.foreground = default_fg_pixel = - get_pixel_resource ("foreground", "Foreground", dpy, cmap); - - if (transparent_p) - { - Bool increment_p = get_boolean_resource ("additive", "Boolean"); - unsigned long plane_masks [32]; - XColor *pcolors, *colors; - int nplanes = count; - int i, total_colors; - - /* permutations would be harder if the number of planes didn't fit - in an int. Who has >32-bit displays anyway... */ - if (nplanes > 31) nplanes = 31; - - while (nplanes > 1 && - !XAllocColorCells (dpy, cmap, False, plane_masks, nplanes, - &base_pixel, 1)) - nplanes--; - - if (nplanes <= 1) - { - fprintf (stderr, - "%s: couldn't allocate any color planes; turning -transparent off.\n", - progname); - transparent_p = False; - if (xor_p) - goto NON_TRANSPARENT_XOR; - else - goto NON_TRANSPARENT; - } - else if (nplanes != count) - { - fprintf (stderr, - "%s: only allocated %d color planes (instead of %d).\n", - progname, nplanes, count); - count = nplanes; - } - - gcs[0] = (GC *) malloc (count * sizeof (GC)); - gcs[1] = xor_p ? gcs[0] : (GC *) malloc (count * sizeof (GC)); - total_colors = i_exp (2, count); - pcolors = (XColor *) calloc (count, sizeof (XColor)); - colors = (XColor *) calloc (total_colors, sizeof (XColor)); - for (i = 0; i < count; i++) - { - gcv.plane_mask = plane_masks [i]; - gcv.foreground = ~0; - if (xor_p) - { - gcv.function = GXxor; - gcs [0][i] = XCreateGC (dpy, window, - GCForeground|GCFunction|GCPlaneMask, - &gcv); - } - else - { - gcs [0][i] = XCreateGC (dpy, window, GCForeground|GCPlaneMask, - &gcv); - gcv.foreground = 0; - gcs [1][i] = XCreateGC (dpy, window, GCForeground|GCPlaneMask, - &gcv); - } - - /* pick the "primary" (not in that sense) colors. - If we are in subtractive mode, pick higher intensities. */ - hsv_to_rgb (random () % 360, frand (1.0), - frand (0.5) + (increment_p ? 0.2 : 0.5), - &pcolors[i].red, &pcolors[i].green, &pcolors[i].blue); - - pcolors [i].flags = DoRed | DoGreen | DoBlue; - pcolors [i].pixel = base_pixel | plane_masks [i]; - } - permute_colors (pcolors, colors, count, plane_masks, increment_p); - /* clone the default background of the window into our "base" pixel */ - colors [total_colors - 1].pixel = - get_pixel_resource ("background", "Background", dpy, cmap); - XQueryColor (dpy, cmap, &colors [total_colors - 1]); - colors [total_colors - 1].pixel = base_pixel; - XStoreColors (dpy, cmap, colors, total_colors); - XSetWindowBackground (dpy, window, base_pixel); - XClearWindow (dpy, window); - } - else if (xor_p) - { - NON_TRANSPARENT_XOR: - gcv.function = GXxor; - gcv.foreground = - (default_fg_pixel ^ get_pixel_resource ("background", "Background", - dpy, cmap)); - draw_gc = erase_gc = XCreateGC(dpy,window,GCForeground|GCFunction,&gcv); - } - else - { - NON_TRANSPARENT: - draw_gc = XCreateGC (dpy, window, GCForeground, &gcv); - gcv.foreground = get_pixel_resource ("background", "Background", - dpy, cmap); - erase_gc = XCreateGC (dpy, window, GCForeground, &gcv); - } - - qixes = (struct qix **) malloc ((count + 1) * sizeof (struct qix *)); - qixes [count] = 0; - while (count--) - { - qixes [count] = init_one_qix (dpy, window, nlines); - qixes [count]->id = count; - } - return qixes; -} - -static void -free_qline (dpy, window, cmap, qline, prev, qix) - Display *dpy; - Window window; - Colormap cmap; - struct qline *qline, *prev; - struct qix *qix; -{ - if (qline->dead || !prev) - ; - else if (solid_p) - { - XPoint points [4]; - points [0].x = qline->p1.x; points [0].y = qline->p1.y; - points [1].x = qline->p2.x; points [1].y = qline->p2.y; - points [2].x = prev->p2.x; points [2].y = prev->p2.y; - points [3].x = prev->p1.x; points [3].y = prev->p1.y; - XFillPolygon (dpy, window, (transparent_p ? gcs[1][qix->id] : erase_gc), - points, 4, Complex, CoordModeOrigin); - } - else - XDrawLine (dpy, window, (transparent_p ? gcs[1][qix->id] : erase_gc), - qline->p1.x, qline->p1.y, qline->p2.x, qline->p2.y); - - if (!mono_p && !transparent_p) - XFreeColors (dpy, cmap, &qline->color.pixel, 1, 0); - - qline->dead = True; -} - -static void -add_qline (dpy, window, cmap, qline, prev_qline, qix) - Display *dpy; - Window window; - Colormap cmap; - struct qline *qline, *prev_qline; - struct qix *qix; -{ - *qline = *prev_qline; - -#define wiggle(point,delta,max) \ - if (random_p) delta += (random () % 3) - 1; \ - if (delta > max_spread) delta = max_spread; \ - else if (delta < -max_spread) delta = -max_spread; \ - point += delta; \ - if (point < 0) point = 0, delta = -delta, point += delta<<1; \ - else if (point > max) point = max, delta = -delta, point += delta<<1; - - wiggle (qline->p1.x, qline->p1.dx, maxx); - wiggle (qline->p1.y, qline->p1.dy, maxy); - wiggle (qline->p2.x, qline->p2.dx, maxx); - wiggle (qline->p2.y, qline->p2.dy, maxy); - - if (max_size) - { - if (qline->p1.x - qline->p2.x > max_size) - qline->p1.x = qline->p2.x + max_size - - (random_p ? random() % max_spread : 0); - else if (qline->p2.x - qline->p1.x > max_size) - qline->p2.x = qline->p1.x + max_size - - (random_p ? random() % max_spread : 0); - if (qline->p1.y - qline->p2.y > max_size) - qline->p1.y = qline->p2.y + max_size - - (random_p ? random() % max_spread : 0); - else if (qline->p2.y - qline->p1.y > max_size) - qline->p2.y = qline->p1.y + max_size - - (random_p ? random() % max_spread : 0); - } - - if (!mono_p && !transparent_p) - { - XColor desired; - cycle_hue (&qline->color, color_shift); - qline->color.flags = DoRed | DoGreen | DoBlue; - desired = qline->color; - if (XAllocColor (dpy, cmap, &qline->color)) - { - /* XAllocColor returns the actual RGB that the hardware let us - allocate. Restore the requested values into the XColor struct - so that limited-resolution hardware doesn't cause cycle_hue to - get "stuck". */ - qline->color.red = desired.red; - qline->color.green = desired.green; - qline->color.blue = desired.blue; - } - else - { - qline->color = prev_qline->color; - if (!XAllocColor (dpy, cmap, &qline->color)) - abort (); /* same color should work */ - } - XSetForeground (dpy, draw_gc, qline->color.pixel); - } - if (! solid_p) - XDrawLine (dpy, window, (transparent_p ? gcs[0][qix->id] : draw_gc), - qline->p1.x, qline->p1.y, qline->p2.x, qline->p2.y); - else if (!prev_qline->dead) - { - XPoint points [4]; - points [0].x = qline->p1.x; points [0].y = qline->p1.y; - points [1].x = qline->p2.x; points [1].y = qline->p2.y; - points [2].x = prev_qline->p2.x; points [2].y = prev_qline->p2.y; - points [3].x = prev_qline->p1.x; points [3].y = prev_qline->p1.y; - XFillPolygon (dpy, window, (transparent_p ? gcs[0][qix->id] : draw_gc), - points, 4, Complex, CoordModeOrigin); - } - - qline->dead = False; -} - -static void -qix1 (dpy, window, qix) - Display *dpy; - Window window; - struct qix *qix; -{ - int ofp = qix->fp - 1; - static int gtick = 0; - if (gtick++ == 500) - get_geom (dpy, window), gtick = 0; - if (ofp < 0) ofp = qix->nlines - 1; - free_qline (dpy, window, cmap, &qix->lines [qix->fp], - &qix->lines[(qix->fp + 1) % qix->nlines], qix); - add_qline (dpy, window, cmap, &qix->lines[qix->fp], &qix->lines[ofp], qix); - if ((++qix->fp) >= qix->nlines) - qix->fp = 0; -} - - -char *progclass = "Qix"; - -char *defaults [] = { - "Qix.background: black", /* to placate SGI */ - "Qix.foreground: white", - "*count: 1", - "*segments: 50", - "*spread: 8", - "*size: 0", - "*colorShift: 3", - "*solid: false", - "*delay: 10000", - "*random: true", - "*xor: false", - "*transparent:false", - "*additive: true", - 0 -}; - -XrmOptionDescRec options [] = { - { "-count", ".count", XrmoptionSepArg, 0 }, - { "-segments", ".segments", XrmoptionSepArg, 0 }, - { "-spread", ".spread", XrmoptionSepArg, 0 }, - { "-size", ".size", XrmoptionSepArg, 0 }, - { "-delay", ".delay", XrmoptionSepArg, 0 }, - { "-color-shift", ".colorShift", XrmoptionSepArg, 0 }, - { "-random", ".random", XrmoptionNoArg, "true" }, - { "-linear", ".random", XrmoptionNoArg, "false" }, - { "-solid", ".solid", XrmoptionNoArg, "true" }, - { "-hollow", ".solid", XrmoptionNoArg, "false" }, - { "-xor", ".xor", XrmoptionNoArg, "true" }, - { "-no-xor", ".xor", XrmoptionNoArg, "false" }, - { "-transparent", ".transparent", XrmoptionNoArg, "true" }, - { "-non-transparent", ".transparent", XrmoptionNoArg, "false" }, - { "-additive", ".additive", XrmoptionNoArg, "true" }, - { "-subtractive", ".additive", XrmoptionNoArg, "false" }, -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - struct qix **q1 = init_qix (dpy, window); - struct qix **qn; - while (1) - for (qn = q1; *qn; qn++) - { - qix1 (dpy, window, *qn); - XSync (dpy, True); - if (delay) usleep (delay); - } -} diff --git a/hacks/rocks.c b/hacks/rocks.c deleted file mode 100644 index 4e9e901e..00000000 --- a/hacks/rocks.c +++ /dev/null @@ -1,310 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* Flying through an asteroid field. Based on TI Explorer Lisp code by - John Nguyen - */ - -#include -#include -#include "screenhack.h" - -#define MIN_DEPTH 2 /* rocks disappar when they get this close */ -#define MAX_DEPTH 60 /* this is where rocks appear */ -#define MAX_WIDTH 100 /* how big (in pixels) rocks are at depth 1 */ -#define DEPTH_SCALE 100 /* how many ticks there are between depths */ -#define SIN_RESOLUTION 1000 - -/* there's not much point in the above being user-customizable, but those - numbers might want to be tweaked for displays with an order of magnitude - higher resolution or compute power. - */ - -static double sins [SIN_RESOLUTION]; -static double coss [SIN_RESOLUTION]; -static double depths [(MAX_DEPTH + 1) * DEPTH_SCALE]; - -static Display *dpy; -static Window window; -static int width, height, midx, midy; -static GC draw_gc, erase_gc; -static Bool rotate_p ; - -static int speed; - -struct rock { - int real_size; - int r; - int theta; - int depth; - int size, x, y; -}; - -static struct rock *rocks; -static int nrocks; -static Pixmap pixmaps [MAX_WIDTH]; -static int delay; - -static void rock_reset(), rock_tick(), rock_compute(), rock_draw(); -static void init_pixmaps(), init_rocks(), tick_rocks(), rocks_once(); - - -static void -rock_reset (rock) - struct rock *rock; -{ - rock->real_size = MAX_WIDTH; - rock->r = (SIN_RESOLUTION * 0.7) + (random () % (30 * SIN_RESOLUTION)); - rock->theta = random () % SIN_RESOLUTION; - rock->depth = MAX_DEPTH * DEPTH_SCALE; - rock_compute (rock); - rock_draw (rock, True); -} - -static void -rock_tick (rock, d) - struct rock *rock; - int d; -{ - if (rock->depth > 0) - { - rock_draw (rock, False); - rock->depth -= speed; - if (rotate_p) - { - rock->theta = (rock->theta + d) % SIN_RESOLUTION; - } - while (rock->theta < 0) - rock->theta += SIN_RESOLUTION; - if (rock->depth < (MIN_DEPTH * DEPTH_SCALE)) - rock->depth = 0; - else - { - rock_compute (rock); - rock_draw (rock, True); - } - } - else if ((random () % 40) == 0) - rock_reset (rock); -} - -static void -rock_compute (rock) - struct rock *rock; -{ - double factor = depths [rock->depth]; - rock->size = (int) ((rock->real_size * factor) + 0.5); - rock->x = midx + (coss [rock->theta] * rock->r * factor); - rock->y = midy + (sins [rock->theta] * rock->r * factor); -} - -static void -rock_draw (rock, draw_p) - struct rock *rock; - Bool draw_p; -{ - GC gc = draw_p ? draw_gc : erase_gc; - if (rock->x <= 0 || rock->y <= 0 || rock->x >= width || rock->y >= height) - { - /* this means that if a rock were to go off the screen at 12:00, but - would have been visible at 3:00, it won't come back once the observer - rotates around so that the rock would have been visible again. - Oh well. - */ - rock->depth = 0; - return; - } - if (rock->size <= 1) - XDrawPoint (dpy, window, gc, rock->x, rock->y); - else if (rock->size <= 3 || !draw_p) - XFillRectangle (dpy, window, gc, - rock->x - rock->size/2, rock->y - rock->size/2, - rock->size, rock->size); - else if (rock->size < MAX_WIDTH) - XCopyPlane (dpy, pixmaps [rock->size], window, gc, - 0, 0, rock->size, rock->size, - rock->x - rock->size/2, rock->y - rock->size/2, - 1); - else - abort (); -} - - -static void -init_pixmaps (dpy, window) - Display *dpy; - Window window; -{ - int i; - XGCValues gcv; - GC fg_gc = 0, bg_gc = 0; - pixmaps [0] = pixmaps [1] = 0; - for (i = MIN_DEPTH; i < MAX_WIDTH; i++) - { - int w = (1+(i/32))<<5; /* server might be faster if word-aligned */ - int h = i; - Pixmap p = XCreatePixmap (dpy, window, w, h, 1); - XPoint points [7]; - pixmaps [i] = p; - if (! p) - { - fprintf (stderr, "%s: couldn't allocate pixmaps", progname); - exit (1); - } - if (! fg_gc) - { /* must use drawable of pixmap, not window (fmh) */ - gcv.foreground = 1; - fg_gc = XCreateGC (dpy, p, GCForeground, &gcv); - gcv.foreground = 0; - bg_gc = XCreateGC (dpy, p, GCForeground, &gcv); - } - XFillRectangle (dpy, p, bg_gc, 0, 0, w, h); - points [0].x = i * 0.15; points [0].y = i * 0.85; - points [1].x = i * 0.00; points [1].y = i * 0.20; - points [2].x = i * 0.30; points [2].y = i * 0.00; - points [3].x = i * 0.40; points [3].y = i * 0.10; - points [4].x = i * 0.90; points [4].y = i * 0.10; - points [5].x = i * 1.00; points [5].y = i * 0.55; - points [6].x = i * 0.45; points [6].y = i * 1.00; - XFillPolygon (dpy, p, fg_gc, points, 7, Nonconvex, CoordModeOrigin); - } - XFreeGC (dpy, fg_gc); - XFreeGC (dpy, bg_gc); -} - - -static void -init_rocks (d, w) - Display *d; - Window w; -{ - int i; - XGCValues gcv; - Colormap cmap; - XWindowAttributes xgwa; - unsigned int fg, bg; - dpy = d; - window = w; - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - delay = get_integer_resource ("delay", "Integer"); - if (delay < 0) delay = 0; - speed = get_integer_resource ("speed", "Integer"); - if (speed < 1) speed = 1; - if (speed > 100) speed = 100; - rotate_p = get_boolean_resource ("rotate", "Boolean"); - fg = get_pixel_resource ("foreground", "Foreground", dpy, cmap); - bg = get_pixel_resource ("background", "Background", dpy, cmap); - gcv.foreground = fg; - gcv.background = bg; - draw_gc = XCreateGC (dpy, window, GCForeground|GCBackground, &gcv); - gcv.foreground = bg; - gcv.background = fg; - erase_gc = XCreateGC (dpy, window, GCForeground|GCBackground, &gcv); - - for (i = 0; i < SIN_RESOLUTION; i++) - { - sins [i] = sin ((((double) i) / (SIN_RESOLUTION / 2)) * M_PI); - coss [i] = cos ((((double) i) / (SIN_RESOLUTION / 2)) * M_PI); - } - /* we actually only need i/speed of these, but wtf */ - for (i = 1; i < (sizeof (depths) / sizeof (depths[0])); i++) - depths [i] = atan (((double) 0.5) / (((double) i) / DEPTH_SCALE)); - depths [0] = M_PI/2; /* avoid division by 0 */ - - nrocks = get_integer_resource ("count", "Count"); - if (nrocks < 1) nrocks = 1; - rocks = (struct rock *) calloc (nrocks, sizeof (struct rock)); - init_pixmaps (dpy, window); - XClearWindow (dpy, window); -} - - -static void -tick_rocks (d) - int d; -{ - int i; - for (i = 0; i < nrocks; i++) - rock_tick (&rocks [i], d); -} - -static void -rocks_once () -{ - static int current_delta = 0; /* observer Z rotation */ - static int window_tick = 50; - - if (window_tick++ == 50) - { - XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); - window_tick = 0; - width = xgwa.width; - height = xgwa.height; - midx = width/2; - midy = height/2; - } - - if ((random () % 50) == 0) - { - int d = current_delta; - int new_delta = ((random () % 11) - 5); - if ((random () % 10) == 0) - new_delta *= 5; - - while (d == current_delta) - { - int i; - for (i = 0; i < 3; i++) - tick_rocks (d); - if (current_delta < new_delta) d++; - else d--; - } - current_delta = new_delta; - } - tick_rocks (current_delta); -} - - -char *progclass = "Rocks"; - -char *defaults [] = { - "Rocks.background: black", /* to placate SGI */ - "Rocks.foreground: white", - "*count: 100", - "*delay: 50000", - "*speed: 100", - "*rotate: true", - 0 -}; - -XrmOptionDescRec options [] = { - { "-count", ".count", XrmoptionSepArg, 0 }, - { "-norotate", ".rotate", XrmoptionNoArg, "false" }, - { "-delay", ".delay", XrmoptionSepArg, 0 }, - { "-speed", ".speed", XrmoptionSepArg, 0 } -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - init_rocks (dpy, window); - while (1) - { - rocks_once (); - XSync (dpy, True); - if (delay) usleep (delay); - } -} diff --git a/hacks/rorschach.c b/hacks/rorschach.c deleted file mode 100644 index bea709cd..00000000 --- a/hacks/rorschach.c +++ /dev/null @@ -1,140 +0,0 @@ -/* xscreensaver, Copyright (c) 1992 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include "screenhack.h" - -static GC draw_gc, erase_gc; -static unsigned int default_fg_pixel; -static int iterations, offset; -static Bool xsym, ysym; - -static void -init_rorschach (dpy, window) - Display *dpy; - Window window; -{ - XGCValues gcv; - Colormap cmap; - XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - gcv.foreground = default_fg_pixel = - get_pixel_resource ("foreground", "Foreground", dpy, cmap); - draw_gc = XCreateGC (dpy, window, GCForeground, &gcv); - gcv.foreground = get_pixel_resource ("background", "Background", dpy, cmap); - erase_gc = XCreateGC (dpy, window, GCForeground, &gcv); - iterations = get_integer_resource ("iterations", "Integer"); - offset = get_integer_resource ("offset", "Integer"); - if (offset <= 0) offset = 3; - if (iterations < 10) iterations = 10; - xsym = get_boolean_resource ("xsymmetry", "Symmetry"); - ysym = get_boolean_resource ("ysymmetry", "Symmetry"); -} - -static void -hurm (dpy, window) - Display *dpy; - Window window; -{ - Colormap cmap; - XWindowAttributes xgwa; - int xlim, ylim, x, y, i, got_color = 0; - XPoint points [4]; - XColor color; - XClearWindow (dpy, window); - XGetWindowAttributes (dpy, window, &xgwa); - xlim = xgwa.width; - ylim = xgwa.height; - cmap = xgwa.colormap; - - if (! mono_p) - hsv_to_rgb (random()%360, 1.0, 1.0, &color.red, &color.green, &color.blue); - if ((!mono_p) && (got_color = XAllocColor (dpy, cmap, &color))) - XSetForeground (dpy, draw_gc, color.pixel); - else - XSetForeground (dpy, draw_gc, default_fg_pixel); - - x = xlim/2; - y = ylim/2; - for (i = 0; i < iterations; i++) - { - int j = 0; - x += ((random () % (1 + (offset << 1))) - offset); - y += ((random () % (1 + (offset << 1))) - offset); - points [j].x = x; - points [j].y = y; - j++; - if (xsym) - { - points [j].x = xlim - x; - points [j].y = y; - j++; - } - if (ysym) - { - points [j].x = x; - points [j].y = ylim - y; - j++; - } - if (xsym && ysym) - { - points [j].x = xlim - x; - points [j].y = ylim - y; - j++; - } - XDrawPoints (dpy, window, draw_gc, points, j, CoordModeOrigin); - XSync (dpy, True); - } - sleep (5); - for (i = 0; i < (ylim >> 1); i++) - { - int y = (random () % ylim); - XDrawLine (dpy, window, erase_gc, 0, y, xlim, y); - XFlush (dpy); - if ((i % 50) == 0) - usleep (10000); - } - XClearWindow (dpy, window); - if (got_color) XFreeColors (dpy, cmap, &color.pixel, 1, 0); - XSync (dpy, True); - sleep (1); -} - - -char *progclass = "Rorschach"; - -char *defaults [] = { - "Rorschach.background: black", /* to placate SGI */ - "Rorschach.foreground: white", - "*xsymmetry: true", - "*ysymmetry: false", - "*iterations: 4000", - "*offset: 4", - 0 -}; - -XrmOptionDescRec options [] = { - { "-iterations", ".iterations", XrmoptionSepArg, 0 }, - { "-offset", ".offset", XrmoptionSepArg, 0 }, - { "-xsymmetry", ".xsymmetry", XrmoptionNoArg, "true" }, - { "-ysymmetry", ".ysymmetry", XrmoptionNoArg, "true" } -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - init_rorschach (dpy, window); - while (1) - hurm (dpy, window); -} diff --git a/hacks/screenhack.c b/hacks/screenhack.c deleted file mode 100644 index 6c7a0300..00000000 --- a/hacks/screenhack.c +++ /dev/null @@ -1,247 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - * And remember: X Windows is to graphics hacking as roman numerals are to - * the square root of pi. - */ - -/* This file contains simple code to open a window or draw on the root. - The idea being that, when writing a graphics hack, you can just link - with this .o to get all of the uninteresting junk out of the way. - - - create a procedure `screenhack(dpy, window)' - - - create a variable `char *progclass' which names this program's - resource class. - - - create a variable `char defaults []' for the default resources. - - - create a variable `XrmOptionDescRec options []' for the command-line, - and `int options_size' which is `XtNumber (options)'. - - And that's it... - */ - -#include "version.h" - -#include -#include -#include -#include -#include -#include -#include -#include "screenhack.h" - -char *progname; -XrmDatabase db; -Bool mono_p; - -#if __STDC__ -# define P(x) x -#else -# define P(x)() -#endif - - -static XrmOptionDescRec default_options [] = { - { "-root", ".root", XrmoptionNoArg, "True" }, - { "-window", ".root", XrmoptionNoArg, "False" }, - { "-mono", ".mono", XrmoptionNoArg, "True" }, - { "-install", ".installColormap", XrmoptionNoArg, "True" }, - { "-visual", ".visualID", XrmoptionSepArg, 0 } -}; - -static char *default_defaults[] = { - "*root: false", - "*geometry: 500x500", /* this should be .geometry, but nooooo... */ - "*mono: false", - "*installColormap: false", - "*visualID: default", - 0 -}; - -static XrmOptionDescRec *merged_options; -static int merged_options_size; -static char **merged_defaults; - -static void -merge_options P((void)) -{ - int options_sizeof = options_size * sizeof (options[0]); - int defaults_size; - merged_options_size = XtNumber (default_options) + options_size; - merged_options = (XrmOptionDescRec *) - malloc (sizeof (default_options) + options_sizeof); - memcpy (merged_options, options, options_sizeof); - memcpy (merged_options + options_size, default_options, - sizeof (default_options)); - - for (defaults_size = 0; defaults [defaults_size]; defaults_size++); - merged_defaults = (char **) - malloc (sizeof (default_defaults) + (defaults_size * sizeof (char *))); - memcpy (merged_defaults, default_defaults, sizeof (default_defaults)); - memcpy ((merged_defaults - 1 + - (sizeof (default_defaults) / sizeof (default_defaults[0]))), - defaults, ((defaults_size + 1) * sizeof (defaults[0]))); -} - - -/* Make the X errors print out the name of this program, so we have some - clue which one has a bug when they die under the screensaver. - */ - -static int -screenhack_ehandler (dpy, error) - Display *dpy; - XErrorEvent *error; -{ - fprintf (stderr, "\nX error in %s:\n", progname); - if (XmuPrintDefaultErrorMessage (dpy, error, stderr)) - exit (-1); - else - fprintf (stderr, " (nonfatal.)\n"); - return 0; -} - -static Bool -MapNotify_event_p (dpy, event, window) - Display *dpy; - XEvent *event; - XPointer window; -{ - return (event->xany.type == MapNotify && - event->xvisibility.window == (Window) window); -} - - -void -main (argc, argv) - int argc; - char **argv; -{ - XtAppContext app; - Widget toplevel; - Display *dpy; - Window window; - Visual *visual; - Colormap cmap; - Bool root_p; - XEvent event; - - merge_options (); - toplevel = XtAppInitialize (&app, progclass, merged_options, - merged_options_size, &argc, argv, - merged_defaults, 0, 0); - dpy = XtDisplay (toplevel); - db = XtDatabase (dpy); - XtGetApplicationNameAndClass (dpy, &progname, &progclass); - XSetErrorHandler (screenhack_ehandler); - if (argc > 1) - { - int i; - int x = 18; - int end = 78; - fprintf (stderr, "%s: unrecognised option \"%s\"\n", progname, argv[1]); - fprintf (stderr, "Options include: "); - for (i = 0; i < merged_options_size; i++) - { - char *sw = merged_options [i].option; - Bool argp = (merged_options [i].argKind == XrmoptionSepArg); - int size = strlen (sw) + (argp ? 6 : 0) + 2; - if (x + size >= end) - { - fprintf (stderr, "\n\t\t "); - x = 18; - } - x += size; - fprintf (stderr, "%s", sw); - if (argp) fprintf (stderr, " "); - if (i != merged_options_size - 1) fprintf (stderr, ", "); - } - fprintf (stderr, ".\n"); - exit (1); - } - - mono_p = get_boolean_resource ("mono", "Boolean"); - if (CellsOfScreen (DefaultScreenOfDisplay (dpy)) <= 2) - mono_p = True; - - root_p = get_boolean_resource ("root", "Boolean"); - if (root_p) - { - XWindowAttributes xgwa; - window = RootWindowOfScreen (XtScreen (toplevel)); - XtDestroyWidget (toplevel); - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - visual = xgwa.visual; - } - else - { - visual = get_visual_resource (dpy, "visualID", "VisualID"); - - XtVaSetValues (toplevel, XtNmappedWhenManaged, False, 0); - XtRealizeWidget (toplevel); - window = XtWindow (toplevel); - - if (visual != DefaultVisualOfScreen (XtScreen (toplevel))) - { - Arg av [20]; - int ac; - unsigned int bg, bd; - Widget new; - cmap = XCreateColormap (dpy, window, visual, AllocNone); - bg = get_pixel_resource ("background", "Background", dpy, cmap); - bd = get_pixel_resource ("borderColor", "Foreground", dpy, cmap); - ac = 0; - XtSetArg (av[ac], XtNvisual, visual); ac++; - XtSetArg (av[ac], XtNcolormap, cmap); ac++; - XtSetArg (av[ac], XtNdepth, get_visual_depth (dpy, visual)); ac++; - XtSetArg (av[ac], XtNbackground, (Pixel) bg); ac++; - XtSetArg (av[ac], XtNborderColor, (Pixel) bd); ac++; - new = XtAppCreateShell (progname, progclass, - topLevelShellWidgetClass, dpy, - av, ac); - XtDestroyWidget (toplevel); - toplevel = new; - } - else if (get_boolean_resource ("installColormap", "InstallColormap")) - { - cmap = XCreateColormap (dpy, window, - DefaultVisualOfScreen (XtScreen (toplevel)), - AllocNone); - XSetWindowColormap (dpy, window, cmap); - } - else - { - cmap = DefaultColormap (dpy, DefaultScreen (dpy)); - } - - XtPopup (toplevel, XtGrabNone); - window = XtWindow (toplevel); - } - - if (!get_boolean_resource ("dontClearWindow", "Boolean")) /* kludge-o-rama */ - { - XSetWindowBackground (dpy, window, - get_pixel_resource ("background", "Background", - dpy, cmap)); - XClearWindow (dpy, window); - } - - if (!root_p && toplevel->core.mapped_when_managed) - /* wait for it to be mapped */ - XIfEvent (dpy, &event, MapNotify_event_p, (XPointer) window); - - XSync (dpy, False); - srandom ((int) time ((time_t *) 0)); - screenhack (dpy, window); -} diff --git a/hacks/screenhack.h b/hacks/screenhack.h deleted file mode 100644 index 9be43672..00000000 --- a/hacks/screenhack.h +++ /dev/null @@ -1,139 +0,0 @@ -/* xscreensaver, Copyright (c) 1992-1995 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* Found in Don Hopkins' .plan file: - * - * The color situation is a total flying circus. The X approach to - * device independence is to treat everything like a MicroVax framebuffer - * on acid. A truely portable X application is required to act like the - * persistent customer in the Monty Python ``Cheese Shop'' sketch. Even - * the simplest applications must answer many difficult questions, like: - * - * WHAT IS YOUR DISPLAY? - * display = XOpenDisplay("unix:0"); - * WHAT IS YOUR ROOT? - * root = RootWindow(display, DefaultScreen(display)); - * AND WHAT IS YOUR WINDOW? - * win = XCreateSimpleWindow(display, root, 0, 0, 256, 256, 1, - * BlackPixel(display, DefaultScreen(display)), - * WhitePixel(display, DefaultScreen(display))) - * OH ALL RIGHT, YOU CAN GO ON. - * - * WHAT IS YOUR DISPLAY? - * display = XOpenDisplay("unix:0"); - * WHAT IS YOUR COLORMAP? - * cmap = DefaultColormap(display, DefaultScreen(display)); - * AND WHAT IS YOUR FAVORITE COLOR? - * favorite_color = 0; / * Black. * / - * / * Whoops! No, I mean: * / - * favorite_color = BlackPixel(display, DefaultScreen(display)); - * / * AAAYYYYEEEEE!! (client dumps core & falls into the chasm) * / - * - * WHAT IS YOUR DISPLAY? - * display = XOpenDisplay("unix:0"); - * WHAT IS YOUR VISUAL? - * struct XVisualInfo vinfo; - * if (XMatchVisualInfo(display, DefaultScreen(display), - * 8, PseudoColor, &vinfo) != 0) - * visual = vinfo.visual; - * AND WHAT IS THE NET SPEED VELOCITY OF AN XConfigureWindow REQUEST? - * / * Is that a SubStructureRedirectMask or a ResizeRedirectMask? * / - * WHAT?! HOW AM I SUPPOSED TO KNOW THAT? - * AAAAUUUGGGHHH!!!! (server dumps core & falls into the chasm) - */ - -#ifndef _SCREENHACK_H_ -#define _SCREENHACK_H_ - -#if __STDC__ -#include -#endif - -#ifdef __hpux - /* Which of the ten billion standards does values.h belong to? - What systems always have it? */ -# include -#endif - -#include -#include -#include -#include "vroot.h" - -extern Bool mono_p; -extern char *progname; -extern char *progclass; -extern XrmDatabase db; -extern XrmOptionDescRec options []; -extern int options_size; -extern char *defaults []; - -/* Screw it, we'll just use our own RNG. See xscreensaver/utils/yarandom.c. */ -#include "yarandom.h" - - -#undef P -#if __STDC__ -# define P(x)x -#else -# define P(x)() -#endif - -extern void screenhack P((Display*,Window)); - -#define usleep screenhack_usleep - -extern void screenhack_usleep P((unsigned long)); -extern char *get_string_resource P((char*,char*)); -extern Bool get_boolean_resource P((char*,char*)); -extern int get_integer_resource P((char*,char*)); -extern double get_float_resource P((char*,char*)); -extern unsigned int get_pixel_resource P((char*,char*,Display*,Colormap)); -extern unsigned int get_minutes_resource P((char*,char*)); -extern unsigned int get_seconds_resource P((char*,char*)); - -extern Visual *get_visual_resource P((Display *, char *, char *)); -extern int get_visual_depth P((Display *, Visual *)); - -extern void hsv_to_rgb P((int,double,double,unsigned short*, - unsigned short*,unsigned short*)); -extern void rgb_to_hsv P((unsigned short,unsigned short,unsigned short, - int*,double*,double*)); -extern void cycle_hue P((XColor*,int)); - -extern void make_color_ramp P((int h1, double s1, double v1, - int h2, double s2, double v2, - XColor *pixels, int npixels)); - -extern Pixmap grab_screen_image P((Display *dpy, Window window, int root_p)); -extern void copy_default_colormap_contents P((Display *dpy, Colormap to_cmap, - Visual *to_visual)); - -#if defined (__GNUC__) && (__GNUC__ >= 2) - /* Implement frand using GCC's statement-expression extension. */ - -# define frand(f) \ - ({ double tmp = (((double) random()) / \ - (((double) ((unsigned int)~0)) / ((double) (f+f)))); \ - tmp < 0 ? (-tmp) : tmp; }) - -#else /* not GCC2 - implement frand using a global variable.*/ - -static double _frand_tmp_; -# define frand(f) \ - (_frand_tmp_ = (((double) random()) / \ - (((double) ((unsigned int)~0)) / ((double) (f+f)))), \ - _frand_tmp_ < 0 ? (-_frand_tmp_) : _frand_tmp_) - -#endif /* not GCC2 */ - -#undef P -#endif /* _SCREENHACK_H_ */ diff --git a/hacks/slidescreen.c b/hacks/slidescreen.c deleted file mode 100644 index 6c8ccf71..00000000 --- a/hacks/slidescreen.c +++ /dev/null @@ -1,253 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1993, 1994 - * Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include "screenhack.h" - -static int grid_size; -static int pix_inc; -static int hole_x, hole_y; -static int bitmap_w, bitmap_h; -static int xoff, yoff; -static int grid_w, grid_h; -static int delay, delay2; -static GC gc; - -static void -init_slide (dpy, window) - Display *dpy; - Window window; -{ - int i; - XGCValues gcv; - XWindowAttributes xgwa; - int border; - int root_p; - unsigned long fg; - Pixmap pixmap; - Drawable d; - Colormap cmap; - Visual *visual; - - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - visual = xgwa.visual; - - copy_default_colormap_contents (dpy, cmap, visual); - - delay = get_integer_resource ("delay", "Integer"); - delay2 = get_integer_resource ("delay2", "Integer"); - grid_size = get_integer_resource ("gridSize", "Integer"); - pix_inc = get_integer_resource ("pixelIncrement", "Integer"); - border = get_integer_resource ("internalBorderWidth", "InternalBorderWidth"); - fg = get_pixel_resource ("background", "Background", dpy, - /* Pixels always come out of default map. */ - XDefaultColormapOfScreen (xgwa.screen)); - root_p = get_boolean_resource ("root", "Boolean"); - - if (delay < 0) delay = 0; - if (delay2 < 0) delay2 = 0; - if (pix_inc < 1) pix_inc = 1; - if (grid_size < 1) grid_size = 1; - - gcv.foreground = fg; - gcv.function = GXcopy; - gcv.subwindow_mode = IncludeInferiors; - gc = XCreateGC (dpy, window, GCForeground |GCFunction | GCSubwindowMode, - &gcv); - - pixmap = grab_screen_image (dpy, window, root_p); - - XGetWindowAttributes (dpy, window, &xgwa); - bitmap_w = xgwa.width; - bitmap_h = xgwa.height; - - grid_w = bitmap_w / grid_size; - grid_h = bitmap_h / grid_size; - hole_x = random () % grid_w; - hole_y = random () % grid_h; - xoff = (bitmap_w - (grid_w * grid_size)) / 2; - yoff = (bitmap_h - (grid_h * grid_size)) / 2; - - d = (pixmap ? pixmap : window); - - if (border) - { - int i; - for (i = 0; i <= bitmap_w; i += grid_size) - XFillRectangle (dpy, d, gc, xoff+i-border/2, yoff, border, bitmap_h); - for (i = 0; i <= bitmap_h; i += grid_size) - XFillRectangle (dpy, d, gc, xoff, yoff+i-border/2, bitmap_w, border); - } - - if (xoff) - { - XFillRectangle (dpy, d, gc, 0, 0, xoff, bitmap_h); - XFillRectangle (dpy, d, gc, bitmap_w - xoff, 0, xoff, bitmap_h); - } - if (yoff) - { - XFillRectangle (dpy, d, gc, 0, 0, bitmap_w, yoff); - XFillRectangle (dpy, d, gc, 0, bitmap_h - yoff, bitmap_w, yoff); - } - - if (pixmap) XClearWindow (dpy, window); - XSync (dpy, True); - if (delay2) usleep (delay2 * 2); - for (i = 0; i < grid_size; i += pix_inc) - { - XPoint points [3]; - points[0].x = xoff + grid_size * hole_x; - points[0].y = yoff + grid_size * hole_y; - points[1].x = points[0].x + grid_size; - points[1].y = points[0].y; - points[2].x = points[0].x; - points[2].y = points[0].y + i; - XFillPolygon (dpy, window, gc, points, 3, Convex, CoordModeOrigin); - - points[1].x = points[0].x; - points[1].y = points[0].y + grid_size; - points[2].x = points[0].x + i; - points[2].y = points[0].y + grid_size; - XFillPolygon (dpy, window, gc, points, 3, Convex, CoordModeOrigin); - - points[0].x = points[1].x + grid_size; - points[0].y = points[1].y; - points[2].x = points[0].x; - points[2].y = points[0].y - i; - XFillPolygon (dpy, window, gc, points, 3, Convex, CoordModeOrigin); - - points[1].x = points[0].x; - points[1].y = points[0].y - grid_size; - points[2].x = points[1].x - i; - points[2].y = points[1].y; - XFillPolygon (dpy, window, gc, points, 3, Convex, CoordModeOrigin); - - XSync (dpy, True); - if (delay) usleep (delay); - } - - XFillRectangle (dpy, window, gc, - xoff + grid_size * hole_x, - yoff + grid_size * hole_y, - grid_size, grid_size); -} - -static void -slide1 (dpy, window) - Display *dpy; - Window window; -{ - /* this code is a total kludge, but who cares, it works... */ - int i, x, y, ix, iy, dx, dy, dir, w, h, size, inc; - static int last = -1; - do { - dir = random () % 4; - switch (dir) - { - case 0: dx = 0, dy = 1; break; - case 1: dx = -1, dy = 0; break; - case 2: dx = 0, dy = -1; break; - case 3: dx = 1, dy = 0; break; - default: abort (); - } - } while (dir == last || - hole_x + dx < 0 || hole_x + dx >= grid_w || - hole_y + dy < 0 || hole_y + dy >= grid_h); - if (grid_w > 1 && grid_h > 1) - last = (dir == 0 ? 2 : dir == 2 ? 0 : dir == 1 ? 3 : 1); - - switch (dir) - { - case 0: size = 1 + (random()%(grid_h - hole_y - 1)); h = size; w = 1; break; - case 1: size = 1 + (random()%hole_x); w = size; h = 1; break; - case 2: size = 1 + (random()%hole_y); h = size; w = 1; break; - case 3: size = 1 + (random()%(grid_w - hole_x - 1)); w = size; h = 1; break; - default: abort (); - } - - if (dx == -1) hole_x -= (size - 1); - else if (dy == -1) hole_y -= (size - 1); - - ix = x = xoff + (hole_x + dx) * grid_size; - iy = y = yoff + (hole_y + dy) * grid_size; - inc = pix_inc; - for (i = 0; i < grid_size; i += inc) - { - if (inc + i > grid_size) - inc = grid_size - i; - XCopyArea (dpy, window, window, gc, x, y, grid_size * w, grid_size * h, - x - dx * inc, y - dy * inc); - x -= dx * inc; - y -= dy * inc; - switch (dir) - { - case 0: XFillRectangle (dpy, window, gc, - ix, y + grid_size * h, grid_size * w, iy - y); - break; - case 1: XFillRectangle (dpy, window, gc, ix, iy, x - ix, grid_size * h); - break; - case 2: XFillRectangle (dpy, window, gc, ix, iy, grid_size * w, y - iy); - break; - case 3: XFillRectangle (dpy, window, gc, - x + grid_size * w, iy, ix - x, grid_size * h); - break; - } - - XSync (dpy, True); - if (delay) usleep (delay); - } - switch (dir) - { - case 0: hole_y += size; break; - case 1: hole_x--; break; - case 2: hole_y--; break; - case 3: hole_x += size; break; - } -} - - -char *progclass = "SlidePuzzle"; - -char *defaults [] = { - "SlidePuzzle.mappedWhenManaged:false", - "SlidePuzzle.dontClearWindow: true", - "*background: black", - "*gridSize: 70", - "*pixelIncrement: 10", - "*internalBorderWidth: 1", - "*delay: 50000", - "*delay2: 1000000", - 0 -}; - -XrmOptionDescRec options [] = { - { "-grid-size", ".gridSize", XrmoptionSepArg, 0 }, - { "-ibw", ".internalBorderWidth", XrmoptionSepArg, 0 }, - { "-increment", ".pixelIncrement", XrmoptionSepArg, 0 }, - { "-delay", ".delay", XrmoptionSepArg, 0 }, - { "-delay2", ".delay2", XrmoptionSepArg, 0 }, -}; - -int options_size = (sizeof (options) / sizeof (options[0])); - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - init_slide (dpy, window); - while (1) - { - slide1 (dpy, window); - if (delay2) usleep (delay2); - } -} diff --git a/hacks/vroot.h b/hacks/vroot.h deleted file mode 100644 index e6d57646..00000000 --- a/hacks/vroot.h +++ /dev/null @@ -1,123 +0,0 @@ -/*****************************************************************************/ -/** Copyright 1991 by Andreas Stolcke **/ -/** Copyright 1990 by Solbourne Computer Inc. **/ -/** Longmont, Colorado **/ -/** **/ -/** All Rights Reserved **/ -/** **/ -/** Permission to use, copy, modify, and distribute this software and **/ -/** its documentation for any purpose and without fee is hereby **/ -/** granted, provided that the above copyright notice appear in all **/ -/** copies and that both that copyright notice and this permis- **/ -/** sion notice appear in supporting documentation, and that the **/ -/** name of Solbourne not be used in advertising **/ -/** in publicity pertaining to distribution of the software without **/ -/** specific, written prior permission. **/ -/** **/ -/** ANDREAS STOLCKE AND SOLBOURNE COMPUTER INC. DISCLAIMS ALL WARRANTIES **/ -/** WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF **/ -/** MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ANDREAS STOLCKE **/ -/** OR SOLBOURNE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL **/ -/** DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA **/ -/** OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER **/ -/** TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE **/ -/** OR PERFORMANCE OF THIS SOFTWARE. **/ -/*****************************************************************************/ -/* - * vroot.h -- Virtual Root Window handling header file - * - * This header file redefines the X11 macros RootWindow and DefaultRootWindow, - * making them look for a virtual root window as provided by certain `virtual' - * window managers like swm and tvtwm. If none is found, the ordinary root - * window is returned, thus retaining backward compatibility with standard - * window managers. - * The function implementing the virtual root lookup remembers the result of - * its last invocation to avoid overhead in the case of repeated calls - * on the same display and screen arguments. - * The lookup code itself is taken from Tom LaStrange's ssetroot program. - * - * Most simple root window changing X programs can be converted to using - * virtual roots by just including - * - * #include - * - * after all the X11 header files. It has been tested on such popular - * X clients as xphoon, xfroot, xloadimage, and xaqua. - * It also works with the core clients xprop, xwininfo, xwd, and editres - * (and is necessary to get those clients working under tvtwm). - * It does NOT work with xsetroot; get the xsetroot replacement included in - * the tvtwm distribution instead. - * - * Andreas Stolcke , 9/7/90 - * - replaced all NULL's with properly cast 0's, 5/6/91 - * - free children list (suggested by Mark Martin ), 5/16/91 - * - include X11/Xlib.h and support RootWindowOfScreen, too 9/17/91 - */ - -#ifndef _VROOT_H_ -#define _VROOT_H_ - -#if !defined(lint) && !defined(SABER) -static char vroot_rcsid[] = "$Id: vroot.h,v 1.1 1994/08/25 22:04:24 jwz Exp $"; -#endif - -#include -#include -#include - -static Window -VirtualRootWindowOfScreen(screen) - Screen *screen; -{ - static Screen *save_screen = (Screen *)0; - static Window root = (Window)0; - - if (screen != save_screen) { - Display *dpy = DisplayOfScreen(screen); - Atom __SWM_VROOT = None; - int i; - Window rootReturn, parentReturn, *children; - unsigned int numChildren; - - root = RootWindowOfScreen(screen); - - /* go look for a virtual root */ - __SWM_VROOT = XInternAtom(dpy, "__SWM_VROOT", False); - if (XQueryTree(dpy, root, &rootReturn, &parentReturn, - &children, &numChildren)) { - for (i = 0; i < numChildren; i++) { - Atom actual_type; - int actual_format; - unsigned long nitems, bytesafter; - Window *newRoot = (Window *)0; - - if (XGetWindowProperty(dpy, children[i], - __SWM_VROOT, 0, 1, False, XA_WINDOW, - &actual_type, &actual_format, - &nitems, &bytesafter, - (unsigned char **) &newRoot) == Success - && newRoot) { - root = *newRoot; - break; - } - } - if (children) - XFree((char *)children); - } - - save_screen = screen; - } - - return root; -} - -#undef RootWindowOfScreen -#define RootWindowOfScreen(s) VirtualRootWindowOfScreen(s) - -#undef RootWindow -#define RootWindow(dpy,screen) VirtualRootWindowOfScreen(ScreenOfDisplay(dpy,screen)) - -#undef DefaultRootWindow -#define DefaultRootWindow(dpy) VirtualRootWindowOfScreen(DefaultScreenOfDisplay(dpy)) - -#endif /* _VROOT_H_ */ diff --git a/hacks/xlock.h b/hacks/xlock.h deleted file mode 100644 index 19e5fdab..00000000 --- a/hacks/xlock.h +++ /dev/null @@ -1,160 +0,0 @@ -/* -** Helpful definitions for porting xlock modes to xscreensaver. -** by Charles Hannum, mycroft@ai.mit.edu -** -** for xlock 2.3 and xscreensaver 1.2, 28AUG92 -** -** -** Modified for xlockmore 3.0 by Anthony Thyssen -** on August 1995. -** -** To use, just copy the appropriate file from xlock, add a target -** for it in the Imakefile, and do the following: -** -** 1) If you include math.h, make sure it is before xlock.h. -** 2) Make sure the first thing you do in initfoo() is to call -** XGetWindowAttributes. This is what actually sets up the -** colormap and whatnot. -** 3) Add an appropriate PROGRAM() line at the end of the .c file. -** The information you need for this comes from xlock's file -** resource.c. -** -** That's about all there is to it. -** -** As an added bonus, if you put an empty definition of PROGRAM() in -** xlock's xlock.h, you can now use the code with either xlock or -** xscreensaver. -** -** -** If you make any improvements to this code, please send them to me! -** It could certainly use some more work. -*/ - -#include "screenhack.h" - -#define MAXSCREENS 1 - -static GC gc; -static unsigned long *pixels = 0, fg_pixel, bg_pixel; -static int npixels; -static Colormap cmap; - -static int batchcount; -static unsigned int delay; -static unsigned int cycles; -static double saturation; - -#ifndef min -#define min(a,b) ((a)<(b)?(a):(b)) -#endif - -typedef struct { - GC gc; - int npixels; - u_long *pixels; -} perscreen; - -static perscreen Scr[MAXSCREENS]; -static Display *dsp; - -static int screen = 0; - -static void -My_XGetWindowAttributes (dpy, win, xgwa) - Display *dpy; - Window win; - XWindowAttributes *xgwa; -{ - XGetWindowAttributes (dpy, win, xgwa); - - if (! pixels) { - XGCValues gcv; - XColor color; - int n; - int i, shift; - - cmap = xgwa->colormap; - - i = get_integer_resource ("ncolors", "Integer"); - if (i <= 2) i = 2, mono_p = True; - shift = 360 / i; - pixels = (unsigned long *) calloc (i, sizeof (unsigned long)); - fg_pixel = get_pixel_resource ("foreground", "Foreground", dpy, cmap); - bg_pixel = get_pixel_resource ("background", "Background", dpy, cmap); - if (! mono_p) { - for (npixels = 0; npixels < i; npixels++) { - hsv_to_rgb ((360*npixels)/i, saturation, 1.0, - &color.red, &color.green, &color.blue); - if (! XAllocColor (dpy, cmap, &color)) - break; - pixels[npixels] = color.pixel; - } - } - n = get_integer_resource ("delay", "Usecs"); - if (n >= 0) delay = n; - n = get_integer_resource ("count", "Integer"); - if (n > 0) batchcount = n; - - n = get_integer_resource ("cycles", "Integer"); - if (n >= 0) cycles = n; - - gcv.foreground = fg_pixel; - gcv.background = bg_pixel; - gc = XCreateGC (dpy, win, GCForeground|GCBackground, &gcv); - - XClearWindow (dpy, win); - - Scr[screen].gc = gc; - Scr[screen].npixels = npixels; - Scr[screen].pixels = pixels; - } -} - -#define XGetWindowAttributes(a,b,c) My_XGetWindowAttributes(a,b,c) - -#undef BlackPixel -#define BlackPixel(a,b) bg_pixel -#undef WhitePixel -#define WhitePixel(a,b) fg_pixel -#define mono mono_p - -#define seconds() time((time_t*)0) - -char *defaults[] = { - "*background: black", - "*foreground: white", - "*ncolors: 64", - "*delay: -1", - "*count: -1", - "*cycles: -1", - 0 -}; - -XrmOptionDescRec options[] = { - {"-count", ".count", XrmoptionSepArg, 0}, - {"-ncolors", ".ncolors", XrmoptionSepArg, 0}, - {"-delay", ".delay", XrmoptionSepArg, 0}, - {"-cycles", ".cycles", XrmoptionSepArg, 0}, -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -#define PROGRAM(Y,Z,D,B,C,S) \ -char *progclass = Y; \ - \ -void screenhack (dpy, window) \ - Display *dpy; \ - Window window; \ -{ \ - batchcount = B; \ - delay = D; \ - cycles = C; \ - saturation = S; \ - dsp = dpy; \ - \ - init##Z (window); \ - while (1) { \ - draw##Z (window); \ - XSync (dpy, True); \ - if (delay) usleep (delay); \ - } \ -} diff --git a/hacks/xroger-hack.c b/hacks/xroger-hack.c deleted file mode 100644 index 615ade16..00000000 --- a/hacks/xroger-hack.c +++ /dev/null @@ -1,103 +0,0 @@ -/* xscreensaver, Copyright (c) 1991-1994 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include "screenhack.h" - -char *progclass = "XRoger"; - -char *defaults [] = { - "XRoger.background: black", - "XRoger.foreground: red", - "*delay: 5", - 0 -}; - -XrmOptionDescRec options [] = { - { "-delay", ".delay", XrmoptionSepArg, 0 } -}; -int options_size = (sizeof (options) / sizeof (options[0])); - -#if __STDC__ -extern void skull (Display *, Window, GC, GC, int, int, int, int); -#endif - -void -screenhack (dpy, window) - Display *dpy; - Window window; -{ - double delta = 0.005; - XGCValues gcv; - Colormap cmap; - GC draw_gc, erase_gc; - unsigned int fg; - XColor color, color2, color3; - int delay = get_integer_resource ("delay", "Integer"); - XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - gcv.foreground = get_pixel_resource ("background", "Background", dpy, cmap); - erase_gc = XCreateGC (dpy, window, GCForeground, &gcv); - fg = get_pixel_resource ("foreground", "Foreground", dpy, cmap); - if (fg == gcv.foreground) - fg = ((gcv.foreground == WhitePixel (dpy, DefaultScreen (dpy))) - ? BlackPixel (dpy, DefaultScreen (dpy)) - : WhitePixel (dpy, DefaultScreen (dpy))); - gcv.foreground = fg; - draw_gc = XCreateGC (dpy, window, GCForeground, &gcv); - color.pixel = gcv.foreground; - XQueryColor (dpy, cmap, &color); - while (1) - { - int w, h, ww, hh, x, y; - time_t start_time; - XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); - w = xgwa.width; - h = xgwa.height; - - ww = 100 + random () % (w - 100); - hh = 100 + random () % (h - 100); - if (ww < 10) ww = 50; - if (hh < 10) hh = 50; - if (ww < hh) hh = ww; - else ww = hh; - x = random () % (w - ww); - y = random () % (h - hh); - XClearWindow (dpy, window); - skull (dpy, window, draw_gc, erase_gc, x, y, ww, hh); - XSync (dpy, True); - start_time = time ((time_t *) 0); - if (mono_p) - sleep (delay); - else - while (start_time + delay > time ((time_t *) 0)) - { - int h; - double s, v; - color2 = color; - rgb_to_hsv (color2.red, color2.green, color2.blue, &h, &s, &v); - v += delta; - if (v >= 1.0) v = 1.0, delta = -delta; - if (v <= 0.7) v = 0.7, delta = -delta; - hsv_to_rgb (h, s, v, &color2.red, &color2.green, &color2.blue); - color3 = color2; - if (XAllocColor (dpy, cmap, &color3)) - { - XSetForeground (dpy, draw_gc, color3.pixel); - color2.pixel = color3.pixel; - XFreeColors (dpy, cmap, &color.pixel, 1, 0); - } - color = color2; - usleep (20000); - } - } -} diff --git a/lib/X11/app-defaults/XScreenSaver b/lib/X11/app-defaults/XScreenSaver new file mode 100644 index 00000000..dd4fc63e --- /dev/null +++ b/lib/X11/app-defaults/XScreenSaver @@ -0,0 +1,353 @@ +! app-defaults file for XScreenSaver by Jamie Zawinski. +! See "man xscreensaver" for more info. The latest version is always +! available at http://people.netscape.com/jwz/xscreensaver/ + +*timeout: 10 +*cycle: 10 +*lockTimeout: 0 +*passwdTimeout: 30 +*nice: 10 +*lock: False +*verbose: False +*fade: True +*unfade: False +*fadeSeconds: 3 +*fadeTicks: 20 + +*captureStderr: True +*captureStdout: True +*textForeground: Yellow +*textBackground: Black +*overlayStderr: True +*font: *-medium-r-*-140-*-m-* + +! Turning on "installColormap" interacts erratically with twm and tvtwm, +! but seems to work fine with mwm and olwm. Try it and see. If your +! screen turns some color other than black, the window manager is buggy, +! and you need to set this resource to False (or get a WM that works.) +! +*installColormap: True + + +! Any program which can draw on the root window will work as a screensaver. +! The following resource enumerates them. +! +! Programs are separated by newlines (specified in resource files with \n). +! Lines may be continued with a lone \ at the end of the line. +! +! Each line is an `sh' command. +! +! But, if the first word on the line is the name of a visual followed by a +! colon, then that visual will be used for the program, if it is available. +! If no such visual is available, then the program will be skipped. In +! this way, you can specify that you want certain programs to run only +! on color screens, and others only on mono screens, by making use of the +! magic visual names "color" and "mono". Likewise, if some hacks prefer +! colormaps, but others prefer 24-bit windows, that also can be arranged +! (in this case, by using "PseudoColor:" versus "TrueColor:".) +! +! All programs must be launched in such a way that they draw on the root +! window; they should not be spawned in the background with "&". If shell +! metacharacters are used, they must be understandable to `sh', not `csh' +! (the $SHELL variable is not consulted, for unfortunate but good reasons.) +! +*programs: qix -root \n\ + qix -root -solid -delay 0 -segments 100 \n\ + qix -root -linear -count 10 -size 100 -segments 200 \n\ + attraction -root -mode balls \n\ + attraction -root -mode lines -points 3 -segments 200 \n\ + attraction -root -mode splines -segments 300 \n\ + attraction -root -mode lines -radius 300 \ + -orbit -vmult 0.5 \n\ + pyro -root \n\ + helix -root \n\ + pedal -root \n\ + rorschach -root -offset 7 \n\ + hopalong -root \n\ + greynetic -root \n\ + xroger -root \n\ + imsmap -root \n\ + slidescreen -root \n\ + decayscreen -root \n\ + hypercube -root \n\ + halo -root \n\ + maze -root \n\ + noseguy -root \n\ + flame -root \n\ + lmorph -root \n\ + deco -root \n\ + moire -root \n\ + kaleidescope -root \n\ + lightning -root \n\ + strange -root \n\ + fract -root \n\ + spiral -root \n\ + laser -root \n\ + grav -root \n\ + grav -root -trail -decay \n\ + drift -root \n\ + ifs -root \n\ + julia -root \n\ + penrose -root \n\ + sierpinski -root \n\ + braid -root \n\ + galaxy -root \n\ + slip -root \n\ + bouboule -root \n\ + swirl -root \n\ + flag -root \n\ + sphere -root \n\ + forest -root \n\ + lisa -root \n\ + goop -root \n\ + starfish -root \n\ + starfish -root -blob \n\ + munch -root \n\ + \ + mono: rocks -root \n\ + color: rocks -root -fg darksalmon \n\ + \ + mono: qix -root -linear -count 5 -size 200 -spread 30 \ + -segments 75 -solid -xor \n\ + \ + color: attraction -root -mode polygons \n\ + color: attraction -root -mode filled-splines -segments 0 \n\ + color: attraction -root -glow -points 10 \n\ + color: bubbles -root \n\ + \ + PseudoColor: qix -root -count 4 -solid -transparent \n\ + PseudoColor: qix -root -count 5 -solid -transparent -linear \ + -segments 250 -size 100 \n\ + \ + gears -root \n\ + superquadrics -root \n\ + escher -root \n\ + pipes -root \n\ + sproingies -root \n + + +! A few of the hacks require OpenGL, and will only be built if you have it. +! Note that those hacks (gears, superquadratics, escher, pipes, and +! sproingies) will work best on a visual *half* as deep as the depth of the +! screen, since that way they can do double-buffering -- on an SGI, you +! should specify the 12-bit TrueColor visual (probably 0x29) instead of +! letting XScreenSaver pick the visual itself (specifying "TrueColor" would +! select the 24-bit TrueColor visual, and double-buffering wouldn't be used, +! resulting in flicker.) +! +! Some other programs that you might want to track down (these work as +! XScreenSaver helpers, but are not distributed with it): +! +! xdaliclock -root -builtin2 \n\ +! xswarm -r 2>&- \n\ +! xwave -root \n\ +! xbouncebits ... \n\ +! ico -r -faces -sleep 1 -obj ico \n\ +! xsplinefun \n\ +! kaleid -root \n\ +! color: xfishtank -c black -d -r 2 \n\ +! +! xtacy is ok, but it only works on the default visual. We can satisfy +! that constraint like so: +! +! default: xtacy -root -delay 100 -funky -number 3 \n\ +! default: xtacy -root -delay 100 -gravity \n\ +! default: xtacy -root -delay 100 -mixer \n\ +! default: xtacy -root -delay 100 -taffy -pal 4 \n\ +! +! To display a slideshow of images, you can do something like this: +! +! default: xv -root -rmode 5 image-1.gif -quit +! default: xv -root -rmode 5 image-2.gif -quit +! default: xv -root -rmode 5 image-3.gif -quit +! ...and so on... +! +! however, for this to work, you must also have started the screensaver so +! that it uses the default colormap (the "-no-install" command-line option, or +! the "installColormap: False" resource) because when XV is running in "-root" +! mode, it always assumes that the default colormap is being used, rather than +! examining the window it is drawing on to see what colormap it has. (It +! also assumes the default visual, but we've taken care of that above.) +! +! Some SGI GL programs work with XScreenSaver; most don't. +! +! Bongo works fine: +! +! /usr/demos/bin/bongo -wbongo +! +! ElectroPaint sort-of works; XScreenSaver will launch it, and it will run +! properly, but when it's time to turn off the screensaver, you need to hit +! the Escape key, rather than just moving the mouse. Apparently GL programs +! are able to intercept the keyboard even when X has the keyboard grabbed! +! +! /usr/demos/bin/ep +! +! None of the other SGI GL demos I've tried worked, because none of them seem +! to have command-line options that will make them take up the whole screen; +! so all you get is a miniscule 100x100 image, which is worthless. This is a +! shame, since many of those demos would make fine screensavers. +! +! If anyone who understands how "haven" works would like to send me the code +! necessary to do what it does, I would be much obliged. + + + +!============================================================================= +! +! You probably don't want to change anything after this point. +! +!============================================================================= + + +! Resources for the Motif dialog boxes: +! +*fontList: *-helvetica-medium-r-*-*-*-120-*-*-*-iso8859-1 +*demoDialog*label1.fontList: *-helvetica-medium-r-*-*-*-140-*-*-*-iso8859-1 +*passwdDialog*fontList: *-helvetica-medium-r-*-*-*-140-*-*-*-iso8859-1 +*XmList.fontList: *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1 +*XmTextField.fontList: *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1 +*passwdDialog.passwdText.fontList: *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1 + +*XmDialogShell*foreground: black +*XmDialogShell*background: gray90 +*XmDialogShell*XmTextField.foreground: black +*XmDialogShell*XmTextField.background: white +*XmDialogShell*demoList.foreground: black +*XmDialogShell*demoList.background: white +*XmDialogShell*rogerLabel.foreground: red3 +*XmDialogShell*rogerLabel.background: white + +*XmDialogShell.title: XScreenSaver +*allowShellResize: True +*autoUnmanage: False + +! This doesn't work. Motif ignores it if there is a scroll-list! +*demoDialog.maxWidth: 600 + +*label1.labelString: XScreenSaver %s +*label1.label: XScreenSaver %s +*label2.labelString: Copyright © 1991-1997 by Jamie Zawinski +*label2.label: Copyright © 1991-1997 by Jamie Zawinski +*demoList.visibleItemCount: 10 +*demoList.automaticSelection: True +*next.labelString: Run Next +*prev.labelString: Run Previous +*edit.labelString: Edit Parameters +*done.labelString: Exit Demo Mode +*restart.labelString: Reinitialize + +*resourcesLabel.labelString: XScreenSaver Parameters + +*timeoutLabel.labelString: Saver Timeout +*cycleLabel.labelString: Cycle Timeout +*fadeSecondsLabel.labelString: Fade Duration +*fadeTicksLabel.labelString: Fade Ticks +*lockLabel.labelString: Lock Timeout +*passwdLabel.labelString: Password Timeout +*resourcesForm*XmTextField.columns: 8 + +*verboseToggle.labelString: Verbose +*cmapToggle.labelString: Install Colormap +*fadeToggle.labelString: Fade Colormap +*unfadeToggle.labelString: Unfade Colormap +*lockToggle.labelString: Require Password +*resourcesDone.labelString: Done +*resourcesCancel.labelString: Cancel + +*passwdDialog.title: Password +*passwdLabel1.labelString: XScreenSaver %s +*passwdLabel2.labelString: This display is locked. +*passwdLabel3.labelString: Please type %s's password to unlock it. +*passwdDone.labelString: Done +*passwdCancel.labelString: Cancel + +*passwdLabel1.alignment: ALIGNMENT_BEGINNING +*passwdLabel2.alignment: ALIGNMENT_BEGINNING +*passwdLabel3.alignment: ALIGNMENT_BEGINNING +*rogerLabel.width: 150 + + +! Resources for the dialog boxes using the abominable Athena widgets: +! +*demo_dialog*font: *-helvetica-bold-r-*-*-*-120-*-*-*-iso8859-1 +*resources_dialog*font: *-helvetica-bold-r-*-*-*-120-*-*-*-iso8859-1 +*passwd_dialog*font: *-helvetica-bold-r-*-*-*-120-*-*-*-iso8859-1 +*demo_dialog*label1.font: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1 +*resources_dialog*label1.font: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1 +*demo_dialog*List.font: *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1 + +! This is a hack to make the typed password invisible. +! Surely someone can do better than this... +*passwd_dialog*passwd_form.value*font: *nil* + +*demo_dialog*foreground: black +*demo_dialog*background: gray90 +*demo_dialog*List.background: white +*demo_dialog*Scrollbar.background: gray85 +*demo_dialog*Command.background: gray85 + +*resources_dialog*foreground: black +*resources_dialog*background: gray90 +*resources_dialog*Command.background: gray85 +*resources_dialog*Toggle.background: gray85 +*resources_dialog*Text*background: white + +*resources_dialog*Dialog.value.translations: #override\n\ + Return: beginning-of-line()\n + +*passwd_dialog*foreground: black +*passwd_dialog*background: gray90 +*passwd_dialog*Text*background: white + +*demo_dialog*viewport.width: 400 +*demo_dialog*viewport.height: 200 +*Form.borderWidth: 0 +*Box.borderWidth: 0 +*Label.borderWidth: 0 +*resources_dialog*Dialog.borderWidth: 0 + +*demo_dialog*next.label: Run Next +*demo_dialog*prev.label: Run Previous +*demo_dialog*edit.label: Edit Parameters +*demo_dialog*done.label: Exit Demo Mode +*demo_dialog*restart.label: Reinitialize + +*resources_dialog*timeout.label: Saver Timeout: +*resources_dialog*cycle.label: Cycle Timeout: +*resources_dialog*fade.label: Fade Duration: +*resources_dialog*ticks.label: Fade Ticks: +*resources_dialog*lockTime.label: Lock Timeout: +*resources_dialog*passwdTime.label: Password Timeout: + +*resources_dialog*label1.label: XScreenSaver Parameters +*resources_dialog*buttonbox.verbose.label: Verbose +*resources_dialog*buttonbox.cmap.label: Install Colormap +*resources_dialog*buttonbox.fade.label: Fade Colormap +*resources_dialog*buttonbox.unfade.label: Unfade Colormap +*resources_dialog*buttonbox.lock.label: Require Password +*resources_dialog*done.label: Done +*resources_dialog*cancel.label: Cancel + +*passwd_dialog*label1.label: XScreenSaver %s +*passwd_dialog*label2.label: This display is locked. +*passwd_dialog*label3.label: Please type %s's password to unlock it. +*passwd_dialog*ok.label: Done +*passwd_dialog*cancel.label: Cancel +*passwd_dialog*passwd_form*label.label: Enter password: +*passwd_dialog*Dialog.label: Enter password: +*passwd_dialog*passwd_form*Text.width: 200 +*passwd_dialog*roger.width: 150 +*passwd_dialog*roger.height: 150 +*passwd_dialog*roger.foreground: red3 +*passwd_dialog*roger.background: white +*passwd_dialog*roger.borderWidth: 1 + + +! You probably won't need to change these. They are only used if no server +! extension is in use. +! +*pointerPollTime: 5 +*initialDelay: 30 +*windowCreationTimeout: 30 + +*bourneShell: /bin/sh diff --git a/local/bin/attraction b/local/bin/attraction new file mode 100755 index 0000000000000000000000000000000000000000..47f6c708ce4aa1b7b3e3c3ee58a04f474dce7857 GIT binary patch literal 48236 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 OJ^q+6PldvPvi}3G;SYQO literal 0 HcmV?d00001 diff --git a/local/bin/blitspin b/local/bin/blitspin new file mode 100755 index 0000000000000000000000000000000000000000..d023a3d90808d5fd0e4539c0e3ab36419f66f676 GIT binary patch literal 64652 zcmeFa4SZC^)jxhiHY8v)QKQBhWvgIO5y7D4O$jfHPzf#x3DKHDNH%ORZ%uX~*n})y z(z;$(^Xnrm?Sm~8+uGLlp{=&GmAVKuptMcZwh1J-D$moKhT15IQB(H+{m#tYHP(>rT5jX}_-Yoh#ZfVXK$g8wrc zHSL;KO-m*{@<$=s`X<6gnIB*}E|HIzl;NS0laxp&Vfm!Wx81gjoo@u9lJbb>sJw z2p>ZzLa0DkiEs}BuY80$genBeXI>YXH!8jhv8m%_D(z;(lhpk}6`N5#Zm6S)2pbSq zA=nXaLEz;=STF80?NY?|BCJFBv`TX#b|5T3pl-(?dW zYy-lyX_Mc_kwV=yBHxOb`K(u zfFAX(Wwl7;!Rw?*J#EpP+6#Nq6 zulzY8PdDJMDEW^8HtSFQ^#UG1{hvWh{%;{;gO+{7rlKCGn&B?{k2&P@hK?|Cay{fZnX{F~AQ+;r|72CFD2d zdkgTSD1D4VKbRC%zsmqGiK4#>usM%N*HX0`n2+)nsPg9kPKCVJtM<7AuvQc4j|G5d zqde1|D*!*P<|X7;2iT7OE!%sHwjOX7^qC4dsow_yd!zdMqs*tgh?&0=@wO=a{{Zmp zrigv)13UovYL&dd2W&-qR0?>E)(yD9k(BZZCO;QKo*uwYK9H31zJM>%P7p?Yk16^z z3(5ySkAklToEoLSTL2$IzG>e!z*(SYzoxv)i4XnmSFi){akhujUmf5l!Ox@eHvkSm zUQ<8KfR_N@w8yUj-UfW23;y2({1D3L*ue6>2lx>1&HDccaBY;ne+GCq=o=OOe&R!) znM$7D0e%MZPgD6v0h{wi_P;*^t_1%lRQ@}F8-f3Tf)mkC?nS<7-|2v#fqa~VQoad* zX9It)!k+=yuG%vlqt_h3PlDdGpCZ6ZAnyT%Ujq0L;DCaw0Pn(h#Bq+}%|^hL(DxLT z|3$#tqwMcL0N)Gxtt$VkfFDA6WeR=*aAQ<|_yyp0=+7zg$7pSUS4E9?zXkkEl)pX# zxGSpvYb#e))U4L(U3GP(&N|IiQ@g~m&QY1~bW~QZs3=?GaLunQsjt_nN-8UBO0}Ye zbqY9?eGOcKSoukC%0CkZ|NR#iXtEgU6uN5t> zb~);*=elaDv?@ncRn0nwR!*r;kgcqC)YWN4`3{$@uCAtTQAu@Kr2`2rdrd8Pi|Ws>sjR81hvY6t z1Ngb_aJc5y)>c-adKER*OG~O8bF0gw){62=AzAfOchzb~-CgAp(u(XQb@dLxMrx|w zQCd~2p|%YbWSHkDsjRr)A=M8U+!t3@xGF@dRca#ZEXu*{$ zUCz3ds6}-RNEbMum6{ET)k;TMiK_$}a#y=5svOik+7hf+mP6O>I!FD=b!e0tRJfqJ zs-$)WTD4}qR)iX^$X!}f2P0TiQSCw-&Z-oWa)NYsyE0A~g%93iZbuB;@ zR+rSn3fI?FxI{toD=Qq;E>l`GUaYj`tgO&a?FO1py$i-66v)!p*phT!N$GuS>T29D zXIKuKWF=OVP)S`q8kRL$QiDczNHG^yRKoCTS;umLSQ@swqP&_K#WURKrqZ?5WGqxF zv}>=csdd!3HVC_weS(?FJgduV(4ytF5E-_+@{T2U&6~SqQbnOrO=>Z36&M~G^=n28eHwvtKbE5lNh4gMd>G^GMOKNp^M5q zSWZdx8Yrb`E`5c_oewtxbIFHINrQ)gFqi6bZT0<*I#}o+$~Wzb6+wg5D;3ko;DJ_` z!YW`9a6WZri;EtyoIZg37NRWGj4K!1y>xEwV)&3d2JtPbAdzRUK|8Xi)7C}9%yq%x ztaiJg)1ulc^vN=|`0^S>CHjq4q|Dn?MYy?(7MI)B!6>7Zp`FpqRw|dMt*ohD3BQXT z2#Wj-)$p{^ADVK}wpOljxM<2XQwU%K90B1do1-erT00Qij9`&^wPQwwPzr!4H?d1lCa3+ zS|bE9M|HkUBQ9LLW16PmW1u^n@3#?vt-GS0x*#@K;93C7rXa5Bc2 zR>>G+eJ$ffST``nW=sQPY)mvV#wLY_@im&ZnK2f`4=~1L^&!Ss%(pTw(X>YyUy8W} zV=U6QF~)*;JL9`CXJm}cktY~W#GHU}9>#jcMVj^$W2>g^X1oAnFk=kj0mfJ`?`Moj z(*efwFlS(V9>#LUSjfM^c$KDgFvg;^i}3_a3o^#!=@{d?G|gaqCFX35u~F5>7#mn8 z8DrzApD{M81{iaai9NRDJFs8G7#kKTj4_!?Wn6*1Fvge&WiU>~egb1GlCv0>W3I}0 zHugjqUyeN|#@N`H#5f201dMOMo(N-XC`@NOA9E_kpTb(4@k;D9F~+2D5o1hVmN32< z?a$ba_GgR@oFc~6Xn)4z(f*8Aqx~6QkM?JLFWR5+$IC#y6t< z8QakQj4wg^GpQVUI3ggXeY zX+6OZt_e#BGq0yzz;?o%D)s~fyqs_*;avhQB5WnRUBLGeo=CV=z^e#zs@UTZa2a9r z2Cb)7z)r$BgjWf;lJFwJb^+HCMlaHOas=!m4C~Z-rU>&(m z(|R-kZzkM8xbHL)COkmcLpUhlhX_AFxLv@lgj)#*1pFxBt%P?8cq`%UgtrTL8{sDi zw+eVW;a!A10)CwEZo;(!eu8j-@G1d6N%#O^yMT8QZYP{0;HL<85S}97-GqaLtpa|A zut7LozyZR2gf#*0C)`iC@9(Vt0m51W;GlpH5l$i8F5q^;>4XCUeuXfXGCjKl+(Fn% zc)NhR2u~#3D&QdDDTF-&K1O&t;aUM3gmVb567X@tiwN5V+(+0>I7h%I2^SHbBH(_) zs|Z^KJV4k4aMe2Lzl!cq`#u z0;YFyZYR85!1OZCCkVF+*h+X8VUK{v6W&d@R=^Vp2MDhc@FcXCJ905-w z+(CGXfa#r_LBdu6(@QxG!s!CeA>2n;6Yv7U{e=5IVEq>n=F+hzDBvZ8QwX;U*iJZ| za6rJz31<@CC183trHdgqaR_w7X6NtolhcRt>)}T#R`q%?}b7>TZiA)XZPDqBJ?8+*mn@gUTAb9+q-`}G*Xp) zWJYn{y1V`Bv^HB8#qis@fEz?OhF~BZx3B#;l$`)|7j)$5wv)PLE0{bXm`rI2xG&Ld zUEpZ9(l4uVgk#B&op%f)N{t zs=w||(Th`eJb`^5yYo9e*q!MDnNbP;;x50?sKvc^e}UU%enz&rQz`cxPVh9zEkz>F$IaVT5M>rsKz9+b}Vs27?wm*bX5z=<@uz zDa&?H#r7RScRQX$MeP2TZNRh}y%0n1(-#)$ITl~bY^1@y?8Y%9?|cFicqg%)td_oo zxp_t>vYejB&<$V3-CC=&j9u~#+}n-6;#cqR?zgU;ly9^Hz_W{dS)lWI)Y9+Y4jw-L zB>XNjeg}kn!Oy!t%iENakoGVge_P8$WMe`KvrX0OEYJ3Va`$M$2L_(dPJBD<(ZB?H z5?{-BAnIGlEzfx>ti^XvA@w#2j{fhNqq#0`b-o|Y?L@A3f65)ma2w8naQa@E?%hMC zn)`A+H&vf&u{&@4i`kgp5E!Y>h2a!GQfPfCGp?kD(;hxZDKDX(^?fi`ecC8*lB==fc{S67aP(fmww|{A4ma`~a-jygX zq8^l+u!p)TbQXtE-hYSHOEr03xnCRV~?rq2#)jYN>iKs9GO|p1^EPP<$YncYVs53gyY#6NF;FzFy6dK>5EG;?6 zwdb2wx)W*oo<>2D(Q^#^;M=6X)|VFf{8`9>*Y#8MFXLyK@idlDzLx2NBE8(Z(W<#e zm$xmn7L5XMwFIsXCg^^m=v&BO#-}ExZT>4nU8^n2Gcx2jV>d;ZLJ|5`=zjK_WzKJ~ zsPC~hcVh7>ddUif>U^4c0p{I=ytSI$ndnPO$#(|P16Mc~;y&$X3$M02zbx;pc4x*z zFfk#@GAT=*aS|KOP>G^CTACsOM)N40qriT!&*sp%;+;%J}k0D$={ZtkC#0 zZ%-5&|H1e(tH7`40XCHIH2!CC3-J`gLZb;-g~l3*>pa9-bg>ql&^P)tTIyyDK6EY< z(KJ#KMkdkwSA?5t5nv$qUZdDfcu)7-ZVqV+$(h9dTH0t8`+P6_Jq-aWK1bbTlu{>^XO9&XEH0wW!jQI&WD z32QZ@6>chAk;HMD2Jii?6mT)eNX!D@zc(FEO%eWCFHX^$Ql;AcPjiNe@ffU}$Dy`D z;|I9KNbzk%%1u9}VMxd~HX{XYRiNb?UjVcs-)KhUZ#fAs3U@xhD8FzAownU@34BZx z+!&5~XRGE@_Af|s?8dX0<>(!{<_K5jRE$1_~ zR6EAKLgQm_7Cu|6-qgzO8A{uH6WZUOyG^&XdZufxYxI!bIrqWj2irZ*J^O%dtLOd8 z*IPWct=0!^TOUXij`-E*6Exl3T4=lonJ}7rnzm^!yT4%D%|}}G_aEG6y32Qe@5_DE z(|G>ZtgcJ-_s>Wj9DPY(N=O)blbMPz>IJ)Qz}V~PRtLgV{bn6bO2v>b6?gyvnLI*!8k+djbLZ@})H zhywBrpU`N!w?Dx(f%bv2?arIRWxwz@+ShU+LGSr&-+Y7e=(YjBqfbqC&y*)MN}emC z<>`F$OnKggJpFcOzL4iVFsHYVk>}H4d1eZE_Tv|vlsrEL)NSkcJB|-6kFduS4BE@= z#)IfrNw}|aTV0mfW88_)kJ3Ih>*e)t`rRi{ zwcLzlm~bsK?v=u#A6=fWRM!Ymdp{X9|1S(<-!8CI;r7nUHxeK;CeghcOu{dR>sa`v zP(jNP*J#Xt0O;=2XMc+9pJO{vlSX+R${)lBE*Lef_Y<-0Jrv?}zr!#MO1kgxdc}J@ z9s2SYpU7u*{Z0KVgu(2E2s);VMge4pJN5P_rfvQWM9ME*;e5r+oGvmmy#1qG)0uJ1 z%orER7?)q@e9KHv7U^tp_r+~C?xkSOGQg;}9_x*KZ&Rw~8lykon=IBJdYj$(fl2$K zR26AIp@;3PwQeTyUDE_6riNkOOMoe-`kRhp70XFo@8r1lK~Kua@n_ig zzMhoWzV~&D4pX+|VD96$d_K{JHRZ9GW)kZuy?~uvccPYvnpRheznREFK6X?mi7Yy zVe092<5aJ3+ImNC652ESh-wkoccK2GXO`y5eDJ~t3i=*=&hqT+%hxA)p0hr1;atxQ z%)fz>t)F;y4Yc@kjF8gy-RBEE_V6GM_#wZB`Sj1CZy+DF4fXseobQUscU=sU4NMAm zC->Oh+|BCQ2ohv&J`>*;lLUP3{`4%B_zyFa&fP4ZTO&PF!{t93TiE&8fu0Ozif)JU zzQKHKt%vEcH=*_L;FYZ3_nAL7DxU*S&+o(ePsiko`aK(y1bI=O*7J4zpuB_e<#D*{ z*%apYhxmNzwzo`86Pi9);dc)dI$r};zOh&|uJG5FtSEH$h{S2(M0fgb%zHzERpkhE(@4rX$hpYyo^k5Q-+qd`5^98-@oXumXw~W0YlNMzj*rx+@E7d zc3rqOLGbyW$tMNAK}&1#0iOb(@JGT~ETWbfl4e~@#tLM}vU72#%AU-!zfGmb^gnO^ z2Wc(eK{5)ET9Ea86pgMQ@X!4_Mt1nSbr*WyOLC=p-y7vhRvn7cxvtdhw?ZMmsKJ<+Vg;2=k zsCv6g$;egAOvR`gjC$w9%r_<7LbM`;g~LdLEWOu7wFh~GhgUr;$rK?;x*R2c0sy0F zl&=i8C;TOyQIl|(1?hTm2KE8J$VEoq+5`+x#+~S`^q-k6r(B~84JTM(=9Hq}F;Vy{ zOmQ72O%Lo6^IP%*LQ^`&8u$3MmO|qTP@;0eu8T28|AMTKw?8fIkxuG6vCvo@g>wbx z!2x6d_Z|~BA?=YL5EuMzjmLdd;!cjj-9+4^LSt+c?!_%3S0#9k4&yZ!uN_rr{10%$ z@&RWNa9#(UGLRW9A@|j56ABHUE;R>}PjWd$fy{(!_0LQMZ7OKLP1^p1jTh?sdedUs zlN(fV`tly1gwY^HFS4}RxYpL}#+QYi1pT&GF!}4Suf_%e!F`Z3>{(~{{9*fUr3G0jnms=s@yWV{h@0ihasQEWD+^=j*2OUwf_Nw_x_7Q-~jFMwQ^u$)` z=b2c0f_@+_6jYq5*J7V@0~*g~3;K$?!uo;vq(NLEt2-65`io4rsAt*@i(oGHULzZS z(d&a){+CPs`NkpW(`Sn*<-14{+mPP6Tj-}wfmk1s&zU+6oQ|Ig9JkU!t3 zJd^+8DE`HgKc)!thvhF@60?m~3?;&1lh!W^jc*D5*pkwk{u7+lLx_%fZ|X;kd{OoR zd*KFs*gqJ5g7Tu~>#{x(mrhxh#i*UjGd6J1yCehOaA`+kzUX!m#MAeTkk_wKz+x;;F8 z?*1*|$r1Pn;j1FBLHL3Q{0?A9fW695Z(34T81KHuCEf4w>vtT8GQ^0zNcXnX0#*G# zZtu)`uIUo}ur4-RT4(*ymF0cTo-=D-<4NN`(Qc-q6@C1)auECYDw-M9wQ4rhN;RC}QVt+4nC+OtosFtSxCD~!7_xq}nPUt#9;&Sh!nV zpck~~8Bf2?GWp!(Lgja+*o|F5CR$ofxo--ij}_=&5a{VZzaWCX3FyF0)Ynhs)Ox>C ztk~bd`W(Ic=Q;DzwCtDOeamO-_Z19q&C9(q{xg0*1zuJ@6@tEYRC0&-5+{FCTc+cw zLt^R{Mm`DU>?DG>|JIGz59KY|NSo&q1m5>WDruRj?~QT@k^U;?=ea2@2i;5L!=!%n z@tbhC;V>25!6itB2Wt|4#+StJOM32r-{KRC60A%1Cbp+N`(jkWCckB_KQ%q!d`kH% zy7*tt#+`0?dKx0Z3yko;T@cL`jPM&E(Rto|mWAHaw{C3TLGovDNQZiQ*LMl)=AW1G z)ptX(a*^>pX1!6EzhgHr?LwbBp5pC}UE=pi{u-B{QUYVIk)V*CI0LB<4XEEjK6~Fx z@a~`9aw_d%1CDaX<48hVkFgt5v95qgu*ISa+%9-+JA>m7g#}G4#9Z+b^3|Wa;dy(W zpx!zJ$>$_Vd35GY*mUPG&B_YcO*J-^rL$}NRU+f?DqWp9a178i>b*56Fp9oQt2_Mxk`{B z4J-zGoW$PIDjKXMnUg<@egby>NG2R)*l)-AbNHi8$9dv~E>`SMW80yvB{PJ*a9nLk z4}c%<{ITDeTX*eRDlKRZmusdxwn34Fp_nvyy=Ld^4Ep)SIGRnPML2mogNM&+$s@%M}&2n_cqZ0X)WJn8?>ZD z80`0FFe+R@qs!MXVIP$b*5G*goc!~AZelkkv4z@wmyiRVAGEyW{&f=K8127)1e`G?vhE;n)3&>i>bsID{%=_zp*j1A+kf12 zoF}@(ke;r)GiX?RR4o>mJrF~;Jqf+rcKJq&WGpX@!Z9!?+ip8j5uS|TZxDjCwJbt$ zSOUQ2C;A0o=Mq>kEhAFD=%I?9_jm?nBD?{WV@y~fL|8~{9Hk)Oe35$kBYuqkz&1vt z+#f+sm|vI!VLmOH9bawHzXGzpXLO+tIzUw%M9p?m)p%G=Z8~3Lp~qS1RVZ{P+rrF> z$dkw{HkNn)BF>pn5&t2&a@9xF)@O}mr6cxaS8MB%Uuqa7OSE5xFw$Kr4|qz!p* zqhb@>Nn+{aYq29ub^tsA*8GpLE99?Dk^_MnzgLsV6Cjg_z|-PU<`CtnFpBI<)_APT ziNzU_WQ0-X3`VE^1eC2|6wVgmDB>Bl6N}@cWW?>&c$6Oyg~P6}Az#aKR7_S^@Jo%c z9}ke}>uQNF+k>4vFGdZ$e`MoN+9ACgQBBwNS(3|XoS!y<$=qH}Cv{Cb*24dy+utr-apO@atq4kX3|MyogZ+%=IRGDFW(mi&^698t| zcDcsKRIT6-kjM7qPNKpA?j#nM$gnbvuGn&ib1F&^1 z4`1H*GRee%>K@J1jIC|9c9!I~J!%K}U!*E@TRS*l|G8t7dn_z@KIlLt&Sw5tzherL zrXY#p6+t{vN4t>=VkX&;gd;WJ4<Kc+Omm`{Z+M{*QI-_z2CPmnt&~$fgMUe`Z=r~o zlCruL1H{hk`6KGos%DomXBPPAE$l!TD3;5}E+RqLh0^st3|2Z06B!SqS$r*B;H!&H zi4r%9Nv6T+a9a!e5l7uNvErcG{36ZnOz=P=!SQS4h?cQZH*rO_ERh0m{I{_X#uL9~M{fteNJo$CCwh

+k8GMB>OkE1`Ca;&>Xi0n_j`w#*V_Z*oi;1 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

3|koY$5T2^AM#2!psTKSe&grPcJ^{ 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 JMW<}j{R7?qE>-{l literal 0 HcmV?d00001 diff --git a/local/bin/bouboule b/local/bin/bouboule new file mode 100755 index 0000000000000000000000000000000000000000..cfcc80c49e4ce8094da14677288ae0d10f3b4c04 GIT binary patch literal 46004 zcmeFaeOy%4_CJ1rK?fY0Q8Cf5#zZ5ZQZe(fP#Dw{8$lkjND*cnh^ITu_)rXD1Lk-f zrJI(Omfq~~+RbiOTAF|+U{+*SjLZ<0bq~SyVws|n^L?*<&KU-^?&tUVy}sYSKIlGs zuf5k^d#$zCe%@!!YTdl}fPer_{tM)SID+F5qP16(3p9Nb-S z^hdhLWFe005B~wUrEv45xMcXLa8uxJk>VCe{{8S%;IiQEhBLz52KNXY{mp}$0Y~*8 z1?T^_&>#4J6b?o?;Zj*WZcrx7?Yh4qh=ED^{%-Px!~ogb&2U-~^gRbiq2BN#rEo9F zkCyyl@JGT;f(w%3VkBSoMj;RaC$}q#9}72;0)Brp5uOTns}vXJmo{4pkCA+8Q=_Hu zJ(3?F`47V%EQPQ22q%1Eu(A@&_JI{r8&GW)`vtN|YAa`^1}n+lD4ptj-d`0;vJXlp zo7)YT^g%G$j7)C`V#vl0Jf%=-;Zu4nT>E^n-S^?nc}b3j$-&AH2tf3yeHQzbPqy0m zbQeD)%P911@EE;J`1*?qCF#2_v|0#%P=}lz!mR+jBU0vH#gzhHIbDYPa!&%zMR_q$ z1o8J2TrtuIO8VGAFyt!)f0Vu(E*IrfnFsg(aNz`OnQF%xhu;5|}$BH&Trze9pE0B?hSk4UhY@&nG2^s^dp zn_vB`1-u0HE9+weV7FiWYz90H<>g59wgK*h{IYy610L(A&o>Ak{D|#=L2|p z_1n~+4gy?^`Wq{y4+T8d&mQgq+y;7ErS!W2Z}79XS%51bpNXZ1a0>x*sLyZ-ehBb3 zzy8MrxY)0~aEljb7cAw9EM{}2$;?>_3g;P?8*-COhTPoL?5t%5OKfgNQ4yDyk(*nP z$)&}c4F-;7S)7?`$jG-Aa*GZ5Ss;^XSygD@EZKPmqL!Iq;gGp7JBvdQp`yh_8Ac=- zat)al%CkJ%T#(N#HWn^6t>DsP&4vt%VOA`cW?^L~SE94;I%52J-XvoOTe#{^$ z7%=F}$J> zSd1kBI5QU!qOp)TFtW%@Up2}yaZ4#f8kiP|>CFX&2D4=qt8&qbC{e1}d}9F=W-KhS zWT4s?&zkqZ%o+0*KM)_Eq+7Un;f$H{bc-QNN(SmWB_r2rC?YNAXF@J2g=_(e&dn~O z+DVda52&aa(KMM=`pL#BH!lMmis@Z2Sx+LApOL>T7mA)i4Tq)1qD{f3l29$8ZGZ_> zPQH;_`k297AaVq47D;-cdPAFAnpr?9jzx1bi>lz#7FZ4DRST&dkoCrcprq%;aSzU) zkuV4C$fvj&7Ra;IYJtqmM9`*;y5)v^h}y*)8sasEvsh}k+~R`##pn}YQ^=9DDnFB> zx>~%0vne+^kw zkol;AVzH3)kIyu(D!dL^T5!^s6^sQR%@u>uQPUhb7=3XR#=@SMl#e1GW7=5qvGANg zejL^X zF_%UD430CAkGV`P`B=afl8;5Ih5RVYeaXk*Q%wF)jw>Y}3yd=IvEW=sJ{CV4$j73! zf_yA!Hj}@I7mRH;|77w43};jCJG>f&R&#&v63z zSn#%ykHu{}`564plb?v8i+nxCaPlKDh+!_-GZyP<@-YcelCQ#?hkPt%G~|!KJeqtg z#=^-D!x&CJ7WZ26mts9gJ{Dd=FN~BG6&2NZdhgbv6z{M|JW&$o9TtTUjig*lvloBE zMiESDE%gi@OR$FEN(N6Ln1lv&k7~0`lVi>%T;535AGB}OkB?N03{4l{JP>Y7aO9(C`m}77j z!7B-Fzlw-qCW1=|Zf0;U!RrXFXK*3G6$Do@*h27Dg7+|ZCBZug-ofBvf?p@Ng2AN( z?;*I9!DR&RBe;;k>jJp1~Ca*ApDW;LQX#5ImN_TM2F^Sj*sT1PcUf z7`%hvc7izu?;^N^;P&51{?`en{jrv22Ja?VNpL-b_YkZhxRSwp38txI%N_>rBUnrD z4hA0}IEvs323Hb1mf%tbA0c=W!G#R2C771FElU`DoZ#66>ls{6u%6%;2A?E2jo`5i zZXkFG!CD5p2{sX|VQ@3Sg#>d9K11+Ig4;Vueu3apf}0uKM({d<>lxfma0S7Y3_efr zR)Y61xP#yw1n*#QC&8~1T)|*!&89sBmok`IwP_#0g$$-*1Ouc|fAXvj->J3co1al0gUcuBsaQhXn7k0qq;2+`~ddYdR9oJW-Xh+-eD3mDE1VuYy!6Kmlc5#V)7=fZN0qd)C# zBs!B-iF#o*l7yr57>2IQenh1gYDMfEj&aTq<6_?OJLr6iFBa}TXKd}2Gt zIqmi5yk2La!oE_$SyX%vZ@vAf!hSDjJ?}JhJoE_vWBOsIWjNDkl&a6X=LZq zI|)N3Ux9Q!S;^~EIh?6}7uFH_=V&pN6F`d4CkiTzjg*0C;V*_gxd&syN5?I^GGt&3 z^4r^#NqoA}6C3W%)OgZ6_*ezs4_UJ@Jh~G)+`0}=aP2b+Wz!{htj6<@)_z23e>{q_ zhIxYAvC7t&&i9F^#IMi`J4(Y~i>vo%A@;e8mnJ7g6^HP#qx3=rq7m=}*MpiTM%z&3 zo~vv+=MM7R;tBEuHz2m*%kP>?&*(}!1FZd% zarZ!R_9Ia&JQp1wQj>(42uRj&jlIBh`Lt2xjg~Op%OB<+g6e00W#lSvw4RmoENAM% zh#VsZG?IV4J|#pkecfRRFHG{YC4ZIVM~Z%FisT!wt&cTr8#ru`rz8=dTQ?(YpT3Zm z%+?6gUbG@;_=yg$_hpKMj;R9Fn91-7N~MNvILcNZ znjg48eW-_?btfR%g%P9BGfox=y@7~YX&vHkZ$zXE{UCD0OX&cuD$$(rC*}31SQq1C7AwD)%-IXe2K9vkzijU4FY1$;VhA0Um|T9iisgC zkzilqR$pS<1uBzZDN(q|Pegt#F?+EAHARBjcFh#oZyn^XuksVCLu(i&k+FZwB(M(V znWU&^r=l{bS}#eFjgl zZTp9XuP~{Wt%I+YJ5Nt=8_=ch!#(}HFR$=&cl>y{2kB(^em#gYUa1#;yUc8rID%#W z4_S)oUWC-2|1nFN?)ZPk(j>jGw2P&iJi!VKTMJGxwmrcr01Z`=l9&dh9`heqf&70_ zQb~9GKjX-x7wTCj8O5s26CdTOTySa>^~A0!X;`u^{EJ;$Fgy_SqoFNDi{d)DqlL_;N2vL`;xCx9QXYLBbQ z#l~2Ry7hM6>uHccYkxU+>uBnDoMl?j;?#%YMN)cE7k;D^5IfM*Aj&D$ph%+WoTvl$ z$IYPNm!q$zp;dFucaVGIZBDdefC5Au%SJ08yxt zg@lFO$x#+IAV;7sZ`AxEyW{^^@g1!AqCYME>$%;e|F6Zr(jEWLijP8Pq!-SkWBOz1 zQ@WF*K9NZu`3KSu?~eax#iz02tth@m*9lFaV~pYxIwx6;z&~>oUkPIIqR0wZ#2eICrVNgHq(49wuicfF{ZKQtK zk}) zg$Q>-v*#hqgS1_ESw!n0jj#jzV{+GmcB;Tg8&v5VZjG498hLW_6-GzG4$MQ0Q@^y` zWUPq|=eX9J#8KEdGI;hzcJEHysq6Z#mL8o z8-oKuro-r%p^!m@X+9=TzrdM@W^~K~&fIXLy(-Y?c%X+Irs5p4{gP()@Ed|}k+bs& z?P4hpfx=->co3yPni)!xW=1Ht$S)TrSF>3BEQ(KnJU2vB6H&h;yUwk$>lz}wx=vo# zIhjpZ)SHs92q%G7sRBzPgg&#os)Mga{BsvqsT|MHa=MEF>#g>czz*m28h#^7!W8zI zZNNd#h-Duz`IrdDT8c5&tbG$+7FV-&H+=f5S-VFHIbShhBKgoGi)ksuv$ZdFL1P$} zZ%!|*_pl~n@i8xn>%C%{d|Q?LM2GbZZ&UKC6%Jc7MZ8}MJcrfI+s^P$vYB>Rj5F+n zGpu4KO|hL36*an(M5;!&PV@+gLsra(C}g?Y6Z|@sp{F+P2IM;1Q0Hov1^^76Y`k#U zNQHYhydS6-(lHmZBHy-m>=5xIzx?E8okG9`4rr*b4vCNVV)sm77@e6?|8 ztim`_S7vnRc6egb{+N>RKceK&ZR;vDx$}LMBe{E_>O)D2pz0tL7*vTew|eX{;TvHa zgTNg_-0ZY>fCIhoWIJ{M>|)3KI17utWC4X^FO3#J&ftB3ML98E+nW*B^ov|o zA;{g6uN3pY&_MXC8fa<}8%R37L6KoyQ;V?HJACt@uK9&T0`rTm{f$4NC)tbV1>((V zC-L>dy#J8uYFRi2Vcs5r2Ejiajwkjk=F9@C>Bp~$eMv{LdwKgjhC5rt9n5f#pliJ* zp^%~P=IzA{eWi$gHlBzaxF$A^;qH>gF8h&i-r6wvU2$xCh>dNua6^09KpxiP2^)fV zHl*1qf<9tHnyt*Q{bchLPXn;Sw$8sTd33wo3CG}!H;Kmdlhm+uN8AYqh+M*Mk8W2(UDMC5Dx!bf z)eIP!Dyg7qRxt2(xf6hTq^XMHHBE*xAnZ?m z7h{9?X=?E!PtD3LHs~9XXUlnC%TSk*rd^-8L%Yb&bpF+n#LBV;)GN21pWtAPqxz#Q<7q=u@lNwG%=c2 z>4o2a!W@o;k&&&3yBHY9+i9|;7aAB6g(alcn64Im5b|n7T{= zt}h2;yIT%}n4{$upj8;BkLOAr%i)~5cI^LR&h}qfz3?Nk8cA6M^j9=fP7p>WwDVt9 zeIGpXOTN0QxyQ(Ar=kjekgjc{?!36kwej!JSb&{sqvbgSMKPt4gNe)^3;9o0W<-~e zmfL;U*9%z2u)`z{-=taX|AfPm-T}-sj9#7$qpL7=*)!lbr>D=zqFDhdnp!-$14%x+ z6za}Umn~Hm^?v#k-rAg!DzqbkdSc45ty`97{IgKUC}%k+X2}WimHQE5TBmfg58h5Q zDL?!7r^Xma`5D}>aw4aKiV68p@JVw6S|-# z-o6fnpi>Ib3lTq19VmDvs~8m`N0D4&)CFu{GAz=C81;i3MRJQ#^mjsivO$+B=73lBmVma^vPUVyX8z3Po)Avl|# z>V*eUY)vqUMv8J8&dU?zN@+eq=Ox#ipV-@?Xg&-zPftTeb=f<}%CAuHvy?ACj0o)R zFS(*nrU{~dC`rN)7zInh-#45woaWJxXo~9 z-~_lfea;Z^oQ6+sNW@ZyS8N55C`M##d8M^Kmb9RC6VEX&T6?kiSS$#ycoXPI>Y*1x zh$Y50&tC8B*XryLN81|jZJw0VAT(bB)y693%xNZ!f@h@4**KgU`o{|nJByP3uZ=0 zLfP1{onFt1S5?H?r)_6p>u*%DfNLF`r8n=5w@-VI0oLD~akqjRHgu0Sqrfw)z(5p8 z*@SH(Rj1-T1!^g1FeRfz$|{s1t?LX;JT_wTQ&UM-?QFokJ-ul}Cr-&G;YzmP27MMv zN)eh7#_SDR?VaNle)$ge`97JDX{rzXEuchKb``+V$)1w2+n|ZAv`^`0?J@a&jWr;K zOiav=^fhg5uvD0s@KP`?Fy!FehK?0>GS-nf(V3uJu#@zx-^moXa}p%gJIl8L6Kw^> z^6h+l8qO6Q<lPo!RW0MRdRg`!P_Z6ewDEtHxl#39L4`3}x9??)&{Yx>t^gy$oy z7t-+L8_<4oMkNVT0UX7<6Jmj;IS|$9+yNR6=O{cE2vdNNBq*Q_48C@oGC;lYBgj%y z9);w-)J!0|S#hWcIrsG-xVH0k?$=kI@dB zoIIEmtls!FG1;Hg%pZoy@)H8>#evG8E{5si!T3u4YUh40{(kufUv;tGevo20OJC>8 zo>-={ikJFV=gI({X(On{-Z8&8!qn(1+lI2cGzA_44wBkZOwB%&ML>ZDeDqB}_>%5p zNlIoHv!^y#`kH?Br41F+VkMzAjRdErfBTXZVlvN^KOsOb4E4aA#r9xoC$tVcgdxLm z9jTlyUWk!Ben%vo7r*TG8592mE%5pEw0dzWN=ajJ0a5lN8vDwKK#WPjgbIt`L=wG- zMBOl|_z9rPCN`F7uwA|IG`9Qsh7{o<@lqaxRDF_cu)iXXKUmCigteRjJ@j?re374@ z=5R(J1--Ba)J+5NSRnj%7nL!I<?BTXK>jK za_*e%Ys)+7-kV-*pJM+d{NyG@+K*(V2!E&GuPMS0#RE?+z!9?gCslKY(3K+<(LnV6>@%S~& zOrG*Hlj6X!Ib4dc68M;CmQ$~yH#OfIjBzxM(FiX+NVdmW@4kW7`@;;o>?0N#d>p-c zia3b0A0!JyH;`n~{uBL{4l4$!E+ZLz4TO<|7|NIs>L;MDlaUTLvEKX@C8)?_CT>-r zzqYr{LuXy1YlbSZAJ;rNI0hY+dgB3rHM)8l+@de=gX0j1`BSgb$)l~^)pGxF@k_qSUWwuJstcN|C&U3e3!!&M;0_DCbu$(G)LE&#uAUB`9gVC* z$Qgr674hk;z}HjpC)8zQ zsb$(uI&2MVYDf(ZTdn=D#;!Z5!CZxpD?fv&D6t~aNEKQ|k#)5Wz2a!#82(*K{qTA4 zu)i1S_Ht)*<*%<=Le=lbd)4nh;2l|oxdNs>_w%+|woMC#&r;O_pVyrXW+m$65^Gpd zpHbRJq#?&jMNJHw_0`0v8WG*{1d6EOv25PMihYHOCCO1NjZxNxHKmkrnvt*V%FN2M zoxD~=vA`b*+s+D{rRd_33TzF-d{5*Y7gdRKJUOqzEn@w`b7qX$-vf{9C&;WWH1xAm^|0Ctnn-lM&;sC6W2Bh{rS>x4mk+#rp;Bfv7= z3@^|!*WM9iF}AD$UImhrdOXlt18~i^^$~gEEstMa>F;Qrye^6I`VFe7tZ$H(3IBb?I|1@g!hIUC}zxn7Wv}0QGSXCyfSL&bV0aq_9 zB5SiL9R~??yhjRjmKRbImgotnuA}8=Va7d;HRWya>4>8IXE`9SfOGp9__*7%Tc0Wn z0zLHAXwp4}&#AV(d^sgM%5yD8) z*JDw+ThHs(VeR6 zj`9xB5v$Ho-iffYyd6({jtYBykny9FAg?=)Gb$*KGu=U|A5E%%H3F*F)tjOz<{paK z%wlL>Cq~{&k*isxTa1aLm^>EKY??zE7f?(qF3~%5XT+FPig5wQb+DPSMo%1VmAm1) z-lAt?dWY*RibheaQJ5AJEd%AeYcSDj^NY@-=x`P-bkAU+l&g%LcE1ddQ}n-BH1-j- zB3n;TwO^ciG?R--1heQal2J z2h(Ixw|9MsO1pq7jz*ZFqr3qUIk!_cft?er_ggFp9NSM)B>K&R6u`b(r1x7)!l-6; zqTXkQUg-fw+jupt#Up5@TAn89Cndnak}rhW`Po4x;$?!Tfl^ypL`9kz+JU>oO_ zC)gbsYY)#U*IC!G2Jy-ayZ>|6B}l1sOH}~``FfBDyIhqx#Qn$w6U6mCTz0LZ8zk(K z0Ug71KgbA+d=N)53rBmtiuVRZDvY40B)7#%l@$582=AE+E?6LgB}%WiZGa2nd=p;@jQ z^6?kLo}5PV!zF)y3=Mm1zOKYrmJr6L(dXZw`e%&yLsH(<3g=gyQ)8=;RBi%je)8+1Q)=nKBVcL>r>fA=u#NyG@W*x z^|TO?xYF}6)|;hM9~bQBY^&9$&&r1L_R9g*0Vv^k)Az1Vn=ZA^@E^Y~2U>6OcwEPD zY=>)9#gL=*HotUFqpPmzOcU&?j6|$+eG0e=1}j-8WZ!@UM6rt7Okq@L_j+j@NaugI zcy490gX{N0X+Ff;!kmhO5EQGD*w3h6?TkKwCOh?8+pW=!(RI|$t=N9PmA7^}6!Xzr zBPQ1dSxq?d%7>s-5^3Za2&1i`uPa#fXYJ!_Q4GE6o$4Mst|7K zFSZ5cjU@?u^~j@B50?b;4N0lAoJAW?P%XgyiUp43PT}I`)U!mOU10&+$2sk#pkG@* z>6#y5mq)lQ=rG?@s$q)7{eI97zp zZj0e88eS(5MLatKFoPBvb(&Lok&QZmovo+i=rqc02x~a!NpJAz#<~p=sK)eq+7K2> z9^W!y~>Eual zO%q6iux%0_cMtARwZl{578z~P%fuYXwZeSRqaiH07KVoVQf-bvd$o!whB#imzhxsx zqTTrM@Q+T)qgi7U-b7kSUl@m#b0Q>7kl$IVXg#UX&uAhffD?C z>#Yn9mEfzbH{q^aC2|Co;BK-o8`cOtI06vEsW(OcPOa^L)TyF)yo|U!hWT9ceWPO| zTECw-=)S=#?(f;^{m*^oBa4bdx%T_me)Y;waea^+$@g_^Iq(~VuxU7JKMajEw1VbZ z4)uWc=za(i03FHr;Fy z{497q5fRQJ0udL+U=^~X_OhV4mIqOaY#6@zs%9KbPc-Ae26e5}vNRJ`opsr zZ{hP^=iC6k3b)QR{4YdV@zO}e2d-+V+xP3x1O4tNHJol}@oe*Sbikfmpt|})u@7fO zs5d@~5-XfV0sK)$_n4=Qp}IGG#&X!gJ&G^fk>54cHdR4-kK&j+@)QBCO4nsivoyNI zSfZ(2%;}6e~nsmWs0xQ7_?OlCT?oLAC~vY^p+kpjj<|PH;2jkuC!d@B|A0rOP@r z)b*F{4+;J2pbz={Oe8y_v7D>|^^e;c8yI2N!IOyL%jroo;ClG3x9HipZTlqf=z5Ei zSn0<+4I-U9vD&CPbm^5ZWBBEjB|1sP`co5Ve$-Hh+Ibyj4T}s7ZZ#u25SNEPyljPza7q?SwHc+<%EVU@^Kl^o$#oRY?w4Wd$Q;cmruVw6c=_%mGm|n?j*JSDn3_ zL{yOZs5cd1X+TYr-$DvQwN4&T66zR$Ey|6dE+Q!QyiaEK&0_Wg}RlSA;yp7$jO6B#z)t6)g|;SGR-SW=tVL`CL)&>45nJEgPQ#9OXxtpjtLW zmDdtLqg45Egq$o9U8zV;RKD=iC&av@XN*|Gd4`730j$wzPGYRy)$$u`(Qkf9tGO=D z&VoF~uh!na_D^bGbC4Q88__g8>j*HYwQMG%_S#umR>=T4;X-SP|N25qpWBswrS*~P z(+75?|K57<_35Eq=~uh2Uoajr4gyPhiX6;#Fb*Lu#%q>@vGMRFsO^HDdA)lUx2?3Ev?r$7V_JwM zdW1uFgx6^ux>{a07P}I>ZUVL-cwHRrv+FQeHzcJ%)AJIYx+Ay`K=%XA>v5Tdsxeua zD3~z}ISuBPJj0|N-EH`1>j32U$c@^Ki_ zqEB4BV80x^x?fFs2asq{*E&aDA756lzD10uRbA^iS<%vbLrlWCJzl%(D^q}YobP@t zMzZZhR=sfxnykWiKT5sm5W9Eb!a%f*_GmBv4gbZ0#P8^>A}rL-*JHrFP{VS(%{^5`UY$SM*!FF^__n1mZsCK>TdICdLgO_W720dE@K?o#Rey=nSW@) zx)kxm4c57JH<$_alV?K0dM%s#v<6jpT<*anhpZ2E*_-I>TSMh)LI18Q)5&|ty{(1JS>W&4tbAjy7^S*}IP z*0Tr6%2I`i{TaU)CPFY!*I=4T_05bLM}f?!17;>-HzLK!%pZeGSgLaiv6txFLaKsC zdQarvqq@QRMuSB&7R$wKoQz_vL?fCr%-yP`7sQ{n+afv37!)M&*V^W_c6hDlP0P>- z{Uc~^5L%|yMUQqG*W#F1gC#BZhj@KRJeBmKQtOM*5mWi#=o4Twp&j+3IV+u>hEyr zZ?dgZy)g_r;jLk`3JyCOH!!p(sX)BHDJ+0d@0WV6a}HEy3`N9K<`WmsbycP(c+xj$ zBvtOaW8gR1+`<4tlxn>j;%q-e=X~V?XG)Jm=X}KiaXQ(U=N1EevVigKXQ~rzYgV`Z zMfeCk_M)&c+SyQhR3n{{@kPa`zV4{f?&tGVX42qfs zYz{Eu0O>^2y2v*_Vf9!tORU42@Nye1sTU4XIFirP4%)ndO1vWDOm6R@@ytg=0|#i9 zK74Y!mkc>4aKtPUAr(sW5yI}UOBKxQPMOx|Tg){ru_98T3_u_`x z+oW$@_;VM%j^yy@3sW!JOwg<&{d{yC_JWR%)P+y2DGnToWt%N9s0JHXc$3H(#&)tW zKjYJ}DT$wXIFAEmKym#PlsT>!JPjbsoB)L?c||Y$jD#ZyRshPF6UR@zSo}B4$I!IX zRXAwI3~V>mbGkA~cozYQSyticok>DJ9MV9oNy1Mb&^%3$M1*{6+Eh3+WKA4vN9o$3 z^F11sQUn3DZ90cpSBkJ5LEJoi2A*`|Z##!MUy^VHF=z=4ElF4oC^bnafafef554N0 z<(=durR=2pe|jMj?1`tWxZc@1ty}xyS(X^wT?duscjo)(L0m3jmJ6Q<@JaC zZwqWLE$;oi)^am0ZGcs}kVkh2SZs(j;yUc3alN1Ch@SO*(BrEQ{R&m@r-6cRXSY5q z!w+4cD4Nm9QT+~Gp(vWwNl{kiJ_yCNK3D+~-fI#qGY$oLfls5pOk&KT5Q_3I=oXy6 zLS=W;&CC>&3d!QU+z6rR8flrVW$|L3G~ZLWXJMEe~$r^Mvl+85QE+WkDs zsk?%OL#N&}8U-W?lhKsWVbEoTVXzPJ#_I%M*+0KW_B8=dQ0h(d^(0|9AoM@Jqk!)8 z#rEpQ&n^D^;AG=EelCKa4!tRj@$&|(?mB*!`1o1G_}R4=Q^&J1KhFU2pheSp5W7cv zy?$8#p;OZCtX^1;b|onYo6@Kg+}`wEIHB8{&V@l&r+&4(U&Z>sXeohbhXcj)2*C-`2ZlkDS<5GQqYLEYLv zt3M6euQUDEBofzY>qun=a}+GFp(~gP5{^qP>ax$EKP*d4E;&&^4Pj8DYcG>1p+!#k zqATIHq!iNyIsO9{PZntHSEHk={J1pNNnUFa#=#`JO+^F8QEC0e*XT|7WqXm6$Gh_0 zA-^q7=%ErJtj=n5=NT>e{E}@)-T6I z$`K{62W=fwmro&l%LImrYsNm>3xFv$;+_A*uS!vW)H6!)?}td~^!jAJlocQtGVXE%C7S>B zP%gB%A0s3uUc>9n^w{zxjUt#Q{d&kk>C`{V>5$gj@{TWkRkw6YKV&JPD7sQ8W(nPg zPRiR-f-FdMT#vu8Ta-0)ANmk)%X|_4X-cHdT`nJsCU46)U-{2!)Y8s4=7r*5L>rRZq1hwT>XhL4dOZIHIr$)0`_8DA;Sm%&Mgw zLRQ#2ez#6#DNjHwmV$Y*y8J67(#0orSsg-B+aC}RtZca*Fa-C}@3cP7_R0Ft;S@@E zQ>KH9Q|CE#xdZsb0FpNOlBkG6N)Yob@0O5?1hMP{gru^gsq9yw+3x*;z2l0y{57g5 zSqq|^n^Ea}t#iij7}?QRF7IQ%6l_u9_J#$ATda#C?yzf{d|u2DgbX6?YJUuMIbByI zHYEj)1WTd6j}WnLK3SFgH^GvPQ69dt!kmkvuMBej?2(DCKOB|WBlZ{X0nTB z>69oDDgvR_`?`%cV!n9PB28H;Eo$)6dZ%A~&}B8>@LJ*HM9(;pM#-mlqnqm1SNiG` z{Uvoq*ndEWnXJJkD1MjkNo<<%?KuG$poF=!=YjcBIIY<6zAH#!=A`6jMX~-0Q(WIm zVbXpj(F1}_Lqn4_GDndjtc4P#IfbPk=ICohdF&l(^(GhTJ19kHGnj}1e z0PDYF zp#b_xLM}++V8XwYIjj`C)@JP?BtYF2d>VeV@~bz9`)dne`o97F{itI`Uv)kG7SLp` z&4K>E!8Yh)ics{Y^r!Og3T4F(dcgVnEG%`aY~=H^57-O6 zYv=19gk|8uZ@w$)Tj zuFL<$emT(cu>G>aG7FcwEaUB$gDivh?MJVM^9F0$zTMP8E|5A%rr&)>De7L|__^;Z zg2!~h%>>`t1^=7io4Vl3fWZOYd+UkMh@=VwUZ*8p0G>`mtvt2F!mi6+#O`gr0;+my z9ps)`ZR?L~R_tY+imBgNBJ9=rn5l=0&kG|_Z?Yju`LCT;-oQSd!;FCGvJKg<(PbT? zWc&CGJi6XYe=i z$@SQKVrAmeIkt1ferK#+XnvI#QIub>-sM9NW$42hx(4Vsb)mllbl?W@E23y>eMC~M z^nMWRSGhlCrdr&S)OBE!jMlv3T_;>vJ&ma-nWgwX(atbj4Cni6=&33f=(Qo$7V;b- z6!S76*gGcT+IKJosUMu_U>WR}SuEwHSnT}z-YgaSOI9Cjex9Jj{m^;h%gG&R~F#N3e>gn{b_Rk6MT2)@FQlJm3V5)+Os5|V@DP5uN1vCeE~l%VXT`KfkE%XA(hqf4-#DVF<-_`$<={p7@m8+X($m#!KdZRdWS>so zKMJzO*slayh6er0U;Xkw7qR1oVihiLYoP1uMYf}A!AT#J#&tzXRyLf&;a^p2OT#5R zf1v!6#Qcpm2-YdeCL#9}hJj{lu<$u3L)2@C`sWbn793DK={OpZs0ehMiQ;r^*OXq# zO8-!P7w$%N5-8P4PjCPlU3Ee)2Xif1SgyiwjDDetFZ`F?p(!CVWyAKr{sy$V8QX9lM1L!r>dXi;o zV}a)mo+Rapk^I?`ub2EZ=EHW5HI80_aMPuR@98IXJXN56m{Awk%8ciTH9ukl7gsYP zN2N|@H6A{lq_Pa04twOR0}fe0qg8_}hjJ;@qvB8@e9ABkC&*l{xX37L8sC2c8qS*U zkwt64oi^85oJ`^@0lO$2tEH_Fx+u_@ilsqEBHzChG~g98Z((FyB2N!t9$PYK7vp*? z>x-xuT;qj@I}07H2f*{1HUUUzcD}6|w)UWzR&7;F*qYN`-1l2^iJq1oYg(?-vit?o zs-`@ zQ&;N@V^^Jns(DWRHs)%$-qAGjyVfBU^t*y0Tez^XpDSgh;aHy-1=d{q6|NW?OK#5k z^(?zrVN*=KTJm=MRBO9>V=|dS`34|56|}(O00O;o3}CSm|`51xe2 zY>{fG_(SR^k3n)@434aH_@z5K#04t5K6D<3c8-KLTs5~+PHCQyqcFvQ9^LCnP~tYv zGy)PZ&jdz)Dk%|L-H(Gb4u&YpPU<4w0Iap(C%f9+R>70rE=Iy?I7=^i(=`O`s(a6& zFwJHq;TQE(iTE7~Dyn-qIAfQ~0f(;3U2_?G+gRLe@*ALM0mLbvsG4faB!J)wzvVq9 zx{k4f?t-z2V@XE>$!<}iKX+T(aeXf#VhwgLl;}PpL^8NOC1y$%-e6*w@FJ3E_E_yJ zsaew9E8Mrz;ue)tSMNw}z%GCzxf#Ec0X&-FRa!^#x=23xq&_hxP+0jA-aJ#A9)^s7 zasUZdJZiWhOvZ2zu5HmwO<3%UZEc0U(O>e1q-1&_JciVOpUB6(`*e**7w*EVCc1E_ zp_Jw+rK_#?0K`0UHD?(OX=6C+@aQ^74x#zbi&d*153&*PhxciT)bm1))DctPR;b-~9cmY2&C+Y(Vz)G({FFb;rvfQ{^nBY!a07*+< zWOC<W^uwNeTY0yx=Ru+q{!L z%hs#X`rE#!NZ*$q)KAPp^>k&gV7g1CSLnbhPDM*S$mKK#tnZ7F5H+`cJw;5ZvTE1& zoCS$uqbs9N$aw2-j+fId&GWmbu-{i%|5wT_QW{w;Dr>5j{OC&YGZN^_*kVe9ot|Xc z=1RwQ14`&2aJUH6A)I>NXH6($`c|M=gZI(+s24tl z@*i|4*=a$Sf{`BwB0!+;YnZ2C{$W3U4ufl9r+sB7Hn+s@YjoQ0#f_k@wQRTbu`hcx zvP)MWD}>l>m}!XL8H$M-dgsytEB@yi#$<*}7&CUPcJe)UjU9*o+Lidk*Q0s(fEPDY zLg7Ya;*)8XDIp=_fJlF#BZ}~~I7EbuyPHKICd-hUu?kUlj}?(ZN91R+57Z%U;shDX zT4adMLQH%{ZjpgeLOx3diyJrQ?vRks5$5b=CJT!&8?q=O*I*RkrT9)7;H3rF4kIFY z_&8j?B?D3U1^FV~rMVfIkA{SDB;v}VOni_mzbFIW3e%1sGj`%A?b21+`!n*g4cbK+ zE3)&89?jN9<*axtCLf;z%*-f+G79qU2XR;})8&25t;-#*Jpr5poI8Mwa;HJZ{7_ zgr|fUN!i>8A_zPQT4pH7Gg!=2WfRAaT{&UWSZ)N-^kIaiY1t>zwAuOEVMS9yIc*fw zY{b|1a>v{m${|W?#McY87L!4nmc&$@M5-QEq|L&2>)0pW@KwDr+-Q8eu@Ly6z-hH6 zi=}YNU3V243JPI;{+hoFRdJVprQH=8$|dKU4VeYY^0SK!S=xd^`k>zwuoKEXz`{k~ zE;HAfWtgJnLPJ8dD2CHc%P=pymm8(!#)QI%3+S_uTvkCoz8r}!)+Lhmm~NQ{rO)-n zak3^kzmEhig)vFrvGe<+9X{lkWiYdP8r$RbdPT==NF9TMzaP4Z&hY4zIr#B zwG||Z4TKv_t%)kxY%rSf*+y738+*bF1|P8PXngcJu`5}aQL#Lg&NK(sJ_5x0C)-aVQ61iz%b?0ov1_ zqOM0|EL4Dn{^)zzBk_}a6X3*{KYrHYmnEy=2;(69_x#|u5q<;iWjHzgd4wH)aETvG_{-sP z;b_<8Mt>3bgm4ImhK$C*3)P4<)X z%|n9Oc(_Wd@t_Tco%*|t|^FMO}I-wTz) zm9M^gY{7SDKAN;(u3_TlBPTLGnU?oWNh$xrwyfN+p(76FtWB!@VC#kTJr~6_j0_pP zXu&G;%-}=wQhSzor>rUaxaeH|kVzld3=OKgU#q?3{QF&AL*uKr4ygbA zxzp~usw&5Zf3tW=QcL@7x4$lZHC8|{bE-j zEb~C&Epvm`MH=iC6qfm+@cwTHzWMpmu;=!~pC@jlD;q1-p7Y<2nX{4|$7lobLoy$L6 z_?SRpSw;%)+5N#*Yhth8C@jlM;p~WI9(B~`rNIcxvQzl+rRK9|UcLEA3d?$+u=91B zcmJ@(P72F9q40}m*J(EGdhKZn%le`4o(Y?WWDRY9j>598C|v#6OXDa1ZPE@3%X*{m zSCwzZ-ZW&*s}z=XNZ}uQyua{=m+E#?Sk@|FWOIG zSr4cV5qOh!U3Xi<)hpqR#(E165W&Kmw|L@BPcPYR0=#fKc3v##;;cfk2 z*&)F+2k)1r*X-0ivyRG@ z%OadfOM~AC-tzZ12uJ3b!Y$^C4Syed`_3Z>%REs0`x9P_JNZohzbRhkhr+#2z5UCt zzqbBFG-ci>UcYbu-eH+N*HT#KlW+zT%X@f8ZodZxT*pLzM;u91VDrLe4X zk|lk2Lt?<3ch3>NtbYpMEsX`#E=Kf^o1bsL^f%hjmi|g9{L7Zew}v+TIDP92DbbgH zT=a2A+fwrngKO^H{l=MrI|4==dbW2T{H?ifQ8N8~a%k@M-#+Yn<@JLVpL`bf(%B*R zJ~U_Kng>e$`te^bd(A|ME$DVf?Zr{m6HMVg}6RGhXWR&QB{J-Vk2->ae#ae3yLpzgynh^m~Fg zN^$hH`=1`{{%ypAUx(jz?*4kfJ z95}V?`0C`X&pp|Cb-_<>eRtc$$Nn~(E{Um z>&otMa{iIq+XGh#cM`4xPIX7HQVTZ< zE)Gr)_b^-`Tq#@y+zz z6x=kpG`N*;o8flB)xw>D>wr^@0A09AaC*2bxMH{pxE*l&;OgPdz;(c>MgkvhEZl53 z6I?0WX1LvO2jGsw32+^7s!_m)n*cW(?qRq>xH7oiaJ6s(95*^x83m_@D}>tv*8tZJ zry3KijD(AUTLM=Kw*zi3+)21LIOScC7j7P0G2CXjy>Lh1+;H4j(1449TL@POw+?PM zTs@os*9oT@2Y%ru!OeqP0%w6+2e%Dw58M&B2DmmjZhWvZ3@!?88k`<33vMOcX1Lek z_QBP{HNdsODWZdw;c%niV&E3Snc#}yD&Tg(9f5Phorf#Np~3&U|JA|&+Q9$X!2jC7 z|6LpSEdVFMID9eV#KN!=r%MyZjML7`$Ta0)+carak;RawP0=PTOw`RtNYXBh)oY6i ztmaIE|2%^7;{YKu16z)Hg^b4d{~3*dz#v6%kDkhq&|a$EH>ov!`t}R!fAfIwfrD;| z7<}t(+99_OjT|=oj;K3Fj2tz3434|TM^CtW;ysflPnkMx`n~tXWGv0ZrsXnIcFv=@ zdHDr}e=!$XtjkxdT=m#P52rt}c*!59KVEDrSzWs3342-j+9%gJ*7F;j8#h%v_1C92 zZ+Yg~tGbs-~HA<-rn=hKi}Q^-uoZy+yCK52M&IG zsIsd1@R3iB*3{M=`}Fu{pMO#R<%zFOe*Mk24X#s-Zco#9&8NTr;mnUe{Yz;1xwY-z zXaCcF?w4QB|90VG$EC|xI)A_Fm6Yhk9|dLq+IiOlg$6S=TMP2pPB(zOYzsEwx%ma! zB5S5eYs?lmImI2-0`n@+lG6&!1(}ATB6eV4Hd_m6^S(%|R_u-Da&zu_z&F2>^JE#8 zXJ@i)(~PVvGv(&E8Rli$TpSZ=Ed>SI+=BdNh|{e!WNL9hk(Xid(U_T$CGwMR&0A_P z6CatTZ0znzj9^cnOEic!q=j)67ML^4**Gk)=4UL=$j+q`1&~HQ(9AEeE;C_=J43WL zJxN|vM2g5VIb=8mP{h zOxgk~NE@|T1$h}*B2xWXb0te4E@*?D%%UidEQ;}z2dlwpFUw^pqI%F;R)Hip2Q_EG zd4<7@gQ7gB2Ne`+%E-?*>s#Qvh)|xVM zsX6#yn5=;+Vje`gAyK61%>@=Zh|p&JpUTcQM6Roh<0q48Iz?^MRB5e2$9yPDZD#f* zF;!}5UQ81)N!cx-6m*!`xwA87c4nA6(_|w^8;gXBbloHpG)fG$(qh{fg8EV7%QyWH z5KHmHng&`V)w+gKr38QfbMBdY=cSN6|#iyFJGELH+4o2H$glF~; zOq5{uK6(FQc8emG2XPOMzZH)af@vc)6q92&o))DjC zs(DHNi(3AmI3J0$*09WRcHi1P&S6-a6=+4We!#J6R1r?F)+#jn*x6cxbFyBUMf8%JD17@>R7MatMj2gm9?SGuz8tbvXHs zwBby9UV#`r-MF(kKi_TmqdIq3&p^VUQI7f1qKDRLn?hFx)^6JrxP3@st=epfdC{g; z4))sp>67#1HBulVv$hn+d(`mc9UX^1r#L&_WxFKq?I4d&-OEiK2 zdCG>>qLfO#R>FQ@@V47>F<}uc+Ou>6RL10}p`%f2P8mcoC*{_wVYa(vR6`wyy|mh&o<6a1L{Hc~R@0pO*5(>^HCQB= z(fc9$omP?3APT5q68AdNMiV(N$K%WR04?fc{TmTyGA(DtW}21GVOX6Q1p4lyDH7OX zb@0x(o~>l(65xE126V>6ILb9zXNKoz7WE99#bugejEAr7a-yrU#YzXA>y{l3?{@4g z6TSp-F{nfs+Qm-Timkfb5&}+ob5tAyF+$zpIaD-NWA-#LUVagoi)<+5QbpM+Wtv~l zj@uoHjq2dMCz$sjZgPACj!3~FI+X7a4&^(9+cE;Tbp-D7BXAh~q4qG2L%0$1m>MyU zsS)#-8ZnQl5%ZX09y2}1M+%oX9YtlK6}9GrW13<<`y~)rYdPd#y8C!LoZlQ5<3q}t zTBkR%c-F5B+IWOkSyZ~#?UKL^_NU)28^Vp4#}?+X%X{ut8^}T~4A&j8A9BKm`WUev zTiB1D4;?PdmzwaowHpd`BW9>mRagfP9s76BIA;i}QML~`)2NMN+xcC|XEOLatOr3$ zMu;{dU#5!omOm}mJimMI?gM7b{uYdO#Fz`;CyoQS3|s+LfYeetvjNxyOaeQAX`lqO zfn&fDa1OWtTmmiwSAZ2Db%Of9CSVfS0ZaoWpbZ=YmVk4>1>h2J8Mp$h0I8GI2Q~qd zzz$#qCT(*m;`nJ(?AJm1IK_R;2gkf4AV-x7?`6` z{_QCLUX-7X^7B#t2Xg)G+#+lBG4l8So7R^@P3D<&<`(j^&!sc#$j6^eXB1!aI)xu0 z*Ix#F0#I5DY}|57CZ!wx`#9O1z}>*&^XZJPkC1O5zX!MrNCxGoKaD}-pV@hUe2s0B z7@l>CIYra9Ob%zWYI5a;1{~({PMg5epq?vXXP( z{;vmFDwU%Q+=R&yyk{H6a?TQns8-RaM6c2#97^61r;=Cw6~VXmi8ogcO5HhmRt@Ow zO(CpE*42y33SoP;)~Gc7ZL3@AD=yk+z0l;l`F1-GasJ4}MBWAhhkX&In-vzEui~qR zdDDx0&Q%Fn^x@H~Y$TVhL7MLidJ3IMZK-MTGwi`RaaXOTky_-iawqFK|1r-*U}liDU%fCfcpRf=gkVD zDf|cIU*>)px@*7gr+ovw4y&I-yhXc+c%ID-G1bNw#m<8KVmMB{pxfj$V0%HLb=r}++QK<)hbexin?3jUtX+J{VvP+^Ews$*T&f?b6!Ym<)|hh1RXF+D8gu7)6$S;~ z63hi^jJJoOdGX?!L>Gw_uoW-Pq|E0YPe~>Voo1muS2ABem@?$L1?!rB`>m8Iy`3^l zJ196=G|&DcWqc@b!AD5@!ql}CgFh4z7YH41neV>WhpRW6E%W35MYwRD;PT*zW{SVr+_}k(3))wdxlQ*ipxG1b^V)8++Wp$LCS`JV|@rjkDxw^__T?uaCYg;b|pQ(xUqIZ<3Zr$01rV zv9#$QwFc1`^l8&?GKRr+#V%H>qK!SRJ_M(~?;fPp7D>BqrcY0MKOZ~M7zb&!U(&Mo z(T-^U2F-`js{YL+n!*dT?xeZ?bUJgL>$?&aRi?z!8~Lg7J>|2?2_9pO`Dc^%Q*Z~s zv@M-{*>R99)=Xt;OSybn`K+p|_T>AX#p#vL>yz*IGa%Hr=;YfTp#%B0sw+QNRkT=R zfTxo$yr_XtNpvdrbUdosaWEw7i_0p@C-%t?fk(0)-5GrLGtjN~g_P-1@KA#8JkJK_ z;iWxgkWtcHm39D{llqnK|Ng@0e)mLlny+LkeH5=l6Nr)@!eiX4J}Sk_Yu}D?O`qkmx#*UmTZZlq^p8)T{#zh$rg}+q_!Yh6hj0>% z+VbfG=>F|*$UWV~#I=gwdC?esgvuvR_d5{&T4n2A;#oa`@Ryed=$?F;A8tqt#M50F Ppu6W)V{jyT$zT2-rPpl9 literal 0 HcmV?d00001 diff --git a/local/bin/braid b/local/bin/braid new file mode 100755 index 0000000000000000000000000000000000000000..9a4e60c155e353b7f53e4d8c3956f5a4e9936742 GIT binary patch literal 44364 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 B3l9JQ literal 0 HcmV?d00001 diff --git a/local/bin/decayscreen b/local/bin/decayscreen new file mode 100755 index 0000000000000000000000000000000000000000..fde4af95292915d16b504ff3d46c8ce87f2784a1 GIT binary patch literal 36172 zcmeIbdtemR**`u>Hn8Ag0z?cNb&Ek$4IvOzE>RO;xd?$JOD-xgT*^ghnIN9fMPp+;kC6uLkTxnAzsRU`B zA#@fEN72#}z#V`BKpa57?#GP@-~h1v3cyVOUULB}d4p?)8c1K#LIyQ}djaDCHb5!h zVZc2AUP}R006XAOfPRhEZ?td`!ZF%?juxUy(%stq94*v?$8kd)-3j;#;1R%L0NaFD zHNYkABy0lwJ;aqV}M$~EPxxpt5OZ5

u7W&%>QI6YXQ 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 literal 0 HcmV?d00001 diff --git a/local/bin/drift b/local/bin/drift new file mode 100755 index 0000000000000000000000000000000000000000..28d31ea5c44a394dc93964ffe3f759643ac61b07 GIT binary patch literal 45972 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 LU9ig+7L@%TRYlbO literal 0 HcmV?d00001 diff --git a/local/bin/flag b/local/bin/flag new file mode 100755 index 0000000000000000000000000000000000000000..13ac4d99d6b2591cf0a1eedccfbdacaca5821ac9 GIT binary patch literal 45512 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 Cu(r|w literal 0 HcmV?d00001 diff --git a/local/bin/flame b/local/bin/flame new file mode 100755 index 0000000000000000000000000000000000000000..94c27ec19545d6678fa80da9dc210f62fa35bbb1 GIT binary patch literal 41840 zcmeFadt6l2`aiyb866FqQ8Cf5#zZ48h=S%dQ5i2KI)Wfw2)PUn1PskZu_K5Ll;d`k zbJDVNy6Ca{>Eb!3iHz72LMR``EQ`?k=%K32TA^ffVf!6KQkbVycqz}(HKAuU^!quAR0h_ zs{mQ#!QT+TQUK{E5kM7^3`hY?2iyvvKfUO1i{Y*SWCNxE3;_B|7ai_CxbXn0|2qMJ zf42o9|Bw7izl(r^j=Egxw^$lO;D2 z?pVMyK!_AJM{;Fn96bF2a+{LFhsqwwoeOscUfPaGI4~9El@=ulAAjy3Y z?g+`>+aa1+QA$-cgdGSAB>UH*-yk}&M`|akXr+p5jpCUu{-jWm%~3qrdB-0WDk?YO zWG^zmkq9CA%Mq`IOY!po`-Ui0l)*r>Ihr~)qQw;gx~^g(t_@zl|-4=7(h;H!{7*$l-G2d)KuiG<$)Tn~Qx zBs?1Uhv!B4NdHqP9_fuzd=l_#q_2?5|1j`f(C>N{-;c`!UIqP>OZ3ISI|A}A2Oa~w zLyE5gUJM*4lkXYedm#_CIg)n|;fUV}m+*hW?UKd_lJ7&{DlQ1pkbRu@)&Va@{$%?^ z?*YCwK;J(AuY&wmDZUf97W{M2X%M{zoc1C;ybK=#{LO&$5x`?6$@Vjdy90PU(#!QR z0r)P+FQ< z&zHaxM*G|Ae*xz}Ukr!ne+90E{t6i0j|&2y*9It6C(yA_dmjKi4*I;p@Il;A;4LUm zxs-k^a7}|T{9Y+O5qJ#rV}wij-4Aya@FP-uKJaqjIg) z>!SkrF2p06@!JBt3i;(r_;$hr^!I1r@t_y&pW|Ky-U$7KOZokS;*md%jU-^TE?b3l9H zGBWZ^S)9dcHfI~noYhpk#IVLtkZd#*6s*k4S#7Y+FUYi5xWdeW0#i1Zw!myKa4bni zc7Y+Y$W{yvM%!vb#+u9mF2hii13cThuGm04vooz6SQO{waPY!s$*^SRBFa!;$hH#s znmn_qh|9<=&M>a!(&n2DnO4KX`COWnNsw$c=M}BCaA}K+tOj$@T&t;&D>M`qn${S& zT#^KNW-FvFuvv^;T56ufmRYbkVS(9HDEc`h%P2CK z&0Jct!KyQxP3A?JML7iq1X%T^V(?}~o^L8JnJp05YA69e>q3KdZgFuz9!iyGDq5OZ zXqa1+BWfy5pJ}!jSOQT67DIMnF^6)Mu$XM-Yy+28XwyTlV4It1D-cVaXs}o^R~tAcB+}(go67mJM|N467S#J%bDkBN zr)(i&ZhzEQ(<`w0b*3Qe!eq=R^q#7XwWMJkG!ORvYjLR)10diSj zwy*BwB5_%iAPq8$%=BhcvB7Lz$Ld)$9g38yvnba@!W3JqnW*cGg-e#ro4X`q*@6Yh zx)m8K=FVH9%YY73Gf}~*nFTfjleQ=u1)^NY08r3^JPTEh&)`6ciV^LRnPNcMSlt$8 zLP9a#k0+Qj*Xm6u8BBIAH5e8(A8iQ%$*2<1E+7FarYM)oddy%pk@AYNp*@SFl&owM z>2f~WmswN*m$uwyFt1xdCQpXC0GuT4W+dFdbZ+9}`CLJcp(IdgbFFARSvD)m%d7*9 zC|9?}P=sRoMMKN$WiuI4L*+6|MH%P{U`|Mpysjvlqk76%ZLm`Hn{sn9*HPQ{BdAe` zAXll>!n2`USR(2kR)=*T^I2ujq)D<5&5FE%%S4MQ`w;_$Vyze$o^4)Nd>yg8rlhe- zxd>wt=7dUg&@>lTQlE@5urDUxE6BxImPYPqtRcyrk3N%JEG%=##YEpoE*4w`ptn4H=iQ}Fl zcL>HbaQbf0&g$5V>s?za&?%KlY1}b8suW(Q%x=wheya=fjKm} zn2aAMcNNAUa;I_J339Ora*>P0Kr^{mjJA-wjN{IdJBs53av$Qjc5>%oj3F0;a3{IL zF~=h}6mwy62V$_nnAvv;*0|)RLhs~iF?T075%obX2Bk1^v4{vK7Yo@4a7B9&Qh7%&!4r~k z-qCvaXoTciTfF!iy@GIxYi(qB8sQqks~P?f;gFVV-OKP*glh@k#qb=$QJY+A6~m2$ z(-7WT&hP@lrx9Mv@M6N_317u*E76?a6RGi3|~(;3dFU>Fua`bRfKC9UO_k& zs8z%8O@tQ{&M|xo;U$E3TtmR`S(4Btz5HQ}om{x0G5gzFi;kMKsq;~9Q{a2Me* z46i1Wsyj}R^pu3>mR;T?o?3_nhI7vUYhQTZDQ=P-q9ZDIHc!c~MfGTcSDhVW{J zHxo`%#MZqGZy{Vu_%4Q@B|M7oDuxS$#}Ho5@OHwd5njyj4#MLJU&ZiF!WR*)XLuLk zdcxxw-c5KK;V}%S)@58pxR&A6%8W+BH4LZLW-KP0V>q=sV+r9M-Bf;Rea3RaTNqBQ z(71{4Mut;sG*%H_&2Va!#+`)kWjM7?<1WH?F`Qbd@ioG$7*4I#xR>y9hEuCG?jyXI z;naGK)r7BNIJIJ9J>hzWQ)@Oh5+2WRYSl&;;W5DTxqOaqPufT8#>#4|QW%H8eY8sf zY=DtG!ZZZgk0|!VBPFA`Qw%Vs{e;-zBEsub&J~p!#}L|KNOGoxCh3L4SG``LKjMWS z(2dxSgzAM*kvgBF5^#S8U}E2S7`==5m%_KFCX@AX4{kjC*fx%H+8fV%z0P8Vy+pxT zL-{`5M*C5P{T|NN=`?gb_%Q!N`eCPa4Cg$65d!;oe7i6COeE*iyNN<(Uxj#kd(_I* zWWH22eRe%o1L}&uBOSk1!7o(pIgWsQ&genGQiWoO@6frNx(>Zl*9qtXbnAB$kv>(( zM6~@#Bs5YO+cZ7BW6k}}HC&ypnZ$7FnnBwFI13N}?fU$YP<9a1o#IO3b)CFoCzy<9 zOkyglZ9{lnGkD$1b4-f1oA_$*n-9io-vBwH`sjrLBoY&wN#QgcfAHZ9RzT;w7{OTi zQ)pcvt@&P&tcM9HRl)>4t4HU8AdrNNpjdsfk&+98#3P)x|+=BH&JZ0DoBdhs77#UJB;Q+=>7>-l%9wr7{ z$Owu?j+9i`g*d+r1eBk*srdBJ-7#1T>W#0qVFmXPw)KRL%U&<@C8r9V@Y|1sL#qSw zy}}w`&i6@w#(h5W8U)5x`!itiupd4pluy*eR@-L`w)L5Quf`S>&x}xx-`L&`+lGk= zCUlt8z;-jKkuJ%Zs9L_8RIK04bhmpJ3Zi#bJ_ky@U_y?32frYVk5@P zL*r4D(&^j<9uDVtJeLc}AV_BX>_;N(rK%wHR_b)>Dx(lht8pr}S#hWXDfjguyuSN2 z?!qhT?bV~bKpmBlAmn!twFTJLrBm3VVEl) z7i?c2tP1fA5y2b!*C~mVdTNoyCSu_L3rA%f_@c~cK(k=5dSMS5FYihf z#z8n|Wjtc_$+DH+i7@`)dX^%r^(^?IZxj1#ercM+8G#t|x=s@PX*`w-?+u_lrm+;7 zTzi?8v-QcXTcAw~26Bgp+|d%mJBftfK@6tf8>O!JH$=_nmL~~e5CGU zqBmM6Dlu-BFdpIM2g&w0+mst<{TtYj-#*qNfls2xSn5doL9#G3eGD(?-<-N#zPdCr z3JnS)6=F34@;RXj-IT8&7qBoy@BOk0T;wqlvjFtp8{0!wtbgXyReY&5OgP`;Ff+k; z3|7W=s4Z2P1TRL4v2dhr`gsmrOtPRt2)b29mMruKwlY}=f#a;~gr%c9?`wVQQ2H-)f{`1H{rj<;2%3d z8v7zzoFyE?bd!et3R%ly$LgP7+S^r7H>Ma!o+|teivnt{s>&wYAXM*4so_ZUPTf^Z z{<`(XC}fZ<3}717*t>$PqhTN73}vD(@1@8)S#U84+6GYlCJQ7Fuj_UiI;6?&_40%U z$a8C;JnnPX%X10xbm@)BOrFwTsD^vV^Po?jk2^@7MUViTBza~4^XR&qhW6i=huNbF zgZ6U0uo>-2Qjof07wQlr?p4`XXvB4{2)Q=%>otR`HV4nrS{1YU*+Py6bN9~tdhI!< ztrJB{3|o!~*K(l+IYU^qqhZOC>efTlwz~u7|EWIeT1Fj;ZttdKp%MkbB)V;#obYL1 z8BhK!a&5Bq!Tg8lY@vtVNA!Md<#3`=-i7>c&<7?2$F<$rv%Y_iaGKK~$Oa{L-@f&V zy1Z8~HA^=+Z5FIIlI^9ToV6c+w5=~&fADpB<5fBB zGJo1Tr9_Opzr?6*QdOOg zU7YncmSTQDib<3r%17TdbIlB*x5hC_Obva!mw-}i#L9D6#nPm%ExK3zpe2RHJHzxf z-zh^HYra$PFl9wN<~~lv;~_e%DbMz(CiJhcz!YliyiKD|5nK}@es@RH;V5c5KjY7>zBUx_j<&$@*V0C1bLAk*ZKk;$giPy zel*;*ZuIf{rguE)wk=1RCX`-X>9lpH8qa_#S@^7-byhTf3|X0KY-NG_e1SI2KFoW) zZFlsj8m!;<+D4FlB}F+>I$LjpCaQY27kk$=+pV-`p-BQ=l28B= zhprQgn$`{!vdZ4|n{6hGd7PF76r-rDR#$$FNPB4*r>DC1lEwvYW zSGVmC)R3(M^Me?lH)K94^bMT4(gAuB0GV&|MNt;T6d|Tr(<5RfBE-BC;gj-?ro3Mv zrT1um_O7ey%2yGL3`8x6<=l=+=j)wwf5XTQZLb+2 zAxI$7ZV04MSJEn!#FP{`4kC#Pq%ypTNKw?k!Y7Hk5~7NAbx$i*cW7%RB1L=-mdDNkYiLa`~Kot`jE3mGrj4@WJWUV41PXVYyb$}~tvq!BgJd?mIC=yKtQ zADHMNRivK-J?#nlfw)jmdMICvea>~LJcq8uk>2dn56tJO|008jthP|h>Icc)A|I|7 zHZkUG@72HY7q~v?$$yy0KUvU&r9;;vmkBHvY(v`m2y@}D;?uB6e&-D{VESkJ?#X{Y z>KO7T3mvGhUi?2p5ZmSi|1kRo8dE|$mNWu$9Zo%{f^Wo3%EzD$=%JFEw3 zvT1~ydh+AvYxVqmtm~3Bm0wvOwO}6;Rb5X?tg8ZRrsHB+oWms%Cy`jj-41<7XaT-znUVlFN#g()XTL-oQSd zMKv;AHlo^l*~eQ5lI^1ge%OarFTDEQe`g=|_86(Y(12Dd94U>l7gq|gQZ6fn`!Tsg zCy=~S_!-kShwiMeS>4R1G$sktS)O!mGEnMwV)Q~BvZSfQMcYIld4ERUpOItLXT8}^ zt^_$~L-@5(G_^h=DVFW;V116(y+3}Qnv4DF(s_rj%aPJeYhKzbqkqEkY3OCeQz7VU zcPQ-;4^h!Gv@#8+4k4jC$Z?2R{2n5(cTFwBekgfSN8CIIOJKjkLMbhU@-+b+g4~|O z^&OTel?}Ef;$c!3_IvKe!TQ563vBve2@+P0HHkCqPwe>>pV;kGIM|{D>yny~M)jdj z0|GWW6?2`TnxFwB<;T>;fAkQ1yyCqTa2PKz!v98=Xf9)fXEi0d$$nU|ztX> zeh6}qo-R3tP}!XG!k)e46$|Gd-+Qb#lCf`=yE_g$`ngmo>O+mW*e3>xS*u3)8?AjB zYXnX19tz`Y!TW;xP_1+j2YqjB--j&8gxLO@vvLtkM~^Ku?hKMv>VfTNomn@P-O32`_` z9KvM|Bnu(s;INxKScl^54M$;9PJ=ECA#`AvA7rFRJ+G_K^ObbVL7yx_%LOig%Ub+Zz3#@!mJdwl!fiZW~MCcC?UenL8v3W%U#%o zLzt$B$TW9hcdp~{W;D3nWZx_;^H5sNssAADDWsk2U{dTRQS4p))LXy9(vc1<7-Om! z{YpM1B1yOf=2WL7G7`7-BalhUAe>x}aDkP2>njN4v9qUY4)ug11aiPP4Zc$~%?eK% z3!=ypU*t|Xavwa?M}*<2-Z~0=b~F3$>aTvX9m^uj9d^Bk%`7_4F8@%WY6Q{&h17VN6- z9j30_1}Qws=RkMra_i$jeB-sBKZXrYSY%V_iKf!MO{Fgh_e64BQ{f2;jzI7Mp=LC- zI89UGOHG9bnhN*2k2Mc@NzU3j&7*u1i0exxiSG@sj=O{JPpGQfh_54KK63RQ{ZMR7wt-g>@ z?A6A|{KZna8)R21+`!xYW!dX)a3AYk`uI^jO21P$%+!IR?{rtYj#2TCxEfCV|obdzDhW0 z8_m|6&_DfSHPC9rOkEa4nqRrAPc^t}PQm`%)$S{v7KuT;b&SU)n?}9xLKLY})l^vT zZs@sQ^0=EvAAs1c^dke(#|^Y|e&S#X9W@dIeSz=!=Yi625kP!ePQ5}11j5DDFfm`xt8 zbO1kqW-p5!EP_e=5&94A*-KaLwZV=dRCY-m>n(Lk8eb60wcYNwmn0z{2d|ievIInd zB1y*)d}7!10mP&15u8h~GmcmT}VDhswhM;T~la%7Bsh7|rE$-S38CP08kRs?)O~AD|NO=@Ge(!5F%Kk094^3yRZg zD(Fj|>ln(;Q^l)%a@~-Nzj*fKG?E)Gxl8@+oz9~Z!}#=Y-WH+$KnMFh@-c>wYQ3m- z1ckaWr4;Mn7*LIj)VL43Kc(Lha;_8d*k~Kzaidmi-L)TL%);OjP~H7t05u;{8+Csw z+Xxv2_?$Z9KIiezLT-^pRyPdhT$|0O&uUjEwqk5Uk;Cy*-?=|Mb-8VBzQ5xn{97I8}efsK`v~=o@{R(}{%zu^M7TXltfc^sq zg1q83-q!6@mV#CR_AMf zRDlDrCwdYa-Sk6F>;wH$y1cTfERnArcXZ}qY<;?tSBf17>$1_EU|&Oc1l%!V@G0H2 zq2iqNV#tNIPyGEOZoXk%a+r73Tn%b_3wJ*f!-6IS*c!{9?cXNO;`=!g1-^6^-&b0O zqJK)9wp<8jS%lh4<2kE_*9pWC&#s_&Z1XhfG$#uqn{-0+Wg5F%Ji4f6LzwHlC*9@I z#WWitP>t!0bU{`qdyKbDtJ58)!ttfY!TV^!^!|OF3vdH+K_7rZpWLLNp1`APbTu^V zBE(VAqjM1!CSn-APwF&Op*_12aaE-k##~l_+43YS-AV=6F>^&Jfcy$aS+ z_a@#qkoc>&o*|)ArorO8e6T~;jEfyo5fA1gJ zuE@t}k(DJw#gow4Oyouq~fY8K1IDHWi&H{oF7RK;UBuDM#Ky$74BNy2)r2Y^2O)A3yqh=Dspstl# zmZt0>k23rS`onV=Z{hM@=Y2tZ&9j$EHT*BcS@GgH#Ru+MsoM|e(1YDA^14IeI^$~f zJm=}^f<3vxb;E~ZAI`E+Z>84(R5>j{{87gDn5Tk~HgEZir6>*eD86WpJngDKRfE!d z6vvt)PZH8=;WS%baJUTlBiw3Aejp+Pt~A5&}W}|F%mDLc8%$jabhmuma{uP}Y850>5 z?8kBNU645E2Z=S$ENUCi0>|~OtK5f38nP;@*Y_7Ol-E1^T?B0yFnbC7>-$`Ko~Y_7 zH%WQ%JIFVEJ1c;CYXs8s2T2g8Vgt57F%b>v;Onoee~d8|Oa~{Ol>VfXxbizlypzEJ zcHP%igN5rFPB!jf*LP@^M-$XN$D1Z55359`s+5Rk#Yt(L*&-^nG`v}HS`3ovcn4J^ zX0bc`bu4e|u{zc}oO?kb+I7>xE$|E5*-TvPW%;4g6m=svLyR9Ok<*8lO^$8w*Cq5U z3e79Z_!O-}(H{k~*9ALRNib4HVx;n<3SP>Y1VL{{U8Iz0{W0`)g~$YaB>w8H>0}Uz zS~flfIVz8^f@;|iRas96jZ&4z;d8P`bfqFYQTf7QCcLC)j96oMMuyP=qS0th#n|vt z>#s1x;fj!2rwgJBOPio(IkQzT5(KI~k2r#I%(v<;>Pb@B{Y^WS@v8^m{ zeIdr*=a0YI_VD%b!~F5TwcT@le1CuZwVvx2jE78u;Ih7=1dAL@LKGL{HH*U7co=&N z&X?Dt6w+kWS3Wi$oJE75PD8VyQd}xt!KbHTLO?81x*UmE0)^oik=KReRFT(3;e?OZ zjiK{8|KR7o^-mGm( zX_KXS$P&1|#U~~t(kLgax?!pnzmuw2`4D0-%+pX<*`(geZtNuo#WqaeLGoEcocCd( zkOLxj^+~aJbvK+m;H1I%)R`NIp)3Gxz~08-=GIeZdfmUl+7~;-o{Gy;hF!yN-sltBo2r7rH4|T;G=-ioAVMBN1gk z$Sl{YW$W34WMwObZ#~p6;xyIP4+C`_rm0ll%&7ZGMjbRS3A+)gPG^Fxz_FTh$1K~r?x;(WOs0aAy8v4;JX>*Gbw{r>%waB95i*a-s{tg-RKMQXJD z>GGQ$7ifbP(EYY&0-E46tO=$F!ds_d{da&NS$}MUZ0pU+@r~F)ni7YnC%sd60%ZRk z1y*BXL#CxAF3JtZ?^IUurNT<#p=Me0ed?&ea;bDe>`duqD#m`e*VgW}bz#%nxEhTx zFaWE0(lV_s`ml@K39MKnBrOj?@di@yLgoA5FF;33!dn6Hg-I%|!9cfv(y3lECzfeA+3PnGLRjpl)x%7-OHoSwp-SM-szn zLjucu75^vFH5Q@H&_C6jQQ($EiYnxB(m9Ci)6wDWWRsnC&N?(%FHCEab<_|1=&ent z5AXESZuM5W2+Z5UXcZiGG+|i(zN7+m#nYe=&cmqpOFh?l2P(6L0v1qWTqE&UrboHy zOEi+2<|$Qhn@XF74~S5z^&W&f0|=c%xP?n}z@q!jW=3mrp#7Wn`{n$#8{m&+kX}5k~%gB<*Kl#|ro8y4BmxQ!B@K zq^_VBoKZcfD|VpNVqK^!9OO^zo+}-8CkZ=0rrz9{*u5O4fNQPTi4x*)u>r#;-N~f}b_<4MIhkC=aXB4YTQC8&4?a z2;5CNmG$=gAg?XdYg2ir9KqR=cS<##FwvX^=9AHI7xdrzH+~Op+!F{1=LI)^a zXFN6FhZzTPlJ1V--2gpAS69+JB2fI{`N5L-wlFVlAl^@X&ylc)!2~nofI_b$R4lZ{ z+B?-Ke=53ZF@kh}60W&}ZeaMZ{vN!}PN^c^9;HV1^`Z!u!WCgv_i>-2Jg`00!gB2;O^Z(&LGsaUVDJ-bElSSCHquk= zsp+L{IxY^7rrK3YTR1P+#<0X|)S^K=oZ+eQ)H3@JODv&PjLOoNU7B;Zz!pS9V`e69 zg}q>&DFxfc;-2=+kjBRi_R|JacpWm7lim0u$g0|AA)ffzM&oYcz+RG6!B%_85@?CF zu*5#@HrQk>##)JY!(p_ijXz)|3+;_#GZvD>e(==P>1~-k8`;k*(D4R3XKp0KV80j>J-p7-8KO z!07ScXVjL5wj@ev4ckpE91M1oeS<^Wk}Aq0em~NeSJqf3QU-7b?{1d}$tH+!RMqaY zQVHgf6LK>UKo@)JYMPJ!_Ne7NFadg1;bBar+?6c`Tu_3m2 z`_*9UsE`Z%wJ(3ZgkK3GTZP-(7VN%uiH(wEx2!bot5USebsh`4nzmNgWjw#9^wY%j zO{FMUw^%lbxUVo8JlmAQ=im&*^kN#ALZFikka*HD-Icfqv_nl{y7peVSF_wdl>7J_ z)rr)n3wy z3CV3{E^Oym(}c6|pStY&4mTYz7=rs@#vO{1brm6YKWIqfSI%ZN9zL5&WgSMZBjs#E z4|RbDHO;C+9pvj%b*K|AB@hR{gvcmcn%s9GNkG@bRvKL!r287Q`P01;Kd0)#)e*%_ zbaiA1$D9?B2}x*_2}wdZ&R;M~&cKl;d#ev+BlZVT)I%Jg{<2*_V@0#`{k*jkxzZ5M z*VnX$Z9L-zkByh}!GL9O81Mx5Rqe?n7NTb@k3Lc6=RD%X8{?@cR~Q*_|49x@}|?UNjUU ziiJ(M{aiWA4O=xND5&nUU**>0$GFX$?VE*mucA~j^IF+E3uf9n)LT<967iK=Kr1}IUIM%^+;le+TL0;vqru3WhP^{ z@)5X?q;&lMt|G4vTVcOjN9i4?B<=sHjw+j^D*BeHX#KmbhtSD1y+vhdnh?hH#ePmL zcgU>&!KrQFq#PrLZ&GecVl%h{p==hqc19qke)1Sf?hC;(M28zNv@pjg#kPbyu@J+> zC|n<~QA+8z75NI|5%8nE+C&w0XsZcH#7QV9hEPsPcs;;7Y*f=ylHD}Dp}CdT+Rvlw zXtv?{UWXV+Qy%M0^2S6zv@5#L|yAR;CYWxs-T|86|r3X-J z*zDzDaAk{V+fBkNf5(MS=}F&3@}}>i z8OWsHi?QA3QH}>SoO zCPXHmz^iK=GZE_W&3Zt`6204_Awp?kqy_(D_qPIn=~c4ACu(seZtI6<_9D4dI- z%|JaVjm?EFSQxICG#fga4UO#fN=NeuxvKiY2;D7hA!LgqRv=rbME%6`s49eD+)Wp7 z54CwfC-GLcGihM4^(;^U@@8eX99T^}5|Lydc?O7O*z3_%Hyidf7w+|>zvj`^yQ(R* z@*zrUc#Ty=eX|bn2!|2vZBBfx*-+JN+tsXVX-@3GlSvE_h#v*&I#_u+uosRHaOG3p ztobPn0~8H*eKA7}soj8HpbO!8>{q=l-1vq0TaDe&{w!t)bUUTRXhVJ~LLlgT|E}w#df&Fxjen40AT?nGnW2<|- zKT`cM8!aH;JN`_(ExYMe@HbW4e%%)p>3g%K`tgORCV%oOrbBEo;Q%2ebaUU$<;q*I z`ZNb^9)w1U8r-~@0%p|Mw43`bM2Y6dR>yuN(`~+GfgEpbS=uv(y@YS`pD4A+XbF&#f|Mh<;MNj49j@5^EQeLZ7tkb|_ZiTc>wX91)Q zS!Vk?!eA#bmn!IlKF2^hc_1xGdeZyv9v< z;SHZPA&=QRL1I&iOL3tVarZk^`!FN*`W1}ycmWIO=>4HHW@7GcKYkt))8cM>NjLTm z#rKDH+wZ{%iT}5={`;j!?@NAl209$^NVrPK{u^fL;yaMzqek6TV#zie3`Leqyv18P zIXY(Qcx~1??Y)_Wc?RtRnQQZkERW=Aqw?227GH!n^Jixk8=|vKg?DkI7U#^+t}&ZT z)@bASHQGthaoS1Kr%##~Gks!g47@WY$Ih5ERco=D3h;(*t*)fl=O2YPu_v!g%t%dI zwrm9#y+(TBJ~u)1aTAL0c67X`9WUySmOQ?))@R7TIvxS()b5_i*F2Ty%eK zp2xTTV%2#9HMJS=V(V~ z_omA%LXoY8)dq79(t_L@(Q0!GOqtdILdq1c-oMkTEvC;jXtU|V4#-Zd&uo*eAcrDh zpeDQsKQKN(E!xpGEo7f8KOy9GxR1miNj?NiManC}7c=s5wDbafRw6TSt)-)`ybsWa zC8G;U7aCc^c>Qif~u ztVS)g4#`UV%%wmM&YlbcPmxoSv0iit!0H9x>EG ziQzy*DJ3$$$Y__yJ!W!=Hj26mL$TFJ#*{N&n~jf3z#E%`?q#uP;~YM?VP+p0v2exW zmnCux1*kjroGjL!g$rn%x&CiM1ek1KOD@3YO1QBiw;BB=#o&({EApGsZ!)32fEoR! zh?rjtkWAsmX0s2X%;+~Yj$1(dqW#&<=(pBLp9vAe{Ta{bmsNoNgo~ESF+p;prJ_ub zToLC)6vKpH0TTlJ7^>JOStdv>naSErC=HgEqoog(WM;uw#MqhI)zqovXw8PqoC&6) zf^|{^s@X@2j|~R$K;86A3|jF!i8OM{-?SpX4zC2B10eqlxRV3$@$ioUXaREkQ26@< z;8*cJWEm&=3&2|ewBWwc-?N~p1gr&Q0PX`2UG9bQwz-e@N%-dBub&z;D{J@UCp-f) zuAKR8(aoc-XdV>Ix##cPd2#&Kb+=}`v-;%ZgIlvg-+um=Hy^v>;GloauRl0@dS2Klm@zV^pvF^Vss!XFr;@{653f?MJ@K{A5<)w`Jx0U!Kb;2pcu_VEz-y^&jlK zxVi5G39fPdMm(^5oq3+}(2|vX%e*r-R($fWcRXv0?m76t`J$22J}5P~LZ`f1f7$uB ziC#m~E4K}8{O#E@%@b>?W5U19Se4w`ar+(b%}6f!de53~gC>7_@&37un;MJK=PRsu z@ufNRt10fUi|<@7>tO?43GiQlF93%D{{*}Y*bb-!5M3fJ%;^BK{-(n}Apjo(|Lpq&Kk7n^qUC(#`e z-B#%x0

8X3D`y*oHwa;q`ZD5B{nxs+~(Hep%f+{H`9X$e`Q|1T~e5801p8~5rT zZ+`aj_n$r;1iu_k{+eHEU%&Uu8|M{KrO&{%FschxU+P=1Km6Qy7+hSHCg;=8+p;A-}9c^8e81{T1K8 z*zhL#Wqp$W;*uJ}zS{==h{Nrx_ ze&^kPY5Royvi`{*`1fT*b2*=N^vEH!H`!ke|8qlL-X%0_f2t-Roczkj!I{xlFa1h> znWh&0=A7X9LfZR#DXq+h!oQ9G`ONzUG?dwS2m-Q$KoLw;H3RF?ENT}eTU|9PJ1W&M+19&e~! zj2)7&w8(z>uXJD}{gspdmmQIBjXL$i?45r}jlKNC10Q#_XPLhrQFqUqub&;ZD`@PY zX9f(!-^Mu)q|o0dhwgj+*AE9>eeGb?C!dAAcy8o94=x_Jaaq})K7RD#r=Y)b&+SPy zw-nT*9$LcaUzT$#r!mNqSA==0g_DLcSq|APr!h#DSso)1SuVe2M<$frrd1zD-K+fL zQ=Q-R+faOWVrlNnuBn={nq@zwZQqb~{_RU!Z*3^tXML*b!~6ae^kk0p@w&&JobyHA zz2i%r+7Cy5`SyMNB393+Iz9BQt+t${rJtWz_1(~sciwz&+0Wk5*XlxYH(ts*^6Axu ze|h}df4-R5R9O2U5&*y&e;Y-`UYya1^KhInF{lbCA z%ZL1Q^0q^&pJTh99B^<<+S!u)+9&p}T$!0WOfx*{6Ya$fqmDN`G&rSlSHJu*ix+X=D44;p@6NFJ`fs`}^YR~Ww_79c;W;%O%h zbQ{Ew7Abwpp*O#Je_4b5H*BWSU&kE!79K(1U+?)-Z#<>wks{ODB5`_!gb~;n91lnU ztO67RHUYK+_5zLoTmS*k4bX-wRdIktfE9oOKnb7%uoLhaU>~3!&H#f)EbB9tD35WwM0;~d90h<8N0rmop09=4}05=Nx0-^x3 z0D3?Upaif5unTYi&aMZl#!rZz7&B>dY}}NocTbx>W9F>c_sogU z%*w_N|7v4i{v!p2MW*6M%@(U|&DxT6k3INM`okHken0*X>r2Zvly7|8UQzkPlbaly z`7O?^+p7Nfr>C~>c>0;0&;I!@&prRbi@SFJbwj0|!4oR9#bh_{b+m>*^bheR}+}&%bE=@~f{;eDm$UT<()i&7M=ITh4s< z{n;OW{4b&Pr?&QgpZmGv{4W++SW-M?M)O8TVP9C>B8_Z(~)KK#tKzuB=6 zkitAG_ISCaCauMmZPe!Gi6;W$@q@{{4!q>JVzVh5pS5ON>1MO7nD&P831g~a_F3%3 z6PNksdUBc^!VmMRaelrw&9pGI5qk2Ro$M#TIQK3cZRaSU7F871D>L z@yGHIx8CuQb~BFOaB2&+p?R&t@ui`NX^841vlwc@7q97*jcNkNTlmO%0TGEc&aJ>l zp+$u<@g?3=2gngxA$dtZ+5$taRm(I(#o-ng6c|?1S(?E>#e&Y|O@C%Bq6r|}Cl{3; zbu-UwdISO%=i%e^sB=~(t;q(~x!N34VJ4QbRDbwnx@ZX`1)WBbSy&3`Oq4r=ZhtH{7>C{e}W6qyrR{}NK^#E zSw8@47HwDTB#6FOxu)EpTvMoA)c!L`{f5j!sY#O#b8rsOLw751a%_eMilw%`Of*#~ zAuPdUGou6K5>c~xML1-(u&PEwp(_ixd9c=GrUs(Nsaz&hNOmBd-!ns4mX(i+q-12S zIMKr&vnyk!1t<1sDi-#EcrwVjIj|%vE-6U8VY0cSzdcICz4UZ9oq_ZYi$z!>T4J8jR7}Q;-jub2#jHMkB5Oe=_H{U1CVAMIBSJ+T zGnGp1RjkhQoByvM_#Nz?;kB z$p|yii~2^oUQ`?xjTCf`fbNix5Sh``x%pCXb44{0BP%*t>OnwNi1Xy0S?1xcffYi^ zgK0q?24&K-B(H(SMi_7p0ioGK{h<%cO z9puom$e_Un(9sI8A6`u?i2K4UofWs=yR5ZcD!fEWZ zSo4a+PE8tTS-&DRH-CTPpBDISc`Z6?=n)-1O%pJSq`U(9UMi!-R*X3SE1@I{qwf{f zql^KGNL-n%Ki^zj@4}R#H;=jEY({&dXu1^!wTWYbNPzatW%!u0 z5H{roVN-7qhC%;2ei$6D3%fx%VsB86*c+51_6FsMy+Ju*QI2Ha#D_XuTmzvCbm$dH z=e=c$MR}G|gV3^(gC>|F?ynAU-t3RY9Fj&;HtCgzN19g}%$O0f&LY>wrd`zFdgm8+ zgL1^(pd4{1M}jP#?ZIv}IjkmI-#w#tpiahzoXB zBi(_*qGRcTWN|WtQ6q;fa!_7trdeDl1g^cN^QvnMAseoL-8o(2Prva}3-Ul27d<*yya1qdFJJJKj z0Hy*K08#Ib>=B9uo68c9ns8d#X^yb#-uEdE(g=34hh+l7OqH? zBRL40#6{yS7-Ni)GMf{*q6fvrV&n*mgli?sglm+2xEIY&;{Q}FM$4N2JSRz&;srq@lmE0&D^w9L;QAQ;$n>KDCjoR$S&nu_;hW(u z0j>qzk1zG4eFANSXojN=J^`8z#9w=-C(Q$3Of+R^XYALrdvU!DKw)y82}n!$anN+a zAA|VRzxSj$E75$2b~*uVauwp~Md*Qis?jG9UNM~GvOz=fcUSkKK{(MYjo`Rv;EzXq z`8U02(3cPmvgCF{IJTK`<3W~_MWh_JD=3H?5gf#=Hdr&z z7%?nl$o9)EP>A8u&2fLkGfFW+x+m_B*xpBsV7J2k!Q1eIddi?Uuf$N`55C+lh-0_J zGibWT&BQwd5U8Z4Xze(Bn}Ma*WWB7{>bLpZd~467-_ygG}U z*EfWNODIA`vg12LxCPIKaJl%wONQ7gIpbeKIQbrbfWpLU!#_S30wa7xB1RDki#gM) zJ;Dl1rsDsvuk&|}B8cMn2p7CSNSXtiK$;M)NO6BaiXawtT9{xF;fgE75R4dtqKH;n zq!IE%8~=f{0aKhH1X7AD_Ln zd%nW=CLWi*c}+X5f2|BG`27>l(DIMH;tSVhy9^DlzY+LTSN#!U89blv!o|=}Zno}m zmY?bH=zMZr#)lQaF)vGxe(nHl_uJpywT)?VR!^PL#nf^DP1b|~vU zAo>rn3pnrGf`9l6E$SCe%NXX|qazdhf%DHioF&Jy`bu?dR_yvLF(s3{=j?5x>4Yk` z3DKsElH^k2~f`PUK`kbhZLE@ly1sZ9!;d~FTfF;2v34;;&*iIpIm<3yA{s*Iv{%B78xWV(JuE< zm^Y+81E~LuHFJNCgw~Ed-u^z5_=C@PYCm()1djDQlM{(!i&cWTY15^_DH=Jk9mBjJv z9!Rv`CYtParq&Mca}H2tTX?!hiZY&$d`js@riko84fp#q?Gnb!_AASiO@I0RWh)CL Qiu|eJCcdQfB8-{sKcQlKyZ`_I literal 0 HcmV?d00001 diff --git a/local/bin/forest b/local/bin/forest new file mode 100755 index 0000000000000000000000000000000000000000..152f905bf1726d62933c52b0e9b3914b2970cb1d GIT binary patch literal 41144 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 z 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 Pes*v-K9sVb%qs5>(LeqX literal 0 HcmV?d00001 diff --git a/local/bin/fract b/local/bin/fract new file mode 100755 index 0000000000000000000000000000000000000000..0e59dd828ac8bb1e6508cddfe3c09ad057621d24 GIT binary patch literal 40076 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 literal 0 HcmV?d00001 diff --git a/local/bin/galaxy b/local/bin/galaxy new file mode 100755 index 0000000000000000000000000000000000000000..f909a1e2248f3393664e1d4ed10b4b17f4c70359 GIT binary patch literal 44368 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 literal 0 HcmV?d00001 diff --git a/local/bin/gears b/local/bin/gears new file mode 100755 index 0000000000000000000000000000000000000000..c2f066557ef9b21ea92d72567c4ffe1f13577b12 GIT binary patch literal 55744 zcmc${3w%`7wLgB6%)k%_XMmtV1CAOjDqt|EJS9K|P>Bu+d8kAP$%IMFtH}(HmVw}8 zl;JR#_DYK_Sh(6=>cy7cf(;6i0G9;B+tku_hRk48+I!-pHr7-kMCboq>zp$W9nf+NjY{ZmaTW3BX?xo_>zWuTe@|qlAP%w*I)+1c4r|Zxp!wrGS@C)iVD6 zyMQxG5Qb8HC%JdNimIlqI_@yGcHshvgdQi}YSrbd+TK1W0SeN`1J=_#GuP&;{w zAh?kCJv@)&5tVZ55w68E8qb}0p21Ux=Mg-4cwDEn5l&2N_e*tW+8kOj|mU`W#GY(2%GWb;2D8O{cA>K0iGFn zR^$0L9tWOOJT-XI@zCF7IS`g3+^WPWctVK}L1t z{`BX?vlveWp6}wJzid3U9E-l@Ai5OKy-E_v=l{t+!@p?k_ABzW3Oq&$Z$tPkJU1yY z1vkdTZ$(^*_gyhh(Dyj-%-Mi z2rWvSg86ucs{ACjKlg(dtO1sXWnm80E_lQaza1qW0laL7MrTs; za}icOqScWe7$N9+4i(vDJvu`8EKGD~E!XOXCCcqp0@m+}(nE7+XAFHbuh#=^LP+!w zPnN}$Ctfs<(duZOeoiAL0qT9L?_qoPDF*z7g&B0UiXsq?4)q0G=w; zU!lNXA)NJNw6DM#(6Q#$DE$V&ff#<=1X$%C@qaAfS;#-E)V~w(PPC_v*FAvKkZ)A- z9|oKe!;giOkM>EA5q(8~_hCFc6}S}e8RV~3;Aa6>0YCAH%C7;On;sqC4S)~F@MAO8 z2R^m_zX8?*pG~R1AMh-cFH_*dfORqaYX!U*?KLUI_mGi%i*kbfYrS}EE`_O(B z@(JJfDIc&ZPrCr`jG_N$fNNsp=NEv}&>t1w5x~nxeieN0Qa

!#z_1uX@ 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 `pp<~v<|y&hZfl_jh8kiYR6;i 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 literal 0 HcmV?d00001 diff --git a/local/bin/helix b/local/bin/helix new file mode 100755 index 0000000000000000000000000000000000000000..a52aeed084feb30d81532a1a76c108d46acc9f7f GIT binary patch literal 32900 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 literal 0 HcmV?d00001 diff --git a/local/bin/hopalong b/local/bin/hopalong new file mode 100755 index 0000000000000000000000000000000000000000..10628c3f8cfbf545147c90a68c1706fa72be11c0 GIT binary patch literal 41540 zcmeFadt6l2`aiybK}Q^8R7^Cq(X_}5qNsT-6vj)6jv$vxLN0>?0mGS#myRelP>$PC zDlIE5ExR5o>vX}=1T_J(BC}$IQ8eppf@74VsO0?K&)R#>3~0a4Ij`UE`~B;KK6|Za zt!J(EJkNU8ea+r$wex5B`T243pFbDC5f;5wp&So)$%|slcuvE0NDxQ}{sI7P%qKqjN`8gpQvSZ_?=0jv0+wFQvGSJyU%~~l{KJQF+Cs z{Qz-*rGWVW`bz*L0ww`&1JK_>(c$L6T@1(oP#tFh=x>SWaQDN#4-f^oOA3>nc-ixR z(IuM;mC7T#_WgsY-SDSD$WWiqTYUWFC0n}{a62JBfBhwYFUjpGx#J{v7~BzndjJ7a z*u9b~J0s!g0g&6196mwzNNzOT$$-Itd4Ldr{5MPTjFwz#OQR(JM9KA&+y~(flKfpA zqB$}wP+0+Hd&Bz3_P0MR_6KB()JDoi1S-kSD4uL_|C0(O*#pIsjZb?@p(MEpCmH1Y zh9HD&HV^a~xD+1)*gjos@4dO-++=4Z;epB?5P5_C5dHz-kZ-Ak?}NJ^^wAPt0eAMly!?CtyunAF6ToHpNncLjdl0`L zF6Dm)FdyZ~`u&;Wfs;*B{8fO;N4@~au^r`88>jdX;Pa8+N(m1G9)|Sg5*`lx!B&w! zs*f?iHzK`3il0w7=u0H|Q-JHB-_2bT$aHRLar=yQRGp**?#M}g-dzg8)J1Moe- zfinJ{1m1xB!z6qM;fUV`m-v4hZVBv@=!w4%fGasaGIxeo0$+miM*%1LAAsNMqwg~m zkNhoC`~||1e-=6nq7On&+mRk#h6e**;*wgIF0@oB)90GIh$1iZy3zZ8m>#!EFuBt7u?D1QX_CVumQZw!&`SH=Auc$N=6 z)sqJ8LDXjt&JKJO(yQQ7`t5L|eA>rrz_*irVDA+FA@Gep`Zx%@dZ<_b-vJ*5{;8c2 z{g1$FkzXFedvL!3pVTu@c@iB-Z}5K&`1%Qf%Bu|T!v&%om5;tcflu?%$4KBE;CHW- z|5V^D;Ku-$%9{;$6!<+N#iszD20TmBj~@7H;KfpW9`Hicr>qYX@I1sLn&tN>@Z%^i zSHd3yz6a&W^4Wn$`{;8s(IZ~8f9MW)7}AGI<-ZQR0rBId{5~RjX?{cYdk}aF=xOpp z@|*-74SIMnCF;(d0-gtbR7>f9BzoW#68@1TpU-WZGmR6uQnYfe$y+vy>8BKH23$pU` z2(ajkg~*!;8)M8fn#^F>qF;&pEVK2N8HI&;Igl#HSg;^HUq7QDOVm+{F5P6-vjn0F z%=*myLJo4R%%P<5`t-b1NdR3R8}SsT-Vd*`E3>T*VZZoKuixTro2} z^O0pHqZNjLS|Fj*FsBDICNq@8WfxMR*(@;AQ(v+eTm~gb0iR-KI+L+bZ?ddnbt{?+ zMM_mzkZpvHvJ1_YbkuL!?D-34&X}LJaMr8@?c%h>GiJ`$rh)yWbX00mdY)BpCdC$H zLKG^6DjmAb%P~`hB*;bvQdEX$gUtMVWMlQ2pAHVicrPAnN?)NfLNb`?3~C-MDh4eF z0STxE(H6h~Dx)Bq%Xn08GK%a#duB-~R8MGG8JR{>X$%^bNz?J1cz^HE1t_D$UZbl{!`{ zwnSdv6`&Z$xfr_| z$i>33k=&Uacb;4<8U=FW(MOYuzOj|u#aK6!i^XF*xtP3nklPQPD#n8DnD{Hm#pG5= zE*4TMaxo`SlZyps2)XFgL&?1heKxsRY-z|Hia9K~SQvzp8;&uNTr5~3$;BdbJh@ni zOd>Z0V=2&r3CB@e?%}m~qQ*G)aIyv(A-SeTH~xl`RTwC) zsg~hn9R@Yw6$~dUG0+g&w3p#zEd~wYI~h(^V+bd_jNxQG1{%VfiWyE;WPtX$rb333 zH5sA_U&?T@D#IMYbqpu#GC)gQQ#8XlNM%SNJd)uG!j}@RVYrfT5~xYda24T&gmVm6 z6TXu0*6Rou9zu9A;f)LrC44>MwG0mI9v9!q#5;Tnd|AzUC_ z&G7kzw-U}VTt|32;jMp?{EG>v{j8=&hNlp&B)pd4O9)pJUcvCCgwvF;X)nXG2-gt4 zli>!!Y3bEe#_&ACBMC2Ncp>4F2rp!~h45&?moj`M;d2PrF?==QI>MtFUQBoj;gJk4 zA$%#}8iubY+(5XR;Ts7rB%EV-8R07lZ|xxYw-8=Tcq7BN5x$=AT83{Yyo~S)hVLYN z8{vByzMJr!gzsed8-%|>cp1a@5Wbi2VutS}yqxethJQeK1>s8>UQT#5;W~!zC%l&M zXogo1UPpK&!;cW&NVtaK)r1R#tAV4Qxm^6?TjI-UEm>M&2^6{`qC8K;dKt(ggdoUv zL{WYmsToax7+_Eeh`n@;#qwIEV{xh4-j8-2;vI>qc%ASPqJ*F6@hZAL+Yyyc5Jc)+ zj-=$CCliFycfrhijZ6x?FVV=-9>AhV+QeW`93p6r;bKXkr8T+ge5? zCnfMjN

g*T!!yMx;Hi)i%9@)+g2hx$|@Vgx0HW_bU`&I|7{smrTRh%XjCCOF--h zsc?koc2TS&tc;&Ms#3T;0MB+mdjLN>l3|gA#VBkC*CPRE2^V5wu)zzPUAvFA1fRQn z#hwstyXwE@-l~{rB59t$S2&h)5@wsekv11BYT#56&HWu8U{pjUO<&I1O@;_-APxU{WR z`LF3M{1Gil_1xvPDtp4Ts+dTUx+(@!406InXB0U?b#x~cNJY2;OIYU4q7FW><0F+l zvE7;9ZfjB0hYd?{=6BdCw%cPS@lTW?3wz8Q+jP#4nn&--Mt_}f_A;6W1)y5_*$N#W z*S1J#Kp;Om3`pxD7Eq6Xsu;}TP!;;>haOI&X3MjF4Kqq_dyJ&^7^md@ZrZ+B!Th{A z_P7=|7>ZNcRzU|7_=IWv3^lJP)A8$yQG$;5(+N4mLd-PB96$TKY0>D>Kt6efYAu?} zG-AUY*J3MbaR-;Y?hl?;_?Nk2B3-Giax1#U53NXrRutM~CW7UhjoQy;1UF?MfOorM z!krbTVkS9j8XkewL^>}tJQU6vk2Tg6qdr~JkQwSc+oeqn^t7qpW{GVos7z{~E@y+b zwfSC8d;QBiZuR8xwvd%lqztxox&i8GIiKMEG>-bP*kLz5O*#U>L?cMnV1-Ng> z{A;q2wLA#BHLZZW5`TQ((i3Y&@be})6b@1#e~j9EOt?;L@XdW>L8Sg2QLdQKhI!#) zCsJQjEBp-|uq*YvD@M~WFH-7Tev8J^CI37W=+d?}%u`CivlwYZeSR&|gA{s%5jV(E z#-CEL-ef`u28aJp2KV9luVrd7?PX7N_JbGIiJF673nUKrUx^vPq##5?YYjuB~%uTXha?8=xJ~q1#17x+KAc zXxout;3hw+esXH-@&{;q)HWbD&Y^7pZ6n}3KmfGpa)*eM1U|7Yp4YbVifzc`4VFn{ zX@#{PuWdkHx9}X}qPZsQh@ROo~qzoQS`0<`i+ zMS{*i>4jdbZL1u!{6G>gh+=gK21+jcuB94Mq3k0H+w|3}cvV@9ZQ2gzxBfvTZ^1SJ zXX(YeXW6EG$Pnuvj@ZG-4W0HVDzJdFOEA ze1gf(Ta|pOYF7#Ndv%6~e!&#&Jdz1ZkU#S!BneC5hcQB{y>i{cQ#3_nvj{_;hkP_h zqAI)vuz0esMD*I~s0!PZzSeG&?^j#>qM7x{@#|Vz&_BV%gqH#_y5(YJL^H!(jCCZA zcf=_d?IJzvb}-ZJ_T|V=htF^hDRZ)!?6>2 z*d3$rTqJw~f&}4wE0q~$D^mIeZ~7FnRF#G!nzr3Zc9Y`ZZlo;lMtF6{8{Ea$g11x* zr(x4xIt+yTR?02j@RmoF=a3^mofwCO6yL{LLJjYDB0p!vDQ6?xDj4>9!rvCdZ3ie% z%zODb6^~BEaMnY?GYXaAswZR>LdXJ@lLwK4gExIgO!gx+^M_%w{CI!cYJX*bmtk7i zj;r9WckILD*ZuoDeC6d@+W`vYEPWg+yEm()>7}?naIEy>nKlBdZ0!qHhZ$7OvU&aa zD>^HWroe;W0a9C%p|^+R6iA=}PyU7wPt-vcrDS$7XKJ0LkKr~?+$&;Sj3m_Nk>J!Y z*b`kMM)OSh1lFyu~b8B@#EOUN@o}eDk;uTh68iR8F!DTE$^azRGrv9#r{jkMr9I1SxLf3 z@?K05GRb{-Db(FW%QxTk5A`%G!z3XNR7t`;BCVmAq$ndP1`H!s!cbG=FmzKt6OO78 z6(I=!W_s~dRVb2!xcLrwzQySHb<9kj^f8mw{*k#{lF*LyxtybvdKH~vi zzP9)P*&b(|a1*WfgBg15<1i9e zV?wCKV#6ay4D}2Zj#rh)MIJM;s%P_o`RJ^xw2e?D$7>rW2MXw@f;a64TBWU}!7b_% zKd1$P0jK$%#gj){d+}B8mm}BWfEfaJItBBNf;jg881vIW}L2 zb38e>w!v1^&@K4!mtknRh8dDZc+jO0f+oV6|BGaZ=?qv&0x+N>5lu@$TX&oMkww+a6L%xkuZzjk!Vb z!iN$Ss@T%)s6RK;`n_x#MGcduw=(1Z0J*~I-F&|`;QW$ts?vIE;HM|HaFNw(depU$#geUBoU zDdtb`Wr&r<{1sRNQ_)YvZ(@08L1=z*Gz7|q@ku;y*1_mORi$9!Qe`;wZ^&(3>c3cf zSD?K|xn)snNYr|&OHtPG1Nqp2YV2BB#+l&wTjtr?11#B1>p)kAD6Dc~2cot5;TWm; zVR_;$k6+&S_cR>m9E_&a{2(&FG2RdH&4d3s{ojzky&I(;=uIzNh7x`DD{Y5EX3O$V zqeic9l^0Xq`RFLLV_Nc9RR*e8>YwL>RwtaI8YxoR4-jhqkQC@BEu^TVWZ}zyVYXO$ z0cPAiyQ;K>dS4EnUu2KKJdPdb;U@6fJ-TG!dF02IMAq)Y0?OOXmr}I7G!L0dxiAmq z!aS6VlpdTU3&|`C>~UB_gr4ws)sK{)0g15Jh}j4iT=E2jswz!E5H*IX(k1YHfGJ;9 zDINQ4r^z2<;1vqwODXLueV2b>tz@by!sH(ec{#I;O`vZlzIP)0`t2 zzGQ#4qEOB<;(tnfC+7N;cvP7WC0`VleAA*r`xEsrk#E|N+GIqf=Awz*f1c`|sw1if zoKJQTqicpl)tB)sloy2y8E6k#Z#%4-Arh=TC)Sa@v>o|~Rc9~lfZtKtil;7DmBeJ6 z`ZKcE9VkjN+jnayu-k8roQ(W_{Ui&-yN8p<76b_Hz!Zcab?YrktX_s<2;b&Hd zb&$xhgSrWvOlaIcU`b%#agqYjZyq2|GG8>z{R1Xp)QX275yl}_s-=fc_;3W7h{9GB z&RJ?{^6>pEuoGab2&ioLpIWDMQi|{t5$^uM;|Cj3 zaqs^~#i^T2;IFg2leD0wZeRxrH*Q^r40`}u z*NaXKqa8wIbl!RRbdB>!-Lbl6=Mnhep8nE#{PZu*n!019HCDCD*<9#5zqeiSv-Wh= zHP4g8v|aHB?rfgy!2?+QT^?M);$<932m9vdM48T-W|eFYgu4O-$k1>MG1#!xcEG^3 z;)bpA%(P(-k_3EeShl@yUCmz-WZQ3rI7pt_@v+K|HbGnWp5)o~{tkVMJT%L7LoWWJ z*%SNkq8lo?3%vXBO4^PO;Zs9-Ygq8dS|yGO-t#%fL6FK>DIFs?j{#N7NTu_z^NUZY zx2QYmsl#3_Cu;SO^UxMhDtYBJ^{X9GCt##ge<&IpRUcJD?c9pvjKRFM!>(9>-r82_KXd92 ztDADUWP~MQb^*Y0@AF2qR|E*#kBH_px)_K{AqH(~< zYX!;?&vrk|poMy^`c(d~daclK#aZJ@ZFFhF8}uP{zqwNDT-wM6eHf}SwU#!7g*A`z z)=5>`<0KqkbR2mfjh!6S-7yQBeY3g&6uN|Zb}s4C*4EWDXv4(adzZG3un-Yzh-*Bh zRa1rD>=aBVj9@3?8rxBotx9DtI*uJ>eiom~{Bd5s&)`UxXiaLQhQ(y=p zb=eh@MVV}e{E3~(x3B#%NzhVxR6Hg+laiTjP*DXas_7cC?zCQ(@(;$!bo*tM;2ly+?!ZPCk_*%PaUuUyOu_{3@$S}3n=vHRN&shDDjxzW85VxiejK@~d(wyYAPg{|YwI+y#U&67P8~8j4zt$YV@BtG3XY*i& z2TAz#=397dVIYP78U=Eg18amH?0yL0f;UIuD8`}RFLkOY9+$?JM>Cgeyl-?&So67w z1MeHO;{NWCXqOd?_=M({|^XJq~@%BF*H`u3Yu#= z*bUmF^M6G6TXXruQSp3Hcyg{E(!i%l<`cvCnJOJW6RV@5P<}SNv*Aq);b&sgttgBg z!gfbMC=2jMSO`zJ3dvD>Sp2^0~`JYW{c1S@F_H#mCM=@@ciVL-%(!N~5<`QFpek$+g|p-VS?mBGgU8^_xtQZ% zgof00r`Qk{T#}5l5m7IpV3Mfoen+x8WO=$0{egO|fP4a5DUCR8So*sH+ku`IQ5x#{ zH3y=8U3J3NQ_zQeKSRuRMtvz+1>&6*4I5d;&I2bA!k5yMX27*@oo~~#e*2C|;L-Uu zMX}P4x$4Ax^2KVS=HS&UU&821E7oWw73)ror}&~HB9*qs|Jl@nZepn?kRV9WsC{9V^%tleEMWGFfGh&cb$6Ki)aRFniw~pm& z7_5$UcE?^&h<06nU?cp(7M#wa<9D<2&}s6F#8#wea;$N zDT$~c^9kN;z7CVe^orj~3PZI{?!P9;-XB|(o9@JvjaC)GC1K1rN*vh(^BUjvg&0528-K0& z;Tz)zc;o+UzW2uXAaDHj&g&P9hl~UNHQhxH=GYmB5EtV$i^AA=n64STx*AeQ!=pz& zHXocugP&GSv!Nm#Z(Yo%reH!qStPdG}5 z%6P$qVaTB`ml%}o5B#yKM>uy)4WUulG6);71L7A+r`!9n^cPRJ*L>@CH;;DA44PWK z=Fa$XHzG>wErI2Kz@wANxqr*#3qdYjZlsm5+x_bd>ZZiM7T_0WJpUa1)!fIzeC85S z?C;zA$c)(hfqvymDzt|3x7xSTb*dfP5B$xTq7C zFWIgJuI*b@+72RG)HTnQ*TYwX*WMk?B0b-1JE{Fqul)W{MU=(&y2!ohJ~8qAO_qk4gFMb zJ&R9FNTg9tsJLmWkiSUP5EzCS4D&P;mevPv`UYG&68xfSCT}JFECG&rm?#Vb5pINu zy{oh4)P4sI&Zp1bgpI&ap!M0?=-beA`fPJ>r};G2z7@FeSMnu|%NR#?v%v{#<{wXE zU5aqx2J76Ko6Lmz$}=HhgNDt0nghykKWq@mA?qW!qA-o=DinK4C4Go9d)DKwa{3~0eU9%Xx?h9JszfLX3Z z!`8D0$jXw1iTxPA7$$mPpsvC+mFk-rHI4$AQTxq|$8JQDgPA|(v?0lkt;AluV=Ji& z4(UCf|B&hi>l-x|%~&k2X5(ZyYb9#YoMG-(4P8)v)>br(vqYdEi6`H(J|s4ic)7Sx zzJI*%HL?~%&=l>rI$mu-fYhO2tYLq}x@gh!fOkJ7lp1d;cEXSg*4VhHLya~F-A6au zRLT3VJ~vJB*lRM<}xl7;>F%?}z6G~ca?8Z4JY_pBX>9Zbb;YpdJZ;CyXLJSvV4=6%ro#of53AE74N zf549YaN2c%vGtHh{i4Bk3ySOj+ej2IBx2186qr58q2KFm7tH=uWdF3kNGlzk5POVm zFG2%0H*T1{OZwJ^K6lw|PYjK^H1%?k0h+a^wnf!oFX-qlYl70EaHXJAei|wnR#IZf$sDa^>9axZ(SM=ml+w1|b0_2Q2@vNzr zSHFz;7@Bsf3R@r0{;1&^0kv%yf>~FRFbH1UJiHZ-cpbp8gTtIJL5M{NS^^_W5H3MG$qB-* za2%y=(5uc-+Cff2(k{CHrxSKFdR#oU;(BNEv`+1ZXGx-U!kKCaQzxQ2zOm}6IY4ep}mHMLx;|giUJaZeK1CJ7<5@-IP62b@tWl+I~Qdq2qBDv=3X>k zPY}8RL;vGB3h11_*j|13xy_d!oNU~{&t>q_t~0D>{M>yre#$)joH|PUl;DY+Bz~3y zbD>4kc@Votd!v3>|DjdV?yOGOfOaJ*2%FNV6WrePTsWcIn~uc+*Qb8Fyl>eC|7jYF zVpCAKxMk`sR6k?|6uP$e{ZN)VnSI;-knGoslYDA6eIM)^0nLl^5mzF9t~ zlj{4g2q$^Fpib?d)t?&e*O7WLfy8wbwI?%!xday2&{fI=3B{$B;F2$)KP*cPJuXO* z1{N7Y*Ip)3!~i*Bp*Q08ge1eAa`-(goGj4Vw@ORD{luj?aXw|nIGA87QqjP1R9Zjr zRXRhYoc0>3UbJ58T~Z=O9wcRi)mfFcjk5Hpg>6h*Ne-#T?m=cgrZR+w7Y^KgHKHSQH%D}CFVvDk zqVaRP%5#AMwOF3=Fl9wF?#?hFha~#}gD`dc&f*yqicXuaWBbEV^-_(%zLWSbiZOo<-Ozh|V(W%Oii6VztOzVV zq*>p4M)73a@>LFMSA+)Znc1d;o0r2ni_kTs|reTchhfk=OtBB^ti%g3V0-89xy zeog1XdPP+<(X?7@b|~*8#jAYM(*(TfH#|i78YvzpES~&n;Avv3bteBWo#L5%ZJmO^ zFUsSZUc>|CUGG{RjY8~pnpj@YuU+^d-Fl|kMc0xYIGi=y3aSKQ6{}n}e)LODG7M&c zS)M?vx*Q80ck^AI`Ka9Ag@aOT8r>?TromdW+d7EsD?S_()TY7EM3?;)Tl;nEZCIJn zJeuZQc_6`F8#>meRtQ;UYyZ)+WvS#LU=LJ4ol`QYMI8y8$^2R$)>D0(RoD*|h$;L<{h5YsI06p@SwvFteb zq_Q)q?AM^#&i#R{{aSG8>r_#)7DPF>pwjtj$BaKQvZJqD-rII1(4xZa4GRvpSQkg! zVb?aXO-vAg1R^bd9O$J8E~V>=#HOUckzh$wAjz-?ks_-v!zZ!2(Nk9s9%N%!6HT5) z`?a-Sg}yPNUw@-c0Wi`+6 zTH)cO_A{SR(hLNnsZU?&sZaD*)EQy_0Uc(d8k?Z_T{!zqS!=Ez1}I@3?Rj9n6iO@h zBq1DGVdkXdXNR-?3R7Hto7@9q{v+iFf+97IHP&Id3arVXM5zPw{>W)Uy|^dm(F?*UB@SeRUz$b zl(yY(O>h2im;F8Z!BZD~;rHkm4U~L}qDo7@)xZUjXPBKdI2Vb*4<`lo)CP}!U_N7*!Gl+;3bT68&r@VHO*>Vvc)QY4HyVW!YXlb^?4| z^2@^p8~J?f1NK5MZ1D6C!oMJ!&wO2!$J=FK6M*XECy2^qDhJbDbhef1mh~X@R<-bK z=lu8>jgF7Ox-LPD>+*lY8xbr^Y*!VQ*|^kY8E3m1U>Q{2gkBBj4c3(M2I?ReNgX7U zzx)yfd4E4$9)Ood;-ZIqzFw{-e6SZEMEEUUd<1ZCfZx5{17EW6ESALy!a6*?KUwcA zKa3IG+X4kt_2hcUJ@rsgKU}k7Kh`Om`n@I0c1RaJ_3-L8;UB0sS<&+P((_IXaaws3 z`*;r3$aI+pRdvzjTm;GX7e~4CDH@&dEv9@o8n|p9wifpLdUWwO@ae6_B?^DIfuf|7A07hR0h-r zAN;~6V4XuT!=Y09^&&1mqb~l_ZSe7m56j@NypR$8*Rn)2SVnkOP@l4@1 z?xN%e??G~Q7S@ksbIc5(jXfrucYK%h8X~SUhU4{LYp2u0+Ar77ZB@CgO5p`I1gbD} z*Bo|fmCmzK_4T9ID+AdLmKRqHq%|#$7R0@OVF<%-a=%!1KEBV3sTI? zEw@1>n3$~7x4H2HYG+YfeQF12LDAg5e)LW`*X8WKuNe2pQPn4f{;0d!`Vps_K3N?o zdoOEgu3v2F?rgMOP+UH3n@;b=4X{SruK8Q;2)M{!|K``r*zrQK3a7i--+BEq+flXP zq>oACye35}>wd%GUuAPs-4#54r1X=-^z}s$tV5JdBJM5>N1n}r!dJ){qISvDH-$jA z;6UO^#nFhAi$J%TC`{YZrSu9``X};l;ciwZ{!*QE2M5T*TPO76V6G|ay4%hAiJPSj zkkWo3mhY1m70fk-%W0MM`8cP;~avvDY3{OGDrXtS%b@_e<^($vrN)Cz*>2 z)Q4P$T$MFa8^k#S@~f+MCCa%qfUY6%yp*a%a@!=gLvj^8$Z}vi$LdF`;6Ht(?i}89 za@JLe+z+$d#kDe%H*DQc?dYcX*kPlRr?VOlola6&226)Na@PI_HOQk`jU)#{$=9vy zU>ICVFdQeyT+i5H;nozsAH9io-8m%DSa7G!c>yPrI7`4TO8Z)AD}*izbR=VG&>qkC z8-+aJgfnOHu-JH>9>RRKWYDDHdMxXUs2E)1g@Zc_?alka^STxRL}+%Nts1uWpqW;6 zWmCwyvu@n?TX%(?mTv2suG6#&+xm#>weIX%Fu1O!7*BiLNxmAyw__Qhav%U3_)5OE z@|VHu&XMFjkJ&Ma0v^2XoEyn-jx(IO_}!hhmAW?k1f;C0WXF2+?UX!b-L=hdR=2R; z2TP8?B|z<^D-mDDGv|@-g98rj(;ygc_~64z7n357efwi&bMJLOQs%a+z1IwMMEmgy z7PpUX430eZt-wkSsI#XwM!B2kp)MTSYDWmW>Kt&0=YrqGTn*PdPLDj(JfsZ2O$ZR# z!i9}}T(S5nq%Dk5P|dSl<5pv1se!Y8H{0e`6e*@&U-Ry)sn*uuO^IX*r5nMqLqQ8H zPEL-iUlbTZhfEw~Kn*Y%v}(IrOfZ}@Ii23^zvfod44D$veB|I-iksfAN2^1t0=uUE zPN9BuBxGl8uYU9#cu&`y5qXB;3UtHo#T5~F#mj-PYs3*f*E#4(eWCMh@;N)~EL_A+ zH;LJwKGf`g`j?ogc$dX%xOi4se_%Bj=SxfQWLg}3{XUMnT=z&^Yp|`UU}|OXrdJt{ z9f6O)eI&8<|8o_&wYWC%mvxldib~S_PjysUFICa^R7I;lXgY{arv7b`rGE4@rZ2WN zD0j%LE#ro-%4Z#{kqY=zLHht|`2@Vu~*o{KPRx?g_z>l@`C2phH}c zvg<=_IJCp7fpFE_N-3pzLaxHlg8Xp%2m6h<%_9&Jhj}I_`cX;o*y{c}vc|y>CD}z? z#GAl1mLBv<8moZU0*QgJ8qU&F-gNDOcGbD(P#D@+NqF~;Djx5lprSgLgEMxy9B}Bo z>YdAAZibspK6;rA6sLTmY7SW@0R>lh?@~lm4Pyu01!EJ(l6ZR=WVa~MpEp=raeXf? zY#nwll;}Rf#B6YVN=%d}yvf8c;D<<}*<-b@q-IHXugBrE!+gkT#mL-WgQ` z$ssf!bh(mMlhUc}sI#_{*r6nLG{g?&{h6G>CB>j|YD4i;0o?sZRXXu27Rle})T(8_ zP^GOC^`T)i?K=Ff94TeFaknt8A$}1gh?QvIXg-gp8 zQDs8Chr+`ODJKythZg?4JfEd)7g)|Bn5IrBM-of{Bnx5lI2I3kh2`V-<2S}9CkZBm z@{`z6Hx`39`_SSfCtlzwxK&sT$36+$hx}3T6hjoM;?8I2I& z8dcHh{eHop(N>cZ{QdoH5|$O>Zrnw$^X^$;{i8g5nCH!d!H>;G^>~w)G2JE8Pw2oZ zPDP9DNaZm3ZRmrM5H+`90|iW}v}!hVpACs(qAH?J$aEWSoh8Rx8W(hqVeePj@D!yM za~gR_RMu2CxltA3YYfqsvBj?%J3WcC4ot;%14`&7aS?;%WFgqJ}l^h$lw$%85J&qF${JI99%iw}N`#@@r_WBN9bSOd#xe8l^mp!^5yN-WIWZm)uo9tR>Ip!Yl8G8OX=+i|?K z#!=W|TiJolE%E)19kzRMBglJ1f{j1#eu^jg*HbXQVj;l#gTp8e7Iz4H(9z*{+-)!x zMr8IF9}ziDGx?q|k>kfij@7Kh`=TGo$J?N}ImW{DJY&H!ZbT+tzHOP(qsQ3D$Vd(T zf<|Pn!VB8X2pTs*4$9K!rLU5Rh$?7AK_+{>IZ=s3njmhZIj2C+MNrAiH<~?-+1cF4 zTq+AM^k$I^8O@#vl!B4XO3%Yf!|x|L7K68v7if$HV~|`!1e$E4DL>u9jUFQw;~P&2 zeBxPp(!ok|Cfs9?yHhM|)!O zjd+RsX!aEKG8)X{b?Mw>7fWp(Xh92YjO%S!_8BII8Atgu^<~Sc+ZQtJBUM&CL6EC z*H{dCO-ce&bpok+xLK2h_oTD8isLQr5!`5e6rd3F$br*n3>Hh_lrdup^~Sz@*PKE-T0}>$5b*LV9`r6tEM-Eo6Q(xXaA5X6dJBxS$?AG$@AC zOiMQ{yO$fK;Ua>#nMNahZ-C1(7T}Wvcu9IZX^-iaX;6ASd@LtxlJj{feMY+H{q#O> zQO6eovh*faZ`@q5Ha(TtMfX(Uqq)(nmBC?6iyO__6QaaM#G#=)s^?J0CVjRE9|qt? zTh02YEbdjj0b~#01Hh+%BLI3C3B4JFSpsG5O(mHM5>hyv2rv6nG#Po2g^NHll3oTs zMYF;{Z|EPvL3Q-Cgk|`Ify`1OUVCrmL_QJ6Nt}yvFm`3VimZatl8z!prI>P-87#o^ z^x5QO7_q;d#ld(;DlfxiK`YWxa+YRzmWI9;ke-pJ*N9q~s##{VP`F8-o;BK7khe;T zK%IJMIc9~PJYad96N5H_`W*|kn^kzlJ@rPS{iB6Z`ACv)HCr?pdQFCCDWfz6RIr)K zLGi;gyV9i>z~-2`I+5mO-;7q1oo7t9_z+T|c&qtnhBGsOYn)x&nch}2y~5-JERQyHUMjJ^uXsr(D87~O!Q#@ zlYSM)stlhuz=tt1S*Yk0gQ@03A4So}DJZF4@)er()-0nKpM~a=X%YRJ;d!j)G?6QZ z=dF|lw#r?}qp&!!x%)~{VAOc|lj6w=NO;7}M)?U;zQ$ z1`V_h&Q^Lemm-bXnoRm^3hV)Ku}q>E8fiyyi3{c}SeU$E3Jubnj>#>>co-Xn80r_q za3CU=5}B7}bc`rHa@;Mpt zH~WjjYx^bxMgsZ*+@K}8?2EE7 z|9025OQSZex-IS9Wv9j+*p#7qXUFe*9vyn1&kr%x2c}QXDSCCz;t#9)zEE+e^0j{+ zTXg39r;`@V(@)%T2~DlH5B+dT!pd)7S^mA>xbH7LFr#*TZ9!^`!h%bICe?`v&Tk9vTJ5Wc z@rMjUUOp9EZd;Q5?FNc%A^7lh;-v3R)HS)_e{_tOTbE+%u z%)j3yzf4d5zn|Kwzx3VMbL5xPlD{Odefh$lr)&s-U(Sd8#|91m^p&$qULn7nC;59% zjCWsdShJt}a{lB`S+F){e%;RR$S;>g{ui_NJhAiJLl?*|mrH)r!500a%YL^h;FozI z|JHc{>xb!WW#pInA^*M~2E6rEM#v8G%e;{vuLwTAa_OsYl3(VN{O(_8T^RcC#E-}? z^GyCbR;Q}Je5mRW`DOmeKTByDx8i}6ugNdVLjIgB8x{{qZmK80EEoA5nqAAkSp29! zepyEH@7?q9Hfwy(Kgci3Oa7d&Wv<}xuZjcVmt`ma-!n`X&cAl+6XcimKz_#?MecpW z(;VcNbwd6ZFRWK@-u?R1h{s%A7853Lw;GGz4e=r;jgp?09e=`DHzm zf1vY+Co;lbIY@q4=j0!G`;Xi1d7=4p^2_=szwh5SVGYH6#?d1O(H3NX1^nCly}DDV z+46LyPdNDlhxJX5xOVvu^2;=b;BUzCj}cNn+DmEWd?@_;=wHw7Oa1H<-?S9|((4i5 ztgR~BM1DD+!|><)@P10~$g^k2FXu^Vl^<Xfse!7s~5G}9js4H{qe%1cBe%S+)_ zf5*c^`UijYIsCHhng}E z>xcXr)uJ6g9bNb(rImF>JmeZLy=5|-Jx;R7dLw$*?2jIQVQ$;| zPhGs<+<*Q?^s@fRKS3G`s9lWc7rUUqcI9Q-Y?uCu$^ZM-VQ=4Y`lspJUPy|%^3#K# zwYOxLejHSF@18f$57_B9;^4ErdgE{1eGewm-{%MC?fB!9KG)tjQ1WP zN3L7A=BdyAcIgYyU%mJC_{v-JDw7V*XY{Yir4`c{ggpaHEX|w+OTU}^71J0b^GxHH z^jF;K^~+(*tzY_C`2B%TKHc_RkF|yO#1&<~S~pRBUcK;_lr3vhetYNgrrT=r%Pmir zeKPMUzbCRRk5xVT#C>1q+&`+wq4{LUH}A~r5w>hf*_r-tZ?a}BDEjK;(sTWX+;z+S zYkqYPzg`uPz3y_xkuR>ze&Mn2|M^l}eg2`}Yn+?E`If)>?CbAcn49|W>MK`^zMAp% zC%dIlnUZ(Bu1(lhd;Ys0W6BuDP`K zj^i~;`X-jHn=$T}?eDj~I4R|~ZwB6R(OKB-e*Y;e2L0{(op(R+)63((dF11TGma)! zR<3>X>c%q*pZ<8Ss^BHn&!5iyy7jYXt4@9S#8-D!y|mwyHK!weV2|5xPyO(P&%RR6 z|6+9M-#%|GoV6@LH}buJ=>GHg^p|?S_w&jn8$&Bz8~*nAGl>)a-Spw+KjYltileXJ z|MZ}SKSn(8UFhxie!g#TOW{-BX}{WJoml<*-9tV+H>l>FTfbX>s9VMC$1kqfe`?wB zwTauFd!qUJqMzSBbNj?cU!Fr3*w~->Z}@T>{$y7S6`xZyu?yp7%v~UESp;EC+Zj(R zc%;C%qCkvBlAYN2+Y6`$oCmZ4RQ&>#p@8v#Ie;aAJU}sEH=rDF98d>n1#|$Ew+1T1 z0HXlY0P_J$0T#e|z#hPUz;VENKpQ~SA87#LfM~!{z-mAlU=N@gPzMkIiqJsiFhDdw z2e1Ij0J{O@fa8GkfDV9q0P+M(1I!0x0agRb0J{O@fa8D$KpP-rAovDE15yA6z)HXt zz-~Y};5eWW&<0T62EGB2fE0iQum!LOa1zh~2n&PW040F!fO0@Bpaq~Bgz^CM0ZReJ zfNg*e0Cj+NK=@$r16T?u1gr<_0n`Fo0Nm{;127(t0$2^$0(b*Z4mb`t4`>IdG=WMD zU_4+BUZQy@x;D2r4|EvxC;fGUdocoAh7{&3|#E7w)`RSR4 zd~De!tTJ2l`I;n6!s2-CjJO2N;uxJq`n;{rM1s=e>>^YA?kme<+<%sbpMQWNuv>R! zkD#8aUbh6Rd-v%Z((l&(p#uiq7B*<`?V2G&?-(}x&bz|z9x-y%=m?z0jf)yTVd6cL zCQq3*ZH=zxvwiZ@l@|KlZ%+ z&bxcxd;gyweE8AF<@-MQbpL_R4pvkiI(+2wqgB;4$G$lJt>e$@Zb^r9+DTs7?KJ@Y#`O_qLnPA1#3P0z~0M{3Q;Z-!}^hQ8#hu^5dSb_~jK+LiiD z=?u}6$ISFBk)HxNg7XAU{zS3{Tof8j>82bUR9Fkrm#63C(P;+h zVgb$*^aV!iG6Qzk)A2cF{OL$?GkxV48?XgA&;ahxqCA<)nRHf*D8{`>|2Hf4f{7+p z49T#XS8=mQSNQz086OgkF&WKf94s;Vyqp5M&(v85A|L5Eo1=Yl((GKb#utTN#RCDH zo>}wh3&8keWr*i8_=L6zrx`efgxb)gR^d2KU%)g(b&_5Pwcy*tbZ9{}fztwff;x|g z#2V)oSm_N_y`y*%)$4?QRhr1jnRs%vo%@9{B$f4ss8XmYta&j3)z!7}E2oIe2iGtez@jK18}{rijCbuPt;4qRBGl&`~#?U!_|t z==j9EAwx{UT%1vxteNz+Z;g+2$~?*C#zMEu^vpRHtJqMp@CoxwFf}H9xiKdTSt36= zlQm_b@nk*%Bl0o!PVIe)W<1@d?ix1fCSj8iM)t2?nF$S|9;fiX)jhG;wnE9EWckqHt6dFo ztRH|ii?%CWL_l~KxhC91t_dU;wf}Tdzdk)*wrS{)zRBK6cZ+clXMzR_rMA9MG*u}f zEP;KD-ORnVm&S=h4g%7G~t4A}JY}D~^8g z$Lz|GZpHy9nu?iy$(syvMiwl|fH}WW$*@@Ra=`b_{ zCThl+Ak%3))2`f=W6U6froI8w5Y{#`X&8e^6zKJ6Pa3l!ojMhK{2b#42D}+8o{TUZ zy{KoT>q5nG5lBJDvUDecm`IPH&drm8!>8Rzjg*lEohC4mUSg9aGjgbIw^- zAosE`MtL5xKa=3Aa!An*m zWT7z>I!)E0WH;@)QMm z7EpuGu#tl%m?G}24sqV>jm8|3MpHKFl}0=^uhg3`BcwG2W+rUfMGdZNdGuYi8^UfP z$9TvQE6?0nZ$Mr9svFbZq&{d8c0(CAsgLof56>LhyedD#2s>xv2Hmp5eI<*5u9RTW zv0zq$I2ppIk;N7{@#tIAP2xhqcTEO6H|Oc~g)|5u4{0uAK<`cSX_}gknKgITLXN(z zPW3^58BZ#dCctBWrvNVl-Ul24oB*5y{0{JcN}=on7z!8%m|0cHZ?0T}=j;4#2cfR_R90}cUB0L}q^2l#J6dcaV?IKWIm zJRk#L0z3wI3h*-EeZV2W3BWnP?*RX;NDmka7ze=i1(&1{@7*kw+#Ja@OYR!UeMWNs z0hfNy7Y%*%f=i#IM-Zo6r%(pMUAaM_>;^ZyM4_ZRJ)a@6CtUiqLO%fg1punCSM3j% zUSbgfw>O|aK(|?;B>yD1ec*-y`T{(a1wWNXJP`j0F$>}Pu{?2as2g2#MGsqutH0@H z0~e9CssNTHx)u}evg-39GBCO`Php;g=rQ?-U|tIrjJUFh5W4hAlRG42Pg=ktQI_N& zY%CXn3xh0UjF_3Y{7AW?C&h(XlnBd&Yat7TYmj}o@5@%Y5n1{S>oS^A(G_Nfq?xm+ zjZ-NUmu5C)<`iTbWwg+m(J4Bet?|s<80#35X$*+RtQ5?{aJ9f&LD%tWXWCN;r$g!uXx>Dd-Gk$v2F|^vP&U5XnO5Chq$x&o z{}Ln=fBF5+G!`OO)OX-nk3LPf(BngS1zyboX>fQ1`bD8(!A!* zT?I;ANE(_G=R{YPWlCSc5H0#UbT@iz?K1pzhG)Z+3=B8Eh%1IzZLk}d+&*C9b#pW4 z_Y$%ZZ`Yf-g)eg)_PWwM0Z+VwZkCoWw6aP=8Z)tlE_XM_eIalh+i1FgH}uo((zHTO z{fZwehq@0g2}o9knBe%Ue%xHV+N2QKU?*T1%M5EfGk5weKc6Ceq-6 zY949QHuld5k+RQZ$s)A>Ph;l~5=Ril;Ssj5(ngSgpp{&cHdt63DI|r(VPPSLi(nB* zBUp(LEUrj-hJ;*UVJX%U(g%V?s#H;|g6R{mmVDpryk*%$$is2|{pRhP*`2q)k#(j@ zykvKW`z-wVTWmDVc7MOB(#Cb@@QpI8ePR7jy|}H?4dGyi=R;4Ip8RZb!~8C;lR32z4fuPMPQv&*<<2N+E|u{ ze_?%y^_*WEgJOeQs~%!QSFewY9&`rJ8(24@^Z(1cSZ|S@^fA{A>=v7?Xk!=a{nDc@ zqetuwn1`^o{~tjWj4vfdBHbNT(|5#j#1QKghCazj#mP@4yi1HRKUut=hFJpL&Nz8% zkHP_CW}Ui><*)Kn+p15V>oGv`+mN{KA_ZPsoIG}g3&>+_E2p)IgViGhPTo5JCm$AP zec)J*W;-w`^X@(bS^gUmCa~;kaO?2%b#T9;v($+*thR7{)&cHgeYrtl5&Nn(b>oSFl-W(SIdeFO69)1+H6GRD(ZxM) z;U?fF58!rNIKRU>1=pJiZS|O#d)30ZKDm5LorV;thz*#X$HacPj{FK8`c&$On)`M@ z+F=kkV$P4=@eDm8Q$$_LYXWYm5pfGmt{w}s6lYygbxOhS$PkCA7p=6_$L~{e6ReQH neWoDN)}4P~J>Dvam_ig-WC>j~R>!2v?V@DG8EE>M6xYmr4B)N)po& zN)1M)R%sAM0!JvIRbcArVhuNFA>{|>|1n3B2qJ%!B+8GmN>a?vs{G2ql62`PN$SP? zNbi9l#tXPCOq5^AcpM@fA&EquxUR z)b&=tSO8R!ZUe*sE&}jixpxUHa7qDs3*g>Blr$1}8sJJmk`_N1AuBN*Fb7};i~&po z%mPdRSO7fk1k40n4wwxHKJL+o%MkVj(3VpHlK?jY?f|3$Mg#OCRzvPa$Tm#|qyy#x zU~d1x_6j~|-+%Xr1Y@|yd|^cMyo znS$^J!1Vz7TOxpc^w*J~koF&ad6=;Z%zfc?^taLIpJbsA(#8f;n33(mbo!>P z++fT>$aLzM270hYQ+Hk7Kyc8nl}8Llla?-YyHV|1eWjBf^rN;b!;IlD6y?(&l}7{R z(_f1J5TMzQOkWs`^tFr7`U??$4;q1>9SHXsb$uhG--9*=>3=`yO2|t@#i{>8fC!{t zrq%x`&@re_5%gjD3xGE8)6S${0~n#-JdJ)Gp#uIyjeZ+pueyLf`$4}Lr2hw?_4?92 zM?l+mEgB& z=?S1?Ab*usKiVPcsKK~Yq=!p)f^I{5m1_J+pwl21ufx4?)KS^#>E^ z8kDc6Uk7@9kUrxw=(ZG-+r;3fZupvz(Jd_jjx zUx3~wg&B`vVCW0|zXLsVP?+(Ipf8eIKu<;fQZ0Wd$}JAE$0eZGLm$?Y@&|(+jr46A ze*)-er0e;|fsR9ass0l#O#p2Svgb6=ZK%%zE&puL66&w>&jtM=NrPX~^z(t<0sn(k%n!Y!$3Ryi{h(If2GFCSPnAZ$2s#eq8OKSEU)w<& z;V*Go`X10jgWB^$&<7!Jy_S9ibaaq^eFu6T>SGh>;nGi_t3h)fp#Pr%T@^GQ^uoYA zJ;=YMjEp>cmgICf9N9L97ZeR0w|nhb=uvIY^#)3;I_bs5SyFn z&R1(X!|HTq&bLZJN#x5LJxWTOV*lTWH zVUB(A?U~sN=R53fv^lKKdS_ti3Vj?-*h$JQV!62@GTYxidQGG(W=MmosxXVgUSxH+ zN<>?#?!iQ@b zZFN%H!fe!mrLe7G-uyf#+r;lwU`2bVJ}2BQsBWT33o@Z0?UHPrUtleC!4Xw%f2tEs zSC}hhEwMW6YLT#zQ>%DZww?Bxh|b|qD=DSTc3T}Kb41UXbl1!YGp51U{Wh53g1=|E zT~J@NG5kK)ya)wLX%pDzR6jeX6v&ZWQkX5#>>2Z|E;gV&Hz%`% z-7!F*fpVo_#N1xQ5M!N-Ar^nd46ztr$`F%xDMKujS24swelv_;UblddM6DCkPkHKgMNy@PZEX_KIof;DavbRB6E=}m%eARR-xT+qi! z$B`}-v_g6`=^{ZlljfyM<2*sPke*7~BIs7q7Sf4=ZX=yWI!@5-r00<~37WmfW+NRX zX!aso5ot-#>`k^}(k<<*KYNv}lyrlj*}H73NmmP+z06ilx=PUOZMOBKw+WiP&bEp4 zCPB0J*^LN*(HbIPK;{duLFFwmu#g`-9(;PE5HCbL}9CJ$oR?(5G{(^k+ zVuL)zxMegV7D%=k^#)_AQu%8~hu2)=Gq+fL=2k!(pxv^WOqNvTB_woY5@+Ly?;+MgWq@ETfg(?ZPg%&>R;d}1O5Eb;jjuBbZKQ%f2sOOgPyg+dE zjjxhBJXKK>J(VKD{ZsrY&n+#dg3~5@Dn*3*C!gV}EzM};#N7=Bi}K5vj*cw~$lc!< zk}WpoSC&l@?dY2v0+!G#nQBS4F}sqbCZX(o2G1>9Mez~k6FuWM3f%oOOMX_A+(+)1 z>=|Dn2=~vvNmoHy4~w#z1s)d#_CSHmrbK838Y&E^UFeleMv2U-v`mDd{XP&>f7xx6 z(<3&=;2O$eyYv{Ye9~|`N*N9L0!vO+#sl~4i-uMEEa*_)`2{Za2JL5y@w116CB7<9 zfJle`$SD!>jHvi3&)AFIJ;&S;ZZQg{6SbSw0z-dw5gc@>-JULBHG zWHUVuWBeJ|0+a0syX0%YEy{MBdE(}JPN$_5boam!RK&^8LS^!YYHhSxU~=h@0r zU`Q77Jo^TCmKj4LALd|jpezQ-yvk;^9fn==kh8KU>4WVrN$l?GHpJdS#nJyuZ5h(oc~EZ1PTDHf z_JN;eKUh$0UFJo$YJbw7MUqiC!_;v#u8VA+`_mp#(_l=GD(BGr%oS{&1cBW;0Xv3bz%E*EANjQ>x>Yl0{9?ZF5qU>xll8s$?*{ zZyw||u4Y4tk;b@c`9}4)#E@bd)v`6F~?Ab{VL)TBXm12DJnK${{a+~0YLS?i{yoQJcl2VRg z%3qN|xNyVh{hSd}^f?l%0F2)&n3e3sLV@-l6j@Ks1ynP5JKDBHa-TdGn56f=bb zfi_HUlrY33D;C6HSQTu^N)o8K$;zDwd}XchbPVV143bkfbI`UZiGm*s1vjSSrtw<>rHFS z>sN=0f%wb)A(HGaPgS0PPMFP0mu-+-7GKJSkw?qrGi&zh!{zCZyffC8F75M2lj{=s z%sH{)?g8g;@1NA?j}qm%-+(-M&#wDmYTnLZ)mebyFjv3ssQ5kdM~5v)(`iF5Ti4Sm`y zw!K21cOjgkeJ6e1_v_PB=u?g}Bx(BG531hW=Cd}RUmxL*MoikXEy^17E6qTWt2Utx zG2{NKI}2xA-<;61<33q*arv4a<4rEZ_;7dV{vOgD<33q@!sl*9)n@dYjRn_iB}P>i z{phk}&2-IBwdv-d^?$0LySLzuz_52gvhqO-jo8{$qG#;cpttumNP-E)7>iU+o z%@qza0xHN@E-C|Ia15uOw$R8`A3&w#)Va1vdZIxj_Vcv$aE)fd96g~)R7)gWot$dR z)Z;%u+4Mv@>XO;(8<5vn)b#h0FV!dWq`~`GCc?P|y2BAn$crCc)lY z6Vx=K{D8St$kNT?Sr#R^-K>Y!Vh#vvx*M`pH}))R9k=KP&$4#R>7He6lItpwV`5N_ z&CC(w=WiRgXe{|%34#+#L%-}D;8Z*Dj1#zu<)W@BwoChb?_7$6);pmU#K6 zU7y2>+c86`zVGfM?AZ7bXOTq`(!XRn$7j(ukdE4RH2%e(e!Nq<>tbYSWR$-9lQAjCwIs7kDRJDRTZ_b+|C z%Lb>~HAXgRT|P457%N@~#Nx zh%Dn(DAm*qcq3F&4ahodMWU+epMYtq9`Lu-1C8v<5shU?RQ$Kif^G!x8a>-KVii9pr*9Wx+W%#GpU;Uc2D?zj53aEwIG-#~! zwqS#))cObu||JDt&gWIGV+mH+B-B=;jR*$=L)Wa ztB?TRyLH}>$VXlwFXWBt%DYzOjSb>mN#3wjrFRhT#bq6?e8}wS=Ub7!phv3m9eDM! z$uku^Un8I9AY;lp+}A7!Nmbqn@VRg1RGv{SProd}JL4d+IUx~a zQVy<&a7W;#glWvA%S_Pmv}bS3lrhT=ulQh$`^fSrx8qaHP@TS-K?F08Y`ag7d=<1HZs{SH0xy@-aFg8LZ2`jm!rqcm`a4lhAp1jF}SSs&jw@pHk>vAf|p<{9Kont{qtw# zt)ycE^qr)y3eah!FAUID(9i()DjmS)Dto`-CEZ4xeb$3Pju`M4b$FX;fTxD#hlmZC`9YA8G99`0xFE!dL;dlc9&46x4tJ9tCo#W7r3@6!w` z?(g9G9KCyc;_Z=A{KuzHdd+R#ly+Y8@?IJLl+8mi%BoL=V6V-syhGf-h3AN}eR%2+ z8nKRnSEUlSkipY7YB}zQ5=9$Hw|hkf&lwTRyo{B12Mq`Tdx`b=3}e|L_jL7PQkzA2 z>_$8ge;#gun?AS%=~s$t5?{YRi1WwtjCP;FD=tcKU9vm0I&#|7wwGf)Ipr6*FDn*=v~WIXh~3^=4+@bu+TVPN%*7SvTM9 z{hmDCp;j(1zjt@Nfhig7k6C#+7H_>hzmLLNO)O__;XPx?mBLOShg#&x2zpvJC*To` zWpkW359L{@q?@s?PDGEHjBv8iGPe`Q8~f*<8joLf;2 zf>X$ipbdf$oPkUP?GTUP?1CP&duQ2qKz5*pl+6SFu(FvO3+dvxKj@CY^<4Hfl2pHO z8?JLe>@ksekrzGgejONr%p#RHK(&ZXf@3`*aF?*dJ)pxKt(XK;xnL3zzZXoaMa19^ zw@EoWka9}{5qAlWVqMJ84tI=FE0~G|lZZ$VOg0gb(BY0#-V_}30udJpjxM_?_t9VnaXkDKnt68+dDKQ`Kr@fNx&CC-nDo3)6n7iHA1i$ThPGLt`DJjW3w zNBiS=*Itzq<;VK@F{2-g(6HL7`i&Cs17&R(V$_`NeyqihwfZr|k2U+T20wOO!|FHI z0OK9q#1O3UB;Up=l!E!Rfw2+ZjYp8|+j#_$-ksF~R|I~T_#)Jq_Nr~D7xk@eIJUdK zjC!gV%TqC0P{n8i6=O|Qj5-keVn_^n#}~H@##vr>5S-q1)JLv3OuS+r&Z?DJB3nSs zPaCQjEkUg2&=+AQNU7bq18K64=ZXlguacav@a$y>JMMjvLAy4vHk{iI$Pi9DSR)dGI+It6FBqLp|>GtTFFR$UoAt6mt1QvPE@ zv7mDeRaZu@suxD0*#Fp2)VY(P+JwCB4RwBRQjOG|CmFb+S=SD!a)pt21vhS;&p^M? zi&)6{jPn~kh`M$%OoS*yHB6ltqyF{yR3|*BUU-k{TiuUM(U9w17lpH2F@ShQKT(p} z)#}99R4=?omGYa%B^IO`sZNYb^}>5pvA=mtqRyQR#f^LVVBXbGT|KC)k-GDsp^)cY zHyCHRB93@Pj3}Xd1N}x1Vj<@<&TsS}>e|UL38IW(4?6$&qZ;O4k3ETy=Uq1%XSre$ z@rv=HgkZz`*W(Tg>1>$)dd#7&oeVQolyRT>@d}HOe6B%$ zqnEIN?u_vpJ%l=TGQ_f&N#<7#5_jdFsR(=znF5q0XHQRV2#k-cYL7oZm>@jWJ6h&%4frv+OSQRul{I z-CO53x(-V?pJjfV`=pl!n`Fi+ec`M+PS>HOt3CeZ(2`Q_O<66w*LvL#>5Jn!aY^#u z4kzaF&NldO$CC85ooukaI~#QG59b|4Ql9lb^mS6Z+^DBdjH0Df3Z`Y zx2kh(*O@l3s8w6O>r8u|1#L>DH)Wgb-r;q>uCCGk_ZA@LN_FV`-&=d6@91QSs_rcj z-2Ppy(9Kwoa@d=)Pj**(-3Pn3z;E<`!`;{ZH~K(zryXD*(|HgK1J-4>M zv5nh0)wF$cG;S4GWO46guDp}CQ|2mv#dByqfj3h82~YYHd^>sd<=uHuO%`0r5+q|= zw4PN<<87I_%6-h*kA?Yma!T~>+{bv|PA(w4JF5iKm;lqV)!v;uRN-pcm6~u>hI>P* ztfnglewMe9YL-Jz&3jsB)Z)0#tvOu#{;@r^hw3+yI`&olMsliCy`DEl%ga!Y z<7zOFmlX4oLtQ!Rd`9x2T!wmF6yyBml44$RsCR^PJ_XLeybSd?Uhf|}T>BpGNo^E3 zax%RsBJe!0zNWrxJ*Ayvmmh=dvPqQ3%Pf|`uulAVK^^)6`dN@d{m7x)Ma^r{@-o!( z(h`BZq?nf+x?R+~68TUrLp?7o5y(r5dC8&MMa|ow*@dB=w>!Hqy~!YV&>pKPNPqjj_CotNKr3x=>DPRjV2%R zGSub8G0yM%q?nf+x__v7+q5=jsOOF9l$R9ql0)|oHE)fUm!Y1wJO5z1?jJU4@Gt$N zNa)B~2JE56O=X5FGD?VcmBb2-5zO>c0PL~3cco$ql1Fz#dXi zUfLmG4>d2-19?dW?4gboDqm-NsBui!`-{NgSpj=22-&PYUVU;OrzYd(Hq2hwYqlx{ z&-X3L(FVpE8mEB5Ff5*TDi~_{ymN*TKl1YSVRmnSKB@JUO~s1Dk~CY{x)(PXmaUT4 z@xGM2XSZ^7=$_qeAzS!-N%ryXlDwOdyBWzRL-HOxIvckeJ9c(&;iD|uqsOrW@d=!i zsUM*=HuCnI8u>>?#*0X)tT`7C!XWrPWZ{HSt}D+s-RX3neioL$wvirJ`Gknu#ec4kxlt`*od+yCrAHdd-@w$N{p?JwucwvE|n zkgnN!Gux8$Wh-Ge8nbJ*zRWi9eA#YiHa0}pY|+dXalUL9FdG}OYqqPI?b8ook`_2l zSCbssjcjxPWa|)5RXQr@y&V<2#OSD?dv{a}6=!yVj*0|vjuU6zMenF!C+ZOQ)jKNK z%arTBL|=a{0%+%bGX2=;%@ITJDu@+$`CrQlcmD+;9qxz@w^4Ztdmzw*k>SwZdb6?i ztN5cwhee+?7;9?3Yv!TC%a`B%TQGZfdOg1?O*=f3%wa=rUBSU9FqO+)Eh(DNSL@ zhmeJ;b`ct!L-|!@sZVeAOHrQC;>^umO0N>7zoq^*&C}dnoAl7yq!%>k)FyAUVvRYN zJ;c7R?(&9edEZyd547joXke+4v$)7>JX&C^t*SXxpWcRF_taL^^%;+5sSBGV+OjTe zx)#pS!h5waM}#%+)$FO?Q@{HVe`)WRS97pFMVFQjzPd1%mTRdNuF}GXv~aBm;XCgg z9kv1Zv0rMwu2nEK?uPWeLb|#aNt7{Q<+p8cYI)M&p>uB$Z5(|IYvsD^7LLpAOLuL9 zjHW1L+4Ul^p5?o?B4mak9UYO<1(OEHxYOkRd^_68uaU*%GS;4`J#p-0eU5cfg40p~R+}+r3$CE!6;N>Hp;DZ^ zGmgjy!F)AF{|Fxf=;G_V{mK?qgV!kZViOQoVT?^>ZKxbF1)DlNqih3X{tr&Bx~ zhGm9vXP3V=d7Qf?^5GP^LfJ#m*k|B|c}dSMuVXcR{njxObwCSDK4TLteZ6rP2AQL;ur5c39TxTyKlRcFWYL%7Wb=TaiD(K)IVD={rF&eXLB51H z5J~RX_(Pl7UC}KNA(^~0+PpJby)#-|MvPl^xE)#}&ls>0zq&A@n+#CJc+JgfrWEBR zG_vHf9WYm`%^QL3&U8O>KkQVM%_gt;h|gTj+sP?W-joK5k_tZVOs#U?D4Pe%DMu_x z3wkKy-@;FhBWTj#>9}&hT%+0p2EY#W z8jHfWqU!Zd87$AJOPYMFDu4Xkblh@#6|wSY zIi(+eo5P=En(<52B;^33TaalQ_xI-?B&9Sb5r?) zo0JIrs=G8K9G7j5kTn-!6XUDmKi2uyTryctcQwrHoFZQ8 zvE~oVtxCFak7}%O9Sq~E)YtBy?{X2jEDFC=Nm1XsBINW`HCc1T2tEO?zANB-9d7{!AX(#bFSH2iFcFfuM~>B|0+gt zEuys{UJIe*zTx*KlyS>?u(-o2IUiV*B}lu=YeW-tbOa2H{Mhpg2ELDI|2WLIp2H_G znH05qirewy9QA!f?Vek)3J&bW#}AhR`}_UbA4GQjeMHK|Z(?Ru--VVKGwAwaXExsb zSLn>dTl!2RW8+2*HD#5U?#L|2vzqSCT%1?vT$pEyS+ICXVj*6ZnVnf=jm@?fTrUlp zmNVA0$YHm;Vr@egnMTAWm`02lGh%q$nBnnpK*x@ZA3I`{$?3A^;|+W!b8(R$AA}bt zCeNLbk(xAX)*LBzk@hM~X_$&h!wT&v*2Q;c#%hTF^@hXzDFt@CoN|~rPtMH8t09L$ zS-b;Mn&WU=rC4ev4HM@Z^b*E~hv%p-os@3qB6w_gt`Kqq1%gkb=3DIrR+pm$F{9$* ziW5f1NjFfYpQCr0NxYoUlvijP;vCysGQ||y3v=D2eCYQ}>N=p`| zPNu1cI88Zt`J;HbB3?}yD-FX-O^d(}36jZVbGeGf4j*1*wHM`EV}mU}98EDixY369 z?k%MhI;`3D`Gt8-YmUiY#Fv7Og*v^ZSps)LyX<^-j&-a_>Kz_#LNStQe5Pamt`rJy%$W(8ilIoa;8YVY5~Yff{l z4)y(z)6~}VH)0ptOR*AO&go*amEc8__S{@aH9s1d2868&+)kG%%WBF}6&-3Sw7U=w z)lEZkOhdA}@?{pH$}a1CtD_TZer|WXrrdmcrYne%h2kxm*SSnZe3_~#n{QJ^acX;J z+uiv&OcZaO#fw#g(u2%m8sauV_mTP;N}faeSptc~5Uo`yuW%7w%$j533o=EG9H33k zB5QVDuJ-m<(=|h!*T4`|8ZQ^M7v?xkx0-GmLyrtfD#$D3YdpIq>HQ&#Z|D>a&J*6Y z3%{4T5_DUAoGU{ALp~AV* zT7ir6Ts9M|4$X=K!nH(ut|^;u9fm(3ZIYClla#|f2XND~q8-9~?!;-}qvEpJyQVF8`xE4PGS&H>|@E3E$1HXt5 z%A3uK-aIzE059t;#9M%G5D}xshUeJvI%Y=}UUaL)-842ly97gu%8@WO93ElS$@sD1 zi*0<5ubMh?Y5Q>krALenw>vTm@jhUcjvE{9u;v768=LDNXLLb+OT-3-qp{&x z`52p|SYaD!m>R?eOd|~o!ef^#mWBahOO{B(0I?;Y0kOrP0kOp;2ulzm9)M|(wvdKt zp-PX^=uukwO&WcZMki==f=0({bi787)aa2KJwl^LXmp%L$4QepXh~2Axr8nOdcRr`CK8jMhbk!ldH1_^3#lNyXt1OB2bgi972`g`z+ zSKzINuK|d^jPOrE^akLM1Iht<`h&n11!`K+ zKF)l1e8FeSOXa6FXC4&wPX5mjV_6 zasjD;DS**{8vvI8!T`U3_XogNfKLI306PJ%0-gcTR$kmdUkT7{Tmt-eL3AGQ%pm$M z;Io71X}~80(PMy*2%@hCJ}`*B40zulx)1R1AUX_qND%!`)&rpH_cQR5LG%y68-wU? zfqxZ5e+v9i5WNTZ+d(vKaK0m9k8R+ezKA^3ftw;aj>})^g-0)Z@|SPke>?=Z9#4Gt zk9%IaXqMe|U|!&QJXJU#zp9`gFwC#Pz(ySB14Ln)Th-HKD+D zImF+)a>(0TzPfh{aa|_yzN3;lPS-8pL0p$lJZT?jb~Rg<%>U720IusmeBGU)s|Q;><-~P;h;RS=vX?*1>bH@&t{d^X?6||l^PYQ& zxUMJhj(`B#C@jCi{78JL?N!%k@&W)Z?1PIUGOt;y}rcr2F$OIjQOxM47gr*;=j*woH+jc zB@YtU?Lgf3;`o!v}N1lD*G2*&?h;K_+J1}QZ%ag=)TM^&0##8?XLm{moA`y-QrTKk?w>qXBiLa@PKRyU-VO zybAb+{?Bbv4y}D`cTha>u)!B+#{PQxXW}}~9^iF3Jtit?Z){^;T@K?vOZ>-I+tc59 zD>yIXpLrqnqZJ3rA11EL*$X`H^S`F`jr;0L;<`-cHNLUo(RbT^Y9YTapFAg9XCByW zetb2{)ypE!=&Z1p!q)xyCGzMx6K`~sKlJCgYc}r#uIs?~HxiznbmZ~E9~iIeL%h!y zul@MbPfg!Zrmh>~EtT6}AClec0phxz9*vhXd3ZbRY^ z&R+6v#xDtfr5xR!l=E`8Wj$gJZ!M#@+*$ta2mPKo zG4R%Vrro%5*785R^Se{;ga6E}S10YhB!746uIYmRIlZ(}&Oy$+LM+Cdk_&6^ZjMsU zLAuVIzqF&YC4lR3B0M_potQhq9(}C!)9@8VH_up>`&`YasN+$yzE4}bBJJd>rysuJ zP(h{ZvGTX>{6oltIj;K;EP3#@zvtaCbeYfe*1(Tmy)%5k{ITUq`e-ci|n&|Isnz?19kSm8Y}zz5nZ!r|$pkZ_ms)TCnHGL$!~5^oe}ti5LEIVp{rr zOMf}D?86Cvf9u(`UpIe#_K&yE{bowv!=?Sd|Kh4$#(%`OKiFsIwQ0wT7wmap``o#i zxtB#<9`mm0)QUle58ZolO4-T@BfsD9*OsS8r=9%h@6OfonG(MtD1}c@TvL3huxzN{&@Ysim$Ic^y(#_ zuHMtLYRUsYE#C3P{KG3!)<5}R)7jbIz4GPNqn7+>Dqkq%KgOCS&6+V`+D!F!Q*Ws& zol>~4(7w1(O-8P0+^~!RBm(XQ;u#Q z+5k}(hZ%i2A}|>evl8C3djKz1J(kz0;&P6fQbHKMiU?oFbQxkpa`%E zupY1#Pz5*wPyp?Ks7oLhFd8r&Fc07YtOjfVR00kI>Hy7vc0kmn@EO2(fCZ2PC|PpMGZ3=09zD_POU@ zc=4r||Gf2;S6|!qm%sk)^@=y%tla+A+dFo?v#V(WpE}+4%b8!>|9Q4U zvmu|-64k@5>#kY2BQL(nCmvCOD9CfUaPxYm-Q;v<+f2E6>eC7JQHb490$F-mk;9&i z58;VhxDJQA2>DF-TpF8Id`WQH@LB%#ot`Jhx+pJOJnzWN$-#HloRBxcG2g^b%b8qu zyD8sZI3IE5Vr#YucX$gjU49w2XXdE-6uJwtaLX7nvu$~JETbuchjEhr**+7rD8gNN zM_zu3$z7PaC^IiVGYe08g#M6OXm`)I;n7qkKJkac!kRnz**!eHD9nQe@a{5{r)zmT zz8<#_NkV&v^>=PONFmQ8H73jLERiPDR`?{K6W_U;=&(DTxP>qH^YaS1@2Im4NaLX# zo~!a96D>Q<*@=W*)u(BA^6BQ+^B_Vk10NS;tKfMF9tGkFGR%f9Rf0#U)0*~78S;TxYsVy$e!3XG6g9`OE*=z%p2&+(E+Q*b{&2^cCWmp|)T7JHD zKA-DZt*jPoo|!YuUI;@AZ&6(U@qWEnf3(f*4*NnVSd@ovTcXWHolJH&MCY1v>;;*) z6lDA1Ba5mhPzyd8qgy!n(M-sMP6g`67ey|slkH#-04HiWC z{oR?5r};QUe`1yJ2~!lL8UpcR9Dp~g?xqeB8P7AVsC`YhE|wT$ot@qtjMGy^S*?|z!{oT91GQMi2qyC4?Z9qb?$Jk`Sk zNRg=RB@m73(9C(ro8z!{TFxgRn?}i4( z#)9i#qW@UDz~9SXUp)F=x=BIW}M!BKl@Fr!kDZg;p#2 zlgVkzS9vCqj52B2huY0(U)>cx}+yV zgcYN^KH-Q)vlk9iKXS^s(+Oj!gPJzaig88jZh`S6uq+7p@?s3uup@R9aG8LWBg+aJ zds#=Py9jFlQA14^!QUmRQyqgcQC(eZpxj(+HN#BTRmKE$HDl^7nLE^AHg!%=8PK1_ z>Ia*0{FZZLQyANrqOoBkZ+@XZ%EB4-b;wM0RNU$Xjvk+bH9!&a zWA-o9JQLMYXR%~^u4^$|9ji5z-HAv2>@$5XkWXY1b+Kacg`>-uF(M9wt7d1Yr`Jp? z8EzIxV-*AOTAevonKEyb<>k*2Yy!|uy- z_%QgM6Nka~oVbK;;_&U;bNEJe6NgFv96n5r=frhWkN9rt5#LQc;=8Fwd^h!oM?I4L z3m*=+PV7&@W<}g~b8vyF(t+ks*Uf=stRXp@ibbzBM==Qxr@<&Lwm`&^15jcF2c?!x107zKzsPt(9V*A zEIa&M%p2SxiOqg48~0=3QefufWOXrwSp%P7haHnJw&F|Q;zA+#nhbvK%(q&LI0-?9 zwwAGB^yYe+OY`BAr%j$E#o(uPY!4pC@Nv@0I`5u0W$&j0SW=j0S^P7 z2D}P*2k;@_7~llpEa1XNkslBXxD_xHa37!$upIC(;Az0CfOh~N0*(Pr0L}s~`~&g> zVga`TW&-X56atn59tJ!Ocopyt;6uPMzzM)vz=e+?KOh!xD*(4Bq)3Ch59l&2yhaO$ zYT?aVI7E$eL`lY#*sp@n1zZX+JdC|12%CKd<3$Lg0T%=O4Fa6yQ3vXuJaHDn5Fr!$n0j&> zGDguNDHaP!8}^fx6vBJd(B;5hV{3kF7G`jP6y>|fj|E1oKwY>flwz>}%j2eGu8EOR zoOzLoOgUPBIPCJ8kEJ>bz^s@psZudoVnZ`Zg!dtI(F+mUbPW5k#nmkKxn;TMbJbJ` zenDh7bJ>qs3ez&2j_f>sxn3iS+*zHHGsShB6JJUn?r;nT^YG#kBZiB;;m%H*j)!rl z_;4H6;m+YwZ0vBiD=*(UT-y#VsawjK8k_y^%2Fjrm=o2Dfd4qBx;^th&gK@q_dm{7 zLQ~-y``^!~8Ox?`*+fqLNL*_$j^AJ~@}3fXG8XU!fRAKL(E%902H|wjiQwzGr8DmX za9;9Uj?VD_c%qPg)vKL(?uKCUEJp|6PvA^QpV5V965`2o7(A`OEl6MVT4y=OHJ-Q7 zfrg>8lp=ldN1b^ZG=0D-ZH7>BCt}}OAlO@+Q6zl_l*?ZFo-`D<({i%NDoL9{LZmBu zgh=zPt_*lL#?%bmA*9I$HD22S9!Pj1Oij=>dY@ttDt1ssjn426dZ4r0PGZSyhjeCchj^2KZn2Ylx(> zWQhH}(m(#@j}SYIrJE~4B#by2iye7l;>pOyE?K8^2+``*S(Y_JD`XbNJhj_pXgBjt zAx0CgX1n#R5DCLjPKFbgKe!{MXBB!YGkZu`vw8$|-3+y7h*YWQt{ze|pd>Rx^?PYD zK4+s*8Dg{(j4{?8(%8aaG17aXp`x+XD)lpjO6m_3oYK9(wf*N#wHTiH5`XxQ#7`88 z5TCMS$WGGU3mcK}6Si{D{NV6vjQ0G*F-ZSGA7Urjj~RpC8DIjxtND94tNytJotdr0 z&T=7U6P=e|A>)rxyYkXP>@>rWS?A@ZOUmlXOLMXFTnjnm<)^vN$4is36YU=e|Hs#g z=OGVyA4T2xS_sPj4F{x11kQ)8r3NGWGv_@0U>c8b0OwfpalYjQ{tyVxr#xtS0zNA% z=3Me|9$pKE24rL!WijM@%=wmi$;Wxyg#tKV>xW+M)rer(#fAq z_?(E&gphoMA^>eC>H#;7@uJo%y3LvV!x~AN9~7aZd%N(>c?fzkgLdeAAA{C$CMEbJX#^Wv VJM^@#LF+h^tdB^NDJVim|36-p-+udgRWWY zS%R8hCE7)?etv$O{O8XFa0Ep?uTV~bFYFgFQ#cLRiwoz5a3SzHj&M^- z6-vU|B^O8l{sQ1SSV;UCD1{Z0PyBt;7Z-CJIhH<{WBI=e_}yCq8UKPXj{Eyej_Xb7 zf%k`(^9tN#5nn~|_+xnZluy_miV^>Y$pOiqU@9t{kdw8NT>AK;{PB}GE)BSR2|r!( z=Suz<_zU6ghD(C$4@dO$N9DK$P7g= z*k2ZYACtm^;U~gn!!3iO3V9eV6>b*Xa5(x)hPw}L3EU%aIdGA1d2sZXDSF&e__1*J z!`&mr$=*Y9;QyiDPs)pIZ>SU|`}X}C;0s9Mk?>)b-anY7_iuz0x*dKf+(a*?J20d> z$f*$?CBZ7mzgP16!oLe{EZhvZ066;7ik|m(96~{GgS;^uH(3f#^@*e4Jh<6#8n^_w zTjAutI0P2U0Q?D3*dP9QDLhT`{UkpF{vA^IW{+sfBLbCn2;QF?z}m?6ZDPMcdZn`K zrUoj>9tlr28M#%VB%Xw){KEm0t_dc+$oxhihGY?*Q7AR=2~Ta}(1<`K*=c`H#me%? zBC((7&;9J7^2XdBsO*CRQGR60oj&rc0KCBmruHX1t56<*PyF-Y_C41v|7ySm9SSAc z`T(?O3;b!n%J@FqM!+W_k61nx_blKG(`0x6_afjF@Q;F`i2ti_0`Nm5eZ2#?6Ziti zOZaMnkw4i2!F6zvz^{AmNt-UJLqisr-)tUIG2CXZSwcYQUYS|5AzG3^)||$@$v=8^F&k;dcVw2N)oe z|5dAwX$u|uw(KAa11DEO)1 z6ThF}NB=6z+lRXfcmwGd?T7G6_(~sr4gfrVQg?lZ0}e-d3P4Nr_W^DJzZ?el;pPI~ zKO|6js<+giQ2LlaC;f|%O%=5&A!&|kfj{z0M#Y?oj?;6>=qY22Xxdo^Gs?0KSu zF9BTTV?R9LwMf5R!aof-)W`n!06u{78yLP1cL1>FSCm(RKLA|s(>{&@-T{3BjokZS zg10;?ech2b1AWfdOgRI zEKkqTr{$Rnz`}Zh2E)fCAv_bX4E55ijj$vU@XkaTUErREXXtJ3-jg} z^K-deeQs|4YCV@pVj-^#lBaNa(Ym5^2u$cAJy?qZrLD{_BvEoqMFuVP7X1>nufADy3*Uswczjrz6VXPl=u z&M7F!$wH~J^79s_QO#=p> z1$kMvTD3c}QZ6LH;Y#ieMFM3bTx?79b#($*O<(^2{9L^1^&mUPcis zPQf~++*ngyIw^|*$ys?B`D^B;r9ZZcQBt*$mX>3E1L+Hkh%mE&B+F!x>D~&aitMJd8RSuLJQ<%0!mydG8>gP}cWR%fpn}|q2t%{}vfl!}$ncT|9^@aJQ z=e%?%x=2zPRW;h~%5>BkvP82j6xG6|EH&v1*Da&QLz;{QL#Yau$2_=rPTT@CKCuXr z;pAlK*ZL}UjuDM=rO61LFsno3%+#*d=Rpk58HEG@Qa{0zh*gXXz`A>#Z$5aY};jLW?-;ZGqSWtt`2qP@pl>2S zf#WL4$KrJ>`4~vHlaGbr4)U>}+C@GVyswgv#p^!uF<;wHKE{Isa^9|KJz`B>neB7ZFAZ{)A!I2ZX?Ft?Du1YHiq_+xde)2KyD#^!$S4BP+hr#5}z#anm zLoq&*ug5+H`B;Ez$RCM$F!{?ce;_{*Yf|#D0WgvL$=C}aKLzt2@{_P$C4UshMUg)r z>kRU-D4tLLEf~kiAA|ZQKMnOyekAIjd@N8OAs>s=738l%{gaQ0jDdVC`~*)rDzCD# z7Qdc*7ooJCQ9Ash#GGf;GK35iY;E!2Z&V7wgllbN@FN5V6KrSj3W90aZ#}@^41zTT z?_#il;BbN~8Jt5fO*>jk8C*axq~}@-7;Gdsir^ItUQ6(Nf^`gDPcUkaYmH)XDZ$Vl z*E*5Ga4Eqp4Bk%g27((Iyo2CM zg6$06Meufl4>0&uf_D+Ti^2N{-bZjHgZC4BfZ$RFA0W7j-~tA}OR$~b6%4K-xSn7g zgAWnhNN^N`?F2grp2*;%1h){ZVQ@Xc0>QxyK1r~fV2;6!1a}hb{*B6iieL`Y&ej$N zI|x=1+{j=T!NCOE8QelJO>DZA%)h8BV~ z45nVgAP^kPVCp>#Zh|=mQ!irZB-nkO%1^zCftDGqEexh!#h@g(k-^lv7=j75GnjfA zLny%q7)-s5K|}B^22-zN2q(A_Fzk%|Wn*WQZ;!8{J%9?kF;K7oSw%ZifchCIAP~Lf zsG=$d92iZB7-0y#0&JlO@LHv9Sw*mQ5bYMl+Y(jrI^i~;gq8GT!Z2w$s?rG=B6T)L znr6F4STuDUK`$u&CGzb_3Dioshs%!Sy})rcOXJTTkF7vqS*zfTD!!Me(Q-^-nZ=np zZ2HcJALYMKJz_K7#n}#Fq{Ut@-|kI50m=E)E~1dxR|3x`DtWCcn=@4I#kxuNA}ubn z{YVkIc;ONB@05UeVdRh+MO+D z8XR%KmUdMekWfgqW)Mu zuLPA-cgDXGd-mzszsp~doRq+uRlF&9vE_zGUH%UUW?LR&z|MDX`FIXEFd6Y2IE7!KoZ&hwN5g>TM6?SCaO#74a6a5Avcjw-8gYpr zZw}0P0d>;ge7LIzZmKWtHp`K4OIGVeh?AZhSgd=x`0%i@iyKf zAfOYhNX=W?S=fv)m^ci6`qPsq zXVqCqr!T(n!YuG$RwdF0dFdk}A|!gE66q|-jTZoP&+$<&RKtxa0)GfvPP#QsLIXae))#&&q zOTmk!&qHi>fKNm&BMX%UBYc~d?16ulj1iLci5EJ5W&Jw;ENL52z2b%M5mm=32dtq` z!iXVe%m~`_Tjj=LhuN|A5{CAY$(xm#R&ytO75t9fi?HjQ$wwmW&a6PE@Ga`mV!z9( zy}+9Y5(d`kGdiy4u`g zH49?m%j&lh1$A|kHPxlAp4X{<>&Tc!b@ds9uOS?Oa09|!uyJat-NJT~9POC_?o6xc zhR6zuiPb!?)Ve4oC1WgzS4}|eI;o(YD&9fG47elHiczcId?-*|eL0gK6w5-j>bH)G zIo$!ZboR>(Xw04|e&v=_oNEoL{Tu9yIvP2VWlL?ya> zt!Od_qR8H0A7$;E5JO$6R*7~@l^Lhx`&i@L6%Fe0BA5lAs(-4Wy0v*Rgpu)8K*0n%)QEvuug;egI>t&ROXmY zb+t$R*0l-`kaZ0ClZro)IR-qeacGV;>gvS`Yuq8eQT^5z6<>m?mQnqPekZY!uVZ}% z7+JL^xATdI)NeK3OmvcU6zEiv(8j-_?5bnY>g%Y>NQGOBc77t@3pB5jR_!6c=m6@+ ze6dc>=^D)34xKtO1E|WhN8v7m8}%IEx)@xqTFv%=Z^0Ky9Vl@CvLUu{hXTBOXqZ!F z22im(w(F4FQJs)_jmF9Jp}ps{P|ZX(eMw}6D11`W_lLCKfWn5|>0 z4KgG~%;Lo{P-6YuPsBRBZ5nU4y?Yl~Cpc4T5=+N8((vUKXe4Q(FF4$m8gVxz8@7;W;u_sRPlqT+pPFf zUH&AgB~EEMD3&`O6M-@+idQ#-kRqGgP4uF;)TBfOh;&qVN-Ss5agj}yQtF&$)&GMC` zRqG(u^fyq})(tGClESvV23U*K!Bd@ZQCp&z&$+S7MSseuN=be;ADAL`_IsHAu_Pp; z;OAoyqJr?HrAV=d^h_(Uc$Jma7!{}wUsevBEu^&Od>{taerzhO`obF5(Nt!KD5tG7 z!)p#K*z3Faax^ptu0@RFyu2K9H8^W1wiL0h6V4NkPbJKWGsm3`juR4e^2`Yu8{^zO z20qTJZA8vC)z=UKR_6|=v1;4tN1&ez0rl3n7Cx~NLlT)n2=!7|Ep;Kh+j1-fy^-Ze z2#;n~6Jm`!1%4KLs8#EzblUmEc1Mu2mX8x0ea_T4kMi0J4y@^%NBG1RM-Ucwac<`j zkZDgj=DVG>j)iWbax5nAh+_#nKGETP$nCT{=64XjL&TE@Jb4dw5VDhyog$JvAjx~E zlaO76>=KdW0ZHCNSi3ru!1ZOQTNp---=UtkPD^dLHPKzu*{&NN6_N?SOI} zjumb`(M5WU?r_*0D>_JP(VZ0RBppR}QLu|N5`d7#Ig~fIV@}z1kQPIi_L4rR^rRD) zMGFOxMjSK~@(!+~gTF!tk~z6_wvZ@L+f>gW#uihLRYGD%yim`2#}1kTxt7`#R;(Kl zZ(HWCK--7b_7Ps&QCBK2XW9mO`@>jJTK`1|kb26fC$s78QsWfojQO0Cqh21oW*SfM^2LwDmW zQpF-nmu!mL_oSeojH+o-=!6BxYtJ%(HQy-`bOuT<#9`HnvDg;t2a7z8#ID<`NG5Cm ze-^?LV-v!bqoL4hzif{%>)%*Zu>A_s@VYYi~yv0}~To#-W#xjj0YB9GU1y9B+%mh);Uf?PdzxZ6|}WRqOzzPVh&z zyqk|r;iDARiW!K*c&!tzL&QA_DB3{O1}YoBjj-{88z{rBe_(I)GD6uJLjmoRUPD+X zD2ST_lk)7b3Btb-bqseH#S9H!qNp|-?TT4#WAVFG_yGh7g6;>(bC|`f^iyyC2xY0O z2nU+3pHSHg71doxS=Ec+`mTN4rPtJ3?W1Um*IE$J=;cNJ%(7F?L%c~aD82DcG2U{Rcygv8e4L7(qtF?qdMQ3&6e>f!H)bzl$O4s9 zhm(TUn`v<62a%fjBQRNhioa#OzcQd(U^*ZLJ^Av=LBe>0G>im?6WP_dUqFTT_t1?=Yz?$&lqG=_Ly6XUw}D_?ZL2)$ja~|jKBnU zLj@fciIH0qGoeT;{^pYwmxex$r7odhHxhdmk%6v z?F}#EKt92+9>2+k^Y~SN5Ia(5n5<zTy;dFp8l#4t%% z2dX3?U8FTQs1yQ~Vn`T?G7L2}8G{k^GvTNjQ4vB2k#{D0t11RCh}-Uz>`9~(=gs`n zK4!Ase_}S5B!q!Jo3m9=uc9+7nn8lNzat)@rH9G(IMcmpi0ccTc!rqqoY!9J_N8%+em|3#ASZ?Nkj&m;ro_O9cSvpn;Wg_w)wng z@|V`Qdj9IhTDkwY@&#XmT_>Fo1iAS}A{@NC6MDD$@9KiLVXlIoJ};TqHuBh`zn6)w z${x>Svsbtuko8FwGGr~uG=SlI^gsMxmDZ1gLBT()vc42Tq}s+{%dub&wz<5rZ;3+> zVKZO&c*-?}vg=@Pl;qN0X=(y0G;3Rm8}n=Iots_!`okCICGS3p^67+AOlry=YmSN3 zGR>!~W=B~asljTlw;Tz!Xio)WuENJuT(DXwTH=u`Jb#WASzB+_DUSJ%=iedhha(}w z!M>#1Yh4lcORpJ&)bGc7)bB6xjH$s~0aKp`cyoQ-JT_CSo2Sx&9;=f;mZMhAv5sYx zNVtzkL)Nv5x+pP8lqwz3txq5e?E5(Q11#Hdlr5DU+0qzgT2@y|h%CmwzB@6?&wT3U zB8nO2619b8I8V_nBW2hYLhE}bIXmx|r$T0&N9(efUA@##z5+wbo-72kkWR!F9dAvn z5}tsP3`Sy`ScQIpRF+s}9Yix4ke@nx6L|s%Fnk-Hl2iE0DN>LER*N$sPO7}YEH4bP zSfr2TJ*Cq)<0w?OHKc;LM`0&4J1AZ_$Fg8mZ0vQ+pPOs?Mm7zzYwFBKX8iAhE3Dqb z4>|>ye`K<%qRABa5tZ9=-47wAwPlkP{I$t;+4lJ_u6$`tt>>@H5m&I3K51JPq_ifU z#Qy&oDqH667r`Xc>d(()tk>VKNM?$;2htmM$i=)3Py$m?e=1dCRnLOZ{Nz{&lnvvP zWZt5K(Sxc^!HP?jVbkxE+j{r>7>5jK?-3rks0~!qCaO!ZtW$>aF++nboqop2h4B21 z3oV@i#?00-&{YD3otBuPXsv!Yx@~(@-iVOLuWtO?8XR%n4n4O$1m?fT`vKo}`=6)( z3;0`mQTn0X>4iH{dp_sSSdq??%Rd9<`;yA3uU9gB8MOCFQTK=n%f^CHmdgkE5V zwVU-Yf!6m(fwqbQLM0^&SDP_gthfj>?wwgz(GDM5qIDHN$^n4|Y&$Q&$6ot>U9xcO z4C|}Wq$ zMmTl(Qz%p&J6fg2P*?E?kVed->MB+s^axG{lOF~2u zqd?j=L@w4$4vC6`L==UyRXj_h6Aqq+0voN{s0_S0*m{^U0xOF-gfrfs?Pp^->nK2{ z$~r76_v?7=1|8Gmoww2`uW8GY3}3Q8i#e1tj{ZL-z6*1GN<6mGhmtoBOa8;GLUE@M zBeWYl12q5+amwUMC3BO;nAc^1oyg$o&K4cTBhqM9QTl$;mq z$Xd|}K4R5bE4mQ2Rk-o1%T^_^GS(4$?a4YVJypUP-Xhh%N2-4fxAm~SX84F=swrkG zi=l;(7!Uf;? zCjB<0b~@jrXk^72h2h`C>pzro0xthylgTIgSBeg0(L&DzU4*&8#Buv12)K^uf3s*@ zR?vuI1yST&CTJIr5fhp&P-2P0cUu1KXFa?OO2>QyCw2WXpMj>hwp+XH@7%9}#l0yW z0ihYwWKp;OaG=sIV;1G#M0MyuiEKNmo4{s|#`7(f1lFCWC=&hVVG1Pk<}lB#(&XWrScnr~u?N(2`cH2xKE&^&94toykz*xGteEaF z?~S-DX6?-)-1DtB3^Ana&cF~LQEMUO>uK*)T0Bt{MZYbcpQ6}&Pl?X3S*vQ+hVUj0 z#CBeEe0jE|^n%vZtNFC^qVu@JDT0b-2S7o>mUj7>6dxYHC8_8?9cm!1w|=o-fb=Mh{WIqEp>XmcJ#2>zK*ohQ%y zh+X636%D4~W@lT0@BH3!)z8$o+0nL8DyHSCKVWCuR4*LB@OOJ*1;fiQlHTsi&xt&p z4Q(pf9tds@tU?)F$AQ7IsJ06RuBBs996+9(5%v(3fKMHkX&vZj_)~&R>#ZmblBafk zpt7P(^hlm*9cGhi{$=&EIrebF=gKnR91;ZVr3|8f*WNEdLp_ zA&&bOGx**%1-3l>aa_p9MJ^TGC_Xwbi#duj2J>2hIO4a{4>M??NgI4RH>^o3xUM=I znp0bvwc##(h~wwxR7bORqDwyv)tK5y8^S{IXr5y&<;67h7P7eTuh>$C;ZZAN;zec+rRZpPFh#o>~kBECeODKG?)x~z(+VwrH+i^Q3FN6B|d z!rNfOvd2UxGMU*1WwjAmwO$8nse2Rm>m>f_&F4ty#7MTL@uxx99LdMrk24=PJSC2> zX^UQFW=*UYuAx{ogeBI)&_a1_yVc)Pt73{FiAxT)ZU#$?hCVX<6E|xy4wadOH-IZ1 z0OPUP+uM@5?bBiwGKzy({N=V;*qb*C3nln^+js^Kk>KCjZf9_i1m9@8g~t{KQur4u zzyVjraJONG)ekY8dP@W@irMssq)rvtb6n}_DCTo5v&TgbYde46(AmS+JkYz%^V96Y zqYteQ!g(rNAFRcZ6E%s%Fn)k_+acV^vY3N8(?AT3b+m%!TC00OdvqQFguf}9PaGT1 zo5PcF9-SD5kS3W=9LCSZnao_Qj?AGvR`EDa!SPcFKNp*B=3)Fic)bx3$|C#`7s6l_ zlB4!Apt;ruk&A2?-uY_qB$}QC)5{j9Yo(SIT>MCL;J#Y)hZiy4!sk7>ZOO^3JRS9tOsni46S-Xy5$O~N>jxAniN{1}?HHXCrPd8U>>0~ys@vN6ZO2#r!Z zPP0tZ<;gf35%m%ZA&J`Y3z9j&@=Oi-gWwVYd;;y1MjSVcgPQ~E0iF>-8tMkM1)_eN z9YReb^daAe5ZTUYsvxTX-f4GjVvL=KPa%e{pkJB+H^O(mNxw}yc1A)*=bMCLxgT$K zhD^T2q)@0n)ku1VNs&4Pru7Z5giJ9@oK$0dIRRK zOiv{*HREzym~YpfsEHQ_p=@;(b_hmhO(z8^QtIYc(7BN@kx{{ZtcTwPi7nbsta)Zp zTX+^ZrgvRM6_7M!RoK^K~8sO&Ze^>t)W6GHhPTMH`X&Z6nw~=_K{eA4ZH|`|f0=>${?e92` zW_c_|-E+KYV)C#`WU5LW=2D!N#+gl`Qq7?*#aYQ>#X8#Vi| zpb+i4>F_3mg{>Xb6KXsxKXjTrBeB$|JWTtt)e|j$m}%yasF^K6P@l8GQb9#jkol;$ z6k%yVO_Se73PZI{9b6n_9gHo?&39qSMym>S`7jn5E00g;%lyUhsq7@uxS26{$0wY^ zv2I8E852_+pHfZ`plDU0ZscZ&@gp&8>d@lJ5e?mS2|bHK^NM0VQDapEp+%;z`wY+D8YOylMuzlc+F548;@Lt+V-wTDWu`iTRt`)oI!)1 zHkf8ZW*u)@#;2xWLO?7MJFRh80^!OBZhGK?4ffb^3j_BE$I{@doxxV~m= zc&)~&t>?89u`9uAr(g?$*T&F3yB34BBOwWzUKDS`ML8S0AJC!0C2Fe1L}k2Ch+)X4 zuaX3m?GN%{s*Js26`vYHqq1>0He!dwFO^QWL$LH0Pq*J_z@6)Hwz)ym>x=J-uSy1@ zqRALo6^DRMCQtE_{}trY!z#2g_IQ4pL*114*ADp79NfUiU&Cw`=QEeU9ew?XKKzX0-mE&C+oH@%zH5~fT4Oby`@4Z!v@I5A;3j^dF8U@ zT42e*x{6K^(W0(xfxI5RrY^ZnjHgvy+ay`h(tJZi;oP3HTpJ*BK=HV?-faHEMzWp6 zR=s%}nyke{!+*Xs{_I$cW>~15I!?F9T!UQjy^Bvw zNTg9tu>WDI3xATz71$08hItwaE1J}szkrms1iy%esoO|CV}NZTCJG%Oa@tRey{og~ z^dTD!&S%d3ff#{Zp!M0?80cy}bFNL@V?K?wul)?hq)%yF#yIjS8=SCa{_YIcrHChK zu+DAxgPG7kc_t)m)UdfvTR>&A(>0vRA?rh3{subxwjjA$(El(qafzc~^G>pv<_fYB zL{VnVI|+!MDptyt$B?{<)w`GwD>J4jX{Ljly)>9G2DIQ-obXP9)a4_9vK(fXYt*py z>|wI9WZ}L+OkNBVeK1hhVVX+y&5RmHfy}7==Eh?;BFVi~sme;d!64zwWN`ggmhPj(G^uXEk7IPS99FL47nSAqlkHk#kVw&VOWJm z=o>+MgU~XqE_%6XT#I4F8ZK#h5Q^8Iil?g6b`j^cm!Ko2^5GF*LI|6V)nMU3$FxhUpA*KB-=VfsZr?G(+-ra#N5FUA-PPU!+XSdhkr z(uM?{Ls0V1kgl-^#ZA7Na|#~o3uV9)q;n8irlP~!&L%tUoN;i1PT0q$p_z^{(_ zI}XQN<}USSc5BoWLaX4AV=+U5dXoy&<Qm=U1V#QK%I@y%#5(9jqfbou9-P5#X z^ypuNkI;i3q#=NWz_B5o!Z?X#WTth|P=)Z)pCfw-Wq*#O{S53_%_E&``I%Zd#v^rk zJS>LlL0!HLr55W#U2dgtT-O|1hz%hwUWlqirMqo$T}xpK!E|4GsW9a~h)eCV91X#i z)#wP%^y}uZ2)ne2LG#1JlYB@Lv~CUYv)EM@?MeT6)32`=l7wIENU23ioO~Dmg_g+R z7`&9t0gfFJ=U)$b=O?Tli|6sI4sW5W!&p);8>+A-cF+#mq9ICaT&FG3-OXbzRm z0mjxxBK3=c*zL%&3t}TtypV`BCqO{fAe;U`ce`NruOj=W{Y6^o=ma-3fbB(Sz~aFT zv$sg!+RzuSc&v$`5tpZ5F&m&+YidVC1NMTBjnRfquUqdw2Fo_He?T2JuCNB1 zn4j^f*pwVdw^aRkKrsUqlsKj@ykJ0>IROe%@`}EAmJ5%k9KmjM2j;}F)32<51@kd9 z?Nk-EJ}?8DPxYLtOc0hJAPLJVJhdx9NYGG6q)HGbSJOOAkc!CWKPns=vL=qTqjc@i z_8yH&Ny63|x^9J8SCX&*LEJo?3s1W7x0A!1FF`0k44vf=S%NSUP;!EB8$4S@2lT45 zRdkV;khGib|LFufqsPTl6Rvl*&FIm7c$OqeC-4vxH=jigd_^bYAZ$ZYG47Zm6t|>p zdj%lm>JsO3mi7WFj22rsG(ru>XDo30DqNK^3Lu9h^~TOWZLT=YZEX z9`U^`u(fo3zZW&eTXAUvy#QUvqdNpFwvTDp@2HQ(^m~ybex~=qkFTx%D|C2}1`6KI zZhaWZd8nH>2Bd z{tA`dOE)u<3|oN~=j8)FW*3k2<+7H=i+R#~leG^z&%mgUVcIT{by*5iWz-O z0l4Mz!1S-yT(p@wP_(!ZoF)Y0-aBdr%0oLEk|3$BPZ!Q#?)OL9!{Sls9?_r%N!XLmu!Kxo7)<`DRGW+LZVHQ8%96K9MKky~ly#eMqt& z2nbUT)(N%fhtX;C4z@oW(InLf>^q4+QHuF<=*IpV65ShX71c9_tO+cw)okcLr*tar za)Ts-zf|1;Egr-O$%)tS`Y}DWenF!M=1G^Ty9iJHvy4Y+J*{th@qWMg;*A55q!&fe zl|nH|P}Oggq!>wn?EicETYE&Af~wGmcv=^W^tTa`I(Iq$>x7)-&3{DC%=$&xTWMM? zHap}umhdW{^fUo){TV-E`63CA6BaLj8hBdSYMqsTZVx;w-=ZE-kQe!JtuNsR`6b<) zAB{rncAA*q%A4_|Tkka6d_CEQ!&yTfs1k&2ta91-F(^67u$o1ddLvE2Rao$N+V1ww zN9F#m6qI7qnEZj%G}t)gF%2jCi^o$-9j&)R6Y@e{>d!2lH%zx-Wk&O8nsd?nQ?b{E zj_XH+kY8Cw2lOff_wRQnf}W5$@*7c{?AqdiEhbw45{R@Vz7*;T zx~@oKN(vkUkwgVj8TJDyiuwvdlBgHFb@k+XYz%9q$+Kv`md~X4O!TOuX26RWi{{c8j3d;i&oS1uFoiW_8oLn zJ^D&-eWJgj&ItPt=r9w5u?dRz{5*wC6W*QehXG1hh}KH|XDF@MG2aF&%$$_`yl~cE zVT$X0_DkBYBz_<;2h&(%3d>d`2~R?aQYUO2h&lR`VtFi`YV{T;={q1vSm{G^8_k35 zK!ElknbuFeV$+_&+Y_!J< zqi)JDC_%Ue3&I9Ft-$R@Lj*3X;nMhYw>b`b@3_vZc)zA4fRAg$5?Mu8^buO-r<$5r zU!pRpaLqw8HD-tgGG4*cl-L(IS@P*r)2ZTMq$AQ{HPU>Ac1{|X3gbl411d>B@)>)# zeqd2hP^yYAz@^7^s63n$;8h-8{lI({GJ}V#CKcx51LSUz57h~cZf)%Aa~dEN$Y2N(?2;VguLA_k>mGzEdbGOYu_x=j&5g)(;!` zeCz}Eg6m7&{k<>{Quxf*#qxA_8Q27%I{6+&Wo0@A@|()^HloBHq{$R496?!p`0>#i z9UqN#T|zJ})&IqE&ENQl<(k4c50|=(lP%W*jKizupjX3rgDItI3PNp5eeJtyF-6Vt zj-OQz6Fj~fHV}M!H*6yKmTve7z>omXy=_4#Svc|*E$MdR*QT$Rr z6;RdF8&K})wdO&%X2l-Xshs|eahRo67d8FJ`VQgS1HZdpee<;P5A5RwR3p>n2B_*L zUFs1f+uu6k&ZlT}!cYJFBLnZYzll%yzn#f!S!SG0@ze#{mw+4upU{`7Taah1TT3IBd=xTSoIli=_Zc@IcNj; zHQ_Y1J}N0zdOisDt2`JrS1s;IYCEw>Mr&U2t`jb-j=+0^$SlR@iFTLbVmLo&J^iXG z3h)$bfNC3gRuPKYLj;!2`*7_$kb=|>=UQ0;%QY5DX(<*vzhvz`{UxgpHb0M3;(q8N z@!{l7oiGqD2o-vvY}oXn{jpN4NpN7se!s-l9G?4TixR9$YUr&%CwwBxY>GKHRj^+_ zlJaBf;y*GX#4Fy*fya1(5&k!_L~|G;{Mso|U&|3itmVdi#f`fudG-BBPJ8{V}C#kO{34WewZ>)4qnmHT)))V8}Hh? zsJL>*GLybf5nzh4T=zHL8E}ce@x@P9u;Ybn6;4l^zw^cwwxepqNgpeX^SXpqI)29C zUrk%9<0^i?qx6wt`X)09)+LrrBJM4W0?)QU;WKbXQEy`En?j&la3E<;#nFhwMWEYE z6sK*!DR(=|{X_X#xId~Bf2mG-Ljv&Vt`mAVm}||zf{oebAEgbD(w-3W_eqNi=340q zS(aAWl#6ppT=_}u#BLBy7W-{LwYUN+SzWpUw@dym$=@gW2bhlw)V0mE%{2{D8^k#S z_&MsE6J>5ypmPPI04}^SMib$;mo<_8gM_txQlCLCiAee z@3Dc4s~KTqlV`FT51mP+G7gyud*n=mtGmFXEf`6vJ1EqvvbqyKB^ZShWUg;aShy*L zA9M)MSe2be5{(ge+ME}0GKsSU?4op*NLwLvQJ^asOM}jMevoo7UU|t6QZR2>SWG-m zKSC+)>R}&wIj+aDzKF8HK07?zS?Fv#1ewd)>17OPcHXTTw)UWz7T!q~Qg+S*9%WbQ z*VwD9mA+;`M^eD`D?3*L0m~Xn@k_59sR!{LSVpL9h`#I`P%wAt(&?wJOWZ#SH5!t`gTelU3Ps7y!Gv@_ra1Q@DYI4inYL3^2~ee z8+AbKK@Fnu8XbOE#YB{zKmOHsHEsRNz9Z(AYyFFd+M@h;1;ZVr8-rtxep zb(HExC29UobyU$LRna$8MeE;ftwtx)^d^<1XX$d;S1u45e)PX}gYg{|7nwu!4G*8G@ z80x`~?)AheahvBT0dbgTf?^Qm6pyX$x7etrp(MMhi+CMbX^efEwQiS5XijyDk+2%h z*jL_k?SppJv*%D48d*+V;2)2dG*MPP^O@J34z>P4+M#VMyz!vv1;Y?bVYKaR zw8n9Z#TkksV;j0g<;*Aq2>U3I;%hI?V=lRw&dn(;T6ouA%{WoRu0!L<2e< zoNKn-hqAO#hvHLGJi~-(;7{|!9;^jRsoi$G0vMerexZ6O-G@4u-ohe03a&I8w43@0 zzr2R)N!&;<#W*9C6oTN7*+Bsn$U7l1mNW;3LpoPK4St(bcaglQyT}YC{TarzusLud zs2T6(z$iIbDJO`$iB;kFKf@U9vMvRBqz;QGV%kGzLCt|W@M}{-mx1#o&Vd5z*cGRA zX?HozIH}u_*^i^wTE67WeW@vRyE7MY+c73IX**s097LOo!Z{e&0I zm)`BtH?k)k+^*qrRrQ7uI$PQT$QFmEAX}(J{p3!jRX4`nRJ?mwaP{jX-hpl=4J@{v zMJhq=3gqZF4v}`^5r-sI6zC_G;Xt$2?$TGeat}18?rYZ8JM5G?a0MmO?_(8F@6rN~ zco@+ESKL0AzS3pd<*yN0C}LE05d7n1CyvxWDGd5DZW>*!9K?F`yRj zlZ8zr?$_aLd*4#w+gC~FD$+Sa12c*ZkmoUYm)5j|SQGd6#S6OjH*5Dvmc(pmB5nhA z+mLA5vWeA=1^&@bixPT*tRyY$y6qONF5VxB1BQw zkqW_sovFdi+E6DR&(elM4W%@Io0K*pmAzL@pw(M76$3Yo1*1#3*LP#hlM(=L(~TpfZYoR+CNgt z<;H#7I9L2qlvIi0pxm3pa$kD|<^CE!KIL{hQ%^dzCz*}1jfYC%9WRAf6jDwiR@?3T z1)nFYL&MZM-#B#v5A}_r$RG6K#BkQj46%)QZZQ?jb+IF22?s z^}#kHg0WMYNZZ7z*senky+lbi4vhBZFm_>2%pc@{)ead4>SJTCSV$YN#Pl}e#7(S9 z=!8D)Mml*YCH_T}j_b|wAz|_ACur_^q-rvLrD*jNw^Nk(K6zG$c&&{P`?A-XkjKpJ zATb42(GZIFk3jhkT9xdyty{q;9}W~jK<~RRo`(6m<>b$poECIh)^=fYSbX1omt_`i z)OGI#_1ItXCZCPu(iLK~3uFh2tHl{kRQR3uWMvkOPw%7AXr_#xI9W6G{s|MOOqe)H zvlbr)dMp>8{oxkGCUB!O^f_tkruFGFc_RKaL8J51*{7}$GYPOp6T}g(wMFUpVo+XD z8a~{knLK{tePcB%*J&O|%gxej9!gu2l~?pwmL@!V&Ervd_{dj!T7iCidVcOb+?@+D zrfF6e=I0y78^*5IOd3B$GimD7NfRbcoe(h*!D*8trcJs}Q)JA~!AE&C+O-AV@SXTT zQ$ljw@}&4BOO|otS4-dS;>L*~Zd@L|l7#O!;hSIMrGWRNO5?nk+Ui3@gx~Hj{T07b3oBE#IIp-qi;> z6DO{n5;>6@O+396K`9#cy&_Fko@P|hv>;9so|m7OiO*=|jK3#{LzE^H-z3u*4SG#V z0#kJYsd`kACIcUtV&7ZB7qP~3m4r_mUU#)4@RCKTxN3v%@1eKkJ;RWZT0 z(k282afx|_`t&xexQ}{ev zhQ5&18@E8LO>ZUMqL!)B@pxORFbJ6A;rTR-!1+$&B`2P5)zPQwR^j_`vPg;eW>^s?$_X4NNiLRyi7V?>6cv=lG-N3%r7&xi z!3ZcvpGn@ze4Mjna4;S!Rky%oL2J^GbB1PAhK9b%mbNlSuMxE}U9&3RNb!aGw2X22 zc{%GO1nSgFi;rFS@_^;_Obpub96risq;|6os?X2NN3!}71l4~k5YF6qsD@98g ztI4B`izpvtKPvrZy0kpl98*^h(wxjcqSa*PZ2q{y11MP03rhq=VCkl-0#0CWg z=VTC)eF_bq-}Axy*rjHaNdws@%fArvcd(bF8%ZHVOGV1c!>16lGBotjGFGBOz?z~0 zeR@`=^o>Bx$WcWjp$HNh7Lkvy<7sAT?wv|qf)6S;D~~>{b~8%ukXF)H(^!k6AAG(M z9S^svkUp7Ks9(piD#OR%@KwTe7ApqDXsS6eL@4?iASKmHp@Jg4DI;IRXQ26{8^y3@ zR1T{-&BV2%a@NWPHpyMds8`OE&tM;;#VZFK$NnNzdOd*?5EuYTa)>~|?&d*}Gl zvll*!T)I$y-`1mFrhPIa_nYEU{%<=nazgGLeK`Bcg!&J*U*6dJp%}-QKEoecx~_0; zVD+Np-o>72W#ylI`&RRsyjh1I`Z;ez#y4WF~Os6dhPbXjlaEc&NZRN zJ~8y0~E^}7?#`5`RFQ@G}r+SecWBH=oPWg35kFTOs#IqvL# z-lDKfPvO6w-lo6&^`!F@meW$WJg{^1k{_mR3_w`sL*e7YM}4&C+#`D^Ec2vr|NG)S zS6s!1C@k}*aLVG6=tYiQUsG7li^4Bu?tg06SG5-@Eayw%!s>SY zcdkzj{`BFxS_;eZQ#e*>oV@12l+P(FmxaPvTQ@Enk=)uuVYyrswrO^+KC$d^fx>bb zDSTl62ir~YeSf8}TwV%i4O`W$4*#q)5MjCO6#nbV!iyJPyY(pw%X*-&ZJ*h5aMW@e zg=L*k_@#>*g15Z-_h%_A>xaSzrfeONai{wQ3d_2paP8wSPoDZp$w-0!S!m@5DtbF$5YTM3-4pLawGlhpb zzkO=uuszijmUT|yF?W2o{r*uitg>uYOE#viwAofBln#v&T5U zCK|acRNnGx_tyIBkslC^TrQ$9E!#CaVSUQEj}ey3NHjB_3=Nu6x#wk~k;_Z*CV$(b zBL=HK`vhUR>=ZtD>~7OzTeAhCk@Y~~(2?J~tNXF(ODc=36QaLo@9x4!50u#{EbE8D z8r9OB-yd7@DW#QlMKWaPUw)&|aPB0PMb;b9H_vvvp8q(<41J!$vd*b2srw!A zehc3DndoKxQ}|wKETDEVdQi;bJj>Nr=-@^AE2Z!++rr+w^UU`%xBo3E;_CMgecai; zvhcg%b+h)reqqQiztPpt_v??pve^$M(%&c53wQqd;ehM=4p)BiX~@eLN6dP7!I-io z#m{{Fm&+$We{I$s@in*R)Ff3eV)T3E+)8N-D$2^kp1^369Gxs{~3%(G%!6WXz<$>a# zJfm*Z1!R_8S$Xut^?84L;+uC~j%&)T{iVUV<%_TQYtR4v?TZUiA6FgZCbb4c*e@J}?COYS_` z@W{Z#in2MAf86me_e+r}KYuaw&P&dMUJv+BTQmGG-|V{QsqbHz^2K8xESYmGv8JZv z^=q5XE_wEY1FF22RX=>R;B)uK&)1#)^r_G8u6y}VVaEKfw4r_OxFhwwzkU2!@S+pr zD*p0`yC8N|f^N*)0a1e&@@X&kfBT2Ek8BFHzc%X4DQ6S!{ZH$ATYii4ge#8y{efqP zyM7)0;Mbvd%=+Zu?d=86e69U#v+2J2U+x+4-udAT|Gf3<4Yj@O^Par4=FsU?Crc8y zzwlJsjio=ldG?O`9)D#%U1nr|MSsDkr|~EI9M^JV?)V>Oub#2)-k+xaIP=C6WAyU| zU77uP?F`;iuxa+uyR>HqC-}{Nz9KAg+g}dN7PfCXadft>ySBlAPGuPL`bzsxQ?D_8 zek?-%sf@xIDgJ&c5o21U^exr~M{69dN;SLms$DxJ7UoaO>eJ;r78Df;$O!0j>)!I2`nFk#LLP9)UB$ZH3zp zXNPmZ32>coA@_hDE)s4L+zL1&+y=NEa0lQVa2;?VqaicgGPw0{JK$V!iZOx8VQ`Uf zI=CFTO>q0+PQtaoabp9Op>R{+QsCCY?Sr$!wZOUIl;gl3P6w9*R|>ZS?p-(sTo+u( z_&{YiTqN8gxD2?paGT(E!MzJt59fk&!zm^pU%0VwQELb_I6(Mc_rE&$UmN&e8~9%v_`hod zzhXi`XF`QINYSsw5z~F+CutU?r5kdwotv<($f(cNBxw?s#cSupC1{pK>oi6Arowc6 z_dLQ~;yWiHUO3}OPs6roZUN&r`G3aG&p$vB*sHg)Pf%Y~zgyJ7{Ra#T8FcI5&>=%_ z8#es*J2WFk-WfLPuDiqU89ip~xbZmrnjA6Z-uv#4oH}j#jG41$N2RSy$HwX^Lss@< zIk|cH1%D|lGMZMeS-bA>haX9Oboq)u$NzP`xwxdX>R2}^AqeF*3 zuC~|I9y$8SvAX((<0npj`q}4=Uwrx1sjt8J*5N$e1w&mRU?=F1*!@q^rAKTjh zbMYtl&%a#i`1SIY&a2n1cl~z5BPo<-a}<>Qo9AFl3iO585YEqIyYT>Wvy3<>;1=g= zicIMSO=gz35i9Qc<`=F5FBw-*n4hjMDq@Ekg@vX9I$$Ugs~G#YIoyH?OT2SEIZcLs zbyhmt+D*&ID5TUJH>YrwCI=^38e@LGCMW;@tL*$kWC+f9pVXS#9G@87D&L)E2!5j*mJe3i&ZYK`nCJv2W6dVnjEqOiY zns)RVb$Uw;-ogh?_U1%+l86!YFlxd9V!j#A&vLgMqg2`1$Ke-yyfYTgURP4}@Zsrwx;Q(Nl#93U)j1CEvh~^_-XW45!})JI z_yF;G;H`vhY_Db9c41^Wq%{e;u%#O}<=oIp;8jTDPD@B`#m&9p@zgQYPCx5gYru$b zO7j(e%JMIjEoVfInQ67cCAl!dP-MY#?>Vy4;zWS*{=7s#YqLA<9ASdpW;fKDTbjz9 z9$hb%>z#JMW31M%*UBV8vyc-&Vv)2ZQFcykq$W@et-?g>P)?WW(#)`ODL$1j#+lWI zJuJ|kMi50|tL#L^j}`|J1nv)yQgeru{A4+j!z98(sAbLSCd-YWrR~taM`S}S#C}K` z*(r5%aVM3tq+E}ia*4~&6{IOj(De;p_sq}W%Z_^sX)g}T1?lv2^5gD>w^sC$X4-Qb zwH~GjOjw@?j&_=Lx}-n(ZsR(eXWV>%3MNny(7>hv?cdg03B+OZz_%`@^73zgDKX@e0rKsm$-|RQpaP<(rmxF^^EYl z7xnyoL93S)*zL}0vLuVJv+fqeZEZ8Fc48nzB6-qAeFj@O$>mc{(;A|i;5)QDJ!HA- zRXJyd1X{WQlSEwx3p&OSi6{)&PvxW$NU5}%HO>zXyj`|lLKvV$`zPHHmN6At$bD;% zQzj8qq}=)~%r3`9b(ErHr9r?_w9VjQA&$BYVhA_aZkpD~N5vLUgJ)os`=F$K)C(jDdZ}n0Yy`ZZusE75u{X+|KKQ zmZArihwA6)B1F6U1II2}C%Qec7?2mYuWgg#OW*>yz9p$YuE$${IeR_+=(w zMQW^q?iGzmuZs;}Da__#@rSAgXe>0+bbYt^xQm1}VNwkDvCCOA!0IxMe;*+nC@-RJzRFj))8ey4X(jM`K~EL`K~G3KB8>L zh_X+NDC5vy(;tW9nz9jeOpc&qas(ZdBj}hMLB}L?%=Zl+DO_TS6gY-f6wim}GzmSk z+7M-Xa>&4R_xW--yE(7MhSX_ljo$3Uvvy?|V-Z?qvDmX_mp0t+c={c{HDx2{*bW_g zz2$DTflkQfwQWbNhm5c_V~kjj?W{-NhEA5-wGMJ_&kaT65!aM96ner#$L#dHGln=d z>h>Y$5Nacco!wP@CPU7XRv3152+>Do%QVp5vZrO5PfX8DA2h8y++VnAO)h<_G`0#{ z0mdILjeQ8H06T$M;4lyYCx8{;G;jtu4_pK;0jt0jVEhr<0~KH=Fbf<8BH#qD0-OfU z0Ox^=z$IW6xB`rSoAy8j*a^%6hk*z<0jvP0fiu8);39AdSOu;CT4cs*qjL?Ru)R!Y9 z&*f=MOl;Vy)Hwa^MYoj-ALFEAFH;^U34NqQ!Lu^{XlVb}11^o~Sw`75Qz7uscFc*o zKoF&RMbi>^%ZNxWc`6AeZ}=i?QzRLEM%0w@1 zwvve~?AcT%T=2B|uPj_;Z~1KAc1t(9X(UJA{%Bbno@iObt8Rwb;GUDNx}^)&yXs~= ztKhD>*|H>p*AO)HY3rk|*>&bApc{u(UJ5LQ>Wr6#iP`y^b%h}c)Y*pn?^|!4 z0oZTVv{Q|jYUW?}uQ%knrPOu*z~9%K{{oBr9YxjcGjsDl)*Bz4T=hZQzVf@P>zVwK z47o})d)M6ZpMkPgr_(h%{+E>{ZNl*zt~tS{=Hu6Ha2@bGtv4un&9AP@YTS0nE4E(0 z!SEErL$#lUo&4oT!GCOnSqjrCY8u0$>bJZ(^*vXfg?#4~uYccFWC7lJ#j8JX6*inZ zFMj#7EABRrhpoJL=J5^2hIdzG@S6vpa9CLgb&gkl(p6*u)Om%a;I_L;gmsrJ1y1Lf zQ@e_{IsU(AO2(leWW@8DPk*Lg;Dqz*`%8wSv#?@etA%(UC?ThMg;ooz*&shWSjx6T zHG88yJ(u@po2`7dWH?Xj)r5Bdyq5J%?Y!@Ltz^yuxzJUe?sGzQ;d05`{YJ?w2grvs zn>m%=Rqe6u5cyv}ygP;6q2HlB$xfE$JBb~kpM)<{zZo-SKlzsI!zWzYq>ZE>`9z@@ zecV*JK7y-U8c|=~eT6zN*Yq1%`W1GBXA|e(v-i02Od|S`~4Dg817f%B8@qYruDe` zhN3==FpR4ulIFafF+J{Cz7wQ54&!RQq(N_`AL0HPoVUVN`?r*4X2dFlPxOab{|aUpG|gQx#9$~_Ne-kjf%jU%P>v#>Pxw7RoS9yD?Hh> zQ!q=mtWSR24^yDAg(sUerLk;QwUzy<{=}^QD5YV*{N#!Df)5pCylXANL+_BXLq2A6{$gtI6jJc$>i6 z^cHya0-oZt%HVAoR}U`vagT88$JMjQzQ>_Q1z8fFpbLm6qC?M=tsfclTdsXS%C&yW zSuVWIZ2HYlutqm=lO>N28%%*+MtC=SByvB6N4QpBK23r5hQA^Ac;^b&s^0b_&r@2Q tEP1?VxcAqpy649z%R+&_{KF95V?W_fL<?;d({|8Y7wmtv= literal 0 HcmV?d00001 diff --git a/local/bin/imsmap b/local/bin/imsmap new file mode 100755 index 0000000000000000000000000000000000000000..3c4114b654fc5a5d816e1a0f9905d3e1fab5ed97 GIT binary patch literal 38080 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 literal 0 HcmV?d00001 diff --git a/local/bin/julia b/local/bin/julia new file mode 100755 index 0000000000000000000000000000000000000000..df8b170d0272a15e5dea3bc783cb82d0a12f5440 GIT binary patch literal 45588 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 literal 0 HcmV?d00001 diff --git a/local/bin/laser b/local/bin/laser new file mode 100755 index 0000000000000000000000000000000000000000..eecbfb618e6ed679ed6c6f2bc979cbc444b3d404 GIT binary patch literal 37356 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 literal 0 HcmV?d00001 diff --git a/local/bin/lightning b/local/bin/lightning new file mode 100755 index 0000000000000000000000000000000000000000..c6b3d8678fd4d142af10f0d174ba3f1354af0005 GIT binary patch literal 39652 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 literal 0 HcmV?d00001 diff --git a/local/bin/lmorph b/local/bin/lmorph new file mode 100755 index 0000000000000000000000000000000000000000..5e9fe390f68ef6d23cce0ab8594d05fa328c2f75 GIT binary patch literal 35444 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 Q9>O=H7Tn3?Tf7PhEJ$yn$6e4TUe%mr=V@BMxr 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 D=+)k( literal 0 HcmV?d00001 diff --git a/local/bin/noseguy b/local/bin/noseguy new file mode 100755 index 0000000000000000000000000000000000000000..db86cf724d86837cc188bab827f846402b10bb4d GIT binary patch literal 51876 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 a!7O5Bt<3peV?`Wo*B^I%jfrb|2tcsS?gKP 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 literal 0 HcmV?d00001 diff --git a/local/bin/penrose b/local/bin/penrose new file mode 100755 index 0000000000000000000000000000000000000000..9be820ec8b866eb44049694b47259d072c71a345 GIT binary patch literal 49368 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

3-Mu5T@nw)8g}VJd;~{46 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 W&qZ}a(H)7QyZKciDpY1v-v0nJ$n$0Z literal 0 HcmV?d00001 diff --git a/local/bin/pipes b/local/bin/pipes new file mode 100755 index 0000000000000000000000000000000000000000..ac25396cb1c9b72821487c2d516a53c9ea7d9e37 GIT binary patch literal 109404 zcmc$H4`5T(+4pUmK!9KZ6fIh{YH_H@(BcGvQJ?{w)PpQu$qTIgtDxK(9aLL02g_THL~RqdogN50?h+(EJ9?CB?-2-d81wkH~M8MEUi=^|OtFzUh5Q`qDW` z8p!;JPlnU`gCwcG(79^@ZW=Y?!)siLBhZ9z+bLm8SWH3k8Ah`n)@ZVC7PekS2h2wn(K!91Rl!k zyLeo9D6k*m`39ax@#z2RbdTnKMRQkZ?roYo6Rs1_jT*ia?l3&x!;^<+I3E4qkKnl% zPcEKycpkyy!^3~8@Z2nXk~Cg(m%#nL=BG1X^Hbl-H2)m9lko)b6yuqM=Se(|;o-k5 zJi4B3hkqWP3Ou!V_-{6z)xsD5nE~%YJhy8>am|UR`G4uV0>rKVMgccnlt%AwqqOi0 zxVPZBO2c$434XmFWNKk432}+uy8zf{$KV-@XE2^?@m&1xZY^Ml=1zn=_2NVqVKeYZ zJULqUAk9S=6#uTrZ>r`mfIA(}0~)^AxgP;v(*o1repB;*9qv%ge-GSonqPNp@O(=L zU*IlBcvV8&Qux1&$AjnFTKERdy$-G)Poaiq!Mz&KT0CAYY%|;%JPtgI@$etVtF3sJ z;aQ32;(ydb(=7u`4QQxg=vhqv?2im4whQ~&m3Rz4R>xps@^NC^02B3}>DfN1I}N51 zxQzcQ9s@AjpO|f+)4u^B_X21B&|u1d%lJGz^;ZrsncxnS%wnADn68ew!=#U+4Dj-So^@y$JHRw3SuLM^e0~Cd9D{nEj`K_TodB+d%lupLJe!c7V?o`mMicdFxHL$5 z2JSa*Q|AQY=Yd zGl3^SzB)hS7?1LGekKFwB;Z-Zpx3SCF9hyM;MW0Mi+Dr}`ejUy`loAn4e&n1bLqkI zHvu<{iT9T+z`ZvaO=%*2khB%pBqiaO`ulNoH+-q6pU(fQz&(&hnMVH*@Copv>)Ttv zC8(cXpFaYxOwg}Wz%HcM>HQUWAJXgXb)NY_pX&nhI~e`Kl|b(*;0dTt2__oGX93R# zfA9)C5jYj~*V}Uj@Z$;P-wSL2z3p21g}}85@^%0>CCGOLa0%$^`nVccy4h&T0iSID z?*h*UKf1neBu4oh1swNV>C21#>(Ygr%g z#r9nQd;;>%z~o6>44jkD-VXyCKu_1F)l5IcXnI`8dywQ|`kUkW{v_~xq}S!O3pf+F zM5LFb7l92ZU)RSsfFB;Y4N9kYZLVM zFTlqq4KSS(>4!_*z^Bn3)mr%}(CgHM_Pi4K1mgE<@izmzP=CFDjRS6iJ~V0Z)0iHZ z<1FPh7q~V-|MG!%p+0*1Jpeor@+uMe2T9)oeirmq3|#_tCFoljkSJRj*>wDco@C!qcf z8onO5?ArMJdlPUg)*oEca(y!axEAH>oy$LyKXLYLq# z-&MJM<+3Ueob7PUC@&{JtE7eZu5>vnS59}8uaI2DD-r9S=PoX(T)rfyvUqjA>ya{t zw8F7sMfoa+w3M|0TP3VU<)W%bs+ORhjIMHk0hMuE2Q2i3t~^I^+4Ao=)D}i53uijZ%c~q3|7aod zgF=^;sYG+jOB?_*AsxZjLUMBN%H^)*f)1kQmKT@YTjE&hTJCy86bWrww8-VGTm(U^ zEJv9+4oJHE5v|Ncj*?wclw!yM8+sfjH(4czDp(eS-4?AYMD=WbY;?!<@gmrZAhgOVsED+* zf^}Ld0++X_BDJRa zE0>ld&YfT3bX1~h=&n_+V$nLf@~)DWmX)Iw7tNmg^%>LWF8cbcS^2j4i{?+CG1s;T zd7)&EN~jX52u((}(o}h&tFRbdsIa)q?GS_1$|aBEA=PpJ8dV$@xYkKtuyGaSp7uap)}=ddS&XJSM|$I6E`svQdq zVYpbiRC?$;j>>XrY4JmBDrgCtX(ijKN)tZ^6%3vlb2*L*mlGl{M+z-S6aXeTE~-r+ zEu80eR6a7F1Jtsz`IW^htIC8TEy{V|{^_~*&P1rt3ZcG`TNy^v3IxV#f>97dNxV^~ zyC9K=+%5=GbTJH+OKq#zOA;z6RiVo))&SX z=m|g+oft@>&!v0rxI_0r9P}m{R;$XFJnUd7tgDIPODZ3!xFoS|g;m#UMi?%+PdCEA zL3@VLfORm|l>@USX+B-d;0x*A3HvGC<*=#Hg)yjvt{rv&x-dAF(ftzEMRdnveMJ|> z*EMv1fc-ID7;CEOV&bo*djr-|bYa+foGun%b#!5n+DaFOj_q_e!DdVshL&A)S77}^ zcO2HKbZwIK0^R#1X)j#|)*E!O9;&AcL(+b_FjzIvoq_cQ-LJq7Ko`c%<8*VeE}`p% zJm~r)DM$=ai1j927`)Ty!eEq6ccLU^(9OeolkV-X9n!rS%Xzvm z!i}d3BjNgdi#`_qL%ay#8Rv_IXEXn(px(f)L2qy6btqy6b(!M&F*7OMN`TG9S=Z$bOh{SMln zE(~N%bZZ}&Hj2K!Zbyf&mL7YvzSYQ|N9Adk` zYl!W{*#fU6UPwG%;A-N<#2EtD60<^`R)IGWR}f1AKTZtolRCREAYgPIaW!#=z*~to z5w{Awow$y;LEs(4+lluIyo-1j@h*X%CEi0^C-5HPy~Nc5zd&41Tp{pY;s)Zy0`DVk zA+`%#PuxnJE%1KgAn|yC8;CoIGX!oTR*0i7N!|Ce9{aEN~C; z9Adk`y~H$kc4iCQN4$`DyucE)+_{)ILtq23lh`V-iMWDT64*?xnA_9#7mryjb7~ z#4W^jfhQ8T5@!oMg*Zq&Uf^uv4&n@fbBGmUtH5)JyNM-%=Mwi4cb{kd?Zn)+cXkLo zpV&m)D)2&LD{+Is4-%&l?-h74aR%`&flG+T5Z4LpBpy#(EpQp}MB)m8D~Pj+7Ypnn zo$<*3W4_$HxMrt zcpq^Kv0dPL;#T5pf%g*!iN_1vK-@u`A#fA1LTnYdg}9qo68JcAFLC$hqW=?1nD#n5 z1U^A*B5oBpNNgo;5V)NJchVVV1;-*akao*#55;&RtVfpoK3t~ z;2z>R#CBkeQ?Y-gIE9zH^6FDz$MH3|jLI}5sLxcOx4~dvt7whQPpdhOC~$ zm`T-t1#(wmK1W*Vn>B|&s!fst-qw$!(Lja4yT%~7%<_O}tM`b(`&G%^6L9o?^IP(t ziw*}|H%o#2Sfxr5^2f6O0@>xFKBmyg*CAdmFv&J^spPEwC2f4~~~l;NP_{KfOne^n%l<2N;&jCgNTX4u#PYVEeJP*GpV))zJ^fWgpv9o46e zu9|RA`RHsk%38`%A+HEw(D}l~Bq?7x15j!$wT5gaZo&VqpCax zWeYJ$ld=oMzduX^y_zo0j0+0$AthOo>uP}lhP;4bgZh7C$H0_B^2nBZji$hq4OySn z6}A~NpO|X%tSdywG)<@}-Ilf&$y=x)cq~*@-}WL) zYd;nO*w2s`m}ak*XBYC2(zE>}KA5!t3*ml{Kaet?$)vnwnJTKUlbm3{YD>n&Gy8GN5ixEKlluF94kW7BG>*q<5U3rOA z>d~*9NjNWX@?c+!S48}ihzHa1qbCRx5)pU}+!TY(<^5_s07|jgq`Z>+YYfoKZ zAFM09gQ)c}wbMP(t@cB7IrOdTbvEC`(n)&i?1iv#KIrA0G;_X+%n)?%|J2p;|$30l>0W+|x4-qVn_U3rXbUNlf_6!9G*zEp6M=AC++*Oe^3w@`iA z%TZ(M91Jh+QHlZFyzYd5Pm;^_`X+cHUnSd98HV`NIf!R4;zz$ehw;~mc!nXqiSZ0Z zyipL!i!6jZm0uvDpUk}Hl3cf}ALx6>H6k*n&U-G|bz3A`ZqVA#sgjOkCyTlwj#*y9 zNViLf1gk%-*_Fw$@?Z^P8|Sr&)ri(6)n_QRb|IDd$g4^raqPTbP|Q$A&Ln_(2d1e6j9)O-M=AopGdi zuL$T9V!M_By&wX*Tb_R&+N_)tBr~51)FfAuFq@ zfx5x{hHxZnY(1@FNedsZxnr{R@k{8_7=5wrx3#P5ZGS;9V8)XBu|VnuIT!vXI63DA z)!8|HlU&g5FX)wXP4c}4e{PTLm7d4AFi$S%%~N(lz}Txfd2FEU62PELgc~wuW5-h1h&e)IgH8mgjnWy}a z+YB+*B=#~z&FFpO1<;9Fd@$8Z$}9`1u$A^xp9SZcccrG^M@k%y|bpG(EQPY$|pFsDDb+$N*Nv`4Y zOZ(uN^wM$sS^|F~lNUY$lTWhac@M>y%=@QI%7V#8FgZ_6_a8F(BNVAJc`ca43?LWu zLDnda?;&o>8Sq${&%WG)XkcKp6I+5fQ75 zJ}lczcIEFd?UPP15_Mh=pzGr-zmP!G+X_1J8+%yo{o3#~0z2=#h)o*~)&076YKu^n z+1@uOxg^VG7}+J|Io!3CyKDX;Cc7iAl^_g*g8Yg1!ie>21P4`Alir9^FIe0EYh>2t zD-ZQ2ai>l~xfc;)hVk1vrp0u;z<*A9wF#Ai+Ug{YHOGzs$=oB z04iVV{2$l7CPj2iy^0f*^;0h|rAc>jzp-w_0wJjfFy3^&I9Q!F7AW_K`O47wG(zO4 z{89^>=z_tWD!)X1xL-c}=29NBe(xGj!)U-VM6NE%FeS2Rrn6M^TCAGq{cOUMk z;;DGWVCs0)V5)l^k4DxTO>s?LKgt_Tw$v`B!K|1?#_dbqsKHXZY#_>u8ZEVFaH7{a zjfLv#k^g%Ug^de2aCP<{xI)J+9hgov_8Xd>LvM+#Yaq7?GdrKc5Pp%oP`~eL^%Dl{ z8q=lqJBwHTktCM? zzfC@k|FL|0f9}7bhJ20=xL7{_ZT$V`?f2)?m$Y99CgqFU5Atu0%l{B-aIyTCY3*0b z8|s}uMw0(O^6$UBF`|B$MLI42Px$$Fhu~VIi6qFxeqnJ1v zJUX+p4ZZPyke~je)4)skQ8M3;b;!;Lc;hhp-^bsnLl=z@|7vOHh_fTst&rHyFX?~( zjr@J^AM*E`j+nRvfBR-!hCeYrCyWn2VGa6?5180yLyLvZo}xOhN0NVge9-ju(7)E# z|5*NielMYZowtBB%-8>>y#F13{!@7uB=X}FhdGs}5;|4qB(V73$6sRaz07QXasPfb zkrkD@6JZXp>7BpCNTiQX|AYMX@9$S##NVScl?mVvoT~OLcqYtLZV)Vw^#jPU-SoDf({{VR4gEGzjbvL_il|@caBNpxfqbVrgC7U`r40R6 zF6d4XTx(m?Q}3VpF&3lYHl+-P~F(eEX|De=(Q zp3{S50mpIeC_xug{Jd5*?!p*WWc^q6UBd={TE4%+P$;Yo^Fi2|giC13H^`2I5L%Uu z(ebILUYmv;@KaA|CxDvR)FU&elx;^Mh4t|^O>pvsU*#%*m{msB&d4*f(FVeXr@Dpe z`R{nzTZ+uG$0QH@=jWRfHh`mUn!Nt2EkXGcvFH)vNBIzGaD3}LF^4Zv@CZlB25ari zdYWP4SVx4lFf8?6gr&sN?bEXN#Ih$b`%We`FsaBc!u$-&jAa*LZY}!+2Imh!&MKzL zA|FR@$9C=}n8x57`tA}*afeZvOkabj(3Sc*)xeVo zYhqY3DFhW_r(OtlN{-)@*Bc0yf)te@v1+LDJ7{myZO#UyT6HVV>6JoQZ02 z2Jx*3Z-Zg-p>_XNV{0d+8e1?%@L*{=>aej4b+Id1s7BZrJcy&_jkKSseLM7h`mvJ6 zF+ZckxxTHsFUdU|C;bS)O7LkWi5TQ)IM}?Ah86y6-biBy|HTaZe+76=Nx{2`4Uo}R zQSRhp>yqVTIH?)1?yoq)X{(#`xCnRS2xn)+Hw(OQuRxh#)9 z1FG0`XB@`6yLjw)7UQYFQ;nw%&n`THwO;~HC%}_1;#b7+Lg-v%aU2VyzCDiDFg`nu zY2=TLkK^sc8F5U*Z^RnMJo=EM%Cxa)uzp7>*JpO{NG039k;A@n9TEsr(ZMuS>8Z2P z8UF9nHm4ZBIH#@EzfsHqf<(ZOcUju{5brai8PJfCDP+V4Z!>>G~O3btA8Z z+LfM}B-0LtoyVV#2Zu#)2ZQ(jAs&201fOPb>SyubUx{D^!5q%YQU=7xZxb+%3qz84q42f_oTzVt+i?E`obC^7CJd$9zS^^obZWTOAu{M%3GzvTB6#*e&`| zNeY5t6`kRKk~Tc~`;Y6%2CX*vg&{XGxY^r;IP6L#dE-|6dV2@0zoyxH9D%U^Ns+rQ znvbV)FjzNAO+kNTM8Ey4Uu2C}MJ z!@^@oX_8$T^#=x;WG|aq4>ah3Y-m03Z(v5GWHal5C-p$KupamuJ&^6I2kzAa*}8h* zkMuyctsb~h4`j3If!|gGYmTtD%!Y+w^9Xc2aY|!XN)Xv>6q2B5d8{aIW5h1A!4p6K z@t7t}Jq{UJYJZK?@@j)T+w@E;0gSOhQ3LEsBa-_C+k%Trmx-ufVLqnvsVBgs8%$5?oYEm^GtjB92{l5#C$?fFh-SH7o4aT#IoPR;omi#ONJ^iJ6+{O-TALvKT&`6 zd~tUR4&&|4;dfw-GzOnFQJw{T;lrWg9{4dJLaIYcqsr^Q$6{9O`kgn$lDm;4t07*1 zhzEVSz%1ulvl_hjjBpQ_^fjwHDO+5`(Bo^mPNNs1S1Q-T(yf$UQ1`&Q1?zIId0qg= zcDpHO`)(n?-A#Cj*dFlhKuWuE9g3B^P}M+S7ijnc zV+EyTB*<6N-)5QVUXKaKOK+eq&Au^+#xhd^`|`I92fvA&^)O3Ha!cPH>C>Oa?jHFv zkx*8tIg4YWycHDXsbn0=Q$0;`r8yn3$f2S*(`8_}^Q_NaH;~nv#1I%bsqq zJGaMDyem?eoxhHSG$Mo=Xqt2_1#H>;2QoR5VwMj>W#tLU-nGf5lsLnDVd2gO`9j}o z7)YX@{8DZ_+v+{QP%IS!YX)K&BpO!Re+AYg$wC?_&EDSo*QPrU$I7;$?6{=BL(&0? zt!BFZH6V$S5CYq;~BSX>0^33@ZNN^Q9foI3vyi$1PK%R=}Q zFq%h>L!H(8I?f=Ib>K&tJ`ArJ`S`+y8hD0*V-ffaZ>^}xB-e0OlAjP$qoJA-%Sj%? zP3xNU<%l0>H!O9$Ts&;^g^P*b40cI8Q|IOJfVa*$oimyK9^zOJxu zAWS~6R^&+SJOO$b>(uj2`CAK}y<|D*PNOMbc?&bD-#1aDG%xk8%aGgymNw7ISeOiO zqY7^9NRk6gGU>iCmf8rIE0yNuE5pT-2Xmg*OA1+N?*a`v2ZO$IBz~0FpxAz2x+o(f z7N5cR+Zg{8;!AP;@1}bwC8nF_l;B_BT#8@ItFvyjJ6}h04oxzqJ_jI%&00 z)l!(ONvcqJ4)KM`7B!XgZt_2y{NF21qtnqccVhD4xH2Z*6xmGPyCBvy6~O5Gk()IA z`9if=n>@Z$Dpc%9j}4fQqln$vdIuRv7c|nU4^Y=6_gyiW#$|4U+Qpf;1{q=;Tqkm8 zdJj;e(Czb`4H(*Z^;B<3vq)h@WwfRpf&iEZqzsI0de}^iDj2<=;|oX$>i{u+^FDj^ z8f&s^m_2XzgP3Nbtzra+J-yku7?>K4nG-j@k>1-ihxQAspze{shT9*<YRRzVO3wOB&aI!P z{P?#b*!P)xf?NdlqDW@PegXY9&$)m~A?CvENQT`;V@r%3wf_~$xyR=%P>vqOOksOh z3KYDX=ez@ZE9I;xF16b8uH?R1M)mV2r zuFA!9;~LAb0K+&5sbOghdy-)$J5o(&z89Z_AA^7ul7cvba_zylVGeG_*f?*FHF#W*FqjvvJd-RmQfr_!z5i zE*;06ma+uMzp)MlLJ6@XAFjL)@${Sj=oo3-)X;>!5WPPN|st>TZ`XrIFdY0eu=TK zp9BxDp_57SxxTE1Pk-tfYDlo6gb-u=aB_Q_->HOIaUeeoE3=L+P$9k0hWzFfhLyTsr>i|1**=i zdH#ZWhqMv6j?#Neb=B~+Pnx<1uLqoc8`D)_{$L!T9M4m> z{)VDhx;qa^ z(gT&7+1gRr$7sK=3`8|5!b2*;Ln>N+VZYoWNMJg2rz#(UgNx;>(Q_h`ZWXV66qRcB zEkqDIL$mKe_;WY{{RaDDX%A0a@}2;6c8ob>0#CFFzUQumu;Ku zLXJyr;j$tlvRqSqO~1UJG|6@AzskIHw3>NrT|!FPlfK}xMJ>FQsWVl+(P1o`%h9N% z=puKb3VzWXSx3S7qyQORcLUBSWDzQ>l}o+apSsC=*gRcLu>J$Jjr_h|&{3Pt@9Tp< z;OoY(z0_PN>R1K!_1li)&qTI@ z8dA%Up(3Qi>1W0#7$QTZ{I=6-$PXCu2-1WObO_e?yU*_(cZSi(sXHhJB2ATEuiGWO#$YkBZ zt}tOaDffE+E6Fe3R>XS4*Wek3^$a8>MXrqN-}`?zt{cd3c$6?Ut*UIVLeph^hF#5d zhuDTe)F`l%!$iL9$%y_5D>DDi6AZ+-d4Qe;vL`e8Cv1v%3h{XZ1%MScN_7pgD+SoY za40QI_*KSRwHhZ)>?`!W+)m2ZFTsL714o!b-;A5@ThYoJCZLdBzYPF%-wmsu9+xAT< z!szwh5u8T2>k5@;4hX?ldv-`Jd!S&)o#?0M9y^>kn{TaNJM@Pct}C&q(hOFd<3;Eo zclsr%kK_#fp+tJ_S3plbbntf&wYaY=cdOf`n-9LtAZ|?bpb-cE$RH@W9^^KOZBOKZ zI*>SdQKW17!BY$p_CSs5xPzw|#C4fY^%{(i5ZPVai55El3(@LM^a@m(X4YC=%BtZ? z8!v^tO`JQqX@|l57yn?pQPgdGzbCSwzrF=*=V5H`vpY=_Xg?ZukP;P(iP6vx)go*` zlv?)p_EW#c;un;La$3(eIO(H*`Gnevn7X0+uomqmP8fe`m z{7jDVlPvhz@dgI7Gde$;fx@=lfTK%$dH*u}2z@lswv2bx`eFjI)b2t9z`7Y*5YoCC zn4fZC^1G`>)IF9wCBtQyGRU2RRp{3yzq|TOz}(diq-Kt)CVH)wYdi5E5BwsxB1}r5iRy8 zs#4y9@-J(OoDlg^|Mvc(gcAb}MOUaq`>oI?E94a@`ZS-_4S0GN2!+`V7KDW$j7H#D zX)i9Rz6JT^7cOw_(<2*1WGa`X6B*H@NBk@vaeaQF^KCtRiwLI%x<@qIdO;7H+CDmw zDvaIve7)H0i zQmP&4UJOR{7zm@0aTm1@dQxh3Al1%ebiB-LkfF+kY;nxLA;pGoQk?GBOlTiyAZ%?m zv+SmM=nb4@C-!%}qT2WX8)UxnB}`p%cfPU&EMztKK3khi)06(Oi;Mem>= zD(HUfkm2BzQLByBhcY$|n-0U4TS1a6`O|~5A;q}O$~{!bvGZ-tBADAhJ@|FTb9`2} z(L?J|+i2&nWAXF*#k)oz%L5GJmS4>>xE_O4w3D~n5m|C+`sMwC+=J`;nErk>{Ypm0 z>}=rgJR|RjmGA0b*igK5naW7f?NHu&#&d73^UqB}=g0U_>nAgwHZeV(6Hn*cvG{HM z;zj*_+%E|HqCBbdY5btPpI=-aXCbkBRLgt$;&{q7Qlc#rJm(h#+sb6_x`~^Lo*Fh5c zLQvly^j>gZgH=_5H4o|X6n^vFZ^Kg4+{xEZ>b$-Ga8DL78+bIr7+7#DzIPGHjfti9 zD12Jq{{&2Q-Uy6}$LRODzsrv78itqESio>l!K z79c_`I~P8!>?^*4vVRK6_8$+tz2_~ypRu8IDX8__ibj`P0@MG2nH^*0s$qCB-DUQE zp6tTfSac|I=ek+kk|b~Zn7NvEePRlWkLCojsR@vOp)Yb%IZ(x(^$P5tg3Cb zVITXlxzmS8RUf>)=OAw^D1<=9CDhx!L~I0$7^xAuAA};)`mHzBeEiZsmn;n~3wVj# zlF%O9Ova|yhhv=dzLYRa$^e*66UNF|dtyA|)-}NAniBwv`LmNFETCY@phs%sJlekt!i5S#RRoc zEn8}s)>x-JV?R*kNun zywcc_BImZsb4QtJLWggDl6g`=%X%}e7Uv{oOv)LR0UpnK509BW$#Z=DTa(-;)>)B{ zNz)s(^-5M7;5_9PmGu;SWhmg-ug~bJK0!WU*Tz@Av+RFS z;lZohjJ5c1eOQ#!?8@=Il#96QA|~rg)^q*ok5cL9D+Z9{X`J2)C?!dhf@>e{0g4g+ zI(Z>Jvi0y~3lQ=b^6pQce`W;y=PS>m(ihR+jUe@?Z-DX~{Gg8|!jOMTUu{XOHtH~y z2#qzao`dV4P2;Wi`Se_p(-yo`Q4g=Q48tVQ;VWLbkCT|a!JE-%c$eT^3{r{Hn@6Zhva#G?Z(F!&2v zvp&OFk5q;>qtta->a>SC8S+TEEh&o!?<3GQE~P!y;w9bM|Aut=C`B$2~9a zCh$L{crr#=^{aA_*KPwYW62{W{+fLyIK56WZ=>T^QT8)T;O+ei%(6y$(MEXXTx9T` z6QRt@P`NQ-K#0qW`#Wq?d`I1L)ysRmb|wEF9Ae)HQNZYfEl6rL_9S@WMEt%Z=k^5* zez7UR_2b5rR?ETPCIr+34ATQH=OXvhL?HvE@*)e{%;kTrVB#&ZD6J$ z-oplb+UhIoT6Z)1!Ml+iaysiD$+`t*q~e;iTDkcA9^Y@UmXdUTHh(*!e^cM5Frj{7 zn>lPtmE9RI`-RQ~-{HsVZ0-T!lc6)AW7-{eH@~)bCZuSwyz*{9g2v$6BDIP`p$0VH z8%|UUSJT7B@gMU$BI276Ay1!N(D#ZNpS}pK=*1Ty+EOzg2(9RwcQTWoi~yn2p~HCT zr73tU7zs7O2lv!lq2s4M3LOm|gZ!=GP^2QUzk5GVat{dyBlqe1%g>X6Ly<`_oFd}& zZJzgYgNWBLvR;=+5AOsX3muJ^_3@B6Y@CQXh%cw10=7OFh;3>GOz%y}{03_v7o{)t zkHBXlz9_*`|COi?VvG7-HTz*xX8mK?m-?>~_89egsopkp@h@Ba;+rI@o2I$<$G^`+ zdsc3$T!bqN>6TY*rm*qECkdb8K#)21y^YW@K&$pTQm8R>IP}}sse!>0u{InU4xv>K zg$})rnNNb`Rb^oF4uS$SzK+F#6#A{MBUB2|!N-)&ggZ$jr@ANGePuW({tH22&P3cX zc{T)lFqFHmLJ7xDeGvNXsm~+R6UKiG`0i`M;m|R>|MYR#*p7Ncu1|;$w}pL+*a9eo$T)O8}7$xhqp0##^gV(?Zn+0gcZUJ zg$D-Rp})W&fdC~HWG-`_2R#tuOR78!YpRo2C^xe~Bzy{Ep090Pu6*dWBa;tf=@iUg zpbmgE%+YLuaZx$=JcrkG^eYa?fhj*u`84vI_l!w&UE?q&pIH zP1IMc|8l3ugYcr9?3p4DghhonXt8a}oj6Y!`!g0{_Ik1^QwArjD zS7f%?l=ja0gNBQ^MOxF{I5jc<3PqZx}@d7)WZ_Z`_ivDtQ6r`Bs&?g8Y*28L z;yq&aHkK$0S8vOI` zz-`4OlOL}tf!a(;207QZdObPV7wq8w4RKrU#3qNU;0Mt`#RkXZ!;VFl&l*p!au{ZEed>}hRDpyC?4+-uF4j!)G_V$ndy-azH;@nYgd15U?lptX_Zai zSUVVR3Zg&MbghB)h+VQEQy%W$wjbY|6sF1%m>QdT14ZgQ2>TV*kgK2p)?|07Trf6I z_KaCTJ3%IVxb|6)F3-R+b_N!c_@d2hcxS^~kSboA@TAMLag%f)0@AeiC@|g#Y({n{ zN(m&_`2b4M6+^eTc&vBuc+YwV*x=C0o@HJ4VAwdO7vtd>%(rmmXyCpixe*`KvC5y2 zvf;98J@dU_%c(}xK5RJFo_UfW)DSus?$BnJY}eFqQ0>T}qiqMC zg>2gnY{##1t2lKwwY^Bx_9A0K$0EZnsz0Wttzjq5&`uqaPk~3vmQpNSF+-!)!IPp8 zOD+EpoGOeR>8wzj zjol$GSGiWC_cg4uX(G0toWS)_@F-em57ZhOrONu`K9Ll`Y0#IL)Z@XMU``ZrTK{x7 z2=z@I+6yxBlzF>($GicIQLTB?-Atiw{s{&*Dif6o`r|*a4@m+ulhl?M8ns0hfwv88 z_SGYjQoWF~`&j8Jr9-|H%NU%G=1^$>fBE%D`YF3?Hi`UAdEkAD~+v$+7gG zZ`uSuq7j9t3ewvRC$)LzaaE|Ew06ULn#QVayp0WsRqVES8*?qo2}rcD-5=PC6slgg z9e5mmWh+c*n3bZUJPew$NaAfYM}_ott!G;KfRN07RWe%!Lwup5ULUJyp!!(0RKa4; zt|@P$z|gFdu39(Pe-*CyZN3>xHlE5`YSV>ptUf*RtAzhN*c=50>)i<)4j z%EU|+E>uRaWHN#=kwc_bs2PQJu0SE6qtUl)=9gaN+zc^4CHZ|#qM{jMit@D(aF+5N zhc6%^F_fz0RN*UEL9?OFs+=)n-7Je_m>s|xXLD9#{j;5ahb|_pFEM{5aCQddF@Hsd z#`-_SUUPt*U(9G$Squc2)H-Q$#QY@UO4ePaM|>7pm$<)B_^r7gX8fR`tM&b9|{hV*9}xTnBx~5qPm!`MHJ@7!#D&BJhv9L&@39U`ib@6 z6i$9ND_27vTuPWP7cInsfFuff{khlzrNRs$+tOf_kZogNA&_ljIr-YAa3NvCvJh8X z(*3q3*_PqAwaB*duo23(2{0eZwjAD5wPCUj!kjD@%*_kfnqbxB`)xh;(iG8*G{{$C z8VWe-H3oJ41Ap9#^PQ=pRB`TbEzHlO^7P|LBmTaxYI`5B69*}`2WAYO+_LWGy!tta zfO*td|5bSGdh&Z?$^WziI#nb-R?nSrH2Syc9H!KNUBI7C=l2Yrdg|yj5tgu)$P)kF zokleh>j%C(PZ7G)mD{2%^w7lnr>l9EuNwe3AnQSM?S~hP( zmsK7{sRz0F7d8oXcvlJ$D0gS^D*(Trm#1Fr$7gdTqv_P=?IRzA8{2$hL88raO2%b# zm3%?2c4HZ0FwJu+#3u_jixa>6q^zTpwvj(qO5i>$6kJFYYB;HmuA!qR_XjvRpL+i? zY#7%fZGvrMM0@9{_b;;FWAEE=3Ukt1oR=|=JS!$A?3q72g?%Z)$qn|oM=!Gy8lkU* zlyNsezPK2gQWp-jU(0&v^03rCkHJ1NSZ@}LKSE8~)mbpSlR6XjQA-fS!ooWVW=>KY zWy{0J-X_{t&4`_u5R|skvDDtf$wUy~hPxJJ$D(dPl=pzpTvvwJ&mN$bEl|GS$#Ica z+6Q5xZpJc|?JblVSLuaPC(X!%HKH&e)E|>e>Vm*FvX>XwMp40`-1Fp@**4hUSg~ow zW_hicC&!3hVpY`{>h8|qADsAs*OMu^#-SjMr^K>eCYyz_UR;`dRi5&DkXA#`75!HR zp6fz@HlSdx5&x>~*{bJ(xIHC}owo>{(!F6vQcA=y7mf!&zek-4?RLEF{1=Z5=u z$^s=_(Ir2inH^RtZ=N+;UHeVjjs&qd@`|LzDbH${L$ce9NcteFLnt1*Vh@ zlsOW4Ct<+bE*3jolIyB`{B3~0=rS4vdd(c~@DlqZPoHHoFA~V^RPKUPkK~LRJdh%= z)P5f+lwU)sU(-gekJ*^J7%+>OVTO)3X4tshh)&Yje%CIzZJu^zH4|#B-Y?;vgoJ_n zP4fbU1M&j*8|JCY$+i{kss~?w#eDY>xz31P98mY`$~C0TDS%Ai+Wk_zP=#&eQvckm z4ax;*!xuyjP~QLINZK=CvBEiApJmI(?B$q`EVX%%4%@*}yA8Eg+rm=or$4uEdLT6b zpOmNU*v8R3klQy8s(@p0SfZ2(e??ePA5Yxc*4>&FoqXPtnbn{fF}OY~I4-C1a+g0f z$=hJ|+KwmBo_v0-Qm9T z+iYo*o7X1ahHaZCIi(qfD_Elgslt-QZ%X3?&M*Sk8t_5}P|gSgGv^F}V+F#>31~3R z8ivS4J^mDE0VrclJZtjVwLign3|+g(%+ugJ#r1u*DQ>NN7aomS(cndW`O2pmoU+XM z%2%J{I!(VEC+e53_HVooI1f3o8WfG|9)X)Y-+_uHu4m=%8ssXIoR2esE~hktTGySY z+=^^GxrC72xiaprD4XgqVtxiXlZv`LUk;#p_=wj)Uc_iN(CyXSKDz8q|Ah=lK5O!) zYyYHt2cYvTrcSeWcRk9+N>5hQ4x_MT61k3cyYOvx6|*GK0KxIdGmm>8~F zK-7*IsD%K)?f~*|#6Y)KbNlEPoX%77RUYu-yX3mEG+8;k1ygx}R(+LB=^*7rhE9u> zhw}{O7=ymd^`yoxZ@4`wTcPE67maSOY=_Q6!B9*eQlqN(d2L z3&guM^3ZDd=HYy~DV-{iAx`3uuI7D|wBDbKb0m{?Iu|pmi@*DX& z2$twaf>Ney`){%D0g`UWI>)AA@r*smH{1DL>orrl>A1m7iT-z|Vab z@v}P4kKm;OuN$UjMGJ*|^8Fq~G@-?J6K6L{*{V0={L&QXJ_GnV#FoR=TKhcI*^I{H zAJ+sonmW`WT|LwB)(^#k0a#qbHQDp#DQ#ExOWVI?EX zM0h+$?1`nshC5kt<=-)gUEiGURClD*DQ;#7=?jc=rkA(2Q9T9!^GRK zPOfo~&i*fy&Vf<=q(h$L5?FO(BBz!|kAO{ls*K!rHsXgpM5Gw6%A&GRpfM_1J%@~W zaQA=5(xH-hso(Z=XvNcQ_+wcs5VjqYMw_j#y~qmA-49?A<;S!rI!+B|PvQbaj(X32 zTHWp`fiRDZ!f zPHOui3s`SVCIzOmL5@slLQeo2?xMXkPP+Fso=L@DSpXC6L2ruEO?7oOXIMD6Kp82& zlMD8qJq1n*k#$Bas~8tsF@LbRMj-8Uh76s9`XMdI6B=1v`i&HJJ3>5r!$mEK3bv?e z!$s)ZEx{HltT703?YZ^s#tz-1=$>xf)2n+VQePwA=O|str@ItsZRktNviM`hy@Zt^T%DUBFmDqJgkq>=q)zR05fH-!7WS z)}7++_Pckq;jaR+YAx;8+QA6KV)5RMVOE4J)Iv5UF~r!SR^lWW$+haasD8**H3*-2 zg*P&=4o5=pwA)&~K>1_cLUwQem&5aQ&_Dd4KKuq9C%7^{V)<1;-))C5hDW|!R|lc^ z-F@vt8^~HrOhfAd!vzqWnzsRY;a3x|_@Y+)1|6;8qFtN`)bvGlA=`;yZfm=v4wVz( zBpWWO3)}Xz=k5~Wd*MeKv>>|hVz8k(g~!pt7Ih%|UJe`$azT@v z+ki2-9$yXK5AC#L_z*2yul)QmY#q?CPAfl#uNeaXEEQp6hLC5y-eIc{2jaNCpsZmA zllSu*-IEqjQtEu*(%usrP*=|x6CH>Xn1ZhFYsj(SyA!_CbbycfVZe48sQiTtQmL_Y{ zA-Ux}@j^_PcuBafP8<=dW4cY5$EeAOLM3#WL{O82K}@XovJoGrZxU6G7|@ys-2}F& z>>K&E0z%lAd%4;jT0vnOo&4p9&@BS1Mc^7eP$7-nZgFqJqz?(fFm7`=I@(tRadRVV z>kc+Bx7v7AwHAc6+Yqma;Um~iRcmN>x3puKkPG#-hKsDCG`0U&wWYK=yT#Yl5Jz1B zHnsR7PBvDw=-(%rz!=_Lii3S64Rl1 zsSEAy-f%E+sj?I4vX0^d*tjLr`DhMlgE7=rwLDB)X;VYS9pFVBqryc>WD3d*8MlkD1`M(c8-p;Ug-+MwZ~wAyDv?z3 zwjU55LBKE0Ww2pRVC-h`CpXVw5vK0Vuk}W6a1SdT?rZ^RY*l+Va!+YiI^g;zLLs!S zA@nf=jTK)(*MoQd@k5Mc7^TOdvEp&=p@d>jX|v+{xLilJqXcTKFNl0-ep?@8>T7^h z{kf<8xgD-+)TvhA!*BzN?~h}jjca86sb33-g}$1y5eF(z6sQ4G-gimcDDCbJ9GR-K zxUEOX0%TQLV|5Vc%yor$MT8pC&AMSLd>TCCjR_bh(4)Dr;CfeIitZmuDXRNm^e3U< zqHk(7b$!&2YgZczLwpEp>7Pr`4ENu|;@&A_+fT6SU)ky>4EKG4aF;5=s=KgMHW<0E z#}-|g0?o$)N|cWXGb6|-mikIYLY&Sc(wGv`?CxeI)lIQHl0|Tf@SZtVxx}JZJstWh z>+o?xcm6-&-{`c)_+JZI$M`ooGZJ`H7AM5T_%}M!64G3r|Leby|E|mM@9i4Tk*M%Z zjxw?OiXq5~bIYtK6ql<&PoLk@>-Y5dJs5O??mN_;g*+K93?Ds^oftk6dgPloBK9C! zL5hsNL^m%tF2y@5z8my_7u|3?x}p9BQj8%uqHI>jkPggf*cniyBtJ-c~qf=ca?j);m z4<9kVJ_j{OX>GgpROjpSO}h824HTtn*T7JR_l)7}DeqJ#KAM-}&W07xbyLcx@`bnm zb{22VqgX>I8c7aaI4i8aE}TY++Jw$)(WcZd&4j z3XNP5qw+gYMpZ8&nwUf3O+6$Lf0-o-d)d6q(6<1S zMK8>!1~cs!BPHR?&&xa2x5!S#(lmm;wL<$G@DtaUPA(xsi1(O82UF>!5 z9+WCfR4t92sW7{OM$PB^bq%QLynt%(*bH$)Yu;avlr=}I@$1h$A-5p$^%xn<;v|Rf zP_;IGbY0B{toe{*e!PeUY{4!T*>Ki0TDZ0r%!4p$;BF4qGPOH5;rJFvnptyx3!JrG z;td8&m|#t@V*z;g{N+NFLDFc1nns* zTewv6np7=H^KTW5BGrA~^U_+poZc?E|1cYWAI)Q!d|}UwruPh(&z55iES_;>~DV6*yh=Z6_aQ<769tf1CiiI$-%Vc9?jiK1K_@(okB0k_|i zLrUB2Ce&T@y|&vk;5~KpJ(XuDuEJZ0Pp=+_o0138d1me7Z%u%|91BA)(iiH(S4HUx zbgEM&f9g;q`P4@fQX`^f?_}=3_%A5hZ(`h z7*Q}CbIu9HoR#ST1VP0dQOx0BIEs4A9=Y#t?OM&&6Tb7^`?@ATF1CCj5V9pF*USw!`ZEDtU0-Nw$x_Y)AGC|VF;=n9r`VWVW}-~ zvM&=h(66Ir7~^OhIA8XBOm+Pn3O-(WR9j|7h6le%Km;w>Z^fD8hL6o@9p$o*^U@4`8ja3xG+AKH`+crscxnnU}lf11JG({{|?eK+}4LCC?XrQgr=gnc?;0$ZeWYt_U!Sl0C-Y4< zhIC*N|$OCm6p8sc@q;3RXNeQDXRE}Vl6Ci)%$v`T%rN8d-8=ws6F zHl`Kz?R3%GWrtF=@;18=nj+BWlB*NlvvjZ9G!?b9PP0z$X%a&JH^yoWdkFh2w|R@@ zOU;O^&KNRl?q_T20mZ{^6^#&^%$uq#p!wBVgY^6RZTl{3KgEWw#N0mCCx4upoyFAb zEX{vq@0lK2vAD7i)oFfs1O0mM-$8q+I8*;VbX3=E>!+-%s<%rJap%0y`6WQ8~ouWXgw1-N|w$=aA!Mf&;bkWSaW$jDS&p+4w!rzd`7`xcC3#r3? z0$9R~O}i!9Le{UH!cfnz!u3<@wpVece$|a?yUN?XI;z+2^BFCEn2Y}!{Pg?v4dzO; z76-Tc%I$VDlJNUZy>yoJYiAQl>X6HqXm=WuN_5U8OcbSfS@<={0-zn%Z|MG4P4`=C zhWA>!AKzS#IL7=wGxd8vm6lcLe;L1*FB!IYNx#K5H8m%V!TKeQ5*0oeq8+zCWw&)-R2oF+>jr+e*rY(zzcr(Z|EKp2J8p{ZsyI zQ?#dr_}xFLl&@C2cl~_L8?8F0?z=}ib%>%XbTy(?qBf`WS9e@lUGsN};ei}6C#us| znOrz7Y+w=Oq*mHzT*7yXMyFS*|IwRiK+Yv0@Z_n&mM+80ne zwbXfD8mt{x@V@n&VNZnhwzin2t-i|+VP)(vZTD9T={ zXmZ>kMz|4OM%)5k*#}3 zub~c+U-m(Dskf+&ip!)@SM~^x&q2$MQSc8stJxzOk*-)7U|k;_NF;^mkdvP{_$Q6s zPhI@A2Bs5#J$1^jI$UB#`HB}#ee%~+^DF9fp2v^jNG~lMS-C&GRDFF_4@;cSU$#cA zM(O9DKTp$`eLHQs#l&$FD<^dunakyxZ_}+u&)g2%cki)H_ntfCrc_mrJZgM(O=UC) zm1xV6)pZkUdpB?1Q@Z@M*mC5tBdaPWNwjS$k!aGm<0>U+zHN^lL1|QF)$n5_+NvZO zJ#Nz2%41O*TvJz>nyMW)W^8S3UCjiU+iiH&B*ZPYtf{UYUR!AtduNmwwoqax#|hsMKOoJxk<-Ps;wNKvu4Is zPsmNItjSFpSyNd#VRT(p)V2HXLX@p-ZRafZsAZ^RwT`Q<9$z`C>$nNIW5!iZ&Q+(a zPNIgB99um(H@hW7dn+_P&J9kV?b#-mGv0aYIZPjg?+*Uj6uvPaSJ9OW=hhXoXTld~-yWFJO z>Z*}PRp$ClnOMS`Mu#81|ABiQe!zbF>@zs(cFed*b;GL$>>71VQPg!pwVJIRUR4!! z3t*S(s_L5Y!zV_HMfhZV^@QrEtNlN{vRy@XRQ2S@u4OlvMe2e2|CZi@y6&jT(ZlPi zB>RKm-pxmI14LV5PrcxK6wuW12yBPA)e&P6SnH_xe=DA#9r&6s@DB^PN~%Ffl*Rh7dhM5C%F)b1iw zvmbG@*jfY+@Jr;8jCLMA@~AO2N=~Dq5i8+t%3Ln3t{GKXW7jPjkY2OWMf^kTElNss zRih?sUYk>llzwvk2j)hKje529-n8Ldk0~9ei0_EXNwv{P`b6XxbnlR!BF|G~arLCG zQCG{Mdb7kCb+z26kF37#C9-Fv&Qnu4x@P!z!MaJ6TaSt!)CuUb^_s8OGkU$E7l*NP zGP-p!jIXQ}`k*Qz*IT!hap|2KQKcY7-E<#@`1HQdQ+>-bPgG{Gd?^%LKeyNw^!iwU)eh ztR6HZ-LyyRuAf^>Q`;o^O*&56M1g>`E>`t~ zQIm4{+_pQA1~MOwA2*?{w({>j@;*C)ZftiM{~I}0iJ~$ZQ=_Xsrl#`P(7~1NYR8Q< zX$sA8yK*VwBPHf4s#XRxaZ+X7sOt3dQR>+vYg3%-SY=m^8>woFJ6z}K<2a>{aHnOw zm{6Tt$uE3PFTix@ zPRVs5KUYqy9ZP2#)g?Dl&mO_8M}?d|dAK^dA~`BIxn^AL@DXx;By=Y2m>a`QGAgGm zHmYm&gsNl12i!HTtAEl^p)1)?TfeU?T^}V@k2q2TMU4_mgT(DKgG97O)QzheRW-TV zv{sHKdt}t2m}IEGW>K6R)wQhI(Ry9gO^4s;#pDrxrwP~T1+LNixJ*b&C zm?`slH@()+eBL@!=5zk-${+Q;Ic@v=Y*fot0BndOLnjD z&3d`sJpD6i7wUDUUZeCnK(D-B-Svv}(ws%KSl_%E@AuKa!f>`;Q8aO9Z67T7OW(Q+ z&n{k^_ZQ_qzMfq?P@ku-^s`7h{`#Z7K8flZ!wWtB{!X9v(~tPSanKAvBrXHu z)#G#Ik@4p9mHbhwFI;i?x+R_L=h^yy@WJf!zkBqrCEl(V_-4Idohe@`{3pF;=;fcE zB7AhFJUUZG|1iA<>*f85dfC6G`uD+>>+=uvdRniC^vZrd`rG=?cRHnf*H;gF`NGxv zjJUq%8E>z4_|NbEZTHrj{@nJEWi_L}-u$xfyPSLM`iI{==FOfB=ZD-T{-^hS_oK&q?Yn2?b{EZmY50OZ<6k?ee#Vto zjjCF6(=8j0JY)Yw4`25E^i>Yt^^MNWH#~UXV{3LUYaDpsDkrVzee!7wUcdY8$rJJo z2Y)?b<6aM+SoucFZEs!l(>Zr^Us3tiEgP-#!rv}`e`)u*b9%IU?eHV^|8#l#O&;vM z|CE<+Jm$5y=WE{|w9^Y`zA$0fE=_B7Xm(A@m$qH<^2E(gSUP*BLdQckzOH)D!tmSHFs$pOYuU0S-{I@BlKu}l>r3_6`SgSz=@a$4zu&uX-n{P&KTx(! zNnW#Uw}R_0-*3x;+j-)ke73aQY?RRlxtT)7LIs zf5ul8@L%<%wuNT3pH#qq`*tk~>&TKtFM(5%BCG?@`{sw$S+!DFVpWe=ZpM_8}FKj z|05TCobS~=pT~Y}s}J)Jw(FCpU6;eh_2KDu;P3X4d%Ng6AM7|!>>qUF>V*TotFd;s zc`Ye)dE+kQGi$pQ`99NbH=a+<_%2_++D*oPw+^4>Kd8CNyl@?Z+mC-44CS z+I{!Tck;Z5{}nBk~^=SBS2YQHeg3;DiP4S8PZpSSgcd0xc7(}Q>Cd11f* z!aMW4XxHWNaea8Y9r(L_cePYiwpk0^4$MxaqcHr;!k$b!7J0I*gPwW$Wt^w`R_vu^kq3_e@ z;7Q-7FT$U`Paj22->2`QPv56cV~4&^U&lUupL>9IT@D}Dho{?tzuQOd?V|5|u;V2u~B=?XD;7{%$M<6HnkUP*P_mEStL+&BhV4vJW4x(L`!^idE z>2~1n_K|zL=sO?mI8W@8d&ohw%d?K$3Lh{z7oK2pG5o&+I4;SxE*-9eVzd!{tcPKFJ}6GG1LExnf_nQ^#5X} z{}(g;znJO&CWnvuzv;tM{om|_{%`h?tN&ZO=&S!5ANV^@_^baHz5naJE@tviF_V9a znfz1CR`M;RS|HVxHFJ|(;$>Aei(}$;Qm>u}bw%JFnHmzOs z#l`r*-+97cxxeW7U$Ji_w{kx!_QlNex0reU7BkP^V&?f<%shXKndfgY^ZYeAd~~f$ zAD+5~W(WSdwq_r>uDP{~zVm^<^Mt=*-{{X@_5DV2EBw{>8#Cjd#?1JqF*E)tX2w6o z%=o968UGYB;~$g5NB4^9!&CQ=*@3_AEwhhY_nfthzVm^<^Mt?pexr|nlzSR8F11W%}?`4l_IOS8g-=$d&V~UG$X;jSu{t zC;XLr8h!k!oZ3kKCH~5_hRO5F!G_8I%FQLYa&}2yx!f>$SUJ9k9qcRj8>U^CTRek4 zJlzib-9B<}7k%f09p{OC<^EE;!LJ7R2Y(yjAL7se{}3OOhq#%3h-U-*mHUZv1NN2s ziGKs_x;zvAhD`h$GVwRLx0{K-*>Rqk_*=W7UllX`zX<=(4~y^*{nO;3-$MxaqcHr;!k$b!7J0JKvPxy!YZ|#QX zS|j}@JnxKWcn%u>@O(6Rcy1d1@H{m;#GY7VpV)H^XxHWNaea8Y9r(L_#j|&p6QdEB7-#G`Vs=<3`h0?r-R? zoK76bJ>(kflY7WPwCi&CxIR4H4*cCda&H%X=Yt*RiGAgM#-GMtDZ8HBO8)_qbBRBg zTul7I1+ zXY5H%hd*P_O#Wg1!T7rzKCTZ>w*!B-kKEfu-}%7bdBQ);KNx?;{^VBpF!m?s!jrK- zxfuS8{mIeD8T*sF(P!*WPKQ5Z|4ja8{>S*c96qiOPqzbqw~yT0Mc?_r-+98Hu|LlM z+Ewf=x57uUXa3E2D)!938Gpr|`8Sg*_RPN-f5o2pH?yPIGyi7&pYL9o=da1(id>k;jg}LIhQ!A4_YoJ{_6XdqmircGyiG))%ThI zG&}11%zqkxzWZjzKPHEd>%-ISz~Aj7_jb{DKJa&*@aMZP&j9%Ap0?Zyf8`#_x$so( zv0My)l8P;!56}KL`mEk*HXq(r|uw;3CW_6`Y9mBF=wy+cA z72u$6IM~S}5B3d*b`9%Upt+!dE^okA&~LyN7%tcf_SMH1n|-)rE7c!p-$B4Z-jLBZ z9PAWR{l(Zfj8D`#x}rsRHVrf!cpCQjpcDKuxyJ`N+_44r_+;c2V2=+t*vY5*7JtK` zUBez9bOKM;xA+7*79TJ^!4>TB0dviH`cv*lzahhZ_1B{_x4J4Xx(&HT-a^k=D1-*Q?=_Xxozf&89s{`c?OIF^rw|r*}4t z{fxX%M!zCs$9}sB_A4^&R%G~8WO(+0zs4PQjgf<$KiK($oj=(5yBt2Q4^Oc32Rr{D zH~vB2_=9EN_=E8Q{w{~V>t}cxf7#YtYn}O}Hv53l7kA=pcCZa5R*vE9I&k*7#N2HL z`E2S2{f3Mk!{igm48xf?p%XY5hBNU%PRy~7KSACH?3}^Dj()pqY4g3*13Q1P^9MVB zu=CHzXJ_;^A5gMm*!d%O{$S@1cK+bd=Ns?=IldD+^ufdwJ78iR`ln$yyAGVaZs_M` zGb5j!(QnAu@%xC_He}jr$Z%-LaGM?ad82cdAC1l#?3}@HCMICn_x@>e__#hi!PtR6 z82cHy@elgOA58zq*f;(zhrjE?A56aqeMa9Y>dY@>V82ElhtT(|EytmsSghdYbwfWf zn?cUK(-8D4z~0|7_DvqzH5~ee)pefm4s!Zlqw@r3`j~wez&7&GmSN|N+&P1tb4Jd+ z)99SR&KVr~b_F=JYuNcCcm7~LrJX=(y zp1MI^0S@|xgB`=czRMe^6Z9LX6YMll2MibLWaJGQeZz2pr=Dpg{@~EA$(=uP=MQ%N z8M$IKu*4ti{K3vY$c=x{H~wI_PzUV%GjivHzG3IDFxow&HtKoJTF^iL*qX;9tAA~W z)`ebg4K}Rzg35;Vc|m$S%j*NSaahnPWa=6YHXRqK6LcD>1Ew9?3pN|6BOJjcv=s%N zM&xjz4CZt6WQO|u8LysCrW|QwLEx_Ul22b{d|he7{BGPl_|5yDSNh#JF7?}Z37g+R zhqj3sbqxobhC^G%FK{p%xEUrc;%qiUj3UbD;1uj$?++E!Eb#2xIuWPGfrZt$l*6BGK~@A?JY zu>}vfgW=&Z54b2fe)=`CenA;|uxU871$GXG12@Bgv)Ke=178AP^D*mtHYS<)dkl@2 zb0M~H#wIb(;Cx2sch@ds)2}r#@IJsjQ;H?L0%zi{e)0SJ`l{Q?@&`VDqWRhBt0(fK zPpvZi#Ov!9y05#ZVZ9erHmuJJ(jyl2s#j3`ESCMKKIj+@bqmOYO~aur!-0e2B6iWI z9c+cVjo1Ri3tM3LVhfBP*b73G}b)$3|MyGWfRkz{0)MlgXH}qO!Z5bXir&Xb<<6zTK-GbMZ{es&B zdt2gAa1OFxaBlaB|L%h(7QTAsPkHz|hQq+$_AESf`s6(P`=8sa(DJ^HdH8SBrf>f7 z7URqp;i7N@{D+>~tWi3}P`B}?(H@AjQ{EP|B|0}))~hCrf94Dj9v}K zU$`i2{BOPgm!foxzv?!sE}V<9*(jUFAFQ^DaHtGA@b|iKcAEiPTkv-dp>E+IafAOo z?RPG89@M@-tiXMQ;s4H}4uyQ5RSLwv-!)6~Q(8Z0{6Fike*VXse>48V#hROcGyc*k zUf%ja5e}{cf3FK?w;8at1%Kxd>KZp}!X4i9AGm|z4|jZk zKisJ=n~maIfe!&U&>sB)H*tSfJ`jJn!<+u&7!LS{5AgT8a3&tu1QRFPg1>VJ zb&VVR={xir_|td5aG>wdhu}}&;rhXuzVm1GA#hXm9j-V0={xj;P`5}QBL4Ip`VIW) zJ775I`WNX#@b|iKcAH>t3;xa_)Xl3dob%kf+_&&|O#b2C-BI@m{JD2^j}_p|y~{lu za0B-n{JD3>=^lnZ_b&G*@#o&<9wz^QxrgE4I`H?pa3&vo-MX*E-`j$}bC7+zcgZir zpWI2_Bvy{$K<*?@8Gq$Y@)w-Ro#eHEXA7tNl{?9Up>Bif8h>)9>|6XD!=L<04mJLv zF8s;I*bLa(GX8->s9T}B7XM(=;_sOFV?V>cA;Ta0dGbHLkgqNNvY+9P@6Mn2So~$* zaE62Px4O<5n;BoM|MP5t1Mzom#6MhL??3hoAcpEc^a1ZbMe?s~(tqeP7XNU4z5me1 zEdJzX`VZGM^ht|9IMaVjC-fhy3um_(u(d_}mHUl@_dT8g@DKNt@elVJK3e|H+`q-l z{mVUT{JFm}_isLP|8nnJ{6kJK{vlUb|0h3W?q915XSW%!wFQ6faX7#~-228qj?J z=@<^g1|IPDx^N~o*bKPHGXVb1A=I_!6EPtlb6w#N=6b_{>(4b--9}wE#sH@tS+4Co7e<g`W!r5(ty)F1V2ifOtv#{c+Ik>OvF;ZJ-R|C`MW|JfP-#E0>}aijl- z{!@g%V>pn%c?Q5=x!=YI@DJD2eBn7jzJ@>J3!d?zu07+qrlJ4jiGS!nmIFio$;034 z!r5&GY~L^74+owB_^#aFNdL^-zs5h@zePBN``7q~d#4D0@_o3!z}#!bKiq@HKit1? zCMVc;3iyM`6>wnuMSg(4*M+m&4A|O&zjFw6xqpp+$e)(0L;kd9Xvm+9#6RRN<4^u1 zFXKzdb;dvBK;s{BBl+3$r{`+>egOy9fxp*=|AE5W&Fc4 z!uW@0hw&#j;{*J84$vO`Cp?3UzjA+pX8`dJ&o3}-+4l=L$iDdif3FK?w+Rltp#55}Lq zLmz@a`I|ljH?Iq4w;8at6?7Os82>PSfU}R^j6ZprdpL~$i#!A1&-k4D3up2@_b~Z~ zdzX9-e;=QV8}}AtGmAgZ6Yk+K{Z0Y~u`g;H2TBBoQ2d`VDf|U zcMk9m_rCEDISuUdC&oYIH{;LPnfwcX#STHv+?(~h`)0Pb;-TP-^b+SPcUu3Av|Alc=`XZwCZ{AJ%T{K?-u1K_XRX?5Wo#^-#$0O!fk@OKWOu5oJ{%}VY}?n>@X z?n&-V?n~}Z9!MTc9!efg9!VZe9!nli;;3mfJ86*CEW-^+QTlfpE+&ntd6(hFWR7gy zZFo*HSJv(^JU5vqyZ0KNmpq{s?lb&EGGA@oZ+L#PK&?JtctP@{+JDgSlgUCcdC2g> zWRW;MY*roP5z`3_}b*Ub8?AF;G2_Ml1o(r-;&&#T&5EE*5tNi81W zkz)-{Pi7>?hxp7$&Q4BH37xZ(bCMHP0-uwdB*rHiK0G-h**6(v_=se9vY$%m3{OTR z`>O;Vk&I0Gs01FFj7kQp1Rj-CCPP#LS0N~)4WLwu@|@yRfi&>5dhNDfm8JRvz;j1M#1H`yuKD(PW( zr)1}(r%LGToa~ZptrB>bWLI6$tqt#*^h>r4*SBA?Te6)>=7^2Q z_hdk_gG%55$sS2>mB4!>dnP-o1l}_lsEF)ncwn+uQW4^_SF(4KR|%cHlYNqcO5lBx zzG7SuZWl#KoFqw;q-j!?lqahs&64Ixi)7WLWzs5XowP~XCaWc@Cu<~YCTk^YC+k@K zcFDS`rJAy}ZnB>0$A;HS)|VxfBws(-KsK8g-XPgf)|(pMFxg1$lo{SAX|EQ`4YyBn zYI_yKxnyIpXl8ihWE1geZg`VqQ!#5{c+;eVIIe2AL()-fTN>_|Y$o2V3~!cfE)QB8 z-aP3fU)mV%lx!id+8W*>*;4+kW_Zh_vpikhaOb3pd|tzFm!zw_U(;~cq?_Wfmf>zm zcSU4v!`+j1iU{#(7qyeTo9c9ty)D&NC-K-!96N~rCh{#Ozc*4$Hc-6QBbJI++o*li zMnBDh+eaHktyKbV6m1x_QVG0aw1LhoZ)JFcX#Hqam5{F=trxXW3A|pkZq!^Q@VesC zOeJu;XdN9is&j#a*NN7S%2fid9jz6WsRUjtT2ucoGrXq$)z~H~Azvd}JxWvpuO6+Y z_r&mO9Mdj@JQsBr@3w}!N8QA`y1gYzgqWu5v zRl@!z(Z=#%b;BErbzAeNY1Bgpu5?!!okEnC2i*WZ%Y#maw~w}y2b&w-F4|TeY-V`dXd8LZ(eO6W z*7Bf(;jN>d;=QTip3zqFU=zbziFHmTxb=M|+8P-tb=0KzUGM zcwn@rJm_P1&u9;Mu%qEUq5<-tx8VWN?($#3f@Puf*JUGno_^3)A3^QC69VHJAHGGu*iPeKu!p@P=IC*fe;c?Med2o>7vC$ZL zFx2pvXtX>y(D3M}QXU*&xH1|g4~7^X6^)b!gAI?2M#zKx4UdS1%Y*$44;Sk}D$(x5 zXsSFo!tm7SBzaJ6_@wAWc`(87iO~u2V7%cIqT}U3mEq%~*hL4HrCtKOpw94V(W&yF*6^v(De_>F z;ZvfMg?48@@KWMjo7J_?qZyd2p`btD~#r!8wMnimsFgXB)m! z$0JWy2|HIrm&=3chA)pUlLu!RzAU;_9-L|T(&!R-FwO8K(Z%xM48s>k7s-Ru4PO*p zC=X6Ed|`BfJUG?x1<{}6!6}CSB-ZsR(e8E8-SXgk!*@q_$%AVR-xb{{53VtMXEaM5 zTy1z(bcZ~+%J3c0?c#l<;oGB`^56=?Go#z&!R3Z;i*A(%ml?h_xF}gt>Txj@)=z4i@f#K`L`h1n(e~&iY->ovZF)GS~yA2nk z26=Fo;f83oJh;>F?C5cMFw5}c(PQ%94#SV>-#VG85_TSq9+3w#4L=e+EDvro{BZP; zJh;{HL(zls;1he4Sybe zCJ){+{8{v=Jb2Uar_nNbu*C4P=+E-t4a0wqK9L8n8~!BvSRTA)_~Ym!dGM;?kD?Fd z!7GM8j6RSDFB|?KdS4#AWcYotenBPpFOOEpgZB)th<=j?Um5-_`kOrX((vD+U**AH z4F4MaA`iYW{7dw+Jow!3&(Tlv;4{NNML)`ePYwSV{U8sP8U7*qULO3}@b}So^57H0 z-$j3w2Ok^$YxJ!=_{i|L(KqtoL&M)hU(16J41X=w@2Ld;C~gz4P#N4NZXN$7f55Hd zR`K8D54cs_GX7QmfLq3^#=poP@Tzf(_-FY8ZV@++f094o=5e$5NBIM87OxWjAb-HC z#O3k#@&{ZVm&M=7A8=XRH2$mn0XL1C#NWyva1(t!`bPeMlQ@pQmOtP)j^gF=2i!Jp zFAorD{2y;5584>sDBe&Wv^Kn9yn#GuWq5;leR&5HJgBFI@joZnC z=7!tF>&Sy}GgKJXjv|GdwunUmomgc>j1md9aJ&{o;M)!On*FjR%SGPKJ+&tL4EU!`1Nw zd2qPl3GsM&aG2roag{t6X1FRoN*)|)_^9|ud2oo~Bja)M;9$e!;<57JAj4zhG4f!j z;W6=Od2pcN(Q&0bIKXgaJW3u6F+3_BDGvr49vP322m2cy5f7IK`xzb{A0fv38lD(W zl?O){o*JJd52_8H6rU&$CKx_3K0zLgH+({TygaBfe0+SIJUGhmaq+S8;7G&A##7|M zIKxxo$?{;V;mPqa@?ebNW8yk_FxqfkTq_SM4cEq#|mE{7C$;Jh;v9!|_A% z;8w#A#ShAZTMR!KKOhfoHvB+*zdX3f@cr?9^590p_r>?hgBuLr8{Z?w*BhP_KQ9mN zG5mb|oIGeW{9OF3JSZA|HeM_b8VoOvpOFW%4L=hl?V43o*T~* z<9iLi5Wg!A<`{lAen%cWZ}^?~ZF%sV;kVArGE1{6_q`JXmD-_4qY;u+Z>p@vHLSNyD$kugHT1hF^(amIw0xMsxKb8lt8U8r_NFKau_@nqk zdGLzi591Hy!OMm}h~Jk7FByJ6eou^FG`u`sArIa&ydwTh9(-l^xA<@J;7h}Qi+_~| ze=+=P{EIyJ!tgKg&+_1N!#~GA$%D@f{}lfy4?Z>gWBh|WSZ4T#_`gvJzAkMW4Sh(FaJ&c zfLm+6{BQCH+)DH1zsetQOU;-6B7eZEYQFqu`2%jD`SPFS54gGJ%YT$V;AWaH|3UtM zSJ8a=_wol^uKDusp(oocr!rs*T$FS{%1t2a`K?`F3^Pis?D=i;H07 zQ^#+}SrsOCjQpLAx8=MLlRFM}@*C~Hx!W=9@>BYB&IkK>F!E+mx4iRoj6B1+#9wu@ z{7YE+?CCYmt`qndoHKIA=w~>WaH#8?vFX0hmT`8Sz`x*}kvqn|Uiz!I_jT{ywvaz~ zo2;y!4`&y87Y5wWy%DUJ{^||qFX`6UcE=rqJeBd`A5rURx6XQZ@*uyYIt4!uCq$`{c3If zmQxmfvszQX-!uuoQ>DL0HIaTZ+2og^BeWe#N?HQ-v z(|7ArZ2QmaIada`pZ~(%a&S0HhR*^{_n&jF3_9UF7pn`Fp7y9O=8T?z2ikctvSoYM z{k#}-z=4zcYI=4IaxiUUKj;gm`g%9HpDBYJ9NPACeAITzE!9gohdQ#q*v{giZt&Oi zLz}{-_?Vnn!6WF~c}CdBr;N>j)BXP`ALC%0s4H1s@6JD9<8M5IzX6-Sew~O7y2OQeA_Y|kxQoWROsAKiyFYne)ic^2#p>rMV9!}*gGyS9`Ij14D z-_rU<%AsYZ545yvnqGJG{aUAT>SJGAin3D#^G+Ge=jpXb+ogVnkKvWq#q=vOcJdkf zAQ`zf^*6Pj#wTqzjZcY>;$!jlApBN;e}iKjZQv8@Pa7DSvK5Y8-!R?+zd;miU%YapCi5OL;!K7*5;P4ExSEU>c- zsL%b!`30O+0H$s@vw-sy8u<)4y6Kq(QT@vE3nKXVnGW#Dhr00bGacYl2yMZ~&vf7n z1+ei1Q(tYFPR19`iJ;$^&5ZAyD`9eMWN;}yoVk#x>t{Mxe8QOy|13Usz613GACHgK z&G_i?vGX0ofmqo!%HUFbXfspyck#)z^^fAi_2OI%;=}c#F1~ZUJU(2nLWmD%TX;;k zURF=)@H1O_H=Z6(+W&vCvcB!HviLHNX2k*H*)si~l?ca&k#3o-S4cYYJF1v7u>gD0H^Q-sz~G^$9uC$_cR&V-x#i6QT3NdZx|vp8oD$ zrqxlK=@)ob7*M~n$`^!R?O7p~{+eH=wOC#ByFTj{(27;QB&@|aLhClMu-*yG`V!VbfmwIL`Y15#QCK$xW}V8Qu>OekE3ETD&bk)X|A1NV!nztI+f1ZI5<>xjUtn_+zsnDsQQI|5g0)d%a5z^wmZof4RJA*^2lvtERCO<>lMu-*yG z`V!VbfmwIL`Y15#QCK$xo~%_dyW9Gsb}I8tsa)Tp_*U0i*PT^y>)1CW*5&1NeLCnG zY+l)VYu||ybi|F*%N;Umk z4#Mq(SOLdsH&(W>ij5V6tPW%)AglgZ;m2w|R_<-3I{fj^lD~JmzJK0V)@;gy>Gx3N z8Y?iK$}cNk)#vkVD-4f)p=|{(<&m*(55pvTA^J&8~m%dUw;ek1Z%YJ&lxX&jK8Xi6Rlj4OlZ!gJTue!FR zfBQ8T8OF}gnbQqp|LreNHcY#lOs_KxpO-#5(l9)4JYbYz9Qd~V2$xs5T>5#}mz})Z zk^Q{eSG##{SN!wNNBr~7Q~dK8{(1KcefJkT9tZ4ud}!C>1|N^7_*ZzGMZX>&^j65} z|Ezpxl{+iiS-s9mbylUb0-bBh^`EG4)0>jwZX#Hu1v48&y#~G&G=^r0y z*uR50Pri$Sae(i8L2lns!Tuc*EIUQFBl|_SuXc;xuJ{+7k9ZcHr_48I_!r$T^xa?V zcpR|r@u6Lh8+<&Td|&lA!#~8on2CQe6aQi+{>4oEbuM8k{`#&}iobGWDgNYCkH5)- zU#1`YH9H{=W``xxx^H`woc zFnNM}0QNlLa`K1klUKl=Z@`|1z@DGLp0~hoCZB=fOr8sJ%YQ-N@*-GvEMJ0U-|{F} z?OJ{Xlc${zdD?k;o<_&>x9gMV+zxpTjD7MPn0Co?VDY!-2ADieo&$T#|KD@w|Jrkg zOQ1g+!=>DPdK<-@4wS=xy1aH_|yli_x}<7e`W`{{z_xt`hNre z-_rkQ?PlfwU*h_IBUV|REH{@+R=U2D{X_h(bf{9;v|&+2&HR(>J42uAF3OkvTxw7jP_!0O=*%)SHOFRPqC}8Jb zx<;X{^DkXfY&-uKGkqX%%W`&H@+Iq|>Jop`$;Kobs}O(Vkd19N<^kKa$X=sRH%|<+ z*Oa!15%O#w2;58_;%^u|z4TY#*hI57>CVCW0Fnsw`M-)5WGoFw0CLFpdcCN?+8_ghf9M;Dat+-+jBm8^ScVsn*_ z(mlS&(w)CeZ1$3Gz)fuK(owoc7+Jb=xQWeXvf2W~w|EeylrB$pUmMkvAIu2=^kBV>CW9IHXFK*=^beE z1JqzvG@Y|#PSjDl2e^sNjjn4o4%WBB^#V$F4mYvcQs$?d*j%ZjbdPZpn={?OJ{@K= z3g|K8v5UzPo5@4Q-sYW67VEulK+GueDYG9bYA@_)C!1?+qHnM13~Updn_w;$l+Mt? z!1qBjXMMQUPUozBuPAfYzE_kvYu_u%oVD*2WzO37iZW;IdqtVEUb$CvoZ>iC?Wc3r zzE_kvYu_uH&RM5()67}>UQy<(eXl5U*1lJiIqQ{sMUPfL8f5mFv-Z8Z%vt+hUFNKP zuP$@ezE_tyYu~HOoVD-OWpAbL)#Vou->b_nAih_Z-$Hz^E_*k9uP%E!na{;v_ImnW zUG{+XwX4}w=m)BLuMH}lqoylS^wa;X+$J%GI*n90WS?tO7nXHbQD`(CDJM7_R z1_I39ZlBd+&$rKNu@~HDwb&!h%mw=F9cLZ`%${6f0=67Pf=c0c-U*1E0Gw;qXK%57_JU#pT z+0(yCxOR~x^cOV0^TPbHW=o%5InSeJ$oYlVr!~$0Ww#%AcBovRfB*is4KugE3wbK5 zH;gWIyuRM~D+GBF9P|wbJBEXO!=c?EHye%AmAoihu3wZb!^{=%3ikD0Zx~(bAlC~U z_23}SgHszR|6s@D*hsmS+6{8m3ibj|neja%yK5pOSph@ zm)1mJL+yFp(i#eExJ^FywpbtF90JB)e%nXKaHv}de6VRav}G6@Atv?c>7~E=Mx7(0 zJKKLjV1$(ZhQR1$<*x{gBp4<5*&XR~JB&pi+GME5+*^V{<0arr^{+AA+JIT*Rh#bu|jU(yG=KG43d%z!m6abo86F z*)e&>PD5zdk=O7TGsx3q4`C)jZgYA5ADzs|;oGIdk=NqirO&;u6t_}Uf^08yy;UNAc9WZk0f@Ryv zE~hQ=H(7{-v4QFc37KFHydxsK)w zWtV5;6Rxl6XZav^K8|_!_<*x~D8olw%oZ3K+-R5UmW_{JN7=K_TnGEq6&I6((e>*E zb`D+_o^IdcL)rN_<{duDMRpx|27t+nY2R2Pd|nA7<9VihSkeKf@-`+9xFYB@xSdd! zJa0BAhqg>7!=VDqb<6TeuW!o7ajLVD4`td-`F&vSi4-z#Bc>hmTC(_h0qWjdjsmoPf? zd+r7LIAyTcb&O3g_YZw8gu}1U@duN5{O=mcEwNr>}axM{C|@81MSCay>w=!VC8gYYez?B~I7TXXN%> zJd}C!I`!ClXT=K5b^VXqS3CR}U${93ID`GOdVpU4jxXrx&-kbCKWD!_Z2Q2ZaZFN?;tULecCIZO86 z_C>Zz{QuMTX$!92rl9?qFQE_pOJ71CLO)!WlC64)^!h)u|M%DZpV_zgbA83P6hAna zFQISzOJ71;a5jHb7fhXc@{ivCWA_7ioe)zgPh68S&sZp z_*)d~3`IW^G11wI-5$HZwcr zvcpM?>+3Yab);8rXMoPv8KQpHC})(;3ul2or&BfOhciN7&{>-c!#Sca>1@uY!nvcI z*~wX}aC}W?n$EQ|OUs2gk@O{5c+UKJL+66Nt+Pbm59eQgtaCHpDxCwmOrO1FHkRr9 z&39G89_MntAI=~BLg#pX7|zK2N@r`nVRp)ezLM7GI+63w)((5{F4C^L%fdOloY{L} zI2-pGoiWRKz}V*O*-OF>y&H5^?PXz4-pxAC_R7-vyjQE{m1g&9$!}Jj>+KBSa-D{I zhn=VEXTWlH>>c5Z+=q0&?498p-A8mDEoTSQ=HoiE_TJJNyhWWJd#}lhI%{^Ooh4f? z#7Vu6%fds}?h)DnSgG|9eik+B8b)Xh0QM$mEkmVB;E7tlFh(VCjn*uTQwdzFbqbut z4L(NeBaW~$t;>au(PuTPH$k73Yt_PWw&tKdoR7>|%EyJhiDzifS2&xU-`RWWw;t@}wXR`X zmB4+q5`w*FVAe$RQVG1PR#Eg;3A~$rrSD;O%7u2*XS=9gUZ0g~4aT0fhGS6J&p1RY zN%oYKdaNngOC|77tw`~`ldMe{q!RK&wX$XZur}mytv1=+?34=~ZtHT=eUIh(ZEHRK zvd8|zO|4!B{l?~d{P>N{_xN?v?`oVCgY7N#TUt&fa2NeHwy8?s?)nX{o!KcDVy`H> z`PkdX+6+#o;pCchtp#V!`0tFYit@dU?2F{A8tm~aB`4Q_*(>RL8`sgVgR$8u7hpxu5*o_uyc_Yg>#h`>pbQs z!uib4>&)N<;XLFQb*?aHKx2>dh8KmilwZ;L#Ltw@TVAZ1&lvy3l5@85i*~+qxt(>q zG#P6wu4rdd85Y8?BQs)IPF+1f# zoV?6w%AZKDT>FhLupPvHw)j=iwUV4~Hm=nv+82i%$k*wd?MuTM;+(&Ic{peMCY{mE z+3K`;i_R@S-_9s67rI4SH_F1b*3NA@`+Jto4! zTC+_4n9kw8MN>N8Fkf7sd?Zo8UCYt`3LRN8H; zpQg{swW5g?OWSL`(T=9uM+2L!ZSQPTp`C0mEjHNCyS+-_owXWl2bIA6v|?;WmB9VA zB55nLQ!dnBpRr4~pwG%}z1cvmUh{QrgS8^j_lzH))pP?@!UpT=_E8CZuvX>ms}h*? zdAJR zr|-aAU8@k9tAw1@7``rIZPku!eOkE?s}oq!zz$3Pa(a8=)v{)TKGf@rmFumT3)IKj zhq|x=%)Tb}b%ELM#J(;t`=D481ZFJ``?|pFn_^!VnEh1j>jJaSN_Goiz1L^t6&d|} z#*VG)LZ5ar?dCIl@)@4?JvG=b&>om}-~px`_=wX!xA+IS#UD&N89Nq#W*E_Q13c57&nun0DX|#yS@WFpD?GP8R-Yxz?Zt)NL7Jo49Wb9k~k<(6wkHsH3?O<1b)<VUCl8!@<7c(5_)@<1_k!r(wwJ z&-!TaD<7__#XnqEi$7TQE&gD&Tk50OCPv6T{$Om=Kt^tTH0WDD3w8_#`-VOK)b;p- z15eYzw*IV-2ER-m{B=7Pf9i(#nB3!!JjB!F9)IN6)=TF_r2Un)Gx~Y3#~ z;AS}N%W?b<_qb&D_hk3Duz!Yf;J_Xugy3ayg(ET1=j<=S4|F5iCx&3!C$?bPR~^In#&toS*<%B)$mp=I%>puY6PW!Y zoMZ!L{|LL6z?^yHXDTs&;^SlXkNBBN>>u$nmDoSxXDTtz;`0LRAMrDl()}ap7@9MW z{7fbGkN9|+{Ud&+68lH|OeOY@_?b%VAMrDl*gxWDDzSgW&s1Xnh@Yv%{t-V@iTxvf zrV`(3{7fbGkNBBN>>u$nmDoSxXDYFOq_4$4C&a&y#=nNfzkJ5Oa>l=C#=l<1zf{J* zO2)qc$G`T*zwE}p;>N$&#=p+Szr@COw46G}e{a1sYo%Ei%^K*9qV{&3{@*?pc9%8P z4A=kP_px;PzN}fNU(1>eU9s|emAXhYdiaP*y#M}hIk`lC%L}8cs;g^+MplliGEwy2 zZ##GUq;O21W4HZkhtDd0JEe1F|FwQ7JiFu6(brt}ePNS*n=RjA`Mkm*P1l^W(G^b= zx^HvQ;*q;8EZkBYwDE$Y7Z)B_WuuEa40x%~Va27FUw-+L!UaS4`?!$W{^S3bOFn1C ziWTqf6yE0sjlSu-^L#JV?-b;F&q+UjukrbLeP*nfcy?j_X8qn>XaBfx>FFJMU3~QH z!m`WGerA4QP+`_f5AE~Rsejus)sN~|te84guNCv#l{LFbubf`H>s7DU#Ole>KX~=d z?YhriI}O-7S6Ne2UDG01(%b0q)uUFH9N|;+-ij4pEv%{@6J=goasHRezkBbU+ke2` z{a2d)r;VxZHuJ`Ae8Zb^h0? zmos;Kd#`u@ayQuZ!Nw-@!`|+54KIuKZiLl!NKfPhc$8UW9&>O*S z6TI4X`>pt4=}EJ}ZXY~!@2R^CeB-)T!QK}5n$feSUH9_5FTvg}xTf)o%Hzg-b81sz z=K#KV&n9Pfs66$2u=4>w`ue)JKR05{tHI6(UC+n1Xhw%tQu z=M3KTgkf!;J!IiLu=5A+)~vSY^&6j7kJ@2MlF9dsh!1ru((Z-`TU4A*(V+Edf+_gP-xS`i|V2>O4yP%Fh>oJ^tYA--{b8t)DUC$@z`C7aY$KzG|(TuUq!iMHkM^$iZbD z))?OHmmj_ZyUsk}rK6HvmJNOA9_qRsitKD6(7siMSktA-Cmr!@ceVZZs!T% zaj)MubhRGuzYBJo)NS_ARexIWo$6l}JX+|y@0_lv^rBRUmlv}>`=`8QsRj{A$eE;;A0jn`@O+yY_u9sKB% zo7Ww6(UHs0@i>6nZSvX!gFbufC4BLipufe<*Vi0&&&hMZ9v^V7<-S*c{Nz5*QrBYz zha;=MzrAMc`-}0#=NU9<+=OUkwZ`1TCpd@fdp*w}=gjjf{MFmj(o325w~i=w+N11G z7yk9t=2Itbzt@SQZ+>IDwjZ_K=d+;~O&$96T|b<={!`;0slD+0$M(D+o;IrXl!eDl zD?C4Lk1i*klY4CA7w_7$`37Tppa1SUcb;1}YVQ-Dd*z4^*4cRT)_a`v)ryY4Eo?IS z$D*E{nSkt zKXvFDLry<=r=Fi(b>H%9dJX;h#q~D*cFDx@J(Av&H$3{a>$aHo@eSL&c+|uD?DXW2 zxpSw^{Q2y6_qp)lds}4|slg@zRBFK0EEX%@mKB;pHE+Xo87nGt40BxdC? z0>dIq95jAdvqR6lJ##Pg?Y?&RWgan+WQ`%nCKz3VXpAPfAs7?Z_#iBsOcK@*77d%A zixZL%W85rZSB#nv7L$BWb@zSE^|O-CXaBQ5pC8qA>eQ*KQ>RXys=4>_&2tasKKtA? z&we^TZRc+%o&Us(=ltMnr$4v)yY++fZhx(J`%usBTd!Y#?{88+_%;qgq}~2?Hx+CIKPOE4PN^IQBd6 z?ebXe@YPlye}xC7Pi6d6nZMpy;kdm{7;sT>{F(KMOF=7G26A9ExEpK%JHS5hYj6x0 zXVoWKz5gJmEGR)h6mBiIi1gCk({+3%kVV7aRd&F04;n1X{p+unYuXHMk#a z0Xx7xa0sZ2XctTbSAlkr0)1dDco1v{d%yv37^n%<0hfZAUZH*ppYpCT?|#pzV^2H%j5E&~clP*m&OOgK|AGrInsD(Y6DLi6@1+fmO_xoX z+T3#av@51xIpcj-z5lPSo@sU^Q&x9RIn z;afiP(OXx2?BjoT+b3@SascmKmZpId+LhWqaS`~zQj@S!h$ zY2(BH_~lJs+5E^?AN|_bxBSy%-+26qC!gB-&29g@{a?QI?ZNMS_j^13_37{L{K2k& z+x^V5Kiu>0Kl<_B=brzMeJ>3CWdBcp_VWY3c=4An{p#ia{Plkw{LP{N{-0M4zxvzP zUVr0vzd!PaqyKyC%|HGrQm908@*1a=G1%gq<(WaobqvQ13^LhF5LhX-$Tj?YGHrBc zY|C&xBbD*2WZ-)J$coEyo}09MU$r>_*K_$C^$b6p;-qQYs;y~pA=ZoQq^y;hq?Tx= zQl8Z2m$9vJcE(u&Z@CU69~fqd zX50L-EP7pO+8O%b_2jdbqt64njX*|XxGOD>E973a1huie`VBW{Ia)(9CuR<{I?lFtlc5_^Qpetsc`he9Mwy zp>s3U;5sN;TT5sH&vLu_)cAELLMm3AHR==D`U15vkgkxggV>u{^`GvZ#j%nv*si$FhykWa8F5(_w%M zt(BBa)t2w~JIS=?I++1Itx;LCkv45v4uw1>Yso|`WJpzoQr7Odfty6tDKEnuY58Ul z-~>b2=ygsEKb); zv3QazFrpG;FI(?3jFv0tUnOmN721{1#Qv?mBpO89s5Nl5*Qaa~?z zT$jtZ!gYuGEi;Q;ZPVy5Wd>%M?v`Y-%pRxQXss^}O*N{BCFq@tU(I7?Gmd3sd_C1H zlpt*xjurH}o-B}dGr2+xRy=IR@dGSb8^YqQ*i5Gn8VK9Y&P#?lA(!cs;pSwa#BTmjF>C*bj8%+y1Swo+O@32 zOxn#E7%$#buY)!{pM@?Pu!X+P2>X+BGxRFfu~uocUb(}^KRRX>b13@x8%#SN5%h9r zHkp!c)R_t=BwX5Rk<=3fGDs{>##T_U_K8J9M8`%Kri-FOonEK48@qD$3^8c&4TK~j z(oD)WhVOMOi}hsqX;Ykvo#|r#V8ffG%f$#yyl7#ktKj1Qm!Sq4PwMTIPMD42+zK_+ ztWb?2C}5)#4+2-##RHTznX!B@y9>ybgpisyKE{wn7-`W#WK@oEv5P^ z$~zEY;oaj6M^BpTH29h>d#4{{oX}#UeU_C_*jkJJq-ZWhTkgeKqemRSgb75E(pHJ@ zl`;DH95H|%VbmARUr|&tj5OcDv22gcN0*=wenF%^1~+jjn!CTev5L34Ib zc@^5UDl|6zVe;4{A91+8k+dz-!7GZ+EBn;U zcoxZmF!atL0cMylPKRpKzFRg3T}%uqyQvO(|E~~zV@_ckVcm#M}b9i zJHlXyT_dFrIgB?jy)f=7J(FSQzHM1K*@W=sQ7n_jdrLemp?TBXwz-SdkxRI5jh=BE zY7>*e46pz!14S`;V~%|4F#Ppy zev!RiH4WwL@E8im# zp##6pbo$-m!lV@`>-4>3#_4wBY%bqbR&44ss;`>zO`g{Tb5q}xDNVk~F~D!?<1EJc zK<65!HeNQZDa{$fZ|br8`0?e&rap<@B(Q8uD_PTiWAZN(gsgm!vHhl%p6dokYixoP zwk}QnMRIlT8hY&Gt*nZ}dfUSZd#{LH!o%9zZ!@a7GUMmX|U4V;%Cc4wTWP7Z9?uQW&N}D^1V2G3fPZx z5c%tv|qX8Rhd{FXxfEB4;nkYrx^QQ@-xRx`Iw+T!T1h z;dy{>45Z+Z@=_it+d|nrQQ7p9iuGkq#z7YzUisWKpGnZpN322ZJP(nc+1shTjC$fi zKDmRxjk4EY#D`n;X*(k9fq;j$xXq6!e_|5lNSU-b@~F0-@ad+UoS%JlC-2+@m|Q~m z>StqX6c?JE1;QKW@_#MIUapfmzVuG1eG_Wb$CuYAeVh33MI%(!b==OJ`aZAHj`&!0 z@`Mp8)fHA)b;$^|Z_al{(9=kJK`XSqGC-F_p(Ib&zb#g1zV@aF3 zpZAOzS<;gd-RO!Nzdll(zh$Hr$tFSA)fxLDwcxRk-sQRy0T&DI`$kwGTV0Rk6${os z9u{!zYX(K~T~CDMT&B;mi{v+-qQ9nxuH`tSuHF`MaYNxcDZj|KH!8?x98N$b1$qPr z7S*b~?R>`or9>K8aARq@}mrPWS==3$SKnN%JeM!EcVEUcCUPi~Jok`2K zef13F@B*jHiW}+Z<~z^Y(mJF2{-aPL@nN;uX}$)*ADTLSZb)p?i>vB>A38?io3RYB z*3Qr=hZ7o{P^S)qezP-lxoQCcPL%7^L4#(z^wc`_C4htN4BSqyr%OG5TAd=5EYwik zvM<-EA<)gf+!;Dnb?hs3in~6SOF64##MX_zr@A3)QftPvL*b8= zkz%Rgskp|(oPgOo4X^TMm;&9&{wLJ#Imosv|2T3qK^`3qEe{Z zMZq<8m)l#?#u*J|v{-siIa$xt-OxmCQG_}Wv(4dR*$;c&z#&DmgtS=VN6N`s;$~+IQts;P!XG}1Sva+N_NbvOUQ|)l>^Zoq&p@S z56DtaHlE$H_|OsWJEL?pvLr9T%Q1qB-EC~Vk=P^S4}D(hq!wQ zYEB_&h^W%4kqO3vHDCueUt+~0;Rp%MLvSqa_+9&PW&gkn-56|dQmrz{G6a7sD z(nsNwGyNv`~2GT_gIdkGH?A+Dtv>up277s>OAHy zeq#QQLMSmKC4A#!CepYIck?c?;%7g6uf`eDnD6nDcPW16-Wv5|nVjf}`MyU!ewU&L l@2^o?O9=7nk1F_Xe4s}CqQtIZz85R_u6(#gO|R1Kp8*F?iR1tP literal 0 HcmV?d00001 diff --git a/local/bin/pyro b/local/bin/pyro new file mode 100755 index 0000000000000000000000000000000000000000..001ca88f2f8ff2a7590ba793b560bf13d7f667f1 GIT binary patch literal 27164 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 literal 0 HcmV?d00001 diff --git a/local/bin/qix b/local/bin/qix new file mode 100755 index 0000000000000000000000000000000000000000..5bf9b40dfefd5ccf1b9e3566e734aae496f53067 GIT binary patch literal 33232 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 LcO8w$n7IE3XaQec literal 0 HcmV?d00001 diff --git a/local/bin/rocks b/local/bin/rocks new file mode 100755 index 0000000000000000000000000000000000000000..4f6f4b08b7479015fae3ead79b173866fb5025d7 GIT binary patch literal 34936 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 literal 0 HcmV?d00001 diff --git a/local/bin/rorschach b/local/bin/rorschach new file mode 100755 index 0000000000000000000000000000000000000000..6449135f7ab689ddce9459e2703a5a7fd01f1f4d GIT binary patch literal 26560 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 literal 0 HcmV?d00001 diff --git a/local/bin/slidescreen b/local/bin/slidescreen new file mode 100755 index 0000000000000000000000000000000000000000..be11c6a7c106b4187da06e021d2081bccec3d857 GIT binary patch literal 38696 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 WFt~&+o$liSblV<>o6{2`(*7@EfHDXG literal 0 HcmV?d00001 diff --git a/local/bin/slip b/local/bin/slip new file mode 100755 index 0000000000000000000000000000000000000000..2a8a7ec160f48d7a33f9641c5fd2619ba0b69f50 GIT binary patch literal 41380 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 X9QS4rBQo9RBj{#$V3x>%L1F(NZ|sXa literal 0 HcmV?d00001 diff --git a/local/bin/spiral b/local/bin/spiral new file mode 100755 index 0000000000000000000000000000000000000000..ee6f6cdf3f58192798be8b3643c426a1d2520b71 GIT binary patch literal 41712 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 Zmtb$oMmbX4XN2{cth0|rR=fy(`~&;}Y83zg literal 0 HcmV?d00001 diff --git a/local/bin/sproingies b/local/bin/sproingies new file mode 100755 index 0000000000000000000000000000000000000000..5ccf4f314975d237fa5f9e6b439cb97a66790bc3 GIT binary patch literal 161604 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

okRG~0p5xBRsQ@h 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 literal 0 HcmV?d00001 diff --git a/local/bin/goop b/local/bin/goop new file mode 100755 index 0000000000000000000000000000000000000000..faca68b246bd4e68358f467a280e920a3e56ac8c GIT binary patch literal 40476 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 BGC2SM literal 0 HcmV?d00001 diff --git a/local/bin/grav b/local/bin/grav new file mode 100755 index 0000000000000000000000000000000000000000..ebb40c435f7715838eed2247478a768c7badb71b GIT binary patch literal 38440 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